1. 程式人生 > >片上處理器與多核系統

片上處理器與多核系統

多執行緒支援多個執行緒以重疊方式共享單個處理的功能單元,但是開發執行緒級並行的一般方法是使用多處理器。

實現多執行緒的硬體方法主要有三種:

  1. 細粒度多執行緒, Fine-grained (interleaved) multithreading,每個時鐘週期之間執行一個程序切換,採用輪詢的方式。好處是:能夠隱藏長短停頓而導致的吞吐損失;不足是:減緩了個體程序的執行速度。
  2. 粗粒度多執行緒, Coarse-grained multithreading,僅發生在成本較高的停頓時才切換程序,克服吞吐量損失的能力十分有限。
  3. 同步多執行緒SMT,Simultaneous multithreading ,是細粒度多執行緒的更進一步,指令集可以在相同週期在多個執行緒中進行切換。

處理器能力的差異:不支援多執行緒的超標量——支援粗粒度多執行緒的超標量——支援細粒度多執行緒的超標量——支援同步多執行緒的超標量。
超標量:

A A A
A A A A
A A
A A

粗粒度:

A A A
A A A A
A A
B B B
B B B B
B B B B B

細粒度:

A A A
B B B B
A A
B B B B B
A A A

同步多執行緒:

A A A B B B
B B B B A A
A B B B B B
B B B A A A
A A A
B B B A A

CMP和SMT

CMP,片上多處理器,將多個計算核心整合在一個處理器晶片上,從而提高計算能力。
SMT 比CMP的資源利用率高,在克服延遲方面具有優勢。

多核SMT和單核SMT

單核SMT:指令級別的並行,為了更快的執行任務必須增加時鐘頻率,能耗和熱損非常大,越來越耗時的設計;
多核SMT:執行緒級別的並行,在同一個晶片上整合多核。