基于當(dāng)代DRAM結(jié)構(gòu)的存儲器控制器設(shè)計
1、引言
當(dāng)代計算機(jī)系統(tǒng)越來越受存儲性能的限制。處理器性能每年以60%的速率增長,存儲器芯片每年僅僅增加10%的帶寬,本文就如何設(shè)計一種符合當(dāng)代DRAM結(jié)構(gòu)的高效存儲器控制器進(jìn)行研究。
本文第二部分介紹當(dāng)代DRAM結(jié)構(gòu)特點;第三部分介紹存儲器控制器結(jié)構(gòu)以及調(diào)度算法;第四部分介紹模擬環(huán)境以及性能表現(xiàn)。
2、當(dāng)代DRAM結(jié)構(gòu)
為了提高存儲器的性能,存儲器控制器的設(shè)計必須充分利用當(dāng)代DRAM的特點。DRAM是3D的存儲器(體行列),每個體獨立于其他體操作并且一次存取整行。當(dāng)存儲陣列的一行被存取(行激活),存儲陣列的整行被傳輸?shù)竭@個體的行緩沖。當(dāng)一行在行緩沖中處于激活態(tài),任何的讀寫(列存?。┛梢詧?zhí)行。當(dāng)完成所有可利用的列存取,被緩沖的行必須依靠外在的操作(體預(yù)充電)寫回存儲陣列,為后來的行激活操作做準(zhǔn)備。
存儲器存取調(diào)度者必須滿足DRAM時序和資源限制。共享的地址和數(shù)據(jù)線資源使存取串行化到不同的DRAM體,但是每個體的狀態(tài)機(jī)是獨立的。因此,調(diào)度者必須仲裁要使用單一資源的預(yù)充電、行、列操作。要充分利用存儲帶寬,必須每次行激活下有足夠的列存取并且隱藏其他體的預(yù)充電/激活延遲。
3、存儲器控制器結(jié)構(gòu)及調(diào)度算法
存儲器存取調(diào)度是排序DRAM操作(體預(yù)充電,行激活,列存?。┩瓿僧?dāng)前掛起的存儲器存取的過程。操作表示一個命令(如行激活、列存取),被存儲器控制器發(fā)射到DRAM。訪問表示由處理器產(chǎn)生的存儲器訪問(如讀訪問或者寫訪問)。一個訪問產(chǎn)生一個或者多個存儲器操作。
圖1.存儲器控制器結(jié)構(gòu)
圖1顯示采用存取調(diào)度算法的控制器結(jié)構(gòu)。每個體有預(yù)充電管理器,行仲裁器。預(yù)充電管理器決定什么時候?qū)εc他相關(guān)的體預(yù)充電。每個體的行仲裁器決定哪一行被激活。列仲裁器被所有體共享,授權(quán)共享的數(shù)據(jù)線資源給來自所有掛起的訪問的列存取。最后,預(yù)充電管理器、行仲裁器、列仲裁器發(fā)射選擇的操作給單一的地址仲裁器,地址仲裁器授予共享地址資源給一個或者多個操作。
預(yù)充電管理器,行仲裁器,列仲裁器可以使用多個不同的策略選擇DRAM操作。由于地址線資源的是共享的,地址仲裁器策略決定哪個預(yù)充電、激活、列操作被執(zhí)行。跟其他調(diào)度策略一樣,按序或者優(yōu)先權(quán)策略可用來作為地址仲裁器策略。列優(yōu)先調(diào)度策略可以減少到激活行的訪問延遲,然而預(yù)充電優(yōu)先或者行優(yōu)先調(diào)度策略會增加體并行性。
下面介紹幾種預(yù)充電管理器,行仲裁器,列仲裁器可能使用的調(diào)度策略:
In order:DRAM操作只會執(zhí)行最早請求掛起的訪問;
Ordered:越老的訪問優(yōu)先級越高;
Open:只有在其他行有掛起的訪問而激活行沒有掛起的訪問才進(jìn)行體預(yù)充電。當(dāng)有顯著的行局部性使得后來的訪問命中前面訪問的行,Open策略應(yīng)該采用;
Closed:只要激活行沒有掛起的訪問體就預(yù)充電。后來的訪問不太會命中前面訪問的行,closed策略應(yīng)該采用。
4、控制器性能表現(xiàn)
傳輸帶寬而不是訪問延遲驅(qū)動流處理器性能。因此流媒體處理系統(tǒng)是首要的需要存儲器存取調(diào)度。為了評價存儲器存取調(diào)度對于媒體處理器的性能影響,通過模擬運(yùn)行典型的基準(zhǔn)程序。
評論