前言:突破摩爾定律屏障、最佳瓦效能─多核心處理器
過去,CPU研發廠商遵循著高登‧摩爾在1965年提出的摩爾定律─每18~24個月單位面積的電晶體數量/效能倍增的趨勢,新世代處理器研發,憑藉每兩到三年的製程進化,得以在一定的晶粒面積(成本)下用更多的電晶體來設計,憑藉新架構與線路微縮的時脈提升來強化矽晶片的運算能量。但是在跨入21世紀之後,這股一昧追求高時脈以及高運算效能的CPU研究風潮,各廠開發的新世代處理器晶片的功耗與廢熱急速攀升,快要到了到近乎失衡的地步。
在當今逐漸強調每瓦效能的環保趨勢下,以驗證過的單一核心,藉助製程技術做兩顆、四顆對稱式的疊加起來,直接設計出晶片多線緒(Chip Multi-Threading;CMT)或晶片多重處理(Chip Multi-Processing;CMP)的多核心處理器,搭配多線緒化的軟體下得以直接提升平行運算的效能,享有較佳的效能/功耗比,已經是必然的趨勢。
《圖一 以圖示說明為何多核心有最佳瓦效能。以相同製程技術,單核心CPU若超頻20%,實際效能約提升13%,功耗卻暴增73%(圖左);若將單核心CPU降頻20%,效能僅下滑到86%,功耗可減少約一半;將兩顆降頻20%的CPU疊成雙核心,功耗跟單CPU幾乎相同下,搭配最佳化雙線緒軟體,效能可提升87%左右。(資料來源:Intel IDF技術文獻)》 |
|
特別是在伺服器電腦系統,向來就是最早導入雙顆、四顆甚至多顆CPU以平行對稱多處理器運算(Symetric Multi-Processor;SMP)的方式設計,相關的伺服器作業系統、專屬應用軟體也已經多線緒化(MultiThreading),導入多核心CPU不僅相關硬體平台與軟體環境搭配都最為成熟,同時還能縮減原先做四顆、八顆處理器的伺服器平台的大小與建製成本,縮減到僅以往一顆實體CPU所需的系統,就能享有以往四顆、八顆甚至更多顆實體CPU平行運算的效能。
雙/多核心的處理器發展史-雙打時代開幕
談到開啟多核心CPU研發的號角,首推藍色巨人IBM,在1999年10月微處理器論壇中率先揭露了其雙核心POWER4的研發計畫,以180奈米銅導線絕緣矽(SOI)製程打造,並採四顆矽晶片多重陶瓷封裝的設計,單一實體外觀POWER4 CPU就具備八線路(8-Way SMP)執行能力。在2001年10月,推出採用POWER4 CPU的eServer p670伺服器。緊接著在2003年8月IEEE Hots Chips熱門晶片會議中,IBM揭露具備同步超執行緒(SMT─Simultaneous Multi-Threading)概念的POWER5處理器,POWER5具備四個邏輯處理器核心,可以同時執行四個程式線緒。
惠普(HP)也曾於2001年10月微處理器論壇中,揭露雙核心HP PA-8800及後來時脈強化的PA-8900處理器,但隨著HP伺服器策略全面轉向Intel Itanium,PA-8800/8900推出後成為絕響。另一家以Solaris作業系統與UltraSPARC伺服器處理器聞名的昇陽(SUN),也曾發表雙核心UltraSPARCⅣ處理器的計畫,但後來因故取消。
宿敵超微(AMD)也在2004年8月31日,實機展示安裝四顆雙核心Opteron處理器的惠普HP ProLiant DL585伺服器,呈現八線路(8-Way SMP)平行運作的能力。至此英特爾(Intel)則在2004年9月秋季IDF中首度揭露雙核心Itanium2 CPU(代號Montecito),並在2005年春季IDF時,從桌上型的Pentium D、Pentium Extreme Edition,筆記型的Core Duo(Yonah)以及伺服器的XEON 7000(Tulsa)等雙核心系列CPU計畫。
接下來我們將分上下兩集,這次先針對大型主機、高階伺服器等集中式伺服器所設計,強調規格、可靠度的多核心伺服器CPU做介紹;下集再針對一般網路伺服器、遊戲機/伺服器,以及最普遍的x86伺服器所設計的多核心CPU來作說明。
IBM POWER4/POWER5/POWER5+處理器,以及即將推出的POWER6
先從目前IBM仍在使用的IBM POWER5/POWER5+開始介紹。2004年5月發表的POWER5,採用130奈米絕緣矽製程,八層金屬層互連設計,電晶體數兩億七千六百萬(276M Transistors),矽晶粒面積為389mm2。工作時脈提供1.9GHz、1.65GHz以及1.5GHz,設計功率為80W。隨後2005年10月POWER5+則改採用90奈米製程,時脈突破到2.3GHz,矽晶粒面積微縮至230mm2,同時設計功率降到70瓦,但仍維持跟原先POWER5相同的核心架構。
《圖二 POWER5處理器模組採四顆CPU矽晶片搭四顆L3 晶片的多重晶片封裝》 |
|
POWER5/5+ 採雙核心(Dual-Core)設計,每個核心具備64KB L1指令快取、32KB L1資料快取,第二階快取記憶體採三區塊設計,共1.875MB(3 x 640KB)。外接的L3 eDRAM快取記憶體模組直接連通到L2快取記憶體,而不是如POWER4/4+那樣得藉由光纖介面控制器,容量則從36MB開始起跳,eDRAM Cache時脈也從原先POWER4時代的1/3的CPU時脈進展到1/2。同時在外觀上,POWER5/5+採用四顆CPU矽晶片搭四顆L3晶片的多重晶片封裝(Multi-Chip Module)。
POWER5核心具備120組通用與浮點暫存器組,並改進了指令預擷取緩衝器(Instruction PrefetchBuffer;IPB)、指令執行狀態保留區(Reservation Station;RS)及位址轉換表(Address TranslationTable;ATT)上做有改進,並實作出可以一分為二的單核心同步超執行緒(SMT─SimultaneousMulti-Threading)的能力,每個子CPU核心可以模擬成兩個邏輯處理器來協同運作;加上POWER5處理器又包入四個CPU矽晶片,相當於一顆POWER5處理器實體晶片,就可以開啟4x4=16個邏輯處理器,同時執行16個線緒的強悍能力。
IBM POWER5處理器晶片內建Virtualizine Engine虛擬化引擎,每個處理器的微分區技術,允許定義10個動態邏輯分割區(LPAR)或「虛擬伺服器」,可以虛擬、模擬出不同伺服器的環境,每部虛擬伺服器可選擇UNIX(AIX 5L)、Linux或i5/OS作業系統。
《圖三 IBM於ISSCC 07論壇公佈的POWER6矽晶電路圖》 |
|
IBM 於2006年10月中旬微處理器論壇中,首度揭露POWER6細節,採65奈米銅導線加絕緣矽製程技術,矽晶粒面積達到341mm,電晶體總數達七億九千萬顆(790 Million Transistors)。大致上仍維持單矽晶雙核心,每個雙核心能兩路執行緒(2-Way CMT)的設計。每顆CPU核心以既有的POWER5/POWER5+核心架構做延伸,擁有獨立的4MB L2 Cache(兩核心一共8MB),並且每個CPU核心擴增解碼單元,能一週期發送七道指令並分配到兩個線緒執行單元(POWER5/5+則為5道),並增加了十進位浮點運算單元、VMX單元以及即時修復單元(Recovery Unit),預計將會以5.5~6.1GHz超高時脈運作。
傳統二進位浮點運算的資料記錄格式,由於轉換上會有精確度誤差的問題,向來不適合於法務與金融上的需求,像是電信公司的帳單、稅務計算等等。據IBM資料顯示,全球約有55%的數字資料庫採用BCD(Binary Coded Decimal)記錄,而其餘的43%中的整數資料,大多也是十進位運算。以BCD方式儲存與運算上,會有精確度提升但浪費記憶體與轉換時間的問題,IBM在POWER6設計加入符合IEEE 754R規格十進位浮點運算單元(Decimal FPU)的概念,並追加50道處理這類BCD資料的指令,處理這類資料的運算速度將會提升至少兩倍以上。
《圖四 IBM POWER6特有的十進位浮點運算電路的設計(資料來源:IBM MPF2006技術文獻)》 |
|
IBM POWER6處理器將多顆平行處理(SMP)的連接方式,從以往的四顆一組的循序串列方式,改成了四顆一組,八組以環狀星形方式相互以高速光纖網路介面連接,能有效降低每個處理器模組相互溝通的延遲效應。IBM POWER6也在伺服器強調的RAS(Reliability, Availability, Serviceability)功能上強化,從每顆CPU核心內的每個運作單元,從指令預擷取區、執行單元、記憶體載入/儲存單元等都具備即時錯誤偵測修正(ECC)能力,即時修正維護每一筆資料運算的正確性;當其中一個CPU核心發生位元錯誤時,可重新啟動,再度啟動仍發生錯誤時,則會由整顆CPU核心管理線路將該子核心電路移除於工作狀態。
由備位變正取的富士通SPARC64Ⅵ處理器
在日本大型電腦市場上聞名的富士通(Fujitsu),在獲得SUN Microssystem昇陽電腦授權UltraSPARC處理器相容架構的SPARC64Ⅳ、SPARC64Ⅴ架構之後,藉由自身在製程技術的掌控、研發團隊的努力下,研發進展超越原設計者;加上SUN昇陽隨後的CPU研發策略轉向,雙方簽訂了APL(Advanced Product Line)的計畫,將整合SUN與Fujitsu雙方高階伺服器的產品線與客戶交接到SPARC64系列。
在2004年10月微處理器論壇,Fujitsu公布代號Olympus的新一代雙核心處理器SPARC64Ⅵ規格。SPARC64Ⅵ是以兩顆SPARC64Ⅴ的處理器核心疊加而成,每個SPARC64 CPU具備256KB的L1快取記憶體(128KB指令,128KB資料),兩個SPARC64核心外接並共享6MB快取記憶體,每個核心也具備兩線緒執行能力(Two way CMT),因此一顆實體SPARC64Ⅵ具備四線緒平行執行能力。它採用90nm製程銅導線、10道金屬層佈線製造,總電晶體數目達6億9千萬顆(690M Transistors),矽晶粒面積則為400mm2。推出時脈從2.4GHz起跳。
《圖五 Fujitsu SPARC64Ⅵ處理器與運作單元圖(資料來源:Fujitsu網站、MPF2006技術文獻)》 |
|
除了具備雙核心、四線緒執行能力之外,SPARC64Ⅵ也針對原先CPU核心架構進行改良,將硬體資料預先擷取機制以及指令碼分支預測能力強化、加倍位址轉換的緩衝器等等,增加RegisterWindow實體暫存器數目,加倍浮點運算單元,也引進代號Jupiter的新型系統匯流排,透過多條單向的資料傳輸路徑提升載入和儲存的效率。Fujitsu宣稱,新一代以90nm製程打造的SPARC64Ⅵ處理器,每顆CPU核心能較昇陽上一代SPARCV處理器提升25%的浮點運算效能,一個實體處理器插槽更能提升2.5倍浮點運算效能。
在伺服器強調的RAS上,富士通SPARC64Ⅵ系列CPU,從每一個指令預擷取、解碼、位址載入儲存、浮點運算單元的路徑等,全矽晶片幾乎99.96%區域(其餘為錯誤也不會造成損害區域),具備ECC錯誤即時修正能力,以及獨特的指令執行錯誤重試功能,更是讓富士通能繼續在日本大型電腦市場上稱霸一方的拿手絕活。
針對IBM POWER6的來勢兇兇,Fujitsu也在2006年10月微處理器論壇上宣佈,將針對大型電腦版本的SPARC64Ⅵ處理器追加十進位浮點運算單元,同時也預告了以65奈米製程打造的四核心SPARCⅦ處理器的計畫。四核心八線緒的SPARCⅦ將以2.7GHz時脈起跳,預計2007年下半到2008年上半年之間推出。
英特爾雙核心四線緒Dual-core Itanium 9000(Montecito)
於2004秋季IDF揭露,拖延半年總算於2006年七月正式推出的英特爾新世代Itanium家族的新成員─Montecito,正式名稱為Dual-Core Itanium 9000系列。也是英特爾針對EPIC(Explict ParallelInstruction Computing)或稱為IA64架構的第一顆雙核心的處理器。其中最高等級的為1.6GHz、具備12MB x 2(24MB)L3快取記憶體的9050系列。
Dual-Core Itanium以兩組Itanium2(Madison)核心疊加起來,每個CPU核心具備獨立的32KB L1 Cache、1MB L2 I-Cache、256KB L2 D-Cache,並各自擁有12MB的第三階快取記憶體;90奈米應變矽製程,電晶體數量17億兩千萬顆(1.72Billions Transistors),矽晶面積596mm2的伺服器CPU。預料今年底推出的Montvale,則會藉助65奈米製程技術,將矽晶面積微縮到400mm2以下。
《圖六 Intel Dual-core Itanium 9050(Montecito)處理器結構與矽晶電路圖》 |
|
Dual-Core Itanium每個子CPU核心可以開啟兩個執行線緒做2-Way SMT(Simutaneous Muli-Threading),因此一顆Dual-Core Itanium(Montecito)就具備4-Way SMT、四顆邏輯處理器或執行四線緒的執行能力。同時Montecito處理器能搭配原先Itanium、Itanium2的匯流排介面,既有的Itanium伺服器系統,也可以以換裝Montecito處理器卡匣的方式,升級到具備晶片多線緒等級的平行運算能力。
藉由Foxton節電管理技術的協助,能將未使用的邏輯處理器、快取記憶體以及對外I/O部份依需要動態關閉或開啟,並依負載動態調升或調降時脈與電壓,Dual-core Itanium平均設計功率約104W。而Pellston快取可靠性技術,CPU核心電路每次存取快取記憶體時,會即時做一次ECC檢查,若發生錯誤而且可以修正,則重新寫回修正後的資料到快取記憶體,並隨即讀取出來反覆檢查,若檢查過仍然發生錯誤,或者一開始就發生兩個資料位元的錯誤,則會自動關閉那個發生ECC錯誤的快取記憶體區域,但其他運作正常的快取記憶體區域仍可繼續使用。
Itanium/Itanium2以及Dual-Core Itanium等EPIC(IA64)指令集架構的特性,就是剔除掉以往過於複雜的非循序執行(Out of Order Execution;OOOE)指令集分派電路,藉助外部編譯軟體以及內部超長指令集架構的相互配合,把軟體程式碼編譯成執行單元指令互不衝突的指令群,才能發揮超長指令集平行處理的效能。當EPIC架構以雙核心搭配晶片多線緒實作下,受限於IA64核心架構的OOOE非循序執行特性,許多執行緒無法藉助硬體來分均分派每個邏輯處理器,因此在Dualcore Itanium處理器要執行多線緒應用軟體,得仰賴編譯器重新針對Dual-core Itanium特性重新編譯並做排程最佳化,才有可能充分發揮雙核四緒的執行效能。
??
??
??
??
4