CN105988735B - 数据写入控制装置及方法 - Google Patents
数据写入控制装置及方法 Download PDFInfo
- Publication number
- CN105988735B CN105988735B CN201510101154.4A CN201510101154A CN105988735B CN 105988735 B CN105988735 B CN 105988735B CN 201510101154 A CN201510101154 A CN 201510101154A CN 105988735 B CN105988735 B CN 105988735B
- Authority
- CN
- China
- Prior art keywords
- write
- control device
- data write
- program
- writemode
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1441—Resetting or repowering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1466—Management of the backup or restore process to make the backup process non-disruptive
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- 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/061—Improving I/O performance
-
- 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/0653—Monitoring storage devices or systems
-
- 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
- G06F3/068—Hybrid storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/81—Threshold
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/22—Employing cache memory using specific memory technology
- G06F2212/222—Non-volatile memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/50—Control mechanisms for virtual memory, cache or TLB
- G06F2212/502—Control mechanisms for virtual memory, cache or TLB using adaptive policy
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/601—Reconfiguration of cache memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/62—Details of cache specific to multiprocessor cache arrangements
- G06F2212/621—Coherency control relating to peripheral accessing, e.g. from DMA or I/O device
-
- 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/062—Securing storage systems
- G06F3/0623—Securing storage systems in relation to content
-
- 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/0656—Data 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需要一个较大的片上储能电容供电以进行数据的备份,该电容会引入较大的芯片面积开销和成本开销。如果采用较小的片上储能电容,则由于电能不足,会引起备份失败。在备份失败后只能回退到上一次成功备份点,而回到上一次成功备份点会造成一定的性能开销,影响程序的执行进度。
发明内容
本发明实施例提供数据写入控制装置及方法,通过两种不同写入模式的转换,提高写入装置及方法的程序执行效率。
本发明实施例的第一方面提供一种数据写入控制装置,包括一级存储器、二级存储器及处理器,所述一级存储器包括易失存储单元,所述二级存储器为非易失存储单元,所述数据写入控制装置的数据写入模式包括回写模式及通写模式,在所述回写模式下,所述处理器将接收到的数据写入所述一级存储器中,在所述通写模式下,所述处理器将接收到的数据写入所述一级存储器及所述二级存储器中;
当所述写入控制装置处于所述回写模式时,所述处理器侦测所述第一存储器中脏块的数量,当所述脏块的数量达到第一预设阈值时,分别预测在两种写入模式下,所述处理器所运行程序在一危险时间段内的执行进度,当预测在通写模式下所述处理器所运行程序在所述危险时间段内的执行进度大于在所述回写模式下所述处理器所运行程序在所述危险时间段内的执行进度时,将当前的数据写入模式转换为通写模式;
当所述写入控制装置处于所述通写模式时,侦测所述脏块数量,当所述脏块的数量降至第二预设阈值时,则将当前的数据写入模式转换为所述回写模式。
进一步地,在本发明实施例的第一方面中,所述一级存储器还包括非易失存储单元,在所述数据写入控制装置掉电后,所述易失存储单元中的数据被备份至所述非易失存储单元中,所述第一预设阈值为所述第一存储器可支持备份的脏块的最大数量。
进一步地,在本发明实施例的第一方面中,所预测采用回写模式时写入控制装置程序执行的进度的计算公式为:
其中,k为在回写模式下,所述处理器所运行程序在单位时间内的执行进度,L为预设的所述危险时间段的长度,ts为若以所述脏块的数量达到所述第一预设阈值时为时间零点,最近开始供电时间,为预先统计的所述数据写入控制装置的平均供电时间。
所预测采用通写模式时写入控制装置程序执行的进度的计算公式为:
E(G’)=k’L
其中,k’为在通写模式下,所述处理器所运行程序在单位时间内的执行进度。
进一步地,在本发明实施例的第一方面中,所述第二预设阈值为所述第一预设阈值减一。
本发明实施例的第二方面提供一种应用于一数据写入控制装置的数据写入控制方法,所述数据写入控制装置包括一级存储器、二级存储器及处理器,所述一级存储器包括易失存储单元,所述二级存储器为非易失存储单元,所述数据写入控制装置的数据写入模式包括回写模式及通写模式,在所述回写模式下,所述处理器将接收到的数据写入所述一级存储器中,在所述通写模式下,所述处理器将接收到的数据写入所述一级存储器及所述二级存储器中,所述方法包括:
当所述写入控制装置处于所述回写模式时,所述处理器侦测所述第一存储器中脏块的数量;
当所述脏块的数量达到第一预设阈值时,分别预测在两种写入模式下,所述处理器所运行程序在一危险时间段内的执行进度;
当预测在通写模式下所述处理器所运行程序在所述危险时间段内的执行进度大于在所述回写模式下所述处理器所运行程序在所述危险时间段内的执行进度时,将当前的数据写入模式转换为通写模式;
当所述写入控制装置处于所述通写模式时,侦测所述脏块数量,当所述脏块的数量降至第二预设阈值时,则将当前的数据写入模式转换为所述回写模式。
进一步地,在本发明实施例的第二方面中,所述一级存储器还包括非易失存储单元,在所述数据写入控制装置掉电后,所述易失存储单元中的数据被备份至所述非易失存储单元中,所述第一预设阈值为所述第一存储器可支持备份的脏块的最大数量。
进一步地,在本发明实施例的第二方面中,所预测采用回写模式时写入控制装置程序执行的进度的计算公式为:
其中,k为在回写模式下,所述处理器所运行程序在单位时间内的执行进度,L为预设的所述危险时间段的长度,ts为若以所述脏块的数量达到所述第一预设阈值时为时间零点,在危险时间段内,所述数据写入控制装置开始供电的时间,为预先统计的所述数据写入控制装置的平均供电时间。
所预测采用通写模式时写入控制装置程序执行的进度的计算公式为:
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)可以计算出程序被执行的进度:
其中,Nexecuted(t)是已经执行完成的指令数量,Ntotal是总指令数量。如果忽略由于流水线停顿造成的时间开销,可以近似认为G(t)是线性增长的。
首先,计算在危险时间段L内采用回写模式时,程序的进度。
如图2所示,曲线C1为采用回写模式时,程序的进度曲线,曲线C2为采用通写模式时,程序的进度曲线。
在程序开始运行后,所述数据写入控制装置10采用回写模式进行数据的写入,并开始侦测脏块的数量,当脏块的数量达到第一预设阈值时,获取预设的危险时间段L,并预测在所述事件段L内两种写入模式的程序处理的进度。
当脏块的数量达到第一预设阈值时,没有将回写模式转换至通写模式时,所执行程序的处理进度的计算过程为:
首先,计算所述数据写入控制装置10的掉电概率,由于实际当中,掉电会在不同的情形下发生。比如,若所述数据写入控制装置10使用的是太阳能供电的***,在太阳被遮挡的情况下、太阳角度变化、天气变化等情况下都会发生被动掉电。这种特征体现在供电特点上即供电时间的无记忆性,即每次的供电时间长度直接无关联。所以,可以用指数分布对供电时间建模:
其中,f(ton)是供电时间长度的概率密度,是供电时间长度的期望。
然后,计算在危险时间段L内发生掉电的概率是:
对于一段连续的供电时间t,采用两种策略的计算进度百分比分别为:
G(t)=kt
G’(t)=k’t
其中,k为采用回写模式时,单位时间内的程序进度,k’为采用通写模式时,单位时间内的程序进度。
若在危险时间段L内发生了掉电,即会发生备份失败,在备份失败后,则会发生备份的回退,如图2所示,若在时间Te处发生掉电,会发生备份失败,则程序需要回退到本次供电开始的时刻Ts处的程序进度。如果以危险时间段L的起始点,即转换点P为时间零点,则退回的程序进度为:
其中,Te<L表示在危险时间段L内发生了掉电,而Te>L表示在危险时间段L内未发生掉电,则程序无需回退。
如此,在危险时间段L内,若在转换点不将写策略切换至通写策略,则实际的计算进度百分比G-R的期望为:
而如果脏块数量达到所述第一预设值时,即在所述转换点将所述数据写入模式转换为通写模式,则
则实际的计算进度百分比G’的期望为:
E(G')=k'L (7)
则只有当E(G-R)<E(G’)的时候,才切换至通写策略,即:
对公式(8)变形可得:
即满足上面的公式时,将所述数据写入控制装置10的数据写入模式切换至通写模式。
进入通写模式后,脏块的数量不再增加,但由于新数据的写入,原来的脏块的数据被替换写入所述第二存储器12,这样脏块的数量就会减少,在脏块的数量减少到所述第二预设值时,则所述处理器13将所述数据写入控制装置10的数据写入模式切换至通写模式。
由于所述回写模式的程序执行性能比较高,所以所述第二预设阈值优选为所述第一预设阈值减一。如此,可快速的使所述数据写入控制装置10进入回写模式。当然在其他实施例中,也可根据具体设置不同的第二预设阈值。
第二实施例
第二实施例提供一种应用于第一实施例所提供的所述数据写入装置的数据写入方法。如图3所示,为所述数据写入方法的流程图。
步骤S301,当所述写入控制装置处于所述回写模式时,所述处理器侦测所述第一存储器中脏块的数量;
步骤S302,当所述脏块的数量达到第一预设阈值时,分别预测在两种写入模式下,所述处理器所运行程序在一危险时间段内的执行进度;
步骤S303,当预测在通写模式下所述处理器所运行程序在所述危险时间段内的执行进度大于在所述回写模式下所述处理器所运行程序在所述危险时间段内的执行进度时,将当前的数据写入模式转换为通写模式;
步骤S304,当所述写入控制装置处于所述通写模式时,侦测所述脏块数量,当所述脏块的数量达到第二预设阈值时,则将当前的数据写入模式转换为所述回写模式。
本实施例中,所述一级存储器还包括非易失存储单元,在所述数据写入控制装置掉电后,所述易失存储单元中的数据被备份至所述非易失存储单元中,所述第一预设阈值为所述第一存储器可支持备份的脏块的最大数量。
本实施例中,所预测采用回写模式时写入控制装置程序执行的进度的计算公式为:
其中,k为在回写模式下,所述处理器所运行程序在单位时间内的执行进度,L为预设的所述危险时间段的长度,ts为若以所述脏块的数量达到所述第一预设阈值时为时间零点,在危险时间段内,所述数据写入控制装置掉电的时间,为预先统计的所述数据写入控制装置的平均供电时间。
所预测采用通写模式时写入控制装置程序执行的进度的计算公式为:
E(G’)=k’L
其中,k’为在通写模式下,所述处理器所运行程序在单位时间内的执行进度。
本实施例中,所述第二预设阈值为所述第一预设阈值减一。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
以上对本发明实施例所提供的数据写入装置及方法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (8)
1.一种数据写入控制装置,包括一级存储器、二级存储器及处理器,所述一级存储器包括易失存储单元,所述二级存储器为非易失存储单元,所述数据写入控制装置的数据写入模式包括回写模式及通写模式,在所述回写模式下,所述处理器将接收到的数据写入所述一级存储器中,在所述通写模式下,所述处理器将接收到的数据写入所述一级存储器及所述二级存储器中;
当所述数据写入控制装置处于所述回写模式时,所述处理器侦测所述一级存储器中脏块的数量,当所述脏块的数量达到第一预设阈值时,分别预测在两种写入模式下,所述处理器所运行程序在一危险时间段内的执行进度,所述第一预设阈值为所述一级存储器可支持备份的脏块的最大数量,所述危险时间段为所述脏块的数量达到所述第一预设阈值开始,到所述脏块的数量小于所述第一预设阈值的一段时间,当预测在通写模式下所述处理器所运行程序在所述危险时间段内的执行进度大于在所述回写模式下所述处理器所运行程序在所述危险时间段内的执行进度时,将当前的数据写入模式转换为通写模式;
当所述数据写入控制装置处于所述通写模式时,侦测所述脏块数量,当所述脏块的数量降至第二预设阈值时,则将当前的数据写入模式转换为所述回写模式。
2.如权利要求1所述的数据写入控制装置,其特征在于,所述一级存储器还包括非易失存储单元,在所述数据写入控制装置掉电后,所述易失存储单元中的数据被备份至所述一级存储器的非易失存储单元中。
3.如权利要求1所述的数据写入控制装置,其特征在于,所预测采用回写模式时,在所述危险时间段内,所述数据写入控制装置所执行程序进度的期望E(G-R)计算公式为:
其中,G表示采用回写模式时,持续供电时,程序执行的进度百分比,R表示在所述危险时间段内发生掉电时,退回的程序进度百分比,k为在回写模式下,所述处理器所运行程序在单位时间内的执行进度,L为预设的所述危险时间段的长度,ts为若以所述脏块的数量达到所述第一预设阈值时为时间零点,最近开始供电的时刻,为预先统计的所述数据写入控制装置的平均供电时间;
所预测采用通写模式时数据写入控制装置程序执行的进度的期望E(G’)的计算公式为:
E(G’)=k’L
其中,G’表示通写模式时,程序执行进度百分比,k’为在通写模式下,所述处理器所运行程序在单位时间内的执行进度。
4.如权利要求1所述的数据写入控制装置,其特征在于,所述第二预设阈值为所述第一预设阈值减一。
5.一种应用于数据写入控制装置的数据写入控制方法,所述数据写入控制装置包括一级存储器、二级存储器及处理器,所述一级存储器包括易失存储单元,所述二级存储器为非易失存储单元,所述数据写入控制装置的数据写入模式包括回写模式及通写模式,在所述回写模式下,所述处理器将接收到的数据写入所述一级存储器中,在所述通写模式下,所述处理器将接收到的数据写入所述一级存储器及所述二级存储器中,所述方法包括:
当所述数据写入控制装置处于所述回写模式时,所述处理器侦测所述一级存储器中脏块的数量;
当所述脏块的数量达到第一预设阈值时,分别预测在两种写入模式下,所述处理器所运行程序在一危险时间段内的执行进度,所述第一预设阈值为所述一级存储器可支持备份的脏块的最大数量,所述危险时间段为所述脏块的数量达到所述第一预设阈值开始,到所述脏块的数量小于所述第一预设阈值的一段时间;
当预测在通写模式下所述处理器所运行程序在所述危险时间段内的执行进度大于在所述回写模式下所述处理器所运行程序在所述危险时间段内的执行进度时,将当前的数据写入模式转换为通写模式;
当所述数据写入控制装置处于所述通写模式时,侦测所述脏块数量,当所述脏块的数量降至第二预设阈值时,则将当前的数据写入模式转换为所述回写模式。
6.如权利要求5所述的数据写入控制方法,其特征在于,所述一级存储器还包括非易失存储单元,在所述数据写入控制装置掉电后,所述易失存储单元中的数据被备份至所述一级存储器的非易失存储单元中。
7.如权利要求5所述的数据写入控制方法,其特征在于,所预测采用回写模式时,在所述危险时间段内,所述数据写入控制装置所执行程序进度的期望E(G-R)的计算公式为:
其中,G表示采用回写模式时,持续供电时,程序执行的进度百分比,R表示在所述危险时间段内发生掉电时,退回的程序进度百分比,k为在回写模式下,所述处理器所运行程序在单位时间内的执行进度,L为预设的所述危险时间段的长度,ts为若以所述脏块的数量达到所述第一预设阈值时为时间零点,最近开始供电的时刻,为预先统计的所述数据写入控制装置的平均供电时间;
所预测采用通写模式时数据写入控制装置程序执行的进度期望E(G’)的计算公式为:
E(G’)=k’L
其中,G’表示通写模式时,程序执行进度百分比,k’为在通写模式下,所述处理器所运行程序在单位时间内的执行进度。
8.如权利要求5所述的数据写入控制方法,其特征在于,所述第二预设阈值为所述第一预设阈值减一。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910189405.7A CN110209346B (zh) | 2015-03-06 | 2015-03-06 | 数据写入控制装置及方法 |
CN201510101154.4A CN105988735B (zh) | 2015-03-06 | 2015-03-06 | 数据写入控制装置及方法 |
PCT/CN2016/074045 WO2016141800A1 (zh) | 2015-03-06 | 2016-02-18 | 数据写入控制装置及方法 |
EP16761027.8A EP3258367B1 (en) | 2015-03-06 | 2016-02-18 | Data write control apparatus and method |
US15/696,416 US10275353B2 (en) | 2015-03-06 | 2017-09-06 | Data write control apparatus and method |
US16/371,391 US10929292B2 (en) | 2015-03-06 | 2019-04-01 | Data write control apparatus and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510101154.4A CN105988735B (zh) | 2015-03-06 | 2015-03-06 | 数据写入控制装置及方法 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910189405.7A Division CN110209346B (zh) | 2015-03-06 | 2015-03-06 | 数据写入控制装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105988735A CN105988735A (zh) | 2016-10-05 |
CN105988735B true CN105988735B (zh) | 2019-03-19 |
Family
ID=56879905
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910189405.7A Active CN110209346B (zh) | 2015-03-06 | 2015-03-06 | 数据写入控制装置及方法 |
CN201510101154.4A Active CN105988735B (zh) | 2015-03-06 | 2015-03-06 | 数据写入控制装置及方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910189405.7A Active CN110209346B (zh) | 2015-03-06 | 2015-03-06 | 数据写入控制装置及方法 |
Country Status (4)
Country | Link |
---|---|
US (2) | US10275353B2 (zh) |
EP (1) | EP3258367B1 (zh) |
CN (2) | CN110209346B (zh) |
WO (1) | WO2016141800A1 (zh) |
Families Citing this family (1)
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1617110A (zh) * | 2003-11-12 | 2005-05-18 | 华为技术有限公司 | 磁盘阵列结构中进行回写的方法 |
CN1950804A (zh) * | 2004-03-08 | 2007-04-18 | 桑迪士克股份有限公司 | 闪速存储器控制器高速缓存架构 |
CN103917963A (zh) * | 2011-09-30 | 2014-07-09 | 甲骨文国际公司 | 基于快速持久性存储器的回写储存器高速缓存 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101615133A (zh) * | 2008-06-27 | 2009-12-30 | 国际商业机器公司 | 用于细粒度延迟写拷贝的装置和方法 |
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 | 富士通株式会社 | ディスクアレイ装置の制御方法及びディスクアレイ装置 |
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 |
WO2013095404A1 (en) * | 2011-12-20 | 2013-06-27 | Intel Corporation | Dynamic partial power down of memory-side cache in a 2-level memory hierarchy |
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 | 北京北大众志微***科技有限责任公司 | 一种处理器末级高速缓存的管理***及方法 |
US9195606B2 (en) | 2013-03-15 | 2015-11-24 | Intel Corporation | Dead block predictors for cooperative execution in the last level cache |
CN103605618B (zh) * | 2013-11-20 | 2017-02-08 | 浪潮电子信息产业股份有限公司 | 一种缓存镜像***无写回的镜像和直写切换方法 |
-
2015
- 2015-03-06 CN CN201910189405.7A patent/CN110209346B/zh active Active
- 2015-03-06 CN CN201510101154.4A patent/CN105988735B/zh active Active
-
2016
- 2016-02-18 EP EP16761027.8A patent/EP3258367B1/en active Active
- 2016-02-18 WO PCT/CN2016/074045 patent/WO2016141800A1/zh active Application Filing
-
2017
- 2017-09-06 US US15/696,416 patent/US10275353B2/en active Active
-
2019
- 2019-04-01 US US16/371,391 patent/US10929292B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1617110A (zh) * | 2003-11-12 | 2005-05-18 | 华为技术有限公司 | 磁盘阵列结构中进行回写的方法 |
CN1950804A (zh) * | 2004-03-08 | 2007-04-18 | 桑迪士克股份有限公司 | 闪速存储器控制器高速缓存架构 |
CN103917963A (zh) * | 2011-09-30 | 2014-07-09 | 甲骨文国际公司 | 基于快速持久性存储器的回写储存器高速缓存 |
Also Published As
Publication number | Publication date |
---|---|
CN110209346B (zh) | 2021-02-12 |
EP3258367A4 (en) | 2018-03-07 |
CN110209346A (zh) | 2019-09-06 |
US20190227935A1 (en) | 2019-07-25 |
EP3258367A1 (en) | 2017-12-20 |
EP3258367B1 (en) | 2022-04-06 |
CN105988735A (zh) | 2016-10-05 |
WO2016141800A1 (zh) | 2016-09-15 |
US10929292B2 (en) | 2021-02-23 |
US10275353B2 (en) | 2019-04-30 |
US20170364441A1 (en) | 2017-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8423710B1 (en) | Sequential writes to flash memory | |
CN103345189A (zh) | 一种控制器和一种掉电保护方法 | |
CN102375788B (zh) | 为具有非易失性存储器的***动态地分配功率预算的方法及装置 | |
CN101923448B (zh) | 一种nand闪存的转换层读写方法 | |
CN105138432B (zh) | 一种异常断电时固态硬盘数据快速备份的方法及*** | |
CN103577338B (zh) | 一种回收垃圾数据的方法及存储设备 | |
CN103678150B (zh) | 固态硬盘使用方法及装置 | |
CN101656106B (zh) | 一种向eeprom写入数据的方法及装置 | |
US20180210674A1 (en) | Heterogeneous memory die stacking for energy efficient computing | |
CN105469829A (zh) | 存储设备健康诊断 | |
CN106058857A (zh) | 计及负荷转移与切负荷的主动配电网可靠性评估方法 | |
CN109671458A (zh) | 管理闪存模块的方法及相关的闪存控制器 | |
CN102004706A (zh) | 一种基于ftl的闪存擦写掉电保护方法 | |
CN106155943B (zh) | 一种双控存储设备的掉电保护的方法及装置 | |
CN104731515B (zh) | 控制存储设备机群磨损均衡的方法及设备 | |
CN104600792A (zh) | 一种储能电池管理***的地址分配方法 | |
CN102306503A (zh) | 一种假容量存储器的检测方法及*** | |
WO2014004035A2 (en) | Charging a battery | |
Chi et al. | Using multi-level cell STT-RAM for fast and energy-efficient local checkpointing | |
CN106201700A (zh) | 一种虚拟机在线迁移的调度方法 | |
US9082472B2 (en) | Back-up power management for efficient battery usage | |
CN105988735B (zh) | 数据写入控制装置及方法 | |
CN105205015B (zh) | 一种数据存储方法及存储设备 | |
CN104866438B (zh) | 存储装置、存储装置控制方法和电子设备 | |
CN104111382B (zh) | 一种电容的容值检测方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |