CN110209346B - 数据写入控制装置及方法 - Google Patents

数据写入控制装置及方法 Download PDF

Info

Publication number
CN110209346B
CN110209346B CN201910189405.7A CN201910189405A CN110209346B CN 110209346 B CN110209346 B CN 110209346B CN 201910189405 A CN201910189405 A CN 201910189405A CN 110209346 B CN110209346 B CN 110209346B
Authority
CN
China
Prior art keywords
write
mode
processor
data
execution progress
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
Application number
CN201910189405.7A
Other languages
English (en)
Other versions
CN110209346A (zh
Inventor
李和和
刘勇攀
赵庆行
罗嵘
杨华中
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tsinghua University
Huawei Technologies Co Ltd
Original Assignee
Tsinghua University
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tsinghua University, Huawei Technologies Co Ltd filed Critical Tsinghua University
Priority to CN201910189405.7A priority Critical patent/CN110209346B/zh
Publication of CN110209346A publication Critical patent/CN110209346A/zh
Application granted granted Critical
Publication of CN110209346B publication Critical patent/CN110209346B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1466Management of the backup or restore process to make the backup process non-disruptive
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/068Hybrid storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/222Non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/50Control mechanisms for virtual memory, cache or TLB
    • G06F2212/502Control mechanisms for virtual memory, cache or TLB using adaptive policy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/601Reconfiguration of cache memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements
    • G06F2212/621Coherency control relating to peripheral accessing, e.g. from DMA or I/O device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0623Securing storage systems in relation to content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Retry When Errors Occur (AREA)

Abstract

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

Description

数据写入控制装置及方法
技术领域
本发明涉及数据写入控制技术领域,特别涉及数据写入控制装置及方法。
背景技术
非易失SRAM(NV-SRAM)一种同时包括SRAM和NVM的存储结构,电子装置在工作模式下采用SRAM进行数据的存储,在电子装置掉电后,NV-SRAM能够将数据备份到NVM单元中。然而,在电子装置掉电后,非易失SRAM需要一个较大的片上储能电容供电以进行数据的备份,该电容会引入较大的芯片面积开销和成本开销。如果采用较小的片上储能电容,则由于电能不足,会引起备份失败。在备份失败后只能回退到上一次成功备份点,而回到上一次成功备份点会造成一定的性能开销,影响程序的执行进度。
发明内容
本发明实施例提供数据写入控制装置及方法,通过两种不同写入模式的转换,提高写入装置及方法的程序执行效率。
本发明实施例的第一方面提供一种数据写入控制装置,包括一级存储器、二级存储器及处理器,所述一级存储器包括易失存储单元,所述二级存储器为非易失存储单元,所述数据写入控制装置的数据写入模式包括回写模式及通写模式,在所述回写模式下,所述处理器将接收到的数据写入所述一级存储器中,在所述通写模式下,所述处理器将接收到的数据写入所述一级存储器及所述二级存储器中;
当所述写入控制装置处于所述回写模式时,所述处理器侦测所述第一存储器中脏块的数量,当所述脏块的数量达到第一预设阈值时,分别预测在两种写入模式下,所述处理器所运行程序在一危险时间段内的执行进度,当预测在通写模式下所述处理器所运行程序在所述危险时间段内的执行进度大于在所述回写模式下所述处理器所运行程序在所述危险时间段内的执行进度时,将当前的数据写入模式转换为通写模式;
当所述写入控制装置处于所述通写模式时,侦测所述脏块数量,当所述脏块的数量降至第二预设阈值时,则将当前的数据写入模式转换为所述回写模式。
进一步地,在本发明实施例的第一方面中,所述一级存储器还包括非易失存储单元,在所述数据写入控制装置掉电后,所述易失存储单元中的数据被备份至所述非易失存储单元中,所述第一预设阈值为所述第一存储器可支持备份的脏块的最大数量。
进一步地,在本发明实施例的第一方面中,所预测采用回写模式时写入控制装置程序执行的进度的计算公式为:
Figure GDA0002758939080000011
其中,k为在回写模式下,所述处理器所运行程序在单位时间内的执行进度,L为预设的所述危险时间段的长度,ts为若以所述脏块的数量达到所述第一预设阈值时为时间零点,最近开始供电时间,
Figure GDA0002758939080000012
为预先统计的所述数据写入控制装置的平均供电时间。
所预测采用通写模式时写入控制装置程序执行的进度的计算公式为:
E(G’)=k’L
其中,k’为在通写模式下,所述处理器所运行程序在单位时间内的执行进度。
进一步地,在本发明实施例的第一方面中,所述第二预设阈值为所述第一预设阈值减一。
本发明实施例的第二方面提供一种应用于一数据写入控制装置的数据写入控制方法,所述数据写入控制装置包括一级存储器、二级存储器及处理器,所述一级存储器包括易失存储单元,所述二级存储器为非易失存储单元,所述数据写入控制装置的数据写入模式包括回写模式及通写模式,在所述回写模式下,所述处理器将接收到的数据写入所述一级存储器中,在所述通写模式下,所述处理器将接收到的数据写入所述一级存储器及所述二级存储器中,所述方法包括:
当所述写入控制装置处于所述回写模式时,所述处理器侦测所述第一存储器中脏块的数量;
当所述脏块的数量达到第一预设阈值时,分别预测在两种写入模式下,所述处理器所运行程序在一危险时间段内的执行进度;
当预测在通写模式下所述处理器所运行程序在所述危险时间段内的执行进度大于在所述回写模式下所述处理器所运行程序在所述危险时间段内的执行进度时,将当前的数据写入模式转换为通写模式;
当所述写入控制装置处于所述通写模式时,侦测所述脏块数量,当所述脏块的数量降至第二预设阈值时,则将当前的数据写入模式转换为所述回写模式。
进一步地,在本发明实施例的第二方面中,所述一级存储器还包括非易失存储单元,在所述数据写入控制装置掉电后,所述易失存储单元中的数据被备份至所述非易失存储单元中,所述第一预设阈值为所述第一存储器可支持备份的脏块的最大数量。
进一步地,在本发明实施例的第二方面中,所预测采用回写模式时写入控制装置程序执行的进度的计算公式为:
Figure GDA0002758939080000021
其中,k为在回写模式下,所述处理器所运行程序在单位时间内的执行进度,L为预设的所述危险时间段的长度,ts为若以所述脏块的数量达到所述第一预设阈值时为时间零点,在危险时间段内,所述数据写入控制装置开始供电的时间,
Figure GDA0002758939080000022
为预先统计的所述数据写入控制装置的平均供电时间。
所预测采用通写模式时写入控制装置程序执行的进度的计算公式为:
E(G’)=k’L
其中,k’为在通写模式下,所述处理器所运行程序在单位时间内的执行进度。
进一步地,在本发明实施例的第二方面中,所述第二预设阈值为所述第一预设阈值减一。
可见本发明实施例的数据写入控制装置及方法,在所述数据写入控制装置的数据写入模式为回写模式时,侦测易失存储单元中脏块的数量,当脏块的数量达到一预设阈值时,根据预设的条件确定是否将所述数据写入控制装置转换至通写模式,当达到预设的条件将所述数据写入控制装置转换至通写模式时,继续侦测脏块的数量吗,当脏块的数量小于第二预设阈值时,再将所述数据写入控制装置的数据写入模式转换为回写模式,如此,可提供数据写入控制装置的程序执行性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明第一实施例所提供的数据写入装置的结构图。
图2为所述数据写入装置两种数据写入模式进行装换的示意图。
图3为第二实施例所提供的数据写入方法的流程图
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例所提供的技术方案主要应用于同时具有非易失存储单元与易失存储单元的存储器,如非易失静态随机存储器(Nonvolatile Static Random AccessMemory,NV-SRAM),在使用这种结构的存储器作为内存的电子装置掉电后,可通过存储器上的备用电源给存储器供电,以将易失存储单元中的数据备份至非易失存储单元中。为了方便描述,在以下实施例中以NV-SRAM为例对本发明进行说明,但需要说明的是,本发明所应用的存储器并不限于NV-SRAM,其他具有相同结构的存储器也包含在本发明所揭露的范围内。
NV-SRAM中的易失存储单元为静态随机存储器(Static Random Access Memory,SRAM),非易失存储单元为相变存储器(Phase-change Random Access memory,PCM),备用电源为片上储能电容。
下面将通过不同的实施例对本发明所提供的技术方案从不同的方面进行描述。
第一实施例
第一实施例提供一种数据写入控制装置10。所述数据写入控制装置10包括一级存储器11、二级存储器12及处理器13,所述一级存储器11包括易失存储单元111及非易失存储单元112。所述二级存储器12为非易失存储单元。
所述写入控制装置10包括两种数据写入模式,即回写模式及通写模式。所述回写(write-back)模式为将接收到的数据写入请求中的数据写入所述一级存储器中。所述通写模式(through-write)将接收到的数据写入请求中的数据同时写入所述一级存储器11及二级存储器12中。
本实施例中,所述一级存储器11为非易失静态随机存储器(Nonvolatile StaticRandom Access Memory,NV-SRAM),所述易失存储单元111为静态随机存储器(StaticRandom Access Memory,SRAM),所述非易失存储单元112为相变存储器(Phase-changeRandom Access memory,PCM),在所述数据写入控制装置10掉电后,可通过所述一级存储器11上的备用电源113给所述一级存储器11供电,以将所述易失存储单元111中的数据备份至非易失存储单元112中。
所述回写模式为在处理器13接收到数据写入指令时,将数据直接写入所述易失存储单元111的存储块113中,被写入所述易失存储单元111中的数据,只有在需要被替换出所述易失存储单元111时,才写入所述二级存储器12。被写入所述易失存储单元111的存储块113中,而未被写入所述二级存储器12的存储块113为脏块,每个存储块113有个脏块标记,用来标识所述存储块113否为脏块。由于所述易失存储单元111具有比较快的数据读写速度,所以当所述数据写入控制装置10采用回写模式时,具有更快的程序处理进度。但当所述数据写入控制装置10掉电时,所述易失存储单元12中的所有脏块的数据需要全部备份至所述非易失存储单元112,但由于备用电源113的电能有效,当脏块的数量超过备用电源113所能支持备份的脏块的数量时,就会造成备份失败,当备份失败时,程序就需要回退到上一次成功备份的点,这样就会造成大的性能开销,影响程序执行的进度。
所述通写模式为所述处理器13接收到数据写入指令时,将数据写入所述易失存储单元111的存储块113的同时,还写入所述二级存储器12,这样就不会有脏块的产生。从而不会发生备份失败的情况,但是,由于所述非易失存储单元112具有对数据的读写的速度比较慢,所以当所述数据写入控制装置10采用通写模式时,相对于所述回写模式,具有比较慢的程序处理进度。
所以为了提高所述数据写入控制装置10的性能,本实施例提供的数据写入控制装置10可在两种数据写入模式下转换,提升整体的程序处理进度。
当所述写入控制装置10处于所述回写模式时,所述处理器13侦测所述第一存储器11中脏块的数量,当所述脏块的数量达到第一预设阈值时,或者当所述脏块的数量达到第一预设阈值时,预测两种写入模式下程序的执行进度,当所预测的通写模式下程序的执行进度大于所述回写模式下程序的执行进度时,将当前的数据写入模式转换为通写模式;
当所述写入控制装置10处于所述通写模式时,所述处理器13侦测所述脏块数量,当所述脏块的数量达到第二预设阈值时,则将当前的数据写入模式转换为回写模式。
所述第一预设阈值即为所述第一存储器11可支持备份的脏块的最大数量。
本实施例中,在一种实现方式中,当所述处理器13所侦测的所述脏块的数量达到所述第一预设阈值时,即将当前的数据写入模式转换为通写模式。
在另外一种实现方式中,当所述处理器13所侦测的所述脏块的数量达到所述第一预设阈值时,预测两种写入模式下程序的执行进度,此时所预测的程序的执行进度为所述脏块的数量达到所述第一预设阈值开始,到所述脏块的数量小于所述第一预设阈值的危险时间段L内程序的执行进度。
本实施例中的数据写入控制装置10一般为一种特定的检测装置,如穿戴式设备中用于测量人体健康状况的感应器等,所以一般只运行一个特定的程序,而所运行程序的脏块数量达到且大于所述第一预设阈值的危险时间段L也基本上是不变的,所以对于特定程序而言,所述危险时间段L可以预先得到。
本实施中程序的执行进度用进度百分比表示,由于所述数据写入控制装置10运行的是特定程序,所以程序的总指令数时一定的,则根据公式(1)可以计算出程序被执行的进度:
Figure GDA0002758939080000041
其中,Nexecuted(t)是已经执行完成的指令数量,Ntotal是总指令数量。如果忽略由于流水线停顿造成的时间开销,可以近似认为G(t)是线性增长的。
首先,计算在危险时间段L内采用回写模式时,程序的进度。
如图2所示,曲线C1为采用回写模式时,程序的进度曲线,曲线C2为采用通写模式时,程序的进度曲线。
在程序开始运行后,所述数据写入控制装置10采用回写模式进行数据的写入,并开始侦测脏块的数量,当脏块的数量达到第一预设阈值时,获取预设的危险时间段L,并预测在所述事件段L内两种写入模式的程序处理的进度。
当脏块的数量达到第一预设阈值时,没有将回写模式转换至通写模式时,所执行程序的处理进度的计算过程为:
首先,计算所述数据写入控制装置10的掉电概率,由于实际当中,掉电会在不同的情形下发生。比如,若所述数据写入控制装置10使用的是太阳能供电的系统,在太阳被遮挡的情况下、太阳角度变化、天气变化等情况下都会发生被动掉电。这种特征体现在供电特点上即供电时间的无记忆性,即每次的供电时间长度直接无关联。所以,可以用指数分布对供电时间建模:
Figure GDA0002758939080000051
其中,f(ton)是供电时间长度的概率密度,
Figure GDA0002758939080000052
是供电时间长度的期望。
然后,计算在危险时间段L内发生掉电的概率是:
Figure GDA0002758939080000053
对于一段连续的供电时间t,采用两种策略的计算进度百分比分别为:
G(t)=kt
G’(t)=k’t
其中,k为采用回写模式时,单位时间内的程序进度,k’为采用通写模式时,单位时间内的程序进度。
若在危险时间段L内发生了掉电,即会发生备份失败,在备份失败后,则会发生备份的回退,如图2所示,若在时间te处发生掉电,会发生备份失败,则程序需要回退到本次供电开始的时刻ts处的程序进度。如果以危险时间段L的起始点,即转换点P为时间零点,则退回的程序进度为:
Figure GDA0002758939080000054
其中,te<L表示在危险时间段L内发生了掉电,而te>L表示在危险时间段L内未发生掉电,则程序无需回退。
如此,在危险时间段L内,若在转换点不将写策略切换至通写策略,则实际的计算进度百分比G-R的期望为:
Figure GDA0002758939080000061
而如果脏块数量达到所述第一预设值时,即在所述转换点将所述数据写入模式转换为通写模式,则
则实际的计算进度百分比G-R的期望为:
E(G')=k'L (7)
则只有当E(G-R)<E(G’)的时候,才切换至通写策略,即:
Figure GDA0002758939080000062
对公式(8)变形可得:
Figure GDA0002758939080000063
即满足上面的公式时,将所述数据写入控制装置10的数据写入模式切换至通写模式。
进入通写模式后,脏块的数量不再增加,但由于新数据的写入,原来的脏块的数据被替换写入所述第二存储器12,这样脏块的数量就会减少,在脏块的数量减少到所述第二预设值时,则所述处理器13将所述数据写入控制装置10的数据写入模式切换至通写模式。
由于所述回写模式的程序执行性能比较高,所以所述第二预设阈值优选为所述第一预设阈值减一。如此,可快速的使所述数据写入控制装置10进入回写模式。当然在其他实施例中,也可根据具体设置不同的第二预设阈值。
第二实施例
第二实施例提供一种应用于第一实施例所提供的所述数据写入装置的数据写入方法。如图3所示,为所述数据写入方法的流程图。
步骤S301,当所述写入控制装置处于所述回写模式时,所述处理器侦测所述第一存储器中脏块的数量;
步骤S302,当所述脏块的数量达到第一预设阈值时,分别预测在两种写入模式下,所述处理器所运行程序在一危险时间段内的执行进度;
步骤S303,当预测在通写模式下所述处理器所运行程序在所述危险时间段内的执行进度大于在所述回写模式下所述处理器所运行程序在所述危险时间段内的执行进度时,将当前的数据写入模式转换为通写模式;
步骤S304,当所述写入控制装置处于所述通写模式时,侦测所述脏块数量,当所述脏块的数量达到第二预设阈值时,则将当前的数据写入模式转换为所述回写模式。
本实施例中,所述一级存储器还包括非易失存储单元,在所述数据写入控制装置掉电后,所述易失存储单元中的数据被备份至所述非易失存储单元中,所述第一预设阈值为所述第一存储器可支持备份的脏块的最大数量。
本实施例中,所预测采用回写模式时写入控制装置程序执行的进度的计算公式为:
Figure GDA0002758939080000071
其中,k为在回写模式下,所述处理器所运行程序在单位时间内的执行进度,L为预设的所述危险时间段的长度,ts为若以所述脏块的数量达到所述第一预设阈值时为时间零点,在危险时间段内,所述数据写入控制装置掉电的时间,
Figure GDA0002758939080000072
为预先统计的所述数据写入控制装置的平均供电时间。
所预测采用通写模式时写入控制装置程序执行的进度的计算公式为:
E(G’)=k’L
其中,k’为在通写模式下,所述处理器所运行程序在单位时间内的执行进度。
本实施例中,所述第二预设阈值为所述第一预设阈值减一。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
以上对本发明实施例所提供的数据写入装置及方法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (12)

1.一种数据写入控制装置,包括一级存储器、二级存储器及处理器,所述一级存储器包括易失存储单元,所述二级存储器为非易失存储单元,所述数据写入控制装置的数据写入模式包括回写模式及通写模式,在所述回写模式下,所述处理器将接收到的数据写入所述一级存储器中,在所述通写模式下,所述处理器将接收到的数据写入所述一级存储器及所述二级存储器中;
当所述数据写入控制装置处于所述回写模式时,所述处理器侦测所述一级存储器中脏块的数量,并当所述脏块的数量达到第一预设阈值时,分别预测所述处理器所运行程序在危险时间段内的第一执行进度和第二执行进度,所述危险时间段为所述脏块的数量达到第一预设阈值开始,到所述脏块的数量小于所述第一预设阈值的一段时间,所述第一预设阈值为所述一级存储器可支持备份的脏块的最大数量,所述第一执行进度为在通写模式下所述处理器所运行程序在所述危险时间段内的执行进度,所述第二执行进度为在回写模式下所述处理器所运行程序在所述危险时间段内的执行进度;
当预测所述处理器所运行程序在所述危险时间段内的所述第一执行进度大于所述第二执行进度时,将当前的数据写入模式转换为通写模式。
2.如权利要求1所述的数据写入控制装置,其特征在于,当所述数据写入控制装置处于所述通写模式时,侦测所述一级存储器中脏块数量,当所述脏块的数量降至第二预设阈值时,则将当前的数据写入模式转换为所述回写模式。
3.如权利要求1所述的数据写入控制装置,其特征在于,当所述处理器侦测所述一级存储器中脏块的数量达到所述第一预设阈值时,分别预测所述处理器所运行程序在危险时间段内的第一执行进度和第二执行进度。
4.如权利要求1所述的数据写入控制装置,其特征在于,所述一级存储器还包括非易失存储单元,在所述数据写入控制装置掉电后,所述易失存储单元中的数据被备份至所述一级存储器的非易失存储单元中。
5.如权利要求1所述的数据写入控制装置,其特征在于,在所述危险时间段内,所预测的所述第二执行进度的期望E(G-R)计算公式为:
Figure FDA0002773009280000011
其中,G表示采用回写模式时,持续供电时,程序执行的进度百分比,R表示在所述危险时间段内发生掉电时,退回的程序进度百分比,k为在回写模式下,所述处理器所运行程序在单位时间内的执行进度,L为预设的所述危险时间段的长度,ts为若以所述脏块的数量达到所述第一预设阈值时为时间零点,最近开始供电的时刻,
Figure FDA0002773009280000012
为预先统计的所述数据写入控制装置的平均供电时间;
在所述危险时间段内,所预测的所述第一执行进度的期望E(G’)的计算公式为:
E(G’)=k’L
其中,G’表示通写模式时,程序执行进度百分比,k’为在通写模式下,所述处理器所运行程序在单位时间内的执行进度。
6.如权利要求2所述的数据写入控制装置,其特征在于,所述第二预设阈值为所述第一预设阈值减一。
7.一种应用于数据写入控制装置的数据写入控制方法,所述数据写入控制装置包括一级存储器、二级存储器及处理器,所述一级存储器包括易失存储单元,所述二级存储器为非易失存储单元,所述数据写入控制装置的数据写入模式包括回写模式及通写模式,在所述回写模式下,所述处理器将接收到的数据写入所述一级存储器中,在所述通写模式下,所述处理器将接收到的数据写入所述一级存储器及所述二级存储器中,所述方法包括:
当所述数据写入控制装置处于所述回写模式时,所述处理器侦测所述一级存储器中脏块的数量;
当所述脏块的数量达到第一预设阈值时,分别预测所述处理器所运行程序在一危险时间段内的第一执行进度和第二执行进度,所述危险时间段为所述脏块的数量达到所述第一预设阈值开始,到所述脏块的数量小于所述第一预设阈值的一段时间,所述第一预设阈值为所述一级存储器可支持备份的脏块的最大数量,所述第一执行进度为在通写模式下所述处理器所运行程序在所述危险时间段内的执行进度,所述第二执行进度为在回写模式下所述处理器所运行程序在所述危险时间段内的执行进度;
当预测所述处理器所运行程序在所述危险时间段内的所述第一执行进度大于所述第二执行进度时,将当前的数据写入模式转换为通写模式。
8.如权利要求7所述的数据写入控制方法,其特征在于,所述方法还包括:当所述数据写入控制装置处于所述通写模式时,侦测所述一级存储器中脏块数量,当所述脏块的数量降至第二预设阈值时,则将当前的数据写入模式转换为所述回写模式。
9.如权利要求7所述的数据写入控制方法,其特征在于,当所述一级存储器中脏块的数量达到所述第一预设阈值时,执行所述分别预测所述处理器所运行程序在危险时间段内的第一执行进度和第二执行进度的步骤。
10.如权利要求7所述的数据写入控制方法,其特征在于,所述一级存储器还包括非易失存储单元,在所述数据写入控制装置掉电后,所述易失存储单元中的数据被备份至所述一级存储器的非易失存储单元中。
11.如权利要求7所述的数据写入控制方法,其特征在于,在所述危险时间段内,所预测的所述第二执行进度的期望E(G-R)的计算公式为:
Figure FDA0002773009280000021
其中,G表示采用回写模式,持续供电时,程序执行的进度百分比,R表示在所述危险时间段内发生掉电时,退回的程序进度百分比,k为在回写模式下,所述处理器所运行程序在单位时间内的执行进度,L为预设的所述危险时间段的长度,ts为若以所述脏块的数量达到所述第一预设阈值时为时间零点,最近开始供电的时刻,
Figure FDA0002773009280000022
为预先统计的所述数据写入控制装置的平均供电时间;
在所述危险时间段内,所预测的所述第一执行进度的期望E(G’)的计算公式为:
E(G’)=k’L
其中,G’表示通写模式时,程序执行进度百分比,k’为在通写模式下,所述处理器所运行程序在单位时间内的执行进度。
12.如权利要求8所述的数据写入控制方法,其特征在于,所述第二预设阈值为所述第一预设阈值减一。
CN201910189405.7A 2015-03-06 2015-03-06 数据写入控制装置及方法 Active CN110209346B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910189405.7A CN110209346B (zh) 2015-03-06 2015-03-06 数据写入控制装置及方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201510101154.4A CN105988735B (zh) 2015-03-06 2015-03-06 数据写入控制装置及方法
CN201910189405.7A CN110209346B (zh) 2015-03-06 2015-03-06 数据写入控制装置及方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201510101154.4A Division CN105988735B (zh) 2015-03-06 2015-03-06 数据写入控制装置及方法

Publications (2)

Publication Number Publication Date
CN110209346A CN110209346A (zh) 2019-09-06
CN110209346B true CN110209346B (zh) 2021-02-12

Family

ID=56879905

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201510101154.4A Active CN105988735B (zh) 2015-03-06 2015-03-06 数据写入控制装置及方法
CN201910189405.7A Active CN110209346B (zh) 2015-03-06 2015-03-06 数据写入控制装置及方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201510101154.4A Active CN105988735B (zh) 2015-03-06 2015-03-06 数据写入控制装置及方法

Country Status (4)

Country Link
US (2) US10275353B2 (zh)
EP (1) EP3258367B1 (zh)
CN (2) CN105988735B (zh)
WO (1) WO2016141800A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10901906B2 (en) 2018-08-07 2021-01-26 International Business Machines Corporation Write data allocation in storage system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101615133A (zh) * 2008-06-27 2009-12-30 国际商业机器公司 用于细粒度延迟写拷贝的装置和方法
CN103605618A (zh) * 2013-11-20 2014-02-26 浪潮电子信息产业股份有限公司 一种缓存镜像系统无写回的镜像和直写切换方法
CN103988183A (zh) * 2011-12-20 2014-08-13 英特尔公司 2级存储器分级结构中的存储器侧高速缓存的动态部分断电

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100470507C (zh) * 2003-11-12 2009-03-18 华为技术有限公司 磁盘阵列结构中进行回写的方法
US7173863B2 (en) 2004-03-08 2007-02-06 Sandisk Corporation Flash controller cache architecture
US8464002B2 (en) 2009-10-14 2013-06-11 Board Of Regents Of The University Of Texas System Burst-based cache dead block prediction
JP5402693B2 (ja) * 2010-02-05 2014-01-29 富士通株式会社 ディスクアレイ装置の制御方法及びディスクアレイ装置
US10592416B2 (en) 2011-09-30 2020-03-17 Oracle International Corporation Write-back storage cache based on fast persistent memory
US8707096B2 (en) * 2011-10-12 2014-04-22 Hitachi, Ltd. Storage system, data backup method, and system restarting method of a storage system incorporating volatile and nonvolatile memory devices
JP5906966B2 (ja) * 2012-06-29 2016-04-20 富士通株式会社 制御装置、電力供給装置及び電力制御方法
US9639466B2 (en) * 2012-10-30 2017-05-02 Nvidia Corporation Control mechanism for fine-tuned cache to backing-store synchronization
US9058282B2 (en) * 2012-12-31 2015-06-16 Intel Corporation Dynamic cache write policy
CN103092774A (zh) 2013-01-04 2013-05-08 北京北大众志微系统科技有限责任公司 一种处理器末级高速缓存的管理系统及方法
WO2014143053A1 (en) 2013-03-15 2014-09-18 Intel Corporation Dead block predictors for cooperative execution in the last level cache

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101615133A (zh) * 2008-06-27 2009-12-30 国际商业机器公司 用于细粒度延迟写拷贝的装置和方法
CN103988183A (zh) * 2011-12-20 2014-08-13 英特尔公司 2级存储器分级结构中的存储器侧高速缓存的动态部分断电
CN103605618A (zh) * 2013-11-20 2014-02-26 浪潮电子信息产业股份有限公司 一种缓存镜像系统无写回的镜像和直写切换方法

Also Published As

Publication number Publication date
EP3258367B1 (en) 2022-04-06
US10275353B2 (en) 2019-04-30
CN110209346A (zh) 2019-09-06
EP3258367A1 (en) 2017-12-20
US20170364441A1 (en) 2017-12-21
US20190227935A1 (en) 2019-07-25
CN105988735A (zh) 2016-10-05
CN105988735B (zh) 2019-03-19
WO2016141800A1 (zh) 2016-09-15
EP3258367A4 (en) 2018-03-07
US10929292B2 (en) 2021-02-23

Similar Documents

Publication Publication Date Title
EP2901286B1 (en) Techniques associated with a read and write window budget for a two level memory system
US8423710B1 (en) Sequential writes to flash memory
US8880775B2 (en) System and method of garbage collection in a memory device
CN105138432B (zh) 一种异常断电时固态硬盘数据快速备份的方法及系统
US20150254014A1 (en) Storing Data in Persistent Hybrid Memory
CN103345189A (zh) 一种控制器和一种掉电保护方法
CN109783004A (zh) 数据储存装置与存储器装置的数据处理方法
CN107430554B (zh) 通过使用数据的可压缩性作为高速缓存插入的标准来提高存储高速缓存性能
CN104571933B (zh) 具固态储存元件的电子装置及其相关控制方法
CN101859604A (zh) 闪存坏块的利用方法
US20160231932A1 (en) Host controlled enablement of automatic background operations in a memory device
CN110187842B (zh) 基于固态硬盘的跨温区数据保护方法、装置和计算机设备
US10649840B2 (en) Data storage device performing recovery operation after sudden power-off and operating method thereof
TWI608350B (zh) 儲存裝置及其控制單元、可用於儲存裝置的資料搬移方 法
KR20160024546A (ko) 데이터 저장 장치 및 그것의 동작 방법
CN109491592B (zh) 存储设备及其数据写入方法、存储装置
CN110209346B (zh) 数据写入控制装置及方法
CN109815166B (zh) 一种存储数据的动态回收处理方法及存储装置
US9082472B2 (en) Back-up power management for efficient battery usage
JP5883284B2 (ja) 半導体メモリ制御装置及び制御方法
TWI518691B (zh) 控制大容量儲存裝置資料寫入的方法
US10310975B2 (en) Cache offload based on predictive power parameter
US20170308448A1 (en) Terminal apparatus and failure response control method
US20130073792A1 (en) Electronic apparatus using nand flash and memory management method thereof
CN110119250B (zh) 非易失性存储介质数据处理方法及非易失性存储介质

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