片上處理器與多核系統
阿新 • • 發佈:2019-02-18
多執行緒支援多個執行緒以重疊方式共享單個處理的功能單元,但是開發執行緒級並行的一般方法是使用多處理器。
實現多執行緒的硬體方法主要有三種:
- 細粒度多執行緒, Fine-grained (interleaved) multithreading,每個時鐘週期之間執行一個程序切換,採用輪詢的方式。好處是:能夠隱藏長短停頓而導致的吞吐損失;不足是:減緩了個體程序的執行速度。
- 粗粒度多執行緒, Coarse-grained multithreading,僅發生在成本較高的停頓時才切換程序,克服吞吐量損失的能力十分有限。
- 同步多執行緒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:執行緒級別的並行,在同一個晶片上整合多核。