單核處理器相比,多核處理器在體系結構、軟件、功耗和安全性設計等方面面臨著巨大的挑戰(zhàn),但也蘊含著巨大的潛能。
CMP和SMT一樣,致力于發(fā)掘計算的粗粒度并行性。CMP可以看做是隨著大規(guī)模集成電路技術的發(fā)展,在芯片容量足夠大時,就可以將大規(guī)模并行處理機結構中的SMP(對稱多處理機)或DSM(分布共享處理機)節(jié)點集成到同一芯片內(nèi),各個處理器并行執(zhí)行不同的線程或進程。在基于SMP結構的單芯片多處理機中,處理器之間通過片外Cache或者是片外的共享存儲器來進行通信。而基于DSM結構的單芯片多處理器中,處理器間通過連接分布式存儲器的片內(nèi)高速交叉開關網(wǎng)絡進行通信。
由于SMP和DSM已經(jīng)是非常成熟的技術了,CMP結構設計比較容易,只是后端設計和芯片制造工藝的要求較高而已。正因為這樣,CMP成為了最先被應用于商用CPU的“未來”高性能處理器結構。
雖然多核能利用集成度提高帶來的諸多好處,讓芯片的性能成倍地增加,但很明顯的是原來系統(tǒng)級的一些問題便引入到了處理器內(nèi)部。
1 核結構研究:同構還是異構
CMP的構成分成同構和異構兩類,同構是指內(nèi)部核的結構是相同的,而異構是指內(nèi)部的核結構是不同的。為此,面對不同的應用研究核結構的實現(xiàn)對未來微處理器的性能至關重要。核本身的結構,關系到整個芯片的面積、功耗和性能。怎樣繼承和發(fā)展傳統(tǒng)處理器的成果,直接影響多核的性能和實現(xiàn)周期。同時,根據(jù) Amdahl定理,程序的加速比決定于串行部分的性能,所以,從理論上來看似乎異構微處理器的結構具有更好的性能。
核所用的指令系統(tǒng)對系統(tǒng)的實現(xiàn)也是很重要的,采用多核之間采用相同的指令系統(tǒng)還是不同的指令系統(tǒng),能否運行操作系統(tǒng)等,也將是研究的內(nèi)容之一。
2 程序執(zhí)行模型
多核處理器設計的首要問題是選擇程序執(zhí)行模型。程序執(zhí)行模型的適用性決定多核處理器能否以最低的代價提供最高的性能。程序執(zhí)行模型是編譯器設計人員與系統(tǒng)實現(xiàn)人員之間的接口。編譯器設計人員決定如何將一種高級語言程序按一種程序執(zhí)行模型轉(zhuǎn)換成一種目標機器語言程序; 系統(tǒng)實現(xiàn)人員則決定該程序執(zhí)行模型在具體目標機器上的有效實現(xiàn)。當目標機器是多核體系結構時,產(chǎn)生的問題是: 多核體系結構如何支持重要的程序執(zhí)行模型?是否有其他的程序執(zhí)行模型更適于多核的體系結構?這些程序執(zhí)行模型能多大程度上滿足應用的需要并為用戶所接受?
3 Cache設計:多級Cache設計與一致性問題
處理器和主存間的速度差距對CMP來說是個突出的矛盾,因此必須使用多級Cache來緩解。目前有共享一級Cache的CMP、共享二級Cache的 CMP以及共享主存的CMP。通常,CMP采用共享二級Cache的CMP結構,即每個處理器核心擁有私有的一級Cache,且所有處理器核心共享二級 Cache。
Cache自身的體系結構設計也直接關系到系統(tǒng)整體性能。但是在CMP結構中,共享Cache或獨有 Cache孰優(yōu)孰劣、需不需要在一塊芯片上建立多級Cache,以及建立幾級Cache等等,由于對整個芯片的尺寸、功耗、布局、性能以及運行效率等都有很大的影響,因而這些都是需要認真研究和探討的問題。
另一方面,多級Cache又引發(fā)一致性問題。采用何種Cache 一致性模型和機制都將對CMP整體性能產(chǎn)生重要影響。在傳統(tǒng)多處理器系統(tǒng)結構中廣泛采用的Cache一致性模型有: 順序一致性模型、弱一致性模型、釋放一致性模型等。與之相關的Cache一致性機制主要有總線的偵聽協(xié)議和基于目錄的目錄協(xié)議。目前的CMP系統(tǒng)大多采用基于總線的偵聽協(xié)議。