從AMD Opteron檢視整合型設計所帶來的困難及挑戰

6月1日,正如外界長期的推測,被Broadcom所併購的ServerWorks,與AMD在臺舉辦了結盟儀式,Broadcom企業運算事業群副總裁Thomas Lagatta與AMD電腦產品群資深副總裁、過去負責K7處理器設計的Dirk Meyer亦參與出席。Broadcom表示,首批ServerWorks的Opteron系統晶片組預計將在今年秋季推出,屆時AMD在企業伺服器市場的競爭力將大幅提升。當然,錦上添花是免不了的,Tyan也同時發表四處理器的2U機架式準系統。此時此刻,在Computex會場,64位元運算口號殺聲震天,加上四大伺服器廠商已經有四分之三推出Opteron伺服器,小廠們亦蠢蠢欲動,AMD的企業市場之路看似一帆風順、前途似錦。

只是,事情真的會有這麼順利嗎?AMD Opteron所遭遇的瓶頸

由於記憶體資料安全性日益受到企業以及伺服器廠商重視,在中高階伺服器市場,除了Chipkill外,Memory Sparing以及可熱抽換的Memory Mirroring已經成為必備的功能,這也是ServerWorks高階系統晶片組引以為傲的強項。但是,在Opteron平臺,ServerWorks卻無能為力-因為記憶體控制器已經整合在Opteron上,而Opteron卻沒有提供這些高階功能(只有×4的Bit Scattering Chipkill)。如果要提供,就需要修改Opteron的設計,也需要推出全新的腳位,正如同AMD只為了要推出使用標準Unbuffered DIMM的雙通道Athlon 64而推出Socket 939一樣。很明顯的,這會對進入中高階伺服器市場造成相當程度的阻礙。

當然,ServerWorks也可能採用Memory Hub接續Opteron的Memory Bus以實作這些功能,但這將會大幅提高晶片組及系統成本,大幅加長的記憶體存取延遲,也會對Opteron標榜的記憶體低延遲特性造成極為不利的影響。除非AMD和ServerWorks一開始就認定Opteron僅限於中低階伺服器市場,否則這將是他們所必須突破的瓶頸。

整合記憶體控制器所帶來的CC-NUMA(Cache Coherence-Non Unified Memory Architecture)分散式記憶體架構,則是另一個隱而不現的疑慮,相較於共用北橋記憶體控制器的「傳統」UMA(Unified Memory Architecture),雖然整體的記憶體頻寬佔有優勢,但是作業系統、BIOS以及應用程式必須針對NUMA進行最佳化,以避免處理器經常對其他處理器的實體記憶體進行存取動作而降低效能。以部分Opteron系統為例,BIOS中提供Static Resource Affinity Table(SRAT)功能,可協助支援NUMA架構的作業系統(如Windows Server 2003和Linux 2.4.20 AMD64核心),將執行緒及記憶體配置,針對處理器和實體記憶體的對應關係進行最佳化,啟動之後往往可以增進超過10%的效能。最佳化的重要性,由此可見一斑。理論上,Opteron可以在不需要glue logic的前提下,實作八處理器系統,但是至今仍尚未出現。NUMA架構所帶來的高複雜性,應該是最大的主因。

伺服器處理器整合記憶體控制器已經行之有年的IBM及Sun,由於長期自行研發中高階伺服器系統,所以可以不惜血本、一口氣就把該具備的功能通通搞定(IBM Power5的記憶體控制器甚至連未來DDR-2的支援都做好了),也以銷售整套系統為主,可隨時讓軟體針對伺服器進行完善的最佳化,自然就不會碰到AMD Opteron目前的問題。英特爾的觀點

過去一年來,英特爾在不同場合,面對著排山倒海般的質疑聲浪,一直針對整合型記憶體控制器的設計進行「消毒」。英特爾認為,除了記憶體規格持續推陳出新、整合式設計會大幅降低處理器的市場壽命外,提升伺服器可靠性的功能亦與日俱增-尤其是記憶體,所以英特爾對於整合記憶體控制器抱持否定態度,以讓晶片組隨時可支援最新的功能。以英特爾在今年春季IDF首度發表的RASUM II規範為例,英特爾今年下半年陸續推出的伺服器晶片組將普遍支援其定義的Memory Mirroring功能。當然,NUMA架構需要軟體環境的最佳化,以及分散式實體記憶體可能降低系統周邊存取主記憶體的效能,也是英特爾的理由之一。

那麼,這是否代表英特爾的決策比較睿智嗎?答案也不見得是肯定的,因為正如銅板有正反兩面,英特爾也將為此付出不少代價。目前處理器走向雙核心及多核心的趨勢已經相當明顯,不採用整合型記憶體控制器,就會讓系統匯流排承受極大的頻寬壓力。除非不惜血本,多處理器核心所共用的北橋記憶體控制器也很難提供足夠的頻寬。該怎麼辦?只剩下大幅加大快取記憶體容量這一千零一招,英特爾和HP就採取這條設計路線。

以英特爾先前公開展示的新款Itanium處理器「Montecito」為例,雖然沿用現有Itanium 2的系統匯流排,但是卻因內建24MB的第三階快取記憶體,讓Montecito變成一個90nm製程下晶粒面積超過600平方公釐、電晶體數目高達17億的超級巨獸,而英特爾目前的Xeon MP處理器也已經到達4MB第三階快取的大關。面對著這樣的伺服器處理器,系統廠商該如何解決高成本、耗電以及散熱的問題?維持快取記憶體的資料可靠性,棘手程度並不亞於主記憶體。對於製程技術已經遭遇瓶頸的英特爾而言,這也是相當大的挑戰。整合記憶體控制器產品設計必須要有充分完善的考量

長期而言,隨著半導體製程技術的演進,正如同處理器逐漸整合多階快取記憶體、系統晶片組支援更多功能,整合記憶體控制器也是一個必然的技術趨勢。事實上,從Opteron推出的這一年來,英特爾的立場也開始鬆動。英特爾亞太區企業型產品事業群行銷部經理楊君傑即表示,在未來,如果FB-DIMM(Fully-Buffered DIMM)及PCI Express應用環境開始成熟,英特爾也將整合型記憶體控制器視為產品設計的選項之一。由於FB-DIMM本身就兼具PCI Express包含熱抽換功能等先進功能,透過PCI Express統合系統I/O,也將大幅降低系統周邊存取分散式記憶體的延遲。換言之,英特爾並非完全拒絕整合型記憶體控制器,而是在等待適當的時機。

不過,無論如何,由於整合型記憶體控制器會大幅降低日後修改系統設計的彈性,所以在設計之初,就應該有著充分完善的考量,以避免日後功能受限的麻煩。AMD預定明年才會推出支援DDR-2記憶體的新款Opteron,也勢必推出全新的腳位,為了避免重蹈覆轍,AMD應該實作更完整的記憶體資料可靠性功能。企業在採購伺服器時,更應該注意這方面的功能支援,以免花了錢還買不到可靠性。為何Memory Mirroring會如此重要?

目前大多數的Chipkill實作方式是透過×4的記憶體裝置(包含模組及顆粒的匯流排寬度),配合四組傳統的ECC,如果任一裝置損壞,則在一組ECC word中,只會造成單位元錯誤,因此可以修正。另外,如果發生軟錯誤,只要不是在同一組ECC word中,最多就可以修正4個錯誤。但是,如果DRAM裝置發生損壞,又同時發生軟錯誤,那就只能偵測、而無法修正了。因此,在此種環境下,可以在運作時更換損換的記憶體模組,就顯得相當重要,而這通常都需要mirroring。

更理想的方式,是透過類似RAID 4/5的方式,這樣可以減少對額外模組的需求(mirroring需要兩倍的模組)。使用RAID 4/5的話,同樣使用Chipkill,但另外加上一個模組,裡面存放的是四個DRAM模組的parity。當ECC發現某個模組損壞時,任何一個模組都可以被更換,因為資料可以從parity模組來重建(和RAID 4/5一樣)。因此,這樣只需要25%的額外記憶體,而不是100%。如果採用RAID 6的話,還可以不需要使用4位元寬的記憶體顆粒,而可以使用更常見的8位元顆粒,更可同時允許兩條模組損壞。不過,RAID 4/5/6相當複雜,成本也高。事實上,目前僅有HP在自行研發的高階伺服器系統晶片組(如ProLiant DL760所採用的F8晶片組)中提供Hot-Plug Memory RAID 4功能,這也是眾多伺服器廠商應該持續改進的目標。文⊙劉人豪

熱門新聞

Advertisement