從體系結構的演變看高性能微處理器的發(fā)展趨勢
從體系結構的演變看高性能微處理器的發(fā)展趨勢
中國科學(xué)院聲學(xué)研究所數字系統集成實(shí)驗室 單睿
微處理器體系結構
隨著(zhù)高性能計算的需求,計算機體系結構發(fā)生了很大變化。作為計算機核心部件的微處理器,其性能和復雜性(晶體管數、時(shí)鐘頻率和峰值)也按照摩爾定律增長(cháng)。微處理器性能的改善在很大程度上歸功于體系結構的發(fā)展和VLSI工藝的改進(jìn)。體系結構的發(fā)展主要體現在三個(gè)方面,即超流水、多指令發(fā)射和多指令操作。
超流水技術(shù)主要開(kāi)發(fā)時(shí)間并行性。流水線(xiàn)技術(shù)是RISC處理器區別于CISC處理器的重要特征。采用超流水技術(shù),盡管可以減少關(guān)鍵路徑中每級流水的時(shí)間,但同時(shí)也引入了更多的寄存器,進(jìn)而增加了面積開(kāi)銷(xiāo)以及時(shí)鐘歪斜問(wèn)題。另一方面,深度流水在指令相關(guān)和指令跳轉時(shí)會(huì )大大降低流水線(xiàn)的性能。
多指令發(fā)射和多指令操作均是開(kāi)發(fā)空間并行性。多指令發(fā)射面臨的首要問(wèn)題是如何保持應用程序語(yǔ)義的正確性,MIMD、超標量和數據流技術(shù)是多指令發(fā)射的典型結構。MIMD是并行計算的重要研究領(lǐng)域。超標量采用時(shí)序指令流發(fā)射技術(shù),兼容性好,硬件開(kāi)銷(xiāo)大,功耗開(kāi)銷(xiāo)大,是目前多數商用高端處理器采用的主流技術(shù)。數據流采用token環(huán)技術(shù),理論上可以開(kāi)發(fā)出高度指令并行性。然而,其商用開(kāi)發(fā)不成功,原因是運行時(shí)間開(kāi)銷(xiāo)大,尤其是token環(huán)匹配需要很高的時(shí)間代價(jià)。
多指令操作是當前體系結構的重要研究方向。多指令操作包括數據并行性開(kāi)發(fā)和操作并行性開(kāi)發(fā)。盡管在CISC處理器中均采用過(guò)這兩種技術(shù),但CISC給體系結構開(kāi)發(fā)帶來(lái)三個(gè)負面影響:一是CISC指令不適合流水處理,二是指令差異很大造成譯碼困難,三是編譯器很難開(kāi)發(fā)出有效的指令操作。與CISC處理器相反,多指令操作非常適合RISC處理器,其中SIMD和VLIW就是數據并行性和操作并行性的典型結構。
向量處理器和SIMD處理器都是利用多個(gè)操作數來(lái)實(shí)現數據并行性。但二者有很大不同。向量處理器對線(xiàn)性向量元素順序操作,SIMD則對向量元素進(jìn)行并發(fā)操作。對前者,每條指令只能作用于一個(gè)功能部件,執行時(shí)間較長(cháng);而后者在執行指令時(shí)可以作用于多個(gè)功能部件。向量處理器采用交叉存儲器實(shí)現向量的訪(fǎng)存操作,同時(shí)可對短向量進(jìn)行有效操作,即對稀疏向量進(jìn)行壓縮以獲得高性能。SIMD適合多媒體中的分組數據流,通過(guò)特定算法將長(cháng)的數據流截成定長(cháng)短向量序列,從而可以和向量處理器那樣實(shí)現對定長(cháng)短向量序列的高效處理。
VLIW是實(shí)現操作并行性開(kāi)發(fā)的重要途徑。CISC處理器采用垂直編碼技術(shù),而VLIW則采用水平編碼技術(shù),指令中的每個(gè)操作域可以并發(fā)執行。同CISC處理器相比,VLIW具有的優(yōu)點(diǎn)是:指令操作域定長(cháng),譯碼簡(jiǎn)單;適合流水處理,減少CPI;編譯器需要開(kāi)發(fā)程序潛在的指令級操作并行性。傳統VLIW的不足是指令帶寬較高,二進(jìn)制目標代碼不兼容。VLIW和SIMD結構都能接受單一指令流,每條指令可以包含多個(gè)操作。但前者允許每條指令包含多個(gè)不同類(lèi)型的操作,同時(shí)可以開(kāi)發(fā)細粒度并行性。VLIW指令字較長(cháng),而SIMD具有很強的數據壓縮能力。事實(shí)上,VLIW和SIMD技術(shù)相結合可以獲得更高的性能加速比,且非常適合多媒體數據處理。
從微處理器體系結構和編譯器界面劃分的角度上講,指令級體系結構可以分為順序結構、相關(guān)結構和獨立結構三類(lèi)。在順序結構中,程序不包含任何指令并行信息,完全通過(guò)硬件進(jìn)行調度,即硬件負責操作間的相關(guān)分析、獨立操作分析和操作調度,編譯器只負責程序代碼的重組,程序中不附加任何信息。超標量是該類(lèi)結構的典型代表。在相關(guān)結構中,程序顯式指定操作的相關(guān)信息,即編譯器負責操作間的相關(guān)分析,而硬件負責獨立操作分析和調度,如數據流處理器。獨立結構完全由程序提供各個(gè)獨立操作間的信息,即編譯器負責操作間相關(guān)性分析、獨立操作間分析和指令調度,VLIW是其主要代表。
超標量處理器架構
現代超標量處理器體系結構均基于IBM360/91采用的Tomasulo和CDC6600采用的Scoreboard動(dòng)態(tài)調度技術(shù),MIPS R10000和DEC21264微處理器均基于該體系結構。典型超標量處理器通常采用如下邏輯結構實(shí)現動(dòng)態(tài)調度:寄存器重命名邏輯、窗口喚醒邏輯、窗口選擇邏輯和數據旁路邏輯。Intel的Pentium處理器、Motorola的PowerPC 604和SPARC64則采用基于預約站的超標量體系結構。
兩種體系結構的主要區別是:在典型超標量結構中,無(wú)論是推測還是非推測寄存器值都放在物理寄存器堆中;在預約站超標量結構中,推測數據放在重排序緩沖器中,非推測數據和已經(jīng)執行完成提交的數據則放在寄存器文件中。在典型結構中,操作數不廣播到窗口,而只將操作數標志TAG進(jìn)行廣播,操作數則送到物理寄存器文件。在預約站結構中,指令執行結果廣播到預約站,指令發(fā)射時(shí)從預約站去取操作數。
超標量處理器性能與IPC(Instructions Per Cycle)和時(shí)鐘頻率的乘積成正比。時(shí)鐘速率同系統結構的關(guān)鍵路徑時(shí)延有關(guān),而IPC和如下因素有關(guān):程序中潛在的指令級并行性、體系結構字長(cháng)寬度、指令窗口大小和并行性開(kāi)發(fā)策略。超標量處理器一般通過(guò)增加發(fā)射邏輯提高IPC,這將導致更寬的發(fā)射窗口和更復雜的發(fā)射策略。
圖1 ZSP400 內核超標量體系結構框圖
眾所周知,超標量處理器是通用微處理器的主流體系結構,幾乎所有商用通用微處理器都采用超標量體系結構。而在DSP方面,LSI 邏輯公司的 ZSP200、 ZSP400、ZSP500和ZSP600均采用超標量體系結構。ZSP200采用并行MAC和ALU運算部件,2發(fā)射超標量結構;ZSP400采用雙 MAC單元、4 發(fā)射超標量處理器體系結構;ZSP500為4發(fā)射體系結構、采用增強型雙MAC和雙ALU運算單元;ZSP600采用4MAC和雙ALU運算部件,每個(gè)時(shí)鐘周期發(fā)射6條指令。圖1為ZSP400結構框圖。
ADI公司的TigerSHARC系列采用靜態(tài)超標量體系結構。該系列采用了許多傳統超標量處理器的特征,如load/store結構、分之預測和互鎖寄存器堆等技術(shù)。每個(gè)時(shí)鐘周期發(fā)射4條指令。而靜態(tài)超標量的含義是指指令級并行性識別是在運行之前,即編寫(xiě)程序時(shí)確定的(事實(shí)上以VLIW結構為基礎)。同時(shí),TigerSHARC系統處理器采用SIMD技術(shù),用戶(hù)可以對數據進(jìn)行廣播和合并。所有寄存器均是互鎖的,支持簡(jiǎn)單的編程模型,該模型不依賴(lài)于不同型號間的時(shí)延變化。分支目標緩沖器BTB為128位,可以有效減小循環(huán)操作和其它非順序代碼的執行時(shí)間。圖2為T(mén)igerSHARC系列中的ADSP-TS201S結構框圖。
圖2 ADSP-TS201S靜態(tài)超標量體系結構框圖
超長(cháng)指令字VLIW體系結構
自從耶魯大學(xué)的J.A Fisher于1979年首次提出VLIW體系結構以來(lái),先后
由耶魯大學(xué)開(kāi)發(fā)出基于跟蹤調度(Trace Scheduling)技術(shù)的MultiFlow處理器和Cydrome公司Bob Rau等人開(kāi)發(fā)的基于巨塊調度(Superblock Scheduling)的Cydra-5處理器。但直到九十年代中期,基于VLIW結構的處理器基本上停留在實(shí)驗室原型機階段。因為VLIW本身固有的幾個(gè)關(guān)鍵問(wèn)題一直沒(méi)有徹底解決,導致了其后的商用處理器體系結構從RISC轉向了超標量和超流水,而不是VLIW。盡管如此,由于VLIW結構的許多優(yōu)點(diǎn)仍然使許多研究機構競相對該技術(shù)進(jìn)行堅持不懈地研究,并在體系結構和編譯器方面實(shí)現了突破,其中最重要的是解決了目標代碼兼容問(wèn)題并支持推斷推測機制(盡管大部分處理器僅支持部分推斷推測機制)。這之后出現了Philip的Trimedia、Equator的MAP1000A媒體處理器、Chromatic的Mact、TI的TMS320C6XX、Transmeta的Crusoe以及INTEL和HP聯(lián)盟提出的IA-64體系結構(EPIC)。事實(shí)上VLIW作為下一代高性能處理器體系結構的首選技術(shù)已成共識,該體系結構和優(yōu)化編譯器形成的SIMD指令流將更加適合多媒體數據處理。
TI的TMS320C6系列是典型的超長(cháng)指令字VLIW體系結構,該系列每個(gè)指令周期可以執行8條32位指令,C62為定點(diǎn)處理器,C67為浮點(diǎn)處理器。C62和C67系列的CPU內核是相同的,包含32個(gè)通用寄存器、8個(gè)執行部件。C64包含64個(gè)通用寄存器和8個(gè)執行部件。8個(gè)執行部件包含2個(gè)乘法器和6個(gè)ALU。支持8/16/32數據類(lèi)型,所有指令均為條件執行,減小了分支指令開(kāi)銷(xiāo)。圖3為C62和C67系統框圖。
圖3 基于VLIW體系結構的TMS320C6系統框圖
中國科學(xué)院聲學(xué)研究所在“973國家重大基礎研究發(fā)展規劃”資助下研制成功國內第一款基于多發(fā)射VLIW和SIMD技術(shù)的具有可重組結構的高性能微處理器芯片-華威處理器(SuperV)。該處理器為四發(fā)射VLIW處理器,當執行向量處理功能時(shí),每個(gè)周期可執行35個(gè)操作。在執行32位乘累加操作時(shí)可獲得2.9 GOPS 的數據處理速度;執行16位乘累加操作時(shí)可獲得5.1 GOPS 的數據處理速度;執行8位乘累加操作時(shí)可獲得9.3 GOPS 的數據處理速度。該處理器是目前國內數據處理能力最強的微處理器,可以廣泛應用于信息家電、網(wǎng)絡(luò )通信、聲音圖像以及雷達聲納等信號處理領(lǐng)域。
可重構處理器架構
從二十世紀七十年代開(kāi)始的第一代CISC處理器開(kāi)始至今,微處理器體系結構已經(jīng)經(jīng)過(guò)了三代。然而,即使是第三代的RISC技術(shù)仍然停留在固定模式的體系架構設計。隨著(zhù)ASIC和SOC技術(shù)的發(fā)展,微處理器設計進(jìn)入到第四代,即后RISC和可重構處理器時(shí)代。其重要特征是系統架構不再采用固定模式,而是將DSP的靈活性與硬線(xiàn)連接的專(zhuān)用性相結合,使得微處理器可以針對不同的應用需求建立自己獨特的體系結構,達到性能最優(yōu)、功耗更低的目的。
華威處理器(SuperV)體系結構不僅基于RISC、VLIW和SIMD技術(shù),而且采用了可重構技術(shù),使得用戶(hù)在不增加硬件開(kāi)銷(xiāo)的情況下通過(guò)對系統功能部件的重構完成對不同應用的處理,不僅提高了系統性能,而且大大降低了系統的功耗。例如,在華威處理器中設計了若干32位可重構乘法器,每個(gè)可重構乘法器可以完成32位乘法、若干個(gè)16位乘法或者8位乘法。因此,華威處理器可以采用一條指令完成16個(gè)8位數據的乘(累)加操作;一條指令可以完成8個(gè)16位數據的乘(累)加操作;一條指令可以完成4個(gè)32位數據的乘加操作;一條指令可以完成4個(gè)32位數據的累加操作;一條指令可以完成16個(gè)索引、16個(gè)地址計算和16次數據加載操作;兩條指令完成16個(gè)8位數據累加操作;兩條指令可以完成8個(gè)16位數據累加操作;兩條指令可以完成對256項、8位元素的數據表進(jìn)行的16路并行查找。
Tensilica的可配置技術(shù)是可重構處理器的重要代表。例如,Vectra LX定點(diǎn)向量DSP引擎就是通過(guò)配置選項在Xtensa LX可配置處理器的基礎上建立起來(lái)的。即Vectra LX定點(diǎn)DSP引擎是Xtensa LX微處理器內核的一種配置。該定點(diǎn)DSP引擎是一個(gè)3發(fā)射SIMD處理器,具有四個(gè)乘法器/累加器(四MAC),它可以處理128位的向量。128位向量可以分成8個(gè)16位或者4個(gè)32位的元素。整個(gè)Vectra LX DSP引擎是用TIE (Tensilica's Instruction Extension)語(yǔ)言開(kāi)發(fā)的,通過(guò)修改可以適合不同的應用領(lǐng)域。Vectra LX DSP引擎增加了16個(gè)向量寄存器(每個(gè)寄存器160位寬)、四個(gè)128位的向量隊列寄存器、第二個(gè)load/store單元和210多條現有Xtensa LX處理器指令集體系結構中的通用DSP指令。Vectra LX DSP引擎如圖4所示。
圖4 Vectra LX DSP體系結構框圖
結語(yǔ)
作為信息產(chǎn)業(yè)的核心技術(shù),微處理器體系結構正在發(fā)生很大的變化,而這種變化無(wú)不體現出市場(chǎng)需求的強大動(dòng)力?,F代微處理器,無(wú)論是通用微處理器還是數字信號處理器在體系結構方面正在趨于融合。通用處理器通過(guò)增加媒體處理指令來(lái)提高數據處理器能力;而數字信號處理器也借鑒了通用處理器的體系結構,使得數字信號處理器的數據處理器能力更加強大、管理更加靈活。同時(shí),隨著(zhù)嵌入式應用的需求,對功耗的要求也越來(lái)越苛刻,使得可重構處理器在未來(lái)將會(huì )起到重要的作用。由于不同的應用需求可以通過(guò)重構技術(shù)獲得所需要的微處理器系統架構,這將大大提高產(chǎn)品的競爭力,同時(shí)也降低了整個(gè)系統的功耗和成本。
評論