IBM Power 7 CPU
IBM Power 7處理器采用了IBM的45nm SOI銅互聯(lián)工藝制程,典型的Power 7處理器具有八個(gè)核心,晶體管數(shù)量達(dá)到了12億,核心面積567mm2,從這里可以明顯看出Power7的與眾不同,作為對(duì)比,同樣八核心的Nehalem-EX具有23億個(gè)晶體管,整整多了一倍。關(guān)于為什么具有這個(gè)差別后面將會(huì)談到。
早期的IBM Power處理器路線圖
距離上一代Power6推出已經(jīng)經(jīng)過(guò)了三年(2006年P(guān)ower6推出),三年的時(shí)間內(nèi),CISC,或者說(shuō)x86處理器已經(jīng)有了不少的變化,Power7的情況又如何呢?請(qǐng)看下文。
和以往的IBM Power處理器不太一樣,IBM Power7是一個(gè)單晶片的八核處理器,而不是如Power5那樣由多個(gè)晶圓合體(Power7據(jù)說(shuō)支持單個(gè)處理器兩個(gè)晶圓,也就是形成一個(gè)16核心處理 器)。IBM Power7是一個(gè)典型的多核心處理器,每個(gè)核心的架構(gòu)如下圖:
單個(gè)IBM Power7核心
IFU:Instruction Fetch Unit,指令拾取單元
CRU/BRU:Condition Register Unit/Branch Unit,條件寄存器單元/分支單元
LSU:Load/Store Unit,存取單元
ISU:Instruction Schdule Unit,指令調(diào)度單元
DFU:Decimal Fixed Point Unit,十進(jìn)制整數(shù)單元
FXU:Fixed Point Unit,整數(shù)單元
VSX FPU:Vector-Scalar Extension Floating Point Unit,向量/標(biāo)量擴(kuò)展浮點(diǎn)單元
通常,一條指令從左下開(kāi)始順時(shí)針執(zhí)行到右下
Power7處理核心的最大特點(diǎn)是它具有12個(gè)執(zhí)行單元,以及4個(gè)同步多線程。這12個(gè)執(zhí)行單元是:
兩個(gè)FXU整數(shù)單元+一個(gè)DFU十進(jìn)制整數(shù)單元:十進(jìn)制整數(shù)單元的用途目前暫時(shí)難以看到
四個(gè)VSX FPU向量/標(biāo)量擴(kuò)展浮點(diǎn)單元:和傳統(tǒng)的FPU不同,它可以進(jìn)行向量計(jì)算。Power7基于Power Architecture版本2.06,擴(kuò)展了指令集以支持向量運(yùn)算,對(duì)比于通常的SIMD,向量運(yùn)算會(huì)具有更高的效率,它可以更好地利用寄存器 共四個(gè)LSU存取單元:內(nèi)存存取–Load兩個(gè),Store兩個(gè)–因此它緊挨著L1,以及L2
一個(gè)CRU條件寄存器單元和BRU分支單元:POWER架構(gòu)和我們常見(jiàn)的x86不同,有些時(shí)候,一種特別的浮點(diǎn)運(yùn)算是由額外的單元執(zhí)行而不是由通用整數(shù)單元執(zhí)行,這就是和POWER架構(gòu)的condition register條件寄存器相關(guān)的運(yùn)算,它由CRU來(lái)執(zhí)行
BRU分支單元執(zhí)行分支指令,實(shí)際上,它和CRU結(jié)合緊密,因此合在一起;CRU和BRU都有點(diǎn)偏向于控制單元(如IFU和ISU這樣的就是徹頭徹尾的控制單元),控制著指令的走向,因此它們靠近IFU指令拾取單元,也靠近L1/L2的位置
Power7是OOOE(Out-of-Order Execution,亂序執(zhí)行)架構(gòu)的處理器,和上一代Power6的IOE(In-Order Execution,順序執(zhí)行)不同–有趣的是,Power5是OOOE的,也就是說(shuō),Power7又變回去了。
順序執(zhí)行的結(jié)構(gòu)簡(jiǎn)單,可以獲得較高的運(yùn)行頻率,亂序執(zhí)行則可以獲得更好的運(yùn)行效率,但是設(shè)計(jì)會(huì)變得復(fù)雜–設(shè)計(jì)不是問(wèn)題,問(wèn)題是發(fā)熱量也隨之增大。從結(jié) 果來(lái)看,Power7的頻率應(yīng)該比Power6低一點(diǎn)。至于執(zhí)行效率本身,亂序本身顯然更好,Power7的流水線級(jí)數(shù)進(jìn)行了縮減和優(yōu)化以提升運(yùn)行頻率。
Power7的內(nèi)核相對(duì)來(lái)說(shuō)是非常復(fù)雜的,12個(gè)相對(duì)獨(dú)立執(zhí)行單元的設(shè)計(jì)可不常見(jiàn),如Nehalem約有9個(gè)執(zhí)行單元(不過(guò)執(zhí)行端口只有6個(gè):三個(gè)運(yùn)算端口,三個(gè)存取端口。三個(gè)運(yùn)算端口可以同時(shí)執(zhí)行三個(gè)整數(shù)運(yùn)算和三個(gè)浮點(diǎn)運(yùn)算)。Power7在每個(gè)時(shí)鐘周期可以分發(fā)6條指令,Nehalem則是4條,在單位時(shí)鐘的微指令執(zhí)行能力上,Power7大約是Nehalem的1.5倍。
強(qiáng)大的執(zhí)行能力讓Power7可以具有更多的多線程能力:每個(gè)Power7具有4個(gè)同步多線程,Power5和Power6都是兩個(gè)。同步多線程是充分 利用亂序架構(gòu)的好方法,相對(duì)來(lái)說(shuō),順序架構(gòu)利用起來(lái)就比較難。近年來(lái)處理器的發(fā)展是追求低功耗、大規(guī)模并行,越來(lái)越走向多路處理了,既然走向了多核心,那 么走向更多路的SMT同步多線程也就順理成章了,相對(duì)來(lái)說(shuō)Power7的功耗并不高,見(jiàn)后。在并行編程方面,進(jìn)展比較緩慢,但進(jìn)步總是有的。
顯然,多線程技術(shù)將會(huì)越來(lái)越盛行,我們熟悉的x86世界:AMD已經(jīng)宣布要采用多線程技術(shù),而Intel的Nehalem將來(lái)可能會(huì)進(jìn)化到4個(gè)多線程。
商用處理器 | ||||||||||||||
類別 | IBM Power5 | IBM Power6 | IBM Power7 | Fujitsu SPARC64 VI | Fujitsu SPARC64 VII | Sun UltraSPARC T1 | Sun UltraSPARC T2 | IBM/Sony/Toshiba Cell | Intel NetBurst | Intel Nehalem-EX | Intel Atom | Intel Itanium 2 Montecito |
||
核心數(shù)量 | 2 | 2 | 8 | 2 | 4 | 8 | 8 | 9 | 1 | 8 | 1 | 2 | ||
線程數(shù) | 2×2 | 2×2 | 8×4 | 2×2 | 4×2 | 8×4 | 8×8 | 1×2+8(異構(gòu)) | 1×2 | 8×2 | 1×2 | 2×2 | ||
多線程 | SMT | SMT | SMT | CMT | SMT | FMT | FMT+SMT | SMT | SMT | SMT | SMT | CMT | ||
流水線 | OOOE亂序 | IOE順序 | OOOE亂序 | OOOE亂序 | OOOE亂序 | IOE順序 | IOE順序 | IOE順序 | OOOE亂序 | OOOE亂序 | IOE順序 | IOE順序 |
IBM Power7具有4層緩存架構(gòu)–這取決于你怎么看,我們暫且這么認(rèn)為。首先每個(gè)核心具有單獨(dú)的32KB的L1(筆者認(rèn)為應(yīng)該是L1-I和L1-D分別 32KB)和256KB的L2,以及32MB的L3(或者說(shuō)L4)緩存,為什么說(shuō)它有四層緩存呢?因?yàn)樵谶@32MB L3(L4)當(dāng)中,有4MB的緩存,其延遲只是L3(或者說(shuō)L4)的1/5,特別快,足以認(rèn)為它形成了一個(gè)新的緩存層。這個(gè)緩存層屬于L3的一部分,可以 被其他核心訪問(wèn)。L2緩存的延遲為8個(gè)時(shí)鐘周期,比Nehalem的10個(gè)時(shí)鐘周期要快一些。
Power7的L3–L4緩存值得一提,它的容量達(dá)到了32MB(包括特別快速的L3或者說(shuō)L2.5在內(nèi))!實(shí)際上,這些緩存(至少是大部分)屬于DRAM(Dynamic RAM,動(dòng)態(tài)內(nèi)存),和通常CPU使用的SRAM(Static RAM,靜態(tài)內(nèi)存)不同,IBM稱之為eDRAM,embedded DRAM,集成動(dòng)態(tài)內(nèi)存。DRAM也就是我們通常的內(nèi)存條使用的技術(shù)。
DRAM和SRAM的區(qū)別是:DRAM使用一個(gè)晶體管和一個(gè)電容存儲(chǔ)一個(gè)bit,由于電容會(huì)漏電,因此必須周期性地充電以維持?jǐn)?shù)據(jù),優(yōu)點(diǎn)是簡(jiǎn)單、便宜;SRAM則用6個(gè)晶體管組成的雙穩(wěn)態(tài)觸發(fā)器電路來(lái)存儲(chǔ)一個(gè)bit,不需要周期性地充電,速度很快,然而占地面積大,耗電高,造價(jià)也高。
為什么要用DRAM呢?不是說(shuō)DRAM的速度慢么?這要從多個(gè)方面來(lái)考慮:首先是容量,Power7本身的8個(gè)核心以及4路多線程要求具有大容量的緩存 以維持一定的性能水準(zhǔn),至少要達(dá)到30MB;其次是功耗,假如采用SRAM的話,其功耗將會(huì)非常高的:32MB的緩存會(huì)消耗大量的電力,并且設(shè)計(jì)更加復(fù) 雜,多個(gè)核心的內(nèi)部互聯(lián)也變得麻煩(4核心的Itanium 3 Tukwila具有30MB的SRAM L3,不過(guò)目前處于難產(chǎn)階段),使用DRAM的話,功耗將得到降低,同時(shí)占地面積也更小,互聯(lián)線路也簡(jiǎn)單了。唯一的缺點(diǎn)是性能,這一點(diǎn)無(wú)法避免,這應(yīng)該就 是L2.5或者說(shuō)L3存在的原因,這個(gè)特別快速的4MB區(qū)域可能仍然是SRAM構(gòu)成的。
大容量的L3通過(guò)內(nèi)部互聯(lián)結(jié)構(gòu)連接,據(jù)說(shuō)處理器 核心互聯(lián)的帶寬達(dá)到了500GB/s!經(jīng)過(guò)了大容量L3(L4)的篩選之后,仍然需要大量的內(nèi)存帶寬,Power7提供了兩個(gè)DDR3內(nèi)存控制器,每個(gè)控 制器支持4個(gè)DDR3通道,大約支持到主流水準(zhǔn):DDR3-1600,這樣內(nèi)存控制器可以提供100GB/s的帶寬!內(nèi)置內(nèi)存控制器的設(shè)計(jì)并不容易,需要 提供各種RAS特性,并需要面對(duì)多種不同廠商不同型號(hào)不同參數(shù)的內(nèi)存模組。Nehalem支持三個(gè)DDR3通道,Nehalem-EX也只支持4個(gè)。
為了更好地支持多個(gè)內(nèi)存通道,并提高性能,Power7每個(gè)內(nèi)存控制器都具有16KB的重調(diào)度緩存來(lái)重新排序內(nèi)存存取請(qǐng)求。
Power7的一個(gè)重點(diǎn)是多路處理器,Power7實(shí)現(xiàn)了SMP的硬件一致性處理。一般而 言,隨著處理器數(shù)量的增多,處理器互聯(lián)總線的帶寬需求呈非線性的增長(zhǎng),受限于總線技術(shù),一般的SMP系統(tǒng)在4路到8路左右就已經(jīng)達(dá)到了飽和(x86的 SMP機(jī)器都在這個(gè)范圍左右),更大的系統(tǒng)就必須采用其它的拓?fù)浣Y(jié)構(gòu)了。
IBM Power 7 CPU:本地SMP連接(中上)和遠(yuǎn)程SMP連接(中下)
Power7通過(guò)三個(gè)方面的設(shè)計(jì)來(lái)達(dá)到32路SMP能力:巨大的帶寬、特別的拓?fù)浣Y(jié)構(gòu)和特別的一致性協(xié)議。Power7的處理器間總線可以提供360GB/s的帶寬。
Power7使用了一個(gè)兩層的拓?fù)淠P停?個(gè)處理器組成一個(gè)本地SMP組(需要7個(gè)本地I/O總線),然后8個(gè)SMP組之間兩兩直接互聯(lián)(每個(gè)SMP組 需要7個(gè)外部I/O總線),為了實(shí)現(xiàn)這個(gè)目標(biāo),Power7提供了兩個(gè)總線:一個(gè)用于本地SMP,一個(gè)用于遠(yuǎn)程SMP??偩€的位寬是120Byte。
此外為了支持這個(gè)拓?fù)浣Y(jié)構(gòu),Power7的一致性協(xié)議混合了兩種一致性消息的廣播方法:一種是全局廣播,一種是本地SMP組的猜測(cè)性廣播。這個(gè)一致性協(xié)議定義了13種狀態(tài),并通過(guò)緩存線上額外的設(shè)置位,Power7最終實(shí)現(xiàn)了復(fù)雜的結(jié)構(gòu),在32路處理器、8核心、總共256個(gè)處理內(nèi)核的SMP系統(tǒng)里,可以同時(shí)維持20000個(gè)緩存一致性操作。
顯然,Power7打造了新的一代的頂級(jí)處理器平臺(tái):8核、4線程、32MB緩存,以及32路256核1024線程的大型SMP機(jī)器,Power7是目前處理器設(shè)計(jì)的巔峰之作。