CN103559142B - 动态随机访问存储器的刷新方法 - Google Patents
动态随机访问存储器的刷新方法 Download PDFInfo
- Publication number
- CN103559142B CN103559142B CN201310541616.5A CN201310541616A CN103559142B CN 103559142 B CN103559142 B CN 103559142B CN 201310541616 A CN201310541616 A CN 201310541616A CN 103559142 B CN103559142 B CN 103559142B
- Authority
- CN
- China
- Prior art keywords
- dram
- counter
- row
- refreshing
- accessed
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Dram (AREA)
Abstract
本发明提供了一种DRAM的刷新方法,包括以下步骤:设置计数器初始值;每隔一递减周期,计数器递减计数;判断DRAM的行是否被访问;如果被访问,计数器值置为初始值,进入到下一个刷新周期;如果没有被访问,则当计数器值递减到最小计数值时,查找访存命令队列中是否有对将刷新行的访问操作,如果访存命令队列中有对将刷新行的访问,由调度器优先调度执行,并将计数器值置为初始值,进入到下一个刷新周期。本发明采用行命中优先、即将刷新行的访问命令优先和先到先服务三个优先级调度算法,进行DRAM控制操作,通过优先调度即将刷新行的访问,代替部分刷新操作,减少了刷新次数,降低了DRAM的功耗并提高了系统性能。
Description
技术领域
本发明涉及一种内存刷新方法,具体而言,涉及一种动态随机访问存储器的刷新方法。
背景技术
动态随机访问存储器(Dynamic Random Access Memory,DRAM)具有很低的单元存储成本和很高的集成密度,被广泛应用于现代计算机系统中。DRAM属于易失性存储器件,为了保持数据不丢失,需要进行刷新操作,JEDEC标准规定DRAM单元的刷新周期为64ms(高温下为32ms),所有的DRAM的行必须在刷新周期内被刷新。如果存储单元没有被刷新,存储的信息就会丢失。
目前DRAM内存控制器通常采用的调度算法是FR-FCFS(First-Ready First-Come-First-Serve,行命中优先-先来先服务),该算法确定下一个要响应的内存访问请求,这种算法的主要特点在于行命中优先和最早的请求优先。这种传统的调度算法在DRAM的某一行的刷新周期内该行被访问的概率有限,所以减少的刷新次数有限。过去DRAM的容量较小,行数较少,完成刷新的总时间较短。因此一个刷新脉冲完成所有行的刷新是可接受的,随着DRAM容量的增大,刷新给访存操作带来的延时增大,降低了系统性能。
与本发明相关的现有技术中,现有的DRAM刷新方法有两种,一种是在DRAM内存控制器中为存储器的每一行设置了一个2bit的计数器,来实现刷新控制。将计数器置为初始值3,刷新周期为64ms,计数器按16ms为单位递减计数,计数器减到0时对应的行进行刷新,如果在减到0之前该行被访问,将计数器置为3,不需要对该行进行刷新。刷新操作是对DRAM的一行进行充电的过程,该方案减少了刷新次数,降低了DRAM的功耗。但是在DRAM的某一行的刷新周期内该行被访问的概率有限,所以减少的刷新次数有限。另一种是通过对每一行在相邻两次访问之间的时间进行计时,若在刷新周期内该行被访问,则无需再进行刷新操作,对于超过刷新周期未被刷新的行,通过一次读操作或写操作代替刷新,无需考虑专门的刷新操作,但是这一做法增大了DRAM的功耗并降低了带宽。
发明内容
本发明的目的是针对现有技术的缺点,提供一种DRAM的刷新方法,以解决现有技术的内存刷新方法中刷新次数频繁,访存延迟和功耗大的问题,降低了功耗并提高了性能。
为实现上述目的,本发明提供了一种DRAM的刷新方法,所述方法包括以下步骤:
设置计数器的初始值;
每隔一递减周期,所述计数器递减计数;
判断所述DRAM的行是否被访问;
当所述DRAM的行被访问时,将计数器值置为所述初始值;
当所述DRAM的行未被访问时,如果当前计数值为零,则查找访存命令队列中是否有对将刷新行的访问操作,如果有,则调度器按照优先顺序调度执行对所述即将刷新行的访问命令;
如果访存命令队列中没有对将刷新行的访问操作,则调度器按照优先顺序调度执行对该行的刷新命令;
当所述DRAM的行未被访问时,如果当前计数值大于零,则每隔一递减周期,所述计数器递减计数。
优选地,所述调度器的调度算法包括行命中优先、即将刷新行的访问命令优先和先到先服务三个优先级。
在上述方法中,在设置计数器的初始值之前,对每一个DRAM的行使用所述计数器进行计数。
本发明的优点是采用行命中优先、即将刷新行的访问命令优先和先到先服务三个优先级的调度算法,进行DRAM的控制操作,通过优先调度即将刷新行的访问,代替了部分刷新操作,减少了刷新次数,降低了DRAM的功耗并提高了系统性能。
附图说明
图1为本发明的DRAM的刷新方法的刷新控制电路的示意图。
图2为本发明的DRAM的刷新方法实施例一的流程图;
图3为本发明的DRAM的刷新方法实施例二的流程图。
具体实施方式
本发明的DRAM的刷新方法采用优先调度即将刷新行的访问,代替了传统的刷新操作,减少了刷新次数,降低了DRAM的功耗并提高了系统性能。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
图1为本发明的DRAM的刷新方法的刷新控制电路的示意图,由于相对于传统的DRAM的刷新增加了优先调度即将刷新行的访问,需要对DRAM的控制器的结构进行修改,如图所示,每一条命令增加了一个比较器,用于在队列中查找即将刷新的行的访问,其余模块均采用传统形式,提高了模块的通用性。
DRAM的控制器中的调度器采用三个优先级的调度算法,包括行命中优先、即将刷新行的访问命令优先和先到先服务。
图2为本发明的DRAM的刷新方法实施例一的流程图,如图所示,该方法包括:
步骤101,设置计数器的初始值;
步骤102,每隔一递减周期,计数器递减计数;
步骤103,判断DRAM的行是否被访问;
步骤104,依据对DRAM的行是否被访问的判断,选择最佳的调度算法。
通过选择最佳的调度方法,当计数器的值为0时,优先调度即将刷新行的访问,代替了部分刷新操作,减少了刷新次数,达到了降低DRAM的功耗并提高系统性能的效果。
图3为本发明的DRAM的刷新方法实施例二的流程图,如图所示,包括如下步骤:
步骤201,对DRAM中的每一行计数,设置初始值;
对每一个DRAM行设置一个计数器,并对每一个DRAM行进行计数。例如,DRAM刷新周期为64ms,计数器若按照16ms为单位递减来计数,则当计数器减到0时,DRAM一个刷新周期结束,计数器的初始值T可以设置为3。
步骤202,每隔一递减周期,T值减1;
每隔一递减周期,计数器进行递减计数,例如,每隔16ms,计数值T值减去1。
步骤203,判断该行是否被访问;
判断DRAM的行中是否有正在被访问的行,如果有,则进入步骤208;如果没有,则进行下一步骤204。
步骤204,判断计数器值是否为零;
判断计数器值T是否为0,如果计数器值T大于0,则计数值每隔一递减周期递减,例如每隔16msT值减去1。如果计数器值T等于0,则进行下一步骤205。
步骤205,查找访存命令队列中是否有对该行的访问;
通过比较器查找访存命令队列中是否有对即将要刷新的行的访问操作,如果有则进行步骤207;如果没有则进行步骤206。
步骤206,对该DRAM的行进行刷新操作;
通过步骤205利用比较器查找访存命令队列中没有对即将要刷新的行的访问操作,则与该计数器对应的地址被插入到刷新命令队列中,调度器读取该地址并发出刷新命令,对该行进行刷新操作,刷新完成后进入步骤208。
步骤207,根据优先顺序调度执行对即将刷新行的访问命令,访问该行;
通过步骤205利用比较器查找访存命令队列中有对即将要刷新的行的访问操作,则调度器按照优先顺序调度执行对即将刷新行的访问命令,并进行下一步骤208。
步骤208,计数值初始化;
在调度器完成一个调度之后,计数器值置为初始值,例如T=3,进入到下一刷新循环中。
对每一个DRAM的行设置一个计数器,并对每一个DRAM的行进行计数。每隔一递减周期,计数器递减计数,例如每隔16ms,计数值T值减去1。判断DRAM的行中是否有正在被访问的操作。依据对DRAM的行是否被访问的判断,选择最佳的调度算法,如果该DRAM的行正在被访问,则将该行计数器值置为初始值,并进入到下一个刷新循环中。如果该DRAM的行没有被访问,则每隔一递减周期,计数器递减计数,例如,计数值T每隔16ms减去1,当计数值减小到0时,通过比较器查找访存命令队列中是否有对即将要刷新的行的访问操作,如果有则优先调度执行,并将该行计数器值置为初始值T=3,进入到下一个刷新循环中;如果没有,则与该计数器对应的地址被插入到刷新命令队列中,调度器读取该地址并发出刷新命令,对该行进行刷新操作,刷新完成后将该行计数器值置为初始值T=3,进入到下一个刷新循环中。
本发明在刷新控制电路中添加了用于在队列中查找即将刷新的行的访问的比较器,调度器采用行命中优先、即将刷新行的访问命令优先和先到先服务三个优先级的调度算法,进行DRAM的控制操作,通过优先调度即将刷新行的访问,代替了部分刷新操作,减少了刷新次数,达到了降低DRAM的功耗并提高系统性能的效果。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (3)
1.一种动态随机访问存储器DRAM的刷新方法,应用于由计数器更新电路、调度器和比较器构成的刷新控制电路中,所述计数器更新电路包括计数器;其特征在于,所述方法包括以下步骤:
通过对所述DRAM的行设置一个计数器,并设置所述计数器的初始值;
每隔一递减周期,所述计数器递减计数;
判断所述DRAM的行是否被访问;
当所述DRAM的行被访问时,将计数器值置为所述初始值;
当所述DRAM的行未被访问时,如果当前计数值为零,则利用所述比较器查找访存命令队列中是否有对即将刷新行的访问操作,如果有,则调度器按照优先顺序调度执行对所述即将刷新行的访问命令;
如果访存命令队列中没有对即将刷新行的访问操作,则与该计数器对应的地址被插入到刷新命令队列中,所述调度器读取所述地址并发出刷新命令,则对所述DRAM的行进行刷新操作;
当所述DRAM的行未被访问时,如果当前计数值大于零,则每隔一递减周期,所述计数器递减计数。
2.根据权利要求1所述的方法,其特征在于,所述调度器的调度算法包括行命中优先、即将刷新行的访问命令优先和先到先服务三个优先级。
3.根据权利要求1所述的方法,其特征在于,在设置计数器的初始值之前,对每一个DRAM的行使用所述计数器进行计数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310541616.5A CN103559142B (zh) | 2013-11-05 | 2013-11-05 | 动态随机访问存储器的刷新方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310541616.5A CN103559142B (zh) | 2013-11-05 | 2013-11-05 | 动态随机访问存储器的刷新方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103559142A CN103559142A (zh) | 2014-02-05 |
CN103559142B true CN103559142B (zh) | 2017-03-08 |
Family
ID=50013393
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310541616.5A Expired - Fee Related CN103559142B (zh) | 2013-11-05 | 2013-11-05 | 动态随机访问存储器的刷新方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103559142B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160000626A (ko) * | 2014-06-25 | 2016-01-05 | 에스케이하이닉스 주식회사 | 메모리 장치 |
CN106875971B (zh) * | 2017-02-16 | 2021-01-22 | 上海兆芯集成电路有限公司 | 动态随机存取存储器控制器及其控制方法 |
CN106875970B (zh) * | 2017-02-16 | 2021-06-01 | 上海兆芯集成电路有限公司 | 动态随机存取存储器控制器及其控制方法 |
CN107015628B (zh) * | 2017-03-30 | 2020-08-28 | 中国科学院计算技术研究所 | 一种面向近似应用的低开销dram刷新方法及系统 |
CN112114747B (zh) * | 2020-08-31 | 2024-02-09 | 山东华芯半导体有限公司 | 一种SSD中提升NAND Flash读稳定性的方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1375831A (zh) * | 2001-03-16 | 2002-10-23 | 矽统科技股份有限公司 | 存储器刷新系统 |
CN101499314A (zh) * | 2008-01-29 | 2009-08-05 | 财团法人工业技术研究院 | 存储器装置与其更新方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3675349B2 (ja) * | 2001-03-28 | 2005-07-27 | 松下電器産業株式会社 | アクセス制御方法およびアクセス制御回路 |
US20030053361A1 (en) * | 2001-09-20 | 2003-03-20 | Haitao Zhang | EDRAM based architecture |
-
2013
- 2013-11-05 CN CN201310541616.5A patent/CN103559142B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1375831A (zh) * | 2001-03-16 | 2002-10-23 | 矽统科技股份有限公司 | 存储器刷新系统 |
CN101499314A (zh) * | 2008-01-29 | 2009-08-05 | 财团法人工业技术研究院 | 存储器装置与其更新方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103559142A (zh) | 2014-02-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103559142B (zh) | 动态随机访问存储器的刷新方法 | |
US9524117B2 (en) | Control of page access in memory | |
CN110729006B (zh) | 存储器控制器中的刷新方案 | |
KR100870478B1 (ko) | 휘발성 메모리들에 대한 독립적 뱅크 리프레시를 제공하는방법 및 시스템 | |
CN105378847A (zh) | Dram子阵列级自动刷新存储器控制器优化 | |
JP2017117510A (ja) | 有向自動リフレッシュ同期 | |
EP3005128A1 (en) | Separate memory controllers to access data in memory | |
US20070242544A1 (en) | Method and system for providing directed bank refresh for volatile memories | |
US20070011397A1 (en) | Dram with hidden refresh | |
CN103136120A (zh) | 行缓冲管理策略确定方法和装置、bank划分方法和装置 | |
CN110546707B (zh) | 内存刷新技术及计算机系统 | |
CN108231109A (zh) | 动态随机存取存储器dram的刷新方法、设备以及系统 | |
CN106024052A (zh) | 存储器控制器和存储器系统的控制方法 | |
CN110111825A (zh) | 伪静态随机存取存储器及其控制方法 | |
CN110520929A (zh) | 内存刷新技术及计算机系统 | |
CN106326145A (zh) | 一种存储器的控制方法和装置 | |
CN113383317A (zh) | 一种处理装置、方法及相关设备 | |
CN113900818A (zh) | Ddr存储器数据读写调度方法和装置 | |
CN103176753B (zh) | 存储设备及其数据管理方法 | |
CN106601286A (zh) | DDRx SDRAM存储器刷新方法及存储器控制器 | |
CN102033832B (zh) | 一种同步动态存储器访存控制方法 | |
US6188626B1 (en) | Method of refreshing dynamic random access memory | |
CN102073604B (zh) | 一种同步动态存储器读写控制方法、装置和系统 | |
EP4174666A1 (en) | Memory management technology and computer system | |
US11749332B2 (en) | Effective DRAM interleaving for asymmetric size channels or ranks while supporting improved partial array self-refresh |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170308 Termination date: 20201105 |