CN108920293A - 固态硬盘写失败的处理方法和固态硬盘 - Google Patents

固态硬盘写失败的处理方法和固态硬盘 Download PDF

Info

Publication number
CN108920293A
CN108920293A CN201810691554.9A CN201810691554A CN108920293A CN 108920293 A CN108920293 A CN 108920293A CN 201810691554 A CN201810691554 A CN 201810691554A CN 108920293 A CN108920293 A CN 108920293A
Authority
CN
China
Prior art keywords
block
ssd
page
data
moving
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201810691554.9A
Other languages
English (en)
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.)
Zhengzhou Yunhai Information Technology Co Ltd
Original Assignee
Zhengzhou Yunhai Information 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 Zhengzhou Yunhai Information Technology Co Ltd filed Critical Zhengzhou Yunhai Information Technology Co Ltd
Priority to CN201810691554.9A priority Critical patent/CN108920293A/zh
Publication of CN108920293A publication Critical patent/CN108920293A/zh
Pending legal-status Critical Current

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/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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents

Landscapes

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

Abstract

本申请实施例公开了一种固态硬盘写失败的处理方法,用于提高存储数据的安全性。本申请实施例方法包括:当第一块block发生写失败时,SSD将所述第一block中的数据搬移到第二block。

Description

固态硬盘写失败的处理方法和固态硬盘
技术领域
本申请涉及储存技术领域,特别涉及固态硬盘写失败的处理方法和固态硬盘。
背景技术
固态硬盘(solid state drives,SSD)是基于NAND闪存(NAND flash)作为存储媒介的硬盘。NAND flash由于具有优秀的读写性能、较大的存储容量和性价比,在大容量存储领域得到了广泛的应用。
NAND的最小擦除单位是块(block),每个block包含多个页(page),page是最小写单位。现有技术中,当某个page发生写失败时,通常的做法是将此page重新写入到另一个block中。
由于现有技术中,当一个page发生写失败时,只会将发生写失败的page重新写入到其他block中,但该page所在的block由于发生写失败,物理特性将处于不稳定状态,极易造成发生写失败的该block中其他page上的数据丢失,从而影响数据的安全性。
发明内容
本申请实施例提供了固态硬盘SSD写失败的处理方法和SSD,可以在发生写失败后将block中的数据搬移到新的block,用于提升数据的安全性。
本申请实施例第一方面提供了一种固态硬盘SSD写失败的处理方法,包括:当第一块block发生写失败时,SSD将该第一block中的数据搬移到第二block。
优选地,该SSD将该第一block中的数据搬移到第二block包括:该SSD将该第一block中发生写失败的第一page搬移到该第二block;该SSD将该第一block中的第二page搬移到该第二block或第三block。
优选地,该将该第一block中的数据搬移到第二block包括:该SSD根据该第一block中page的码表信息和该第二block中page的码表信息,将内存中的数据搬移到该第二block。
优选地,述SSD将该第一block中的数据搬移到第二block之后,该方法还包括:该SSD更新逻辑块地址LBA到物理页地址PPA的映射关系。
优选地,该SSD将该第一block中的数据搬移到第二block之后,该方法还包括:该SSD对该第一block进行垃圾回收。
本申请实施例第二方面提供了一种固态硬盘SSD,包括:搬移模块,用于当第一块block发生写失败时,将该第一block中的数据搬移到第二block。
优选地,该搬移模块还用于:将该第一block中发生写失败的第一page搬移到该第二block;将该第一block中的第二page搬移到该第二block或第三block。
优选地,该搬移模块还用于:根据该第一block中page的码表信息和该第二block中page的码表信息,将内存中的数据搬移到该第二block。
优选地,该SSD还包括:更新模块,用于更新逻辑块地址LBA到物理页地址PPA的映射关系。
优选地,该SSD还包括:回收模块,用于对该第一block进行垃圾回收。
本申请实施例第三方面提供了一种包含指令的计算机程序产品,其特征在于,当其在计算机上运行时,使得该计算机执行上述第一方面该的方法。
从以上技术方案可以看出,本申请实施例中,在第一block的第一page发生写失败之后,将对该第一block中的page进行搬移,除了将发生写失败的第一page进行搬移之外,对第一block中其他的第二page也进行了搬移,这样,可以避免第一block由于物理性质不稳定造成第二page数据的丢失,提升了存储数据的安全性。
附图说明
图1为本申请实施例中SSD的硬件框架示意图;
图2为本申请实施例中SSD写失败处理方法的一个实施例示意图;
图3为本申请实施例中SSD的一个实施例示意图;
图4为本申请实施例中SSD的另一个实施例示意图。
具体实施方式
本申请实施例提供了一种SSD写失败的处理方法,用于SSD发生写失败时,将数据转移至新的块存储,以提高数据的安全性。
图1为本申请实施例中SSD的硬件框架示意图。
SSD的组成结构主要包括微控制单元(microcontroller unit,MCU)、内存接口、内存模块、闪存接口和闪存模块。
其中,MCU作为主控模块用于实现对数据的读写控制,主要功能包括映射管理、垃圾回收和闪存管理模块,这些功能由MCU内部软件算法实现。其中:映射管理用于逻辑块地址(logical block address,LBA)到物理页地址(physical page address,PPA)的映射关系管理;垃圾回收功能负责NAND阵列中的坏块管理及垃圾回收操作;闪存管理负责闪存阵列中的block分配等。
闪存接口和内存接口是硬件单元,用于生成内存及闪存的控制信号。
内存模块为内存存储单元,用于数据缓存,还用于SSD上电时加载NANDflash的码表信息,码表信息存储了每个page的相关信息,包括错误位置信息,在到内存中。闪存阵列即NAND存储阵列。
SSD在进行写操作时,以page为最小单位,数据先保存在内存模块中,然后在主控模块的控制下写入NAND储存阵列。当发生写失败后,将该page的数据写入重新分配的新的block。本申请实施例提供的SSD写失败处理方法中,还会将发生写失败page所在block的其他page的数据搬移到新的block中,由于发生写失败的block物理性质不稳定,将数据转移到其他block可以提高数据的安全性。
基于图1中SSD的硬件框架示意图,请参阅图2,为本申请实施例中SSD写失败处理方法的一个实施例示意图。
201、当第一块block发生写失败时,SSD将第一block中发生写失败的第一page搬移到第二block;
SSD基于NAND flash进行数据存储,主要包括数据的写入和读取。NAND存储阵列包含多个block,每个block包含多个page,page是最小的写单位,block是最小的擦除单位。
当SSD以page为单位写入数据时,可能会发生写失败,发生写失败的第一block的第一page的数据需要被搬移至第二block,这里的第一block和第二block都是该SSD中的block,SSD可以根据预设的算法确定搬移数据的第二block,此处对于确定第二block的方式不做具体限定。
优选地,在对发生写失败的第一page进行搬移时,以LBA对应的数据量为单位进行搬移,例如,一个page的大小可以是16千字节(kilobyte,KB),一个LBA对应的数量大小可以是4KB,则在对第一page数据进行搬移时,可以一次搬移4KB。此处,对于数据搬移的最小单位不做限定。
优选地,在对发生写失败的第一page进行搬移时,可以根据第一page的码表信息和搬移往的第二block的相应page的码表信息,针对错误位置信息进行数据排布并搬移,码表信息中包含page的错误位置信息,数据排布指的是根据page内物理缺陷的位置,将数据重新分布,也就是跳过存在物理缺陷的位置对数据进行储存。
202、SSD将第一block中的第二page搬移到第二block或第三block;
发生写失败的第一block中的第一page的数据被搬移到第二block后,SSD还会将第一block中的第二page进行搬移,这里的第二page是指第一block中发生写失败的第一page之外的page,由于不同NAND flash中block包含page的数量可能不同,此处,对第一block中第二page的数量不做限定,将第一block中的第二page进行搬移,即对第二page储存的数据进行搬移,可以是将所有的第二page搬移到第二block,也可以是将第二page中的部分搬移到第二block,另一部分搬移到第三block,该第三block也是该SSD中的block,SSD可以根据预设的算法确定搬移数据的第二block和/或第三block,此处对于确定第二block和/或第三block的方式不做具体限定。
优选地,在对第二page进行搬移时,以LBA对应的数据量为单位进行搬移,例如,一个page的大小可以是16KB,一个LBA对应的数量大小可以是4K,则在对第二page数据进行搬移时,可以一次搬移4KB。
优选地,在对第二page进行搬移时,可以根据第二page的码表信息和搬移往的第二block的相应page的码表信息,针对错误位置信息进行数据排布并搬移,码表信息中包含相应page的错误位置信息,数据排布指的是根据page内物理缺陷的位置,将数据重新分布,即跳过存在物理缺陷的位置对数据进行储存。
203、SSD更新逻辑块LBA到物理页PPA的映射关系;
在完成数据搬移后,SSD可以更新LBA到PPA的映射关系,该映射关系可以在SSD上电后加载在内存存储单元中。由于在实际操作中SSD接收到的由host发送的地址均为LBA,但在内部对NAND操作要使用物理块地址(physical block address,PBA)和PPA,因此在SSD内部会实现由LBA地址到PBA地址和PPA地址的转换。
204、SSD对该第一block进行垃圾回收;
在SSD将该第一block中所有page的数据搬移到新的block后,SSD可以对发生写失败的第一block进行垃圾回收,擦除该block的数据。
根据本申请实施例提供的SSD写失败处理方法,在第一block的第一page发生写失败之后,将该第一block中的page进行搬移,除了将发生写失败的第一page进行搬移之外,对第一block中其他的第二page也进行了搬移,这样,可以避免第一block由于物理性质不稳定造成第二page数据的丢失,提升了存储数据的安全性。
上面介绍了SSD写失败处理方法,下面将对实现该方法的SSD进行介绍,请参阅图3,为本申请实施例中SSD的一个实施例示意图。
本申请实施例提供的SSD包括:
搬移模块301,用于当第一块block发生写失败时,将该第一block中的数据搬移到第二block。
该搬移模块301还用于:
将该第一block中发生写失败的第一page搬移到该第二block;将该第一block中的第二page搬移到该第二block或第三block。
该搬移模块301还用于:
根据该第一block中page的码表信息和该第二block中page的码表信息,将内存中的数据搬移到该第二block。
该SSD还包括:
更新模块302,用于更新逻辑块地址LBA到物理页地址PPA的映射关系。
该SSD还包括:
回收模块303,用于对该第一block进行垃圾回收。
本申请实施例提供的SSD可以用于执行图2对应实施例中SSD写失败的处理方法,此处不再赘述。
根据本申请实施例提供的SSD,在第一block的第一page发生写失败之后,搬移模块301可以将该第一block中的page进行搬移,除了将发生写失败的第一page进行搬移之外,对第一block中其他的第二page也进行了搬移,这样,可以避免第一block由于物理性质不稳定造成第二page数据的丢失,提升了存储数据的安全性。
请参阅图4,为本申请实施例中SSD的另一个实施例示意图。
该SSD400可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)401(例如,一个或一个以上处理器)和存储器403,该存储器403中存储有一个或一个以上的应用程序或数据。
其中,存储器403可以是易失性存储或持久存储。存储在存储器403的程序可以包括一个或一个以上模块,每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器401可以设置为与存储器403通信,在SSD400上执行存储器403中的一系列指令操作。
SSD400还可以包括一个或一个以上输入输出接口402。
本实施例中SSD 400中的中央处理器401所执行的流程与前述图2所示的实施例中描述的方法流程类似,此处不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
该作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例该方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上该,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (10)

1.一种固态硬盘SSD写失败的处理方法,其特征在于,包括:
当第一块block发生写失败时,SSD将所述第一block中的数据搬移到第二block。
2.根据权利要求1所述的方法,其特征在于,所述SSD将所述第一block中的数据搬移到第二block包括:
所述SSD将所述第一block中发生写失败的第一page搬移到所述第二block;
所述SSD将所述第一block中的第二page搬移到所述第二block或第三block。
3.根据权利要求1所述的方法,其特征在于,所述将所述第一block中的数据搬移到第二block包括:
所述SSD根据所述第一block中page的码表信息和所述第二block中page的码表信息,将内存中的数据搬移到所述第二block。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述SSD将所述第一block中的数据搬移到第二block之后,所述方法还包括:
所述SSD更新逻辑块地址LBA到物理页地址PPA的映射关系。
5.根据权利要求1至3中任一项所述的方法,其特征在于,所述SSD将所述第一block中的数据搬移到第二block之后,所述方法还包括:
所述SSD对所述第一block进行垃圾回收。
6.一种固态硬盘SSD,其特征在于,包括:
搬移模块,用于当第一block发生写失败时,将所述第一block中的数据搬移到第二block。
7.根据权利要求6所述的SSD,其特征在于,所述搬移模块还用于:
将所述第一block中发生写失败的第一page搬移到所述第二block;
将所述第一block中的第二page搬移到所述第二block或第三block。
8.根据权利要求6至7中任一项所述的SSD,其特征在于,所述SSD还包括:
更新模块,用于更新逻辑块地址LBA到物理页地址PPA的映射关系。
9.根据权利要求6至7中任一项所述的SSD,其特征在于,所述SSD将所述第一block中的数据搬移到第二block之后,所述SSD还包括:
回收模块,用于对所述第一block进行垃圾回收。
10.一种包含指令的计算机程序产品,其特征在于,当其在计算机上运行时,使得所述计算机执行如权利要求1至5任一项所述的方法。
CN201810691554.9A 2018-06-28 2018-06-28 固态硬盘写失败的处理方法和固态硬盘 Pending CN108920293A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810691554.9A CN108920293A (zh) 2018-06-28 2018-06-28 固态硬盘写失败的处理方法和固态硬盘

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810691554.9A CN108920293A (zh) 2018-06-28 2018-06-28 固态硬盘写失败的处理方法和固态硬盘

Publications (1)

Publication Number Publication Date
CN108920293A true CN108920293A (zh) 2018-11-30

Family

ID=64422104

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810691554.9A Pending CN108920293A (zh) 2018-06-28 2018-06-28 固态硬盘写失败的处理方法和固态硬盘

Country Status (1)

Country Link
CN (1) CN108920293A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111124296A (zh) * 2019-12-12 2020-05-08 北京浪潮数据技术有限公司 一种向固态硬盘写数据的方法、装置、设备及存储介质
CN111580757A (zh) * 2020-05-14 2020-08-25 江苏芯盛智能科技有限公司 数据写入方法、系统和固态硬盘

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160224440A1 (en) * 2015-02-02 2016-08-04 SK Hynix Inc. Semiconductor memory device, memory system including the same, and operating method thereof
CN107102821A (zh) * 2017-04-21 2017-08-29 济南浪潮高新科技投资发展有限公司 一种nand flash阵列写失败的处理方法
CN107291625A (zh) * 2017-06-19 2017-10-24 济南浪潮高新科技投资发展有限公司 一种用于Nand Flash的指针式逻辑地址映射表实现方法
CN107577551A (zh) * 2017-09-06 2018-01-12 郑州云海信息技术有限公司 一种固态硬盘写失败处理方法及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160224440A1 (en) * 2015-02-02 2016-08-04 SK Hynix Inc. Semiconductor memory device, memory system including the same, and operating method thereof
CN107102821A (zh) * 2017-04-21 2017-08-29 济南浪潮高新科技投资发展有限公司 一种nand flash阵列写失败的处理方法
CN107291625A (zh) * 2017-06-19 2017-10-24 济南浪潮高新科技投资发展有限公司 一种用于Nand Flash的指针式逻辑地址映射表实现方法
CN107577551A (zh) * 2017-09-06 2018-01-12 郑州云海信息技术有限公司 一种固态硬盘写失败处理方法及系统

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111124296A (zh) * 2019-12-12 2020-05-08 北京浪潮数据技术有限公司 一种向固态硬盘写数据的方法、装置、设备及存储介质
CN111124296B (zh) * 2019-12-12 2023-03-14 北京浪潮数据技术有限公司 一种向固态硬盘写数据的方法、装置、设备及存储介质
CN111580757A (zh) * 2020-05-14 2020-08-25 江苏芯盛智能科技有限公司 数据写入方法、系统和固态硬盘
CN111580757B (zh) * 2020-05-14 2022-10-14 江苏芯盛智能科技有限公司 数据写入方法、系统和固态硬盘

Similar Documents

Publication Publication Date Title
US10884947B2 (en) Methods and memory systems for address mapping
CN106796490B (zh) 用于存储器管理的硬件自动化
CN107229577B (zh) 存储系统及其操作方法
CN104714893B (zh) 用于缩放垃圾收集的方法和系统
US10877898B2 (en) Method and system for enhancing flash translation layer mapping flexibility for performance and lifespan improvements
KR101301840B1 (ko) 비휘발성 메모리 장치의 데이터 처리 방법
CN102792284B (zh) 存储器设备耗损均衡技术
CN111164574A (zh) 基于存储设备内部地址的冗余编码条带
US11675709B2 (en) Reading sequential data from memory using a pivot table
CN107077427A (zh) 跨电源周期来跟踪对写入命令和解除映射命令的混合
CN105745627A (zh) 用于非易失性存储器存储设备的地址转换
CN106716395B (zh) 事务处理的方法、装置及计算机系统
CN104346290A (zh) 存储装置、计算机系统及其操作方法
US20190272099A1 (en) Data Operating Method, Device, and System
CN110442529A (zh) 可配置的存储器系统及配置和使用该存储器系统的方法
CN110928807A (zh) 用于检查存储器系统中的有效数据的设备和方法
CN113126910A (zh) 存储设备及其操作方法
CN107908571A (zh) 一种数据写入方法、闪存装置及存储设备
US10896125B2 (en) Garbage collection methods and memory systems for hybrid address mapping
CN109101185A (zh) 固态存储设备及其写命令和读命令处理方法
KR20210028264A (ko) 호스트 상주 변환 레이어 유효성 검사
CN106909516A (zh) 存储系统及其操作方法
CN107710170A (zh) 减少对象存储中的写入放大
CN108920293A (zh) 固态硬盘写失败的处理方法和固态硬盘
CN108628760A (zh) 原子写命令的方法与装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20181130

RJ01 Rejection of invention patent application after publication