CN109375869A - 实现数据可靠读写的方法以及***、存储介质 - Google Patents
实现数据可靠读写的方法以及***、存储介质 Download PDFInfo
- Publication number
- CN109375869A CN109375869A CN201811082866.6A CN201811082866A CN109375869A CN 109375869 A CN109375869 A CN 109375869A CN 201811082866 A CN201811082866 A CN 201811082866A CN 109375869 A CN109375869 A CN 109375869A
- Authority
- CN
- China
- Prior art keywords
- data
- write
- storage
- temperature
- error rate
- 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.)
- Pending
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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3058—Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
-
- 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/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Human Computer Interaction (AREA)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明提供实现数据可靠读写的方法以及***、存储介质,涉及数据存储装置以及方法,属于数据存储的方法领域方法包括以下步骤:在存储芯片写入数据时,记录写入温度T1;写入完成后,实时监测存储芯片所处的环境温度T2;判断环境温度T2与写入温度T1之间的差值是否超过阈值t,如果超过进入下一步;当差值超过阈值t时,对存储的数据进行检验并得到数据的误码率;判断数据的误码率是否达到误码率阈值,如果达到误码率阈值则进行数据恢复。对应的还提供对应的***和存储介质。
Description
技术领域
本发明涉及数据存储装置以及方法,属于数据存储的方法领域。
背景技术
随着闪存的更新换代,闪存中存储的数据对温度的变化越来越敏感,譬如,高温下写入的数据,在低温下读取出错的机率会大幅度增加,反之也是。
然而,越来越多的闪存比如SSD固态硬盘或是存储阵列在工业场合被使用,而这些场合的环境温度的变化是十分宽泛的:从-40℃-+85℃,这这种大温差环境下工作环境下,闪存中写入的数据会随着外界环境温度的变化发生变化,即存储芯片中的0、1数码状态发生改变,当改变到一定程度后,会导致存储的数据、文件发生损坏或是丢失。
现有技术中尚没有较好的解决方案,业界通常的方法是建立备份,即在特定的恒温环境中建立服务器或是存储中心来备份保存关键的数据,显然该种方案并不适合所有的用户,特别是不适合个人消费用户以及中小企业使用。
发明内容
本发明是为了解决上述宽温差条件下,现有技术不能较好的实现数据可靠读写的问题而进行的,目的在于提供一种实现数据可靠读写的方法以及***,该方法应用在使用闪存的存储装置上解决了宽温差下数据可靠读写的问题。
本发明提供一种实现数据可靠性读写的方法,其特征在于,包括以下步骤:
在存储芯片写入数据时,记录写入完成时的写入温度T1;
时监测存储芯片所处的环境温度T2;
判断环境温度T2与写入温度T1之间的差值是否超过阈值t;
当差值超过阈值t时,对存储的数据进行检验并得到数据的误码率;
判断数据的误码率是否达到误码率阈值,如果达到误码率阈值则进行数据恢复。
本发明提供的实现数据可靠性读写的方法,还可以具有这样的特征,其中,记录写入温度T1的过程包括:
其中,记录写入温度T1的过程包括:
将存储芯片划分为多个存储区域,所述存储区域包含多个存储单位;
当存储区域被写满时,记录该时刻对应的温度T1,并被作为元数据写入存储到存储芯片的特定区域,得到每个存储单位对应的写入温度T1。
本发明提供的实现数据可靠性读写的方法,还可以具有这样的特征,其中,所述存储单位为存储块或存储页。
本发明提供的实现数据可靠性读写的方法,还可以具有这样的特征,其中,步骤二中实时监测环境温度T2的采样频率为每1-30秒一次。
本发明提供的实现数据可靠性读写的方法,还可以具有这样的特征,其中,对存储的数据进行检验的过程包括:
比较所有的存储单位对应的环境温度T2与写入温度T1之间的差值并根据数值大小进行排列,优先对差值数据大的存储单位进行数据扫描。
本发明提供的实现数据可靠性读写的方法,还可以具有这样的特征,其中,对存储的数据进行检验的过程包括:
当没有数据写入时,对整个存储芯片的所有存储单位的数据进行扫描。
本发明提供的实现数据可靠性读写的方法,还可以具有这样的特征,其中,当数据误码率达到阈值,但未超过存储芯片自身的硬件ECC纠错能力时,启动硬件ECC纠错,将完整恢复的数据再回写到新的存储单元,同时记录下写入时的写入温度T1;
当数据误码率超过存储芯片自身的硬件ECC纠错能力,启动额外的数据恢复机制来恢复数据。
本发明提供的实现数据可靠性读写的方法,还可以具有这样的特征,其中,设定存储芯片自身的硬件ECC纠错能力为70-85%的误码率。
本发明提供的实现数据可靠性读写的方法,还可以具有这样的特征,其中,所述额外的数据恢复机制包括RAID数据恢复。
本发明还提供一种实现数据可靠性读写的***,其特征在于,包括:
写入温度记录模块,用于在存储芯片写入数据时,记录写入温度T1;
环境温度检测模块,用于在写入完成后,实时监测存储芯片所处的环境温度T2;
判断模块,用于判断环境温度T2与写入温度T1之间的差值是否超过阈值t;
检验模块,用于在差值超过阈值t时,对存储的数据进行检验并得到数据的误码率;
数据恢复模块,判断数据的误码率是否达到误码率阈值,如果达到误码率阈值则进行数据恢复。
本发明还提供一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述的实现数据可靠性读写的方法。
本发明的作用和效果在于:根据本发明所涉及的实现数据可靠性读写的方法,因为在存储芯片写入数据时,记录写入温度T1;而在写入完成后,实时监测存储芯片所处的环境温度T2;在采集到环境温度后,判断环境温度T2与写入温度T1之间的差值是否超过阈值t,如果超过说明该环境下保存的数据可能会发生较大的改变,需要进行检验;当差值超过阈值t时,对存储的数据进行检验并得到数据的误码率;根据数据的误码率的不同情形,及时的采用不同的修复方式进行数据恢复,所以,本发明提供的方法运行在存储装置中能够及时的获取写入数据后的存储芯片所处的温度,并实时与写入时的温度进行比较,当写入温度和环境温度超过设定的阈值时,就说明写入后存储的数据可能发生了丢失,并进一步进行检验来获知具体的数据误码率,根据数据的误码率大小来选择不同的修复方式进行数据修复。
附图说明
图1是本发明的实施例中实现数据可靠读写的方法的步骤示意图;
图2为记录写入温度的过程示意图;以及
图3为本发明的实施例中的提供的实现数据可靠性读写的***的模块框图。
具体实施方式
为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,以下实施例结合附图对本发明实现数据可靠读写的方法、以及实现数据可靠读写的***、存储介质作具体阐述。
实施例1
图1是本发明的实施例中实现数据可靠读写的方法的步骤示意图。
如图1所示,本实施例提供的实现数据可靠性读写的方法,包括以下步骤:
步骤S1,在存储芯片写入数据时,记录写入完成时的写入温度T1。
在本实施例中,所述存储芯片为NAND闪存芯片,具体为SLC、MLC、TLC或QLC闪存颗粒制作的NAND闪存芯片。在理论上,也可以使其他类型的存储芯片,比如NOR闪存、ROM、PROM、EPROM、EEPROM、Flash ROM、FRAM、MRAM、RRAM、PCRAM等,都是可以作为本发明的存储芯片的。
SLC,Single-LevelCell,即1bit/cell,速度快寿命长,价格超贵(约MLC3倍以上的价格),约10万次擦写寿命。
MLC,Multi-LevelCell,即2bit/cell,速度一般寿命一般,价格一般,约3000---10000次擦写寿命。
TLC,Trinary-LevelCell,即3bit/cell,也有Flash厂家叫8LC,速度相对慢寿命相对短,价格便宜,约500次擦写寿命。
QLC,Quad-Level Cell,即4bit/cell,支持16充电值,速度最慢寿命最短。
这三种结构的NAND闪存芯片,简单地说SLC的性能最优,价格超高。一般用作企业级或高端发烧友。MLC性能够用,价格适中为消费级SSD应用主流,TLC综合性能最低,价格最便宜。但可以通过高性能主控、主控算法来弥补、提高TLC闪存的性能。
图2为记录写入温度的过程示意图。
具体的,记录写入温度T1的过程包括:
步骤S1-1,将存储芯片划分为多个存储区域,所述区域包含多个存储单位。
其中,所述存储单位为存储块(block)或存储页(page),一般而言,一个基本的存储单位的容量为16k字节,这个具体的数据根据存储颗粒的生产厂家不同而有不同。
步骤S1-2,当存储区域被写满时,记录该时刻对应的温度T1,并被作为元数据写入存储到存储芯片的特定区域,得到每个存储单位对应的写入温度T1。特定区域是预留的专门用来存储这些数据的区域。
在写入数据时,都通过存储装置(包括控制芯片和存储芯片)所具有的控制芯片进行了ECC保护。
ECC是“Error Correcting Code”的简写,中文名称是“错误检查和纠正”。ECC是一种能够实现“错误检查和纠正”的技术,ECC保护就是应用了这种技术对存储的数据进行保护的操作,一般在存储数据时,通过控制芯片将对应的ECC代码写入并存储到存储芯片中,这将使存储在存储芯片中的数据可以进行硬件恢复。ECC也可以解释为error correctionor correcting code、error checking and correcting、error checking andcorrecting,还可以解释为Error correction circuit,其是一种成熟应用在数据存储设备上的的数据保护和恢复机制。
步骤S2,写入完成后,实时监测存储芯片所处的环境温度T2。
因为数据的写入可能是连续的,也可能是断断续续的,而实际中写入过程和读出过程以及等待过程是相互交错的,所以这里的写入完成是对某个存储单位而言,也可以是针对某个人为划分的存储区域。
实时监测环境温度T2的采样频率为每1-30秒一次,这个频率是根据该存储芯片所处的工作环境以及读写的频率而定的,如果工作环境的温度变化比较大,并且存储芯片读写比较频繁,就意味着该种情况下,存储芯片的温度变化会比较剧烈,对应的环境温度的采样频率就会比较高。
步骤S3,判断环境温度T2与写入温度T1之间的差值是否超过阈值t,如果超过进入下一步S4。
具体的对于每一个存储单位而言,需要实时的计算实时的环境温度T2与自身的存储单位写入数据的写入温度T1的温度差值,并判断该差值是否查过设定的阈值t。
显然,根据背景技术中介绍的存储芯片中写入的数据对温度的敏感情况,写入温度和环境温度的差值如果达到某个值,也就是这个阈值t,那么数据丢失的风险就会很大,而这个阈值t显然和存储芯片的类型、生产的工艺以及生产厂家都会有关系。
对于使用环境而言,也会影响到这个阈值t的设定值。显然,由于数据的重要程度差异,对于特别重要的宝贵数据,我们设定的差值的阈值t就比较小,这样微小的温度变动都能触发后续步骤S4的检验操作,从而能更好的保护这些宝贵数据的完整性。
另一方面,由于存储芯片类型,比如SLC类型的NAND闪存颗粒就比MLC类型的NAND闪存颗粒稳定,可靠,其对温度变动就具有更强的抵抗能力,即使温度变化,其数据的稳定性也比MLC,TLC高一些,这样使用SLC类型闪存颗粒的存储芯片的差值的阈值t就可以在相同的情况下设定的更大一些。
同样的道理,不同的生产的工艺以及生产厂家也会导致存储芯片的温度差值的阈值t不同。申请人建议使用的阈值范围是20-80℃。
步骤S4,当差值超过阈值t时,对存储的数据进行检验并得到数据的误码率。
对存储的数据进行检验的过程有两种操作模式:
模式一包括以下操作:
比较所有的存储单位对应的环境温度T2与写入温度T1之间的差值并根据数值大小进行排列,优先对差值数据大的存储单位进行数据扫描读取,扫描读取后得出某个存储单位所存储数据的误码率。
显然这中操作是适合于存储芯片比较忙,即正在进行数据的读或者写操作的时候,由于这种情况下,无法进行全盘扫描读取。此种状况下,本实施例依照差值大小进行排序,优先处理差值大的存储单位来进行检验,这样相当于在战场中对伤患进行分级,优先处理救治重伤员,本实施例如此操作可以在存储芯片繁忙时,达到最优的数据检验和恢复效果。
模式二包括以下操作:
当没有数据写入时,对整个存储芯片的所有存储单位的数据进行扫描。
显然,当整个存储芯片没有进行读写操作时,就可以直接开启全盘扫描读写来得到每个存储单位的数据的误码率了。
步骤S5,判断数据的误码率是否达到误码率阈值,如果达到误码率阈值则进行数据恢复。
根据某个存储单位所存储的数据的误码率与阈值、存储芯片的硬件ECC纠错能力所能达到的误码率的大小关系进行对应的处理:
硬件ECC保护机制在数据纠错过程中可以汇报每单元数据(一般是512byte-4KB之间)所能纠正的数据的比特(Bit)数量,再根据硬件ECC的纠错能力,设置一个相对的百分比阈值,即误码率的最高值,作为存储芯片的硬件ECC纠错能力所能达到的误码率,这个误码率称为硬件ECC的纠错能力。本实施例会根据存储设备的生命周期,闪存特性,将硬件ECC的纠错能力设定在误码率在70-85%内。
当数据误码率未达到阈值时,说明数据是可靠的,并没有发生丢失情况,无需进行处理。这个阈值成为数据可靠阈值,一般是由存储装置的控制芯片来决定,数值从10-5到10-9不等。
当数据误码率达到阈值,但未超过存储芯片自身的硬件ECC纠错能力时,启动硬件ECC纠错,将完整恢复的数据再回写到新的存储单位中,同时再次记录下写入时的写入温度T1。
当数据误码率超过存储芯片自身的硬件ECC纠错能力时,启动额外的数据恢复机制来恢复数据。其中,所述额外的数据恢复机制包括RAID数据恢复、re-try,soft-retry数据恢复等。
RAID的全称是Redundant Array of Inexpensive Disk,中文翻译为廉价冗余磁盘阵列的简称简称RAID技术。它是1988年由美国加州大学Berkeley分校的DavidPatterson教授等人提出来的磁盘冗余技术。从那时起,磁盘阵列技术发展得很快,并逐步走向成熟。
目前人们逐渐认识了磁盘阵列技术。磁盘阵列技术可以详细地划分为若干个级别0-5RAID技术,并且又发展了所谓的RAID Level 10,30,50的新的级别。用RAID的好处简单的说就是:安全性高,速度快,数据容量超大。某些级别的RAID技术可以把速度提高到单个硬盘驱动器的400%。磁盘阵列把多个硬盘驱动器连接在一起协同工作,大大提高了速度,同时把硬盘***的可靠性提高到接近无错的境界。这些“容错”***速度极快,同时可靠性极高。
RAID恢复方法是使用多个die(磁盘片或是存储单位)奇偶校验,可以挽救整个Die(磁盘片或是存储单位)的报废或是数据丢失,从而对数据进行恢复。
re-try,即read retry,MLC或TLC、SLC的几个数据点电压分布有可能会平移,只要几个分布没有叠加就可以恢复。ReadRetry尝试用不同的参考电压来读取数据,直到读出来。
soft-retry,即用软信息读。从不同的参考电压读到几组数据后综合得到最终数据。这个需要更强大的ECC纠错能力,如LDPC(LowDensity Parity Check Code的英文缩写,中文意思是低密度奇偶校验码,最早在20世纪60年代由Gallager在他的博士论文中提出。)
如数据无法通过任何机制恢复,将对应的数据标注为损坏,如读到此存储单位的数据,将返回错误状态,显示该区域数据不可读。
实施例2
图3为本发明的实施例中的提供的实现数据可靠性读写的***的模块框图。
本实施例提供一种实现数据可靠性读写的***包括写入温度记录模块101、环境温度检测模块102、判断模块103、检验模块104、数据恢复模块105。
写入温度记录模块101,用于在存储芯片写入数据时,记录写入完成时的写入温度T1。
环境温度检测模块102,用于实时监测存储芯片所处的环境温度T2。
判断模块103,用于判断环境温度T2与写入温度T1之间的差值是否超过阈值t。
检验模块104,用于在差值超过阈值t时,对存储的数据进行检验并得到数据的误码率。
数据恢复模块105,判断数据的误码率是否达到误码率阈值,如果达到误码率阈值则进行数据恢复。
具体的,作为一种优化:
优选的,记录写入温度T1的过程包括:
将存储芯片划分为多个存储区域,所述存储区域包含多个存储单位;
当存储区域被写满时,记录该时刻对应的温度T1,并被作为元数据写入存储到存储芯片的特定区域,得到每个存储单位对应的写入温度T1。
优选的,对存储的数据进行检验的过程包括:
比较所有的存储单位对应的环境温度T2与写入温度T1之间的差值并根据数值大小进行排列,优先对差值数据大的存储单位进行数据扫描;或者
对存储的数据进行检验的过程包括:
当没有数据写入时,对整个存储芯片的所有存储单位的数据进行扫描。
优选的,当数据误码率达到阈值,但未超过存储芯片自身的硬件ECC纠错能力时,启动硬件ECC纠错,将完整恢复的数据再回写到新的存储单位中,同时记录下写入时的写入温度T1。
优选的,当数据误码率超过存储芯片自身的硬件ECC纠错能力,启动额外的数据恢复机制来恢复数据。
优选的,设定存储芯片自身的硬件ECC纠错能力为70-85%的误码率。
优选的,所述额外的数据恢复机制包括RAID数据恢复。
实施例3
本实施例提供一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下的实现数据可靠性读写的方法:
步骤S1,在存储芯片写入数据时,记录写入完成时的写入温度T1。
具体的,步骤S1还包括:
步骤S1-1,将存储芯片划分为多个存储区域,所述区域包含多个存储单位。
步骤S1-2,当存储区域被写满时,记录该时刻对应的温度T1,并被作为元数据写入存储到存储芯片的特定区域,得到每个存储单位对应的写入温度T1。
步骤S2,写入完成后,实时监测存储芯片所处的环境温度T2。
步骤S3,判断环境温度T2与写入温度T1之间的差值是否超过阈值t,如果超过进入下一步S4。
步骤S4,当差值超过阈值t时,对存储的数据进行检验并得到数据的误码率。
步骤S5,判断数据的误码率是否达到误码率阈值,如果达到误码率阈值则进行数据恢复。
显然该存储介质可以是光盘、优盘或者磁盘、软盘、光盘、DVD、硬盘、闪存、CF卡、SD卡、MMC卡、SM卡、记忆棒(Memory Stick)、xD卡、磁带、磁光盘等,将对应上述方法的计算机程序存储或是刻录在该存储介质上,用户获得该存储介质后进行安装或运行即可以在对应的存储装置上执行本发明的实施例1的方法。
本实施例的作用与效果在于:根据本实施例所涉及的实现数据可靠性读写的方法,因为在存储芯片写入数据时,记录写入温度T1;而在写入完成后,实时监测存储芯片所处的环境温度T2;在采集到环境温度后,判断环境温度T2与写入温度T1之间的差值是否超过阈值t,如果超过说明该环境下保存的数据可能会发生较大的改变,需要进行检验;当差值超过阈值t时,对存储的数据进行检验并得到数据的误码率;根据数据的误码率的不同情形,及时的采用不同的修复方式进行数据恢复,所以,本发明提供的方法运行在存储装置中能够及时的获取写入数据后的存储芯片所处的温度,并实时与写入时的温度进行比较,当写入温度和环境温度超过设定的阈值时,就说明写入后存储的数据可能发生了丢失,并进一步进行检验来获知具体的数据误码率,根据数据的误码率大小来选择不同的修复方式进行数据修复。
进一步,因为记录写入温度T1的过程是先将存储芯片划分为多个存储区域,所述区域包含多个存储单位;然后随着数据被写入到存储单位中,当存储单位被写满时,就记录该时刻对应的温度T1,并被作为元数据写入存储,得到每个存储单位对应的写入温度T1,所以每个最基本的存储单位都会对应有一个写入温度并作为元数据,如此就可以对每个基本的存储单位进行监控检验并在出现数据丢失时进行恢复。
更进一步,对存储的数据进行检验的过程有两种操作模式:
模式一包括以下操作:
比较所有的存储单位对应的环境温度T2与写入温度T1之间的差值并根据数值大小进行排列,优先对差值数据大的存储单位进行数据扫描读取,扫描读取后得出某个存储单位所存储数据的误码率。
显然这种操作是适合于存储芯片比较忙,即正在进行数据的读或者写操作的时候,由于这种情况下,无法进行全盘扫描读取。此种状况下,本实施例依照差值大小进行排序,优先处理差值大的存储单位来进行检验,这样相当于在战场中对伤患进行分级,优先处理救治重伤员,本实施例如此操作可以在存储芯片繁忙时,达到最优的数据检验和恢复效果。
更进一步,本实施例对于不同的数据的误码率的不同,根据某个存储单位所存储的数据的误码率与阈值、存储芯片的硬件ECC纠错能力所能达到的误码率的大小关系进行对应的处理:
当数据误码率未达到阈值时,说明数据是可靠的,并没有发生丢失情况,无需进行处理;
当数据误码率达到阈值,但未超过存储芯片自身的硬件ECC纠错能力时,启动硬件ECC纠错,将完整恢复的数据再回写到新的存储单位中,同时再次记录下写入时的写入温度T1;
当数据误码率超过存储芯片自身的硬件ECC纠错能力时,启动额外的数据恢复机制来恢复数据。其中,所述额外的数据恢复机制包括RAID数据恢复、re-try,soft-retry数据恢复等;
如数据无法通过任何机制恢复,将对应的数据标注为损坏,如读到此存储单位的数据,将返回错误状态,显示该区域数据不可读。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
上述实施方式为本发明的优选案例,并不用来限制本发明的保护范围。
Claims (10)
1.一种实现数据可靠性读写的方法,其特征在于,包括以下步骤:
在存储芯片写入数据时,记录写入完成时的写入温度T1;
实时监测存储芯片所处的环境温度T2;
判断环境温度T2与写入温度T1之间的差值是否超过阈值t;
当差值超过阈值t时,对存储的数据进行检验并得到数据的误码率;
判断数据的误码率是否达到误码率阈值,如果达到误码率阈值则进行数据恢复。
2.根据权利要求1所述的实现数据可靠性读写的方法,其特征在于:
其中,记录写入温度T1的过程包括:
将存储芯片划分为多个存储区域,所述存储区域包含多个存储单位;
当存储区域被写满时,记录该时刻对应的温度T1,并被作为元数据写入存储到存储芯片的特定区域,得到每个存储单位对应的写入温度T1。
3.根据权利要求1所述的实现数据可靠性读写的方法,其特征在于:
其中,所述存储单位为存储块或存储页。
4.根据权利要求1所述的实现数据可靠性读写的方法,其特征在于:
其中,对存储的数据进行检验的过程包括:
比较所有的存储单位对应的环境温度T2与写入温度T1之间的差值并根据数值大小进行排列,优先对差值数据大的存储单位进行数据扫描。
5.根据权利要求1所述的实现数据可靠性读写的方法,其特征在于:
其中,对存储的数据进行检验的过程包括:
当没有数据写入时,对整个存储芯片的所有存储单位的数据进行扫描。
6.根据权利要求1所述的实现数据可靠性读写的方法,其特征在于:
其中,
当数据误码率达到阈值,但未超过存储芯片自身的硬件ECC纠错能力时,启动硬件ECC纠错,将完整恢复的数据再回写到新的存储单位中,同时记录下写入时的写入温度T1;
当数据误码率超过存储芯片自身的硬件ECC纠错能力,启动额外的数据恢复机制来恢复数据。
7.根据权利要求6所述的实现数据可靠性读写的方法,其特征在于:
其中,设定存储芯片自身的硬件ECC纠错能力为70-85%的误码率。
8.根据权利要求6所述的实现数据可靠性读写的方法,其特征在于:
其中,所述额外的数据恢复机制包括RAID数据恢复。
9.实现数据可靠性读写的***,其特征在于,包括:
写入温度记录模块,用于在存储芯片写入数据时,记录写入温度T1;
环境温度检测模块,用于在写入完成后,实时监测存储芯片所处的环境温度T2;
判断模块,用于判断环境温度T2与写入温度T1之间的差值是否超过阈值t;
检验模块,用于在差值超过阈值t时,对存储的数据进行检验并得到数据的误码率;
数据恢复模块,判断数据的误码率是否达到误码率阈值,如果达到误码率阈值则进行数据恢复。
10.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811082866.6A CN109375869A (zh) | 2018-09-17 | 2018-09-17 | 实现数据可靠读写的方法以及***、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811082866.6A CN109375869A (zh) | 2018-09-17 | 2018-09-17 | 实现数据可靠读写的方法以及***、存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109375869A true CN109375869A (zh) | 2019-02-22 |
Family
ID=65405447
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811082866.6A Pending CN109375869A (zh) | 2018-09-17 | 2018-09-17 | 实现数据可靠读写的方法以及***、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109375869A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110010163A (zh) * | 2019-04-16 | 2019-07-12 | 苏州浪潮智能科技有限公司 | 一种磁盘数据保持能力测试方法及相关装置 |
CN112035060A (zh) * | 2020-08-17 | 2020-12-04 | 合肥康芯威存储技术有限公司 | 一种存储介质的错误检测方法、***及存储*** |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101901169A (zh) * | 2010-03-23 | 2010-12-01 | 成都市华为赛门铁克科技有限公司 | 扫描装置及方法 |
CN102708019A (zh) * | 2012-04-28 | 2012-10-03 | 华为技术有限公司 | 一种硬盘数据恢复方法、装置及*** |
CN104346232A (zh) * | 2013-08-06 | 2015-02-11 | 慧荣科技股份有限公司 | 数据储存装置及其限制存取方法 |
CN104731522A (zh) * | 2013-12-20 | 2015-06-24 | 慧荣科技股份有限公司 | 数据储存装置及其数据维护方法 |
CN107818025A (zh) * | 2017-10-31 | 2018-03-20 | 郑州云海信息技术有限公司 | 硬盘冷数据校验方法、装置、设备及计算机可读存储介质 |
US9971530B1 (en) * | 2016-11-09 | 2018-05-15 | Sandisk Technologies Llc | Storage system and method for temperature throttling for block reading |
CN108052414A (zh) * | 2017-12-28 | 2018-05-18 | 湖南国科微电子股份有限公司 | 一种提升ssd工作温度范围的方法及*** |
CN108228371A (zh) * | 2016-12-15 | 2018-06-29 | 发那科株式会社 | 机器学习装置和方法、寿命预测装置、数值控制装置 |
-
2018
- 2018-09-17 CN CN201811082866.6A patent/CN109375869A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101901169A (zh) * | 2010-03-23 | 2010-12-01 | 成都市华为赛门铁克科技有限公司 | 扫描装置及方法 |
CN102708019A (zh) * | 2012-04-28 | 2012-10-03 | 华为技术有限公司 | 一种硬盘数据恢复方法、装置及*** |
CN104346232A (zh) * | 2013-08-06 | 2015-02-11 | 慧荣科技股份有限公司 | 数据储存装置及其限制存取方法 |
CN104731522A (zh) * | 2013-12-20 | 2015-06-24 | 慧荣科技股份有限公司 | 数据储存装置及其数据维护方法 |
US9971530B1 (en) * | 2016-11-09 | 2018-05-15 | Sandisk Technologies Llc | Storage system and method for temperature throttling for block reading |
CN108228371A (zh) * | 2016-12-15 | 2018-06-29 | 发那科株式会社 | 机器学习装置和方法、寿命预测装置、数值控制装置 |
CN107818025A (zh) * | 2017-10-31 | 2018-03-20 | 郑州云海信息技术有限公司 | 硬盘冷数据校验方法、装置、设备及计算机可读存储介质 |
CN108052414A (zh) * | 2017-12-28 | 2018-05-18 | 湖南国科微电子股份有限公司 | 一种提升ssd工作温度范围的方法及*** |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110010163A (zh) * | 2019-04-16 | 2019-07-12 | 苏州浪潮智能科技有限公司 | 一种磁盘数据保持能力测试方法及相关装置 |
CN112035060A (zh) * | 2020-08-17 | 2020-12-04 | 合肥康芯威存储技术有限公司 | 一种存储介质的错误检测方法、***及存储*** |
CN112035060B (zh) * | 2020-08-17 | 2024-04-26 | 合肥康芯威存储技术有限公司 | 一种存储介质的错误检测方法、***及存储*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101608679B1 (ko) | 톤 라이트 완화 | |
US10248515B2 (en) | Identifying a failing group of memory cells in a multi-plane storage operation | |
JP2011521397A5 (zh) | ||
US11430540B2 (en) | Defective memory unit screening in a memory system | |
CN111124758A (zh) | 一种故障硬盘的数据恢复方法 | |
CN102708019A (zh) | 一种硬盘数据恢复方法、装置及*** | |
TW201044409A (en) | Data recovery in a solid state storage system | |
CN107799150A (zh) | 3d nand闪存的错误缓解 | |
CN103019894B (zh) | 一种独立冗余磁盘阵列的重建方法 | |
CN109445982A (zh) | 实现数据可靠读写的数据存储装置 | |
US20130166991A1 (en) | Non-Volatile Semiconductor Memory Device Using Mats with Error Detection and Correction and Methods of Managing the Same | |
CN107885620B (zh) | 一种提高固态盘阵列性能和可靠性的方法及*** | |
CN102929740A (zh) | 检测存储设备坏块的方法和装置 | |
US20060215456A1 (en) | Disk array data protective system and method | |
CN109375869A (zh) | 实现数据可靠读写的方法以及***、存储介质 | |
CN103176859A (zh) | 一种flash数据备份/恢复方法、设备及信号源 | |
CN110444243A (zh) | 存储设备读错误纠错能力的测试方法、***及存储介质 | |
CN109284201A (zh) | 温度均衡数据恢复方法以及***、存储介质 | |
US9257201B2 (en) | Memory testing method and apparatus | |
CN109358984A (zh) | 利用温度均衡数据恢复方法进行数据恢复的存储装置 | |
CN109460316A (zh) | 基于温差均衡的数据恢复方法以及***、存储介质 | |
CN113190179B (zh) | 提升机械硬盘使用寿命的方法、存储设备及*** | |
CN110299181A (zh) | 非易失性存储器装置、其操作方法及数据存储装置 | |
CN109358979A (zh) | 温差均衡方法在数据纠错中的应用、***及存储介质 | |
CN109407972A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190222 |