董立平 胡蘇太
布線延遲將影響目前主流商用超標(biāo)量和VLIW技術(shù)的長(zhǎng)遠(yuǎn)發(fā)展。目前,一些新型多核處理器結(jié)構(gòu)初露端倪,它們依賴于開發(fā)指令級(jí)并行性以外的其他更粗粒度的并行性,如數(shù)據(jù)級(jí)并行性和線程級(jí)并行性,以實(shí)現(xiàn)更高性能和應(yīng)用效能。
僅靠擴(kuò)充目前占主流的超標(biāo)量和VLIW技術(shù),要實(shí)現(xiàn)新一代處理器是十分困難的,其中一個(gè)主要原因是布線延遲問題。隨著芯片制造技術(shù)的發(fā)展,一個(gè)時(shí)鐘周期中信號(hào)在芯片內(nèi)所能傳輸?shù)姆秶絹碓叫 L貏e當(dāng)未來采用35納米以下設(shè)計(jì)技術(shù)時(shí),在一個(gè)時(shí)鐘周期內(nèi)信號(hào)所能傳輸?shù)姆秶鷥H為芯片面積的1%。在采用傳統(tǒng)架構(gòu)的處理器中,為使信號(hào)傳遍芯片的各個(gè)角落往往需要很大的延遲,在進(jìn)行距離最遠(yuǎn)的兩點(diǎn)間通信時(shí),會(huì)產(chǎn)生數(shù)十個(gè)周期的延遲,因而引起性能的急劇下降。為此,在考慮未來5~10年的處理器設(shè)計(jì)時(shí),必須從結(jié)構(gòu)設(shè)計(jì)頂層就充分考慮布線延遲問題。這要求體系結(jié)構(gòu)和微體系結(jié)構(gòu)進(jìn)行根本的變革。
目前,一些新型CMP結(jié)構(gòu)初露端倪,它們依賴于開發(fā)指令級(jí)并行性以外的其他更粗粒度的并行性,如數(shù)據(jù)級(jí)并行性和線程級(jí)并行性,以實(shí)現(xiàn)更高性能和應(yīng)用效能。
Tile 結(jié)構(gòu)處理器
我們把無布線延遲問題的小尺寸功能塊,按一定規(guī)則排列構(gòu)成高速處理器的方式稱為Tile結(jié)構(gòu)。這種方式由于受到小尺寸功能塊的制約,可以大大減輕在Tile內(nèi)部產(chǎn)生的布線延遲問題。此外,由于信息傳輸僅在物理位置相距很近的幾個(gè)Tile間進(jìn)行,因而也使Tile間的通信延遲得以緩解。
Tile結(jié)構(gòu)與超標(biāo)量處理器最大的不同就在于,Tile處理器是由多個(gè)采用相同設(shè)計(jì)的功能塊按一定規(guī)則排列構(gòu)成的,其功能部件主要有計(jì)算單元、Tile間連接布線和路由器等。它與采用總線或環(huán)網(wǎng)連接的多核處理器有許多共同點(diǎn),然而其設(shè)計(jì)思想?yún)s有很大差別。多核處理器盡量沿用了傳統(tǒng)處理器設(shè)計(jì)技術(shù),只是對(duì)高速緩存和互連網(wǎng)絡(luò)進(jìn)行了優(yōu)化以謀求更高的性能。而Tile處理器為了克服布線延遲,在傳統(tǒng)處理器從未采用過的Tile內(nèi)部結(jié)構(gòu)上下足了工夫,即在芯片上配置多個(gè)結(jié)構(gòu)完全相同的Tile單元,以提高設(shè)計(jì)的可重用性,減輕驗(yàn)證等作業(yè)的負(fù)擔(dān)。這種Tile結(jié)構(gòu)大多采用在增加Tile單元數(shù)時(shí),不降低工作頻率的就近連接網(wǎng)絡(luò)。
旨在提高大量視頻和音頻數(shù)據(jù)處理速度的專用多媒體處理器,也有采用類似Tile結(jié)構(gòu)這種將多個(gè)處理器配置于二維網(wǎng)格結(jié)構(gòu)的。然而,Tile結(jié)構(gòu)面臨的最大挑戰(zhàn)是,作為通用處理器它必須能高效地處理各種應(yīng)用。為了有效利用與傳統(tǒng)處理器有很大差異的Tile結(jié)構(gòu),多數(shù)Tile處理器采用了獨(dú)特的指令集結(jié)構(gòu),因而放棄了與傳統(tǒng)的CISC和RISC處理器的代碼互換性。此時(shí),應(yīng)用程序要用C或Fortran等高級(jí)語言描述,并用獨(dú)特的編譯器生成Tile處理器專用的目標(biāo)代碼。下面介紹兩種典型的Tile結(jié)構(gòu)處理器。
1)Raw處理器
美國(guó)馬薩諸塞大學(xué)正在開發(fā)的Raw處理器可以說是Tile結(jié)構(gòu)的先驅(qū),除克服布線延遲外,用活Tile結(jié)構(gòu)豐富的硬件資源,充分利用處理器有限的管腿也是Raw追求的目標(biāo)。目前,Raw正在進(jìn)行芯片試制和系統(tǒng)級(jí)評(píng)價(jià)。
如圖1所示,Raw處理器由16個(gè)結(jié)構(gòu)相同的Tile單元構(gòu)成,而每個(gè)Tile單元由近似MIPS處理器的單指令發(fā)射內(nèi)部處理計(jì)算流水線和靜態(tài)、動(dòng)態(tài)網(wǎng)絡(luò)構(gòu)成。每個(gè)Tile單元可作為具有獨(dú)立程序計(jì)數(shù)器的處理器工作,當(dāng)指令或數(shù)據(jù)緩存發(fā)生錯(cuò)誤時(shí),則從配置在芯片外的主存獲取數(shù)據(jù)。
Tile單元間的通信必須借助寄存器,所有布線均被設(shè)計(jì)為短于Tile單元單邊的長(zhǎng)度。因此,即使是根據(jù)應(yīng)用的性能要求或可用晶體管數(shù)的提高,而增加集成的Tile單元數(shù)也不會(huì)降低芯片的工作頻率。假使試制芯片經(jīng)過每個(gè)Tile單元時(shí)產(chǎn)生1個(gè)周期的延遲,則右下Tile單元要使用左上Tile單元生成的數(shù)據(jù),會(huì)產(chǎn)生6個(gè)周期的通信延遲。
Tile單元中的運(yùn)算流水線由8級(jí)指令流水線構(gòu)成,每條運(yùn)算流水線都采用單指令發(fā)射的簡(jiǎn)單結(jié)構(gòu)。盡管一個(gè)Tile單元每個(gè)時(shí)鐘周期只能處理一條指令,但16個(gè)Tile單元可同時(shí)進(jìn)行運(yùn)算,因而每個(gè)芯片一個(gè)時(shí)鐘周期就可完成16條指令的處理,從而達(dá)到較高的峰值性能。
為了縮短Tile單元間的通信延遲,在運(yùn)算流水線的數(shù)據(jù)通路中嵌入了專門的通信機(jī)構(gòu),這樣無需特殊指令就可進(jìn)行Tile單元間的數(shù)據(jù)傳送。
Raw處理器的硬件結(jié)構(gòu)十分精煉,即使對(duì)最復(fù)雜的通信和計(jì)算也能提供可明確描述的指令集,在運(yùn)算流水線的數(shù)據(jù)通路上還設(shè)有專門的通信機(jī)構(gòu),從而大大縮短了Tile單元間必要的通信延遲。
2) TRIPS處理器
IBM和德克薩斯大學(xué)也正在開發(fā)一款采用Tile結(jié)構(gòu)的TRIPS處理器。該處理器由網(wǎng)狀配置的多個(gè)運(yùn)算結(jié)點(diǎn)(Tile單元)構(gòu)成,其運(yùn)算結(jié)點(diǎn)則由單指令發(fā)射的簡(jiǎn)單整數(shù)運(yùn)算、浮點(diǎn)運(yùn)算部件和指令緩存、操作數(shù)緩存及操作數(shù)路由器構(gòu)成。采用大數(shù)據(jù)流執(zhí)行方式是TRIPS處理器的一大特征。
將運(yùn)算結(jié)點(diǎn)按4×4網(wǎng)狀配置的TRIPS處理器的結(jié)構(gòu)如圖2所示,由于只能在鄰近結(jié)點(diǎn)間進(jìn)行數(shù)據(jù)傳送,因而有效緩解了布線延遲問題,這點(diǎn)與Raw處理器相同。而與Raw處理器不同的是,配置了指令緩存、數(shù)據(jù)緩存和寄存器文件的運(yùn)算結(jié)點(diǎn)可自動(dòng)檢測(cè)數(shù)據(jù)的到達(dá),并從運(yùn)算數(shù)據(jù)齊全的指令開始執(zhí)行。
TRIPS處理器不是以單個(gè)指令為單位,而是以塊為單位向運(yùn)算結(jié)點(diǎn)分配指令。它給16個(gè)運(yùn)算結(jié)點(diǎn)分別裝上識(shí)別符,編譯器利用這一信息靜態(tài)地將塊內(nèi)的指令分配給每個(gè)運(yùn)算結(jié)點(diǎn)。TRIPS處理器以塊為單位取出指令,當(dāng)構(gòu)成塊的所有指令處理完畢時(shí),才釋放該塊所使用的資源。每個(gè)運(yùn)算結(jié)點(diǎn)擁有多個(gè)指令緩存,可取出多個(gè)指令塊。各運(yùn)算結(jié)點(diǎn)可在從多個(gè)指令緩存所要取出的多條指令中,將可處理的指令激活。
TRIPS處理器與Raw處理器一樣,所有Tile單元都未采用緩存結(jié)構(gòu),而是在Tile單元周圍配置了一些指令和數(shù)據(jù)緩存,因而為了取出必要的指令和數(shù)據(jù)勢(shì)必產(chǎn)生延遲。例如TRIPS處理器在進(jìn)行向量加法運(yùn)算時(shí),從一個(gè)塊開始處理到結(jié)束需要80個(gè)時(shí)鐘周期,光取指令就需要10個(gè)時(shí)鐘周期。為了隱藏塊處理的較長(zhǎng)延遲,TRIPS設(shè)法使處理器最多可同時(shí)并行執(zhí)行8個(gè)塊的處理。
目前德克薩斯大學(xué)正在積極推進(jìn)集成有32個(gè)Tile單元的TRIPS處理器的設(shè)計(jì),并已于2005年12月開發(fā)出了可使用4個(gè)這種芯片(集成有128個(gè)Tile單元)的原型系統(tǒng)。
面臨的課題和今后展望
隨著布線延遲問題的日益突出,能有效減輕布線延遲影響的Tile結(jié)構(gòu)開發(fā)方興未艾。目前,關(guān)于Tile結(jié)構(gòu)的研究正處于包括常規(guī)應(yīng)用、伺服應(yīng)用和多媒體處理等各種應(yīng)用的基本方法開發(fā)階段。
下一步如何引入目前正在超標(biāo)量處理器中研究的存儲(chǔ)器訪問延遲隱藏技術(shù)和投機(jī)技術(shù),并對(duì)Tile單元的功能及尺寸進(jìn)行最優(yōu)化是今后面臨的主要研究課題。此外,在保持高速處理的同時(shí),如何減少功耗,提高芯片的可靠性也是需要重點(diǎn)研究的問題。Tile結(jié)構(gòu)的本質(zhì)就是在保持較高工作頻率的同時(shí),使配置的多個(gè)Tile單元能并行工作,以達(dá)到較高的處理性能。因此,有助于從應(yīng)用中抽出內(nèi)在并行性的編程手法及通用并行程序的開發(fā)和普及也是未來的長(zhǎng)期研究課題。
Tile結(jié)構(gòu)是一種采用特殊指令集的嶄新結(jié)構(gòu),盡管在其實(shí)現(xiàn)和普及的過程中,仍有很多需要研究解決的課題,但作為一種面向未來10年的處理器結(jié)構(gòu),Tile結(jié)構(gòu)無疑是一種魅力十足的選擇。
PIM結(jié)構(gòu)處理器
超標(biāo)量、超流水線處理器的設(shè)計(jì)正日趨復(fù)雜,而這種復(fù)雜性很大程度上是為了隱藏存儲(chǔ)器訪問延遲。為了擺脫這一趨勢(shì),研究人員提出了PIM結(jié)構(gòu)。
PIM(Processor-In-Memory),將一個(gè)或多個(gè)處理器與大容量、高帶寬的片上DRAM存儲(chǔ)器集成在一起,從而大大縮短訪存延遲,提高了數(shù)據(jù)帶寬。PIM的處理器本身可以是一個(gè)簡(jiǎn)單的或普通的超標(biāo)量標(biāo)準(zhǔn)處理器,也可包括一個(gè)向量部件。PIM非常適合于數(shù)據(jù)密集型運(yùn)算。
Intelligent RAM(IRAM)
美國(guó)加州大學(xué)伯克利分校的Patterson等人提出了IRAM結(jié)構(gòu)(如圖3所示),與傳統(tǒng)的結(jié)構(gòu)相比,有以下的技術(shù)優(yōu)勢(shì):
● 更大帶寬和更低延遲: 重新設(shè)計(jì)存儲(chǔ)接口以及片上存儲(chǔ)器的鄰近性,存儲(chǔ)延時(shí)改進(jìn)5%~10%,存儲(chǔ)帶寬提高50%~100%;
● 更高的能效: 減少與片外的聯(lián)系,改善存儲(chǔ)能效2%~4%;
● 低成本: 復(fù)制存儲(chǔ)器來填充芯片,而不是定制邏輯,可成倍降低成本;
● 在單芯片上集成更多部件,減少板的面積4%甚至更多;
● 可以調(diào)整存儲(chǔ)器的大小和組織使之更適合工作負(fù)載;
● 用高速、點(diǎn)到點(diǎn)的線替換IO總線,改進(jìn)IO帶寬4%~8%。
但I(xiàn)RAM還存在很多缺陷,其中最重要的一點(diǎn)就是系統(tǒng)的可擴(kuò)展性不好,從IRAM中能得到的最大存儲(chǔ)容量只有128MB。
Active Pages
Active Pages是加州大學(xué)Davis分校的Oskin等人提出的一種基于頁的計(jì)算模型,它賦予存儲(chǔ)器每一頁簡(jiǎn)單的功能。與其他PIM方案相比,Active Pages有三個(gè)主要特性:
● 增強(qiáng)PIM結(jié)構(gòu)中微處理器的性能,與IRAM用單芯片結(jié)構(gòu)替換傳統(tǒng)結(jié)構(gòu)不同,它更注重桌面應(yīng)用對(duì)存儲(chǔ)的需求。應(yīng)用在處理器和Active Pages之間進(jìn)行劃分,如果應(yīng)用中有很多浮點(diǎn)操作,則試圖提供給處理器更多的操作,使得它保持在峰值速度。反之,如果應(yīng)用中有很多數(shù)據(jù)操作和整數(shù)運(yùn)算,則劃分的目標(biāo)是開發(fā)更高的并行度,盡可能使用更多的Active Pages;
● 使用與傳統(tǒng)存儲(chǔ)系統(tǒng)類似的接口,包括標(biāo)準(zhǔn)的存儲(chǔ)接口功能,提供給頁面的一組用來計(jì)算的功能集合和給每個(gè)Active Page分配虛擬地址功能中的數(shù)據(jù)可以用傳統(tǒng)的存儲(chǔ)器讀和寫命令來修改,其包含的功能通過存儲(chǔ)映射的寫來調(diào)用;
● 高并行度: 包含物理存儲(chǔ)器中成百上千的頁,支持這些頁中的同時(shí)計(jì)算。
Active Pages用可重構(gòu)結(jié)構(gòu)的DRAM(RADRAM)來實(shí)現(xiàn),對(duì)于數(shù)據(jù)密集型計(jì)算,可以獲得1000倍于傳統(tǒng)存儲(chǔ)系統(tǒng)的加速比。
DIVA
很多應(yīng)用有高存儲(chǔ)帶寬的需求。比較規(guī)則的應(yīng)用,如涉及大數(shù)據(jù)量的密集矩陣運(yùn)算,可以通過開發(fā)局部性、編譯優(yōu)化和延遲隱藏等技術(shù)獲得很好的性能。對(duì)于不規(guī)則的應(yīng)用,比如稀疏矩陣和基于指針的運(yùn)算,它們一樣有高存儲(chǔ)帶寬的需求,但由于程序控制和數(shù)據(jù)訪問不能靜態(tài)預(yù)測(cè)以及不能有效利用Cache,存儲(chǔ)器訪問等待時(shí)間很長(zhǎng),利用傳統(tǒng)的實(shí)現(xiàn)方法不能獲得理想的性能。為此,美國(guó)南加州大學(xué)的Hall等人將PIM結(jié)構(gòu)與PIM-PIM之間的互連結(jié)合起來,提出了DIVA(Data-Intensi Ve Architecture)結(jié)構(gòu),它主要通過兩種機(jī)制來提高存儲(chǔ)帶寬:
● 在存儲(chǔ)器中執(zhí)行選擇計(jì)算,減少通過處理器-存儲(chǔ)器之間的接口傳輸數(shù)據(jù)的次數(shù);
● 為數(shù)據(jù)和計(jì)算在整個(gè)存儲(chǔ)器中移動(dòng)提供稱為parcels的通信機(jī)制,可以旁路處理器/存儲(chǔ)器總線。
DIVA的結(jié)構(gòu)如圖4所示。與其他PIM結(jié)構(gòu)一樣,在單個(gè)PIM芯片中,存儲(chǔ)帶寬的提高和訪存延遲的降低都很顯著。更重要的意義在于,DIVA中多個(gè)存儲(chǔ)芯片可以并行工作,操作相對(duì)獨(dú)立的數(shù)據(jù),執(zhí)行PIM間的通信而不需要經(jīng)過處理器/存儲(chǔ)器總線。
圖4中,Host處理器通過Host-Memory接口執(zhí)行標(biāo)準(zhǔn)的讀寫操作,而PIM則是具有通用和專用計(jì)算目的的硬件結(jié)構(gòu)。一個(gè)PIM芯片包含多個(gè)結(jié)點(diǎn)、一個(gè)PIM路由協(xié)處理器(PiRC)和一個(gè)host接口。每個(gè)結(jié)點(diǎn)又由一個(gè)處理邏輯和幾MB的存儲(chǔ)器組成,其中處理邏輯是一個(gè)標(biāo)準(zhǔn)的標(biāo)量微處理器,包括一個(gè)浮點(diǎn)單元和一個(gè)At-the-Sense-Amps Processor(ASAP),ASAP對(duì)保存在本地存儲(chǔ)器一行中的數(shù)據(jù)進(jìn)行寬位操作,在一個(gè)時(shí)鐘周期內(nèi)可以處理256位數(shù)據(jù)。通過對(duì)三個(gè)不規(guī)則應(yīng)用的模擬測(cè)試,DIVA結(jié)構(gòu)可以取得比較好的性能。
PIM的未來
從上述多種采用PIM技術(shù)的處理器開發(fā)情況可看出,PIM作為量產(chǎn)商用處理器使用仍然有待時(shí)日。第一個(gè)PIM芯片是1993年推出的EXECUBE芯片; 1996年,第一款商用的PIM芯片M32R/D誕生,但至今10年過去,PIM仍然沒有成為量產(chǎn)的通用處理器。其原因除了傳統(tǒng)處理器仍有很大發(fā)展空間外,PIM自身還存在工藝上的問題,因?yàn)橹谱魈幚砥鞯墓に嚥煌谥谱鞔鎯?chǔ)器,存儲(chǔ)器過低的時(shí)鐘頻率不能滿足邏輯電路的高速需要; 另外,PIM在構(gòu)成系統(tǒng)時(shí)仍沒有統(tǒng)一標(biāo)準(zhǔn)的通信機(jī)制; PIM和非PIM系統(tǒng)之間的接口也不兼容。
仍處在探究階段的PIM技術(shù)可能首先會(huì)在一些超級(jí)計(jì)算機(jī)上得到成功應(yīng)用,如美國(guó)HPCS計(jì)劃中的Cray Cascade、Sun Hero 和IBM的BlueGene項(xiàng)目都采用了PIM技術(shù)。但是,如何讓數(shù)百萬個(gè)PIM處理器協(xié)同求解單個(gè)并行應(yīng)用問題,需要尋找不同于MPP結(jié)構(gòu)的大規(guī)模并行處理和存儲(chǔ)平衡的體系結(jié)構(gòu)方法。