CN106909318A - 固态硬盘使用方法及装置 - Google Patents

固态硬盘使用方法及装置 Download PDF

Info

Publication number
CN106909318A
CN106909318A CN201710071252.7A CN201710071252A CN106909318A CN 106909318 A CN106909318 A CN 106909318A CN 201710071252 A CN201710071252 A CN 201710071252A CN 106909318 A CN106909318 A CN 106909318A
Authority
CN
China
Prior art keywords
data block
incubation period
block
threshold value
solid state
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.)
Granted
Application number
CN201710071252.7A
Other languages
English (en)
Other versions
CN106909318B (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.)
Huawei Technologies Co Ltd
Original Assignee
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201710071252.7A priority Critical patent/CN106909318B/zh
Publication of CN106909318A publication Critical patent/CN106909318A/zh
Application granted granted Critical
Publication of CN106909318B publication Critical patent/CN106909318B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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
    • G06F3/0611Improving I/O performance in relation to response time
    • 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/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/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/0674Disk device
    • G06F3/0676Magnetic disk 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/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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7204Capacity control, e.g. partitioning, end-of-life degradation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7206Reconfiguration of flash memory system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling

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)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Debugging And Monitoring (AREA)
  • Read Only Memory (AREA)

Abstract

本发明实施例提供一种固态硬盘使用方法及装置,该方法包括:当需要对固态硬盘中的数据块进行操作时,根据固态硬盘的负载均衡表确定待操作的数据块的潜伏期;判断数据块的潜伏期是否大于预警值,预警值小于典型潜伏期,典型潜伏期为预设的对固态硬盘中的数据块操作失败时的潜伏期;若数据块的潜伏期大于预警值,则禁止对数据块执行操作。该方法中,通过对各Block当前的潜伏期与预警值进行比较,动态的监控实际操作的Block的潜伏期,在当前的潜伏期小于或等于预警值时对该Block进行操作,从而从物理特性上做到真正的负载均衡,在一定程度上减少了坏块的产生,尽可能使用了保留块,从而延长了SSD的寿命。

Description

固态硬盘使用方法及装置
技术领域
本发明实施例涉及存储技术领域,尤其涉及一种固态硬盘使用方法及装置。
背景技术
大部分固态硬盘(Solid State Disk,SSD)通过非易失性随机访问存储介质—与非门闪存(NAND Flash)实现,NAND Flash可分为单阶存储单元(Single Level Cell,SLC)和多阶存储单元(Multi Level Cell,MLC)。NAND Flash通常由内部存储器和存储矩阵组成。其中,存储矩阵包括若干个块(Block),每个Block又包括若干个页(Page),每个Page进一步的包括若干个字节(Byte)。目前市面上的NAND Flash多采用MLC芯片,对NAND Flash的操作主要为读、写和擦除。NAND Flash的读写以页(Page)为单位,擦除以块(Block)为单位,在进行写操作之前必须进行页面擦除操作,擦写过程中会对NAND Flash内部浮栅晶体管的绝缘层造成破换。当发生擦除失败等时,NAND Flash会主动上报SSD,使得SSD置操作失败的Block为坏块(Bad Block)。随着NAND Flash擦写次数(本领域技术人员也称之为PE Cycle)的增加,当坏块数量达到一定程度,例如3%时,则认为NAND Flash达到使用寿命。
为避免对某些热点Block频繁擦写发生坏块而导致SSD寿命降低,现有技术中引入负载均衡技术,采用均衡表记录每个Block的擦写次数。每次写入数据时,优先选择擦写次数较低的Block进行操作,从而保证整个SSD中各Block的擦写次数在同一个水平,即对各Block的擦写次数尽量均匀。另外,SSD中有一部分冗余Block作为保留块,当发生坏块时,用保留块来替换失效的Block,避免整个SSD过早失效,从而提高SSD的使用寿命。
假设SSD有32000个Block,写入某数据时,会均匀选择该32000个Block,从而保证各Block的擦写次数相差不大,例如通过32000×3K次完成数据写入。然而,不同Block的寿命是不同的,该数据写入过程中,若某些Block达不到3K次就发生坏块,则需要使用冗余Block来替换坏块,当冗余Block消耗完时,SSD的寿命也随之耗尽。
发明内容
本发明实施例提供一种固态硬盘使用方法及装置,通过负载均衡以减少坏块的产生从而减少保留块的使用,最终到达提高固态硬盘使用寿命的目的。
第一个方面,本发明实施例提供一种固态硬盘使用方法,包括:
当接收到擦除操作指令时,根据所述固态硬盘的负载均衡表确定所述负载均衡表所记录的数据块中是否有潜伏期小于当前阈值的数据块,所述潜伏期为执行所述擦除操作而持续的时间,所述潜伏期对应多级阈值,所述多级阈值按从小到大的顺序排列;
当所述负载均衡表所记录的数据块中有潜伏期小于当前阈值的数据块时,则从潜伏期小于当前阈值的数据块中选择进行操作的数据块,并对所选择的数据块执行所述擦除操作;
当所述负载均衡表所记录的数据块中没有潜伏期小于当前阈值的数据块,且当前阈值不是最后一级阈值时,则将当前阈值的下一级阈值设置为当前阈值,并从潜伏期小于当前阈值的数据块中选择进行操作的数据块,并对所选择的数据块执行所述擦除操作。
在第一方面第一种可能的实现方式中,所述对所选择的数据块执行所述擦除操作或者写操作之后,还包括:
获得操作完成之后被操作数据块的潜伏期;
根据获得的潜伏期更新所述负载均衡表中所述被操作数据块的潜伏期。
结合第一方面或者第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述方法还包括:当所述负载均衡表所记录的数据块中有潜伏期小于当前阈值的数据块,且所述当前阈值为最后一级阈值时,将潜伏期大于等于当前阈值的数据块记录至预设的预坏块表中。
结合以上任何一种可能的实现方式,在第三种可能的实现方式中,所述方法还包括:当所述负载均衡表所记录的数据块中没有潜伏期小于当前阈值的数据块,且当前阈值是最后一级阈值时,选择所述固态硬盘的保留块执行所述擦除操作或者写操作。
结合第三种可能的实现方式,在第四种可能的实现方式中,所述方法还包括:判断所述保留块是否耗尽,若所述保留块耗尽,则对所述预坏块表中的数据块继续进行操作。
第二个方面,本发明实施例提供一种固态硬盘使用装置,包括:
确定模块,用于当接收到擦除操作或者写操作指令时,根据所述固态硬盘的负载均衡表确定所述负载均衡表所记录的数据块中是否有潜伏期小于当前阈值的数据块,所述负载均衡表中记录有每个数据块的潜伏期,所述潜伏期为执行所述擦除操作或写操作而持续的时间,所述潜伏期对应多级阈值,所述多级阈值按从小到大的顺序排列;
处理模块,用于当所述负载均衡表所记录的数据块中有潜伏期小于当前阈值的数据块时,则从潜伏期小于当前阈值的数据块中选择进行操作的数据块,并对所选择的数据块执行所述擦除操作或者写操作;
所述处理模块还用于当所述负载均衡表所记录的数据块中没有潜伏期小于当前阈值的数据块,且当前阈值不是最后一级阈值时,则将当前阈值的下一级阈值设置为当前阈值,并从潜伏期小于当前阈值的数据块中选择进行操作的数据块,并对所选择的数据块执行所述擦除操作或者写操作。
在第一方面的第一种可能的实现方式中,所述装置还包括:
获取模块,用于在对所选择的数据块执行所述擦除操作或者写操作之后,获得操作完成之后被操作数据块的潜伏期;
更新模块,用于根据获得的潜伏期更新所述负载均衡表中所述被操作数据块的潜伏期。
结合第一方面或第一种可能的实现方式,在第二种可能的实现方式中,所述处理模块还用于:当所述负载均衡表所记录的数据块中有潜伏期小于当前阈值的数据块,且所述当前阈值为最后一级阈值时,将潜伏期大于等于当前阈值的数据块记录至预设的预坏块表中。
结合以上任意一种可能的实现方式,在第三种可能的实现方式中,所述处理模块还用于:当所述负载均衡表所记录的数据块中没有潜伏期小于当前阈值的数据块,且当前阈值是最后一级阈值时,选择所述固态硬盘的保留块执行所述擦除操作或者写操作。
结合第三种可能的实现方式,在第四种可能的实现方式中,所述处理模块还用于:判断所述保留块是否耗尽,若所述保留块耗尽,则对所述预坏块表中的数据块继续进行操作。
本发明实施例提供的固态硬盘使用方法及装置,通过对潜伏期设置多级阈值,在选择待操作的数据块时,选择潜伏期小于当前阈值的数据块进行操作,并在所有数据块的潜伏期都小于当前阈值时,再将当前阈值的下一级阈值作为当前阈值,这样可以根据数据块的潜伏期对数据块按照设置的多级潜伏期阈值逐级进行负载均衡,在一定程度上减少了坏块的数量,进而延长了SSD的寿命。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明固态硬盘使用方法实施例一的流程图;
图2A为本发明固态硬盘编程操作的示意图;
图2B为本发明固态硬盘擦除操作的示意图;
图3为本发明固态硬盘的擦写特性示意图;
图4A为本发明基于MLC的固态硬盘的擦潜伏时间tBERS与擦写次数的关系曲线示意图;
图4B是本发明基于SLC的固态硬盘的擦潜伏时间tBERS与擦写次数的关系曲线示意图;
图5为本发明固态硬盘使用方法中确定预警值的流程图;
图6为本发明实施例中擦写次数与擦潜伏期的变化关系示意图;
图7为本发明固态硬盘使用寿命方法中根据预警值进行负载均衡的流程图;
图8为本发明实施例提供的一种固态硬盘使用状态图;
图9为本发明固态硬盘使用方法实施例二的流程图;
图10为本发明固态硬盘使用装置实施例一的结构示意图;
图11为本发明固态硬盘使用装置实施例二的结构示意图;
图12为本发明固态硬盘使用装置实施例三的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明固态硬盘使用方法实施例一的流程图。本实施例的执行主体为固态硬盘使用装置,其可设置在SSD上也可以是SSD本身,适用于需要均衡SSD中各Block负载的场景。具体的,本实施例包括如下步骤:
101、当需要对固态硬盘中的数据块进行操作时,根据固态硬盘的负载均衡表确定待操作数据块的潜伏期,潜伏期为对数据块执行操作而持续的时间,操作包括擦除操作或写操作。
NAND Flash的地址、命令和数据的输入输出(Input/Output,I/O)端口是复用的,读写数据的过程比较复杂。一般来说,每次对SSD中的待操作的数据块(Block)发送操作命令,如擦除操作命令、写操作命令后,需要等待一定的时长以执行该操作。例如,对于擦除操作来说,需要等等一定的时长以对数据块进行擦除;对于写操作来说,需要等待一定的时长以对数据块进行数据写入。然后才能发送查询命令以判断是否成功执行擦除操作或写操作,最终实际完成对数据块的操作。其中,该需要等待的时间称之为潜伏期。擦除操作、写操作简称为擦写操作。经验证发现:各Block的潜伏期随擦写次数的变化而呈规律性的变化,潜伏期是物理上真实反映Block健康状态的参数。
在本发明实施例中,负载均衡表中记录有各个Block的潜伏期,对于一个具体的数据块,固态硬盘使用装置查询负载均衡表获取该数据块的潜伏期。
102、判断数据块的潜伏期是否大于预警值,预警值小于典型潜伏期,典型潜伏期为预设的对固态硬盘中的数据块操作失败时的潜伏期。
对每一数据块(Block)来说,当潜伏期达到一定程度时,若继续对该Block进行擦写,则可能会出现失败。本实施例中,可预先对样本固态硬盘中的各Block发生擦写失败时的潜伏期进行统计,得到典型潜伏期。例如,将所有Block中发生擦写失败时的最小潜伏期作为典型潜伏期,预警值小于该典型潜伏期;或者,将所有或部分Block发生擦写失败时的潜伏期的平均值作为典型潜伏期,预警值小于该典型潜伏期;或者,按照其他规则统计出典型潜伏期并设定预警值。
103、若数据块的潜伏期大于预警值,则禁止对数据块执行操作。
固态硬盘使用装置根据步骤102中判断出的潜伏期与预警值的关系,决定是否继续对该数据块执行操作。
具体的,若Block当前的潜伏期大于预警值,表示该数据块寿命较差,即该数据块能够承担的擦写次数比较低,若继续对该数据块进行操作会导致擦写失败等。此时,即使该数据块的擦写次数远远小于其他Block的擦写次数,也禁止对该数据块进行擦除操作、写操作。
可选的,若待操作数据块的潜伏期不大于预警值,表示该待操作数据块寿命较强,即该待操作数据块能够承担的擦写次数比较高,可对数据块执行擦写操作,即可执行擦除操作、写操作。
可选的,本实施例中,对于潜伏期大于预警值的待操作数据块,固态硬盘使用装置在禁止对其执行操作后,还可在预设的预坏块表中记录该待操作数据块,该预坏块表用于指示需要减少擦写操作的数据块。例如,在本发明的实施例中,可设置预坏块表,预坏块表的格式和用于记录坏块的坏块表的格式相同,即每个块中有1~2bit指示该块是否可以正常使用或作为优选使用;如00指示为好块,01指示为坏块,10指示为预坏块类型。另外,根据设定的预警值,在对块进行擦写过程中记录当前除潜伏时间,当当前除潜伏时间到达预警值时,暂不使用该块,将该类块加入预坏块表。对于加入到预坏块表中的Block,暂时不对其进行擦写操作或减少擦写操作的次数,以避免其很快成为坏快,但不影响对其进行的读操作。
需要说明的是,预坏块表中记录的Block并不是表真正的坏数据块,而是若对其继续操作则容易变为坏数据块的数据块。将潜伏期大于预警值的Block记录在预坏块表中,减少或暂停对该Block的擦除操作或写操作,从而在一定程度上减少坏块出现的概率。
可选的,上述实施例一种,对数据块执行操作之后,固态硬盘使用装置获得操作过程中的数据块的潜伏期;根据获得的潜伏期更新负载均衡表中所述数据块的潜伏期。
具体的,为了使负载均衡表中记录各Block当前的潜伏期,对于每一具体的数据块,每次执行完操作后,获取在操作过程中所述数据块的潜伏期,并用获取的潜伏期更新负载均衡表。例如,在执行所述操作之前,根据所述数据块的潜伏期未2ms,在执行所述操作过程中,所述数据块的潜伏期为3ms,则可以将负载均衡表中所述数据块的潜伏期更新为3ms。换一种表达方式,在对数据块执行本次操作之后,可以根据本次操作过程中该数据块的潜伏期更新负载均衡表中所述数据块的潜伏期。
可选的,上述实施例一中,在判断待操作数据块的潜伏期是否大于预警值之前,可统计出固态硬盘的擦写次数与潜伏期变化的特点,从而确定出预警值。一般来说,潜伏期包括擦潜伏期tBERS与写潜伏期tPROG。具体的,请参照图2A、图2B。
图2A为本发明固态硬盘编程操作的示意图。基于与非门闪存的固态硬盘地址、命令和数据的I/O通道是复用的,对一个页编程的过程,即写操作的过程如下:先发送一个时钟周期的写操作命令(例如“0x80”),再发送五个时钟周期的写地址,然后发送数据。数据发送完成后,发送一个时钟周期的写操作命令(例如“0x10”)表示数据已发送完,再等待一段时间后,进入查询状态判断是否写数据成功。如果没有成功,需要重新写数据。该过程中等待的一段时间称之为写潜伏期(tPROG)。
图2B为本发明固态硬盘擦除操作的示意图。同理,基于与非门闪存的固态硬盘地址、命令和数据的I/O通道是复用的,对一个数据块擦除的过程,即擦除操作的过程如下:先发送一个时钟周期的擦除操作命令(例如“0x60”),再发送三个时钟周期的擦地址,发送一个时钟周期的擦除操作命令(例如“0xD0”),再等待一段时间长后,进入查询状态判断是否擦除数据成功,如果没有成功则表示发送擦失败,需要将正在操作的Block置为坏块。该过程中等待的一段时间称之为擦潜伏期(tBERS)。
一般来说,擦潜伏时间tBERS和写潜伏时间tPROG会随着擦写次数的增加而发生变化。具体的,请参见图3。
图3为本发明固态硬盘的擦写特性示意图。请参照图3,横坐标为擦写次数,左边的纵坐标为擦除潜伏时间的变化值,其单位为us(微秒),右边的纵坐标为写潜伏时间的变化值,其单位为us,虚线所示为擦潜伏期随擦写次数发生变化的变化曲线,实线所示为写潜伏期随擦写次数发生变化的变化曲线。随着擦写次数的增加,固态硬盘的阈值电压会发生变化,由图3可知,当达到一定程度之后就会出现擦失败或写失败,对应到可以直接测量的数据,即擦潜伏时间tBERS和写潜伏时间tPROG会随着擦写次数的增加而发生变化。
经验证发现,固态硬盘的擦写次数与擦潜伏期的变化关系呈现一定的规律。下面,以擦潜伏期与擦写次数的关系为例对本发明进行详细说明,具体的,可参见图4A与图4B。
图4A为本发明基于MLC的固态硬盘的擦潜伏时间tBERS与擦写次数的关系曲线示意图,图4B是本发明基于SLC的固态硬盘的擦潜伏时间tBERS与擦写次数的关系曲线示意图。
请参照图4A与图4B,横坐标为擦写次数,左边的纵坐标为擦除潜伏时间的变化值,其单位为ms(毫秒)。擦潜伏时间tBERS会随着读擦写次数的增加而变化,并且具有一定的规律性:擦潜伏时间tBERS会随着读擦写次数的增加而规律性增大,当块的擦潜伏时间tBERS大到一定程度时,对该块擦除会出现擦失败。
同理,以写潜伏期为例:写潜伏时间tPROG会随着读擦写次数的增加而规律性减少,当块的写潜伏时间tPROG减少到一定程度时,对该块写会出现写失败。
综合上述可知,确定预警值的过程中,统计出固态硬盘的擦写次数与潜伏期变化的特点,动态监控实际操作的块的擦潜伏时间tBERS或页的写潜伏时间tPROG,设定预警值,并根据该预警值,设置多个小于该预警值的阈值。当擦潜伏时间tBERS或写潜伏时间tPROG到达相应设定的阈值后做不同处理(如减少使用频率或暂不使用等),在块失效前将其暂时屏蔽,从而减少保留块消耗。即通过动态预判的方式识别出不同品质的块,尽量减少对品质较差块的使用,从而整体上延长了固态硬盘的使用寿命。下面,以根据擦写次数与擦潜伏期的变化关系确定预警值为例对本发明进行详细阐述。
图5为本发明固态硬盘使用方法中确定预警值的流程图。如图5所示,本实施例包括如下步骤:
201、选取样本,准备擦写测试。
选择某型号新批次的一定数量的NAND Flash作为样本,准备擦写测试,测试各Block擦写失败时的潜伏期。
202、对Block进行擦写,记录擦潜伏期。
每擦写一次,记录该Block的擦潜伏期。
203、判断是否出现擦失败。
204、确定所有样本测试完毕。
205、判断被测试的NAND Flash的数量是否达到预定的测试数量。
206、确定擦潜伏期随着擦写次数增加而变化的变化关系。
具体的,可参见图6,图6为本发明实施例中擦写次数与擦潜伏期的变化关系示意图,其中,横坐标为擦写次数,纵坐标为擦潜伏期(tBERS)。如图6所示,当擦写次数为1~200时,擦潜伏期约为3ms;当擦写次数为200~400时,擦潜伏期约为4ms;当擦写次数为400~600时,擦潜伏期约为5ms……当擦写次数大于3400时候,擦潜伏期约为10ms。
207、确定典型潜伏期。
若潜伏期随擦写次数的变化小于预设值,则确定该擦潜伏期为典型潜伏期。例如,请参照图6,当擦写次数大于3400时,潜伏期基本保持在10ms而不再发生变化,则可以选择10ms为典型潜伏期,而将9ms设置为预警值,达到该预警值意味着如果继续使用该Block,则该Block可能很快会变为坏块。
进一步的,上述实施例一中,还可根据预警值,设置多级阈值以对各Block进行可靠性分级,其中各阈值小于所述预警值。此时,对于每一阈值,可根据该阈值,对负载均衡表中当前的潜伏期小于或等于阈值的Block进行操作,使各Block的同时到达阈值。
具体的,再请参照图3,可根据需求设置第一级阈值为6ms,第二级阈值为7ms,第三级阈值为8ms,第四级阈值为9ms。最初进行擦写操作时,可随机对任一个Block进行操作,当数据块的潜伏期即将达到第一阈值时,则避免对该数据块进行操作,而对其他各Block进行操作,使得各Block均达到第一级阈值。当各Block都达到第一级阈值后,在保证潜伏期小于第二级阈值的前提下,可随机对各Block进行操作……以此类推,从而保证按照阈值对各Block进行负载均衡以提高SSD的使用寿命。该过程中,若产生坏块,则不对该Block进行操作,例如,各Block都达到第三级阈值时,若随机操作使得某Block发生坏块,此时,在保证潜伏期小于第四级阈值的前提下,可随机对其他各Block进行操作。另外,对于每一级阈值,可设置不同的操作方式,例如,当数据块的潜伏期小于第一阈值的时候,可随机的对该数据块进行擦写操作;当数据块的潜伏期介于第一级与第二级阈值之间时,可减少对该数据块的擦写操作;当数据块的潜伏期大于第二级阈值时,可暂停对该数据块的操作。
需要说明的是,上述过程是设置多级阈值以对各block进行可靠性分级,从而区分不同品质的Block,达到不同的阈值后做不同的处理。在实际的实施方式中,也可设置多级阈值区分不同品质的Page,达到不同的阈值后做不同的处理。从而实现对Block更精细化的管理。
图7为本发明固态硬盘使用寿命方法中根据预警值进行负载均衡的流程图。如图7所示,本实施例包括如下步骤:
301、生成负载均衡表。
本步骤中,将每个Block初始的潜伏期都进行记录。
302、进行操作时监控并更新各Block的负载均衡表。
在对Block的擦写过程中,监控各Block当前的潜伏期,并将当前的潜伏期更新到负载均衡表中。例如,若某Block进行擦除操作前初始的潜伏期为3ms,若对该Block1进行擦除操作,第100次擦除操作后该Block的潜伏期变更为4ms,则在第100次擦除操作后将负载均衡表中的潜伏期更新为4ms。
303、判断当前的潜伏期是否小于或等于预警值。
对于一具体的数据块,每次擦写操作后,将该数据块的潜伏期与预警值进行比较,使得Block之间的负载均衡参考负载均衡表来实现,即若当前的潜伏期小于或等于预警值,在返回步骤302;否则,执行步骤304。
304、将该待操作数据块加入到预坏块表中,暂时不对该待操作数据块进行擦写操作,在所有Block或大部分Block的潜伏期都大于预警值时,用保留块替换预坏块表中的Block。
需要说明的是,对于加入到预坏块表中的Block,暂时不对其进行擦写操作或减少擦写操作的次数,以避免其很快成为坏快,但不影响对其进行的读操作。
305、判断保留块是否耗尽。
SSD在设计时会预留一部分冗余Block作为保留块,如100G的SSD其裸容量可能为128G,该28G即可用作保留块。SSD判断保留块是否耗尽,若保留块未耗尽,则返回步骤304;否则,若保留块耗尽,则执行步骤306。
306、继续对Block进行操作。
若保留块耗尽,则对预坏块表中的Block继续进行操作。
307、判断Block是否发生擦写失败。
继续操作的过程中,判断当前操作的预坏块表中的Block是否发生擦写失败,若未发生,则返回步骤306;否则,若发生擦写失败,则执行步骤308.
308、将该Block加入坏块表,作为真实坏Block。
本发明实施例提供的固态硬盘使用方法,通过对待操作数据块的潜伏期与预警值进行比较,动态的监控待操作数据块的潜伏期,禁止对潜伏期大于预警值的Block进行操作,从而从物理特性上做到真正的负载均衡,在一定程度上减少了坏块的产生,尽可能使用了保留块,从而延长了SSD的寿命。例如,如图8所示,图8为本发明实施例提供的一种固态硬盘使用状态图,横坐标用于指示各Block实际能够承载的最大擦写次数,纵坐标用于指示该SSD中的Block。其中,block1实际能够承载的最大擦写次数约为3.2K次,Block2实际能够承载的最大擦写次数约为4.8K次,Block3实际能够承载的的最大擦写次数约为1.5K次……。现有技术中,为保证各Block之间的负载均衡,会均匀的对每个Block进行相同次数的擦写,根据这种方式,若各Block的擦写次数达到3K次时,block3、block15、block26可能会发生坏块。而本实施例提供的方法,不根据各Block的擦写次数来实现各Block之间的负载均衡,而是根据各Block当前的潜伏期与预警值的大小关系实现负载均衡以提高SSD的使用寿命。例如,假设预警值为9ms,Block3在进行1.2K次的擦写后,若继续对其进行擦写,则潜伏期有可能大于9ms,此时,暂停对block3的擦写;而对Block4进行擦写1.2K次后,若继续对其进行擦写,也不会导致潜伏期大于9ms,因此,可继续对blcok4进行擦写。根据上面的描述可知,通过本发明实施例的方法从Block的物理特性上做到了真正的负载均衡,在一定程度上减少了坏块的数量,进而延长了SSD的寿命。
图9为本发明固态硬盘使用方法实施例二的流程图。相较于图1实施例中,本实施例中,固态硬盘使用装置在对各Block进行操作之前,先根据负载均衡表确定待操作的数据块。具体的,本实施例包括如下步骤:
401、根据固态硬盘的负载均衡表确定待操作的数据块。
本实施例中,负载均衡表中存储有潜伏期不大于预警值的Block。每次需要进行擦除操作或写操作之前,先从负载均衡表中确定待操作的数据块。优选的,可选择负载均衡表中潜伏期小的Block做为待操作的数据块。
402、对所述数据块进行操作,其中,操作包括擦除操作或写操作。
在确定出数据块后,对该数据块进行擦除操作或写操作。
403、在负载均衡表中记录在操作过程中所述数据块的潜伏期,其中,潜伏期为对所述数据块执行所述操作而持续的时间。
为了使负载均衡表中存储各Block当前的潜伏期,对于每一具体的数据库,每次执行完操作后,获取在操作过程中所述数据块的的潜伏期,并用获取的潜伏期更新负载均衡表。
404、判断所述数据块的潜伏期是否大于预警值,其中,预警值小于典型潜伏期,典型潜伏期为预设的对固态硬盘中的数据块操作失败时的潜伏期;
405、若待操作数据块的潜伏期大于预警值,则在预设的预坏块表中记录待操作数据块。
为确保负载均衡表中的各Block均为可操作的Block,即确保负载均衡表中的各Block的潜伏期均不大于预警值。本步骤中,对于具体的数据块,执行完操作后,固态硬盘使用装置判断该数据块的潜伏期是否大于预警值,若大于预警值,则将该数据块记录到预坏块表中,并从负载均衡表中移出;否则,若数据块的潜伏期不大于预警值,则在负载均衡表中记录该数据块执行操作后的潜伏期。例如,在本发明的实施例中,可设置预坏块表,预坏块表的格式和用于记录坏块的坏块表的格式相同,即每个块中有1~2bit指示该块是否可以正常使用或作为优选使用;如00指示为好块,01指示为坏块,10指示为预坏块类型。另外,根据设定的预警值,在对块进行擦写过程中记录当前除潜伏时间,当当前除潜伏时间到达预警值时,暂不使用该块,将该类块加入预坏块表。对于加入到预坏块表中的Block,暂时不对其进行擦写操作或减少擦写操作的次数,以避免其很快成为坏快,但不影响对其进行的读操作。
需要说明的是,本实施例中,还可根据预警值,设置多级阈值以对各Block进行可靠性分级。具体的,统计出固态硬盘的擦写次数与潜伏期变化的特点,动态监控实际操作的块的擦潜伏时间tBERS或页的写潜伏时间tPROG,可以设定出预警值,并根据该预警值,设置多个小于该预警值的阈值。当擦潜伏时间tBERS或写潜伏时间tPROG到达相应设定的阈值后做不同处理(如减少使用频率或暂不使用等),在块失效前将其暂时屏蔽,从而减少保留块消耗。即通过动态预判的方式识别出不同品质的块,尽量减少对品质较差块的使用,从而整体上延长了固态硬盘的使用寿命。
本发明实施例提供的固态硬盘使用方法,执行操作之前先确定出潜伏期小于预警值的数据块作为待操作数据块并执行操作,动态的监控待操作数据块的潜伏期,禁止对潜伏期大于预警值的Block进行操作,从而从物理特性上做到真正的负载均衡,在一定程度上减少了坏块的产生,尽可能使用了保留块,从而延长了SSD的寿命。
图10为本发明固态硬盘使用装置实施例一的结构示意图,本实施例提供的固态硬盘使用装置是与本发明图1实施例对应的装置实施例,具体实现过程在此不再赘述。具体的,本实施例提供的固态硬盘使用装置100具体包括:
确定模块11,用于当需要对固态硬盘中的数据块进行操作时,根据固态硬盘的负载均衡表确定的数据块的潜伏期,潜伏期为对数据块执行操作而持续的时间,操作包括擦除操作或写操作;
判断模块12,用于判断确定模块11确定出的数据块的潜伏期是否大于预警值,预警值小于典型潜伏期,典型潜伏期为预设的对固态硬盘中的数据块操作失败时的潜伏期;
处理模块13,用于若判断模块12判断出数据块的潜伏期大于预警值,则禁止对数据块执行操作。
本发明实施例提供的固态硬盘使用装置,通过对待操作数据块的潜伏期与预警值进行比较,动态的监控待操作数据块的潜伏期,禁止对潜伏期大于预警值的Block进行操作,从而从物理特性上做到真正的负载均衡,在一定程度上减少了坏块的产生,尽可能使用了保留块,从而延长了SSD的寿命。
可选的,处理模块13,还用于若判断模块12判断出数据块的潜伏期不大于预警值,则对数据块执行操作。
图11为本发明固态硬盘使用装置实施例二的结构示意图。如图11所示,本实施例提供的固态硬盘使用装置在上述图10所示装置的基础上,进一步的,还包括:
获取模块14,用于获得操作过程中的数据块的潜伏期;
更新模块15,用于根据获取模块14获得的潜伏期更新负载均衡表中数据块的潜伏期。
再请参照图8,固态硬盘使用装置还包括:
记录模块16,用于在禁止操作模块禁止对数据块执行操作之后,在预设的预坏块表中记录数据块,预坏块表用于指示需要减少操作的数据块。
图12为本发明固态硬盘使用装置实施例三的结构示意图,本实施例提供的固态硬盘使用装置是与本发明图9实施例对应的装置实施例,具体实现过程在此不再赘述。具体的,本实施例提供的固态硬盘使用装置200具体包括:
选择模块21,用于根据固态硬盘的负载均衡表确定数据块;
操作模块22,用于对确定模块确定的数据块进行操作,其中,操作包括擦除操作或写操作;
记录模块23,用于在负载均衡表中记录在操作过程中数据块的潜伏期,其中,潜伏期为对数据块执行操作而持续的时间;
判断模块24,用于判断数据块的潜伏期是否大于预警值,其中,预警值小于典型潜伏期,典型潜伏期为预设的对固态硬盘中的数据块操作失败时的潜伏期;
记录模块23,还用于若判断模块24判断出数据块的潜伏期大于预警值,则在预设的预坏块表中记录数据块。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (10)

1.一种固态硬盘使用方法,其特征在于,包括:
当接收到擦除操作指令时,根据所述固态硬盘的负载均衡表确定所述负载均衡表所记录的数据块中是否有潜伏期小于当前阈值的数据块,所述潜伏期为执行所述擦除操作而持续的时间,所述潜伏期对应多级阈值,所述多级阈值按从小到大的顺序排列;
当所述负载均衡表所记录的数据块中有潜伏期小于当前阈值的数据块时,则从潜伏期小于当前阈值的数据块中选择进行操作的数据块,并对所选择的数据块执行所述擦除操作;
当所述负载均衡表所记录的数据块中没有潜伏期小于当前阈值的数据块,且当前阈值不是最后一级阈值时,则将当前阈值的下一级阈值设置为当前阈值,并从潜伏期小于当前阈值的数据块中选择进行操作的数据块,并对所选择的数据块执行所述擦除操作。
2.根据权利要求1所述的方法,其特征在于,所述对所选择的数据块执行所述擦除操作或者写操作之后,还包括:
获得操作完成之后被操作数据块的潜伏期;
根据获得的潜伏期更新所述负载均衡表中所述被操作数据块的潜伏期。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:当所述负载均衡表所记录的数据块中有潜伏期小于当前阈值的数据块,且所述当前阈值为最后一级阈值时,将潜伏期大于等于当前阈值的数据块记录至预设的预坏块表中。
4.根据权利要求1-3任意一项所述的方法,其特征在于,所述方法还包括:当所述负载均衡表所记录的数据块中没有潜伏期小于当前阈值的数据块,且当前阈值是最后一级阈值时,选择所述固态硬盘的保留块执行所述擦除操作或者写操作。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:判断所述保留块是否耗尽,若所述保留块耗尽,则对所述预坏块表中的数据块继续进行操作。
6.一种固态硬盘使用装置,其特征在于,包括:
确定模块,用于当接收到擦除操作或者写操作指令时,根据所述固态硬盘的负载均衡表确定所述负载均衡表所记录的数据块中是否有潜伏期小于当前阈值的数据块,所述负载均衡表中记录有每个数据块的潜伏期,所述潜伏期为执行所述擦除操作或写操作而持续的时间,所述潜伏期对应多级阈值,所述多级阈值按从小到大的顺序排列;
处理模块,用于当所述负载均衡表所记录的数据块中有潜伏期小于当前阈值的数据块时,则从潜伏期小于当前阈值的数据块中选择进行操作的数据块,并对所选择的数据块执行所述擦除操作或者写操作;
所述处理模块还用于当所述负载均衡表所记录的数据块中没有潜伏期小于当前阈值的数据块,且当前阈值不是最后一级阈值时,则将当前阈值的下一级阈值设置为当前阈值,并从潜伏期小于当前阈值的数据块中选择进行操作的数据块,并对所选择的数据块执行所述擦除操作或者写操作。
7.根据权利要求6所述的固态硬盘使用装置,其特征在于,还包括:
获取模块,用于在对所选择的数据块执行所述擦除操作或者写操作之后,获得操作完成之后被操作数据块的潜伏期;
更新模块,用于根据获得的潜伏期更新所述负载均衡表中所述被操作数据块的潜伏期。
8.根据权利要求6或7所述的固态硬盘使用装置,其特征在于,所述处理模块还用于:当所述负载均衡表所记录的数据块中有潜伏期小于当前阈值的数据块,且所述当前阈值为最后一级阈值时,将潜伏期大于等于当前阈值的数据块记录至预设的预坏块表中。
9.根据权利要求6-8任意一项所述的固态硬盘使用装置,其特征在于,所述处理模块还用于:当所述负载均衡表所记录的数据块中没有潜伏期小于当前阈值的数据块,且当前阈值是最后一级阈值时,选择所述固态硬盘的保留块执行所述擦除操作或者写操作。
10.根据权利要求9所述的固态硬盘使用装置,其特征在于,所述处理模块还用于:判断所述保留块是否耗尽,若所述保留块耗尽,则对所述预坏块表中的数据块继续进行操作。
CN201710071252.7A 2013-12-23 2013-12-23 固态硬盘使用方法及装置 Active CN106909318B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710071252.7A CN106909318B (zh) 2013-12-23 2013-12-23 固态硬盘使用方法及装置

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201710071252.7A CN106909318B (zh) 2013-12-23 2013-12-23 固态硬盘使用方法及装置
CN201310718063.6A CN103678150B (zh) 2013-12-23 2013-12-23 固态硬盘使用方法及装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201310718063.6A Division CN103678150B (zh) 2013-12-23 2013-12-23 固态硬盘使用方法及装置

Publications (2)

Publication Number Publication Date
CN106909318A true CN106909318A (zh) 2017-06-30
CN106909318B CN106909318B (zh) 2020-05-08

Family

ID=50315781

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201310718063.6A Active CN103678150B (zh) 2013-12-23 2013-12-23 固态硬盘使用方法及装置
CN201710071252.7A Active CN106909318B (zh) 2013-12-23 2013-12-23 固态硬盘使用方法及装置

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201310718063.6A Active CN103678150B (zh) 2013-12-23 2013-12-23 固态硬盘使用方法及装置

Country Status (4)

Country Link
US (1) US10310930B2 (zh)
EP (1) EP3079067A4 (zh)
CN (2) CN103678150B (zh)
WO (1) WO2015096455A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110825319A (zh) * 2018-08-13 2020-02-21 爱思开海力士有限公司 基于块状态确定可用性的存储器系统及操作方法
CN113703681A (zh) * 2021-08-26 2021-11-26 杭州海康存储科技有限公司 一种硬盘管理方法及装置、硬盘设备、存储介质

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103678150B (zh) * 2013-12-23 2017-06-09 华为技术有限公司 固态硬盘使用方法及装置
WO2018040115A1 (en) * 2016-09-05 2018-03-08 Telefonaktiebolaget Lm Ericsson (Publ) Determination of faulty state of storage device
US10318423B2 (en) * 2016-12-14 2019-06-11 Macronix International Co., Ltd. Methods and systems for managing physical information of memory units in a memory device
US10261705B2 (en) * 2016-12-15 2019-04-16 Alibaba Group Holding Limited Efficient data consistency verification for flash storage
JP7010667B2 (ja) 2017-11-06 2022-01-26 キオクシア株式会社 メモリシステムおよび制御方法
CN110364216B (zh) * 2018-04-09 2022-03-01 合肥沛睿微电子股份有限公司 固态硬盘及其运行方法
CN108958655B (zh) * 2018-06-26 2021-08-10 郑州云海信息技术有限公司 一种固态硬盘的数据擦写方法、装置、设备及存储介质
CN109102839B (zh) * 2018-08-15 2021-06-11 浪潮电子信息产业股份有限公司 一种坏块标记方法、装置、设备及可读存储介质
US20200409601A1 (en) * 2019-06-28 2020-12-31 Western Digital Technologies, Inc. Hold of Write Commands in Zoned Namespaces
CN110517718B (zh) * 2019-08-22 2021-06-08 深圳忆联信息系统有限公司 一种有效筛选颗粒新增坏块的方法及其系统
CN110941535A (zh) * 2019-11-22 2020-03-31 山东超越数控电子股份有限公司 一种硬盘负载均衡方法
CN111026997B (zh) * 2019-12-17 2023-04-25 上饶市中科院云计算中心大数据研究院 一种热点事件热度量化方法及装置
CN115552383A (zh) * 2020-08-03 2022-12-30 华为技术有限公司 闪存数据管理方法、存储设备控制器及存储设备
KR20230094622A (ko) * 2021-12-21 2023-06-28 에스케이하이닉스 주식회사 슈퍼 메모리 블록의 프로그램 상태를 기초로 타깃 동작을 실행하는 메모리 시스템 및 그 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101535967A (zh) * 2006-11-30 2009-09-16 株式会社东芝 存储器系统
CN101740110A (zh) * 2009-12-17 2010-06-16 中兴通讯股份有限公司 一种Nand Flash擦除均衡的方法及装置
US20110191526A1 (en) * 2007-12-21 2011-08-04 Brent Haukness Flash Memory Timing Pre-Characterization

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050204187A1 (en) * 2004-03-11 2005-09-15 Lee Charles C. System and method for managing blocks in flash memory
JP4110000B2 (ja) * 2003-01-28 2008-07-02 株式会社ルネサステクノロジ 記憶装置
JP5100663B2 (ja) * 2006-12-26 2012-12-19 株式会社アドバンテスト 試験装置および試験方法
JP4675881B2 (ja) * 2006-12-27 2011-04-27 株式会社東芝 磁気ディスク装置およびその制御方法
CN101477492B (zh) * 2009-01-21 2010-12-29 华中科技大学 一种用于固态硬盘的循环重写闪存均衡方法
US20110252289A1 (en) * 2010-04-08 2011-10-13 Seagate Technology Llc Adjusting storage device parameters based on reliability sensing
US8737141B2 (en) * 2010-07-07 2014-05-27 Stec, Inc. Apparatus and method for determining an operating condition of a memory cell based on cycle information
US8751903B2 (en) * 2010-07-26 2014-06-10 Apple Inc. Methods and systems for monitoring write operations of non-volatile memory
KR101190742B1 (ko) * 2010-12-06 2012-10-12 에스케이하이닉스 주식회사 메모리의 콘트롤러 및 이를 포함하는 스토리지 시스템, 메모리의 수명 측정 방법
US10079068B2 (en) * 2011-02-23 2018-09-18 Avago Technologies General Ip (Singapore) Pte. Ltd. Devices and method for wear estimation based memory management
CN103019969A (zh) * 2011-09-27 2013-04-03 威刚科技(苏州)有限公司 闪存储存装置及其不良储存区域的判定方法
CN103678150B (zh) * 2013-12-23 2017-06-09 华为技术有限公司 固态硬盘使用方法及装置
US9588702B2 (en) * 2014-12-30 2017-03-07 International Business Machines Corporation Adapting erase cycle parameters to promote endurance of a memory

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101535967A (zh) * 2006-11-30 2009-09-16 株式会社东芝 存储器系统
US20110191526A1 (en) * 2007-12-21 2011-08-04 Brent Haukness Flash Memory Timing Pre-Characterization
CN101740110A (zh) * 2009-12-17 2010-06-16 中兴通讯股份有限公司 一种Nand Flash擦除均衡的方法及装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110825319A (zh) * 2018-08-13 2020-02-21 爱思开海力士有限公司 基于块状态确定可用性的存储器系统及操作方法
CN110825319B (zh) * 2018-08-13 2023-08-18 爱思开海力士有限公司 基于块状态确定可用性的存储器系统及操作方法
CN113703681A (zh) * 2021-08-26 2021-11-26 杭州海康存储科技有限公司 一种硬盘管理方法及装置、硬盘设备、存储介质

Also Published As

Publication number Publication date
CN103678150A (zh) 2014-03-26
US10310930B2 (en) 2019-06-04
EP3079067A4 (en) 2016-11-02
US20160299805A1 (en) 2016-10-13
WO2015096455A1 (zh) 2015-07-02
CN106909318B (zh) 2020-05-08
CN103678150B (zh) 2017-06-09
EP3079067A1 (en) 2016-10-12

Similar Documents

Publication Publication Date Title
CN103678150B (zh) 固态硬盘使用方法及装置
JP5418808B2 (ja) 適応ハイブリッド密度メモリ記憶装置の制御方法、及び適応ハイブリッド密度メモリ記憶装置
CN102646069B (zh) 一种延长固态盘使用寿命的方法
US8626986B2 (en) Pre-emptive garbage collection of memory blocks
US8706983B2 (en) Garbage collection of memory blocks using volatile memory
CN107368429A (zh) 数据储存装置、内存控制器及其数据管理方法与数据区块管理方法
US11194737B2 (en) Storage device, controller and method for operating the controller for pattern determination
US8225050B2 (en) Memory storage device and a control method thereof
US9535611B2 (en) Cache memory for hybrid disk drives
CN109358809B (zh) 一种raid数据存储系统及方法
US20110302359A1 (en) Method for managing flash memories having mixed memory types
US20170038977A1 (en) Valid data merging method, memory controller and memory storage apparatus
US9141530B2 (en) Data writing method, memory controller and memory storage device
CN104503703B (zh) 缓存的处理方法和装置
US10162561B2 (en) Managing backup of logical-to-physical translation information to control boot-time and write amplification
CN110431526A (zh) 用于自动化动态字线开始电压的设备与方法
US20200401353A1 (en) Resource allocation in memory systems based on operation modes
CN109918234A (zh) 一种基于ssd的元数据恢复方法、装置、设备及介质
US20130151764A1 (en) Systems and methods for storing data in a multi-level cell solid state storage device
CN104699415A (zh) 固态硬盘写入控制方法和装置
US20220043713A1 (en) Meta Data Protection against Unexpected Power Loss in a Memory System
CN107203341A (zh) 基于闪存的数据存储方法、装置以及闪存芯片
US8667211B2 (en) System and method for managing a non-volatile memory
WO2014185038A1 (ja) 半導体記憶装置およびその制御方法
CN105138294B (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