• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      大容量DRAM的刷新開銷問題及優(yōu)化技術(shù)綜述

      2016-07-31 23:32:23崔澤漢陳明宇
      關(guān)鍵詞:存儲(chǔ)單元功耗命令

      崔澤漢 陳明宇

      1(計(jì)算機(jī)體系結(jié)構(gòu)國(guó)家重點(diǎn)實(shí)驗(yàn)室(中國(guó)科學(xué)院計(jì)算技術(shù)研究所) 北京 100190)2(中國(guó)科學(xué)院大學(xué) 北京 100049)(cuizehan@ict.a(chǎn)c.cn)

      大容量DRAM的刷新開銷問題及優(yōu)化技術(shù)綜述

      崔澤漢1,2陳明宇1

      1(計(jì)算機(jī)體系結(jié)構(gòu)國(guó)家重點(diǎn)實(shí)驗(yàn)室(中國(guó)科學(xué)院計(jì)算技術(shù)研究所) 北京 100190)2(中國(guó)科學(xué)院大學(xué) 北京 100049)(cuizehan@ict.a(chǎn)c.cn)

      動(dòng)態(tài)隨機(jī)存儲(chǔ)器(DRAM)具有速度快、密度高、成本低的優(yōu)勢(shì),被廣泛應(yīng)用于計(jì)算機(jī)的主存.DRAM采用電容作為存儲(chǔ)單元,電容電荷的多少表示數(shù)字“0”或“1”.由于存在漏電現(xiàn)象,電容里的電荷會(huì)緩慢流失,造成數(shù)據(jù)丟失.為保證數(shù)據(jù)正確性,DRAM采用周期性的刷新操作,在數(shù)據(jù)丟失前,把數(shù)據(jù)讀出然后重新寫入存儲(chǔ)單元.刷新操作會(huì)阻礙正常訪存的執(zhí)行,造成性能上的開銷;同時(shí)刷新操作會(huì)消耗額外的功耗,帶來功耗上的開銷.刷新的開銷與DRAM密度相關(guān):在過去,當(dāng)DRAM密度較小時(shí),需要刷新的存儲(chǔ)單元數(shù)較少,刷新開銷很小,并未引起關(guān)注;但是,隨著摩爾定律的發(fā)展,DRAM密度越來越大,目前已發(fā)展到千兆比特級(jí)別,其刷新周期并沒有改善,單位時(shí)間內(nèi)需要刷新的存儲(chǔ)單元數(shù)越來越多,從而使刷新帶來的性能和功耗開銷越來越嚴(yán)重.刷新問題目前得到了工業(yè)界和學(xué)術(shù)界的廣泛關(guān)注.首先介紹了目前DRAM的刷新方式和開銷,以及工業(yè)界已經(jīng)實(shí)現(xiàn)的一些改進(jìn);然后把工業(yè)界和學(xué)術(shù)界提出的眾多優(yōu)化方法分為“減輕刷新操作對(duì)訪存的阻塞”和“減少不必要的刷新操作”兩大類,分別進(jìn)行了分析和總結(jié);最后給出了關(guān)于智能刷新管理的總結(jié)和展望.

      主存;動(dòng)態(tài)隨機(jī)存儲(chǔ)器;刷新;性能;功耗;保持時(shí)間;不必要刷新

      DRAM具有速度快、密度高、成本低的特性,因此近幾十年來一直是計(jì)算機(jī)主存的首選.隨著摩爾定律的發(fā)展,處理器的頻率越來越高、核數(shù)越來越多,雖然DRAM的密度越來越高,但是其延遲、帶寬增長(zhǎng)卻很緩慢,越來越成為制約系統(tǒng)性能的瓶頸[1-2].與此同時(shí),隨著內(nèi)存容量需求的逐漸增大,DRAM占系統(tǒng)整體功耗的比例可達(dá)40%[3-4].

      圖1顯示了DRAM系統(tǒng)的層次結(jié)構(gòu),從頂層到底層包含Rank,Chip,Bank,Sub-array,MAT,Cell.一個(gè)Rank由多個(gè)Chip并列組成,同步工作,共同驅(qū)動(dòng)內(nèi)存總線.一個(gè)Chip內(nèi)部包含多個(gè)Bank,它們包含獨(dú)立的行地址譯碼器(row decoder)和感應(yīng)放大器(sense amplifier),可以并發(fā)訪問.通常認(rèn)為,Bank是DRAM完成獨(dú)立操作的最小單元.但事實(shí)上,每個(gè)Bank又可進(jìn)一步分割為很多Sub-array(縱向),每個(gè)Sub-array包含很多MAT(橫向).每個(gè)MAT有獨(dú)立的局部感應(yīng)放大器.一個(gè)典型的MAT包含512×512個(gè)Cell,即存儲(chǔ)單元.每個(gè)存儲(chǔ)單元由1個(gè)電容和1個(gè)晶體管組成:電容的電荷多少表示數(shù)字“1”或“0”;晶體管的柵極與字線(wordline)相連,由字線控制晶體管的導(dǎo)通;晶體管的漏極與位線(bitline)相連,導(dǎo)通時(shí)由位線表示單元里存儲(chǔ)的數(shù)據(jù).

      Fig.1 The hierarchy of DRAM system[5].圖1 DRAM系統(tǒng)的層次結(jié)構(gòu)[5]

      訪問DRAM時(shí),首先需要“激活”1行,即提供行地址,由行地址譯碼器選通1個(gè)Sub-array中的1行,使其字線電平拉高;與字線相連的所有存儲(chǔ)單元的晶體管打開,電容與位線連通,電容電荷流向位線,造成細(xì)微的電壓變動(dòng);每個(gè)Sub-array的局部感應(yīng)放大器可以感知到位線上的電壓變動(dòng),并將其驅(qū)動(dòng)到一定的高電平或低電平(與位線相連的電容也進(jìn)行了充?放電).當(dāng)局部感性放大器進(jìn)一步將數(shù)據(jù)驅(qū)動(dòng)到全局感應(yīng)放大器后,才能進(jìn)行“讀寫”,根據(jù)提供的列地址,從全局感應(yīng)放大器中選中相應(yīng)的數(shù)據(jù),進(jìn)行讀取或修改.在需要讀取另一行的數(shù)據(jù)前,需要對(duì)當(dāng)前行進(jìn)行“預(yù)充電”,拉低字線電平,關(guān)閉晶體管,使存儲(chǔ)單元與位線斷開,然后將位線電平驅(qū)動(dòng)到中間狀態(tài).

      DRAM數(shù)據(jù)能被正常讀取的關(guān)鍵在于上述激活過程中,電容電荷對(duì)位線造成的細(xì)微電壓變動(dòng)可以被感應(yīng)放大器識(shí)別.但是,由于電容存在漏電,電容電荷會(huì)隨著時(shí)間而流失,從而導(dǎo)致激活過程中的電壓變動(dòng)變小,直至不可識(shí)別.因此,DRAM需要被定期“刷新”,以補(bǔ)充流失的電荷,保證在激活過程中可以造成足夠顯著的電壓變動(dòng).

      刷新操作會(huì)阻礙正常訪存的執(zhí)行,造成性能上的開銷;同時(shí)刷新操作會(huì)消耗額外的功耗,帶來功耗上的開銷.在過去,DRAM密度較小,刷新造成的影響很小,因此并未受到關(guān)注.但是,隨著摩爾定律不斷發(fā)展,DRAM密度不斷增大[6],目前已達(dá)千兆比特的量級(jí),刷新造成的性能和功耗開銷指數(shù)增加,漸漸引起了工業(yè)界和學(xué)術(shù)界的重視.近年來,工業(yè)界的一些標(biāo)準(zhǔn)和學(xué)術(shù)界的一些研究工作都對(duì)刷新進(jìn)行了一些優(yōu)化,以減輕其性能和功耗開銷.本文標(biāo)題中的“大容量”即指目前千兆比特量級(jí)的DRAM,以及未來更高密度的DRAM,如無特殊說明,下文所述的DRAM都是指大容量DRAM.

      本文首先簡(jiǎn)介了目前DRAM刷新存在的問題以及工業(yè)界已經(jīng)提出的一些解決方案;然后把工業(yè)界和學(xué)術(shù)界的優(yōu)化方法分為“減輕刷新操作對(duì)訪存的阻塞”和“減少不必要的刷新操作”兩大類,進(jìn)行了分析和總結(jié);最后給出了關(guān)于DRAM刷新的研究展望.

      1 DRAM刷新現(xiàn)狀

      1.1 刷新要求

      以JEDEC①DDRx規(guī)范[7-10]為例,要求在常溫下每64ms(高溫下為32ms)刷新一遍所有DRAM存儲(chǔ)單元.DDRx規(guī)范定義了一種刷新方式AR(auto refresh),為了簡(jiǎn)化DRAM控制器設(shè)計(jì),使其方便支持不同類型的DRAM芯片,DRAM控制器只需在每個(gè)刷新周期(比如64ms)內(nèi)向每個(gè)Rank發(fā)送8 192個(gè)刷新命令,由DRAM芯片內(nèi)部維護(hù)刷新的行指針,并根據(jù)自身密度決定要刷新的行數(shù).DRAM控制器發(fā)送2個(gè)刷新命令之間的間隔為刷新周期的1?8192,定義為tREFI;DRAM芯片執(zhí)行1個(gè)刷新命令的時(shí)間取決于DRAM芯片的密度,定義為tRFC.表1列出了DDR3DRAM在常溫(85℃以下)?高溫(85℃~95℃)下的刷新參數(shù),在高溫下刷新周期減半為32ms,相應(yīng)的刷新間隔tREFI也減半.隨著DRAM密度增大,其行大小保持不變,而總行數(shù)增多,因此每個(gè)間隔內(nèi)需要刷新的行數(shù)增多,導(dǎo)致tRFC不斷增大,刷新所占的時(shí)間比例tRFC?tREFI不斷增大.

      Table 1 Parameters of DDR3DRAM AR(Normal?Extended Temperature)表1 DDR3DRAM AR參數(shù)(常溫?高溫)

      JEDEC協(xié)議只是規(guī)定了刷新時(shí)間,但并沒有規(guī)定刷新操作具體如何實(shí)現(xiàn).以4Gb DDR3DRAM為例,要求300ns內(nèi)完成對(duì)64行(8個(gè)Bank,每個(gè)Bank刷新8行)的刷新操作.本文在接下來的章節(jié)中先介紹單行的刷新操作是如何執(zhí)行的,然后介紹如何在規(guī)定時(shí)間完成對(duì)多行的刷新.

      1.2 單行刷新原理

      一般來講,對(duì)DRAM單行的刷新操作是這樣執(zhí)行的:1)起始狀態(tài),所有的位線電平被預(yù)充電至VDD?2;2)行地址譯碼器選通該行,拉高字線電平,該行所有存儲(chǔ)單元的晶體管導(dǎo)通,使電容和位線連通;3)根據(jù)電容電平為高或低,電荷從電容流向位線或者從位線流入電容,從而在位線上造成細(xì)微的電平變動(dòng)VDD?2±Δ,其變動(dòng)方向被感應(yīng)放大器識(shí)別;4)局部感應(yīng)放大器根據(jù)變動(dòng)方向,對(duì)位線進(jìn)行充電或放電,將其電平拉至VDD或0,在此過程中,由于位線和電容連通,電容也被重新充電至VDD或放電至0,即進(jìn)行了刷新操作.

      上述過程類似于激活操作,在DDR3協(xié)議中激活操作的延遲定義為tRAS,約為35ns.在刷新下一行之前,還必須先斷開晶體管,將位線電平重新預(yù)充電至VDD?2.此過程類似于預(yù)充電操作,在DDR3協(xié)議中預(yù)充電操作的延遲定義為tRP,約為15ns.因此Joint Electron Device Engineering Council.http:??www.jedec.org可認(rèn)為單行刷新等效于激活操作和預(yù)充電操作的組合,其延遲大致為50ns.

      1.3 AR實(shí)現(xiàn)

      由于單行刷新的延遲大致為50ns,以4Gb DRAM為例,AR要求在300ns內(nèi)完成對(duì)64行的刷新操作,因此只能通過并行方式實(shí)現(xiàn).但是,并行刷新所消耗的疊加電流必須在DRAM容許范圍內(nèi).比如,DDR3協(xié)議為了避免多個(gè)并行的激活操作帶來的電流疊加,規(guī)定了在tFAW時(shí)間(約30ns)內(nèi)只能執(zhí)行4個(gè)激活操作.如1.2節(jié)所述,單行刷新類似于激活操作,也會(huì)受到DRAM最大容許電流的限制.

      目前,DRAM執(zhí)行AR時(shí)利用了Bank內(nèi)Subarray級(jí)的并發(fā)度,而不是Bank間的并發(fā)度(8個(gè)Bank并行刷新造成的電流疊加會(huì)超出DRAM的電流限制).由于刷新只需要使用每個(gè)Sub-array的局部感應(yīng)放大器(區(qū)別于激活操作),使得多個(gè)Subarray可以并行刷新,而且Bank內(nèi)多個(gè)Sub-array的并行刷新可以共用很多電路,從而使其消耗的電流大大低于線性疊加.

      具體地,DRAM將一次刷新操作內(nèi)要刷新的行分為若干個(gè)組,每個(gè)組包含1個(gè)Bank內(nèi)的多行①,位于不同的Sub-array.組內(nèi)的多行利用每個(gè)Subarray的局部感應(yīng)放大器,并行進(jìn)行刷新.在電流限制范圍內(nèi),組與組之間的刷新過程可以有一定的重疊.圖2顯示了多行刷新實(shí)現(xiàn)的示例:

      Fig.2 Implementation of DRAM AR.圖2 DRAM AR實(shí)現(xiàn)

      在AR執(zhí)行期間,DRAM Rank的所有Bank都無法處理正常訪存請(qǐng)求.最壞情況下,訪存的等待時(shí)間為tRFC.

      1.4 ROR(RAS-only Refresh)實(shí)現(xiàn)

      另一種沒有在JEDEC協(xié)議中定義、但是在學(xué)術(shù)研究中經(jīng)常被提到的刷新實(shí)現(xiàn)方式是利用DRAM激活操作實(shí)現(xiàn)刷新功能.如1.2節(jié)所述,單行刷新操作等效于對(duì)其的激活操作,由于激活操作在早期被稱為行地址選通(row address strobe,RAS),因此這種刷新實(shí)現(xiàn)方式被稱為ROR[11].

      不同于AR只需控制器在每個(gè)刷新間隔內(nèi)向DRAM發(fā)送1個(gè)刷新命令,即可完成對(duì)多行的刷新;ROR要求控制器向DRAM的每個(gè)待刷新的行發(fā)送1個(gè)激活命令.激活命令的粒度更小,可以指定刷新的行地址,實(shí)現(xiàn)對(duì)單行進(jìn)行控制,因此其刷新實(shí)現(xiàn)方式更靈活.比如為了避免在時(shí)間tRFC里集中刷新多行從而長(zhǎng)時(shí)間占用整個(gè)Rank,可以將對(duì)多行的激活操作盡量分散到整個(gè)刷新間隔中;同時(shí),當(dāng)一個(gè)Bank執(zhí)行激活操作時(shí),其他Bank仍然可以執(zhí)行正常訪存操作,減少訪存的等待時(shí)間.

      由于ROR以行為粒度進(jìn)行刷新控制,因此經(jīng)常被使用于一些智能刷新管理方法中.其缺點(diǎn)是不能充分利用Sub-array級(jí)的并發(fā)刷新在時(shí)間和功耗上的優(yōu)勢(shì).同時(shí),由于需要發(fā)送大量的激活命令,DRAM的命令總線更容易飽和,從而影響正常訪存命令的發(fā)送.

      1.5 DRAM刷新開銷

      刷新操作會(huì)阻塞正常訪存的執(zhí)行,造成性能的開銷.AR執(zhí)行期間,DRAM Rank的所有Bank都無法響應(yīng)訪存請(qǐng)求.ROR執(zhí)行過程中,正在刷新的Bank無法接受訪存請(qǐng)求.不論哪種刷新方式,都會(huì)導(dǎo)致訪存被堵塞,延遲增大,最終導(dǎo)致CPU流水線堵塞,性能降低.

      同時(shí),刷新是非常消耗功耗的操作.表2顯示了DRAM一些操作所消耗的平均電流[12].可見刷新操作是功耗最高的操作,而且持續(xù)時(shí)間很長(zhǎng).

      Table 2 Power Parameters of 4Gb DDR3-1600DRAM表2 4Gb DDR3-1600DRAM功耗參數(shù)

      隨著工藝縮進(jìn),DRAM密度仍將以2~3年的速度成倍增長(zhǎng),但是每64ms需要將整個(gè)DRAM刷新一遍的約束并沒有得到改善,因此,每個(gè)刷新間隔內(nèi)需要刷新的行數(shù)相應(yīng)地成倍增加,刷新所導(dǎo)致的性能和功耗開銷隨著密度增大而指數(shù)增長(zhǎng).圖3預(yù)測(cè)了DRAM密度從4Gb增長(zhǎng)到32Gb(tRFC為640ns),相比于理想無刷新的DRAM,上述2種刷新方式所帶來的性能和功耗開銷[13].在32Gb時(shí),AR使性能下降23.8%,功耗增長(zhǎng)114%(ROR由于命令總線飽和,而無法完成刷新要求).

      Fig.3 The normalized performance and energy of AR and ROR relative to an ideal refresh-less system.圖3 2種刷新方式相比于理想無刷新DRAM的歸一化性能和功耗

      1.6 工業(yè)界關(guān)于刷新的一些優(yōu)化

      1)Self Refresh.JEDEC DDRx協(xié)議[7-10]和LPDDRx[14-16]協(xié)議都支持一種Self Refresh模式,是一種低功耗模式.在這種模式下,DRAM的時(shí)鐘、DLL、輸入?輸出緩沖等部件停止工作,只有維持刷新的電路仍然工作,因此這種刷新方式相比于AR更加節(jié)省功耗.但是,這種模式的退出要耗費(fèi)很長(zhǎng)時(shí)間(≥500ns),如果有訪存到來,會(huì)被阻塞得更久,更加影響性能,因此一般只用于DRAM長(zhǎng)期休眠的場(chǎng)景.

      2)Postponed Refresh.JEDEC的DDRx協(xié)議[7-10]支持靈活的刷新調(diào)度,允許將AR命令推遲最多8個(gè)刷新間隔,以避免阻塞訪存請(qǐng)求.但這種方式一般只適用于訪存不密集的場(chǎng)景,對(duì)于訪存密集的場(chǎng)景,無論如何推遲,總是會(huì)阻塞訪存請(qǐng)求.

      3)Per-Bank Refresh.JEDEC的LPDDR2協(xié)議[14]和LPDDR3協(xié)議[15]支持以Bank為單位進(jìn)行刷新.這種方式有2個(gè)好處:①把每次耗時(shí)較長(zhǎng)的刷新操作分成了多個(gè)耗時(shí)較短的刷新操作,從而減少阻塞訪存的時(shí)間;②一個(gè)Bank刷新時(shí),其他Bank可以并行處理正常訪存請(qǐng)求.但是,完成同樣多行的刷新,多個(gè)Per-Bank Refresh的總執(zhí)行時(shí)間要長(zhǎng)于單個(gè)All-Bank Refresh(即AR)的執(zhí)行時(shí)間,這是因?yàn)槊總€(gè)Per-Bank Refresh后都需要一段恢復(fù)時(shí)間,而且Bank間的刷新過程不能重疊.以Bank數(shù)為8、容量為4Gb的LPDDR3DRAM為例,AR的持續(xù)時(shí)間tRFCab=130ns,而單個(gè)Bank的刷新持續(xù)時(shí)間tRFCpb=60ns.因此,這種方式有優(yōu)勢(shì)也有劣勢(shì),其效果取決于具體的應(yīng)用場(chǎng)景.

      4)Fine Granularity Refresh.JEDEC的DDR4協(xié)議[7]支持1x,2x,4x的刷新模式.1x同上述的AR模式,每個(gè)刷新周期發(fā)送8192個(gè)刷新命令;2x,4x模式每個(gè)刷新周期發(fā)送的刷新命令個(gè)數(shù)增加2倍和4倍.相應(yīng)地,2x,4x的單次刷新行數(shù)也減少為1x的1?2,1?4,刷新時(shí)間tRFC有一定程度的減少.這種方式也是把一個(gè)耗時(shí)較長(zhǎng)的刷新操作分解為多個(gè)耗時(shí)較短的刷新操作(每個(gè)操作仍以Rank為單位),但是,2x,4x模式的刷新操作后都需要一段恢復(fù)時(shí)間,其刷新消耗的總時(shí)間長(zhǎng)于1x模式.以容量為4Gb的DDR4DRAM為例,1x模式的刷新持續(xù)時(shí)間tRFC1為260ns,而2x,4x模式的刷新持續(xù)時(shí)間tRFC2,tRFC4分別為160ns,110ns,大于1x模式的1?2,1?4.

      5)Temperature Controlled Refresh.JEDEC的DDR4協(xié)議[7]支持在溫度低于45℃時(shí),由DRAM內(nèi)部按一定的比率選擇性地跳過一些刷新命令的執(zhí)行,從而達(dá)到降低刷新功耗的目的.這主要是得益于溫度低時(shí),電容的漏電速度減慢,保持?jǐn)?shù)據(jù)的時(shí)間變長(zhǎng),從而可以降低刷新的頻率.但是,對(duì)于訪存密集的場(chǎng)景,DRAM的溫度通常會(huì)高于85℃[17],使得這種改進(jìn)只能在訪存很不密集并且散熱很好的場(chǎng)景下才能起作用.

      6)Partial Array Self Refresh.JEDEC的LPDDRx協(xié)議[14-16]支持在Self Refresh模式下禁止DRAM里的部分Bank以及Bank里的部分陣列的刷新操作,從而減少刷新的次數(shù),降低功耗.這種方式不能保證未刷新的存儲(chǔ)單元里的數(shù)據(jù)的正確性,因此適用于不存儲(chǔ)有效數(shù)據(jù)的場(chǎng)景.雖然目前這種方式只適用于類似休眠的Self Refresh模式,但是其工作原理很容易能擴(kuò)展到正常工作的AR模式.但是,要實(shí)際應(yīng)用這種方式,需要操作系統(tǒng)事先回收相應(yīng)的存儲(chǔ)空間,遷移出有效數(shù)據(jù),才能禁止對(duì)其的刷新操作.

      2 減輕刷新操作對(duì)訪存的阻塞

      如上所述,刷新操作對(duì)性能的影響主要?dú)w咎于其阻塞了正常訪存的執(zhí)行.因此,如何從命令調(diào)度以及刷新實(shí)現(xiàn)方式上避免刷新操作對(duì)正常訪存的阻塞,是降低刷新的性能開銷的一個(gè)研究方向.

      2.1 刷新命令調(diào)度

      刷新命令調(diào)度主要是DRAM控制器調(diào)整刷新操作的執(zhí)行時(shí)機(jī),以避開正常的訪存命令執(zhí)行.圖4顯示了DRAM控制器對(duì)1個(gè)DRAM Rank進(jìn)行命令調(diào)度的基本原理.在不調(diào)度的情況下,DRAM控制器每隔tREFI生成1個(gè)刷新命令,并立即執(zhí)行該刷新操作.如果訪存命令隊(duì)列不空,那么隊(duì)列中的這些訪存將至少被延遲tRFC時(shí)間.JEDEC DDRx協(xié)議的Postponed Refresh[7-10]允許將AR命令推遲最多8tREFI,從而為調(diào)度刷新命令執(zhí)行時(shí)機(jī)提供了可能.

      Fig.4 Principle of request scheduling in DRAM controller.圖4 DRAM控制器的命令調(diào)度原理

      一種基本的調(diào)度策略是推遲刷新操作的執(zhí)行,優(yōu)先執(zhí)行隊(duì)列中的訪存命令.新生成的刷新命令并不立即執(zhí)行,而是先填入刷新命令隊(duì)列,只有當(dāng)訪存命令隊(duì)列為空或者刷新命令已經(jīng)被推遲了8tREFI時(shí),才執(zhí)行刷新命令.這種策略降低了刷新操作的優(yōu)先級(jí),從而減輕其對(duì)正常訪存請(qǐng)求的阻塞.但是這種基于訪存命令隊(duì)列是否為空的策略存在一個(gè)風(fēng)險(xiǎn),即有可能當(dāng)前訪存命令隊(duì)列為空并因此執(zhí)行了刷新操作,但是馬上又有訪存請(qǐng)求到來,那么新到來的訪存請(qǐng)求最多將被推遲tRFC時(shí)間.

      ER(elastic refresh)[18]改進(jìn)了上述調(diào)度策略:當(dāng)訪存命令隊(duì)列為空時(shí),不立即執(zhí)行刷新操作,而是等待一段空閑時(shí)間(idle delay),如果沒有訪存請(qǐng)求到來,才執(zhí)行刷新操作.其基本思想是,訪存命令隊(duì)列為空后,訪存請(qǐng)求有可能在idle delay的時(shí)間內(nèi)到達(dá),因此再適當(dāng)?shù)赝七t刷新操作,進(jìn)一步降低阻塞訪存請(qǐng)求的概率.其idle delay值的選取是動(dòng)態(tài)進(jìn)行的,當(dāng)刷新被推遲的時(shí)間較短時(shí)(小于2tREFI),idle delay值設(shè)置為較大的預(yù)測(cè)值,允許多等待一段時(shí)間;隨著刷新被推遲的時(shí)間增長(zhǎng)(2tREFI~6tREFI),idle delay值線性下降,表示刷新的優(yōu)先級(jí)不斷提高;當(dāng)刷新被推遲足夠長(zhǎng)時(shí)間后(大于6tREFI),Idle Delay設(shè)置為0.上述idle delay的變化過程,體現(xiàn)了刷新操作的優(yōu)先級(jí)從低到高的轉(zhuǎn)變過程.

      上述2種調(diào)度策略在訪存不是很密集、訪存命令隊(duì)列有可能為空的場(chǎng)景下比較有效,但是在訪存很密集的場(chǎng)景下,比如多核,訪存命令隊(duì)列基本不會(huì)為空,所有的刷新操作都將被推遲8tREFI然后強(qiáng)制執(zhí)行,因此并不能有效改善對(duì)訪存命令的阻塞問題[6].

      2.2 訪存命令調(diào)度

      除了對(duì)刷新命令進(jìn)行調(diào)度外,DRAM控制器還可以對(duì)正常的訪存命令進(jìn)行調(diào)度,使其避開刷新操作的執(zhí)行,避免被阻塞.主存系統(tǒng)通常擁有多個(gè)Rank,一個(gè)Rank執(zhí)行刷新操作時(shí),其他Rank仍然可以正常工作,從而為訪存命令調(diào)度提供了可能.

      PCD(preemptive command drain)策略[19]提前執(zhí)行訪存命令隊(duì)列中屬于即將要刷新的Rank的訪存請(qǐng)求.由于刷新有很強(qiáng)的周期性和規(guī)律性,DRAM控制器很容易預(yù)測(cè)即將刷新的Rank.這樣當(dāng)這個(gè)Rank進(jìn)入刷新狀態(tài)時(shí),可以盡量減少訪存命令隊(duì)列中屬于這個(gè)Rank的訪存請(qǐng)求,減輕隊(duì)列中訪存請(qǐng)求與刷新的沖突概率和等待時(shí)間.

      DCE(delayed command expansion)策略[19]在將訪存請(qǐng)求填入訪存命令隊(duì)列時(shí),推遲填入那些屬于正在刷新的Rank的訪存請(qǐng)求,避免它們占用訪存命令隊(duì)列的調(diào)度資源.這樣可以將更多可執(zhí)行的訪存請(qǐng)求填入訪存命令隊(duì)列進(jìn)行調(diào)度.

      PCD和DCE策略的目標(biāo)都是當(dāng)一個(gè)Rank正在執(zhí)行刷新操作時(shí),盡量減少訪存命令隊(duì)列里中屬于該Rank的訪存請(qǐng)求.因?yàn)檫@些訪存請(qǐng)求在訪存命令隊(duì)列中并不會(huì)被調(diào)度執(zhí)行,反而占用了隊(duì)列資源,減少了隊(duì)列中其他Rank可調(diào)度請(qǐng)求的數(shù)目,降低了其他Rank的命令調(diào)度效率,甚至是占滿隊(duì)列后阻塞其他Rank的命令執(zhí)行.

      2.3 減少單次刷新的阻塞時(shí)間

      除了利用命令調(diào)度避免訪存與刷新沖突外,如何通過刷新實(shí)現(xiàn)方式的改進(jìn),在發(fā)生沖突時(shí)減少單次刷新阻塞訪存的時(shí)間也是一個(gè)的研究方向.

      FGR(fine granularity refresh)[7]通過提高刷新頻率,減少每次刷新的工作量,以降低每次刷新阻塞訪存的時(shí)間.但是FGR增加了總的刷新時(shí)間,實(shí)驗(yàn)評(píng)估顯示對(duì)于大多數(shù)應(yīng)用,4x模式的性能不如1x模式的性能[19].

      RP(refresh pausing)[20]是基于基本的AR所做的改進(jìn).由于AR需要一次刷新很多行,如果訪存命令在此期間到來,就會(huì)被阻塞很長(zhǎng)時(shí)間.RP通過修改DRAM,允許在訪存命令到來時(shí),立即暫停當(dāng)前的AR,優(yōu)先執(zhí)行訪存命令,等訪存命令執(zhí)行完后,再接著執(zhí)行未完成的刷新操作.但是,在訪存密集的場(chǎng)景下,RP的效果有限,其會(huì)導(dǎo)致刷新操作被頻繁暫停,并且最終需要被強(qiáng)制執(zhí)行(推遲的時(shí)間超過8tREFI).

      2.4 刷新與訪存并發(fā)

      如何盡量使正常訪存和刷新并發(fā)進(jìn)行,是降低刷新影響的另一種方法.

      ROR[11]利用激活操作進(jìn)行刷新,一次只刷新一個(gè)Bank的1行,允許刷新操作和訪存命令在Bank級(jí)并發(fā)執(zhí)行:一個(gè)Bank執(zhí)行刷新操作時(shí),其他Bank可以并發(fā)執(zhí)行訪存命令.對(duì)于低密度的DRAM,這種方式降低了刷新操作和訪存命令的沖突概率,可以減少訪存的平均等待時(shí)間,因此其性能優(yōu)于AR.但是,由于不能利用Sub-array級(jí)的并發(fā)刷新,需要更多次刷新操作完成1次AR的工作量,在高密度的DRAM場(chǎng)景下其刷新效率不高的劣勢(shì)體現(xiàn)出來[13],一方面,頻繁的激活操作反而增大了沖突概率,另一方面,也會(huì)嚴(yán)重影響系統(tǒng)的訪存并發(fā)度,因此其性能反而不如AR,如圖3(a)所示;另外,由于同樣的原因,其功耗開銷要更大,如圖3(b)所示.

      PBR(per-bank refresh)[14-15]同樣支持刷新操作和訪存命令在Bank級(jí)并發(fā)執(zhí)行,而且可以在一定程度上利用Sub-array級(jí)的并發(fā)刷新,改善ROR刷新效率不高的劣勢(shì).實(shí)驗(yàn)評(píng)估顯示PBR的性能總是好于AR[21].但是受最大電流的限制,刷新操作執(zhí)行時(shí),可以并發(fā)執(zhí)行的訪存命令數(shù)相應(yīng)地減少,降低了系統(tǒng)的訪存并發(fā)度;而且由于Bank個(gè)數(shù)較少,仍然會(huì)有相當(dāng)概率導(dǎo)致訪存命令和刷新操作沖突,因此這種方式依然會(huì)帶來一定的性能開銷[21].

      SALR(sub-array-level refresh)[6,21]在PBR基礎(chǔ)上,更進(jìn)一步的改進(jìn)是在Sub-array級(jí)支持刷新操作和訪存命令的并發(fā)執(zhí)行.由于刷新只需要使用每個(gè)Sub-array的局部感應(yīng)放大器,因此可以通過修改DRAM硬件的方式,使一些Sub-array在執(zhí)行刷新時(shí)其他Sub-array可以進(jìn)行正常的激活、讀寫、預(yù)充電操作.由于Sub-array的個(gè)數(shù)遠(yuǎn)大于Bank的個(gè)數(shù),因此訪存命令和刷新操作的沖突概率極小,可以基本做到不阻塞訪存命令.不過,由于最大電流的限制,執(zhí)行刷新操作時(shí),會(huì)減少可并發(fā)執(zhí)行的訪存命令個(gè)數(shù),從而仍在一定程度上影響性能.另外,這種方式需要對(duì)DRAM硬件進(jìn)行較大改動(dòng).

      2.5 小 結(jié)

      表3對(duì)本節(jié)所述方法進(jìn)行了歸納:

      Table 3 Summary of Reducing the Blocking of Memory Accesses Due to Refresh表3 減輕刷新操作對(duì)訪存阻塞的方法匯總

      不管是刷新命令調(diào)度還是訪存命令調(diào)度,其思想是不修改DRAM本身,而是改進(jìn)DRAM控制器的調(diào)度策略,使刷新命令和訪存命令相互避開,降低沖突導(dǎo)致的訪存延遲增加,減少性能開銷.上述策略都是基于一定的先驗(yàn)信息,對(duì)刷新或者訪存命令的執(zhí)行時(shí)機(jī)進(jìn)行調(diào)度.不同的是,ER所依據(jù)的先驗(yàn)信息(idle delay)由訪存歷史信息預(yù)測(cè)得來,而PCD和DCE所依據(jù)先驗(yàn)信息(即將刷新的Rank)由刷新的規(guī)律性很容易準(zhǔn)確得到,因此相比而言,后者更具優(yōu)勢(shì).雖然后者可以成功地使訪存命令避開刷新操作,提高吞吐量,但是其不可避免地推遲了某些訪存命令的執(zhí)行,使其等待時(shí)間增長(zhǎng),從而可能造成性能上的損失.因此,更加智能的調(diào)度算法仍然是未來的研究方向.

      刷新實(shí)現(xiàn)的改進(jìn)可分2類:FGR和RP盡量減少單次刷新操作阻塞訪存的時(shí)間(更短的刷新操作或者可暫停的刷新操作);ROR,PBR,SALR則是尋求刷新和正常訪存可并發(fā)執(zhí)行的機(jī)會(huì),使得刷新操作在“后臺(tái)”進(jìn)行,盡量把其對(duì)正常訪存的干擾降至最低.FGR,RP在訪存很密集的情況下效果有限,因?yàn)槠涠氯L存的總時(shí)間沒變,甚至有所增長(zhǎng).ROR雖然實(shí)現(xiàn)最簡(jiǎn)單,不需要修改DRAM,但是不能利用Bank內(nèi)多個(gè)Sub-array實(shí)現(xiàn)并行刷新,因此在高密度

      場(chǎng)景下效率不高,性能反而不如AR.PBR的實(shí)現(xiàn)簡(jiǎn)單(LPDDRx已經(jīng)支持),而且可以利用多Bank并發(fā).SALR的性能最好,但是需要對(duì)DRAM進(jìn)行加大改動(dòng).PBR和SALR可能是未來的發(fā)展方向.值得注意的是,將刷新與訪存并發(fā)執(zhí)行并不是完美的解決方案,即使完全沒有沖突,由于DRAM最大電流的限制,刷新操作的“后臺(tái)”執(zhí)行會(huì)影響“前臺(tái)”可并發(fā)執(zhí)行的訪存請(qǐng)求數(shù),仍帶來一定的性能開銷.

      上述方法在一定程度上降低了刷新操作對(duì)性能的影響,但是并沒有改變刷新操作的總量,執(zhí)行刷新操作消耗的功耗并沒有得到改善.

      3 減少不必要的刷新操作

      從圖3(b)來看,隨著DRAM密度進(jìn)一步增大,刷新操作所消耗的功耗將超過執(zhí)行正常訪存命令所消耗的功耗.因此,如何識(shí)別并減少不必要的刷新操作,省去其消耗的功耗,是降低刷新的功耗開銷的一個(gè)研究方向;與此同時(shí),由于刷新操作的減少,其對(duì)性能的影響也能得到改善.

      事實(shí)上所有的DRAM行并不需要以同樣的周期刷新,有很多方法可以利用各種信息,減少不必要的刷新操作.根據(jù)所利用信息的不同,本節(jié)將從信息是什么、如何獲取相關(guān)信息、以及如何利用相關(guān)信息減少刷新操作等方面展開介紹.

      3.1 利用單元保持時(shí)間差異性

      保持時(shí)間指DRAM存儲(chǔ)單元從被寫入數(shù)據(jù)到仍然可以讀出正確數(shù)據(jù)所持續(xù)的時(shí)間,即一個(gè)存儲(chǔ)單元不刷新而能保持?jǐn)?shù)據(jù)正確的最長(zhǎng)時(shí)間.由于制造工藝的偏差(process variation),不同存儲(chǔ)單元的保持時(shí)間有較大差異,而JEDEC規(guī)范對(duì)所有存儲(chǔ)單元規(guī)定了統(tǒng)一的刷新周期,其實(shí)是為了保證保持時(shí)間最短的存儲(chǔ)單元不丟失數(shù)據(jù).事實(shí)上,保持時(shí)間的概率分布呈現(xiàn)為2部分:主要分布和長(zhǎng)尾分布.前者涵蓋了普通的存儲(chǔ)單元,其平均保持時(shí)間通常長(zhǎng)于40s;后者包括那些有缺陷的存儲(chǔ)單元,其保持時(shí)間較短[22].圖5顯示了不同工藝下保持時(shí)間的累計(jì)分布.從圖5可見,除了極少數(shù)存儲(chǔ)單元需要64ms刷新周期外,大部分的存儲(chǔ)單元都可以忍受更長(zhǎng)的刷新周期.

      Fig.5 The cumulative distribution of retention time at different technology nodes[22].圖5 不同工藝下保持時(shí)間的累計(jì)分布[22]

      每個(gè)單元的保持時(shí)間可以通過軟件測(cè)試獲?。环N簡(jiǎn)單的測(cè)試方法是,把所有單元的保持時(shí)間初始化為0,然后執(zhí)行下面流程:

      1)設(shè)置刷新周期為T;

      2)把所有存儲(chǔ)單元初始化為特定的數(shù)據(jù),比如全0、全1或其他模式;

      3)等待一定時(shí)間,比如10×T;

      4)檢查所有存儲(chǔ)單元的值是否為初始值,如果是,則更新該單元的保持時(shí)間為T;

      5)把T設(shè)置為T+ΔT,重新執(zhí)行上述流程.

      由于刷新以行為粒度,每個(gè)行的保持時(shí)間可以定義為該行中所有存儲(chǔ)單元的保持時(shí)間最小值.根據(jù)保持時(shí)間的差異性,不同的DRAM行實(shí)際所需要的刷新周期是不同的.利用這個(gè)信息,以下這些方式可以從硬件上對(duì)不同的行以不同的周期刷新,或者從軟件上對(duì)不同的行加以區(qū)分.

      VRA(variable refresh period architecture)[23]將每行所需要的刷新周期值存儲(chǔ)在DRAM芯片內(nèi)部的寄存器或者非易失性存儲(chǔ)單元中,比如存儲(chǔ)N,表示該行需要的刷新周期為N×64ms;然后由DRAM芯片內(nèi)部的刷新執(zhí)行邏輯根據(jù)存儲(chǔ)的信息減少某些行的刷新頻率.具體地,在DRAM內(nèi)部維護(hù)計(jì)數(shù)器,記錄當(dāng)前經(jīng)過了多個(gè)64ms.DRAM控制器仍按正常頻率發(fā)送AR命令,但DRAM芯片在對(duì)相應(yīng)行執(zhí)行刷新命令時(shí),檢查其刷新周期值(N)和計(jì)數(shù)器,只有當(dāng)后者為N的整數(shù)倍時(shí),才執(zhí)行該行的刷新命令.這種方式由于需要在DRAM芯片內(nèi)增加存儲(chǔ)和控制開銷,會(huì)造成約7%~20%的面積開銷.

      RAIDR(retention-aware intelligent DRAM refresh)[24]采用和VRA類似的思想,區(qū)別在于不修改DRAM芯片,而是將每行所需要的刷新周期值存儲(chǔ)在DRAM控制器內(nèi)部,由DRAM控制器對(duì)不同的行以不同的周期生成刷新命令.更進(jìn)一步地,RAIDR為了優(yōu)化控制器的存儲(chǔ)開銷,并不精確存儲(chǔ)每行的刷新周期,而是將所有行按所需刷新周期分為若干個(gè)桶,每個(gè)桶用1個(gè)Bloom Filter表示.對(duì)于某一行,按照刷新周期從小到大的順序依次查找各級(jí)Bloom Filter,如果在某一級(jí)命中,則說明需要以該周期進(jìn)行刷新.根據(jù)Bloom Filter的假陽性(false positive),不屬于其中的元素也可能查找命中,但這只會(huì)導(dǎo)致少部分行以比需求更高的頻率刷新,并不會(huì)帶來正確性問題.根據(jù)保持時(shí)間的分布,前2個(gè)桶只包含極少數(shù)的行,那么可以以極小的開銷只維護(hù)這2級(jí)Bloom Filter,從而把所有內(nèi)存行分為3個(gè)刷新等級(jí).由于RAIDR需要通過控制刷新命令的生成,控制相應(yīng)行的刷新執(zhí)行,因此只能采用ROR方式.

      DTail-R[13]也采用類似VRA的思想,區(qū)別在于把每行所需要的刷新周期值作為普通數(shù)據(jù)存儲(chǔ)在DRAM存儲(chǔ)單元中(而非特殊寄存器或者非易失性存儲(chǔ)單元);然后由DRAM控制器適時(shí)從DRAM中讀取出存儲(chǔ)的周期值,控制刷新命令的生成以減少特定行的刷新頻率.相比于DRAM芯片的容量,這種方式的存儲(chǔ)開銷很低.另外,由于刷新的順序性和周期性,可以設(shè)計(jì)簡(jiǎn)單的緩存和預(yù)取機(jī)制,掩蓋DRAM控制器讀取存儲(chǔ)周期值的開銷.同RAIDR一樣,DTail需要由DRAM控制器跳過某些行的刷新,因此采用ROR方式是一種直接的做法.同時(shí),DTail還提出了一種silent refresh命令,DRAM在收到這種命令后,只增加內(nèi)部計(jì)數(shù)器,不執(zhí)行刷新操作,從而允許在AR模式下跳過刷新.

      ProactiveDRAM[25]降低AR的頻率,同時(shí)對(duì)那些保持時(shí)間較短的行使用額外的ROR進(jìn)行刷新.ProactiveDRAM將這些保持時(shí)間較短的行的信息以Bloom Filter的形式存儲(chǔ)在DRAM硬件中.DRAM硬件定期檢查Bloom Filter,將保持時(shí)間較短的行的地址通過旁路信號(hào)反饋給DRAM控制器,然后觸發(fā)DRAM控制器生成相應(yīng)的ROR命令,進(jìn)行額外的刷新操作.通過這種方式,對(duì)不同的行采用不同的刷新頻率.

      RAPID(retention-aware placement in DRAM)[26]修改操作系統(tǒng)的內(nèi)存管理系統(tǒng),盡量不使用保持時(shí)間較小的物理頁面,以增大AR的刷新周期.首先,RAPID禁用那些保持時(shí)間特別小的物理頁面,這些頁面永遠(yuǎn)不會(huì)被使用,因此增大刷新周期導(dǎo)致的錯(cuò)誤也不會(huì)產(chǎn)生影響.通過刪除1%的物理頁面可以把刷新周期提高到3.2s.進(jìn)一步地,RAPID把剩余的物理頁面按其保持時(shí)間大小分為幾個(gè)桶,分配內(nèi)存時(shí)優(yōu)先從保持時(shí)間較大的桶里分配物理頁面,當(dāng)其中頁面使用完時(shí),再從下一個(gè)保持時(shí)間較小的桶里分配.通過這種分配策略,RAPID可以把刷新周期設(shè)置為已經(jīng)使用的桶里的最小保持時(shí)間.那些保持時(shí)間更小的桶里的頁面由于未被使用,所以即使出錯(cuò)也不會(huì)產(chǎn)生影響.然而,RAPID刪除物理頁面的做法有實(shí)用性的缺陷——通常內(nèi)核、驅(qū)動(dòng)等需要使用大頁面(2MB),而在刪除了1%的物理頁面(4KB)后,很難找到可用的大頁面.

      RIO(refresh incessantly but occasionally)[27]采用和RAPID類似的思想,即刪除那些保持時(shí)間特別小的物理頁面,以增大AR刷新周期.為了避免RAPID的缺陷,RIO做出了折衷,只刪除0.1%的物理頁面,這樣既能保證很容易找到可用的大頁面,又能適當(dāng)?shù)卦龃笏⑿轮芷冢?/p>

      3.2 利用單元數(shù)據(jù)有效性

      數(shù)據(jù)有效性指DRAM存儲(chǔ)單元里是否存儲(chǔ)了有效數(shù)據(jù).系統(tǒng)初始狀態(tài)下,所有存儲(chǔ)單元的數(shù)據(jù)都是無效.隨著存儲(chǔ)單元被分配給進(jìn)程,并被寫入有效數(shù)據(jù),這些存儲(chǔ)單元里的數(shù)據(jù)才變得有意義.而隨著這些存儲(chǔ)單元被進(jìn)程釋放,其存儲(chǔ)的數(shù)據(jù)也變得無效.那么,對(duì)于這些不存儲(chǔ)有效數(shù)據(jù)的存儲(chǔ)單元,其數(shù)據(jù)正確性不需要被維護(hù),對(duì)其的刷新操作是不必要的.

      每行的數(shù)據(jù)有效性與物理內(nèi)存的分配與釋放相關(guān).通常,操作系統(tǒng)以頁面為粒度分配和回收內(nèi)存,而內(nèi)存的1行包含1個(gè)或多個(gè)物理頁面.因此,可以通過監(jiān)控操作系統(tǒng)分配頁面和回收頁面的例程,得到物理頁面的數(shù)據(jù)有效性,進(jìn)而轉(zhuǎn)換為DRAM行的數(shù)據(jù)有效性信息.

      SRA(selective refresh architecture)[23,28]在DRAM芯片內(nèi)部為每行增加1位寄存器,表示該行是否存儲(chǔ)有效數(shù)據(jù);然后由DRAM芯片內(nèi)的刷新執(zhí)行邏輯在接收到AR刷新命令時(shí),根據(jù)相應(yīng)行的寄存器值,決定是否執(zhí)行刷新操作.這種方式由于需要在DRAM芯片內(nèi)增加存儲(chǔ)和控制開銷,會(huì)造成約5%的面積開銷.

      PARIS(placement-aware refresh in situ)[27]在DRAM控制器內(nèi)部維護(hù)bitmap,每行或每幾行對(duì)應(yīng)1b,表示是否存儲(chǔ)有效數(shù)據(jù).DRAM控制器的刷新控制器邏輯在生成刷新命令時(shí),檢查bitmap,確定是否發(fā)送相應(yīng)行的刷新命令.這種方式需要在DRAM控制器內(nèi)增加bitmap存儲(chǔ)空間,為了減少存儲(chǔ)開銷,可以使1b表示更多的行.由于需要DRAM控制器跳過某些行的刷新,因此PARIS采用ROR作為基本的刷新方式.

      DTail-V[13]類似于上述的DTail-R,把每行是否存儲(chǔ)有效數(shù)據(jù)的信息存儲(chǔ)在DRAM存儲(chǔ)陣列中;然后由DRAM控制器適時(shí)從DRAM中讀取出相應(yīng)行的信息,控制刷新命令的生成,從而選擇是否對(duì)相應(yīng)行進(jìn)行刷新.如3.1節(jié)所述,DTail既可以采用ROR,又可以支持AR.

      PASR(partial array self refresh)[14-16]在硬件上將DRAM分為2個(gè)分區(qū):一個(gè)分區(qū)正常刷新,另一個(gè)分區(qū)不刷新,分區(qū)比例可調(diào).操作系統(tǒng)可以使用一定的機(jī)制,將分配的頁面遷移到正常刷新的分區(qū)中,從而關(guān)閉另一個(gè)分區(qū)的刷新,節(jié)省功耗.雖然PASR目前只支持Self Refresh,但是其原理很容易被擴(kuò)展到AR.

      3.3 利用單元數(shù)據(jù)容錯(cuò)性

      數(shù)據(jù)容錯(cuò)性指對(duì)某些應(yīng)用(如多媒體、機(jī)器學(xué)習(xí)等),有些數(shù)據(jù)出現(xiàn)一定的誤差只會(huì)影響結(jié)果的精度,并不影響正確性.那么,可以利用應(yīng)用的這一特性,對(duì)不同的數(shù)據(jù)以不同的周期進(jìn)行刷新,允許其出現(xiàn)一定的錯(cuò)誤.

      每行的數(shù)據(jù)容錯(cuò)性通常需要由程序員提供信息,因?yàn)槟男?shù)據(jù)可以容忍錯(cuò)誤依賴于具體應(yīng)用,程序員將數(shù)據(jù)標(biāo)注為“關(guān)鍵”和“可容錯(cuò)”的.

      Flikker[29]將DRAM Bank分為上下2個(gè)分區(qū)(比例可調(diào)):其中一個(gè)分區(qū)以正常周期刷新,另一分區(qū)以多倍的正常周期刷新.這種簡(jiǎn)單的劃分方法只需要很少的硬件開銷.它需要操作系統(tǒng)在分配頁面時(shí),根據(jù)程序員的標(biāo)注,把“關(guān)鍵”的數(shù)據(jù)映射到正常刷新的分區(qū)中,把“可容錯(cuò)”的數(shù)據(jù)映射到低頻率刷新的分區(qū)中.雖然Flikker只支持Self Refresh,但是其原理很容易被擴(kuò)展到AR.

      DTail-T[13]不需要修改操作系統(tǒng)的頁面分配策略,而是分配完物理頁面后,將程序員的標(biāo)注信息進(jìn)一步傳遞到具體的物理頁面,最終再標(biāo)注到DRAM行.DTail-T類似于DTail-R,將標(biāo)注信息存儲(chǔ)在DRAM存儲(chǔ)陣列中,然后由內(nèi)存控制器從中讀出標(biāo)注信息,根據(jù)容錯(cuò)能力進(jìn)行多周期刷新.如3.1節(jié)所述,DTail既可以采用ROR,又可以支持AR.

      3.4 利用單元訪問歷史

      訪問歷史指DRAM存儲(chǔ)單元在多久之前被訪問過.由于對(duì)DRAM存儲(chǔ)單元的訪問需要先對(duì)其所在的行進(jìn)行激活操作,而激活操作相當(dāng)于對(duì)該行進(jìn)行了刷新,因此對(duì)于那些剛剛訪問過的行,其刷新操作可以被適當(dāng)推遲.

      Smart Refresh[30]把內(nèi)存刷新周期分成4個(gè)階段,在內(nèi)存控制器里為每行維護(hù)2b的減1計(jì)數(shù)器.當(dāng)該行被訪問時(shí),對(duì)應(yīng)計(jì)數(shù)器值被復(fù)位為3,然后每經(jīng)過1?4周期,所有計(jì)數(shù)值減1.內(nèi)存控制器的刷新控制邏輯每個(gè)階段檢查所有行的計(jì)數(shù)值,只有那些計(jì)數(shù)值為0(說明距其上次被訪問或刷新至少經(jīng)歷了3?4周期的時(shí)間)的行才執(zhí)行刷新,并把計(jì)數(shù)器復(fù)位為3.通過這種機(jī)制,Smart Refresh可以避免重復(fù)刷新那些剛剛被訪問的行.由于需要DRAM控制器跳過某些行的刷新,因此Smart Refresh只支持采用ROR作為基本的刷新方式.

      3.5 利用單元冗余信息

      JEDEC之所以要求DRAM以64ms為周期刷新,是為了保證數(shù)據(jù)正確性.而為了保證數(shù)據(jù)正確性,另一種常用的做法是存儲(chǔ)冗余信息,如糾錯(cuò)碼.比如,為了更高的可靠性,現(xiàn)在的服務(wù)器通常使用ECC內(nèi)存(可以糾正1位錯(cuò)誤,檢測(cè)2位錯(cuò)誤).因此,只要我們使用足夠強(qiáng)的糾錯(cuò)機(jī)制,即使放松64ms的刷新周期,導(dǎo)致一定的錯(cuò)誤,也可以恢復(fù)出正確數(shù)據(jù).

      SEC(selective error correction)[31]降低整體刷新頻率,使得少部分存儲(chǔ)單元出現(xiàn)錯(cuò)誤,然后對(duì)這部分內(nèi)存單元采用針對(duì)性的糾錯(cuò)方式,保證其數(shù)據(jù)正確性.SEC采用ECP(error correcting pointer)[32]方式進(jìn)行糾錯(cuò),每個(gè)ECP保存了1個(gè)錯(cuò)誤單元的地址,以及1個(gè)額外單元用于替換錯(cuò)誤單元,這種方式的存儲(chǔ)開銷與出錯(cuò)單元的個(gè)數(shù)成正比.SEC需要事先知道所有由于降低刷新頻率而可能出現(xiàn)錯(cuò)誤的內(nèi)存單元,然后構(gòu)造相應(yīng)的ECP.在每次讀取數(shù)據(jù)時(shí),首先通過一定的方式檢查當(dāng)前訪問的存儲(chǔ)單元是否存在對(duì)應(yīng)的ECP;如果存在ECP,則利用其中的替換單元替換從內(nèi)存中讀出的數(shù)據(jù);如果不存在ECP,則直接返回從內(nèi)存中讀出的數(shù)據(jù).在每次寫入數(shù)據(jù)時(shí),也需要先檢查是否存在ECP,如果存在,則把數(shù)據(jù)寫入ECP的替換單元中.

      ArchShield[33]是一個(gè)體系結(jié)構(gòu)級(jí)容忍內(nèi)存錯(cuò)誤的框架,也支持降低刷新頻率,其思想與SEC類似.區(qū)別是SEC利用ECP進(jìn)行單元級(jí)的替換,而Arch-Shield則利用Fault Map進(jìn)行字級(jí)的替換(selective word-level replication).Fault Map相當(dāng)于一個(gè)表格,記錄了當(dāng)前地址是否存在錯(cuò)誤,以及替換字的位置.每次訪問數(shù)據(jù)時(shí),需要先檢查Fault Map,如果不存在錯(cuò)誤,則訪問原始位置,否則訪問替換字.

      SEC和ArchShield需要在每次數(shù)據(jù)訪問時(shí)檢查ECP和Fault Map,為了加速查找過程,2種方法都需要在DRAM控制器內(nèi)增加Cache結(jié)構(gòu),緩存最近使用過的部分ECP和Fault Map.

      3.6 利用溫度信息

      DRAM存儲(chǔ)單元的保持時(shí)間與溫度相關(guān),當(dāng)溫度較低時(shí),單元漏電速度減慢,因此可以適當(dāng)?shù)亟档退⑿骂l率.

      TCR(temperature controlled refresh)[7]在DRAM顆粒內(nèi)增加溫度傳感器,當(dāng)溫度低于45℃時(shí),由DRAM顆粒的控制邏輯按一定比例跳過一些刷新命令的執(zhí)行,達(dá)到節(jié)省功耗的目的.但這時(shí)DRAM控制器仍認(rèn)為DRAM處于刷新狀態(tài),因此這種方式并不能降低性能開銷.

      曾峰等人提出了一種溫度自適應(yīng)的DRAM刷新時(shí)鐘電路[34],頻率隨溫度上升而上升.該電路應(yīng)用于內(nèi)存控制器中,當(dāng)溫度降低時(shí),降低刷新頻率.

      殷萬君提出了在DRAM存儲(chǔ)陣列中加入與溫度相關(guān)的PTAT冗余單元作為溫度傳感監(jiān)測(cè)單元[35].利用該傳感電路的輸出作為控制刷新時(shí)鐘頻率的輸入,從而根據(jù)溫度調(diào)節(jié)刷新頻率.

      3.7 小 結(jié)

      上述所利用的各種信息可以統(tǒng)稱為元數(shù)據(jù).表4總結(jié)了本節(jié)所述的各種方法:

      Table 4 Summary of Reducing Unnecessary Refresh表4 減少不必要刷新操作的方法匯總

      ①“DRAM Chip”means that metadata is stored in extra circuit;“DRAM Array”means that metadata is stored in existing array.

      ②Bitmap can be considered as a table with 1bentry.

      ③Though PASR and Flikker are designed for Self Refresh,it is easy to implement them with AR.

      利用保持時(shí)間差異性的方法最有潛力.因?yàn)閺谋3謺r(shí)間的分布[22]來看,只有很少一部分內(nèi)存單元需要64ms周期刷新,大部分內(nèi)存單元的刷新頻率可以降得很低,因此目前研究最多的也是這種方法.VRA[23],RAIDR[24],DTail-R[13],ProactiveDRAM[25]這4種硬件方法思想類似,都是對(duì)不同行采用不同的刷新頻率,區(qū)別在于智能控制和元數(shù)據(jù)的實(shí)現(xiàn)位置不同:VRA把元數(shù)據(jù)和控制邏輯都實(shí)現(xiàn)在DRAM電路中;RAIDR把元數(shù)據(jù)和控制邏輯都實(shí)現(xiàn)在DRAM控制器中;DTail-R把元數(shù)據(jù)存儲(chǔ)在DRAM存儲(chǔ)單元中,把控制邏輯實(shí)現(xiàn)在DRAM控制器中;ProactiveDRAM把元數(shù)據(jù)存儲(chǔ)在DRAM電路中,把控制邏輯實(shí)現(xiàn)在DRAM電路和DRAM控制器中.RAPID[26],RIO[27]都是通過把保持能力差的行在操作系統(tǒng)中隔離起來,不存儲(chǔ)有效數(shù)據(jù),從而降低整個(gè)DRAM的刷新頻率.

      這些基于保持時(shí)間的方法都面臨2個(gè)挑戰(zhàn):1)這些方法都需要知道DRAM所有單元的保持時(shí)間分布,但是保持時(shí)間受很多因素影響,其中最難以預(yù)測(cè)的2個(gè)因素是DPD(data pattern dependence)[36]和VRT(variable retention time)[36-39].前者指單元的保持時(shí)間和周圍單元所存儲(chǔ)的數(shù)據(jù)相關(guān),后者指單元的保持時(shí)間會(huì)隨著時(shí)間而變化.因此,必須在保持時(shí)間測(cè)試中,測(cè)試更多的數(shù)據(jù)組合以盡量消除DPD的影響,測(cè)試更長(zhǎng)的時(shí)間盡量覆蓋VRT的變化周期.但是這無形中增加了測(cè)試的成本,而且測(cè)試的準(zhǔn)確性(可靠性)很難保證.2)這些方法都是以行為單位進(jìn)行管理,即假設(shè)只有很少一部分行需要64 ms刷新周期.但是隨著制造工藝向20nm以下縮進(jìn),保持時(shí)間較短的單元數(shù)會(huì)增加[40],從而導(dǎo)致包含這樣單元的行數(shù)增加,即需要64ms刷新的行數(shù)增加.極端情況下,只要每行包含1個(gè)這樣的存儲(chǔ)單元,那么所有的內(nèi)存行都需要以64ms為周期進(jìn)行刷新.這個(gè)趨勢(shì)會(huì)減弱這些以行為粒度管理的方法的效果,而那些從操作系統(tǒng)中刪除行的做法將變得更加不可行.針對(duì)第1個(gè)挑戰(zhàn),如何解決測(cè)試的可靠性問題,是采用更嚴(yán)格(成本更高)的測(cè)試,還是運(yùn)行時(shí)動(dòng)態(tài)檢測(cè),是未來需要研究的問題.針對(duì)第2個(gè)挑戰(zhàn),如何以其他粒度管理刷新,或者進(jìn)一步利用不同單元保持時(shí)間的空間分布特性,是可能的研究方向.

      利用數(shù)據(jù)有效性的方法最可靠,只有使用的內(nèi)存才需要刷新,其效果取決于系統(tǒng)的內(nèi)存使用量.因此,在內(nèi)存利用率很高的系統(tǒng)中,其效果非常有限.不過,這種方法適宜和其他方法結(jié)合使用,空閑內(nèi)存完全不刷新,使用的內(nèi)存通過其他方式減少刷新.

      利用數(shù)據(jù)容錯(cuò)性的方法依賴于具體的應(yīng)用程序,對(duì)有些應(yīng)用程序(多媒體、機(jī)器學(xué)習(xí)等)會(huì)有比較大的應(yīng)用潛力.但是,這種方法必須保證程序能正確執(zhí)行,即某些數(shù)據(jù)的錯(cuò)誤只帶來結(jié)果的精度誤差,而不能導(dǎo)致程序的控制流出錯(cuò).因此,如何在保證程序正確執(zhí)行的前提下,在應(yīng)用層面更好地發(fā)掘數(shù)據(jù)的容錯(cuò)性,是未來需要研究的問題.

      利用訪問歷史的方法的效果取決于刷新周期時(shí)間內(nèi)被訪問的行的比例,然而隨著內(nèi)存密度增大,總行數(shù)越來越多,但是刷新周期內(nèi)被訪問的行數(shù)受限于應(yīng)用程序的footprint,卻是很有限的,因此這種方式的效果隨著密度增大變得越來越有限.不過這種方式非常適用于作為高速緩存的eDRAM,因?yàn)槠淇傂袛?shù)很小,且訪問頻度很高[41].

      利用冗余信息的方法,其糾錯(cuò)機(jī)制的性能、成本開銷需要在可承受的范圍內(nèi).盲目地為所有存儲(chǔ)單元增強(qiáng)糾錯(cuò)能力并不可取,更好的做法是選擇性地為最可能出現(xiàn)錯(cuò)誤的單元增強(qiáng)糾錯(cuò)能力.但是這種選擇性的機(jī)制都需要事先知道哪些單元在降低刷新頻率時(shí)會(huì)出現(xiàn)錯(cuò)誤,然后才能為其提供冗余信息[31,33],從而也面臨著與保持時(shí)間測(cè)試同樣的挑戰(zhàn)——其測(cè)試的可靠性是需要解決的問題.

      利用溫度的方法實(shí)現(xiàn)簡(jiǎn)單,只需簡(jiǎn)單的傳感器和頻率調(diào)節(jié)功能.不過,隨著溫度的下降,刷新頻率的降低比例是一個(gè)重要的參數(shù).如果頻率降低過多,有可能導(dǎo)致單元丟失數(shù)據(jù),造成可靠性的問題.

      對(duì)于利用保持時(shí)間差異性、數(shù)據(jù)有效性、數(shù)據(jù)容錯(cuò)性這3類元數(shù)據(jù)的方法,其元數(shù)據(jù)的更新和使用都相對(duì)不頻繁,只需在初始測(cè)試或數(shù)據(jù)分配?釋放時(shí)設(shè)置,在執(zhí)行刷新命令時(shí)使用.DTail[13]提供了一種比較好的解決方案,把這些元數(shù)據(jù)存儲(chǔ)在DRAM陣列中,相比于DRAM容量,其存儲(chǔ)開銷可忽略不計(jì).另外,由于刷新有很強(qiáng)的規(guī)律性,并且相對(duì)不頻繁,可以設(shè)計(jì)簡(jiǎn)單的預(yù)取和緩存機(jī)制,掩蓋元數(shù)據(jù)的訪問開銷.

      對(duì)于利用訪問歷史信息和冗余信息這2類元數(shù)據(jù)的方法,其元數(shù)據(jù)的更新或使用很頻繁,比如Smart Refresh[30]需要在每次訪問時(shí)更新計(jì)數(shù)器,SEC[31],ArchShield[33]需要在每次訪問時(shí)檢查ECP,F(xiàn)ault Map.由于元數(shù)據(jù)的數(shù)據(jù)量過大,在DRAM控制器內(nèi)維護(hù)的成本很高,而將其維護(hù)在DRAM陣列中又會(huì)帶來很大的訪問開銷.因此,一種解決思路[31,33]是將其維護(hù)在DRAM陣列中,同時(shí)在DRAM控制器內(nèi)維護(hù)簡(jiǎn)單的Cache結(jié)構(gòu)緩存最近使用的元數(shù)據(jù).但是,由于元數(shù)據(jù)的數(shù)據(jù)量與內(nèi)存容量成正比,隨著內(nèi)存容量的增大,Cache的命中率勢(shì)必會(huì)下降,從而導(dǎo)致元數(shù)據(jù)訪問開銷增大.目前的Cache解決方案比較簡(jiǎn)單,而且最大只評(píng)估了8GB的內(nèi)存容量[33],但是,對(duì)于更大容量的內(nèi)存系統(tǒng)其效果如何值得商榷(目前主流的服務(wù)器內(nèi)存配置遠(yuǎn)大于8GB).因此,評(píng)估內(nèi)存容量對(duì)于DRAM控制器中的元數(shù)據(jù)Cache的影響,以及如何設(shè)計(jì)對(duì)內(nèi)存容量可擴(kuò)展的Cache機(jī)制,是未來值得研究的問題.

      4 總結(jié)與展望

      雖然在過去,DRAM刷新的性能和功耗開銷很小,并未受到太多關(guān)注.但是,隨著摩爾定律的發(fā)展,DRAM密度持續(xù)增大,刷新所造成的性能和功耗開銷指數(shù)增加.而且,隨著3D堆疊技術(shù)的興起[42-43],DRAM芯片的工作溫度進(jìn)一步提升,導(dǎo)致刷新頻率進(jìn)一步提高(95℃~115℃溫度范圍內(nèi),刷新周期進(jìn)一步減小為8ms[43]),其開銷也進(jìn)一步增大.因此,近幾年工業(yè)界和學(xué)術(shù)界越來越重視刷新問題的研究.

      本文將工業(yè)界和學(xué)術(shù)界提出的眾多優(yōu)化方案歸納為兩大類進(jìn)行了分析和總結(jié).首先,可以通過控制器調(diào)度或改進(jìn)刷新實(shí)現(xiàn)機(jī)制的方法,降低正常訪存和刷新操作沖突的概率和時(shí)間,發(fā)掘兩者并發(fā)執(zhí)行的可能,從而減輕刷新操作對(duì)訪存的阻塞.其次,可以利用各種指導(dǎo)信息(元數(shù)據(jù)),對(duì)不同的內(nèi)存單元采用不同的刷新策略,減少不必要的刷新.前者可以改善性能,后者可同時(shí)降低功耗.

      其中,利用保持時(shí)間的方法最具吸引力,因?yàn)楣に嚻钍沟媒^大部分單元都可以容忍更低的刷新頻率.但是,這種方法有2個(gè)問題,目前尚沒有得到很好的解決:1)由于DPD和VRT問題的存在,使得準(zhǔn)確獲取保持時(shí)間比較困難,基于不準(zhǔn)確的測(cè)試結(jié)果進(jìn)行刷新控制會(huì)帶來可靠性的問題.因此需要從測(cè)試方法或者容錯(cuò)方向進(jìn)行優(yōu)化,提高可靠性.2)DRAM以行為粒度刷新,雖然保持時(shí)間很短的單元占單元總數(shù)的比例很小,但是如果它們?cè)诳臻g上分布很隨機(jī),且數(shù)量足夠多,那么有可能大部分行都會(huì)包含這些單元,從而無法降低刷新頻率.因此需要研究這些單元的空間分布特性,或者改進(jìn)刷新的粒度,從而避免這種情況.

      綜合現(xiàn)有的研究情況,目前已經(jīng)有很多不同的優(yōu)化方案,這些方案從研究走向?qū)嵱?,面臨著效果、成本和可靠性的問題.一個(gè)比較容易接受的方案:首先,應(yīng)該硬件改動(dòng)較小;其次,應(yīng)該把改動(dòng)盡量限制在一個(gè)層次,并對(duì)其他層次透明,否則可能需要對(duì)接口協(xié)議進(jìn)行擴(kuò)展;另外,最好能同時(shí)兼顧多種方法同時(shí)發(fā)揮效果;最重要的是,那些放松64ms刷新約束的方案必須保證可靠性不受影響.

      [1]Wulf W A,McKee S A.Hitting the memory wall:Implications of the obvious[J].ACM SIGARCH Computer Architecture News,1995,23(1):20 24

      [2]Rogers B M,Krishna A,Bell G B,et al.Scaling the bandwidth wall:Challenges in and avenues for CMP scaling[C]??Proc of the Int Symp on Computer Architecture(ISCA).New York:ACM,2009:371 382

      [3]Barroso L A,H lzle U.The datacenter as a computer:An introduction to the design of warehouse-scale machines[J].Synthesis Lectures on Computer Architecture,2009,4(1):1 108

      [4]Lefurgy C,Rajamani K,Rawson F,et al.Energy management for commercial servers[J].IEEE Computer,2003,36(12):39 48

      [5]Zhang T,Poremba M,Xu C,et al.CREAM:A concurrentrefresh-aware DRAM memory system[C]??Proc of the Int Symp on High-Performance Computer Architecture(HPCA).Piscataway,NJ:IEEE,2014:368 379

      [6]ITRS.ITRS report 2012update[R?OL].Int Technology Roadmap for Semiconductors,2012[2014-12-11].http:??www.itrs.net?ITRS%201999-2014%20Mtgs,%20Presentations% 20&%20Links?2012ITRS?Home2012.htm

      [7]JEDEC.JESD79-4:DDR4SDRAM[S].Arlington,VA:JEDEC Solid State Technology Association,2012

      [8]JEDEC.JESD79-3D:DDR3SDRAM[S].Arlington,VA:JEDEC Solid State Technology Association,2009

      [9]JEDEC.JESD79-2C:DDR2SDRAM[S].Arlington,VA:JEDEC Solid State Technology Association,2006

      [10]JEDEC.JESD79C:Double Data Rate(DDR)SDRAM[S].Arlington,VA:JEDEC Solid State Technology Association,2003

      [11]Micron.Various methods of DRAM refresh,TN-04-30[R].Boise,ID:Micron Technology,Inc,1999

      [12]Micron.4Gb:x4,x8,x16DDR3SDRAM features[R].Boise,ID:Micron Technology,Inc,2009

      [13]Cui Z,McKee S A,Zha Z,et al.DTail:A flexible approach to DRAM refresh management[C]??Proc of the Int Conf on Supercomputing(ICS).New York:ACM,2014:43 52

      [14]JEDEC.JESD209-2E:Low Power Double Data Rate 2(LPDDR2)[S].Arlington,VA:JEDEC Solid State Technology Association,2010

      [15]JEDEC.JESD209-3:Low Power Double Data Rate 3(LPDDR3)[S].Arlington,VA:JEDEC Solid State Technology Association,2012

      [16]JEDEC.JESD209B:Low Power Double Data Rate(LPDDR)[S].Arlington,VA:JEDEC Solid State Technology Association,2010

      [17]Liu S,Leung B,Neckar A,et al.Hardware?software techniques for DRAM thermal management[C]??Proc of the Int Symp on High-Performance Computer Architecture(HPCA).Piscataway,NJ:IEEE,2011:515 525

      [18]Stuecheli J,Kaseridis D.Elastic refresh:Techniques to mitigate refresh penalties in high density memory[C]??Proc of the Int Symp on Microarchitecture(MICRO).Los Alamitos,CA:IEEE Computer Society,2010:375 384

      [19]Mukundan J,Hunter H,Kim K H,et al.Understanding and mitigating refresh overheads in high-density DDR4 DRAM systems[C]??Proc of the Int Symp on Computer Architecture(ISCA).New York:ACM,2013:48 59

      [20]Nair P,Chou C C,Qureshi M K.A case for refresh pausing in DRAM memory systems[C]??Proc of the Int Symp on High-Performance Computer Architecture(HPCA).Piscataway,NJ:IEEE,2013:627 638

      [21]Chang K K W,Lee D,Chishti Z,et al.Improving DRAM performance by parallelizing refreshes with accesses[C]?? Proc of the Int Symp on High-Performance Computer Architecture(HPCA).Piscataway,NJ:IEEE,2014:356 367

      [22]Kim K,Lee J.A new investigation of data retention time in truly nanoscaled DRAMs[J].IEEE Electron Device Letters,2009,30(8):846 848

      [23]Ohsawa T,Kai K,Murakami K.Optimizing the DRAM refresh count for merged DRAM?logic LSIs[C]??Proc of the Int Symp on Low Power Electronics and Design(ISLPED).New York:ACM,1998:82 87

      [24]Liu J,Jaiyen B,Veras R,et al.RAIDR:Retention-aware intelligent DRAM refresh[C]??Proc of the Int Symp on Computer Architecture(ISCA).Piscataway,NJ:IEEE,2012:1 12

      [25]Wang J,Dong X,Xie Y.ProactiveDRAM:A DRAM-initiated retention management scheme[C]??Proc of the Int Conf on Computer Design(ICCD).Piscataway,NJ:IEEE,2014:22 27

      [26]Venkatesan R K,Herr S,Rotenberg E.Retention-aware placement in DRAM(RAPID):Software methods for quasinon-volatile DRAM[C]??Proc of the Int Symp on High-Performance Computer Architecture(HPCA).Piscataway,NJ:IEEE,2006:155 165

      [27]Baek S,Cho S,Melhem R.Refresh now and then[J].IEEE Trans on Computers,2013,63(12):3114 3126

      [28]Isen C,John L.ESKIMO:Energy savings using semantic knowledge of inconsequential memory occupancy for DRAM subsystem[C]??Proc of the Int Symp on Microarchitecture(MICRO).New York:ACM,2009:337 346

      [29]Liu S,Pattabiraman K,Moscibroda T,et al.Flikker:Saving DRAM refresh-power through critical data partitioning[C]??Proc of the Int Conf on Architectural Support for Programming Languages and Operating Systems(ASPLOS).New York:ACM,2011:213 224

      [30]Ghosh M,Lee H H S.Smart refresh:An enhanced memory controller design for reducing energy in conventional and 3D die-stacked DRAMs[C]??Proc of the Int Symp on Microarchitecture(MICRO).Los Alamitos,CA:IEEE Computer Society,2007:134 145

      [31]Lin C H,Shen D Y,Chen Y J,et al.SECRET:Selective error correction for refresh energy reduction in DRAMs[C]??Proc of the Int Conf on Computer Design(ICCD).Piscataway,NJ:IEEE,2012:67 74

      [32]Schechter S,Loh G H,Straus K,et al.Use ECP,not ECC,for hard failures in resistive memories[C]??Proc of the Int Symp on Computer Architecture(ISCA).New York:ACM,2010:141 152

      [33]Nair P J,Kim D H,Qureshi M K.ArchShield:Architectural framework for assisting DRAM scaling by tolerating high error rates[C]??Proc of the Int Symp on Computer Architecture(ISCA).New York:ACM,2013:72 83

      [34]Zeng Feng,Ren Mingming,Yi Maoxiang,et al.Temperature controlled DRAM refresh clocking circuit[J].Modern Electronics Technique,2009,32(15):181 183(in Chinese)(曾鋒,任明明,易茂祥,等.溫度自適應(yīng)性DRAM刷新時(shí)鐘電路[J].現(xiàn)代電子技術(shù),2009,32(15):181 183)

      [35]Yin Wanjun.Design of DRAM refresh clock generation circuit based on temperature[D].Chengdu:Southwest Jiaotong University,2014(in Chinese)(殷萬君.基于溫度的DRAM刷新時(shí)鐘產(chǎn)生電路設(shè)計(jì)[D].成都:西南交通大學(xué),2014)

      [36]Liu J,Jaiyen B,Kim Y,et al.An experimental study of data retention behavior in modern DRAM devices:Implications for retention time profiling mechanisms[C]??Proc of the Int Symp on Computer Architecture(ISCA).New York:ACM,2013:60 71

      [37]Yaney D,Lu C,Kohler R,et al.A meta-stable leakage phenomenon in DRAM charge storage—Variable hold time[C]??Proc of the Int Electron Devices Meeting(IEDM).Piscataway,NJ:IEEE,1987:336 339

      [38]Restle P,Park J,Lloyd B.DRAM variable retention time[C]??Proc of the Int Electron Devices Meeting(IEDM).Piscataway,NJ:IEEE,1992:807 810

      [39]Kim H,Oh B,Son Y,et al.Characterization of the variable retention time in dynamic random access memory[J].IEEE Trans on Electron Devices,2011,58(9):2952 2958

      [40]Kim K,Chung U I,Park Y,et al.Extending the DRAM and FLASH memory technologies to 10nm and beyond[C]?? Proc of the SPIE Advanced Lithography.San Jose,CA:Int Society for Optics and Photonics,2012:1 11

      [41]Agrawal A,Jain P,Ansari A,et al.Refrint:Intelligent refresh to minimize power in on-chip multiprocessor cache hierarchies[C]??Proc of the Int Symp on High-Performance Computer Architecture(HPCA).Piscataway,NJ:IEEE,2013:400 411

      [42]HMCC.Hybrid Memory Cube Specification 1.0[S].Beaverton,OR:Hybrid Memory Cube Consortium,2013

      [43]Tezzaron.OctopusTM8-port DRAM for die-stack applications[R].Naperville,IL:Tezzaron Semiconductor Corp,2010

      Cui Zehan,born in 1989.PhD.Member of China Computer Federation.His main research interests include computer architecture,memory system,performance optimization and low power(cuizehan@ict.a(chǎn)c.cn).

      Chen Mingyu,born in 1972.Professor and PhD supervisor.Member of China Computer Federation.His main research interests include architecture,operating system and algorithm optimization for high performance computers and datacenter networks(cmy@ict.a(chǎn)c.cn).

      Problems and Optimizations of Refresh for Large-Capacity DRAM

      Cui Zehan1,2and Chen Mingyu11(State Key Laboratory of Computer Architecture(Institute of Computing Technology,Chinese Academy of Sciences),Beijing100190)2(University of Chinese Academy of Sciences,Beijing100049)

      DRAM(dynamic random access memory)is widely used as main memory of computer system,which is of fast speed,high density and low cost.DRAM uses capacitors as basic storage cells,and uses the amount of charges to represent digital“0”and“1”.However,the capacitor charges leak over time,causing data lost.To maintain data integrity,DRAM periodically refreshes all cells-read data out before lost and rewrite into cells.Refresh operations block normal memory requests,causing performance overhead;refresh operations also consume extra power,causing energy overhead.The refresh overheads are related to DRAM density.In the past,DRAM density was relative small,and the amount of cells needing to be refreshed was not that large,so the overheads gain little attention.But as the evolving of Moore s Law,DRAM density grows to Gigabits today,and more cells need to be refreshed during the same period,exacerbating the performance and energy overheads.The problem of refresh has now been an important concern for both industry and academia.In this paper,we first introduce how refreshes are performed,its overheads,and some improvements from industry;then we classify the many improvements from industry and academia into two categories-reducing the blocking of memory requests,and reducing the unnecessary refreshesand give our analysis and summaries,respectively;finally,we conclude the research work and point out the possible research directions.

      main memory;dynamic random access memory(DRAM);refresh;performance;power;retention time;unnecessary refresh

      TP333.1

      2014-12-11;

      2015-04-28

      國(guó)家自然科學(xué)基金項(xiàng)目(61221062,61272132,61331008);國(guó)家“九七三”重點(diǎn)基礎(chǔ)研究發(fā)展計(jì)劃基金項(xiàng)目(2011CB302502);中國(guó)科學(xué)院戰(zhàn)略性先導(dǎo)專項(xiàng)課題(XDA06010401)

      This work was supported by the National Natural Science Foundation of China(61221062,61272132,61331008),the National Basic Research Program of China(973Program)(2011CB302502),and the State Priority Research Program of the Chinese Academy of Sciences(XDA06010401).

      ①根據(jù)具體實(shí)現(xiàn)和電流限制,每個(gè)組也可能包含少數(shù)幾個(gè)(比如2個(gè))Bank的行.

      猜你喜歡
      存儲(chǔ)單元功耗命令
      一種28 nm工藝下抗單粒子翻轉(zhuǎn)SRAM的12T存儲(chǔ)單元設(shè)計(jì)
      只聽主人的命令
      數(shù)據(jù)在計(jì)算機(jī)內(nèi)存中的存儲(chǔ)形式及實(shí)驗(yàn)驗(yàn)證
      移防命令下達(dá)后
      揭開GPU功耗的面紗
      一種成本更低的全新靜態(tài)DRAM存儲(chǔ)單元
      MiR-125a-5p is Upregulated in Plasma of Residents from An Electronic Waste Recycling Site
      數(shù)字電路功耗的分析及優(yōu)化
      電子制作(2016年19期)2016-08-24 07:49:54
      這是人民的命令
      “功耗”說了算 MCU Cortex-M系列占優(yōu)
      電子世界(2015年22期)2015-12-29 02:49:44
      沂南县| 昌平区| 铁力市| 沁源县| 叙永县| 耒阳市| 涞源县| 枞阳县| 三亚市| 红安县| 玉田县| 民权县| 全州县| 怀安县| 枣庄市| 汕头市| 运城市| 遵义市| 湘阴县| 若尔盖县| 绥宁县| 綦江县| 安岳县| 六安市| 辰溪县| 平乡县| 岐山县| 黄山市| 于田县| 渭源县| 拜泉县| 涿鹿县| 马公市| 龙川县| 双流县| 贵溪市| 绥宁县| 琼结县| 高平市| 凯里市| 阿拉善右旗|