CN111158585B - 一种内存控制器刷新优化方法、装置、设备和存储介质 - Google Patents
一种内存控制器刷新优化方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN111158585B CN111158585B CN201911183357.7A CN201911183357A CN111158585B CN 111158585 B CN111158585 B CN 111158585B CN 201911183357 A CN201911183357 A CN 201911183357A CN 111158585 B CN111158585 B CN 111158585B
- Authority
- CN
- China
- Prior art keywords
- refresh
- memory controller
- sub
- read
- determining
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- 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
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Dram (AREA)
Abstract
本发明涉及计算机内存控制器访问优化技术领域,具体涉及一种内存控制器刷新优化方法、装置、设备和存储介质。一种内存控制器刷新优化方法,该方法包括:如果所述内存控制器访存调度单元中未完成的读写请求操作数量小于第一阈值TH1,则确定采用预刷新策略,在Bank级颗粒度提前发出刷新命令;如果调度单元中未完成的读写请求操作数量大于第二阈值TH2,则确定采用后刷新策略,在Bank级颗粒度推迟发送刷新命令。此外,利用sub‑array数量远大于Bank数量的特征及局部性特征,进一步采用基于sub‑array层次的、细颗粒度刷新和访存并发执行策略,可极大可能地减少访存命令和刷新操作的冲突,进而提升片上系统的整体性能。
Description
技术领域
本发明实施例涉及计算机内存控制器访问优化技术领域,具体涉及一种内存控制器刷新优化方法、装置、设备和存储介质。
背景技术
动态随机存取存储器(Dynamic Random Access Memory,DRAM)是最为常见的系统内存,只能将数据保持很短的时间。为了保持数据,DRAM使用电容存储,所以必须隔一段时间刷新(refresh)一次,如果存储单元没有被刷新,存储的信息就会丢失。为了保证数据不丢失,内存控制器要不断地向动态随机存取存储器发送刷新命令,该过程需要占用命令总线,刷新操作与读写访存请求存在同时抢占命令总线。
发明内容
为此,本发明实施例提供一种内存控制器刷新优化方法、装置、设备,以解决现有技术中刷新操作与读写访存请求存在冲突的问题。
为了实现上述目的,本发明实施例提供如下技术方案:
根据本发明实施例的第一方面,一种内存控制器刷新优化方法,应用于内存控制器,包括:
统计内存控制器访存调度单元中未完成的读写请求操作的数量;
如果所述内存控制器访存调度单元中未完成的读写请求操作数量小于第一阈值TH1,则确定采用预刷新策略,在Bank级颗粒度提前发出刷新命令;
如果调度单元中未完成的读写请求操作数量大于第二阈值TH2,则确定采用后刷新策略,在Bank级颗粒度推迟发送刷新命令。
在一种可能的实施方式中,所述方法还包括:确定Bank的数量m和子阵列sub-array的数量n;
执行预刷新策略时:
在第一时间点T1,在m个Bank;以及在m个sub-array上执行刷新命令;同时在n-m个sub-array上执行读写操作;
所述第一时间点T1为确定预先进行刷新的时刻;
执行后刷新策略时:
在第二时间点T2,在m个Bank;以及在m个sub-array上执行读写操作;同时在n-m个sub-array上执行刷新命令;
所述第二时间点T2为预先设定的进行刷新的时刻;
其中,m、n为正整数;n大于m。在一种可能的实施方式中,所述方法还包括:所述内存控制器中存在的所有的读写请求被执行完毕后,间隔预定的延迟时间T后发送刷新命令。
在一种可能的实施方式中,所述方法还包括:对所述延迟时间T进行调整,具体包括:
统计刷新推迟的数量;
根据所述刷新推迟的数量和预先建立的刷新推迟的数量与所述延迟时间T的函数关系确定出所述延迟时间T。
在一种可能的实施方式中,统计刷新推迟的数量后,根据所述刷新推迟的数量和预先建立的刷新推迟的数量与所述延迟时间T的函数关系确定出所述延迟时间T之前,还包括:
判断刷新推迟的数量是否是增长的趋势;
如果是,则确定根据所述刷新推迟的数量和预先建立的刷新推迟的数量与所述延迟时间T的函数关系确定出所述延迟时间T。
在一种可能的实施方式中,判断刷新推迟的数量是否是增长的趋势,包括:
按照时间的顺序如果刷新推迟的数量依次增大,则确定刷新的数量是增长的趋势。
在一种可能的实施方式中,所述方法还包括,如果确定所述延迟时间T等于零,则发出刷新命令;所述刷新命令具有最高的优先级。
在一种可能的实施方式中,所述提前或者推迟发送刷新命令的次数小于或者等于预定值。优选地,预定值为8。
根据本发明实施例的第二方面,一种内存控制器刷新优化装置,应用于内存控制器,包括:
统计模块,用于统计内存控制器访存调度单元中未完成的读写请求操作的数量;
策略制定模块,用于如果所述内存控制器访存调度单元中未完成的读写请求操作数量小于第一阈值TH1,则确定采用预刷新策略,在Bank级颗粒度提前发出刷新命令;
如果调度单元中未完成的读写请求操作数量大于第二阈值TH2,则确定采用后刷新策略,在Bank级颗粒度推迟发送刷新命令。
在一种可能的实施方式中,策略制定模块还用于,确定Bank级颗粒度的数量m和子阵列sub-array级颗粒度的数量n;
执行预刷新策略时:
在第一时间点T1,在m个Bank;以及在m个sub-array上执行刷新命令;同时在n-m个sub-array上执行读写操作;
所述第一时间点T1为确定预先进行刷新的时刻;
执行后刷新策略时:
在第二时间点T2,在m个Bank;以及在m个sub-array上执行读写操作;同时在n-m个sub-array上执行刷新命令;
所述第二时间点T2为预先设定的进行刷新的时刻;
其中,m、n为正整数;n大于m。控制器访存调度单元控制器访存调度单元第三方面,一种内存控制器刷新优化设备,应用于内存控制器,包括:至少一个处理器和至少一个存储器;
所述存储器用于存储一个或多个程序指令;
所述处理器,用于运行一个或多个程序指令,用以执行上述任一项所述的方法。
第四方面,一种计算机可读存储介质,所述计算机可读存储介质中包含一个或多个程序指令,所述一个或多个程序指令用于被执行如上述任一项所述的方法。
本发明实施例具有如下优点:通过本发明的方法,统计内存控制器访存调度单元中未完成的读写请求操作的数量,根据未完成的读写请求操作的数量和预先设定的阈值,在Bank-Group及Bank粗颗粒度层次执行预刷新或者后刷新策略;在粗颗粒度的层次上实现了将读写请求和刷新错开,避免冲突的效果。在细颗粒度层次上,利用sub-array数量远大于Bank数量的特征及局部性特征,采用基于sub-array层次的、细颗粒度刷新和访存并发执行策略;并且可以根据刷新推迟的数量对延迟时间进行调整,可极大可能地减少访存命令和刷新操作的冲突。
附图说明
为了更清楚地说明本发明的实施方式或现有技术中的技术方案,下面将对实施方式或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是示例性的,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图引申获得其它的实施附图。
本说明书所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本发明可实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本发明所能产生的功效及所能达成的目的下,均应仍落在本发明所揭示的技术内容能涵盖的范围内。
图1为本发明实施例提供的一种现有技术中的多核处理器中的存储系统的结构示意图;
图2为本发明实施例提供的一种定时刷新策略示意图;
图3为本发明实施例提供的一种内存控制器刷新优化方法的流程图;
图4为本发明实施例提供的一种不定时的刷新策略示意图;
图5为本发明实施例提供的一种确定延迟时间T的方法流程图;
图6为本发明实施例提供的一种刷新推迟的数量与所述延迟时间T的函数关系示意图;
图7为本发明实施例提供的另一种内存控制器刷新优化方法的流程图;
图8为本发明实施例提供的一种内存控制器刷新优化装置的结构示意图;
图9为本发明实施例提供的一种内存控制器刷新优化设备的结构示意图;
图中:81-统计模块;82-策略制定模块;91-处理器;92-存储器。
具体实施方式
以下由特定的具体实施例说明本发明的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本发明的其他优点及功效,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
多核处理器中的存储系统异于单核处理器,参见附图1所示的多核处理器中的存储系统的结构示意图;CMP芯片包括多个核,每一个核对应一个本地缓存Local Cache;还包括若干个内存控制器Memory Controller;以及共享的L3高速缓存;其中,多个本地缓存共用一个高速缓存;
存储系统还包括:两个动态随机存取存储器通道DRAM channel;其中,每一个动态随机存取存储器通道中包括了两个动态随机存取存储器行DRAM Rank;存储数据的部分包括8个动态随机存取存储器芯片DRAM Chip,用来存储数据;以及8个动态随机存取存储器行DRAM Bank;内存控制器通过通道向动态随机存取存储器芯片以及动态随机存取存储器行DRAM Bank发送刷新命令;采取的是定时刷新策略,参见附图2所示的一种定时刷新的策略示意图;该种策略的缺点在于,如果到达定时的时间,刷新命令可能会与读写命令发生冲突。因此,在保证数据不丢失的前提下,需要留出足够时间保证上一个读写访存请求完成,所以刷新操作间隔小于tREFI;其中tREFI为相邻的两个读写访存请求的时间间隔。
刷新操作对整个访存系统的性能和功耗都有负面影响,主要分为三个方面:1)丢失了Bank级并行度,2)增加了访存操作的延时,3)降低了行命中率。
基于此,本发明提出了一种内存控制器刷新优化方法,参见附图3所示的一种内存控制器刷新优化方法的流程图,该方法包括:
步骤S301,统计内存控制器访存调度单元中没有完成的读写请求操作的数量;
步骤S302,判断上述的没有完成的读写请求操作的数量是否满足预定的条件;
其中,如果满足条件1,则执行步骤304;如果满足条件2,则执行步骤S303;如果满足条件3,则执行步骤S305;
条件1为:
内存控制器访存调度单元中没有完成的读写请求操作数量小于第一阈值TH1;
条件2为:
调度单元中没有完成的读写请求操作数量大于第二阈值TH2;
条件3为:调度单元中没有完成的读写请求操作数量大于等于第一阈值TH1并且小于等于第二阈值TH2;步骤S303,采用预刷新策略,在Bank级颗粒度提前发出刷新命令;
步骤S304,采用后刷新策略,在Bank级颗粒度推迟发送刷新命令。
步骤S305,刷新命令不提前也不推迟,在预定的正常的时间点,并且在满足内存控制器的时序范围内,在Bank级颗粒度发送;其中,Bank为内存中的一个存储单位;Bank级颗粒的颗粒度比较粗;包括BankGroup及Bank。
上述方法,考虑到了内存控制器中的访存调度单元的两种状态;
一种状态是访存调度单元空闲。在内存控制器中没有读写访存请求等待发送。此时,在满足tRFC的时序要求下,内存控制器将会以突发(Burst)的形式发送若干个刷新操作。
即在距离上一次刷新操作的时间间隔小于tREFI时,内存控制器就向内存颗粒发出了刷新操作的命令,该行为称为刷新提前(Pull-in),又叫预刷新。参见附图4所示的一种不定时的刷新策略示意图;在T0-T1的时间段里,访存调度单元中没有对该Rank的读写访存请求,该Rank的内存颗粒进行多次刷新操作,直到访存调度单元中有对该Rank的访存请求。
一种状态是访存调度单元忙碌。也就是在内存控制器中,还有未完成的读写请求,那么即使现在距离上一次刷新操作的时间间隔已经达到预定的刷新时间tREFI,刷新操作也将会被推迟。
若访存调度单元一直忙碌,就可以连续推迟n(n大于等于1)个刷新操作,直到访存调度单元空闲时,再对内存颗粒发送刷新操作。这就是刷新推迟(Postpone)的情况,也称其为后刷新。图4中的T3-T4时间里,访存调度单元对列Rank都有访存请求,所以内存控制器没有发出刷新操作,以减少访存请求的延时。直到T6时,访存调度单元空闲,才将刷新操作发出。
本发明公开了一种内存控制器刷新优化方法,尤其是一种面向乱序高性能核的场景,提出并实现一种在Bank级粗颗粒度基于预刷新和后刷新自适应的动态刷新策略,根据访存调度单元的状态,弹性化地进行刷新操作的提前和推迟,减少刷新操作与读写访存之间的冲突。
本申请还提出了在子阵列sub-array级细颗粒度上刷新和读写并行的策略;
其中,sub-array是内存中的一个存储单元,sub-array的颗粒度小于Bank的颗粒度。
在一种实施方式中,所述方法还包括:
步骤S306,在sub-array细颗粒度上将刷新命令和读写并发执行。
参见附图3中,在步骤S303、S304或者S305之后,执行步骤S306;
该方法具体包括:
确定Bank级粗颗粒度的数量m和子阵列sub-array细颗粒度的数量n;
执行预刷新策略时:
在第一时间点T1,在m个Bank级粗颗粒;以及在m个sub-array级细颗粒上执行刷新命令;同时在n-m个sub-array级细颗粒上执行读写操作;
所述第一时间点T1为确定预先进行刷新的时刻;
执行后刷新策略时:
在第二时间点T2,在m个Bank级粗颗粒;以及在m个sub-array细颗粒上执行读写操作;同时在n-m个sub-array细颗粒上执行刷新命令;
所述第二时间点T2为预先设定的进行刷新的时刻;
其中,m、n为正整数;n大于m。
下面举例说明如下:
假设系统内存中的Bank级粗颗粒的数量是10个;sub-array级细颗粒的数量是25个;
第一种情况是,假设刷新命令应该在预先设定的T2时刻发送;根据条件判断,确定提前发送刷新命令,假设发送的时间是T1,T1<T2;
先到来的时刻为T1;在T1时刻,确定采用10个Bank和10个sub-array来进行执行刷新命令;但是还剩余15个sub-array;确定采用该15个剩余的sub-array级细颗粒来执行读写操作;从sub-array细颗粒来看,在T1时刻,刷新命令和读写操作是同时进行的;从而尽最大可能地使用了闲置的细粒度的资源,避免资源的浪费,提高了资源的使用效率,提高了刷新或者读写的效率。
第二种情况是,假设刷新命令应该在T2时刻发送;根据条件判断,确定推迟发送刷新命令,假设发送的时间是T1,T1>T2;
先到来的时刻为T2;在T2时刻,确定采用10个Bank和10个sub-array来进行执行读写命令;但是还有15个sub-array的剩余,确定采用15个剩余的sub-array来执行刷新命令;从sub-array层次看,在T2时刻,刷新命令和读写操作是同时进行的。从而尽最大可能地使用闲置的资源,避免资源的浪费,提高了资源的使用效率,提高了刷新或者访存的效率。
第三种情况是,不采用提前发送,也不采用推迟发送,而是在正常的预定的时间点发送刷新命令的策略;对于此种场景下,在预定的发送刷新命令的时刻T2,采用10个Bank和10个sub-array来执行刷新命令;剩余的15个sub-array来执行读写操作;从而尽最大可能地使用闲置的资源,避免资源的浪费,提高了资源的使用效率,提高了刷新或者访存的效率。
上述方法,在Bank级粗粒度将冲突的刷新命令和读写在时间上错开避免了资源使用的冲突;在细粒度上,利用sub-array数量远大于Bank数量的特征及局部性特征;用一部分的sub-array来执行刷新,另一部分sub-array来执行读写操作;从而实现了将冲突的刷新命令和读写进行并行处理;采用基于sub-array层次的、细颗粒度刷新命令和读写并发执行策略,可极大可能地减少读写和刷新命令的冲突,进而提升片上系统的整体性能。
除了上述的预刷新和后刷新自适应之外,方法还包括,判断刷新的总次数是否满足了内存的要求;其中,内存的要求包括内存颗粒产生的要求等等;如果不满足内存的要求;刷新操作的优先级必须置为最高。在读写访存请求与该刷新命令发生冲突时,刷新操作先执行,以保证数据的稳定性。
在一种实施方式中,所述方法还包括:所述内存控制器中存在的所有的读写请求被执行完毕后,间隔预定的延迟时间T后发送刷新命令。
上述方法,是考虑到刷新操作执行完后,需要延时一段时间才能进行其他操作。因此,在内存控制器中的访存调度单元空闲之后,也就是没有了读写请求,不宜马上进行刷新操作,以免造成新进入的读写请求被滞后,反而降低访存性能。
在一种实施方式中,参见附图5所示的一种确定延迟时间T的方法流程图,该方法包括以下步骤:
步骤S501,预先建立刷新推迟的数量与所述延迟时间T的函数关系;
步骤S502,统计刷新推迟的数量;
步骤S503,判断刷新推迟的数量是否是增长的趋势;
其中,按照时间的顺序如果刷新推迟的数量依次增大,则确定刷新的数量是增长的趋势;如果是,则执行步骤S504;
步骤S504,根据所述刷新推迟的数量和预先建立的刷新推迟的数量与所述延迟时间T的函数关系确定出所述延迟时间T。
其中,函数可以是正比例函数;也可以是其他函数,本申请不做具体的限定;参见附图6所示的刷新推迟的数量与所述延迟时间T的函数关系示意图;该函数为正比例函数;其中,横轴表示刷新提前或者推迟的数量;纵轴表示延迟时间;如图所示,在推迟部分,延迟时间随着推迟数量的增加而成正比例函数减小;函数为T=-Kx;其中,x为推迟次数;T为延迟时间;其中K为大于零的系数;并且从图中可知,随着x的增加,K逐渐变化,逐渐减小。
步骤S505,如果确定所述延迟时间T等于零,则发出刷新命令;所述刷新命令具有最高的优先级。
考虑到内存的结构特点,刷新提前或者推迟的最大数量阈值为8;当然,最大数量阈值可以根据实际的需要进行调整,本申请不进行限定。
在一种实施方式中,参见附图7所示的另一种内存控制器刷新优化方法的流程图,该方法包括:
步骤S701,统计内存控制器中调度单元中未完成的读写请求的数量;
步骤S702,判断读写请求的数量是否小于第一阈值TH1;如果是,则执行步骤S704;如果否,则执行步骤S703;
步骤S704,确定提前发送刷新命令;
步骤S703,判断读写请求的数量是否大于第二阈值TH2;如果是,则执行步骤S705;如果否,则执行步骤S706;
值得强调的是,上述的步骤S702和步骤S703的先后顺序不固定,也可以先执行步骤S703,后执行S702;本申请不做限定。
步骤S705,确定推迟发送刷新命令;
步骤S706,在满足内存控制器的时序范围内,确定在预定的正常的时刻发送刷新命令;
并且值得强调的是,上述的提前发送刷新命令,或者推迟发送刷新命令,都是在Bank-Group及Bank粗颗粒度层次而言的,但是在更细颗粒度的层次上,比如子阵列sub-array层次上,可利用程序局部性,进一步缩小刷新的颗粒度范围、提升访存并发执行,所以本申请提出了利用sub-array数量远大于Bank数量的特征,使用一部分sub-array在执行刷新命令;同时,其他sub-array执行读写的命令;也就是说,在细粒度即sub-array层次上,利用局部性,将刷新命令和读写命令并行进行,从而尽可能地减少读写命令和刷新命令的冲突,提高内存控制器的访存效率。
本申请的技术方案,通过在粗粒度上将刷新命令和读写命令错开;在细粒度上将局部性相邻的刷新命令和读写命令并行,尽可能地避免命令阻塞,提高内存控制器的访存效率以及用户体验。
与上述的方法对应,本申请还提出了一种内存控制器刷新优化装置,参见附图8所示的一种内存控制器刷新优化装置的结构示意图;应用于内存控制器,该装置包括:
统计模块81:用于统计内存控制器访存调度单元中未完成的读写请求操作的数量;
策略制定模块82,用于如果所述内存控制器访存调度单元中未完成的读写请求操作数量小于第一阈值TH1,则确定采用预刷新策略,在Bank粗颗粒度层次提前发出刷新命令;
其中,Bank级的粗颗粒包括Bank以及Bank-Group;
如果调度单元中未完成的读写请求操作数量大于第二阈值TH2,则确定采用后刷新策略,在Bank粗颗粒度层次推迟发送刷新命令。
在一种实施方式中,策略制定模块82还用于,确定Bank-Group及Bank粗颗粒度的数量m和子阵列sub-array的数量n;
执行预刷新策略时:
在第一时间点T1,在m个Bank-Group及Bank粗颗粒度;以及在m个sub-array上执行刷新命令;同时在n-m个sub-array细颗粒上执行读写操作;
所述第一时间点T1为确定预先进行刷新的时刻;
执行后刷新策略时:
在第二时间点T2,在m个Bank-Group及Bank粗颗粒度;以及在m个sub-array上执行读写操作;同时在n-m个sub-array细颗粒上执行刷新命令;
所述第二时间点T2为预先设定的进行刷新的时刻;
其中,m、n为正整数;n大于m。在一种可能的实施方式中,策略制定模块82还用于,所述内存控制器中存在的所有的读写请求被执行完毕后,间隔预定的延迟时间T后发送刷新命令。
在一种可能的实施方式中,策略制定模块82还用于:
统计刷新推迟的数量;
根据所述刷新推迟的数量和预先建立的刷新推迟的数量与所述延迟时间T的函数关系确定出所述延迟时间T。
在一种可能的实施方式中,策略制定模块82还用于在统计刷新推迟的数量后,根据所述刷新推迟的数量和预先建立的刷新推迟的数量与所述延迟时间T的函数关系确定出所述延迟时间T之前:
判断刷新推迟的数量是否是增长的趋势;
如果是,则确定根据所述刷新推迟的数量和预先建立的刷新推迟的数量与所述延迟时间T的函数关系确定出所述延迟时间T。
在一种可能的实施方式中,策略制定模块82还用于,按照时间的顺序如果刷新推迟的数量依次增大,则确定刷新的数量是增长的趋势。
在一种可能的实施方式中,策略制定模块82还用于,如果确定所述延迟时间T等于零,则发出刷新命令;所述刷新命令具有最高的优先级。
本申请还提出了一种内存控制器刷新优化设备,应用于内存控制器,参见附图9所示的一种内存控制器刷新优化设备的结构示意图;该设备包括:至少一个处理器91和至少一个存储器92;
所述存储器91用于存储一个或多个程序指令;
所述处理器92,用于运行一个或多个程序指令,用以执行以下步骤:
统计内存控制器访存调度单元中未完成的读写请求操作的数量;
如果所述内存控制器访存调度单元中未完成的读写请求操作数量小于第一阈值TH1,则确定采用预刷新策略,在Bank粗颗粒度层次提前发出刷新命令;
如果调度单元中未完成的读写请求操作数量大于第二阈值TH2,则确定采用后刷新策略,在Bank粗颗粒度层次推迟发送刷新命令。
在一种可能的实施方式中,所述处理器92还用于:
确定Bank-Group及Bank粗颗粒度的数量m和子阵列sub-array的数量n;
执行预刷新策略时:
在第一时间点T1,在m个Bank-Group及Bank粗颗粒度;以及在m个sub-array上执行刷新命令;同时在n-m个sub-array细颗粒上执行读写操作;
所述第一时间点T1为确定预先进行刷新的时刻;
执行后刷新策略时:
在第二时间点T2,在m个Bank-Group及Bank粗颗粒度;以及在m个sub-array上执行读写操作;同时在n-m个sub-array细颗粒上执行刷新命令;
所述第二时间点T2为预先设定的进行刷新的时刻;
其中,m、n为正整数;n大于m。
在一种可能的实施方式中,所述处理器92还用于,所述内存控制器中存在的所有的读写请求被执行完毕后,间隔预定的延迟时间T后发送刷新命令。
在一种可能的实施方式中,所述处理器92还用于,统计刷新推迟的数量;
根据所述刷新推迟的数量和预先建立的刷新推迟的数量与所述延迟时间T的函数关系确定出所述延迟时间T。
在一种可能的实施方式中,所述处理器92还用于,统计刷新推迟的数量后,根据所述刷新推迟的数量和预先建立的刷新推迟的数量与所述延迟时间T的函数关系确定出所述延迟时间T之前:
判断刷新推迟的数量是否是增长的趋势;
如果是,则确定根据所述刷新推迟的数量和预先建立的刷新推迟的数量与所述延迟时间T的函数关系确定出所述延迟时间T。
在一种可能的实施方式中,所述处理器92还用于,按照时间的顺序如果刷新推迟的数量依次增大,则确定刷新的数量是增长的趋势。
在一种可能的实施方式中,所述处理器92还用于,如果确定所述延迟时间T等于零,则发出刷新命令;所述刷新命令具有最高的优先级。
本申请还提出了一种计算机可读存储介质,所述计算机可读存储介质中包含一个或多个程序指令,所述一个或多个程序指令用于被执行如上述任一项所述的方法。
虽然,上文中已经用一般性说明及具体实施例对本发明作了详尽的描述,但在本发明基础上,可以对之作一些修改或改进,这对本领域技术人员而言是显而易见的。因此,在不偏离本发明精神的基础上所做的这些修改或改进,均属于本发明要求保护的范围。
Claims (9)
1.一种内存控制器刷新优化方法,其特征在于,应用于内存控制器,包括:
统计内存控制器访存调度单元中未完成的读写请求操作的数量;
如果所述内存控制器访存调度单元中未完成的读写请求操作数量小于第一阈值TH1,则确定采用预刷新策略,在Bank级颗粒度提前发出刷新命令;
如果所述内存控制器访存调度单元中未完成的读写请求操作数量大于第二阈值TH2,则确定采用后刷新策略,在Bank级颗粒度推迟发送刷新命令;
确定Bank的数量m和子阵列sub-array的数量n;
执行预刷新策略时:
在第一时间点T1,在m个Bank;以及在m个sub-array上执行刷新命令;同时在n-m个sub-array上执行读写操作;
所述第一时间点T1为确定预先进行刷新的时刻;
执行后刷新策略时:
在第二时间点T2,在m个Bank;以及在m个sub-array上执行读写操作;同时在n-m个sub-array上执行刷新命令;
所述第二时间点T2为预先设定的进行刷新的时刻;
其中,m、n为正整数;n大于m。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:所述内存控制器中存在的所有的读写请求被执行完毕后,间隔预定的延迟时间T后发送刷新命令。
3.如权利要求2所述的方法,其特征在于,所述方法还包括:对所述延迟时间T进行调整,具体包括:
统计刷新推迟的数量;
根据所述刷新推迟的数量和预先建立的刷新推迟的数量与所述延迟时间T的函数关系确定出所述延迟时间T。
4.如权利要求3所述的方法,其特征在于,统计刷新推迟的数量后,根据所述刷新推迟的数量和预先建立的刷新推迟的数量与所述延迟时间T的函数关系确定出所述延迟时间T之前,还包括:
判断刷新推迟的数量是否是增长的趋势;
如果是,则确定根据所述刷新推迟的数量和预先建立的刷新推迟的数量与所述延迟时间T的函数关系确定出所述延迟时间T。
5.如权利要求4所述的方法,其特征在于,判断刷新推迟的数量是否是增长的趋势,包括:
按照时间的顺序如果刷新推迟的数量依次增大,则确定刷新的数量是增长的趋势。
6.如权利要求4所述的方法,其特征在于,所述方法还包括,如果确定所述延迟时间T等于零,则发出刷新命令;所述刷新命令具有最高的优先级。
7.一种内存控制器刷新优化装置,其特征在于,应用于内存控制器,包括:
统计模块,用于统计内存控制器访存调度单元中未完成的读写请求操作的数量;
策略制定模块,用于如果所述内存控制器访存调度单元中未完成的读写请求操作数量小于第一阈值TH1,则确定采用预刷新策略,在Bank级颗粒度提前发出刷新命令;
如果所述内存控制器访存调度单元中未完成的读写请求操作数量大于第二阈值TH2,则确定采用后刷新策略,在Bank级颗粒度推迟发送刷新命令;
策略执行模块,用于执行以下步骤:
确定Bank的数量m和子阵列sub-array的数量n;
执行预刷新策略时:
在第一时间点T1,在m个Bank;以及在m个sub-array上执行刷新命令;同时在n-m个sub-array上执行读写操作;
所述第一时间点T1为确定预先进行刷新的时刻;
执行后刷新策略时:
在第二时间点T2,在m个Bank;以及在m个sub-array上执行读写操作;同时在n-m个sub-array上执行刷新命令;
所述第二时间点T2为预先设定的进行刷新的时刻;
其中,m、n为正整数;n大于m。
8.一种内存控制器刷新优化设备,其特征在于,应用于内存控制器,包括:至少一个处理器和至少一个存储器;
所述存储器用于存储一个或多个程序指令;
所述处理器,用于运行一个或多个程序指令,用以执行如权利要求1-6任一项所述的方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中包含一个或多个程序指令,所述一个或多个程序指令用于被执行如权利要求1-6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911183357.7A CN111158585B (zh) | 2019-11-27 | 2019-11-27 | 一种内存控制器刷新优化方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911183357.7A CN111158585B (zh) | 2019-11-27 | 2019-11-27 | 一种内存控制器刷新优化方法、装置、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111158585A CN111158585A (zh) | 2020-05-15 |
CN111158585B true CN111158585B (zh) | 2023-08-01 |
Family
ID=70556215
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911183357.7A Active CN111158585B (zh) | 2019-11-27 | 2019-11-27 | 一种内存控制器刷新优化方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111158585B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113823340B (zh) * | 2021-09-18 | 2023-08-25 | 长鑫存储技术有限公司 | 刷新命令保护方法及电路、存储器刷新方法及电路、设备 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102567243A (zh) * | 2011-12-12 | 2012-07-11 | 华为技术有限公司 | 存储设备的刷新处理方法和存储设备 |
CN103959388A (zh) * | 2011-11-28 | 2014-07-30 | 国际商业机器公司 | 用于调度包括电力状态的存储器刷新操作的方法 |
CN104137081A (zh) * | 2012-02-13 | 2014-11-05 | 国际商业机器公司 | 偏移在先的高等待时间操作的存储器重排序队列 |
US9001608B1 (en) * | 2013-12-06 | 2015-04-07 | Intel Corporation | Coordinating power mode switching and refresh operations in a memory device |
CN105378847A (zh) * | 2013-07-12 | 2016-03-02 | 高通股份有限公司 | Dram子阵列级自动刷新存储器控制器优化 |
CN105378846A (zh) * | 2013-07-05 | 2016-03-02 | 高通股份有限公司 | Dram子阵列级刷新 |
CN106128499A (zh) * | 2016-06-28 | 2016-11-16 | 田彬 | 一种用于DRAM或eDRAM刷新的装置及刷新方法 |
WO2017092282A1 (zh) * | 2015-11-30 | 2017-06-08 | 中国科学院计算技术研究所 | 一种用于DRAM或eDRAM刷新的装置及其方法 |
CN107017016A (zh) * | 2017-03-30 | 2017-08-04 | 中国科学院计算技术研究所 | 一种防时序侧通道攻击的内存刷新控制方法及装置 |
CN108417235A (zh) * | 2018-06-06 | 2018-08-17 | 珠海市微半导体有限公司 | 一种基于3d封装的dram存储器及访问方法 |
CN110058793A (zh) * | 2018-01-19 | 2019-07-26 | 华为技术有限公司 | 一种刷新处理方法、装置、系统及内存控制器 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9721640B2 (en) * | 2015-12-09 | 2017-08-01 | Intel Corporation | Performance of additional refresh operations during self-refresh mode |
-
2019
- 2019-11-27 CN CN201911183357.7A patent/CN111158585B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103959388A (zh) * | 2011-11-28 | 2014-07-30 | 国际商业机器公司 | 用于调度包括电力状态的存储器刷新操作的方法 |
CN102567243A (zh) * | 2011-12-12 | 2012-07-11 | 华为技术有限公司 | 存储设备的刷新处理方法和存储设备 |
CN104137081A (zh) * | 2012-02-13 | 2014-11-05 | 国际商业机器公司 | 偏移在先的高等待时间操作的存储器重排序队列 |
CN105378846A (zh) * | 2013-07-05 | 2016-03-02 | 高通股份有限公司 | Dram子阵列级刷新 |
CN105378847A (zh) * | 2013-07-12 | 2016-03-02 | 高通股份有限公司 | Dram子阵列级自动刷新存储器控制器优化 |
US9001608B1 (en) * | 2013-12-06 | 2015-04-07 | Intel Corporation | Coordinating power mode switching and refresh operations in a memory device |
WO2017092282A1 (zh) * | 2015-11-30 | 2017-06-08 | 中国科学院计算技术研究所 | 一种用于DRAM或eDRAM刷新的装置及其方法 |
CN106128499A (zh) * | 2016-06-28 | 2016-11-16 | 田彬 | 一种用于DRAM或eDRAM刷新的装置及刷新方法 |
CN107017016A (zh) * | 2017-03-30 | 2017-08-04 | 中国科学院计算技术研究所 | 一种防时序侧通道攻击的内存刷新控制方法及装置 |
CN110058793A (zh) * | 2018-01-19 | 2019-07-26 | 华为技术有限公司 | 一种刷新处理方法、装置、系统及内存控制器 |
CN108417235A (zh) * | 2018-06-06 | 2018-08-17 | 珠海市微半导体有限公司 | 一种基于3d封装的dram存储器及访问方法 |
Non-Patent Citations (1)
Title |
---|
崔泽汉 ; 陈明宇 ; .大容量DRAM的刷新开销问题及优化技术综述.计算机研究与发展.2016,(第02期),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN111158585A (zh) | 2020-05-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110520929B (zh) | 内存刷新方法、装置及计算机系统 | |
CN110546707B (zh) | 内存刷新技术及计算机系统 | |
KR101746735B1 (ko) | 고신뢰성 동작을 위한 메모리 제어기를 갖는 데이터 프로세서 및 방법 | |
CN112382321B (zh) | 动态随机存取存储器的刷新方法及内存控制器、电子装置 | |
CN113342615B (zh) | 命令监控方法、装置、控制器、系统、设备和存储介质 | |
US10535393B1 (en) | Configuring dynamic random access memory refreshes for systems having multiple ranks of memory | |
CN105068940A (zh) | 一种基于Bank划分的自适应页策略确定方法 | |
WO2022155970A1 (zh) | 一种内存控制方法及内存控制装置 | |
CN103927268A (zh) | 一种存储器的访问方法及装置 | |
CN110556139B (zh) | 用以控制存储器的电路及相关的方法 | |
CN111158585B (zh) | 一种内存控制器刷新优化方法、装置、设备和存储介质 | |
TW202427470A (zh) | 記憶體的控制方法和控制器、以及晶片系統 | |
CN106875971B (zh) | 动态随机存取存储器控制器及其控制方法 | |
US20240071461A1 (en) | Adaptive Memory Registers | |
WO2022178772A1 (zh) | 一种存储器的刷新方法、存储器、控制器及存储系统 | |
CN106601286A (zh) | DDRx SDRAM存储器刷新方法及存储器控制器 | |
CN106874222B (zh) | 指令延时控制方法、控制器以及存储器 | |
CN112259141B (zh) | 动态随机存取存储器的刷新方法及内存控制器、电子装置 | |
CN108763116B (zh) | 一种基于贪婪式算法的多通道ddr控制器 | |
CN112965816B (zh) | 内存管理技术及计算机系统 | |
CN112394805B (zh) | 一种dram的低功耗模式的实现方法及终端 | |
KR102343550B1 (ko) | 스몰 액티브 커맨드를 이용한 메모리 시스템 | |
TWI685840B (zh) | 動態隨機存取記憶體控制器以及動態隨機存取記憶體控制方法 | |
Kim et al. | A quantitative analysis of performance benefits of 3D die stacking on mobile and embedded SoC | |
JP2024152432A (ja) | メモリ制御装置及びメモリ制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |