本公开涉及存储器,尤其涉及一种存储器的刷新方法、控制器、组件及电子设备。
背景技术:
1、双倍速率同步动态随机存储器(double data rate synchronous dynamicrandom access memory,ddr sdram)在运行过程中,为保证数据不丢失,需要在特定的周期,即协议规定的存储器刷新时间间隔(dram refresh interval,trefi)内发出一次刷新(refresh)操作。且在发出刷新(refresh)操作命令后,在刷新命令执行期间,即协议规定的行地址刷新周期(refreshcycle time,trfc)内,不能进行其他操作。同时根据协议要求,在刷新(refresh)前需要保证操作的存储阵列(bank)处于空闲(idle)状态,否则需要提前发送预充电 (precharge)命令来关闭打开的存储阵列(bank),然后才能对该存储阵列(bank)发起刷新(refresh)。另外协议基于性能的考虑,支持推迟(postpone)功能,即允许计时到trfei需要发送刷新(refresh)时,可以进行推迟发送,在后续时间补发推迟的刷新(refresh)次数。
2、根据jedec标准支持的全阵列刷新模式(all bank auto-refresh,refab)、单阵列刷新模式(perbank auto-refresh,refpb)两种刷新方式,当前业内实现上都采用其中一种模式进行刷新操作,其中,其单阵列刷新模式(refpb)因更细粒度的刷新成为主要的刷新方式。但是两种刷新方式各有优缺点,若固定采用其中一种刷新方式(尤其是单阵列刷新模式),可能导致较低的刷新效率或导致较大的时间开销。
技术实现思路
1、本公开的目的是提供一种存储器的刷新方法、控制器、组件及电子设备,解决了现有技术中存储器的刷新模式固定导致较低的刷新效率和较大的刷新开销的技术问题。
2、根据本公开的一个方面,提供一种存储器的刷新方法,存储器包括预设数量的存储阵列,上述方法包括:
3、通过推迟计数器监测存储器的刷新推迟次数;
4、根据推迟计数器当前的计数值,确定存储器是否满足全阵列刷新的条件或单阵列刷新的条件;
5、当存储器满足全阵列刷新的条件时,对所有存储阵列进行至少一次全阵列刷新,并将推迟计数器当前的计数值减去预设数量与该至少一次全阵列刷新的次数的乘积;
6、当存储器满足单阵列刷新的条件时,从所有存储阵列中选取一个目标存储阵列进行一次单阵列刷新,并将推迟计数器当前的计数值减去1。
7、在一些实施例中,上述存储器的刷新方法中,通过推迟计数器监测存储器的刷新推迟次数,包括以下步骤:
8、当存储器暂停刷新每达一个预设周期时,将推迟计数器的计数值加上预设数量。
9、在一些实施例中,上述存储器的刷新方法中,全阵列刷新的条件包括:推迟计数器当前的计数值大于等于第一阈值;
10、单阵列刷新的条件包括:推迟计数器当前的计数值小于第一阈值且大于等于第二阈值;其中,第二阈值大于0且小于第一阈值。
11、在一些实施例中,上述存储器的刷新方法中,根据推迟计数器当前的计数值,确定存储器是否满足全阵列刷新的条件或单阵列刷新的条件的步骤之前,方法还包括:
12、配置存储器的刷新模式,刷新模式包括全阵列刷新模式或单阵列刷新模式;
13、根据推迟计数器当前的计数值,确定存储器是否满足全阵列刷新的条件或单阵列刷新的条件,包括以下步骤:
14、根据存储器的刷新模式、各个存储阵列的运行状态、各个存储阵列的刷新状态和推迟计数器当前的计数值,确定存储器是否满足全阵列刷新的条件或单阵列刷新的条件;
15、其中,运行状态包括空闲或非空闲,刷新状态包括待刷新或已刷新。
16、在一些实施例中,上述存储器的刷新方法中,全阵列刷新的条件包括以下至少一种:
17、存储器处于全阵列刷新模式、推迟计数器当前的计数值大于0且所有存储阵列的运行状态均为空闲;
18、存储器处于全阵列刷新模式且推迟计数器当前的计数值大于等于第三阈值;
19、存储器处于单阵列刷新模式且推迟计数器当前的计数值大于等于第四阈值;
20、单阵列刷新的条件包括以下至少一种:
21、存储器处于单阵列刷新模式、推迟计数器当前的计数值大于0且存储器中存在至少一个运行状态为空闲且刷新状态为待刷新的存储阵列;其中,目标存储阵列为运行状态为空闲且刷新状态为待刷新的任一存储阵列;
22、存储器处于单阵列刷新模式、推迟计数器当前的计数值小于第四阈值且大于等于第五阈值;其中,第五阈值大于0且小于第四阈值,目标存储阵列为刷新状态为待刷新的任一存储阵列。
23、在一些实施例中,上述存储器的刷新方法中,第四阈值小于等于预设数量。
24、在一些实施例中,上述存储器的刷新方法中,当存储器满足全阵列刷新的条件时,对所有存储阵列进行至少一次全阵列刷新,并将推迟计数器当前的计数值减去预设数量与该至少一次全阵列刷新的次数的乘积,包括以下步骤:
25、当存储器处于单阵列刷新模式且推迟计数器当前的计数值大于等于第四阈值时,计算推迟计数器当前的计数值除以预设数量得到的商和余数;
26、判断余数是否大于等于第四阈值,若是,将目标刷新次数确定为推迟计数器当前的计数值除以预设数量得到的商加1,否则,将目标刷新次数确定为推迟计数器当前的计数值除以预设数量得到的商;
27、对所有存储阵列进行目标刷新次数的全阵列刷新,并将推迟计数器当前的计数值减去预设数量与目标刷新次数的乘积。
28、在一些实施例中,上述存储器的刷新方法中,当存储器满足全阵列刷新的条件时,对所有存储阵列进行至少一次全阵列刷新,并将推迟计数器当前的计数值减去预设数量与该至少一次全阵列刷新的次数的乘积,包括以下步骤:
29、当存储器处于全阵列刷新模式、推迟计数器当前的计数值大于0且所有存储阵列的运行状态均为空闲,或存储器处于全阵列刷新模式且推迟计数器当前的计数值大于等于第三阈值时,对所有存储阵列进行一次全阵列刷新,并将推迟计数器当前的计数值减去预设数量。
30、在一些实施例中,上述存储器的刷新方法中,还包括:
31、推迟计数器的计数值每次增加后,都将所有存储阵列的刷新状态切换为待刷新。
32、在一些实施例中,上述存储器的刷新方法中,还包括:
33、每次对一存储阵列进行刷新后,将该存储阵列的刷新状态切换为已刷新;
34、当存储器中所有存储阵列的刷新状态均为已刷新时,将所有存储阵列的刷新状态切换为待刷新。
35、根据本公开的另一方面,提供一种存储器的控制器,存储器包括预设数量的存储阵列,上述控制器包括:
36、推迟计数器,被配置为监测存储器的刷新推迟次数;
37、刷新模块,被配置为根据推迟计数器当前的计数值,确定存储器是否满足全阵列刷新的条件或单阵列刷新的条件;当存储器满足全阵列刷新的条件时,对所有存储阵列进行至少一次全阵列刷新,并向推迟计数器发出第一触发信号,以使得推迟计数器将当前的计数值减去预设数量与该至少一次全阵列刷新的次数的乘积;当存储器满足单阵列刷新的条件时,从所有存储阵列中选取一个目标存储阵列进行一次单阵列刷新,并向推迟计数器发出第二触发信号,以使得推迟计数器将当前的计数值减去1。
38、在一些实施例中,上述存储器的控制器中,还包括:计时器,被配置为对存储器暂停刷新的时间进行计时,并在计时达预设周期时,计时重置并向推迟计数器发出第三触发信号,以使得推迟计数器将当前的计数值加上预设数量。
39、在一些实施例中,上述存储器的控制器中,全阵列刷新的条件包括:推迟计数器当前的计数值大于等于第一阈值;
40、单阵列刷新的条件包括:推迟计数器当前的计数值小于第一阈值且大于等于第二阈值;其中,第二阈值大于0且小于第一阈值。
41、在一些实施例中,上述存储器的控制器中,还包括:
42、配置模块,被配置为配置存储器的刷新模式,刷新模式包括全阵列刷新模式或单阵列刷新模式;
43、刷新模块,被配置为根据推迟计数器当前的计数值,确定存储器是否满足全阵列刷新的条件或单阵列刷新的条件,包括:
44、刷新模块,被配置为根据存储器的刷新模式、各个存储阵列的运行状态、各个存储阵列的刷新状态和推迟计数器当前的计数值,确定存储器是否满足全阵列刷新的条件或单阵列刷新的条件;
45、其中,运行状态包括空闲或非空闲,刷新状态包括待刷新或已刷新。
46、在一些实施例中,上述存储器的控制器中,全阵列刷新的条件包括以下至少一种:
47、存储器处于全阵列刷新模式、推迟计数器当前的计数值大于0且所有存储阵列的运行状态均为空闲;
48、存储器处于全阵列刷新模式且推迟计数器当前的计数值大于等于第三阈值;
49、存储器处于单阵列刷新模式且推迟计数器当前的计数值大于等于第四阈值;
50、单阵列刷新的条件包括以下至少一种:
51、存储器处于单阵列刷新模式、推迟计数器当前的计数值大于0且存储器中存在至少一个运行状态为空闲且刷新状态为待刷新的存储阵列;其中,目标存储阵列为运行状态为空闲且刷新状态为待刷新的任一存储阵列;
52、存储器处于单阵列刷新模式、推迟计数器当前的计数值小于第四阈值且大于等于第五阈值;其中,第五阈值大于0且小于第四阈值,目标存储阵列为刷新状态为待刷新的任一存储阵列。
53、在一些实施例中,上述存储器的控制器中,第四阈值小于等于预设数量。
54、在一些实施例中,上述存储器的控制器中,刷新模块,被配置为当存储器满足全阵列刷新的条件时,对所有存储阵列进行至少一次全阵列刷新,并向推迟计数器发出第一触发信号,以使得推迟计数器将当前的计数值减去预设数量与该至少一次全阵列刷新的次数的乘积,包括:
55、刷新模块,被配置为当存储器处于单阵列刷新模式且推迟计数器当前的计数值大于等于第四阈值时,计算推迟计数器当前的计数值除以预设数量得到的商和余数;
56、判断余数是否大于等于第四阈值,若是,将目标刷新次数确定为推迟计数器当前的计数值除以预设数量得到的商加1,否则,将目标刷新次数确定为推迟计数器当前的计数值除以预设数量得到的商;
57、对所有存储阵列进行目标刷新次数的全阵列刷新,并向推迟计数器发出第一触发信号,以使得推迟计数器将当前的计数值减去预设数量与目标刷新次数的乘积。
58、在一些实施例中,上述存储器的控制器中,刷新模块,被配置为当存储器满足全阵列刷新的条件时,对所有存储阵列进行至少一次全阵列刷新,并向推迟计数器发出第一触发信号,以使得推迟计数器将当前的计数值减去预设数量与该至少一次全阵列刷新的次数的乘积,包括:
59、刷新模块,被配置为当存储器处于全阵列刷新模式、推迟计数器当前的计数值大于0且所有存储阵列的运行状态均为空闲,或存储器处于全阵列刷新模式且推迟计数器当前的计数值大于等于第三阈值时,对所有存储阵列进行一次全阵列刷新,并向推迟计数器发出第一触发信号,以使得推迟计数器将当前的计数值减去预设数量。
60、在一些实施例中,上述存储器的控制器中,刷新模块,还被配置为:
61、在推迟计数器的计数值每次增加后,都将所有存储阵列的刷新状态切换为待刷新。
62、在一些实施例中,上述存储器的控制器中,刷新模块,还被配置为:
63、每次对一存储阵列进行刷新后,将该存储阵列的刷新状态切换为已刷新;
64、当存储器中所有存储阵列的刷新状态均为已刷新时,将所有存储阵列的刷新状态切换为待刷新。
65、根据本公开的另一方面,提供一种电子组件,包括上述任一实施例的存储器的控制器。
66、根据本公开的另一方面,提供一种电子设备,包括上述任一实施例的电子组件。