CN103678150B - 固态硬盘使用方法及装置 - Google Patents
固态硬盘使用方法及装置 Download PDFInfo
- Publication number
- CN103678150B CN103678150B CN201310718063.6A CN201310718063A CN103678150B CN 103678150 B CN103678150 B CN 103678150B CN 201310718063 A CN201310718063 A CN 201310718063A CN 103678150 B CN103678150 B CN 103678150B
- Authority
- CN
- China
- Prior art keywords
- incubation period
- data block
- threshold value
- block
- early warning
- 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
- 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/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- 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/0703—Error 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/079—Root cause analysis, i.e. error or fault diagnosis
-
- 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/0703—Error 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/0706—Error 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/0727—Error 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
-
- 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/0703—Error 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/0751—Error or fault detection not based on redundancy
- G06F11/0754—Error or fault detection not based on redundancy by exceeding limits
- G06F11/0757—Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- 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
- G06F3/0611—Improving I/O performance in relation to response time
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- 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/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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/0674—Disk device
- G06F3/0676—Magnetic disk 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/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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3409—Recording 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/3419—Recording 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
-
- 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/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
- G06F2212/1036—Life time enhancement
-
- 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/21—Employing a record carrier using a specific recording technology
- G06F2212/214—Solid state disk
-
- 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/72—Details relating to flash memory management
- G06F2212/7204—Capacity control, e.g. partitioning, end-of-life degradation
-
- 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/72—Details relating to flash memory management
- G06F2212/7206—Reconfiguration of flash memory system
-
- 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/72—Details relating to flash memory management
- G06F2212/7211—Wear 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的寿命也随之耗尽。
发明内容
本发明实施例提供一种固态硬盘使用方法及装置,通过负载均衡以减少坏块的产生从而减少保留块的使用,最终到达提高固态硬盘使用寿命的目的。
第一个方面,本发明实施例提供一种固态硬盘使用方法,包括:
当需要对固态硬盘中的数据块进行操作时,根据所述固态硬盘的负载均衡表确定待操作的数据块的潜伏期,所述潜伏期为执行所述操作而持续的时间,所述操作包括擦除操作或写操作;
判断所述数据块的潜伏期是否大于预警值,所述预警值小于典型潜伏期,所述典型潜伏期为预设的对所述固态硬盘中的数据块操作失败时的潜伏期;
若所述数据块的潜伏期大于所述预警值,则禁止对所述数据块执行所述操作。
在第一个方面的第一种可能的实现方式中,该方法还包括:
若所数据块的潜伏期不大于所述预警值,则对所述数据块执行所述操作。
结合第一个方面的第一种可能的实现方式,在第一个方面的第二种可能的实现方式中,所述对所述数据块执行所述操作之后,还包括:
获得所述操作过程中的所述数据块的潜伏期;
根据获得的潜伏期更新所述负载均衡表中所述数据块的潜伏期。
结合第一个方面、第一个方面的第一种或第二种可能的实现方式,在第一个方面的第三种可能的实现方式中,所述禁止对所述数据块执行所述操作之后,还包括:
在预设的预坏块表中记录所述数据块,所述预坏块表用于指示需要减少操作的数据块。
第二个方面,本发明实施例提供一种固态硬盘使用方法,包括:
根据固态硬盘的负载均衡表确定待操作的数据块;
对所述数据块进行操作,其中,所述操作包括擦除操作或写操作;
在所述负载均衡表中记录在所述操作过程中所述数据块的潜伏期,其中,所述潜伏期为对所述数据块执行所述操作而持续的时间;
判断所述数据块的潜伏期是否大于预警值,其中,所述预警值小于典型潜伏期,所述典型潜伏期为预设的对所述固态硬盘中的数据块操作失败时的潜伏期;
若所述数据块的潜伏期大于所述预警值,则在预设的预坏块表中记录所述数据块。
第三个方面,本发明实施例提供一种固态硬盘使用装置,包括:
确定模块,用于当需要对固态硬盘中的数据块进行操作时,根据所述固态硬盘的负载均衡表确定的数据块的潜伏期,所述潜伏期为对所述数据块执行所述操作而持续的时间,所述操作包括擦除操作或写操作;
判断模块,用于判断所述确定模块确定出的所述数据块的潜伏期是否大于预警值,所述预警值小于典型潜伏期,所述典型潜伏期为预设的对所述固态硬盘中的数据块操作失败时的潜伏期;
处理模块,用于若所述判断模块判断出所述数据块的潜伏期大于所述预警值,则禁止对所述数据块执行所述操作。
在第三个方面的第一种可能的实现方式中,所述处理模块,还用于若所述判断模块判断出所述数据块的潜伏期不大于所述预警值,则对所述数据块执行所述操作。
结合第三个方面的第一种可能的实现方式,在第三个方面的第二种可能的实现方式中,该装置还包括:
获取模块,用于获得所述操作过程中的所述数据块的潜伏期;
更新模块,用于根据所述获取模块获得的潜伏期更新所述负载均衡表中所述数据块的潜伏期。
结合第三个方面、第三个方面的第一种或第二种可能的实现方式,在第三个方面的第三种可能的实现方式中,该装置还包括:
记录模块,用于在所述禁止操作模块禁止对所述数据块执行所述操作之后,在预设的预坏块表中记录所述数据块,所述预坏块表用于指示需要减少所述操作的数据块。
第四个方面,本发明实施例提供一种固态硬盘使用装置,包括:
选择模块,用于根据固态硬盘的负载均衡表确定数据块;
操作模块,用于对所述确定模块确定的所述数据块进行操作,其中,所述操作包括擦除操作或写操作;
记录模块,用于在所述负载均衡表中记录在所述操作过程中所述数据块的潜伏期,其中,所述潜伏期为对所述数据块执行所述操作而持续的时间;
判断模块,用于判断所述数据块的潜伏期是否大于预警值,其中,所述预警值小于典型潜伏期,所述典型潜伏期为预设的对所述固态硬盘中的数据块操作失败时的潜伏期;
所述记录模块,还用于若所述判断模块判断出所述数据块的潜伏期大于所述预警值,则在预设的预坏块表中记录所述数据块。
本发明实施例提供的固态硬盘使用方法及装置,通过对各Block当前的潜伏期与预警值进行比较,动态的监控实际操作的Block的潜伏期,在当前的潜伏期小于或等于预警值时对该Block进行操作,通过本发明实施例的方法从SSD中Block的物理特性上做到了负载均衡,在一定程度上减少了坏块的数量,进而延长了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.根据权利要求2所述的方法,其特征在于,所述对所述数据块执行所述操作之后,还包括:
获得所述操作过程中的所述数据块的潜伏期;
根据获得的潜伏期更新所述负载均衡表中所述数据块的潜伏期。
4.根据权利要求1-3任意一项所述的方法,其特征在于,所述禁止对所述数据块执行所述操作之后,还包括:
在预设的预坏块表中记录所述数据块,所述预坏块表用于指示需要减少所述操作的数据块。
5.一种固态硬盘使用方法,其特征在于,包括:
根据固态硬盘的负载均衡表确定待操作的数据块,所述负载均衡表中记录每个数据块的潜伏期,所述潜伏期为对所述数据块执行操作而持续的时间;
所述潜伏期对应多级阈值,所述多级阈值按从小到大的顺序排列,前一级阈值小于后一级阈值,且最后一级阈值为预警值,所述预警值小于典型潜伏期,所述典型潜伏期为预设的对所述固态硬盘中的数据块操作失败时的潜伏期;
判断所述数据块的潜伏期是否大于当前阈值;
若所述数据块的潜伏期大于当前阈值,且所述当前阈值不是所述预警值时,则在所述负载均衡表中选择潜伏期小于所述当前阈值的数据块执行所述操作;
当所述数据块的潜伏期大于当前阈值,且所述当前阈值不是所述预警值时,且所述负载均衡表中不存在潜伏期小于所述当前阈值的数据块时,则对所述数据块执行所述操作,并将所述当前阈值的下一级阈值确定为当前阈值;
当所述当前阈值为所述预警值时,且所述数据块的潜伏期大于所述预警值时,则在预设的预坏块表中记录所述数据块。
6.一种固态硬盘使用装置,其特征在于,包括:
确定模块,用于当需要对固态硬盘中的数据块进行操作时,根据所述固态硬盘的负载均衡表确定的数据块的潜伏期,所述潜伏期为对所述数据块执行所述操作而持续的时间,所述操作包括擦除操作或写操作,所述潜伏期对应多级阈值,所述多级阈值按按从小到大的顺序排列,前一级阈值小于后一级阈值,且最后一级为预警值,所述预警值小于典型潜伏期,所述典型潜伏期为预设的对所述固态硬盘中的数据块操作失败时的潜伏期;
判断模块,用于判断所述数据块的潜伏期是否大于当前阈值;若所述数据块的潜伏期大于当前阈值,且所述当前阈值不是所述预警值时,则在所述负载均衡表中选择潜伏期小于所述当前阈值的数据块执行所述操作;当所述数据块的潜伏期大于当前阈值,所述当前阈值不是所述预警值时,且所述负载均衡表中不存在潜伏期小于所述当前阈值的数据块时,则对所述数据块执行所述操作,并将所述当前阈值的下一级阈值确定为当前阈值;
处理模块,用于当所述数据块的下一级阈值为所述预警值时,则禁止对所述数据块执行所述操作。
7.根据权利要求6所述的装置,其特征在于:
所述处理模块,还用于若所述判断模块判断出所述数据块的潜伏期不大于所述预警值,则对所述数据块执行所述操作。
8.根据权利要求7所述的装置,其特征在于,还包括:
获取模块,用于获得所述操作过程中的所述数据块的潜伏期;
更新模块,用于根据所述获取模块获得的潜伏期更新所述负载均衡表中所述数据块的潜伏期。
9.根据权利要求6~8任一项所述的装置,其特征在于,还包括:
记录模块,用于在所述处理模块禁止对所述数据块执行所述操作之后,在预设的预坏块表中记录所述数据块,所述预坏块表用于指示需要减少所述操作的数据块。
10.一种固态硬盘使用装置,其特征在于,包括:
选择模块,用于根据固态硬盘的负载均衡表确定数据块,所述负载均衡表中记录每个数据块的潜伏期,所述潜伏期为对所述数据块执行操作而持续的时间,所述潜伏期对应多级阈值,所述多级阈值按潜伏期的大小顺序排列,前一级阈值小于后一级阈值,且最后一级阈值为预警值,所述预警值小于典型潜伏期,所述典型潜伏期为预设的对所述固态硬盘中的数据块操作失败时的潜伏期;
操作模块,当所述数据块的潜伏期大于当前阈值,且所述当前阈值不是所述预警值时,则在所述负载均衡表中选择潜伏期小于所述当前阈值的数据块执行所述操作;当所述数据块的潜伏期大于当前阈值,所述当前阈值不是所述预警值时,且所述负载均衡表中不存在潜伏期小于所述当前阈值的数据块时,则对所述数据块执行所述操作,并将所述当前阈值的下一级阈值确定为当前阈值,其中,所述操作包括擦除操作或写操作;
记录模块,用于在所述负载均衡表中记录在所述操作过程中所述数据块的潜伏期,并在所述当前阈值为所述预警值时,且所述数据块的潜伏期大于所述预警值时,则在预设的预坏块表中记录所述数据块。
Priority Applications (5)
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 | 固态硬盘使用方法及装置 |
EP14873676.2A EP3079067A4 (en) | 2013-12-23 | 2014-07-10 | METHOD AND APPARATUS FOR USING INTEGRATED CIRCUIT DISK |
PCT/CN2014/081976 WO2015096455A1 (zh) | 2013-12-23 | 2014-07-10 | 固态硬盘使用方法及装置 |
US15/189,857 US10310930B2 (en) | 2013-12-23 | 2016-06-22 | Solid state disk using method and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310718063.6A CN103678150B (zh) | 2013-12-23 | 2013-12-23 | 固态硬盘使用方法及装置 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710071252.7A Division CN106909318B (zh) | 2013-12-23 | 2013-12-23 | 固态硬盘使用方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103678150A CN103678150A (zh) | 2014-03-26 |
CN103678150B true CN103678150B (zh) | 2017-06-09 |
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 After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710071252.7A Active CN106909318B (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) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103678150B (zh) * | 2013-12-23 | 2017-06-09 | 华为技术有限公司 | 固态硬盘使用方法及装置 |
US11977434B2 (en) * | 2016-09-05 | 2024-05-07 | 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 | 郑州云海信息技术有限公司 | 一种固态硬盘的数据擦写方法、装置、设备及存储介质 |
KR102533072B1 (ko) * | 2018-08-13 | 2023-05-17 | 에스케이하이닉스 주식회사 | 블록의 상태에 따라 사용 여부를 결정하는 메모리 시스템 및 메모리 시스템의 동작 방법 |
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 | 华为技术有限公司 | 闪存数据管理方法、存储设备控制器及存储设备 |
CN113703681B (zh) * | 2021-08-26 | 2024-06-04 | 杭州海康存储科技有限公司 | 一种硬盘管理方法及装置、硬盘设备、存储介质 |
KR20230094622A (ko) * | 2021-12-21 | 2023-06-28 | 에스케이하이닉스 주식회사 | 슈퍼 메모리 블록의 프로그램 상태를 기초로 타깃 동작을 실행하는 메모리 시스템 및 그 방법 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1517947A (zh) * | 2003-01-28 | 2004-08-04 | 株式会社瑞萨科技 | 非易失性存储器 |
CN101477492A (zh) * | 2009-01-21 | 2009-07-08 | 华中科技大学 | 一种用于固态硬盘的循环重写闪存均衡方法 |
CN103019969A (zh) * | 2011-09-27 | 2013-04-03 | 威刚科技(苏州)有限公司 | 闪存储存装置及其不良储存区域的判定方法 |
Family Cites Families (13)
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 |
JP4575346B2 (ja) * | 2006-11-30 | 2010-11-04 | 株式会社東芝 | メモリシステム |
KR101095639B1 (ko) * | 2006-12-26 | 2011-12-19 | 가부시키가이샤 어드밴티스트 | 시험 장치 및 시험 방법 |
JP4675881B2 (ja) * | 2006-12-27 | 2011-04-27 | 株式会社東芝 | 磁気ディスク装置およびその制御方法 |
KR101184953B1 (ko) * | 2007-12-21 | 2012-10-02 | 램버스 인코포레이티드 | 플래시 메모리 타이밍 사전-특성화 |
CN101740110B (zh) * | 2009-12-17 | 2013-06-12 | 中兴通讯股份有限公司 | 一种Nand Flash擦除均衡的方法及装置 |
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 |
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 |
-
2013
- 2013-12-23 CN CN201310718063.6A patent/CN103678150B/zh active Active
- 2013-12-23 CN CN201710071252.7A patent/CN106909318B/zh active Active
-
2014
- 2014-07-10 WO PCT/CN2014/081976 patent/WO2015096455A1/zh active Application Filing
- 2014-07-10 EP EP14873676.2A patent/EP3079067A4/en not_active Ceased
-
2016
- 2016-06-22 US US15/189,857 patent/US10310930B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1517947A (zh) * | 2003-01-28 | 2004-08-04 | 株式会社瑞萨科技 | 非易失性存储器 |
CN101477492A (zh) * | 2009-01-21 | 2009-07-08 | 华中科技大学 | 一种用于固态硬盘的循环重写闪存均衡方法 |
CN103019969A (zh) * | 2011-09-27 | 2013-04-03 | 威刚科技(苏州)有限公司 | 闪存储存装置及其不良储存区域的判定方法 |
Also Published As
Publication number | Publication date |
---|---|
EP3079067A1 (en) | 2016-10-12 |
US20160299805A1 (en) | 2016-10-13 |
CN103678150A (zh) | 2014-03-26 |
US10310930B2 (en) | 2019-06-04 |
EP3079067A4 (en) | 2016-11-02 |
CN106909318B (zh) | 2020-05-08 |
WO2015096455A1 (zh) | 2015-07-02 |
CN106909318A (zh) | 2017-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103678150B (zh) | 固态硬盘使用方法及装置 | |
JP5418808B2 (ja) | 適応ハイブリッド密度メモリ記憶装置の制御方法、及び適応ハイブリッド密度メモリ記憶装置 | |
US8626986B2 (en) | Pre-emptive garbage collection of memory blocks | |
EP2758882B1 (en) | Adaptive mapping of logical addresses to memory devices in solid state drives | |
US8706983B2 (en) | Garbage collection of memory blocks using volatile memory | |
US8706998B2 (en) | Method for managing flash memories having mixed memory types | |
US20130073798A1 (en) | Flash memory device and data management method | |
US9880742B2 (en) | Valid data merging method, memory controller and memory storage apparatus | |
US10254981B2 (en) | Adaptive health grading for a non-volatile memory | |
US8225050B2 (en) | Memory storage device and a control method thereof | |
KR20150118778A (ko) | 스토리지 컨트롤러, 스토리지 장치, 스토리지 시스템 및 상기 스토리지 컨트롤러의 동작 방법 | |
US9535611B2 (en) | Cache memory for hybrid disk drives | |
CN111651371B (zh) | 非对称型平面管理方法以及数据存储装置及其控制器 | |
US9141530B2 (en) | Data writing method, memory controller and memory storage device | |
US12013762B2 (en) | Meta data protection against unexpected power loss in a memory system | |
TWI423022B (zh) | 記憶體管理方法、記憶體控制器與記憶體儲存裝置 | |
US10162561B2 (en) | Managing backup of logical-to-physical translation information to control boot-time and write amplification | |
CN113254358A (zh) | 用于地址表高速缓存管理的方法和系统 | |
CN110431526A (zh) | 用于自动化动态字线开始电压的设备与方法 | |
US20200401353A1 (en) | Resource allocation in memory systems based on operation modes | |
CN109918234A (zh) | 一种基于ssd的元数据恢复方法、装置、设备及介质 | |
CN107203341A (zh) | 基于闪存的数据存储方法、装置以及闪存芯片 | |
CN107817943A (zh) | 数据传输方法、存储器存储装置及存储器控制电路单元 | |
US8667211B2 (en) | System and method for managing a non-volatile memory | |
CN111324284A (zh) | 一种存储器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |