作者fatalismo (fatalismo)
看板Grad-ProbAsk
標題Re: [理工] [計系]-台大100-資工
時間Sun Feb 19 17:32:28 2012
※ 引述《shiared (洨紅)》之銘言:
: 想請問的是第一題
: 第一小題題目是問
: 定義simultaneous mutlithreaing(SMT) on multiprocessor
: system and muticore processors
: 小弟拼湊的答案大概是兩者因有無shared cache ,memory的不同而影響溝通方式
: 一個是message passing 一個是shared memory
: 但是第二小題問說如果是執行90%都是floating point computation兩者的差異
: 實在是毫無頭緒,不知道有沒有人能解個惑
線程(thread)是作業系統對CPU計算排程的最小單位。
並不是每一種運算所涉及的運算單元都相同,若一次只執行一個指令,
勢必會使得許多運算單元閒置。
同時多線程(simultaneous multithreading, SMT)
是指在超純量(superscalar)CPU中,
透過額外的暫存器儲存架構狀態(architectural state)
(i.e. context switch所涉及的資料),
對兩個以上的線程的指令一起進行動態多重派發(dynamic multiple issue),
以充分利用CPU中的各種資源。
對作業系統來說,能夠SMT的CPU看起來不只一個核心。
例如Intel的Hyper-Threading即在CPU之中額外提供一組狀態暫存器,
原本只有1 core看起來就會變成2 cores,
就是所謂一個實體核心,兩個邏輯線程。
但是運算單元終究只有一組,所以SMT對於相同類型的運算就無能為力了。
multi-threading on multi-core則是指每一個core都負責一個thread。
因為multi-core processor是將多顆較小較慢較省電較便宜的CPU整合到同一塊chip上,
所以對單一thread來說,速度較慢。
但是它具有實際的運算單元,與SMT相比,不會有運算單元衝突的問題。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.217.228.250
推 FY4:推 02/19 18:18
推 cksh3300110:推! 02/19 20:03
推 shiared:推!!!!!!!!!!!!!!!!! 02/19 23:19
※ 編輯: fatalismo 來自: 220.132.104.48 (02/21 12:14)