????
????構(gòu)造塊
????
???? 大多數(shù)的x86服務(wù)器供應(yīng)商使用的都是Intel的標(biāo)準(zhǔn)芯片組。這對于“白牌機(jī)”供應(yīng)商(因?yàn)樗鼈儫o力支付研究和開發(fā)的費(fèi)用)和其它供應(yīng)商(如戴爾,它提前放棄了研究和開發(fā)方面的相關(guān)費(fèi)用)當(dāng)然是一個福音。不過,對于IBM而言,這意味著一個可以充分發(fā)揮自己雄厚的系統(tǒng)專業(yè)知識、創(chuàng)建可擴(kuò)展性更高的解決方案的大好機(jī)會。這一戰(zhàn)術(shù)正是IBM的常規(guī)戰(zhàn)略。IBM往往看好可以利用它們的人才資源、并對競爭產(chǎn)品具有絕對優(yōu)勢的市場,避免進(jìn)入那些高度競爭、對價格十分敏感的市場(如PC)。
????
???? XA-64e或者“Hurricane”芯片組是IBM新一代x86芯片組,它的設(shè)計(jì)用途是從簡單的單路處理器服務(wù)器和工作站擴(kuò)展到具有雙核處理器的64P系統(tǒng)。因?yàn)槌薝nisys的ES7000和IBM的xSeries,很少有大型的x86服務(wù)器,所以,有點(diǎn)難以找到X3 Architecture的比較點(diǎn)。就像Bradicich博士在他的談話中指出的,X3最自然的比較對象是它的前代產(chǎn)品,即EXA2芯片組,因?yàn)镮BM在這兩款產(chǎn)品上擁有豐富的信息。X3象征著在前一代芯片組上取得了巨大的進(jìn)步,它支持雙667MHz前端總線、探聽過濾器(snoopfilter)、芯片內(nèi)基于目錄的一致性機(jī)制、虛擬高速緩存、PCI-X2.0和DDR2內(nèi)存。
????
???? 像大多數(shù)大型系統(tǒng)一樣,X3使用小型4路服務(wù)器(雙核為8路)構(gòu)造塊并將它們連接成更大的系統(tǒng)。每個4路都有本地內(nèi)存、I/O、探聽過濾器(snoopfilter)和芯片內(nèi)目錄。最多可將8個4路連接在一起,形成32個處理器的系統(tǒng)(使用雙核芯片可達(dá)64路)。下面的圖1介紹了一個quad的具體情況:
????
????
????
????單個Quad(4路)的X3芯片組的情況(基于IBM的幻燈片)
????
???? X3Architecture是在2005年2月22日發(fā)布的,eServerx366已從3月29日開始提供。x366使用的是Intel的XeonMP芯片,為該系統(tǒng)發(fā)布的第一個基準(zhǔn)測試使用的是CranfordXeonMP(3.66GHz、1MBL2高速緩存)。IBM提交了兩組4路TPC-C結(jié)果;一個使用的是MSSQL,一個使用的是IBM自己的DB2?;贒B2的系統(tǒng)以大約9KTpmC的微弱差距敗給了MSSQL系統(tǒng)(基于DB2的系統(tǒng)是141KTpmC,而MSSQL系統(tǒng)是150KTpmC)[3]。
????
????一致性機(jī)制
????
???? 對于使用x86MPU的大型系統(tǒng)制造商而言,最復(fù)雜的地方在于一致性。IntelCPU使用寫入無效、基于廣播的窺探協(xié)議來強(qiáng)制執(zhí)行高速緩存一致性。盡管這是最簡單的方法,而且可為小型配置(4路及以下)提供最短的延時,但是,不適用于擴(kuò)展到4路以上。在大型系統(tǒng)中,會消耗太多的帶寬用于一致性信息的廣播,幾乎沒有給實(shí)際的數(shù)據(jù)留下什么空間。幾乎每個8路以上專有系統(tǒng)都要依靠這種基于可擴(kuò)展性更高的、目錄更簡明的高速緩存一致性模式,但是,這一方法在應(yīng)用到較小的系統(tǒng)時開銷太大。X3折衷了這兩種方法,對節(jié)點(diǎn)間通信量使用的是混合的目錄/廣播機(jī)制和虛擬的L4高速緩存,對節(jié)點(diǎn)內(nèi)部通信量使用的是探聽過濾器(snoopfilter)。我們首先討論探聽過濾器,然后,討論節(jié)點(diǎn)間的一致性機(jī)制。
????
????探聽過濾器
????
???? 每個可擴(kuò)展性控制器都有48Mbits的eDRAM,組成8組,每組6Mbits。整個結(jié)構(gòu)是一個由ECC保護(hù)的、具有192k行的9路相聯(lián)表。每行都有9路最近的高速緩存行請求以及高速緩存行的MESI(ModifiedExclusiveSharedorInvalid)狀態(tài)。因?yàn)閄eon處理器中的每個高速緩存行都由2個區(qū)段(每個區(qū)段64字節(jié))構(gòu)成的,所以,整個結(jié)構(gòu)可以高速緩存216MB的數(shù)據(jù)(9路x192K項(xiàng)x128字節(jié))。在只有一個節(jié)點(diǎn)時,整個表可用作探聽過濾器。Hurricane芯片組擁有兩個總線線段,探聽過濾器在這兩個段之間分割總線通信量。在出現(xiàn)高速緩存未命中時,一個探聽命令放到CPU總線上,探聽過濾器截取該命令,并確定是否必須將探聽命令傳遞到該4路中的另一個總線線段上。如果讀取請求在同一總線上的另一個處理器,則取消探聽過濾器訪問。如果不在另一個處理器上,探聽過濾器將確定是否進(jìn)行下一個操作。如果讀取請求不在探聽過濾器中,則直接從內(nèi)存返回?cái)?shù)據(jù)。如果探聽過濾器表明,請求的目標(biāo)高速緩存行在另一個總線線段上,則該探聽過濾器將探聽指向另一總線線段。如果另一個段仍然擁有該高速緩存行,則將請求轉(zhuǎn)向此總線線段。如果另一個線段不再擁有目標(biāo)高速緩存行,則從內(nèi)存返回?cái)?shù)據(jù)。因?yàn)閰f(xié)議是寫入無效的,所以必須始終將寫入請求傳遞到擁有所查詢的高速緩存行副本的任何總線線段上。下面的圖2顯示了在讀取請求上使用探聽過濾器的好處。與使用簡單的轉(zhuǎn)發(fā)器相比,探聽過濾器在4路系統(tǒng)上可以提升10-15%的性能。
????
????
????
????探聽過濾器對于讀取請求的好處
????
????遠(yuǎn)程目錄和vL4高速緩存
????
???? 在啟動具有多個節(jié)點(diǎn)的系統(tǒng)時,BIOS將48Mbits的eDRAM分成探聽過濾器和遠(yuǎn)程目錄(劃分比率可能是8:1、7:2、6:3等等)。這種分區(qū)已經(jīng)根據(jù)系統(tǒng)的大小在BIOS中進(jìn)行了硬編碼;32路系統(tǒng)的節(jié)點(diǎn)間通信量明顯地比8路系統(tǒng)的多,因此應(yīng)該擁有一個更大的遠(yuǎn)程目錄。這種化分操作將來有可能由用戶進(jìn)行控制,但是,很可能僅對HPC或者徹底了解應(yīng)用程序擴(kuò)展特征的應(yīng)用程序用戶本身有吸引力。遠(yuǎn)程目錄會跟蹤那些通過編址映射到主機(jī)內(nèi)存、并由另一個節(jié)點(diǎn)檢查的數(shù)據(jù),它使用的格式與探聽過濾器使用的格式相同。
????
???? 在節(jié)點(diǎn)請求一個地址在遠(yuǎn)程節(jié)點(diǎn)上的內(nèi)存的高速緩存行時(本地處理器緩存和vL4都未命中),源節(jié)點(diǎn)將發(fā)送一個廣播探聽到系統(tǒng)中其它的所有節(jié)點(diǎn)上。遠(yuǎn)程目錄經(jīng)過了巧妙的設(shè)計(jì),僅僅支持單個節(jié)點(diǎn)向任何給定的探聽廣播響應(yīng)。當(dāng)一個節(jié)點(diǎn)接收另一個節(jié)點(diǎn)的請求且它的探聽過濾器顯示出它擁有該高速緩存行時,數(shù)據(jù)會發(fā)送到請求節(jié)點(diǎn)。至多一個節(jié)點(diǎn)可以在它的探聽過濾器中顯示其擁有該緩存行。特定請求的主節(jié)點(diǎn)(Homenode)定義為請求的地址映射的內(nèi)存所在的節(jié)點(diǎn)。當(dāng)非主節(jié)點(diǎn)(off-node)請求到達(dá)時,該主節(jié)點(diǎn)會會同時檢查它的探聽過濾器和遠(yuǎn)程目錄。如果遠(yuǎn)程目錄顯示,高速緩存行的所有權(quán)已經(jīng)提供給另一個節(jié)點(diǎn),則主節(jié)點(diǎn)不會返回?cái)?shù)據(jù)。如果該請求在探聽過濾器中,或者不在遠(yuǎn)程目錄中,則主節(jié)點(diǎn)會返回?cái)?shù)據(jù)。下面的圖3顯示了一個內(nèi)存事務(wù)的例子。
????
????
????
????4個Quad系統(tǒng)中的遠(yuǎn)程目錄行為
????
???? 在多節(jié)點(diǎn)系統(tǒng)中,虛擬L4高速緩存用于提高X3的可擴(kuò)展性。在啟動時,BIOS會留出一個單獨(dú)的內(nèi)存區(qū),將其用作虛擬高速緩存。盡管留出的內(nèi)存量是硬編碼的,它很可能可以由用戶進(jìn)行配置,供了解相關(guān)知識的用戶使用(很可能又是HPC用戶)??蓴U(kuò)展性控制器使用vL4來存儲以前請求的非本地高速緩存行(即高速緩存行在可擴(kuò)展性控制器相對較遙遠(yuǎn)的地方)。這提高了性能(因?yàn)関L4服務(wù)的數(shù)據(jù)請求的速度比節(jié)點(diǎn)間數(shù)據(jù)請求快)并且確保了內(nèi)存一致性(因?yàn)槊總€高速緩存行在內(nèi)存中都有唯一的位置)。因此,在上面的圖3中,NEquad將從它的vL4(或者高速緩存本身)而不是從內(nèi)存中發(fā)送所請求的數(shù)據(jù)。
????
???? 如上所述,選擇這一協(xié)議的目的是為了平衡目錄協(xié)議(可擴(kuò)展的延時)的好處和廣播協(xié)議(低最初延時且成本低)的好處。我們已經(jīng)與JohnBorkenhagen博士稍微深入地討論了這一點(diǎn),JohnBorkenhagen博士是IBM研究RS64IV微處理器杰出的工程師,也是X3的首席架構(gòu)師。根據(jù)Borkenhagen博士的看法,模擬實(shí)驗(yàn)顯示,混合協(xié)議在4quad及4quad以下配置上優(yōu)于目錄協(xié)議,在8quad性能上和目錄協(xié)議相當(dāng)。這似乎有點(diǎn)不尋常,但重要的是要記住,點(diǎn)對點(diǎn)協(xié)議需要提前知道目的地,這就需要額外查詢關(guān)鍵的請求路徑,而廣播協(xié)議則沒有這一操作。
????
????內(nèi)存子系統(tǒng)
????
???? X3中改進(jìn)最明顯的部分是內(nèi)存分級結(jié)構(gòu)。前一代EXA2同時支持Itanium和Xeon處理器。因?yàn)榍岸丝偩€具有不同的物理特性,因此,需要使用雙芯片結(jié)構(gòu),請參見圖4;其中一個芯片處理前端總線(FSB),另一個芯片包含內(nèi)存和I/O控制器。令人遺憾的是,這導(dǎo)致產(chǎn)生了額外的芯片到芯片的互連,且處理器和I/O與內(nèi)存之間出現(xiàn)了相應(yīng)的延時,從而降低了性能。為了緩解這一損失,添加了L4高速緩存,并與前端總線控制器相連接。
????
???? 在將版本鏡像到pSeries系統(tǒng)體系架構(gòu)的遷移中,X3消除外部的芯片互連,芯片組功能大部分整合到了一個芯片上。因此,內(nèi)存存取的互連跳躍少了一個,從而顯著地降低了延時。這還允許IBM在設(shè)計(jì)中完全去掉L4高速緩存,進(jìn)一步降低成本和設(shè)計(jì)復(fù)雜性。結(jié)果,X3的本地內(nèi)存延時達(dá)到了驚人的108ns,而前一代為265ns。在下面的圖4中可以看到這些變化。
????
????
????
????EXA2與X3內(nèi)存子系統(tǒng)的比較(基于IBM的幻燈片)
????
???? 前述芯片整合還可以消除一個關(guān)鍵的瓶頸:即內(nèi)存控制器和可擴(kuò)展控制器之間的連接。在EXA2中,該互連只能提供3.2GB/s的帶寬,這降低了8通道DDR內(nèi)存架構(gòu)的效能,因?yàn)樵搩?nèi)存架構(gòu)理論上可以提供12.8GB/s的帶寬。比較起來,X3能夠獲得四個DDR2-400控制器的全部優(yōu)勢,可跨8個通道提供21.3GB/s的帶寬。注意:這顯著地超過了前端總線能夠提供的帶寬,因此,大約有一半的內(nèi)存帶寬專門提供給了I/O設(shè)備和遠(yuǎn)程quad。
????
????RAS特性
????
???? IBM還提供一系列供X3內(nèi)存子系統(tǒng)使用的RAS特性。該內(nèi)存控制器支持熱插拔、擦除(scrubbing)、位引導(dǎo)(bitsteering)和鏡像。DavidWang在他的文章“ErrorCorrectingMemory——第一部分”中十分詳細(xì)地介紹了最先的三個特性,在此特別推薦。內(nèi)存鏡像相當(dāng)簡單;它只是復(fù)制內(nèi)存中的內(nèi)容,模擬硬盤驅(qū)動器RAID-1的作用。這也有降低一半內(nèi)存容量和增加成本等令人遺憾的副作用。
????
????I/O子系統(tǒng)
????
???? X3的I/O也修改了;盡管從區(qū)塊圖表上看,其中的一些差異并非一目了然。實(shí)際上,I/O系統(tǒng)使用InfiniBandelectricals(可輕易地從當(dāng)?shù)氐腎BMMicroelectric分支機(jī)構(gòu)得到)與一對64位PCI-X2.0控制器連接。每個PCI-X總線以266MHz的速度全速運(yùn)行,通過6個插槽提供總計(jì)12GB/s的帶寬,這是EXA2芯片組的三倍??刂破魇褂?2位循環(huán)冗余校驗(yàn)(CRC)進(jìn)行錯誤檢測,支持熱添加和插拔,但是沒有ECC功能。盡管PCI-X是當(dāng)前通用的I/O技術(shù),IBM將來仍然會升級X3,使其支持PCIExpressx8。
????
????名異實(shí)同的IOMMU
????
???? 盡管帶寬的確給人以深刻的印象,X3最顯著的I/O特性并不是那么直觀,尤其是I/O內(nèi)存管理單元(IOMMU)。大多數(shù)I/O設(shè)備通過名為DMA(DirectMemoryAccess,直接內(nèi)存存?。┑牧鞒膛c內(nèi)存協(xié)作,它繞過了CPU。結(jié)果,DMA常常要使用物理內(nèi)存,因?yàn)樘摂M地址轉(zhuǎn)換是使用TLBs和頁面表在CPU中執(zhí)行的。IOMMU與支持DMA的設(shè)備一起工作為它們進(jìn)行虛擬地址轉(zhuǎn)換,所以,這些設(shè)備能夠繞過CPU并執(zhí)行DMA。IBM對于IOMMU幾乎不陌生;IBM首次在1971年獲得了這一概念的專利,盡管在1985年IBM的PR/SM首次推出后才進(jìn)行了實(shí)施?;谶@一歷史,IOMMU成為IBM服務(wù)器的標(biāo)配就一點(diǎn)也不令人驚奇了,盡管IBM的專門術(shù)語將其稱為轉(zhuǎn)換控制項(xiàng)(TranslationControlEntries,TCE)
????
???? IBM又重新將p/i/zSeries系統(tǒng)中的IOMMU用于X3。IOMMU理論上支持p/i/zSeriesIOMMU中的所有特性。它支持4GBI/O地址空間,修改映射表需要管理程序權(quán)限。不過,問題是它需要BIOS和操作系統(tǒng)對該功能的支持。將來的Linux或者Windows很有可能擁有適當(dāng)?shù)墓δ埽?,目前還不具備。另一個備選方案,這在不久的將來也更有可能實(shí)施的方案是,發(fā)布可以利用IOMMU的管理程序(或者虛擬機(jī)監(jiān)控程序/VMM)。很顯然,備選方案將會是VMware和Xen項(xiàng)目。利用IOMMU的管理程序會顯著地改善X3的I/O子系統(tǒng)RAS,對于x86服務(wù)器生態(tài)系統(tǒng)也是一個受歡迎的改進(jìn)。
????
????可擴(kuò)展端口
????
???? EXA2上的可擴(kuò)展性端口也得到了明顯的改善。像I/O子系統(tǒng)一樣,可擴(kuò)展性端口也使用InfiniBandelectricals。X3向其它quad提供三個鏈接,每個鏈接提供最高6.4GB/s的帶寬,并且,像I/O子系統(tǒng)一樣提供熱故障切換和32位CRC,但是,沒有ECC。遠(yuǎn)程延時也從735ns下降到222ns,僅是本地延時的兩倍,這是一個非常巨大的成就。這些數(shù)字反映的是在可擴(kuò)展性端口上一次跳躍的往返存取時間。對于節(jié)點(diǎn)超過4個系統(tǒng),將引入兩個跳躍。順便說一下,quads可與最多兩個可擴(kuò)展性端口連接。僅在8P配置上才有此可能,但是,使用兩個可擴(kuò)展性端口意味著可以承受其中一個端口出現(xiàn)故障,且可用的節(jié)點(diǎn)間帶寬將翻一番,達(dá)到12.8GB/s。RAS優(yōu)勢被視為是更重要的貢獻(xiàn),這并不令人吃驚,盡管還不清楚這是否是因?yàn)轭~外的帶寬發(fā)揮了邊際性能的影響,還是因?yàn)镽AS對于IBM的目標(biāo)市場更加關(guān)鍵,或者兩者都有。
????
???? 現(xiàn)在,在討論了X3芯片組的所有主要子系統(tǒng)后,我們來看看Hurricane控制器的電路芯片(die)。如下圖5所示:
????
????
????
????X3可擴(kuò)展性控制器的芯片顯微照片(基于IBM幻燈片)
????
????結(jié)論
????
???? IBM在所有OEM之中具有獨(dú)一無二的地位;作為垂直集成的計(jì)算機(jī)廠商和大型機(jī)供應(yīng)商,它是客戶最后的選擇。為了利用豐富的技術(shù)傳統(tǒng),IBM投資了1億美元來開發(fā)X3,新一代的xSeries服務(wù)器芯片組。像之前的EXA2芯片組一樣,X3為x86服務(wù)器提供了優(yōu)異的性能和RAS;X3還可以擴(kuò)展到32個插座(如果雙核XeonMP推出,可達(dá)到64P)。IBM的工程設(shè)計(jì)成績令人難忘;在TPC-C中,4路x366在CranfordXeonMP上達(dá)到了150K和141KTpmC,領(lǐng)先最接近的4路Opteron約20k,領(lǐng)先最接近的Xeon約30K(盡管系統(tǒng)使用的是以前的3GHzXeonMP)。Bradicich博士提示,8路X3系統(tǒng)有可能達(dá)到大約220Ktpmc;這和以前研制的16路系統(tǒng)幾乎完全一樣。X3的“最佳性能”很可能是16路配置,盡管還會宣布更大規(guī)模的配置。
????
???? 歷史上看,IBM已經(jīng)將首次在大型機(jī)上開發(fā)的技術(shù)向下遷移到它們的UNIX服務(wù)器,并最終遷移到它們的x86服務(wù)器。盡管面臨著戴爾及其它廠商的價格競爭,越來越多的客戶已經(jīng)選擇使用IBM的xSeries服務(wù)器所具有的高性能和RAS特性(更不用說它們優(yōu)異的支持)。在相當(dāng)長的一段時間內(nèi),這一趨勢很有可能會繼續(xù),盡管將來的xSeries服務(wù)器實(shí)際上會擁有一個實(shí)質(zhì)性的對手。Newisys用于Opteron的HORUS芯片組在技術(shù)上應(yīng)該可與X3競爭,但是還沒有宣布基準(zhǔn)測試得分,到目前為止HORUS也沒有Tier1OEM的支持。
????
???? 總的來說,IBMX3Architecture是可靠的新一代xSeries服務(wù)器平臺。它是前一代的革新,在延時、帶寬和可擴(kuò)展性方面具有許多明顯的改進(jìn),還巧妙地提高了業(yè)已十分顯著的RAS特性。在短期內(nèi),X3的商業(yè)成功幾乎是確定無疑的,且在18-24個月后,還會出現(xiàn)新的產(chǎn)品,IBM在xSeries標(biāo)準(zhǔn)方面應(yīng)該是綽綽有余的。(n109)
????
????
????
電子發(fā)燒友App











評論