淺談存儲器體系結構的未來(lái)發(fā)展趨勢
對存儲器帶寬的追求成為系統設計最突出的主題。SoC設計人員無(wú)論是使用ASIC還是FPGA技術(shù),其思考的核心都是必須規劃、設計并實(shí)現存儲器。系統設計人員必須清楚的理解存儲器數據流模式,以及芯片設計人員建立的端口。即使是存儲器供應商也面臨DDR的退出,要理解系統行為,以便找到持續發(fā)展的新方法。
本文引用地址:http://dyxdggzs.com/article/201710/367190.htm曾經(jīng)在斯坦福大學(xué)舉辦的熱點(diǎn)芯片大會(huì )上,尋求帶寬成為論文討論的主題,設計人員介紹了很多方法來(lái)解決所面臨的挑戰。從這些文章中,以及從現場(chǎng)工作的設計人員的經(jīng)驗中,可以大概看出存儲器系統體系結構今后會(huì )怎樣發(fā)展。
存儲器壁壘
基本問(wèn)題很明顯:現代SoC時(shí)鐘頻率高達吉赫茲,并且具有多個(gè)內核,與單通道DDR DRAM相比,每秒會(huì )發(fā)出更多的存儲器申請。僅僅如此的話(huà),會(huì )有很顯然的方案來(lái)解決這一問(wèn)題。但是,這背后還有重要的精細結構,使得這一問(wèn)題非常復雜,導致有各種各樣的解決辦法。
SoC開(kāi)發(fā)人員關(guān)注的重點(diǎn)從高速時(shí)鐘轉向多個(gè)內核 , 這從根本上改變了存儲器問(wèn)題。不再是要求一個(gè) CPU每秒有更高的兆字節(MBps) ,現在,我們面臨很多不同的處理器——經(jīng)常是很多不同類(lèi)型的處理器,都要求同時(shí)進(jìn)行訪(fǎng)問(wèn)。而且,存儲器訪(fǎng)問(wèn)的主要模式發(fā)生了變化??茖W(xué)和商業(yè)數據處理任務(wù)通常涉及到大量的局部訪(fǎng)問(wèn),或者更糟糕的是采用相對緊湊的算法很慢的傳送大量的數據。配置適度規模的本地SRAM或者高速緩存,這類(lèi)任務(wù)的一個(gè)CPU對主存儲器的需求并不高。
DRAM芯片設計人員利用了這種易用性,以便實(shí)現更高的密度和能效。相應的,以可預測的順序申請大塊數據時(shí),DRAM實(shí)現了最佳比特率——它允許塊間插。如果SoC不采用這種常用模式,存儲器系統的有效帶寬會(huì )降低一個(gè)數量級。
新的訪(fǎng)問(wèn)模式
不好的是,SoC的發(fā)展使得DRAM設計人員的假設難以實(shí)現。多線(xiàn)程以及軟件設計新出現的趨勢改變了每一內核訪(fǎng)問(wèn)存儲器的方式。多核處理以及越來(lái)越重要的硬件加速意味著(zhù)很多硬件要競爭使用主存儲器。這些趨勢使得簡(jiǎn)單的局部訪(fǎng)問(wèn)變得復雜,DRAM帶寬與此有關(guān)。
多線(xiàn)程意味著(zhù),當一個(gè)存儲器申請錯過(guò)其高速緩存時(shí),CPU不會(huì )等待:它開(kāi)始執行不同的線(xiàn)程,其指令和數據區會(huì )在與前面線(xiàn)程完全不同的物理存儲區中。仔細的多路高速緩存設計有助于解決這一問(wèn)題,但是最終,連續DRAM申請仍然很有可能去訪(fǎng)問(wèn)不相關(guān)的存儲區,即使每一線(xiàn)程都仔細的優(yōu)化了其存儲器組織。相似的,競爭同一DRAM通道的多個(gè)內核也會(huì )擾亂DRAM訪(fǎng)問(wèn)順序。
軟件中的變化也會(huì )產(chǎn)生影響。表查找和鏈接表處理會(huì )對大數據結構產(chǎn)生隨機分散存儲器訪(fǎng)問(wèn)。數據包處理和大數據算法將這些任務(wù)從控制代碼轉移到大批量數據處理流程,系統設計人員不得不專(zhuān)門(mén)考慮怎樣高效的處理它們。虛擬化把很多虛擬機放到同一物理內核中,使得存儲器數據流更加復雜。
傳統的解決方案
這些問(wèn)題并不是什么新問(wèn)題——只是變復雜了。因此,芯片和系統設計人員有很多成熟的方法來(lái)滿(mǎn)足越來(lái)越高的基帶帶寬需求,提高DRAM的訪(fǎng)問(wèn)效率。這些方法包括軟件優(yōu)化、高速緩存以及部署DRAM多個(gè)通道等。
大部分嵌入式系統設計人員習慣于首先會(huì )想到軟件優(yōu)化。在單線(xiàn)程系統中,軟件在很大程度上過(guò)度使用了存儲器通道,能耗較高。但是在多線(xiàn)程、多核系統中,軟件開(kāi)發(fā)人員對DRAM控制器上的實(shí)際事件順序的影響很小。一些經(jīng)驗表明,他們很難改變實(shí)際運行時(shí)數據流模式。DRAM控制器可以使用重新排序和公平算法,編程人員對此并不清楚。
高速緩存的效率會(huì )更高——如果高速緩存足夠大 ,能夠顯著(zhù)減少DRAM數據流。例如,在嵌入式多核實(shí)現中,相對較小的L1指令高速緩存與規模適度的L2一同工作,能夠完全容納所有線(xiàn)程的熱點(diǎn)代碼,有效的減少了對主存儲器的指令獲取數據流。相似的,在信號處理應用中,把相對較少的數據適配到L2或者本地SRAM中,可以去掉濾波器內核負載。要產(chǎn)生較大的影響,高速緩存不一定要實(shí)際減少DRAM申請總數量——只需要保護主要申請源不被其他任務(wù)中斷,因此,編程人員能夠優(yōu)化主要任務(wù)。
當芯片設計人員無(wú)法確定將要運行在SoC中的各種任務(wù)時(shí),則傾向于只要成本允許,提供盡可能多的高速緩存:所有CPU內核和加速器的L1高速緩存、大規模共享L2,以及越來(lái)越大的管芯L3。在熱點(diǎn)芯片大會(huì )上,從平板電腦級應用處理器到大量的服務(wù)器SoC,有很多高速緩存的實(shí)例。
在低端,AMD的Kabini SoC (圖1) 就是很有趣的研究。AMD資深研究員Dan Bouvier介紹了這一芯片,它包括四個(gè)Jaguar CPU內核,共享了2兆字節(MB) L2高速緩存,而每個(gè)Jaguars有32千字節(KB)指令和數據高速緩存——并不是非傳統的協(xié)議。更驚奇的是芯片的圖形處理器,除了常用的顏色高速緩存以及用于渲染引擎的Z緩沖,還有它自己的L1指令高速緩存和128 KB L2。
圖1.AMD的Kabini SoC目標應用是平板電腦,但是仍然采用了大規模高速緩存,顯著(zhù)提高了存儲器帶寬。
而在高端則是IBM的POWER8微處理器(圖2),IBM首席網(wǎng)絡(luò )設計師Jeff Stuecheli介紹了這一款芯片。這一650 mm2、22 nm芯片包括12個(gè)POWER體系結構CPU內核,每個(gè)都有32 KB指令和64 KB數據高速緩存。每個(gè)內核還有自己512 KB的SRAM L2高速緩存,12 L2共享大容量96 MB的嵌入式DRAM L3。Stuecheli介紹說(shuō),三級連續高速緩存支持每秒230吉字節(GBps)的存儲器總帶寬。有趣的是,芯片還含有一個(gè)小容量會(huì )話(huà)存儲器。
圖2.IBM的POWER8體系結構在SoC管芯上實(shí)現了三級高速緩存。
在這兩個(gè)SoC之間是為微軟的XBOX One提供的多管芯模塊(圖3),微軟的John Snell在大會(huì )上對此進(jìn)行了介紹。模塊含有一個(gè)SoC管芯,提供了豐富的存儲器資源。SoC有8個(gè)AMD Jaguar內核,分成兩組,每組4個(gè)。每一內核有32 KB的L1指令和數據高速緩存。每4個(gè)一組的CPU內核共享一個(gè)2 MB L2。此外,管芯上還有4個(gè)8 MB共享SRAM,它們至少為CPU提供了109 GBps的帶寬。
圖3.微軟的XBOX One結合了大容量高速緩存、本地SRAM以及模塊內DRAM,以低成本實(shí)現了更大的帶寬。
使用DRAM
而XBOX One SoC還揭示了更多的信息。無(wú)論您有多大的管芯高速緩存,都無(wú)法替代巨大的DRAM帶寬。SoC管芯包括四通道DDR3 DRAM控制器,為模塊中的8 GB DRAM提供了68 GBps峰值帶寬。
DRAM多通道的概念并不限于游戲系統。幾年前,數據包處理SoC就開(kāi)始提供多個(gè)完全獨立的DRAM控制器。但是這種策略帶來(lái)了挑戰。存儲器優(yōu)化會(huì )更加復雜,系統設計人員必須決定哪種數據結構映射哪一通道或者控制器。當然,還有可能要求自己的DRAM控制器完成某些高要求任務(wù),在一些嵌入式應用中,這些控制器是非常寶貴的。而DRAM多通道會(huì )很快用完引腳,用盡I/O功耗預算。
即使在FPGA設計中,引腳數量也是一個(gè)問(wèn)題,設計人員應能夠非常靈活的重新組織邏輯,選擇較大的封裝。Altera的高級系統開(kāi)發(fā)套件(圖4)電路板主要用于原型開(kāi)發(fā),實(shí)現寬帶設計,應用領(lǐng)域包括HD視頻處理、7層數據包檢查,或者科學(xué)計算等,這是非常有用的套件。
圖4.Altera的高級系統開(kāi)發(fā)套件極大的滿(mǎn)足了兩片大規模FPGA的存儲器需求。
Mark Hoopes是Altera廣播應用專(zhuān)家,解釋了電路板應提供很大的存儲器帶寬,不需要詳細的知道用戶(hù)在兩片大規模FPGA中實(shí)現的某些設計。因此,設計電路板時(shí),Hoopes檢查了現有Altera視頻知識產(chǎn)權(IP)的存儲器使用模式,調研了外部設計團隊的需求。
結果讓人清醒。Hoopes說(shuō):“當您查看每一項功能時(shí),看起來(lái)都需要存儲器。但是,當您把功能結合起來(lái)后,其需求非常大。在一個(gè)例子中,應用程序開(kāi)發(fā)人員要求為每一片FPGA提供全256位寬DDR3接口以及四通道QDR II SRAM。即使是1932引腳封裝,這也無(wú)法實(shí)現。因此,設計人員最終采用了四個(gè)SRAM塊以及一個(gè)192位DDR3接口。
Hoopes指出了多個(gè)存儲器控制器對于SoC非常重要。他說(shuō),IP開(kāi)發(fā)人員通常能夠熟練的在子系統級優(yōu)化存儲器,甚至能夠提供他們自己經(jīng)過(guò)優(yōu)化的DRAM控制器。還可以讓一個(gè)DRAM通道專(zhuān)門(mén)用于子系統,讓其他IP模塊運行子系統設計人員的優(yōu)化措施。
未來(lái)發(fā)展
在開(kāi)發(fā)板上還有另一個(gè)有趣的模塊:每片FPGA連接了一個(gè)MoSys帶寬引擎。這一芯片含有72 MB的DRAM,組織成256塊來(lái)仿真SRAM時(shí)序,調整用于表存儲等局部訪(fǎng)問(wèn)應用。非常獨特的是,芯片使用了一個(gè)高速串行接口,而不是常用的DDR或者QDR并行接口。Hoopes強調說(shuō):“接口是我們包含這些組成的一個(gè)原因。我們在FPGA中有未使用的收發(fā)器。”實(shí)際是,MoSys先使用了它們。
三種理念——我們都已經(jīng)分別了解了,能夠融合來(lái)定義今后的存儲器體系結構。這些理念是大規模嵌入式存儲器陣列、使用了容錯協(xié)議的高速串行接口,以及會(huì )話(huà)存儲器。
MoSys芯片和IBM POWER8體系結構很好的體現了前兩種理念。CPU SoC通過(guò)第二個(gè)芯片與DRAM通信:Centaur存儲器緩沖。一個(gè)POWER8能夠連接8個(gè)Centaurs,每個(gè)都通過(guò)一個(gè)專(zhuān)用每秒9.6吉比特(Gbps)的串行通道進(jìn)行連接。每個(gè)Centaur含有16 MB存儲器——用于高速緩存和調度緩沖,以及四個(gè)DDR4 DRAM接口,還有一個(gè)非常智能的控制器。IBM將Centaur芯片放在DRAM DIMM上,避免了在系統中跨過(guò)8個(gè)DDR4連接器。這樣,設計集中了大量的存儲器,最終明智的采用了快速串行鏈接,由重試協(xié)議進(jìn)行保護。
另一熱點(diǎn)芯片實(shí)例來(lái)自MoSys,在大會(huì )上,他們介紹了其下一代Bandwidth Engine 2。根據所采用的模式,Bandwidth Engine 2通過(guò)16個(gè)15 Gbps的串行I/O通路連接處理子系統。芯片含有四個(gè)存儲器分區,每個(gè)包括64塊32K 72位字:在第一代,總共72 MB。很多塊通過(guò)智能的重新排序控制器以及大容量片內SRAM高速緩存,隱藏了每一比特單元的動(dòng)態(tài)特性。
除了Centaur芯片所宣布的特性,Bandwidth Engine 2還在管芯上提供了會(huì )話(huà)功能。各種版本的芯片提供板上算術(shù)邏輯單元,因此,統計采集、計量,以及原子算法和索引操作等都可以在存儲器中進(jìn)行,不需要將數據實(shí)際移出到外部串行鏈路上。內部算術(shù)邏輯單元(ALU)很顯然可以用于旗語(yǔ)和鏈接表應用。而其他的硬件使得芯片有些專(zhuān)用的特性。MoSys技術(shù)副總裁Michael Miller介紹了四種不同版本的Bandwidth Engine 2,它們具有不同的特性。
今后的篇章可能不是由CPU設計師撰寫(xiě)的,而是取決于低成本商用DRAM供應商。Micron技術(shù)公司具體實(shí)現了混合立方存儲器(HMC)規范,開(kāi)發(fā)原型,宣布了他們的接口合作伙伴。 HMC是一組DRAM塊,堆疊成邏輯管芯,通過(guò)一組高速串行通路連接系統的其他部分。 Micron并沒(méi)有公開(kāi)討論邏輯管芯的功能,據推測,可能含有DRAM控制和緩沖,以仿真SRAM功能,還有可能包括專(zhuān)用會(huì )話(huà)功能。
邏輯嵌入在存儲器子系統中這一理念包括了很有趣的含義。能夠訪(fǎng)問(wèn)大量的邏輯柵極和高速緩存的本地DRAM控制器實(shí)際上可以虛擬化去除劣化存儲器帶寬的所有DRAM芯片特性。IBM還在熱點(diǎn)芯片大會(huì )上介紹了zEC12大型機體系結構,它在硬盤(pán)驅動(dòng)直至它所控制的DRAM DIMM上應用了RAID 5協(xié)議,實(shí)際上將DRAM塊用作多塊、并行冗余存儲器系統。相同的原理也可以用于將大塊NAND閃存集成到存儲器系統中,提供了RAID管理分層存儲,可以用作虛擬大容量SRAM。
毫無(wú)疑問(wèn)對SoC的需求越來(lái)越大。因此,串行鏈路和本地存儲器,特別是本地智能化會(huì )完全改變我們怎樣思考存儲器體系結構。
評論