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