摘要:2程序執(zhí)行模型多核處理器設(shè)計的首要問題是選擇程序執(zhí)行模型。程序執(zhí)行模型的適用性決定多核處理器能否以最低的代價提供較高的性能。程序執(zhí)行模型是編譯器設(shè)計人員與系統(tǒng)實現(xiàn)人員之間的接口。編譯器設(shè)計人員決定如何將一種高級語言程序按一種程序執(zhí)行模型轉(zhuǎn)換成一種目標(biāo)機器語言程序;系統(tǒng)實現(xiàn)人員則決定該程序執(zhí)行模型在具
2 程序執(zhí)行模型
多核處理器設(shè)計的首要問題是選擇程序執(zhí)行模型。程序執(zhí)行模型的適用性決定多核處理器能否以最低的代價提供較高的性能。程序執(zhí)行模型是編譯器設(shè)計人員與系統(tǒng)實現(xiàn)人員之間的接口。編譯器設(shè)計人員決定如何將一種高級語言程序按一種程序執(zhí)行模型轉(zhuǎn)換成一種目標(biāo)機器語言程序; 系統(tǒng)實現(xiàn)人員則決定該程序執(zhí)行模型在具體目標(biāo)機器上的有效實現(xiàn)。當(dāng)目標(biāo)機器是多核體系結(jié)構(gòu)時,產(chǎn)生的問題是: 多核體系結(jié)構(gòu)如何支持重要的程序執(zhí)行模型?是否有其他的程序執(zhí)行模型更適于多核的體系結(jié)構(gòu)?這些程序執(zhí)行模型能多大程度上滿足應(yīng)用的需要并為用戶所接受?
3 Cache設(shè)計: 多級Cache設(shè)計與一致性問題
處理器和主存間的速度差距對CMP來說是個突出的矛盾,因此必須使用多級Cache來緩解。目前有共享一級Cache的CMP、共享二級Cache的CMP以及共享主存的CMP。通常,CMP采用共享二級Cache的CMP結(jié)構(gòu),即每個處理器核心擁有私有的一級Cache,且所有處理器核心共享二級Cache。
Cache自身的體系結(jié)構(gòu)設(shè)計也直接關(guān)系到系統(tǒng)整體性能。但是在CMP結(jié)構(gòu)中,共享Cache或獨有Cache孰優(yōu)孰劣、需不需要在一塊芯片上建立多級Cache,以及建立幾級Cache等等,由于對整個芯片的尺寸、功耗、布局、性能以及運行效率等都有很大的影響,因而這些都是需要認真研究和探討的問題。
另一方面,多級Cache又引發(fā)一致性問題。采用何種Cache一致性模型和機制都將對CMP整體性能產(chǎn)生重要影響。在傳統(tǒng)多處理器系統(tǒng)結(jié)構(gòu)中廣泛采用的Cache一致性模型有: 順序一致性模型、弱一致性模型、釋放一致性模型等。與之相關(guān)的Cache一致性機制主要有總線的偵聽協(xié)議和基于目錄的目錄協(xié)議。目前的CMP系統(tǒng)大多采用基于總線的偵聽協(xié)議。
4 核間通信技術(shù)
CMP處理器的各CPU核心執(zhí)行的程序之間有時需要進行數(shù)據(jù)共享與同步,因此其硬件結(jié)構(gòu)必須支持核間通信。高效的通信機制是CMP處理器高性能的重要保障,目前比較主流的片上高效通信機制有兩種,一種是基于總線共享的Cache結(jié)構(gòu),一種是基于片上的互連結(jié)構(gòu)。
總線共享Cache結(jié)構(gòu)是指每個CPU內(nèi)核擁有共享的二級或三級Cache,用于保存比較常用的數(shù)據(jù),并通過連接核心的總線進行通信。這種系統(tǒng)的優(yōu)點是結(jié)構(gòu)簡單,通信速度高,缺點是基于總線的結(jié)構(gòu)可擴展性較差。
基于片上互連的結(jié)構(gòu)是指每個CPU核心具有獨立的處理單元和Cache,各個CPU核心通過交叉開關(guān)或片上網(wǎng)絡(luò)等方式連接在一起。各個CPU核心間通過消息通信。這種結(jié)構(gòu)的優(yōu)點是可擴展性好,數(shù)據(jù)帶寬有保證; 缺點是硬件結(jié)構(gòu)復(fù)雜,且軟件改動較大。
通信工程師備考資料免費領(lǐng)取
去領(lǐng)取