多核處理器的九大關(guān)鍵技術(shù)
與單核處理器相比,多核處理器在體系結構、軟件、功耗和安全性設計等方面面臨著(zhù)巨大的挑戰,但也蘊含著(zhù)巨大的潛能。
CMP和SMT一樣,致力于發(fā)掘計算的粗粒度并行性。CMP可以看做是隨著(zhù)大規模集成電路技術(shù)的發(fā)展,在芯片容量足夠大時(shí),就可以將大規模并行處理機結構中的SMP(對稱(chēng)多處理機)或DSM(分布共享處理機)節點(diǎn)集成到同一芯片內,各個(gè)處理器并行執行不同的線(xiàn)程或進(jìn)程。在基于SMP結構的單芯片多處理機中,處理器之間通過(guò)片外Cache或者是片外的共享存儲器來(lái)進(jìn)行通信。而基于DSM結構的單芯片多處理器中,處理器間通過(guò)連接分布式存儲器的片內高速交叉開(kāi)關(guān)網(wǎng)絡(luò )進(jìn)行通信。
由于SMP和DSM已經(jīng)是非常成熟的技術(shù)了,CMP結構設計比較容易,只是后端設計和芯片制造工藝的要求較高而已。正因為這樣,CMP成為了最先被應用于商用CPU的“未來(lái)”高性能處理器結構。
雖然多核能利用集成度提高帶來(lái)的諸多好處,讓芯片的性能成倍地增加,但很明顯的是原來(lái)系統級的一些問(wèn)題便引入到了處理器內部。
1 核結構研究: 同構還是異構
CMP的構成分成同構和異構兩類(lèi),同構是指內部核的結構是相同的,而異構是指內部的核結構是不同的。為此,面對不同的應用研究核結構的實(shí)現對未來(lái)微處理器的性能至關(guān)重要。核本身的結構,關(guān)系到整個(gè)芯片的面積、功耗和性能。怎樣繼承和發(fā)展傳統處理器的成果,直接影響多核的性能和實(shí)現周期。同時(shí),根據Amdahl定理,程序的加速比決定于串行部分的性能,所以,從理論上來(lái)看似乎異構微處理器的結構具有更好的性能。
核所用的指令系統對系統的實(shí)現也是很重要的,采用多核之間采用相同的指令系統還是不同的指令系統,能否運行操作系統等,也將是研究的內容之一。
2 程序執行模型
多核處理器設計的首要問(wèn)題是選擇程序執行模型。程序執行模型的適用性決定多核處理器能否以最低的代價(jià)提供最高的性能。程序執行模型是編譯器設計人員與系統實(shí)現人員之間的接口。編譯器設計人員決定如何將一種高級語(yǔ)言程序按一種程序執行模型轉換成一種目標機器語(yǔ)言程序; 系統實(shí)現人員則決定該程序執行模型在具體目標機器上的有效實(shí)現。當目標機器是多核體系結構時(shí),產(chǎn)生的問(wèn)題是: 多核體系結構如何支持重要的程序執行模型?是否有其他的程序執行模型更適于多核的體系結構?這些程序執行模型能多大程度上滿(mǎn)足應用的需要并為用戶(hù)所接受?
3 Cache設計: 多級Cache設計與一致性問(wèn)題
處理器和主存間的速度差距對CMP來(lái)說(shuō)是個(gè)突出的矛盾,因此必須使用多級Cache來(lái)緩解。目前有共享一級Cache的CMP、共享二級Cache的CMP以及共享主存的CMP。通常,CMP采用共享二級Cache的CMP結構,即每個(gè)處理器核心擁有私有的一級Cache,且所有處理器核心共享二級Cache。
Cache自身的體系結構設計也直接關(guān)系到系統整體性能。但是在CMP結構中,共享Cache或獨有Cache孰優(yōu)孰劣、需不需要在一塊芯片上建立多級Cache,以及建立幾級Cache等等,由于對整個(gè)芯片的尺寸、功耗、布局、性能以及運行效率等都有很大的影響,因而這些都是需要認真研究和探討的問(wèn)題。
另一方面,多級Cache又引發(fā)一致性問(wèn)題。采用何種Cache一致性模型和機制都將對CMP整體性能產(chǎn)生重要影響。在傳統多處理器系統結構中廣泛采用的Cache一致性模型有: 順序一致性模型、弱一致性模型、釋放一致性模型等。與之相關(guān)的Cache一致性機制主要有總線(xiàn)的偵聽(tīng)協(xié)議和基于目錄的目錄協(xié)議。目前的CMP系統大多采用基于總線(xiàn)的偵聽(tīng)協(xié)議。
4 核間通信技術(shù)
CMP處理器的各CPU核心執行的程序之間有時(shí)需要進(jìn)行數據共享與同步,因此其硬件結構必須支持核間通信。高效的通信機制是CMP處理器高性能的重要保障,目前比較主流的片上高效通信機制有兩種,一種是基于總線(xiàn)共享的Cache結構,一種是基于片上的互連結構。
總線(xiàn)共享Cache結構是指每個(gè)CPU內核擁有共享的二級或三級Cache,用于保存比較常用的數據,并通過(guò)連接核心的總線(xiàn)進(jìn)行通信。這種系統的優(yōu)點(diǎn)是結構簡(jiǎn)單,通信速度高,缺點(diǎn)是基于總線(xiàn)的結構可擴展性較差。
基于片上互連的結構是指每個(gè)CPU核心具有獨立的處理單元和Cache,各個(gè)CPU核心通過(guò)交叉開(kāi)關(guān)或片上網(wǎng)絡(luò )等方式連接在一起。各個(gè)CPU核心間通過(guò)消息通信。這種結構的優(yōu)點(diǎn)是可擴展性好,數據帶寬有保證; 缺點(diǎn)是硬件結構復雜,且軟件改動(dòng)較大。
也許這兩者的競爭結果不是互相取代而是互相合作,例如在全局范圍采用片上網(wǎng)絡(luò )而局部采用總線(xiàn)方式,來(lái)達到性能與復雜性的平衡。
5 總線(xiàn)設計
傳統微處理器中,Cache不命中或訪(fǎng)存事件都會(huì )對CPU的執行效率產(chǎn)生負面影響,而總線(xiàn)接口單元(BIU)的工作效率會(huì )決定此影響的程度。當多個(gè)CPU核心同時(shí)要求訪(fǎng)問(wèn)內存或多個(gè)CPU核心內私有Cache同時(shí)出現Cache不命中事件時(shí),BIU對這多個(gè)訪(fǎng)問(wèn)請求的仲裁機制以及對外存儲訪(fǎng)問(wèn)的轉換機制的效率決定了CMP系統的整體性能。因此尋找高效的多端口總線(xiàn)接口單元(BIU)結構,將多核心對主存的單字訪(fǎng)問(wèn)轉為更為高效的猝發(fā)(burst)訪(fǎng)問(wèn); 同時(shí)尋找對CMP處理器整體效率最佳的一次Burst訪(fǎng)問(wèn)字的數量模型以及高效多端口BIU訪(fǎng)問(wèn)的仲裁機制將是CMP處理器研究的重要內容。
6 操作系統設計: 任務(wù)調度、中斷處理、同步互斥
對于多核CPU,優(yōu)化操作系統任務(wù)調度算法是保證效率的關(guān)鍵。一般任務(wù)調度算法有全局隊列調度和局部隊列調度。前者是指操作系統維護一個(gè)全局的任務(wù)等待隊列,當系統中有一個(gè)CPU核心空閑時(shí),操作系統就從全局任務(wù)等待隊列中選取就緒任務(wù)開(kāi)始在此核心上執行。
這種方法的優(yōu)點(diǎn)是CPU核心利用率較高。后者是指操作系統為每個(gè)CPU內核維護一個(gè)局部的任務(wù)等待隊列,當系統中有一個(gè)CPU內核空閑時(shí),便從該核心的任務(wù)等待隊列中選取恰當的任務(wù)執行,這種方法的優(yōu)點(diǎn)是任務(wù)基本上無(wú)需在多個(gè)CPU核心間切換,有利于提高CPU核心局部Cache命中率。目前多數多核CPU操作系統采用的是基于全局隊列的任務(wù)調度算法。
多核的中斷處理和單核有很大不同。多核的各處理器之間需要通過(guò)中斷方式進(jìn)行通信,所以多個(gè)處理器之間的本地中斷控制器和負責仲裁各核之間中斷分配的全局中斷控制器也需要封裝在芯片內部。
另外,多核CPU是一個(gè)多任務(wù)系統。由于不同任務(wù)會(huì )競爭共享資源,因此需要系統提供同步與互斥機制。而傳統的用于單核的解決機制并不能滿(mǎn)足多核,需要利用硬件提供的“讀-修改-寫(xiě)”的原子操作或其他同步互斥機制來(lái)保證。
7 低功耗設計
半導體工藝的迅速發(fā)展使微處理器的集成度越來(lái)越高,同時(shí)處理器表面溫度也變得越來(lái)越高并呈指數級增長(cháng),每三年處理器的功耗密度就能翻一番。目前,低功耗和熱優(yōu)化設計已經(jīng)成為微處理器研究中的核心問(wèn)題。CMP的多核心結構決定了其相關(guān)的功耗研究是一個(gè)至關(guān)重要的課題。
低功耗設計是一個(gè)多層次問(wèn)題,需要同時(shí)在操作系統級、算法級、結構級、電路級等多個(gè)層次上進(jìn)行研究。每個(gè)層次的低功耗設計方法實(shí)現的效果不同——抽象層次越高,功耗和溫度降低的效果越明顯。
8 存儲器墻
為了使芯片內核充分地工作,最起碼的要求是芯片能提供與芯片性能相匹配的存儲器帶寬,雖然內部Cache的容量能解決一些問(wèn)題,但隨著(zhù)性能的進(jìn)一步提高,必須有其他一些手段來(lái)提高存儲器接口的帶寬,如增加單個(gè)管腳帶寬的DDR、DDR2、QDR、XDR等。同樣,系統也必須有能提供高帶寬的存儲器。所以,芯片對封裝的要求也越來(lái)越高,雖然封裝的管腳數每年以20%的數目提升,但還不能完全解決問(wèn)題,而且還帶來(lái)了成本提高的問(wèn)題,為此,怎樣提供一個(gè)高帶寬,低延遲的接口帶寬,是必須解決的一個(gè)重要問(wèn)題。
9 可靠性及安全性設計
隨著(zhù)技術(shù)革新的發(fā)展,處理器的應用滲透到現代社會(huì )的各個(gè)層面,但是在安全性方面卻存在著(zhù)很大的隱患。一方面,處理器結構自身的可靠性低下,由于超微細化與時(shí)鐘設計的高速化、低電源電壓化,設計上的安全系數越來(lái)越難以保證,故障的發(fā)生率逐漸走高。另一方面,來(lái)自第三方的惡意攻擊越來(lái)越多,手段越來(lái)越先進(jìn),已成為具有普遍性的社會(huì )問(wèn)題?,F在,可靠性與安全性的提高在計算機體系結構研究領(lǐng)域備受注目。
今后,CMP這類(lèi)處理器芯片內有多個(gè)進(jìn)程同時(shí)執行的結構將成為主流,再加上硬件復雜性、設計時(shí)的失誤增加,使得處理器芯片內部也未必是安全的,因此,安全與可靠性設計任重而道遠。
評論