Regular Member
|
趕感謝R大的解答
『2. 事實上, 多工應該說是分時、平行運算混合, 拿現在的 Windows XP 為例, 你一進入 程式可能已經執行了幾十個 Process, 這些 Process 可能是單一 thread, 或是 multi-threads, 但, 平常會有幾十顆同樣數量的 CPU 同時平行運算嗎?所以其中分時多工也必定存在. 每一秒可能切割成許許多多單位, 優先權高的多分配一點, 可能是 5/1000 秒, 優先權低的可能是 1/1000 秒, 然後利用 CPU 中的 task 切換每一個 Process、thread, 來讓使用者感覺到你程式是同時在執行的.
有人講到 Super-Scalar, 這是 thread 等級的平行處理技術, 這部份我還要再了解一下, 只是如果 Super-Scalar 真像某位朋友說的是平行處理, 也就不需要 HT 了.
4. 基本上, 在 286 開始就已經開始支援多工機制 (保護模式), 提供 Task 的切換, 這就是單核心多工的基礎, thread 跟 Process 的性質差不多, 能多 Process 切換執行, 多 thread 就可以, 只不過作業系統在實作的時候要清楚 thread 跟 Process 的不同跟溝通.
Super-Scalar 具有某種程度的指令平行處理能力, 不過不能跟雙核或 HT 混為一談.』
從上述的說明,就我所知,process(程序)、thread(執行序),兩個的定位不同,程序是OS在看的,在一個系統被執行下會有多個程序需要被執行,利用的即是上述大大說的分配方式,而經過OS處理後或掌管程序的軟體執行後交由CPU處理的單位是thread,所以能處理多程序跟能處理多執行序應該是沒有關係?
另外在CPU接到thread時,利用CPU內的指令集或是ALU等處理單元做處理,而多管線和Super-Scalar的利用是在此時(即指令運算的層級),能讓指令處力速度加快或同時(在一個cycle)中使用多的指令來處理。所以也不是thread層級的。
不知道有沒有錯, 希望大大能解答
『6. 管線不長, 效能浪費就少, HT 就比較沒有發揮的餘地. 管線長的設計, 在分支預測錯誤的時候, Lantecy 比較長, 這段時間內, CPU 的運算資源可能是 hold 沒在用的, 白白浪費掉. 而管線短的這個 Lantecy 時間短, HT 的幫助就很小了.』
上面大大說的讓我有更深的瞭解,但是這裡的管線長跟管線深有關係嗎?為什麼管線深可以造就高時脈的CPU?希望大大可以幫忙解釋
還有怎麼我引言只能引一半@@
|