数据写入控制装置及方法转让专利

申请号 : CN201910189405.7

文献号 : CN110209346B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李和和刘勇攀赵庆行罗嵘杨华中

申请人 : 华为技术有限公司清华大学

摘要 :

一种数据写入控制装置及方法,当所述写入控制装置处于所述回写模式时,所述处理器侦测所述第一存储器中脏块的数量,当所述脏块的数量达到第一预设阈值时,分别预测在两种写入模式下,所述处理器所运行程序在一危险时间段内的执行进度,当预测在通写模式下所述处理器所运行程序在所述危险时间段内的执行进度大于在所述回写模式下所述处理器所运行程序在所述危险时间段内的执行进度时,将当前的数据写入模式转换为通写模式;当所述写入控制装置处于所述通写模式时,侦测所述脏块数量,当所述脏块的数量降至第二预设阈值时,则将当前的数据写入模式转换为所述回写模式。

权利要求 :

1.一种数据写入控制装置,包括一级存储器、二级存储器及处理器,所述一级存储器包括易失存储单元,所述二级存储器为非易失存储单元,所述数据写入控制装置的数据写入模式包括回写模式及通写模式,在所述回写模式下,所述处理器将接收到的数据写入所述一级存储器中,在所述通写模式下,所述处理器将接收到的数据写入所述一级存储器及所述二级存储器中;

当所述数据写入控制装置处于所述回写模式时,所述处理器侦测所述一级存储器中脏块的数量,并当所述脏块的数量达到第一预设阈值时,分别预测所述处理器所运行程序在危险时间段内的第一执行进度和第二执行进度,所述危险时间段为所述脏块的数量达到第一预设阈值开始,到所述脏块的数量小于所述第一预设阈值的一段时间,所述第一预设阈值为所述一级存储器可支持备份的脏块的最大数量,所述第一执行进度为在通写模式下所述处理器所运行程序在所述危险时间段内的执行进度,所述第二执行进度为在回写模式下所述处理器所运行程序在所述危险时间段内的执行进度;

当预测所述处理器所运行程序在所述危险时间段内的所述第一执行进度大于所述第二执行进度时,将当前的数据写入模式转换为通写模式。

2.如权利要求1所述的数据写入控制装置,其特征在于,当所述数据写入控制装置处于所述通写模式时,侦测所述一级存储器中脏块数量,当所述脏块的数量降至第二预设阈值时,则将当前的数据写入模式转换为所述回写模式。

3.如权利要求1所述的数据写入控制装置,其特征在于,当所述处理器侦测所述一级存储器中脏块的数量达到所述第一预设阈值时,分别预测所述处理器所运行程序在危险时间段内的第一执行进度和第二执行进度。

4.如权利要求1所述的数据写入控制装置,其特征在于,所述一级存储器还包括非易失存储单元,在所述数据写入控制装置掉电后,所述易失存储单元中的数据被备份至所述一级存储器的非易失存储单元中。

5.如权利要求1所述的数据写入控制装置,其特征在于,在所述危险时间段内,所预测的所述第二执行进度的期望E(G-R)计算公式为:其中,G表示采用回写模式时,持续供电时,程序执行的进度百分比,R表示在所述危险时间段内发生掉电时,退回的程序进度百分比,k为在回写模式下,所述处理器所运行程序在单位时间内的执行进度,L为预设的所述危险时间段的长度,ts为若以所述脏块的数量达到所述第一预设阈值时为时间零点,最近开始供电的时刻,为预先统计的所述数据写入控制装置的平均供电时间;

在所述危险时间段内,所预测的所述第一执行进度的期望E(G’)的计算公式为:

E(G’)=k’L

其中,G’表示通写模式时,程序执行进度百分比,k’为在通写模式下,所述处理器所运行程序在单位时间内的执行进度。

6.如权利要求2所述的数据写入控制装置,其特征在于,所述第二预设阈值为所述第一预设阈值减一。

7.一种应用于数据写入控制装置的数据写入控制方法,所述数据写入控制装置包括一级存储器、二级存储器及处理器,所述一级存储器包括易失存储单元,所述二级存储器为非易失存储单元,所述数据写入控制装置的数据写入模式包括回写模式及通写模式,在所述回写模式下,所述处理器将接收到的数据写入所述一级存储器中,在所述通写模式下,所述处理器将接收到的数据写入所述一级存储器及所述二级存储器中,所述方法包括:当所述数据写入控制装置处于所述回写模式时,所述处理器侦测所述一级存储器中脏块的数量;

当所述脏块的数量达到第一预设阈值时,分别预测所述处理器所运行程序在一危险时间段内的第一执行进度和第二执行进度,所述危险时间段为所述脏块的数量达到所述第一预设阈值开始,到所述脏块的数量小于所述第一预设阈值的一段时间,所述第一预设阈值为所述一级存储器可支持备份的脏块的最大数量,所述第一执行进度为在通写模式下所述处理器所运行程序在所述危险时间段内的执行进度,所述第二执行进度为在回写模式下所述处理器所运行程序在所述危险时间段内的执行进度;

当预测所述处理器所运行程序在所述危险时间段内的所述第一执行进度大于所述第二执行进度时,将当前的数据写入模式转换为通写模式。

8.如权利要求7所述的数据写入控制方法,其特征在于,所述方法还包括:当所述数据写入控制装置处于所述通写模式时,侦测所述一级存储器中脏块数量,当所述脏块的数量降至第二预设阈值时,则将当前的数据写入模式转换为所述回写模式。

9.如权利要求7所述的数据写入控制方法,其特征在于,当所述一级存储器中脏块的数量达到所述第一预设阈值时,执行所述分别预测所述处理器所运行程序在危险时间段内的第一执行进度和第二执行进度的步骤。

10.如权利要求7所述的数据写入控制方法,其特征在于,所述一级存储器还包括非易失存储单元,在所述数据写入控制装置掉电后,所述易失存储单元中的数据被备份至所述一级存储器的非易失存储单元中。

11.如权利要求7所述的数据写入控制方法,其特征在于,在所述危险时间段内,所预测的所述第二执行进度的期望E(G-R)的计算公式为:其中,G表示采用回写模式,持续供电时,程序执行的进度百分比,R表示在所述危险时间段内发生掉电时,退回的程序进度百分比,k为在回写模式下,所述处理器所运行程序在单位时间内的执行进度,L为预设的所述危险时间段的长度,ts为若以所述脏块的数量达到所述第一预设阈值时为时间零点,最近开始供电的时刻,为预先统计的所述数据写入控制装置的平均供电时间;

在所述危险时间段内,所预测的所述第一执行进度的期望E(G’)的计算公式为:

E(G’)=k’L

其中,G’表示通写模式时,程序执行进度百分比,k’为在通写模式下,所述处理器所运行程序在单位时间内的执行进度。

12.如权利要求8所述的数据写入控制方法,其特征在于,所述第二预设阈值为所述第一预设阈值减一。

说明书 :

数据写入控制装置及方法

技术领域

[0001] 本发明涉及数据写入控制技术领域,特别涉及数据写入控制装置及方法。

背景技术

[0002] 非易失SRAM(NV-SRAM)一种同时包括SRAM和NVM的存储结构,电子装置在工作模式下采用SRAM进行数据的存储,在电子装置掉电后,NV-SRAM能够将数据备份到NVM单元中。然而,在电子装置掉电后,非易失SRAM需要一个较大的片上储能电容供电以进行数据的备份,该电容会引入较大的芯片面积开销和成本开销。如果采用较小的片上储能电容,则由于电能不足,会引起备份失败。在备份失败后只能回退到上一次成功备份点,而回到上一次成功备份点会造成一定的性能开销,影响程序的执行进度。

发明内容

[0003] 本发明实施例提供数据写入控制装置及方法,通过两种不同写入模式的转换,提高写入装置及方法的程序执行效率。
[0004] 本发明实施例的第一方面提供一种数据写入控制装置,包括一级存储器、二级存储器及处理器,所述一级存储器包括易失存储单元,所述二级存储器为非易失存储单元,所述数据写入控制装置的数据写入模式包括回写模式及通写模式,在所述回写模式下,所述处理器将接收到的数据写入所述一级存储器中,在所述通写模式下,所述处理器将接收到的数据写入所述一级存储器及所述二级存储器中;
[0005] 当所述写入控制装置处于所述回写模式时,所述处理器侦测所述第一存储器中脏块的数量,当所述脏块的数量达到第一预设阈值时,分别预测在两种写入模式下,所述处理器所运行程序在一危险时间段内的执行进度,当预测在通写模式下所述处理器所运行程序在所述危险时间段内的执行进度大于在所述回写模式下所述处理器所运行程序在所述危险时间段内的执行进度时,将当前的数据写入模式转换为通写模式;
[0006] 当所述写入控制装置处于所述通写模式时,侦测所述脏块数量,当所述脏块的数量降至第二预设阈值时,则将当前的数据写入模式转换为所述回写模式。
[0007] 进一步地,在本发明实施例的第一方面中,所述一级存储器还包括非易失存储单元,在所述数据写入控制装置掉电后,所述易失存储单元中的数据被备份至所述非易失存储单元中,所述第一预设阈值为所述第一存储器可支持备份的脏块的最大数量。
[0008] 进一步地,在本发明实施例的第一方面中,所预测采用回写模式时写入控制装置程序执行的进度的计算公式为:
[0009]
[0010] 其中,k为在回写模式下,所述处理器所运行程序在单位时间内的执行进度,L为预设的所述危险时间段的长度,ts为若以所述脏块的数量达到所述第一预设阈值时为时间零点,最近开始供电时间,为预先统计的所述数据写入控制装置的平均供电时间。
[0011] 所预测采用通写模式时写入控制装置程序执行的进度的计算公式为:
[0012] E(G’)=k’L
[0013] 其中,k’为在通写模式下,所述处理器所运行程序在单位时间内的执行进度。
[0014] 进一步地,在本发明实施例的第一方面中,所述第二预设阈值为所述第一预设阈值减一。
[0015] 本发明实施例的第二方面提供一种应用于一数据写入控制装置的数据写入控制方法,所述数据写入控制装置包括一级存储器、二级存储器及处理器,所述一级存储器包括易失存储单元,所述二级存储器为非易失存储单元,所述数据写入控制装置的数据写入模式包括回写模式及通写模式,在所述回写模式下,所述处理器将接收到的数据写入所述一级存储器中,在所述通写模式下,所述处理器将接收到的数据写入所述一级存储器及所述二级存储器中,所述方法包括:
[0016] 当所述写入控制装置处于所述回写模式时,所述处理器侦测所述第一存储器中脏块的数量;
[0017] 当所述脏块的数量达到第一预设阈值时,分别预测在两种写入模式下,所述处理器所运行程序在一危险时间段内的执行进度;
[0018] 当预测在通写模式下所述处理器所运行程序在所述危险时间段内的执行进度大于在所述回写模式下所述处理器所运行程序在所述危险时间段内的执行进度时,将当前的数据写入模式转换为通写模式;
[0019] 当所述写入控制装置处于所述通写模式时,侦测所述脏块数量,当所述脏块的数量降至第二预设阈值时,则将当前的数据写入模式转换为所述回写模式。
[0020] 进一步地,在本发明实施例的第二方面中,所述一级存储器还包括非易失存储单元,在所述数据写入控制装置掉电后,所述易失存储单元中的数据被备份至所述非易失存储单元中,所述第一预设阈值为所述第一存储器可支持备份的脏块的最大数量。
[0021] 进一步地,在本发明实施例的第二方面中,所预测采用回写模式时写入控制装置程序执行的进度的计算公式为:
[0022]
[0023] 其中,k为在回写模式下,所述处理器所运行程序在单位时间内的执行进度,L为预设的所述危险时间段的长度,ts为若以所述脏块的数量达到所述第一预设阈值时为时间零点,在危险时间段内,所述数据写入控制装置开始供电的时间,为预先统计的所述数据写入控制装置的平均供电时间。
[0024] 所预测采用通写模式时写入控制装置程序执行的进度的计算公式为:
[0025] E(G’)=k’L
[0026] 其中,k’为在通写模式下,所述处理器所运行程序在单位时间内的执行进度。
[0027] 进一步地,在本发明实施例的第二方面中,所述第二预设阈值为所述第一预设阈值减一。
[0028] 可见本发明实施例的数据写入控制装置及方法,在所述数据写入控制装置的数据写入模式为回写模式时,侦测易失存储单元中脏块的数量,当脏块的数量达到一预设阈值时,根据预设的条件确定是否将所述数据写入控制装置转换至通写模式,当达到预设的条件将所述数据写入控制装置转换至通写模式时,继续侦测脏块的数量吗,当脏块的数量小于第二预设阈值时,再将所述数据写入控制装置的数据写入模式转换为回写模式,如此,可提供数据写入控制装置的程序执行性能。

附图说明

[0029] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0030] 图1为本发明第一实施例所提供的数据写入装置的结构图。
[0031] 图2为所述数据写入装置两种数据写入模式进行装换的示意图。
[0032] 图3为第二实施例所提供的数据写入方法的流程图

具体实施方式

[0033] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0034] 本发明实施例所提供的技术方案主要应用于同时具有非易失存储单元与易失存储单元的存储器,如非易失静态随机存储器(Nonvolatile Static Random Access Memory,NV-SRAM),在使用这种结构的存储器作为内存的电子装置掉电后,可通过存储器上的备用电源给存储器供电,以将易失存储单元中的数据备份至非易失存储单元中。为了方便描述,在以下实施例中以NV-SRAM为例对本发明进行说明,但需要说明的是,本发明所应用的存储器并不限于NV-SRAM,其他具有相同结构的存储器也包含在本发明所揭露的范围内。
[0035] NV-SRAM中的易失存储单元为静态随机存储器(Static Random Access Memory,SRAM),非易失存储单元为相变存储器(Phase-change Random Access memory,PCM),备用电源为片上储能电容。
[0036] 下面将通过不同的实施例对本发明所提供的技术方案从不同的方面进行描述。
[0037] 第一实施例
[0038] 第一实施例提供一种数据写入控制装置10。所述数据写入控制装置10包括一级存储器11、二级存储器12及处理器13,所述一级存储器11包括易失存储单元111及非易失存储单元112。所述二级存储器12为非易失存储单元。
[0039] 所述写入控制装置10包括两种数据写入模式,即回写模式及通写模式。所述回写(write-back)模式为将接收到的数据写入请求中的数据写入所述一级存储器中。所述通写模式(through-write)将接收到的数据写入请求中的数据同时写入所述一级存储器11及二级存储器12中。
[0040] 本实施例中,所述一级存储器11为非易失静态随机存储器(Nonvolatile Static Random Access Memory,NV-SRAM),所述易失存储单元111为静态随机存储器(Static Random Access Memory,SRAM),所述非易失存储单元112为相变存储器(Phase-change Random Access memory,PCM),在所述数据写入控制装置10掉电后,可通过所述一级存储器11上的备用电源113给所述一级存储器11供电,以将所述易失存储单元111中的数据备份至非易失存储单元112中。
[0041] 所述回写模式为在处理器13接收到数据写入指令时,将数据直接写入所述易失存储单元111的存储块113中,被写入所述易失存储单元111中的数据,只有在需要被替换出所述易失存储单元111时,才写入所述二级存储器12。被写入所述易失存储单元111的存储块113中,而未被写入所述二级存储器12的存储块113为脏块,每个存储块113有个脏块标记,用来标识所述存储块113否为脏块。由于所述易失存储单元111具有比较快的数据读写速度,所以当所述数据写入控制装置10采用回写模式时,具有更快的程序处理进度。但当所述数据写入控制装置10掉电时,所述易失存储单元12中的所有脏块的数据需要全部备份至所述非易失存储单元112,但由于备用电源113的电能有效,当脏块的数量超过备用电源113所能支持备份的脏块的数量时,就会造成备份失败,当备份失败时,程序就需要回退到上一次成功备份的点,这样就会造成大的性能开销,影响程序执行的进度。
[0042] 所述通写模式为所述处理器13接收到数据写入指令时,将数据写入所述易失存储单元111的存储块113的同时,还写入所述二级存储器12,这样就不会有脏块的产生。从而不会发生备份失败的情况,但是,由于所述非易失存储单元112具有对数据的读写的速度比较慢,所以当所述数据写入控制装置10采用通写模式时,相对于所述回写模式,具有比较慢的程序处理进度。
[0043] 所以为了提高所述数据写入控制装置10的性能,本实施例提供的数据写入控制装置10可在两种数据写入模式下转换,提升整体的程序处理进度。
[0044] 当所述写入控制装置10处于所述回写模式时,所述处理器13侦测所述第一存储器11中脏块的数量,当所述脏块的数量达到第一预设阈值时,或者当所述脏块的数量达到第一预设阈值时,预测两种写入模式下程序的执行进度,当所预测的通写模式下程序的执行进度大于所述回写模式下程序的执行进度时,将当前的数据写入模式转换为通写模式;
[0045] 当所述写入控制装置10处于所述通写模式时,所述处理器13侦测所述脏块数量,当所述脏块的数量达到第二预设阈值时,则将当前的数据写入模式转换为回写模式。
[0046] 所述第一预设阈值即为所述第一存储器11可支持备份的脏块的最大数量。
[0047] 本实施例中,在一种实现方式中,当所述处理器13所侦测的所述脏块的数量达到所述第一预设阈值时,即将当前的数据写入模式转换为通写模式。
[0048] 在另外一种实现方式中,当所述处理器13所侦测的所述脏块的数量达到所述第一预设阈值时,预测两种写入模式下程序的执行进度,此时所预测的程序的执行进度为所述脏块的数量达到所述第一预设阈值开始,到所述脏块的数量小于所述第一预设阈值的危险时间段L内程序的执行进度。
[0049] 本实施例中的数据写入控制装置10一般为一种特定的检测装置,如穿戴式设备中用于测量人体健康状况的感应器等,所以一般只运行一个特定的程序,而所运行程序的脏块数量达到且大于所述第一预设阈值的危险时间段L也基本上是不变的,所以对于特定程序而言,所述危险时间段L可以预先得到。
[0050] 本实施中程序的执行进度用进度百分比表示,由于所述数据写入控制装置10运行的是特定程序,所以程序的总指令数时一定的,则根据公式(1)可以计算出程序被执行的进度:
[0051]
[0052] 其中,Nexecuted(t)是已经执行完成的指令数量,Ntotal是总指令数量。如果忽略由于流水线停顿造成的时间开销,可以近似认为G(t)是线性增长的。
[0053] 首先,计算在危险时间段L内采用回写模式时,程序的进度。
[0054] 如图2所示,曲线C1为采用回写模式时,程序的进度曲线,曲线C2为采用通写模式时,程序的进度曲线。
[0055] 在程序开始运行后,所述数据写入控制装置10采用回写模式进行数据的写入,并开始侦测脏块的数量,当脏块的数量达到第一预设阈值时,获取预设的危险时间段L,并预测在所述事件段L内两种写入模式的程序处理的进度。
[0056] 当脏块的数量达到第一预设阈值时,没有将回写模式转换至通写模式时,所执行程序的处理进度的计算过程为:
[0057] 首先,计算所述数据写入控制装置10的掉电概率,由于实际当中,掉电会在不同的情形下发生。比如,若所述数据写入控制装置10使用的是太阳能供电的系统,在太阳被遮挡的情况下、太阳角度变化、天气变化等情况下都会发生被动掉电。这种特征体现在供电特点上即供电时间的无记忆性,即每次的供电时间长度直接无关联。所以,可以用指数分布对供电时间建模:
[0058]
[0059] 其中,f(ton)是供电时间长度的概率密度, 是供电时间长度的期望。
[0060] 然后,计算在危险时间段L内发生掉电的概率是:
[0061]
[0062] 对于一段连续的供电时间t,采用两种策略的计算进度百分比分别为:
[0063] G(t)=kt
[0064] G’(t)=k’t
[0065] 其中,k为采用回写模式时,单位时间内的程序进度,k’为采用通写模式时,单位时间内的程序进度。
[0066] 若在危险时间段L内发生了掉电,即会发生备份失败,在备份失败后,则会发生备份的回退,如图2所示,若在时间te处发生掉电,会发生备份失败,则程序需要回退到本次供电开始的时刻ts处的程序进度。如果以危险时间段L的起始点,即转换点P为时间零点,则退回的程序进度为:
[0067]
[0068] 其中,teL表示在危险时间段L内未发生掉电,则程序无需回退。
[0069] 如此,在危险时间段L内,若在转换点不将写策略切换至通写策略,则实际的计算进度百分比G-R的期望为:
[0070]
[0071] 而如果脏块数量达到所述第一预设值时,即在所述转换点将所述数据写入模式转换为通写模式,则
[0072] 则实际的计算进度百分比G-R的期望为:
[0073] E(G')=k'L  (7)
[0074] 则只有当E(G-R)
[0075]
[0076] 对公式(8)变形可得:
[0077]
[0078] 即满足上面的公式时,将所述数据写入控制装置10的数据写入模式切换至通写模式。
[0079] 进入通写模式后,脏块的数量不再增加,但由于新数据的写入,原来的脏块的数据被替换写入所述第二存储器12,这样脏块的数量就会减少,在脏块的数量减少到所述第二预设值时,则所述处理器13将所述数据写入控制装置10的数据写入模式切换至通写模式。
[0080] 由于所述回写模式的程序执行性能比较高,所以所述第二预设阈值优选为所述第一预设阈值减一。如此,可快速的使所述数据写入控制装置10进入回写模式。当然在其他实施例中,也可根据具体设置不同的第二预设阈值。
[0081] 第二实施例
[0082] 第二实施例提供一种应用于第一实施例所提供的所述数据写入装置的数据写入方法。如图3所示,为所述数据写入方法的流程图。
[0083] 步骤S301,当所述写入控制装置处于所述回写模式时,所述处理器侦测所述第一存储器中脏块的数量;
[0084] 步骤S302,当所述脏块的数量达到第一预设阈值时,分别预测在两种写入模式下,所述处理器所运行程序在一危险时间段内的执行进度;
[0085] 步骤S303,当预测在通写模式下所述处理器所运行程序在所述危险时间段内的执行进度大于在所述回写模式下所述处理器所运行程序在所述危险时间段内的执行进度时,将当前的数据写入模式转换为通写模式;
[0086] 步骤S304,当所述写入控制装置处于所述通写模式时,侦测所述脏块数量,当所述脏块的数量达到第二预设阈值时,则将当前的数据写入模式转换为所述回写模式。
[0087] 本实施例中,所述一级存储器还包括非易失存储单元,在所述数据写入控制装置掉电后,所述易失存储单元中的数据被备份至所述非易失存储单元中,所述第一预设阈值为所述第一存储器可支持备份的脏块的最大数量。
[0088] 本实施例中,所预测采用回写模式时写入控制装置程序执行的进度的计算公式为:
[0089]
[0090] 其中,k为在回写模式下,所述处理器所运行程序在单位时间内的执行进度,L为预设的所述危险时间段的长度,ts为若以所述脏块的数量达到所述第一预设阈值时为时间零点,在危险时间段内,所述数据写入控制装置掉电的时间,为预先统计的所述数据写入控制装置的平均供电时间。
[0091] 所预测采用通写模式时写入控制装置程序执行的进度的计算公式为:
[0092] E(G’)=k’L
[0093] 其中,k’为在通写模式下,所述处理器所运行程序在单位时间内的执行进度。
[0094] 本实施例中,所述第二预设阈值为所述第一预设阈值减一。
[0095] 本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
[0096] 以上对本发明实施例所提供的数据写入装置及方法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。