存储墙
tommy整理
處理器的時鐘頻率和性能以超乎想象的速度增長;但是主存的訪問速度(主要是DRAM)的增長卻要緩慢的多;雖然Cache和預取能夠?qū)p少平均訪存時間有所幫助,但仍然不能從根本上解決問題[1][2]。
?處理器和存儲器之間的鴻溝越來越大,下一代高性能計算機系統(tǒng)必須突破存儲墻問題(momory wall)。計算,存儲,I/O的速度越來越不匹配,平衡體系結(jié)構(gòu)的設計越來越困難。
微處理器速度增長的速度遠遠超過了了DRAM增長的速度。造成這種正常不平衡的原因是多方面的。其中最主要的原因是半導體工業(yè)界劃分成了兩個陣營:微處理器和存儲器,并各自為陣。首先需要說的是,針對不同器件的需要半導體生產(chǎn)線被進行裁減和配置。針對微處理器的生產(chǎn)線強調(diào)提供更快的晶體管來制造更快的邏輯、更多的金屬布線層來增加通訊和減小功耗。與此不同的是,針對DRAM的生產(chǎn)線強調(diào)更多的多晶硅(polysilicon)層來獲得更小的DARM單元面積從而增大DRAM容量和更小的漏電流來減少DRAM刷新時間。不同的芯片也意味著不同的封裝工藝,微處理器要求昂貴的封裝來增加散熱(通用CPU功耗已達5~100Watt),還要提供成百上千的引腳來增加與外存的連接帶寬。但是DRAM的封裝卻往往采用便宜的方式,主要原因是其功耗較低(1Watt)引腳也大多只有幾十個。不同的封裝意味著計算機系統(tǒng)設計中存儲芯片的擴展數(shù)目可以與芯片的擴展數(shù)目無關(guān)。
由于工業(yè)界分裂成了兩大陣營:處理器生產(chǎn)商和芯片生產(chǎn)商,必然帶來一些弊端。例如當前主流的商用微處理器主頻已達3GHz以上,存儲總線主頻僅400MHz;處理器速度每年增長60%,存儲器存取延遲每年僅改善7%。可見,雖然兩方都還有可以挖掘的潛力,處理器性能的上升空間遠遠大于DRAM。由通信帶寬和延遲構(gòu)成的“存儲墻(Memory wall)”成為提高系統(tǒng)性能的最大障礙,大量的結(jié)構(gòu)復雜性花在了解決數(shù)據(jù)訪問延遲問題上,如圖[3]所示
由于存儲器的訪問延遲不斷加大(相對于處理器的頻率而言),片上存儲器的作用顯得更為重要,但是其限制也更為明顯。由于存儲墻問題的存在,增加處理器和存儲器間的“有效”帶寬顯得及其重要,“有效”性強調(diào)的是供給處理器數(shù)據(jù)的實際帶寬而不僅僅是峰值帶寬。現(xiàn)在一些主要的緩解存儲墻問題的方法包括[4]:
l???????? 更寬更快的片外存儲帶寬,
實際上,帶寬就是每秒鐘能夠傳輸?shù)臄?shù)據(jù)位總和。因此最自然也是最經(jīng)典的提高存儲帶寬的方法就是提高存儲器時鐘頻率或者增加總線寬度。但是對于傳統(tǒng)DRAM來說,這種方法已經(jīng)接近其物理極限。因為提高時鐘頻率將會對整個系統(tǒng)時鐘提出更苛刻的要求,不僅芯片面臨高頻的種種問題,PCB版的設計和實現(xiàn)技術(shù)也必須有所突破。而增加總線寬度將會大幅增加芯片引腳數(shù)目、IO功耗,給封裝和PCB版帶來挑戰(zhàn)。雖然現(xiàn)在芯片引腳數(shù)目已經(jīng)有較大的增長,但是功耗、可靠性和成本等因素將使得引腳的增加變得越來困難。最近,新的存儲系統(tǒng)接口例如Rambus(RDRAM)和SLDRAM號稱可以將片外存儲帶寬提高到數(shù)個GB/S的水平。另外一個傳統(tǒng)提高帶寬的方法是采用交叉存儲技術(shù),但是這將會帶來擴展成本和擴展性的問題。因此解決存儲墻問題最重要的不是如何采用每一代最先進的技術(shù)提供最大的帶寬,而是如何有效的“劃算”的提供足夠的帶寬。
l???????? 更大的片上Cache
在當代微處理器中,通過使用Cache已經(jīng)避免了大量的存儲延遲,許多先進的技術(shù)也幫助消除或隱藏一小部分的存儲延遲。例如,亂序執(zhí)行、預取、非阻塞Cache、寫緩存和流水的系統(tǒng)總線等。然而,程序的第一次使用或循環(huán)的第一次訪問將不可避免帶來Cache不命中,從而導致流水線停頓。Cache的某一行數(shù)據(jù)常常在被訪問之前就被別的數(shù)據(jù)替換了。對于空間局部性較好的應用,解決訪存延遲問題可以通過對內(nèi)存地址的預取來實現(xiàn)。這種方法對于像路由表更新這樣的應用非常有效,但對于訪存行為不規(guī)則的應用,由于經(jīng)常預取的是不被馬上使用的數(shù)據(jù),可能反而會降低系統(tǒng)的存儲帶寬。通過網(wǎng)絡訪問遠程處理器節(jié)點局部存儲器上的數(shù)據(jù)將導致更大的延遲。而且,這樣的遠程存儲訪問延遲通常是不可預測的,使得一些填充流水線延遲槽的技術(shù)不再有效。例如,在SGI Origin 2000分布共享存儲系統(tǒng)中,一級 Cache不命中的訪問延遲為11個處理器周期;二級 Cache 不命中的延遲為60個周期;遠程存儲訪問不命中的延遲達到180個周期。而且增加Cache容量將會大量增加處理器規(guī)模,增加功耗和成本。
l???????? 動態(tài)訪問調(diào)度
這種方法通過將數(shù)據(jù)組織成流最大化存儲器性能(例如,信號/圖像處理器,多媒體編解碼器等)。這種方法基于訪問的規(guī)則性,通過調(diào)度存儲訪問請求的順序減少存儲器訪問的隨機性,對于絕大多數(shù)DRAM來說成塊訪問或連續(xù)訪問的帶寬大大高于單個數(shù)據(jù)訪問的帶寬。這種技術(shù)通過軟件或硬件的方法動態(tài)組織數(shù)據(jù),通過數(shù)據(jù)訪問的規(guī)則提高訪問效率。還可以結(jié)合緩沖技術(shù),有效隱藏訪問延遲。
l???????? 更有效的片上存儲器和存儲帶寬層次
雖然Cache可以有效的捕捉局域性較好的數(shù)據(jù)重用,但是仍然是以一種“粗獷”的方式在使用片上存儲器。新的片上存儲技術(shù)例如軟件可管理的片上存儲器,強調(diào)用更精細的方法利用寶貴的片上存儲器和片上帶寬,減小對片外存儲的依賴。開發(fā)更為有效的存儲帶寬層次如圖[5]據(jù)存取延遲:寄存器文件能夠在一個周期內(nèi)存取;離運算單元很近的存儲器中存放那些極有可能很快就要訪問的數(shù)據(jù)以便能最小化存儲器操作的延遲;較慢的DRAM被用來提供大容量的存儲空間好存放那些在存儲器層次中放不下的數(shù)據(jù)。
l???????? 邏輯/DRAM 集成技術(shù)
將存儲器和邏輯高度集成在一起,例如片上存儲技術(shù)。片上存儲技術(shù)提出將處理器與存儲器做在同一塊芯片上,這樣可使訪存延時減少5-10倍以上,存儲器帶寬增加50-100倍以上。在大多數(shù)情況下,整個應用在運行期間都可放到片上存儲器里。但是傳統(tǒng)邏輯工藝中實現(xiàn)DRAM單元存儲密度做不高,估計密度僅能達到優(yōu)化的DRAM工藝的5~25%;而在DRAM工藝中實現(xiàn)邏輯電路則速度做不上去,因此需要更為先進的工藝。同時PIM也存在擴展性的問題
基于上述技術(shù),現(xiàn)在已經(jīng)涌現(xiàn)出一批瞄準存儲墻問題的高性能處理器。例如:
2003年6月投片成功的VIRAM[6]C.Berkeley分校的Dave Patterson等開發(fā)的一種用于媒體處理的向量型芯片。VIRAM主要針對處理器性能不斷增強,相應對存儲系統(tǒng)的帶寬和延遲要求提高,而目前片外訪存通信代價大、速度慢,使得存儲系統(tǒng)成為瓶頸的問題。其目標是要充分利用現(xiàn)有VLSI的集成能力,通過向量和片上DRAM技術(shù)的結(jié)合,獲得更高的帶寬、更短的延遲和更低的功耗。VIRAM的主要思想是嘗試將向量處理器和DRAM存儲器(13M)都做到片上,從而消除片外訪存并減少訪問層次。
2002年4月投片成功的Imagine[7]福大學的W.J.Dally等開發(fā)的流體系結(jié)構(gòu)(stream architecture)原型芯片,其體系結(jié)構(gòu)如圖1.5。主要針對現(xiàn)代VLSI工藝條件下,片外通信昂貴,片內(nèi)運算單元相對廉價,但是大部分片上面積被通信管理等單元占據(jù)使得計算能力未被充分利用的問題。目標是通過開發(fā)符合流應用特點的流式處理程序和三級帶寬存儲減少訪問片外存儲器,使片內(nèi)運算能力得到充分利用,并且在一定程度上避免了存儲墻問題。在Imagine的基礎上,面向科學計算應用領域,Stanford大學目前正在進行Merrimac[8]機的研制。
其它一些能夠緩解存儲墻問題的處理器還有,MIT大學的Raw[9]構(gòu),Texas大學提出的萬億次運算可靠智能自適應的處理系統(tǒng)TRIPS[10]、索尼、東芝三家公司在2005年聯(lián)合推出的第一代CELL[11]等
總之,目標應用的特征直接決定了處理器的體系結(jié)構(gòu)。沒有哪個體系結(jié)構(gòu)在運行所有的應用時都能達到最優(yōu)性能,因此解決存儲墻問題必需調(diào)整體系結(jié)構(gòu)設計來適應目標應用的要求。
參考文獻:
[1]M. Wilkes. The memory wall and the CMOS end-point. ACM SIGArch Computer Architecture
News, 1995.
[2]W. Wulf and S. McKee. Hitting the wall: Implications of the obvious. ACM SIGArch Computer Architecture News, 23(1):20{24, Mar. 1995.
[3] Keith Underwood,Implications of a PIM Architectural Model for MPI,Sandia National Laboratories
[4] Nihar R. Mahapatra and Balakrishna Venkatrao The Processor-Memory bottleneck: Problems and Solutions.
[5]ane Irwin ( www.cse.psu.edu/~mji )
[6]?? C. E. Kozyrakis et al, Scalable Processors in the Billion-Transistors Era: IRAM. IEEE Computer, Vol 30 Issue 9, 1997.9
[7]?? MScott Rixner, Stream Processor Architecture, Kluwer Academic Publishers. Boston, MA, 2001
[8]?? William J.Dally, Patrick Hanrahan, Mattan Erez et al, Merrimac: Supercomputing with Streams. SC'03, November 15-21, 2003, Phoenix, Arizona, USA
[9]?? M. B. Taylor et al, Evaluation of the Raw Microprocessor: An Exposed-Wire-Delay Architecture for ILP and Streams. ISCA2004, 2004
[10] Karthikeyan Sankaralingam et al, Exploiting ILP, TLP, and DLP with the Polymorphous TRIPS architecture. 30th Annual International Symposium on Computer Architecture, May 2003
[11] J. A. Kahle et al, Introduction to the Cell multiprocessor, IBM J. RES. & DEV., VOL 49, NO.4/5, July/September 2005
總結(jié)
- 上一篇: psp java运行环境_手机模拟器?P
- 下一篇: PSP