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











評論