CN112068772B - 数据存储方法、数据存储装置及存储装置 - Google Patents

数据存储方法、数据存储装置及存储装置 Download PDF

Info

Publication number
CN112068772B
CN112068772B CN202010839547.6A CN202010839547A CN112068772B CN 112068772 B CN112068772 B CN 112068772B CN 202010839547 A CN202010839547 A CN 202010839547A CN 112068772 B CN112068772 B CN 112068772B
Authority
CN
China
Prior art keywords
storage
data
block
page
memory
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
CN202010839547.6A
Other languages
English (en)
Other versions
CN112068772A (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.)
Zhejiang Huayi Core Technology Co ltd
Original Assignee
Zhejiang Huayi Core Technology 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 Zhejiang Huayi Core Technology Co ltd filed Critical Zhejiang Huayi Core Technology Co ltd
Priority to CN202010839547.6A priority Critical patent/CN112068772B/zh
Publication of CN112068772A publication Critical patent/CN112068772A/zh
Application granted granted Critical
Publication of CN112068772B publication Critical patent/CN112068772B/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/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
    • 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/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

本申请公开了一种数据存储方法、数据存储装置及存储装置,该方法包括:接收数据写入命令,将数据写入存储页中;获取将数据写入存储页的写入时间;基于存储页的写入时间,判断存储页所在的存储块的使用状态;记录并更新存储页所在的存储块的使用状态,其中,使用状态记录为危险的存储块在后续使用时被降级,降级为降低每个存储单元的存储量。通过上述方式,本申请能够提高存储设备的使用寿命,以及提高存储数据的可靠性。

Description

数据存储方法、数据存储装置及存储装置
技术领域
本申请涉及数据存储技术领域,特别是涉及一种数据存储方法、数据存储装置及存储装置。
背景技术
随着互联网、云计算、物联网等计算机技术的快速发展及广泛应用,使得数据呈现爆炸式增长,用户对数据的存储要求也越来越高,对于更高速便捷的存储产品的需求也越来越大。例如固态存储设备越来越多的被应用于各种存储,其中,非易失固态存储具有高性能,低功耗,体积小,容量大,更好的稳定性和可靠性的优点,因而被广泛应用,然而,由于存储设备磨损、使用寿命消耗等原因,导致存储设备的性能和可靠性的降低。
发明内容
本申请提供一种数据存储方法、数据存储装置及存储装置,能够提高存储设备的使用寿命,以及提高存储数据的可靠性。
为解决上述技术问题,本申请采用的一个技术方案是:提供一种数据存储方法。该方法包括:接收数据写入命令,将数据写入存储页中;获取将数据写入存储页的写入时间;基于存储页的写入时间,判断存储页所在的存储块的使用状态;记录并更新存储页所在的存储块的使用状态,其中,使用状态记录为危险的存储块在后续使用时被降级,降级为降低每个存储单元的存储量。
为解决上述技术问题,本申请采用的另一个技术方案是:提供一种数据存储方法。该方法包括:接收读取命令,从存储页中读取数据;判断存储页所在的存储块是否为使用状态为危险的存储块;若判断为使用状态为危险的存储块,则采用多个预设电压阈值读取危险的存储块的数据。
为解决上述技术问题,本申请采用的另一个技术方案是:提供一种数据存储方法。该方法包括:接收读写命令,并解析读写命令;若为写入命令,则将数据写入存储页中,获取将数据写入存储页的写入时间,基于存储页的写入时间,判断存储页所在的存储块的使用状态,记录并更新存储页所在的存储块的使用状态,其中,使用状态记录为危险的存储块在后续使用时被降级,降级为降低每个存储单元的存储量;若为读取命令,则从存储页中读取数据,判断存储页中所在的存储块是否为使用状态为危险的存储块,若判断为使用状态为危险的存储块,则采用多个预设电压阈值读取危险的存储块的数据。
为解决上述技术问题,本申请采用的另一个技术方案是:提供一种数据存储装置。该装置包括:处理器和存储器,存储器用于存储计算机程序,计算机程序被处理器执行以实现上述数据存储方法。
为解决上述技术问题,本申请采用的另一个技术方案是:提供一种计算机可读存储介质。该存储装置包括处理器、存储器和闪存介质,存储器用于存储计算机程序,计算机程序被处理器执行以对存储介质实现上述数据存储方法。
本申请的有益效果是:通过基于存储页的写入时间,判断存储页所在的存储块的使用状态,考虑存储设备在不同寿命周期内表现出来的特性对写入速度的影响,以基于写入时间来判断存储设备的使用寿命,当存储设备处于使用寿命后期时,无法保证写入数据能否被正确读取,此时基于写入时间将其存储块判断危险的存储块,使得后续再次使用时该危险的存储块被降级使用,以降低每个存储单元的存储量,提高存储设备的使用寿命,以及数据存储的可靠性。同时,可解决存储设备随着PE次数的增加而出现写入数据变长而出现读写错误的问题。另外,可以动态检测存储设备的磨损状态并及时处理,提高存储设备的可靠性和使用寿命。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请提供的数据存储方法第一实施例的流程示意图;
图2A是本申请提供的存储块降级前的电压曲线分布的示例示意图;
图2B是本申请提供的存储块降级后的电压曲线分布的示例示意图;
图3是本申请提供的图1中步骤S110一实施例的流程示意图;
图4是本申请提供的图1中步骤S130第一实施例的流程示意图;
图5是本申请提供的图1中步骤S130第二实施例的流程示意图;
图6是本申请提供的数据存储方法第二实施例的流程示意图;
图7是本申请提供的数据存储方法第三实施例的流程示意图;
图8是本申请提供的数据存储方法第四实施例的流程示意图;
图9是本申请提供的数据存储方法第五实施例的流程示意图;
图10是本申请提供的数据存储装置第一实施例的结构示意图;
图11是本申请提供的数据存储装置第二实施例的结构示意图;
图12是本申请提供的数据存储装置第三实施例的结构示意图;
图13是本申请提供的数据存储装置第四实施例的结构示意图;
图14是本申请提供的存储装置的结构示意图;
图15是本申请提供的计算机可读存储介质的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请中的术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”、“第三”的特征可以明示或者隐含地包括至少一个该特征。本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。本申请实施例中所有方向性指示(诸如上、下、左、右、前、后……)仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,在不冲突的情况下,本文所描述的实施例可以与其它实施例相结合。
本申请提供以下实施例,下面对本申请各实施例进行说明。
请参阅图1,图1是本申请提供的数据存储方法第一实施例的流程示意图,该方法包括以下步骤:
S110:接收数据写入命令,将数据写入存储页中。
本申请该实施例中的写入方法可应用于在存储设备,如应用于在固态硬盘中存储数据,接收数据写入命名,将数据写入固态硬盘中。具体的,一个存储设备可由多个存储块(Block)组成,其存储块是擦除操作的最小单位,一个存储块可以由多个存储页(Page)组成,其存储页是读写操作的最小单位。接收数据写入命令后,进而将数据写入存储页中。
例如将数据写入NAND flash内存中,具体的,NAND flash内存是flash内存的一种,属于非易失性存储设备。存储设备的主要功能是存储程序和各种数据,并能在计算机运行过程中高速、自动地完成程序或数据的存取。NAND flash存储设备包括至少一个NANDflash单元,每个NAND flash单元包括至少一个存储块,每个存储块包括至少一个存储页。NAND flash存储设备容量较大,改写速度快,适用于大量数据的存储。NAND flash以存储页为单位对数据进行读写,以存储块为单位擦除数据。
S120:获取将数据写入存储页的写入时间。
不同存储页的写入时间随着擦除和写入操作次数的增加而增加,因此,不同存储页的写入时间也会有所不同。随着擦除和写入操作次数的增加,导致存储设备的氧化层变薄,会增加写入数据的误码率,同时,也会增加写入时间,降低写入速度,写入时间可表征将数据写入存储页的写入速度,以及存储页所在的存储块的磨损程度。
S130:基于存储页的写入时间,判断存储页所在的存储块的使用状态。
根据获取的存储页的写入时间,可以判断存储页所在存储块的使用状态。例如可将存储页的写入时间与该存储页的基准时间做比较,若写入时间过长,则可判断该存储页擦除和写入操作次数较多,该存储页所在的存储块的使用寿命已经到达后期,则可判断该存储块的使用状态为危险。若写入时间较短,则可判断该存储块的使用状态为健康。
S140:记录并更新存储页所在的存储块的使用状态,其中,使用状态记录为危险的存储块在后续使用时被降级,降级为降低每个存储单元的存储量。
可采用存储块状态表存储并记录存储块的使用状态,若判断存储块的使用状态为危险,记录并更新存储块状态表,在存储块状态表中,将该存储块的使用状态记录为危险,使得记录为危险的存储块在后续使用时被降级。其中,降级为降低每个存储单元的存储量。例如,在后续对该危险的存储块进行读写操作或擦除操作时,可以降低该存储块中存储单元的存储量,若存储块中每个存储单元存储4bit(比特)数据,被降级后,存储块中每个存储单元存储1bit数据,以减少每个存储单元的存储量。
本实施例中,通过在写入过程中获取写入存储页的写入时间,通过写入时间可以判断存储块的磨损程度,以判断存储块的使用状态,使得使用状态判断为危险的存储块在后续使用时被降级,以降低存储块中每个存储单元的存储量,因被降级后的写入速度快于被降级前的写入速度,保证写入速度,以增加数据存储的可靠性,增加存储设备的使用寿命。
以下对上述步骤S140具体进行说明。
在一些实施例中,在进行数据读写操作时,有多种模式进行读写,每种模式下,每个存储单元的存储量不同,其使用寿命、可擦写次数、价格也各不相同,另外,其读写速度,编程数据也各不同。例如,NAND Flash存储设备可以划分为多种读写模式,如SLC(Single-Level Cell,单层单元)模式下,每个存储单元存储1bit数据,可以表示2种数据,即1bit/cell,支持2充电值,读写速率块,可擦写次数高,使用寿命长,价格也较高。MLC(Multi-Level Cell,多层单元)模式下,每个存储单元存储2bit数据,可以表示4种数据,即2bit/cell,支持4充电值,尽管在存储单元中存储多个bit的数据似乎能够很好地利用空间,在相同空间内获得更大容量,但它的代价是使用寿命降低,可靠性降低。TLC(Triple-LevelCell,三层单元)模式下,每个存储单元中存储3bit数据,可以表示8种数据,即3bit/cell,支持8充电值,容量大,成本低,最适合于包含大量读取操作的应用程序。QLC(Quad-LevelCell,四层单元)模式下,每个存储单元中存储4bit数据,可以表示16种数据,即4bit/cell,支持16充电值,速度最慢寿命最短。
降级为降低每个存储单元的存储量,例如从QLC、TLC或MLC模式降为SLC模式,TLC模式降为MLC或SLC模式,MLC模式降为SLC模式等,可以根据具体的应用场景进行设置,本申请对此不做限制。
其中,存储块状态表记录每个存储块的状态,由固件的算法设计进行维护,在状态表中被标记为危险的存储块,在下次使用时该存储块被降级。状态表中,可以使用健康标志位对存储块的使用状态进行记录,在健康标志位中,可以用“0”表示该存储块的使用状态为健康,用“1”表示存储块的使用状态为危险。另外,还可以使用降级标志位对存储块的降级情况进行记录,降级标志位中,可以用“0”表示存储块在后续使用中无需被降级,用“1”表示存储块在后续再次使用时被降级使用。此外,还使用变量记录存储块状态表中存储的状态的数据次数,以便于确定下次写入数据的位置。
请参阅图2A和2B,以当前存储块使用的模式为QLC为例进行说明,若存储设备为闪存介质,使用QLC模式时,电压区间内的数据存储电压分布更加紧凑,使得各个存储页(Page)之间存在干扰,闪存介质的数据存储电压随着擦除和写入次数PE(Program/Erasecycle,擦写次数)的增加而发生偏移,使得增加存储数据错误率。如图2A所示,图中,现实际的存储电压值(实线)相对于原来基准的存储电压值(虚线)发生的偏移,且现实际的电压值也小于原基准的电压值,使得增加存储数据错误率。此时,将该存储块记录为危险的存储块在后续下次使用时被降级使用,例如原来QLC模式下存储块中每个存储单元的存储4bit数据,被降级后,由原来QLC模式转换成SLC模式,存储块中每个存储单元存储1bit数据,减少了每个存储单元的存储量。如图2B所示,降为SLC模式后可以拉大数据存储电压的间距减少各个存储页(Page)之间的干扰,增加数据的可靠性,并且SLC模式下的写入速度远快于其他模式,以保证写入速度,同时,因减小了存储块中存储单元的存储量,使得每个存储页可以存储较少的数据,可以增加存储设备的使用寿命。
此外,本申请的数据存储方法可适用于存储视频监控数据的固态硬盘,降级后虽然存储量有所降低,但是存储视频的固态硬盘一般容量配置上都会留有空余,并不会影响到视频数据的保存,从而可保证数据的可靠性和速度的稳定性。
在一些实施例中,上述步骤S110包括:将待写入存储页的数据存储在缓冲空间,若缓冲空间存储的待写入数据满足一个存储页的存储量,则将缓冲空间的数据写入存储块对应的存储页中。
可选的,将待写入存储页的数据写入缓冲空间中,判断写入缓冲空间的待写入数据是否满足一个存储页的存储量,也即是满足一个读写操作的最小单元,若满足一个存储页的存储量,则将缓存空间的待写入数据写入存储设备对应的存储页中,若不满足一个存储页的存储量,则不将缓存空间的待写入数据写入存储设备对应的存储页中,继续等待写入的数据满足一个存储页。
请参阅图3,在一些应用场景中,缓冲空间101可以是DRAM(Dynamic RandomAccess Memory,动态随机存取存储器),DRAM存储器使用电容存储,能在短时间内将数据存储起来DRAM存储器(缓冲空间)101是外置的高速缓存的存储器,其存储空间足够大。将待写入的数据100存储在DRAM存储器(缓冲空间)101中,当DRAM存储器(缓冲空间)101中存储的待写入的数据100满足一个存储页的存储量,也即是满足一个写入操作的最小单元,则将DRAM存储器(缓冲空间)101中存储的待写入的数据100写入存储设备102中对应的存储页中。其中,存储设备102可为NAND Flash存储设备,由于Flash无法覆盖写,因此容易产生很多垃圾数据,通过上述方式,满足一个存储页的存储量才会将DRAM存储器(缓冲空间)101中待写入的数据100写入存储设备102中对应的存储页中,可以减少垃圾数据的生成,有利于减少写放大,提升存储设备的性能。
在一些实施例中,请参阅图4,图4是本申请提供的图1中步骤S130第一实施例的流程示意图,上述步骤S130包括以下步骤:
S1311:获取存储页的写入时间与基准时间的比值。
获取将数据写入存储页的写入时间后,可获取当前存储页的写入时间与当前存储页的基准时间的比值,其比值可以判断当前存储页的写入速度是否小于基准写入速度。其中,基准时间可以是针对当前存储页的基准写入时间,不同的存储页可能会有不同的基准写入时间,也可以是当前存储页所在的存储块的基准写入时间,一个存储块中的存储页共有基准写入时间,另外,还可以是存储设备中的所有存储块共有基准写入时间,可以根据具体的应用场景进行设置,本申请对此不做限制。
S1312:将比值与第一预设阈值进行比较,判断比值是否小于第一预设阈值。
将存储页的写入时间与基准时间的比值与第一预设阈值进行比较,判断比值是否小于第一预设阈值,以判断存储页所在的存储块的使用状态。若比值不小于第一预设阈值,此时存储页的写入时间可能与基准时间相差较大,表明该存储页所在的存储块擦除及写入操作的次数较多,导致数据的写入速度较慢,则确定存储页所在的存储块使用寿命已经到达后期,可将该存储页所在的存储块判断为危险的存储块。
在一些实施例中,若比值小于第一预设阈值,则可以判断该存储页所在的存储块与基准时间较接近,其擦除及写入操作的次数较少,可以判断该存储页所在的存储块的不是危险的存储块。
若步骤S1312中判断为不小于第一预设阈值,则执行步骤S1313。
S1313:判断为存储页所在的存储块为危险的存储块。
使用状态判断为危险的存储块被记录下来,在存储块状态表中进行更新,使得该危险的存储块在后续使用时被降级,降级为降低存储单元的存储量。
本实施例中,本申请考虑存储设备在不同寿命周期内表现出来的特性对写入速度的影响,以通过写入时间与基准时间的比值与基准时间进行比较来判断存储设备的使用寿命,当存储设备处于使用寿命后期时,无法保证写入数据能否被正确读取,此时基于写入时间将其存储块判断危险的存储块,使得后续再次使用时该危险的存储块被降级使用,以降低每个存储单元的存储量,提高存储设备的使用寿命,以及数据存储的可靠性。同时,可解决存储设备随着PE次数的增加而出现写入数据变长而出现读写错误的问题。另外,可以动态检测存储设备的磨损状态并及时处理,提高存储设备的可靠性和使用寿命。
在上述实施例中,通过获取存储块中一个存储页的写入时间,将写入与基准时间的比值与第一预设阈值比较,可以判断该存储块的使用状态,以标记使用状态为危险的存储块。然而,当存储块中的所有存储页的写入时间与基准时间的比值都小于第一预设阈值时,可能存在该整个存储块的写入时间会慢于其他使用状态为健康的存储块的情况,整个存储块的擦除或写入操作的次数较多,使得该存储块的磨损程度较大,也可能存在读写错误的情况。因此,本申请还可以考虑整个存储块中所有存储页的写入情况,以结合多个存储页判断存储块的使用状态,具体可参考以下实施例。
在一些实施例中,请参阅图5,图5是本申请提供的图1中步骤S130第二实施例的流程示意图,上述步骤S130包括以下步骤:
S1321:判断存储页的写入时间与基准时间的比值是否小于第二预设阈值。
其中,第二预设阈值可以是小于第一预设阈值的值,例如第二预设阈值为第一预设阈值的一半,当然,本申请的第一预设阈值和第二预设阈值还可以是其他大小的阈值,第一预设阈值、第二预设阈值可以根据具体的应用场景进行设置,本申请对此不做限制。
该步骤中,若判断为比值不小于第二预设阈值,则执行步骤S1322。
S1322:统计存储块中已写入存储页的写入时间与基准时间的比值不小于第二预设阈值的次数,并判断统计的次数是否小于次数阈值。
存储块包括多个存储页,在存储块的存储页中写入数据时,若当前存储页的写入时间与基准时间的比值不小于第二预设阈值,则累加存储块中存储页的写入时间与基准时间的比值不小于第二预设阈值的次数,也即是不小于第二预设阈值的次数加一。获取统计的存储块中已写入存储页的写入时间与基准时间的比值不小于第二预设阈值的次数,并判断统计的次数是否小于次数阈值。
若统计的次数不小于次数阈值,存储块中受磨损或擦除和写入次数较多的存储页的数量较多,其存储页的所在的存储块的使用寿命已经到达后期,可判断为存储块为危险的存储块。
其中,次数阈值可以为存储块中包含的所有存储页的数量的一半,当统计存储块中已写入存储页的写入时间与基准时间的比值不小于第二预设阈值的次数达到存储块中包含的所有存储页的数量的一半,则可认为存储块中一半的存储页受损,写入速度慢。另外,次数阈值可以根据具体情况及存储设备性能需求而定,本申请对此不做限制。
步骤S1322中若判断为大于或等于次数阈值,则执行步骤S1323;否则,统计的存储块中已写入存储页的写入时间与基准时间的比值不小于第二预设阈值的次数小于次数阈值,因未达到次数阈值,存储块中各存储页的擦除或写入次数较少,存储块的磨损程度较低,可以判断为健康的存储块,则可获取下一笔待写入的数据,并进行处理。
S1323:判断为存储页所在的存储块为危险的存储块。
该实施例中具体实施方式可参考上述实施例的实施过程,在此不再赘述。
区别于上述实施例,本实施例中,通过对存储块中多个存储页的写入速度进行分析,若存储块中多个存储页的写入速度有所降低,则将该存储块记录为危险的存储块,使得后续再次使用时该危险的存储块被降级使用,以降低每个存储单元的存储量,提高存储设备的使用寿命,以及数据存储的可靠性。
在上述实施例中,考虑整个存储块中所有存储页的写入情况,以结合多个存储页判断存储块的使用状态,可以判断筛选出使用状态为危险的存储块。然而,当存储块中统计的已写入存储页的写入时间与基准时间的比值不小于第二预设阈值的次数较少时,未达到第二次数阈值,也可能存在存储块中的某些或某一个存储页的擦写操作次数较多,而使得该存储页的写入时间远大于第二阈值,可能存在读写错误的情况。因此,本申请还可以对存储块中单个存储页以及结合存储块中所有存储页的写入情况进行分析,综合来判断存储块的使用状态。具体可参考以下实施例。
请参阅图6,图6是本申请提供的数据存储方法第二实施例的流程示意图,该方法包括以下步骤:
S210:接收数据写入命令,将数据写入存储页中。
该实施例中该步骤的具体实施方式可参考上述实施例的实施过程,在此不再赘述。
S220:判断写入存储页的数据是否写入成功。
当需要向存储设备写入数据时,发送对应的写入请求给存储设备,并接收存储设备返回的写入结果,基于写入结果可判断此次数据是否写入成功,如果是,则确定此次数据写入成功,否则,则表示数据写入失败,可能出现写错误。
该步骤中,若判断为写入失败,则执行步骤S230,否则,执行步骤S240。
S230:将存储页所在的存储块标记为坏块,并将数据重新写入存储块的替换存储块的存储页中。
若判断为写入失败,则确定当前用于写入数据的存储块为坏块,为了避免继续向坏块中写入数据,将该存储页所在的存储块标记为坏块,并将该坏块记录在坏块表中,以更新坏块表。其中,存储设备在出厂前进行检测,会将存储设备中检测出的坏块进行标记,并将坏块以及其物理地址生成坏块表,并记录坏块对应的替换块,一并存储在存储设备中,使得不将数据存储在坏块中。在坏块表中,例如若Block 10,Die 4是坏块,则可以用数组的形式表示为BadBlockMap[10][4]=1,其中,Block代表是所查询的存储块,Die代表的是Block所在的物理位置,用“0”表示正确,也即是表明该存储块为健康的存储块,用“1”表示错误,也即是,表示错误的存储块为坏块。
可在坏块表的替换表中查询该存储块的替换存储块重新写入数据,或者,在该存储设备中查找一个存储块以作为替换存储块,例如若在现有替换表中查询不到该存储块的替换存储块,则可申请一个新的空闲存储块来替换,并将其更新到替换表中,并将数据重新写入替换存储块的存储页中。
S240:获取将数据写入存储页的写入时间,并获取存储页的写入时间与基准时间的比值。
S250:将比值与第一预设阈值进行比较,判断比值是否小于第一预设阈值。
若步骤S250中判断为不小于第一预设阈值,则执行步骤S260,否则,执行步骤S270。
S260:判断为存储页所在的存储块为危险的存储块。
S270:判断存储页的写入时间与基准时间的比值是否小于第二预设阈值。
通过当前存储页的写入时间没有判断为危险的存储块时,可结合存储块中的多个存储页进行判断,以进一步判断存储页的写入时间与基准时间的比值是否小于第二预设阈值,可以更准确的筛选出遗漏的危险的存储块。
其中,第二预设阈值小于第一预设阈值,可选的,第二预设阈值可以为第一预设阈值的一半。
该步骤中若判断为比值不小于第二预设阈值,则执行步骤S280。
S280:统计存储块中已写入存储页的写入时间与基准时间的比值不小于第二预设阈值的次数,并判断统计的次数是否小于次数阈值。
其中,次数阈值可以为存储块中包含的所有存储页的数量的一半。
该步骤中若判断为大于次数阈值,则执行步骤S260,判断为存储页所在的存储块为危险的存储块,否则,获取下一笔待写入数据,并进行处理,以重复上述步骤的操作。
该实施例中具体实施方式可参考上述实施例的实施过程,在此不再赘述。
区别于上述实施例,本实施例中,通过对存储块中写入的存储页的写入速度或写入时间,结合对存储块中各个存储页的写入时间和所有存储页的写入时间进行分析,若存储块中某一存储页的写入速度较慢,处于使用寿命后期,或者,若存储块中多个存储页的写入速度有所降低,则将该存储块记录为危险的存储块,进一步的筛选出遗漏的危险的存储块,使得后续再次使用时该危险的存储块被降级使用,以降低每个存储单元的存储量,提高存储设备的使用寿命,以及数据存储的可靠性。
请参阅图7,图7是本申请提供的数据存储方法第三实施例的流程示意图,该方法包括以下步骤:
S310:接收读取命令,从存储页中读取数据。
存储设备包括多个存储块,每个存储块包括至少一个存储页,可从存储块的存储页中读取存储的数据。
S320:判断存储页所在的存储块是否为使用状态为危险的存储块。
在记录及存储的存储块状态表中,查询该存储页所在的存储块是否为危险的存储块,可根据该存储块的物理地址进行查询,以确定该存储块的使用状态,判断是否为危险的存储块,其中,使用状态记录为危险的存储块为后续使用时被降级的存储块,降级为降低每个存储单元的存储量。
在该步骤S320中,若判断为使用状态为危险的存储块,则执行步骤S330。
S330:采用多个预设电压阈值读取危险的存储块的数据。
确定读取的存储块为危险的存储块时,为了提高读取效率,提高存储设备的可靠性,采用多个预设电压阈值读取危险的存储块的数据,以避免因使用单一的电压阈值造成数据读取失败。
具体的,采用多个预设电压阈值读取危险的存储块的数据,包括:
通过查寻预设静态表选择第一预设电压阈值读取危险的存储块的数据,并判断存储块的数据是否能被正确读取,若不能正确读取,则继续查寻预设静态表选择另一第一预设电压阈值并读取危险的存储块的数据,直到存储块的数据能被正确读取。可以理解的是,第一预设电压阈值为预设静态表中存储的电压阈值,本申请对此不做限制。例如预设静态表中存储了40组电压阈值,在进行读取时,采用每组电压阈值进行读取,若采用预设静态表中的最后一组电压阈值还不能正确读取,表示预设静态表中所有的电压阈值都不能正确读取存储块中的数据。
其中,预设静态表包括根据闪存介质在不同寿命阶段、不同环境下,例如PE(Program/Erase cycle,擦写次数)、温度、读取次数等,所表现不同特性而统计分析出适合当前环境的电压阈值。预设静态表用来存储电压阈值,以供更正接口直接调用该预设静态表以完成数据的正确读取。
在一些实施例中,预设静态表中的电压阈值存在变化的电压阈值,使得采用更多的电压阈值对危险的存储块进行读取。
S340:判断存储块的数据是否能被正确读取。
若读取失败,存储块中的数据不能被正确读取,表明采用上述预设静态表中的所有第一预设电压阈值都不能正确读取存储块的数据,也可能是芯片的划痕等物理问题造成的读取错误。
若不能被正确读取,采用预设静态表中的所有第一预设电压阈值都不能正确读取存储块的数据,则执行步骤S350,若能被正确读取,则可将读取的数据上传给用户终端,并读取下一数据。
S350:通过软解码的方式读取存储块的数据。
该读取的存储块为危险的存储块,因此在存储块的状态表中不需要改变存储块的使用状态。
其中,软解码(Soft Decode)是将解压高清编码的任务交给处理器进行,如CPU(Central Processing Unit,中央处理单元),是基于硬件配置本身达不到硬解压要求的前提下进行的。使用软解码的方式对存储块读取的数据进行更正,以读取存储块中的数据。
该实施例中具体实施方式可参考上述实施例的实施过程,在此不再赘述。
本实施例中,通过对危险的存储块使用多个不同的电压阈值进行读取,进而在多个电压阈值不能正确读取后,在使用软解码的方式读取存储块的数据,使得提高读取速度,进而提高读取效率。将通过软解码方式才能正确读取的存储块标记为危险的存储块,以记录并更新存储块状态表,在后续再次使用该危险的存储块时被降级使用,以降低每个存储单元的存储量,提高存储设备的使用寿命以及数据存储的可靠性。
请参阅图8,图8是本申请提供的数据存储方法第四实施例的流程示意图,该方法包括以下步骤:
S410:接收读取命令,从预设存储页中读取数据。
S420:判断预设存储页所在的存储块是否为使用状态为危险的存储块。
若该步骤S420判断使用状态不为危险的存储块,执行步骤S430;在一些实施例中,若该步骤S420判断使用状态为危险的存储块,执行步骤S450。
S430:采用第二预设电压阈值读取存储块的数据。
其中,第二预设电压阈值为读取一般健康的存储块使用的电压阈值,例如为采用默认电压阈值读取存储块的数据,本申请对此不做限制。
S440:判断存储块的数据是否能被正确读取。
若该步骤S440中判断为不能正确读取,则执行步骤S450;若判断为能被正确读取,则可将读取的数据上传给用户终端,并读取下一数据。
S450:采用多个预设电压阈值读取危险的存储块的数据。
其中,采用多个预设电压阈值读取危险的存储块的数据,包括:通过查寻预设静态表选择第一预设电压阈值读取危险的存储块的数据,并继续执行步骤S440判断存储块的数据是否能被正确读取,若还不能正确读取,则继续查寻预设静态表选择另一第一预设电压阈值并读取危险的存储块的数据,直到存储块的数据能被正确读取。其中,预设静态表包括根据闪存介质在不同寿命阶段、不同环境下所表现不同特性而统计分析出适合当前环境的电压阈值。
继续执行上述步骤S440,若采用预设静态表中的所有第一预设电压阈值都不能正确读取存储块的数据,判断为不能正确读取,则执行步骤S460。
S460:通过软解码的方式读取存储块的数据,并将存储块的使用状态记录为危险的存储块。
需要通过软解码的方式才能正确读取存储块的数据的存储块,可判断为危险的存储块,并将该存储块的使用状态记录为危险的存储块。
其中,使用状态记录为危险的存储块为后续使用时被降级的存储块,降级为降低每个存储单元的存储量,可以使用存储块状态表对存储块的使用状态进行记录并存储,状态表记录每个存储块的状态,由固件的算法设计进行维护,在状态表中被标记为危险的存储块,在下次使用时该存储块被降级。
通过软解码方式对存储块读取数据进行更正,以读取存储块中的数据。通过软件码方式读取数据,在软件码的读取范围内,基本上都能正确读取存储块中的数据。正确读取存储块中的数据后,将读取数据上传给用户终端,并读取下一数据。
该实施例中具体实施方式可参考上述实施例的实施过程,在此不再赘述。
本实施例中,通过对读取数据存储块的使用状态、错误数据大小以及读取错误的处理流程的分析,针对危险的存储块或者通过默认电压阈值对健康的存储块进行读取失败时使用多个不同的电压阈值进行读取,进而在多个电压阈值不能正确读取后,在使用软解码的方式读取存储块的数据,使得提高读取速度,进而提高读取效率。将通过软解码方式才能正确读取的存储块标记为危险的存储块,以记录并更新存储块状态表,在后续再次使用该危险的存储块时被降级使用,以降低每个存储单元的存储量,提高存储设备的使用寿命以及数据存储的可靠性。
在一些实施例中,本申请第三实施例可结合数据存储方法的第四实施例同时使用,例如上述步骤S420判断为使用状态为危险的存储块时,可执行第三实施例中步骤S330以及步骤S330后续的步骤。在第三实施例中,步骤S320中判断存储块的使用状态不为危险的存储块后,可执行第四实施例中步骤S430以及步骤S430后续的步骤,另外,还可以有其他的结合方式,可以根据具体应用场景进行设置,本申请在此不做限制。
请参阅图9,图9是本申请提供的数据存储方法第五实施例的流程示意图,该方法包括以下步骤:
S510:接收读写命令,并解析读写命令。
在一些实施例中,在步骤S510接收读写命令,并解析读写命令之后,还包括以下步骤:
S511:判断从读写命令中解析的存储块是否为坏块。
其中,通过查询坏块表的方式查询所解析的存储块是否是坏块,其中,坏块表是在量产时由量产工具检测并保存在存储设备中以备固件设计的算法调取使用。
该步骤中,若判断为坏块,则执行步骤S512,否则对解析的读写命令进行分析,以判断是写入命令还是读取命令,若为写入命令,则执行下述步骤S520-S540;若为读取命令,则执行下述步骤S550-S570。
S512:查找坏块的替换存储块,以在替换存储块进行数据读写操作。
可在替换表中查找坏块的替换存储块,其中,替换表是由固件维护,用来替换坏块以方便数据存取调度的,若在现有替换表中查找不到替换存储块,则可申请一个新的空闲存储块来替换该坏块,并将其更新到替换表中。
若为写入命令,则执行步骤S520-S540;若为读取命令,则执行步骤S550-S570。
S520:将数据写入存储页中,获取将数据写入存储页的写入时间。
其中,将数据写入存储页中包括:将待写入存储页的数据存储在缓冲空间,若缓冲空间存储的待写入数据满足一个存储页的存储量,则将缓冲空间的数据写入存储块对应的存储页中。
S530:基于存储页的写入时间,判断存储页所在的存储块的使用状态。
在一些实施例中,基于存储页的写入时间,判断存储页所在的存储块的使用状态,包括:获取存储页的写入时间与基准时间的比值;判断比值是否小于第一预设阈值;若判断为不小于第一预设阈值,则判断为存储块为危险的存储块。
在一些实施例中,基于存储页的写入时间,判断存储页所在的存储块的使用状态,还包括:若判断为小于第一预设阈值,则进一步判断存储页的写入时间与基准时间的比值是否小于第二预设阈值,若比值不小于第二预设阈值,则统计存储块中已写入存储页的写入时间与基准时间的比值不小于第二预设阈值的次数;判断统计的次数是否小于次数阈值;若大于次数阈值,则判断为存储块为危险的存储块。其中,第二预设阈值小于第一预设阈值,次数阈值为存储块中包含的所有存储页的数量的一半。
S540:记录并更新存储页所在的存储块的使用状态,其中,使用状态记录为危险的存储块在后续使用时被降级,降级为降低每个存储单元的存储量。
S550:从存储页中读取数据,判断存储页中所在的存储块是否为使用状态为危险的存储块。
其中,使用状态记录为危险的存储块在后续使用时被降级,降级为降低每个存储单元的存储量。
若判断为使用状态为危险的存储块,则执行步骤S560,否则,执行步骤S570。
S560:采用多个预设电压阈值读取危险的存储块的数据。
在一些实施例中,采用多个预设电压阈值读取危险的存储块的数据包括:通过查寻预设静态表选择第一预设电压阈值读取危险的存储块的数据,并判断存储块的数据是否能被正确读取,若不能正确读取,则继续查寻预设静态表选择另一第一预设电压阈值并读取危险的存储块的数据,直到存储块的数据能被正确读取。其中,预设静态表包括根据闪存介质在不同寿命阶段、不同环境下所表现不同特性而统计分析出适合当前环境的电压阈值。
若采用预设静态表中的所有第一预设电压阈值都不能正确读取存储块的数据,则通过软解码的方式读取存储块的数据,并将存储块的使用状态记录为危险的存储块,其中,使用状态记录为危险的存储块为后续使用时被降级的存储块,降级为降低每个存储单元的存储量。
S570:采用第二预设电压阈值读取存储块的数据。
在该步骤中,采用第二预设电压阈值读取存储块的数据,并判断是否能正确读取数据,若不能正确读取,则继续执行上述步骤S560采用多个预设电压阈值读取存储块的数据。
本实施例中,本申请考虑存储设备在不同寿命周期内表现出来的特性对写入速度的影响,以通过写入时间与基准时间的比值与基准时间进行比较来判断存储设备的使用寿命,当存储设备处于使用寿命后期时,无法保证写入数据能否被正确读取,此时基于写入时间将其存储块判断危险的存储块,使得后续再次使用时该危险的存储块被降级使用,以降低每个存储单元的存储量,提高存储设备的使用寿命,以及数据存储的可靠性。同时,可解决存储设备随着PE次数的增加而出现写入数据变长而出现读写错误的问题。另外,可以动态检测存储设备的磨损状态并及时处理,提高存储设备的可靠性和使用寿命。
此外,读取数据时,通过对读取数据存储块的使用状态、错误数据大小以及读取错误的处理流程的分析,针对危险的存储块或者通过默认的预设电压阈值对健康的存储块进行读取失败的存储块,使用多个不同的电压阈值进行读取,进而在多个电压阈值不能正确读取后,再使用软解码的方式读取存储块的数据,使得提高读取速度,进而提高读取效率。将通过软解码方式才能正确读取的存储块标记为危险的存储块,以记录并更新存储块状态表,在后续再次使用该危险的存储块时被降级使用,以降低每个存储单元的存储量,提高存储设备的使用寿命以及数据存储的可靠性。
该实施例中具体实施方式可参考上述实施例的实施过程,在此不再赘述。
对于上述实施例,本申请提供一种数据存储装置,请参阅图10,图10是本申请提供的数据存储装置第一实施例的结构示意图,该数据存储装置10包括写入模块11、判断模块12和存储模块13。
写入模块11用于接收数据写入命令,将数据写入存储页中,并获取将数据写入存储页的写入时间。
判断模块12用于基于存储页的写入时间,判断存储页所在的存储块的使用状态。
存储模块13用于记录并更新存储页所在的存储块的使用状态,其中,使用状态记录为危险的存储块在后续使用时被降级,降级为降低每个存储单元的存储量。
该实施例的具体实施方式可参考上述实施例的实施过程,在此不再赘述。
对于上述实施例,本申请提供一种数据存储装置,请参阅图11,图11是本申请提供的数据存储装置第二实施例的结构示意图,该数据存储装置20包括读取模块21、判断模块22和控制模块23。
读取模块21用于接收读取命令,从存储页中读取数据。
判断模块22用于判断存储页所在的存储块是否为使用状态为危险的存储块。
控制模块23用于当判断模块22判断为使用状态为危险的存储块时,采用多个预设电压阈值读取危险的存储块的数据。当判断模块22判断为使用状态不为危险的存储块时,控制模块23用于采用第二预设电压阈值读取存储块的数据。
该实施例的具体实施方式可参考上述实施例的实施过程,在此不再赘述。
对于上述实施例,本申请提供一种数据存储装置,请参阅图12,图12是本申请提供的数据存储装置第三实施例的结构示意图,该数据存储装置30包括解析模块31、写入模块32和读取模块33。
解析模块31用于接收读写命令,并解析读写命令。
写入模块32用于解析模块31解析为写入命令时,将数据写入存储页中,获取将数据写入存储页的写入时间,基于存储页的写入时间,判断存储页所在的存储块的使用状态,记录并更新存储页所在的存储块的使用状态,其中,使用状态记录为危险的存储块在后续使用时被降级,降级为降低每个存储单元的存储量。
读取模块33用于解析模块31解析为读取命令时,从存储页中读取数据,判断存储页中所在的存储块是否为使用状态为危险的存储块,若判断为使用状态为危险的存储块,则采用多个预设电压阈值读取危险的存储块的数据,若判断为使用状态不为危险的存储块时,则采用第二预设电压阈值读取存储块的数据。
该实施例的具体实施方式可参考上述实施例的实施过程,在此不再赘述。
对于上述实施例,本申请提供一种数据存储装置,请参阅图13,图13是本申请提供的数据存储装置第四实施例的结构示意图,该数据存储装置40包括:包括处理器41和存储器42,其中,处理器41与存储器42连接,存储器42用于存储计算机程序,计算机程序被处理器41执行以实现上述数据存储方法。
在本实施例中,处理器41还可以称为CPU(Central Processing Unit,中央处理单元)。处理器41可能是一种集成电路芯片,具有信号的处理能力。处理器41还可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器41也可以是任何常规的处理器等。
对于上述实施例,本申请提供一种存储装置,请参阅图14,图14是本申请提供的存储装置的结构示意图,该存储装置50包括处理器51、存储器52和闪存介质53,存储器52用于存储计算机程序,计算机程序被处理器51执行以对闪存介质53实现上述数据存储方法。
对于上述实施例的方法,其可以计算机程序的形式存在,因而本申请提出一种计算机可读存储介质,请参阅图15,图15是本申请提供的计算机可读存储介质的结构示意图。本实施例计算机可读存储介质60中存储有计算机程序61,其可被处理器执行以实现上述实施例中的方法。
本实施例计算机可读存储介质61可以是U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等可以存储程序指令的介质,或者也可以为存储有该程序指令的服务器,该服务器可将存储的程序指令发送给其他设备运行,或者也可以自运行该存储的程序指令。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法和装置,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
显然,本领域的技术人员应该明白,上述的本申请的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请不限制于任何特定的硬件和软件结合。
以上所述仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

Claims (11)

1.一种数据存储方法,其特征在于,所述方法包括:
接收数据写入命令,将数据写入存储页中;
获取所述将数据写入存储页的写入时间;
基于所述存储页的写入时间,判断所述存储页所在的存储块的使用状态;
记录并更新所述存储页所在的存储块的使用状态,其中,所述使用状态记录为危险的存储块在后续使用时被降级,所述降级为降低每个存储单元的存储量;
其中,所述基于所述存储页的写入时间,判断所述存储页所在的存储块的使用状态,包括:
获取所述存储页的写入时间与基准时间的比值;判断所述比值是否小于第一预设阈值;若判断为不小于所述第一预设阈值,则判断为所述存储块为危险的存储块;
若判断为小于所述第一预设阈值,则进一步判断所述存储页的写入时间与基准时间的比值是否小于第二预设阈值,所述第二预设阈值小于所述第一预设阈值;若所述比值不小于所述第二预设阈值,则统计所述存储块中已写入存储页的写入时间与所述基准时间的比值不小于所述第二预设阈值的次数;判断统计的所述次数是否小于次数阈值;若大于所述次数阈值,则判断为所述存储块为危险的存储块。
2.根据权利要求1所述的方法,其特征在于,
所述次数阈值为所述存储块中包含的所有存储页的数量的一半。
3.根据权利要求1所述的方法,其特征在于,所述获取所述将数据写入存储页的写入时间之前,包括:
判断写入所述存储页的数据是否写入成功;
若判断为写入失败,则将所述存储页所在的存储块标记为坏块,将所述数据重新写入所述存储块的替换存储块的存储页中。
4.根据权利要求1所述的方法,其特征在于,所述将数据写入存储页中,包括:
将待写入所述存储页的数据存储在缓冲空间,若所述缓冲空间存储的所述待写入数据满足一个所述存储页的存储量,则将所述缓冲空间的数据写入所述存储块对应的存储页中。
5.一种数据存储方法,其特征在于,所述方法包括:
接收读取命令,从存储页中读取数据;
判断所述存储页所在的存储块是否为使用状态为危险的存储块;
若判断为所述使用状态为危险的存储块,则采用多个预设电压阈值读取所述危险的存储块的数据;
其中,所述使用状态为危险的存储块是基于所述存储页的写入时间判断得到的,包括:获取所述存储页的写入时间与基准时间的比值;判断所述比值是否小于第一预设阈值;若判断为不小于所述第一预设阈值,则判断为所述存储块为危险的存储块;若判断为小于所述第一预设阈值,则进一步判断所述存储页的写入时间与基准时间的比值是否小于第二预设阈值,所述第二预设阈值小于所述第一预设阈值;若所述比值不小于所述第二预设阈值,则统计所述存储块中已写入存储页的写入时间与所述基准时间的比值不小于所述第二预设阈值的次数;判断统计的所述次数是否小于次数阈值;若大于所述次数阈值,则判断为所述存储块为危险的存储块。
6.根据权利要求5所述的方法,其特征在于,
所述采用多个预设电压阈值读取所述危险的存储块的数据,包括:
通过查寻预设静态表选择第一预设电压阈值读取所述危险的存储块的数据,并判断所述存储块的数据是否能被正确读取,若不能正确读取,则继续查寻所述预设静态表选择另一第一预设电压阈值并读取所述危险的存储块的数据,直到所述存储块的数据能被正确读取;
其中,所述预设静态表包括根据闪存介质在不同寿命阶段、不同环境下所表现不同特性而统计分析出适合当前环境的电压阈值。
7.根据权利要求6所述的方法,其特征在于,
所述采用多个预设电压阈值读取所述危险的存储块的数据,还包括:
若采用所述预设静态表中的所有第一预设电压阈值都不能正确读取所述存储块的数据,则通过软解码的方式读取所述存储块的数据,并将所述存储块的使用状态记录为危险的存储块,其中,所述使用状态记录为危险的存储块为后续使用时被降级的存储块,所述降级为降低每个存储单元的存储量。
8.根据权利要求5所述的方法,其特征在于,所述方法还包括:
若判断为所述使用状态不为危险的存储块,则采用第二预设电压阈值读取所述存储块的数据;
判断所述存储块的数据是否能被正确读取;
若判断为不能正确读取,则采用多个所述预设电压阈值读取所述存储块的数据。
9.一种数据存储方法,其特征在于,所述方法包括:
接收读写命令,并解析读写命令;
若为写入命令,则将数据写入存储页中,获取所述将数据写入存储页的写入时间,基于所述存储页的写入时间,判断所述存储页所在的存储块的使用状态,记录并更新所述存储页所在的存储块的使用状态,其中,所述使用状态记录为危险的存储块在后续使用时被降级,所述降级为降低每个存储单元的存储量;
若为读取命令,则从所述存储页中读取数据,判断所述存储页中所在的存储块是否为使用状态为危险的存储块,若判断为所述使用状态为危险的存储块,则采用多个预设电压阈值读取所述危险的存储块的数据;
其中,所述基于所述存储页的写入时间,判断所述存储页所在的存储块的使用状态,包括:获取所述存储页的写入时间与基准时间的比值;判断所述比值是否小于第一预设阈值;若判断为不小于所述第一预设阈值,则判断为所述存储块为危险的存储块;若判断为小于所述第一预设阈值,则进一步判断所述存储页的写入时间与基准时间的比值是否小于第二预设阈值,所述第二预设阈值小于所述第一预设阈值;若所述比值不小于所述第二预设阈值,则统计所述存储块中已写入存储页的写入时间与所述基准时间的比值不小于所述第二预设阈值的次数;判断统计的所述次数是否小于次数阈值;若大于所述次数阈值,则判断为所述存储块为危险的存储块。
10.一种数据存储装置,其特征在于,所述数据存储装置包括:处理器和存储器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行以实现如权利要求1至9中任一项所述的方法。
11.一种存储装置,其特征在于,所述存储装置包括处理器、存储器和闪存介质,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行以对所述闪存介质实现如权利要求1至9中任一项所述的方法。
CN202010839547.6A 2020-08-19 2020-08-19 数据存储方法、数据存储装置及存储装置 Active CN112068772B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010839547.6A CN112068772B (zh) 2020-08-19 2020-08-19 数据存储方法、数据存储装置及存储装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010839547.6A CN112068772B (zh) 2020-08-19 2020-08-19 数据存储方法、数据存储装置及存储装置

Publications (2)

Publication Number Publication Date
CN112068772A CN112068772A (zh) 2020-12-11
CN112068772B true CN112068772B (zh) 2023-05-16

Family

ID=73662210

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010839547.6A Active CN112068772B (zh) 2020-08-19 2020-08-19 数据存储方法、数据存储装置及存储装置

Country Status (1)

Country Link
CN (1) CN112068772B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113703681B (zh) * 2021-08-26 2024-06-04 杭州海康存储科技有限公司 一种硬盘管理方法及装置、硬盘设备、存储介质
CN114047884A (zh) * 2021-11-24 2022-02-15 Tcl空调器(中山)有限公司 数据存储方法、装置、电子设备及存储介质
CN116991611B (zh) * 2023-05-22 2024-06-25 苏州科美存储技术有限公司 一种存储页细分状态识别方法、系统、设备及存储介质

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9547589B2 (en) * 2008-06-18 2017-01-17 Super Talent Technology, Corp. Endurance translation layer (ETL) and diversion of temp files for reduced flash wear of a super-endurance solid-state drive
US8959280B2 (en) * 2008-06-18 2015-02-17 Super Talent Technology, Corp. Super-endurance solid-state drive with endurance translation layer (ETL) and diversion of temp files for reduced flash wear
TWI408688B (zh) * 2009-10-12 2013-09-11 Phison Electronics Corp 用於快閃記憶體的資料寫入方法及其控制器與儲存系統
US8656256B2 (en) * 2010-07-07 2014-02-18 Stec, Inc. Apparatus and method for multi-mode operation of a flash memory device
KR101824068B1 (ko) * 2011-07-28 2018-03-15 삼성전자주식회사 메모리 컨트롤러 구동방법, 및 메모리 컨트롤러를 포함하는 메모리 시스템, 메모리 카드 및 휴대용 전자장치
CN103019969A (zh) * 2011-09-27 2013-04-03 威刚科技(苏州)有限公司 闪存储存装置及其不良储存区域的判定方法
JP6486647B2 (ja) * 2014-10-28 2019-03-20 株式会社メガチップス エラー訂正装置
KR102314136B1 (ko) * 2015-06-22 2021-10-18 삼성전자 주식회사 비휘발성 메모리 장치, 메모리 시스템 및 그것의 동작 방법
CN106527969B (zh) * 2016-09-21 2017-09-19 中国科学院地质与地球物理研究所 一种寿命均衡的NandFlash存储器读写方法
CN106681936A (zh) * 2016-12-29 2017-05-17 记忆科技(深圳)有限公司 一种nandflash的坏块管理方法

Also Published As

Publication number Publication date
CN112068772A (zh) 2020-12-11

Similar Documents

Publication Publication Date Title
CN112068772B (zh) 数据存储方法、数据存储装置及存储装置
US9063844B2 (en) Non-volatile memory management system with time measure mechanism and method of operation thereof
US8386860B2 (en) Methods of calculating compensation voltage and adjusting threshold voltage and memory apparatus and controller
US9665481B2 (en) Wear leveling method based on timestamps and erase counts, memory storage device and memory control circuit unit
US8751726B2 (en) System and methods employing mock thresholds to generate actual reading thresholds in flash memory devices
CN106909318B (zh) 固态硬盘使用方法及装置
US20160342344A1 (en) Variable Bit Encoding Per NAND Flash Cell to Extend Life of Flash-Based Storage Devices and Preserve Over-Provisioning
US10620874B2 (en) Memory management method, memory control circuit unit and memory storage apparatus
US10884665B2 (en) Data reading method, storage controller and storage device for optimizing read voltages
US20110264842A1 (en) Memory controller, nonvolatile memory device, access device, and nonvolatile memory system
CN107748722B (zh) 一种保证固态硬盘中数据持续性的自适应数据刷新方法
US10579518B2 (en) Memory management method and storage controller
US20210011630A1 (en) Memory management method, memory storage device and memory control circuit unit
US20230056216A1 (en) Configuring partitions of a memory sub-system for different data
CN110750466A (zh) 提高闪存擦写寿命的方法和装置
US11797222B2 (en) Read disturb checking method, memory storage device and memory control circuit unit
US20220171562A1 (en) Garbage collection in a memory component using an adjusted parameter
CN105138472B (zh) 闪存磨损优化方法及设备
US9733832B2 (en) Buffer memory accessing method, memory controller and memory storage device
US20240069730A1 (en) Varying memory erase depth according to block characteristics
US11972139B2 (en) Read voltage level correction method, memory storage device, and memory control circuit unit
CN106469019B (zh) 存储器管理方法、存储器控制电路单元及存储器储存装置
CN113076062A (zh) 一种提升qlcssd寿命的方法和设备
CN109273037B (zh) 数据读取方法以及存储控制器
CN109411000A (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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: Room 1202, Floor 12, Building 3, No. 126, Yueda Lane, Changhe Street, Binjiang District, Hangzhou City, Zhejiang Province, 310056

Applicant after: Zhejiang Huayi Core Technology Co.,Ltd.

Address before: 310051 room 512, building 2, 2930 South Ring Road, Puyan street, Binjiang District, Hangzhou City, Zhejiang Province

Applicant before: Zhejiang Dahua Technology Co.,Ltd.

GR01 Patent grant
GR01 Patent grant