基本資料
上市年份 | 2010 |
---|---|
設計廠商 | IBM |
最高設計頻率 | 2.4 GHz 至 4.25 GHz |
製造工藝 | 45 nm |
指令集構架 | Power ISA v2.06 |
核心數 | 4, 6, 8 |
L1快取 | 32+32 KB/core |
L2快取 | 256 KB/core |
L3快取 | 32 MB |
歷史
在x86處理器Nehalem占據人們視線許久之後,其強有力的對手RISC陣營的一個重要的支柱:Power架構最近開始動作連連,除了Freescale在嵌入式處理器市場的動作之外,IBM也開始在企業級微處理器市場出擊,在前幾天與矽谷中心地帶——史丹福大學舉行的Hot Chips 21上,IBM宣布了最新一代POWER架構——Power 7處理器的詳細資訊。
IBM Power 7處理器採用了IBM的45nm SOI銅互聯工藝製程,典型的Power 7處理器具有八個核心,提供4核、6核、8核心型號,電晶體數量達到了12億,核心面積567mm2,從這裡可以明顯看出Power7的與眾不同,作為對比,同樣八核心的Nehalem-EX具有23億個電晶體,整整多了一倍。關於為什麼具有這個差別後面將會談到。
距離上一代POWER6推出已經經過了三年(2006年Power6推出),三年的時間內,CISC,或者說x86處理器已經有了不少的變化,Power7的情況又如何呢?請看下文。
和以往的IBM Power處理器不太一樣,IBM POWER7是一個單晶片的八核處理器,而不是如Power5那樣由多個晶圓合體(Power7據說支持單個處理器兩個晶圓,也就是形成一個16核心處理器)。IBM Power7是一個典型的多核心處理器。
單個IBM Power7核心
IFU:Instruction Fetch Unit,指令拾取單元
CRU/BRU:Condition Register Unit/Branch Unit,條件暫存器單元/分支單元
LSU:Load/Store Unit,存取單元
ISU:Instruction Schdule Unit,指令調度單元
DFU:Decimal Fixed Point Unit,十進制整數單元
FXU:Fixed Point Unit,整數單元
VSX FPU:Vector-Scalar Extension Floating Point Unit,向量/標量擴展浮點單元
通常,一條指令從左下開始順時針執行到右下
Power7處理核心的最大特點是它具有12個執行單元,以及4個同步多執行緒。這12個執行單元是:
兩個FXU整數單元+一個DFU十進制整數單元:十進制整數單元的用途目前暫時難以看到
四個VSX FPU向量/標量擴展浮點單元:和傳統的FPU不同,它可以進行向量計算。Power7基於Power Architecture版本2.06,擴展了指令集以支持向量運算,對比於通常的SIMD,向量運算會具有更高的效率,它可以更好地利用暫存器
共四個LSU存取單元:記憶體存取——Load兩個,Store兩個——因此它緊挨著L1,以及L2
一個CRU條件暫存器單元和BRU分支單元:POWER架構和我們常見的x86不同,有些時候,一種特別的浮點運算是由額外的單元執行而不是由通用整數單元執行,這就是和POWER架構的condition register條件暫存器相關的運算,它由CRU來執行
BRU分支單元執行分支指令,實際上,它和CRU結合緊密,因此合在一起;CRU和BRU都有點偏向於控制單元(如IFU和ISU這樣的就是徹頭徹尾的控制單元),控制著指令的走向,因此它們靠近IFU指令拾取單元,也靠近L1/L2的位置
Power7是OOOE(Out-of-Order Execution,亂序執行)架構的處理器,和上一代Power6的IOE(In-Order Execution,順序執行)不同——有趣的是,Power5是OOOE的,也就是說,Power7又變回去了。
順序執行的結構簡單,可以獲得較高的運行頻率,亂序執行則可以獲得更好的運行效率,但是設計會變得複雜——設計不是問題,問題是發熱量也隨之增大。從結果來看,Power7的頻率應該比Power6低一點。至於執行效率本身,亂序本身顯然更好,Power7的流水線級數進行了縮減和最佳化以提升運行頻率。
Power7的核心相對來說是非常複雜的,12個相對獨立執行單元的設計可不常見,如Nehalem約有9個執行單元(不過執行連線埠只有6個:三個運算連線埠,三個存取連線埠。三個運算連線埠可以同時執行三個整數運算和三個浮點運算)。Power7在每個時鐘周期可以分發6條指令,Nehalem則是4條,在單位時鐘的微指令執行能力上,Power7大約是Nehalem的1.5倍。
強大的執行能力讓Power7可以具有更多的多執行緒能力:每個Power7具有4個同步多執行緒,Power5和Power6都是兩個。同步多執行緒是充分利用亂序架構的好方法,相對來說,順序架構利用起來就比較難。近年來處理器的發展是追求低功耗、大規模並行,越來越走向多路處理了,既然走向了多核心,那么走向更多路的SMT同步多執行緒也就順理成章了,相對來說Power7的功耗並不高,見後。在並行編程方面,進展比較緩慢,但進步總是有的。
顯然,多執行緒技術將會越來越盛行,我們熟悉的x86世界:AMD已經宣布要採用多執行緒技術,而Intel的Nehalem將來可能會進化到4個多執行緒。
IBM Power7具有4層快取架構——這取決於你怎么看,我們暫且這么認為。首先每個核心具有單獨的32KB的L1(筆者認為應該是L1-I和L1-D分別32KB)和256KB的L2,以及32MB的L3(或者說L4)快取,為什麼說它有四層快取呢?因為在這32MB L3(L4)當中,有4MB的快取,其延遲只是L3(或者說L4)的1/5,特別快,足以認為它形成了一個新的快取層。這個快取層屬於L3的一部分,可以被其他核心訪問。L2快取的延遲為8個時鐘周期,比Nehalem的10個時鐘周期要快一些。
Power7的L3——L4快取值得一提,它的容量達到了32MB(包括特別快速的L3或者說L2.5在內)!實際上,這些快取(至少是大部分)屬於DRAM(Dynamic RAM,動態記憶體),和通常CPU使用的SRAM(Static RAM,靜態記憶體)不同,IBM稱之為eDRAM,embedded DRAM,集成動態記憶體。DRAM也就是我們通常的記憶體條使用的技術。
DRAM和SRAM的區別是:DRAM使用一個電晶體和一個電容存儲一個bit,由於電容會漏電,因此必須周期性地充電以維持數據,優點是簡單、便宜;SRAM則用6個電晶體(Nehalem則使用了8個電晶體以降低功耗)組成的雙穩態觸發器電路來存儲一個bit,不需要周期性地充電,速度很快,然而占地面積大,耗電高,造價也高。
為什麼要用DRAM呢?不是說DRAM的速度慢么?這要從多個方面來考慮:首先是容量,Power7本身的8個核心以及4路多執行緒要求具有大容量的快取以維持一定的性能水準,至少要達到30MB;其次是功耗,假如採用SRAM的話,其功耗將會非常高的:32MB的快取會消耗大量的電力,並且設計更加複雜,多個核心的內部互聯也變得麻煩(4核心的Itanium 3 Tukwila具有30MB的SRAM L3,不過目前處於難產階段),使用DRAM的話,功耗將得到降低,同時占地面積也更小,互聯線路也簡單了。唯一的缺點是性能,這一點無法避免,這應該就是L2.5或者說L3存在的原因,這個特別快速的4MB區域可能仍然是SRAM構成的。
大容量的L3通過內部互聯結構連線,據說處理器核心互聯的頻寬達到了500GB/s!經過了大容量L3(L4)的篩選之後,仍然需要大量的記憶體頻寬,Power7提供了兩個DDR3記憶體控制器,每個控制器支持4個DDR3通道,大約支持到主流水準:DDR3-1600,這樣記憶體控制器可以提供100GB/s的頻寬!內置記憶體控制器的設計並不容易,需要提供各種RAS特性,並需要面對多種不同廠商不同型號不同參數的記憶體模組。Nehalem支持三個DDR3通道,Nehalem-EX也只支持4個。
為了更好地支持多個記憶體通道,並提高性能,Power7每個記憶體控制器都具有16KB的重調度快取來重新排序記憶體存取請求。
Power7的一個重點是多路處理器,Power7實現了SMP的硬體一致性處理。一般而言,隨著處理器數量的增多,處理器互聯匯流排的頻寬需求呈非線性的增長,受限於匯流排技術,一般的SMP系統在4路到8路左右就已經達到了飽和(x86的SMP機器都在這個範圍左右),更大的系統就必須採用其它的拓撲結構了。
Power7通過三個方面的設計來達到32路SMP能力:巨大的頻寬、特別的拓撲結構和特別的一致性協定。Power7的處理器間匯流排可以提供360GB/s的頻寬。
Power7使用了一個兩層的拓撲模型:4個處理器組成一個本地SMP組(需要7個本地I/O匯流排),然後8個SMP組之間兩兩直接互聯(每個SMP組需要7個外部I/O匯流排),為了實現這個目標,Power7提供了兩個匯流排:一個用於本地SMP,一個用於遠程SMP。匯流排的位寬是120Byte。
此外為了支持這個拓撲結構,Power7的一致性協定混合了兩種一致性訊息的廣播方法:一種是全局廣播,一種是本地SMP組的猜測性廣播。這個一致性協定定義了13種狀態(Nehalem使用的MOESI是5種),並通過快取線上額外的設定位,Power7最終實現了複雜的結構,在32路處理器、8核心、總共256個處理核心的SMP系統里,可以同時維持20000個快取一致性操作。
顯然,Power7打造了新的一代的頂級處理器平台:8核、4執行緒、32MB快取,以及32路256核1024執行緒的大型SMP機器,Power7是目前處理器設計的巔峰之作。
它不能運行WINDOWS系統
頻率3.0GHz到4.1GHz
理論運算能力為每核心33.12GFLOPS,每顆處理器264.96GFLOPS。
全系列Power7處理器均支持“智慧型執行緒”(Intelligent Threads)技術,根據任務需求動態調節處理器性能,比如當需要監控數百萬家庭用電量時最佳化為多執行緒處理,而當需要實時處理資料庫業務時又對較少執行緒高速運算進行最佳化。
如果套用軟體需要大容量記憶體,POWER7處理器還支持一項“Active Memory Expansion” 技術,通過記憶體壓縮,讓軟體可見的記憶體量最高兩倍於實際物理記憶體。IBM表示通過該技術,SAP軟體可用記憶體量比系統實際記憶體可多出50%,可處理業務量將增加65%
POWER7系統還為虛擬機套用進行了最佳化,每個處理器核心支持10個虛擬機鏡像。目前的8路64核系統可支持單系統最高640個虛擬機同時運行。今年年內,他們還將推出32路256核POWER7系統,最高同時運行1000個虛擬機