動(dòng)態(tài)隨機(jī)訪問(wèn)存儲(chǔ)器的刷新方法
【專利摘要】本發(fā)明提供了一種DRAM的刷新方法,包括以下步驟:設(shè)置計(jì)數(shù)器初始值;每隔一遞減周期,計(jì)數(shù)器遞減計(jì)數(shù);判斷DRAM的行是否被訪問(wèn);如果被訪問(wèn),計(jì)數(shù)器值置為初始值,進(jìn)入到下一個(gè)刷新周期;如果沒有被訪問(wèn),則當(dāng)計(jì)數(shù)器值遞減到最小計(jì)數(shù)值時(shí),查找訪存命令隊(duì)列中是否有對(duì)將刷新行的訪問(wèn)操作,如果訪存命令隊(duì)列中有對(duì)將刷新行的訪問(wèn),由調(diào)度器優(yōu)先調(diào)度執(zhí)行,并將計(jì)數(shù)器值置為初始值,進(jìn)入到下一個(gè)刷新周期。本發(fā)明采用行命中優(yōu)先、即將刷新行的訪問(wèn)命令優(yōu)先和先到先服務(wù)三個(gè)優(yōu)先級(jí)調(diào)度算法,進(jìn)行DRAM控制操作,通過(guò)優(yōu)先調(diào)度即將刷新行的訪問(wèn),代替部分刷新操作,減少了刷新次數(shù),降低了DRAM的功耗并提高了系統(tǒng)性能。
【專利說(shuō)明】動(dòng)態(tài)隨機(jī)訪問(wèn)存儲(chǔ)器的刷新方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種內(nèi)存刷新方法,具體而言,涉及一種動(dòng)態(tài)隨機(jī)訪問(wèn)存儲(chǔ)器的刷新方法。
【背景技術(shù)】
[0002]動(dòng)態(tài)隨機(jī)訪問(wèn)存儲(chǔ)器(Dynamic Random Access Memory,DRAM)具有很低的單元存儲(chǔ)成本和很高的集成密度,被廣泛應(yīng)用于現(xiàn)代計(jì)算機(jī)系統(tǒng)中。DRAM屬于易失性存儲(chǔ)器件,為了保持?jǐn)?shù)據(jù)不丟失,需要進(jìn)行刷新操作,JEDEC標(biāo)準(zhǔn)規(guī)定DRAM單元的刷新周期為64ms (高溫下為32ms),所有的DRAM的行必須在刷新周期內(nèi)被刷新。如果存儲(chǔ)單元沒有被刷新,存儲(chǔ)的信息就會(huì)丟失。
[0003]目前DRAM內(nèi)存控制器通常采用的調(diào)度算法是FR-FCFS (First-ReadyFirst-Come-First-Serve,行命中優(yōu)先-先來(lái)先服務(wù)),該算法確定下一個(gè)要響應(yīng)的內(nèi)存訪問(wèn)請(qǐng)求,這種算法的主要特點(diǎn)在于行命中優(yōu)先和最早的請(qǐng)求優(yōu)先。這種傳統(tǒng)的調(diào)度算法在DRAM的某一行的刷新周期內(nèi)該行被訪問(wèn)的概率有限,所以減少的刷新次數(shù)有限。過(guò)去DRAM的容量較小,行數(shù)較少,完成刷新的總時(shí)間較短。因此一個(gè)刷新脈沖完成所有行的刷新是可接受的,隨著DRAM容量的增大,刷新給訪存操作帶來(lái)的延時(shí)增大,降低了系統(tǒng)性能。
[0004]與本發(fā)明相關(guān)的現(xiàn)有技術(shù)中,現(xiàn)有的DRAM刷新方法有兩種,一種是在DRAM內(nèi)存控制器中為存儲(chǔ)器的每一行設(shè)置了一個(gè)2bit的計(jì)數(shù)器,來(lái)實(shí)現(xiàn)刷新控制。將計(jì)數(shù)器置為初始值3,刷新周期為64ms,計(jì)數(shù)器按16ms為單位遞減計(jì)數(shù),計(jì)數(shù)器減到O時(shí)對(duì)應(yīng)的行進(jìn)行刷新,如果在減到O之前該行被訪問(wèn),將計(jì)數(shù)器置為3,不需要對(duì)該行進(jìn)行刷新。刷新操作是對(duì)DRAM的一行進(jìn)行充電的過(guò)程,該方案減少了刷新次數(shù),降低了 DRAM的功耗。但是在DRAM的某一行的刷新周期內(nèi)該行被訪問(wèn)的概率有限,所以減少的刷新次數(shù)有限。另一種是通過(guò)對(duì)每一行在相鄰兩次訪問(wèn)之間的時(shí)間進(jìn)行計(jì)時(shí),若在刷新周期內(nèi)該行被訪問(wèn),則無(wú)需再進(jìn)行刷新操作,對(duì)于超過(guò)刷新周期未被刷新的行,通過(guò)一次讀操作或?qū)懖僮鞔嫠⑿拢瑹o(wú)需考慮專門的刷新操作,但是這一做法增大了 DRAM的功耗并降低了帶寬。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的目的是針對(duì)現(xiàn)有技術(shù)的缺點(diǎn),提供一種DRAM的刷新方法,以解決現(xiàn)有技術(shù)的內(nèi)存刷新方法中刷新次數(shù)頻繁,訪存延遲和功耗大的問(wèn)題,降低了功耗并提高了性能。
[0006]為實(shí)現(xiàn)上述目的,本發(fā)明提供了一種DRAM的刷新方法,所述方法包括以下步驟:
[0007]設(shè)置計(jì)數(shù)器的初始值;
[0008]每隔一遞減周期,所述計(jì)數(shù)器遞減計(jì)數(shù);
[0009]判斷所述DRAM的行是否被訪問(wèn);
[0010]當(dāng)所述DRAM的行被訪問(wèn)時(shí),將計(jì)數(shù)器值置為所述初始值;
[0011]當(dāng)所述DRAM的行未被訪問(wèn)時(shí),如果當(dāng)前計(jì)數(shù)值為零,則查找訪存命令隊(duì)列中是否有對(duì)將刷新行的訪問(wèn)操作,如果有,則調(diào)度器按照優(yōu)先順序調(diào)度執(zhí)行對(duì)所述即將刷新行的訪問(wèn)命令;
[0012]如果訪存命令隊(duì)列中沒有對(duì)將刷新行的訪問(wèn)操作,則調(diào)度器按照優(yōu)先順序調(diào)度執(zhí)行對(duì)該行的刷新命令;
[0013]當(dāng)所述DRAM的行未被訪問(wèn)時(shí),如果當(dāng)前計(jì)數(shù)值大于零,則每隔一遞減周期,所述計(jì)數(shù)器遞減計(jì)數(shù)。
[0014]優(yōu)選地,所述調(diào)度器的調(diào)度算法包括行命中優(yōu)先、即將刷新行的訪問(wèn)命令優(yōu)先和先到先服務(wù)二個(gè)優(yōu)先級(jí)。
[0015]在上述方法中,在設(shè)置計(jì)數(shù)器的初始值之前,對(duì)每一個(gè)DRAM的行使用所述計(jì)數(shù)器進(jìn)行計(jì)數(shù)。
[0016]本發(fā)明的優(yōu)點(diǎn)是采用行命中優(yōu)先、即將刷新行的訪問(wèn)命令優(yōu)先和先到先服務(wù)三個(gè)優(yōu)先級(jí)的調(diào)度算法,進(jìn)行DRAM的控制操作,通過(guò)優(yōu)先調(diào)度即將刷新行的訪問(wèn),代替了部分刷新操作,減少了刷新次數(shù),降低了 DRAM的功耗并提高了系統(tǒng)性能。
【專利附圖】
【附圖說(shuō)明】
[0017]圖1為本發(fā)明的DRAM的刷新方法的刷新控制電路的示意圖。
[0018]圖2為本發(fā)明的DRAM的刷新方法實(shí)施例一的流程圖;
[0019]圖3為本發(fā)明的DRAM的刷新方法實(shí)施例二的流程圖。
【具體實(shí)施方式】
[0020]本發(fā)明的DRAM的刷新方法采用優(yōu)先調(diào)度即將刷新行的訪問(wèn),代替了傳統(tǒng)的刷新操作,減少了刷新次數(shù),降低了 DRAM的功耗并提高了系統(tǒng)性能。
[0021]下面通過(guò)附圖和實(shí)施例,對(duì)本發(fā)明的技術(shù)方案做進(jìn)一步的詳細(xì)描述。
[0022]圖1為本發(fā)明的DRAM的刷新方法的刷新控制電路的示意圖,由于相對(duì)于傳統(tǒng)的DRAM的刷新增加了優(yōu)先調(diào)度即將刷新行的訪問(wèn),需要對(duì)DRAM的控制器的結(jié)構(gòu)進(jìn)行修改,如圖所示,每一條命令增加了一個(gè)比較器,用于在隊(duì)列中查找即將刷新的行的訪問(wèn),其余模塊均采用傳統(tǒng)形式,提高了模塊的通用性。
[0023]DRAM的控制器中的調(diào)度器采用三個(gè)優(yōu)先級(jí)的調(diào)度算法,包括行命中優(yōu)先、即將刷新行的訪問(wèn)命令優(yōu)先和先到先服務(wù)。
[0024]圖2為本發(fā)明的DRAM的刷新方法實(shí)施例一的流程圖,如圖所示,該方法包括:
[0025]步驟101,設(shè)置計(jì)數(shù)器的初始值;
[0026]步驟102,每隔一遞減周期,計(jì)數(shù)器遞減計(jì)數(shù);
[0027]步驟103,判斷DRAM的行是否被訪問(wèn);
[0028]步驟104,依據(jù)對(duì)DRAM的行是否被訪問(wèn)的判斷,選擇最佳的調(diào)度算法。
[0029]通過(guò)選擇最佳的調(diào)度方法,當(dāng)計(jì)數(shù)器的值為O時(shí),優(yōu)先調(diào)度即將刷新行的訪問(wèn),代替了部分刷新操作,減少了刷新次數(shù),達(dá)到了降低DRAM的功耗并提高系統(tǒng)性能的效果。
[0030]圖3為本發(fā)明的DRAM的刷新方法實(shí)施例二的流程圖,如圖所示,包括如下步驟:[0031 ] 步驟201,對(duì)DRAM中的每一行計(jì)數(shù),設(shè)置初始值;
[0032]對(duì)每一個(gè)DRAM行設(shè)置一個(gè)計(jì)數(shù)器,并對(duì)每一個(gè)DRAM行進(jìn)行計(jì)數(shù)。例如,DRAM刷新周期為64ms,計(jì)數(shù)器若按照16ms為單位遞減來(lái)計(jì)數(shù),則當(dāng)計(jì)數(shù)器減到O時(shí),DRAM—個(gè)刷新周期結(jié)束,計(jì)數(shù)器的初始值T可以設(shè)置為3。
[0033]步驟202,每隔一遞減周期,T值減I ;
[0034]每隔一遞減周期,計(jì)數(shù)器進(jìn)行遞減計(jì)數(shù),例如,每隔16ms,計(jì)數(shù)值T值減去I。
[0035]步驟203,判斷該行是否被訪問(wèn);
[0036]判斷DRAM的行中是否有正在被訪問(wèn)的行,如果有,則進(jìn)入步驟208 ;如果沒有,則進(jìn)行下一步驟204。
[0037]步驟204,判斷計(jì)數(shù)器值是否為零;
[0038]判斷計(jì)數(shù)器值T是否為0,如果計(jì)數(shù)器值T大于0,則計(jì)數(shù)值每隔一遞減周期遞減,例如每隔16msT值減去I。如果計(jì)數(shù)器值T等于0,則進(jìn)行下一步驟205。
[0039]步驟205,查找訪存命令隊(duì)列中是否有對(duì)該行的訪問(wèn);
[0040]通過(guò)比較器查找訪存命令隊(duì)列中是否有對(duì)即將要刷新的行的訪問(wèn)操作,如果有則進(jìn)行步驟207 ;如果沒有則進(jìn)行步驟206。
[0041 ] 步驟206,對(duì)該DRAM的行進(jìn)行刷新操作;
[0042]通過(guò)步驟205利用比較器查找訪存命令隊(duì)列中沒有對(duì)即將要刷新的行的訪問(wèn)操作,則與該計(jì)數(shù)器對(duì)應(yīng)的地址被插入到刷新命令隊(duì)列中,調(diào)度器讀取該地址并發(fā)出刷新命令,對(duì)該行進(jìn)行刷新操作,刷新完成后進(jìn)入步驟208。
[0043]步驟207,根據(jù)優(yōu)先順序調(diào)度執(zhí)行對(duì)即將刷新行的訪問(wèn)命令,訪問(wèn)該行;
[0044]通過(guò)步驟205利用比較器查找訪存命令隊(duì)列中有對(duì)即將要刷新的行的訪問(wèn)操作,則調(diào)度器按照優(yōu)先順序調(diào)度執(zhí)行對(duì)即將刷新行的訪問(wèn)命令,并進(jìn)行下一步驟208。
[0045]步驟208,計(jì)數(shù)值初始化;
[0046]在調(diào)度器完成一個(gè)調(diào)度之后,計(jì)數(shù)器值置為初始值,例如T=3,進(jìn)入到下一刷新循環(huán)中。
[0047]對(duì)每一個(gè)DRAM的行設(shè)置一個(gè)計(jì)數(shù)器,并對(duì)每一個(gè)DRAM的行進(jìn)行計(jì)數(shù)。每隔一遞減周期,計(jì)數(shù)器遞減計(jì)數(shù),例如每隔16ms,計(jì)數(shù)值T值減去I。判斷DRAM的行中是否有正在被訪問(wèn)的操作。依據(jù)對(duì)DRAM的行是否被訪問(wèn)的判斷,選擇最佳的調(diào)度算法,如果該DRAM的行正在被訪問(wèn),則將該行計(jì)數(shù)器值置為初始值,并進(jìn)入到下一個(gè)刷新循環(huán)中。如果該DRAM的行沒有被訪問(wèn),則每隔一遞減周期,計(jì)數(shù)器遞減計(jì)數(shù),例如,計(jì)數(shù)值T每隔16ms減去1,當(dāng)計(jì)數(shù)值減小到O時(shí),通過(guò)比較器查找訪存命令隊(duì)列中是否有對(duì)即將要刷新的行的訪問(wèn)操作,如果有則優(yōu)先調(diào)度執(zhí)行,并將該行計(jì)數(shù)器值置為初始值T=3,進(jìn)入到下一個(gè)刷新循環(huán)中;如果沒有,則與該計(jì)數(shù)器對(duì)應(yīng)的地址被插入到刷新命令隊(duì)列中,調(diào)度器讀取該地址并發(fā)出刷新命令,對(duì)該行進(jìn)行刷新操作,刷新完成后將該行計(jì)數(shù)器值置為初始值Τ=3,進(jìn)入到下一個(gè)刷新循環(huán)中。
[0048]本發(fā)明在刷新控制電路中添加了用于在隊(duì)列中查找即將刷新的行的訪問(wèn)的比較器,調(diào)度器采用行命中優(yōu)先、即將刷新行的訪問(wèn)命令優(yōu)先和先到先服務(wù)三個(gè)優(yōu)先級(jí)的調(diào)度算法,進(jìn)行DRAM的控制操作,通過(guò)優(yōu)先調(diào)度即將刷新行的訪問(wèn),代替了部分刷新操作,減少了刷新次數(shù),達(dá)到了降低DRAM的功耗并提高系統(tǒng)性能的效果。
[0049]專業(yè)人員應(yīng)該還可以進(jìn)一步意識(shí)到,結(jié)合本文中所公開的實(shí)施例描述的各示例的單元及算法步驟,能夠以電子硬件、計(jì)算機(jī)軟件或者二者的結(jié)合來(lái)實(shí)現(xiàn),為了清楚地說(shuō)明硬件和軟件的可互換性,在上述說(shuō)明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來(lái)執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計(jì)約束條件。專業(yè)技術(shù)人員可以對(duì)每個(gè)特定的應(yīng)用來(lái)使用不同方法來(lái)實(shí)現(xiàn)所描述的功能,但是這種實(shí)現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。
[0050]結(jié)合本文中所公開的實(shí)施例描述的方法或算法的步驟可以用硬件、處理器執(zhí)行的軟件模塊,或者二者的結(jié)合來(lái)實(shí)施。軟件模塊可以置于隨機(jī)存儲(chǔ)器(RAM)、內(nèi)存、只讀存儲(chǔ)器(ROM)、電可編程ROM、電可擦除可編程ROM、寄存器、硬盤、可移動(dòng)磁盤、CD-ROM、或【技術(shù)領(lǐng)域】?jī)?nèi)所公知的任意其它形式的存儲(chǔ)介質(zhì)中。
[0051]以上所述的【具體實(shí)施方式】,對(duì)本發(fā)明的目的、技術(shù)方案和有益效果進(jìn)行了進(jìn)一步詳細(xì)說(shuō)明,所應(yīng)理解的是,以上所述僅為本發(fā)明的【具體實(shí)施方式】而已,并不用于限定本發(fā)明的保護(hù)范圍,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種動(dòng)態(tài)隨機(jī)訪問(wèn)存儲(chǔ)器DRAM的刷新方法,其特征在于,所述方法包括以下步驟: 設(shè)置計(jì)數(shù)器的初始值; 每隔一遞減周期,所述計(jì)數(shù)器遞減計(jì)數(shù); 判斷所述DRAM的行是否被訪問(wèn); 當(dāng)所述DRAM的行被訪問(wèn)時(shí),將計(jì)數(shù)器值置為所述初始值; 當(dāng)所述DRAM的行未被訪問(wèn)時(shí),如果當(dāng)前計(jì)數(shù)值為零,則查找訪存命令隊(duì)列中是否有對(duì)將刷新行的訪問(wèn)操作,如果有,則調(diào)度器按照優(yōu)先順序調(diào)度執(zhí)行對(duì)所述即將刷新行的訪問(wèn)命令; 如果訪存命令隊(duì)列中沒有對(duì)將刷新行的訪問(wèn)操作,則調(diào)度器按照優(yōu)先順序調(diào)度執(zhí)行對(duì)該行的刷新命令; 當(dāng)所述DRAM的行未被訪問(wèn)時(shí),如果當(dāng)前計(jì)數(shù)值大于零,則每隔一遞減周期,所述計(jì)數(shù)器遞減計(jì)數(shù)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述調(diào)度器的調(diào)度算法包括行命中優(yōu)先、即將刷新行的訪問(wèn)命令優(yōu)先和先到先服務(wù)三個(gè)優(yōu)先級(jí)。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,在設(shè)置計(jì)數(shù)器的初始值之前,對(duì)每一個(gè)DRAM的行使用所述計(jì)數(shù)器進(jìn)行計(jì)數(shù)。
【文檔編號(hào)】G11C11/406GK103559142SQ201310541616
【公開日】2014年2月5日 申請(qǐng)日期:2013年11月5日 優(yōu)先權(quán)日:2013年11月5日
【發(fā)明者】王琪, 王東輝, 張鐵軍 申請(qǐng)人:中國(guó)科學(xué)院聲學(xué)研究所