CN107037979B - 用于在存储器设备中管理地址映射数据的系统和方法 - Google Patents

用于在存储器设备中管理地址映射数据的系统和方法 Download PDF

Info

Publication number
CN107037979B
CN107037979B CN201611017969.5A CN201611017969A CN107037979B CN 107037979 B CN107037979 B CN 107037979B CN 201611017969 A CN201611017969 A CN 201611017969A CN 107037979 B CN107037979 B CN 107037979B
Authority
CN
China
Prior art keywords
data
address mapping
mapping data
compressed
storage device
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
CN201611017969.5A
Other languages
English (en)
Other versions
CN107037979A (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.)
Kaiwei International Co
Marvell International Ltd
Marvell Asia Pte Ltd
Original Assignee
Marvell Asia Pte 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 Marvell Asia Pte Ltd filed Critical Marvell Asia Pte Ltd
Publication of CN107037979A publication Critical patent/CN107037979A/zh
Application granted granted Critical
Publication of CN107037979B publication Critical patent/CN107037979B/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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • 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/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0661Format or protocol conversion arrangements
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction

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)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

提供了方法、装置和数据存储设备。地址映射数据被压缩。该地址映射数据表示从存储设备的非易失性存储器的逻辑地址到物理地址的映射。针对经压缩的地址映射数据的错误检测与纠正(ECC)数据被生成。经压缩的地址映射数据和ECC数据被存储在存储设备中。

Description

用于在存储器设备中管理地址映射数据的系统和方法
相关申请的交叉引用
本申请要求于2015年11月16日提交的名称为“映射数据压缩”的第62/255,794号美国临时专利申请的优先权,通过引用以其整体并入于此。
技术领域
本公开总体上涉及数据存储设备,并且更具体地涉及用于在存储设备中管理地址映射数据的系统和方法。
背景技术
许多电子设备已被用于数据存储,例如硬盘驱动器(HDD)和固态硬盘(SSD)。与HDD相比,SSD通常具有更少的机械故障和更低的能量损耗。进一步地,在一些情况下SSD执行读写操作比HDD更快。
上面的描述是作为对本领域中的相关技术的一般概述,并且其所包括的任何信息不应该被理解为承认构成针对本专利申请的现有技术。
发明内容
提供了一种方法、装置和数据存储设备的示例。在示例方法中,对地址映射数据进行压缩。地址映射数据指示从存储设备的非易失性存储器的逻辑地址到物理地址的映射。针对经压缩的地址映射数据生成错误检测与纠正(ECC)数据。ECC数据和经压缩的地址映射数据被存储在存储设备中。
示例装置包括配置为压缩地址映射数据的处理系统。该装置还包括存储设备,该存储设备包括非易失性存储器。地址映射数据指示从非易失性存储器的逻辑地址到物理地址的映射。该存储设备还包括配置为针对经压缩的地址映射数据生成错误检测与纠正(ECC)数据的控制器单元。该控制器单元进一步被配置为向该存储设备写入ECC数据和经压缩的地址映射数据。
示例数据存储设备包括非易失性存储器和控制器单元。该控制器单元被配置为压缩地址映射数据,其中该地址映射数据指示从非易失性存储器的逻辑地址到物理地址的映射。该控制器单元还被配置为针对经压缩的地址映射数据生成错误检测与纠正(ECC)数据。该控制器单元进一步被配置为向该存储设备写入ECC数据和经压缩的地址映射数据。
附图说明
图1为根据本公开实施例的图示示例存储系统的框图。
图2描绘根据本公开实施例在数据存储设备中存储地址映射数据的示例。
图3描绘根据本公开实施例在数据存储设备中检索映射地址数据的示例。
图4为根据本公开实施例的描绘用于在数据存储设备中管理地址映射数据的存储的示例方法的操作的流程图。
具体实施方式
本公开涉及存储设备,尤其是利用指示从存储器(例如,非易失性存储器)的逻辑地址到物理地址的映射的地址映射数据(例如,闪存转换层(FTL)地址映射数据)的存储设备。如下文进一步详细描述的,在本公开实施例中,地址映射数据被压缩。压缩地址映射数据使得更强级别的错误保护能够被应用到地址映射数据中(例如,大量的错误检测与纠正(ECC)字节可以被存储用于地址映射数据的给定单元)。更强级别的错误保护有助于防止地址映射数据的丢失或损坏。本公开的这些方面和其他部分在下面被进一步详细描述。
图1为根据本公开实施例的图示示例存储系统的框图。图1中的示例存储系统包括数据存储设备108(例如,固态硬盘(SSD))数据存储设备108包括控制器单元110(例如,闪存控制器等)、易失性存储器112和非易失性存储器114。在一些实施例中,用户数据被存储在非易失性存储器114上,以使得在电源故障时用户数据将不会被丢失。进一步地,在一些实施例中,易失性存储器112包括一个或多个动态随机存取存储(DRAM)设备,并且非易失性存储器114包括一个或多个闪存设备(例如,一个或多个NAND闪存)。在一些实施例中,非易失性存储器114被划分为存储模块,并且每个存储模块包括多个页。在这些实施例中,对非易失性存储器114进行读取和编程基于每页来被执行,擦除基于每块来被执行。
在一些实施例中,控制器单元110执行针对非易失性存储器114的存储器管理功能,而且还具有执行算法(例如,软件、固件等)的能力。在实施例中,下面被详细描述的存储器管理功能包括:压缩地址映射数据、向数据应用错误纠正编码和解码以及向非易失性存储器114写入数据等。控制器单元110可以是管理存储器访问的任何类型的存储器控制器,包括但不限于闪存磁盘控制器、或者一个或多个处理单元(例如,处理器、包括一个或多个内部缓存的中央处理单元(CPU)等)。进一步地,在一些实施例中,使用计算机逻辑、状态机、ASIC、FPGA、DSP、其它集成电路等来实现控制器单元110。
在图1的示例中,控制器单元110被耦合至数据存储设备108的内部处理系统102。在一些实施例中,内部处理系统102是主机系统的一部分,该主机系统可以是使用非易失性存储器114的任何类型的电子设备,包括但不限于计算机、嵌入式设备,或手持设备,诸如手机、智能手机、相机、游戏系统、监视器、或个人数字助理(PDA)。在实施例中,内部处理系统102包括一个或多个处理单元、集成电路、计算机逻辑、状态机、ASIC、FPGA、DSP等。内部处理系统102、控制器单元110、易失性存储器112和非易失性存储器114可以被实现为例如单独的芯片、芯片组、或者片上系统(SOC)。
内部处理系统102执行将非易失性存储器114中的逻辑块映射到物理块的转换管理。为此,内部处理系统102维护非易失性存储器114中的页的逻辑地址和物理地址之间的逻辑到物理转换图。在一些实施例中,内部处理系统102将转换表作为一个或多个表或数据结构存储在易失性存储器112和/或非易失性存储器114中。当内部处理系统102接收到与逻辑地址相关联的存储器访问请求(例如,读命令、写命令)时,内部处理系统102使用逻辑到物理转换数据来确定与逻辑地址对应的非易失性存储器114的物理地址。这使得能够从非易失性存储器114读取所请求的数据以及将数据写入非易失性存储器114。在一些实施例中,内部处理系统102执行软件和/或固件以执行上述转换管理功能。
在图1的示例中,内部处理系统102从不是存储设备108的一部分的外部处理系统101接收用于访问非易失性存储器114的命令。该命令包括读命令和写命令,每个命令都与逻辑地址相关联。如上所述,内部处理系统102使用逻辑到物理地址映射数据以从由外部处理系统101提供的逻辑地址获得非易失性存储器114的物理地址。如图1所示,对于读命令,使用所获得的物理地址,将所请求的非易失性存储器114的数据返回到外部处理系统101。对于写命令,使用所获得的物理地址,将外部处理系统101的数据写入到非易失性存储器114。
在一些实施例中,数据存储设备108实现闪存转换层(FTL)以用于管理设备108中的数据存储。FTL是在执行包括上述逻辑地址到物理地址转换的许多功能中被使用的内部软件层。在实施例中,FTL也在执行以下的功能中被使用:用于回收非易失性存储器114的经使用的块的垃圾收集以及用于增加非易失性存储器114的寿命的损耗均衡。为了实现这些功能,一个或多个数据结构用于FTL,诸如地址映射表(例如,包括地址映射数据)、空闲块的池、以及垃圾块的一个或多个具有擦除计数的列表。这些数据结构存储可以称为“FTL元数据”的数据。内部处理系统102和/或控制器单元110利用FTL元数据来执行上述功能。
在一些实施例中,地址映射数据和其他FTL元数据被存储在易失性存储器112和/或非易失性存储器114中。一种方法是在数据存储操作期间将所有FTL元数据(例如,包括地址映射数据)加载到易失性存储器112中,并且在系统关闭时将FTL元数据存储回到非易失性存储器114上。然而,在一些实施例中,易失性存储器112具有有限的大小。因为FTL元数据的大小与数据存储设备108的总容量成比例,在某些情况下将整个FTL元数据加载到易失性存储器112是不可行的。进一步地,在某些情况下,将所有地址映射数据(例如,整个地址映射表)存储到易失性存储器112中是不可行的。例如,在一些实施例中,1GB的逻辑空间使用1MB的地址映射数据,将1MB的地址映射数据存储到易失性存储器112中是不可行的。
在一些实施例中,在将所有地址映射数据存储到易失性存储器112上不可行的情况下,FTL在易失性存储器112和非易失性存储器114之间动态地移动地址映射数据。例如,地址映射数据从非易失性存储器114被传送到易失性存储器112中,并且同样地从易失性存储器112被传送到非易失性存储器114中。当地址映射数据以这种方式在存储器112和114之间被动态交换时,存在丢失或损坏地址映射数据的风险。地址映射数据的丢失或损坏是不希望的。例如,在实施例中,丢失地址映射数据的一个4KiB单元导致丢失存储在非易失性存储114上的4MiB数据。
一种防止地址映射数据丢失的方法是通过错误检测与纠正编码(例如,错误检测与纠正(ECC)编码,低密度奇偶校验(LDPC)编码等)的使用。在将这种错误检测与纠正编码应用于地址映射数据中,与地址映射数据对应的冗余或校验位(例如,ECC位或字节)被生成。该冗余或校验位使得地址映射数据中一定数量的位错误能够被纠正,其中能够被纠正的错误数量随所使用的冗余或校验位的数量增加而增加。因此,通过使用大量的冗余或校验位(例如,大量的ECC数据字节),更强的错误保护被提供。例如,对于地址映射数据的2KB单元,添加64个ECC字节添加大约32位纠正能力。在本公开中,全文引用“ECC数据字节”。然而,要注意的是,本公开实施例使用其他类型的冗余和校验位(例如,经由LDPC编码生成的冗余或校验位等)。
在一些实施例中,提高EEC数据字节数的能力受到非易失性存储器114的参数的限制。如上所述,基于每页向非易失性存储器114进行写入,其中每页都具有预定的页大小(例如,16KiB)。在一些实施例中,提高EEC数据字节数的能力受到非易失性存储器114的页大小的限制。具体地,在一些实施例中,下列条件限制提高EEC数据字节数的能力:[(地址映射的数据单元的大小)+(ECC数据字节)]≤非易失性存储器114的页大小。要指出的是,上述条件仅为示例,并且其他条件应用于其他实施例中。例如,在其他实施例中,地址映射数据单元大小和ECC数据字节的和必须小于或等于非易失性存储器114的页大小的某倍数(例如,两倍或三倍页大小等)。
从上述示例条件可以看出,如果地址映射数据单元的大小等于非易失性存储器114的页大小,不存在用于任何ECC数据字节的空间。同样地,如果地址映射的数据单元的大小近似等于页大小,仅存在用于少量ECC数据字节的空间。如果不使用ECC数据字节或者仅使用少量ECC字节,不提供错误保护或者只提供微弱的错误保护。如上所述,应当避免地址映射数据的丢失,并且因此无法提供较强的ECC保护是不希望的。传统系统和方法具有无法提供较强ECC保护的缺陷。
本公开的技术方案消除或减轻传统方法的这种不足。具体地,使用本文所描述的系统和方法,与传统系统和方法相比更强的错误保护被应用到地址映射数据。在本公开的技术下,为了将更强的错误保护应用到地址映射数据(例如,使用大量的ECC数据字节),地址映射数据被压缩。在实施例中,由内部处理系统102和/或控制器单元110来压缩地址映射数据。然后,错误纠正编码(例如,ECC码等)被应用到经压缩的地址映射数据,以生成用于经压缩的数据的ECC数据字节。在一些实施例中,这种错误纠正编码由内部处理系统102和/或控制器单元110执行。因为地址映射数据被压缩,更多ECC数据字节可以被使用,从而提供更高级别的错误保护(例如,更强的ECC保护)。
经压缩的地址映射数据和ECC数据字节被存储在数据存储设备108中,例如,易失性存储器112和/或非易失性存储器114中。随后,ECC数据字节和经压缩的地址映射数据从存储设备被读取,使用适合的解码方案被解码,以及被解压缩。如上所述,经解压缩的地址映射数据被内部处理系统102用于执行逻辑地址到物理地址转换。使用经由地址转换程序获得的物理地址来访问(例如,针对读操作或写操作来访问)非易失性存储器114。关于压缩、编码、解码和解压缩操作的附加细节在下文被提供。
图2描绘根据本公开实施例的在数据存储设备(例如,图1中的数据存储设备108)存储地址映射数据(例如,FTL元数据等)的示例。如上所述,该地址映射数据指示从存储设备的非易失性存储器(例如,图1中的非易失性存储器114)的逻辑地址到物理地址的映射。在地址映射数据的存储中,用于将地址映射数据写入到数据存储设备108的命令从内部处理系统102被传送到控制单元110。在一些实施例中,该命令包括要被存储的地址映射数据。进一步地,在一些实施例中,该地址映射数据在被传送到控制单元110之前由内部处理系统102压缩。在这些实施例中,内部处理系统102执行压缩算法(例如,经由软件、固件等)以压缩地址映射数据。
在其他实施例中,在没有软件干预的情况下动态地(on-the-fly)执行压缩。在这些其他实施例中,内部处理系统102将未压缩的地址映射数据和适当的命令(例如,指示向存储设备108“写16KiB地址映射数据”的命令等)传送到控制单元110。该控制单元110随后压缩地址映射数据(例如,由内部处理系统102在没有软件协助的情况下执行)。在一些实施例中采用的由控制器单元110执行的地址映射数据的压缩被图示在图2中的操作202处。要指出的是,在本公开实施例中,地址映射数据的压缩在控制器单元110中被执行,或者在控制器单元110的外部被执行(例如,如上所述,由内部处理系统执行压缩软件)。
在操作204处,控制器单元110选择多个编码方案中的编码方案,以用于针对经压缩的地址映射数据生成错误检测与纠正数据。如本文所述,在实施例中,该编码方案是错误检测与纠正(ECC)编码、低密度奇偶校验(LDPC)编码或者适合于生成错误检测与纠正数据的其他编码方案(例如,冗余或校验位,诸如ECC位或字节等)。
在一些实施例中,基于地址映射数据被压缩的程度来选择编码方案。例如,在一个实施例中,第一编码方案是基于确定地址映射数据被高度地压缩(例如,数据被确定为“可压缩的”)而选择的,第二编码方案是基于确定地址映射数据被最低程度地压缩(例如,数据被确定为“不可压缩的”)而选择的。第一编码方案不同于第二编码方案。在这个实施例的示例中,如果地址映射数据的4KB单元被压缩到小于或等于(4KiB-128字节)的大小,则地址映射数据的该4KB单元被确定为“被高度地压缩的”(例如,可压缩的)。如果地址映射数据的4KB单元被压缩到大于(4KiB-128字节)的大小,则地址映射数据的该4KB单元被确定为“被最低程度地压缩”(例如,不可压缩的)。
在该实施例的示例中,向地址映射数据应用第一编码方案导致针对地址映射数据生成相对大量的的ECC数据字节。相反地,向地址映射数据应用第二编码方案导致针对地址映射数据生成相对少量的ECC数据字节。这是因为当地址映射数据被高度地压缩时,存在用于存储ECC数据字节的更多空间,并且因此被配置为生成大量ECC数据字节(例如,更强级别的ECC保护)的编码方案被利用。相反地,当地址映射数据被最低程度地压缩时,存在用于存储ECC数据字节的更少空间,并且因此被配置为生成少量ECC数据字节(例如,较弱级别的ECC保护)的编码方案被利用。地址映射数据是典型高度地可压缩的,使得更强的ECC保护的益处被经常获得。
在一些实施例中,所选择的编码方案的指示被保存在数据存储设备108中(例如,易失性存储器112或非易失性存储器114中)。稍后,当要读出地址映射数据时,基于所存储的指示来选择用于解码地址映射数据的解码方案。基于所存储的指示对解码方案的选择在下文结合图3进行进一步地详细描述。
在由控制器单元206执行的操作206处,通过向经压缩的地址映射数据应用错误纠正编码来生成ECC数据字节。然后,在由控制器单元110执行的操作208处,将经压缩的地址映射数据和ECC数据字节写入到数据存储设备108。在一些实施例中,经压缩的地址映射数据和ECC数据字节被写入到易失性存储器112中。在另一些实施例中,经压缩的地址映射数据和ECC数据字节被写入到非易失性存储器114中。如上所述,地址映射数据在易失性存储器112和非易失性存储器114之间的交换是典型的,使得数据可以最终驻存在存储器112和114两者之一上。在本公开的一些实施例中,经压缩的地址映射数据的单元和与其对应的ECC数据的经组合的大小小于或等于非易失性存储器114的页大小。如本文所述,通过压缩地址映射数据,EEC数据字节数可以比传统方法中的更大,同时仍然使得地址映射数据和ECC数据能够容纳在非易失性存储器114的页内。
图3描绘根据本公开实施例在数据存储设备中检索映射地址数据的示例。在将经压缩的地址映射数据和ECC数据存储到存储设备108(例如,如以上参照图2所述)之后,为了执行逻辑地址到物理地址转换,可能有必要检索地址映射数据(例如,读取地址映射数据)。例如,在一些实施例中,内部处理系统102接收用于访问非易失性存储器114的命令,其中该命令为与逻辑地址相关联的读命令或写命令。在实施例中,从外部处理系统101或另一组件接收读命令或写命令。如图3所示,响应于接收到该命令,内部处理系统102向控制器单元110传输针对地址映射数据的请求。随后,在操作302处,控制器单元101从数据存储设备108读取经压缩的地址映射数据和其对应的ECC数据。在实施例中,经压缩的地址映射数据和其对应的ECC数据可以被存储在易失性存储器112或非易失性存储器114中,使得控制器110从这两个存储器112和114之一读取数据。
在操作304处,控制器单元110选择多个解码方案中的解码方案,以用于解码从数据存储设备108中读取的数据。如上所述,在一些实施例中,当地址映射数据被编码时,所选择的编码方案的指示被存储在数据存储设备108中。相应地,在这些实施例中,控制器单元110检索所存储的指示并且基于所存储的指示来选择适当的解码方案。例如,如果所存储的指示指示特定的ECC代码被用于编码地址映射数据,则基于该指示选择适合于解码利用该特定的ECC代码而编码的数据的解码方案。要指出的是,即使在用于编码地址映射数据的编码方案未知的情况下(例如,代码选择信息丢失、损坏或者从未被存储等),仍能选择一个适当的解码方案。例如,如果编码方案未知,第一解码方案被选择并被应用。如果第一解码方案在解码地址映射数据中失败,第二解码方案被选择并被应用。解码方案被选择并被应用直到地址映射数据被成功解码。
在操作306处,错误纠正解码被应用于从数据存储设备108检索到的经压缩的地址映射数据和ECC数据。根据操作304中所选择的解码方案来应用该错误纠正解码。继而,在操作308处,经压缩的地址映射数据被解码。在一些实施例中,地址映射数据的解码由控制器单元110执行。在这些实施例中,在操作310处,经解压缩的地址映射数据从控制器单元110被传送到内部处理系统102,因此使得内部处理系统102能够执行上述逻辑地址到物理地址转换。在其他实施例中,地址映射数据的解码由内部处理系统102执行。在这些其他实施例中,在应用错误纠正解码以后,控制器单元110向内部处理系统102传输经解码的、经压缩的地址映射数据,并且内部处理系统102解压缩该数据。地址映射数据从控制器单元110向内部处理系统102的传送(例如,以压缩或解压缩的形式)被图示在图3中。
在地址映射数据被解压缩以后(例如,如上所述由内部处理系统102或控制器单元110),经解压缩的数据被用于获得与读命令或写命令的逻辑地址相对应的非易失性存储器114的物理地址。使用所获得的物理地址访问非易失性存储器114以完成所请求的读操作或写操作。
图4为根据本公开实施例的描绘用于在数据存储设备中管理地址映射数据的存储的示例方法的操作的流程图。为了便于理解,参照图1对图4进行描述,但是图4的过程也适用于其他配置(例如,硬件和/或软件配置等)。在402,地址映射数据被压缩。在图1的示例中,地址映射数据的压缩由内部处理系统102和/或控制器单元110执行。地址映射数据指示从存储设备的非易失性存储器(例如,图1中的存储设备108的非易失性存储器114)的逻辑地址到物理地址的映射。在404,针对压缩的地址映射数据生成错误检测与纠正(ECC)数据。在图1的示例中,EEC数据的生成由内部处理系统102和/或控制器单元110执行。在406,经压缩的地址映射数据和EEC数据被存储在存储设备(例如,存储设备108的易失性存储器112和/或非易失性存储器114)中。
本申请使用示例来说明本发明。本发明的可授权范围还包括其他示例。

Claims (14)

1.一种用于在存储设备中管理地址映射数据的方法,包括:
压缩地址映射数据,所述地址映射数据指示从存储设备的非易失性存储器的逻辑地址到物理地址的映射;
选择多个编码方案中的编码方案;
使用选择的所述编码方案针对经压缩的所述地址映射数据生成错误检测与纠正ECC数据,所述选择基于所述地址映射数据被压缩的程度,使得所述ECC数据和经压缩的所述地址映射数据的经组合的大小小于或等于所述非易失性存储器的页大小;以及
将所述ECC数据和经压缩的所述地址映射数据存储在所述存储设备中。
2.根据权利要求1所述的方法,其中所述选择包括:
基于确定所述地址映射数据被高度地压缩来选择所述多个编码方案中的第一编码方案;以及
基于确定所述地址映射数据被最低程度地压缩来选择所述多个编码方案中的第二编码方案,其中所述第一编码方案不同于所述第二编码方案。
3.根据权利要求1所述的方法,其中所述ECC数据的所述生成包括根据选择的所述编码方案来向经压缩的所述地址映射数据应用错误纠正编码,所述方法进一步包括:
将选择的所述编码方案的指示存储在所述存储设备中;
从所述存储设备读取所述ECC数据和经压缩的所述地址映射数据;
基于所存储的所述指示来选择多个解码方案中的解码方案;以及
向从所述存储设备读取的数据应用错误纠正解码,根据选择的所述解码方案来应用所述错误纠正解码。
4.根据权利要求1所述的方法,其中所述ECC数据和经压缩的所述地址映射数据被存储到所述存储设备的所述非易失性存储器。
5.根据权利要求1所述的方法,其中所述ECC数据和经压缩的所述地址映射数据被存储到所述存储设备的易失性存储器。
6.根据权利要求1所述的方法,进一步包括:
接收用于访问所述存储设备的所述非易失性存储器的命令,所述命令为与所述逻辑地址相关联的读命令或写命令;
响应接收到所述命令,从所述存储设备读取所述ECC数据和经压缩的所述地址映射数据;
向从所述存储设备读取的数据应用错误纠正解码;
在所述错误纠正解码的所述应用之后解压缩经压缩的所述地址映射数据;
使用经解压缩的数据以从所述逻辑地址获得所述物理地址;以及
使用获得的所述物理地址来访问所述非易失性存储器。
7.一种用于在存储设备中管理地址映射数据的装置,包括:
处理系统,被配置为压缩地址映射数据;以及
存储设备,包括:
非易失性存储器,所述地址映射数据指示从所述非易失性存储器的逻辑地址到物理地址的映射,以及
控制器单元,被配置为(i)选择多个编码方案中的编码方案,(ii)使用选择的所述编码方案针对经压缩的所述地址映射数据生成错误检测与纠正ECC数据,所述选择基于所述地址映射数据被压缩的程度,使得所述ECC数据和经压缩的所述地址映射数据的经组合的大小小于或等于所述非易失性存储器的页大小,以及(iii)向所述存储设备写入所述ECC数据和经压缩的所述地址映射数据。
8.根据权利要求7所述的装置,其中所述控制器单元被进一步配置为:
基于确定所述地址映射数据被高度地压缩来选择所述多个编码方案中的第一编码方案;以及
基于确定所述地址映射数据被最低程度地压缩来选择所述多个编码方案中的第二编码方案,其中所述第一编码方案不同于所述第二编码方案。
9.根据权利要求7所述的装置,其中所述控制器单元被进一步配置为:
通过根据选择的所述编码方案向经压缩的所述地址映射数据应用错误纠正编码来生成所述ECC数据;
将选择的所述编码方案的指示存储在所述存储设备中;
从所述存储设备读取所述ECC数据和经压缩的所述地址映射数据;
基于所存储的指示来选择多个解码方案中的解码方案;以及
向从所述存储设备读取的数据应用错误纠正解码,根据选择的所述解码方案来应用所述错误纠正解码。
10.根据权利要求7所述的装置,其中所述ECC数据和经压缩的所述地址映射数据被写入到所述存储设备的所述非易失性存储器。
11.一种存储设备,包括:
非易失性存储器;以及
控制器单元,被配置为
压缩地址映射数据,所述地址映射数据指示从所述非易失性存储器的逻辑地址到物理地址的映射,
选择多个编码方案中的编码方案,
使用选择的所述编码方案针对经压缩的所述地址映射数据生成错误检测与纠正ECC数据,对选择的所述编码方案的所述选择基于所述地址映射数据被压缩的程度,使得所述ECC数据和经压缩的所述地址映射数据的经组合的大小小于或等于所述非易失性存储器的页大小,以及
向所述存储设备写入所述ECC数据和经压缩的所述地址映射数据。
12.根据权利要求11所述的存储设备,其中所述控制器单元进一步被配置为:
基于确定所述地址映射数据被高度地压缩来选择所述多个编码方案中的第一编码方案;以及
基于确定所述地址映射数据被最低程度地压缩来选择所述多个编码方案中的第二编码方案,其中所述第一编码方案不同于所述第二编码方案。
13.根据权利要求11所述的存储设备,其中所述控制器单元进一步被配置为:
通过根据选择的所述编码方案向经压缩的所述地址映射数据应用错误纠正编码来生成所述ECC数据;
将选择的所述编码方案的指示存储在所述存储设备中;
从所述存储设备读取所述ECC数据和经压缩的所述地址映射数据;
基于所存储的指示来选择多个解码方案中的解码方案;以及
向从所述存储设备读取的数据应用错误纠正解码,根据选择的所述解码方案来应用所述错误纠正解码。
14.根据权利要求11所述的存储设备,其中所述ECC数据和经压缩的所述地址映射数据被写入到所述存储设备的所述非易失性存储器。
CN201611017969.5A 2015-11-16 2016-11-16 用于在存储器设备中管理地址映射数据的系统和方法 Active CN107037979B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201562255794P 2015-11-16 2015-11-16
US62/255,794 2015-11-16

Publications (2)

Publication Number Publication Date
CN107037979A CN107037979A (zh) 2017-08-11
CN107037979B true CN107037979B (zh) 2021-04-16

Family

ID=58690065

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611017969.5A Active CN107037979B (zh) 2015-11-16 2016-11-16 用于在存储器设备中管理地址映射数据的系统和方法

Country Status (2)

Country Link
US (1) US10255004B2 (zh)
CN (1) CN107037979B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102016123247B4 (de) * 2015-12-01 2024-03-21 Nvidia Corporation Systeme und verfahren zur speicherverwaltung
KR20190074886A (ko) 2017-12-20 2019-06-28 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
KR102685015B1 (ko) 2018-04-24 2024-07-16 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
CN109271206B (zh) * 2018-08-24 2022-01-21 晶晨半导体(上海)股份有限公司 一种异常现场的内存压缩和保存方法
US11263149B2 (en) * 2019-02-26 2022-03-01 Marvell Asia Pte, Ltd. Cache management of logical-physical translation metadata

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101916228A (zh) * 2010-08-17 2010-12-15 中国人民解放军国防科学技术大学 带有数据压缩功能的闪存转换层及实现方法
CN102541778A (zh) * 2010-12-17 2012-07-04 西安奇维测控科技有限公司 一种超高速超大容量存储装置及其实现方法
CN103136109A (zh) * 2013-02-07 2013-06-05 中国科学院苏州纳米技术与纳米仿生研究所 一种具有压缩功能的固态存储系统ftl写入及读取方法
CN104471547A (zh) * 2012-06-22 2015-03-25 美光科技公司 数据压缩及管理
CN105009094A (zh) * 2013-03-05 2015-10-28 西部数据技术公司 在固态驱动器中利用空闲空间计数来重建两阶加电映射的方法、设备和系统

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8533564B2 (en) * 2009-12-23 2013-09-10 Sandisk Technologies Inc. System and method of error correction of control data at a memory device
US9489296B1 (en) * 2012-10-17 2016-11-08 Western Digital Technologies, Inc. Methods, devices and systems for hardware-based garbage collection in solid state drives
US20150046772A1 (en) * 2013-08-06 2015-02-12 Sandisk Technologies Inc. Method and device for error correcting code (ecc) error handling
US9514057B2 (en) * 2013-12-04 2016-12-06 Sandisk Technologies Llc Storage module and method for managing logical-to-physical address mapping
TWI522804B (zh) * 2014-04-23 2016-02-21 威盛電子股份有限公司 快閃記憶體控制器以及資料儲存裝置以及快閃記憶體控制方法
TWI545432B (zh) * 2014-08-04 2016-08-11 群聯電子股份有限公司 資料管理方法、記憶體控制電路單元以及記憶體儲存裝置
US9727459B2 (en) * 2014-08-22 2017-08-08 Seagate Technology Llc Non-volatile, solid-state memory configured to perform logical combination of two or more blocks sharing series-connected bit lines
KR20170053278A (ko) * 2015-11-06 2017-05-16 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US9852025B2 (en) * 2016-03-29 2017-12-26 Alibaba Group Holding Limited Protecting data stored on a solid state drive

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101916228A (zh) * 2010-08-17 2010-12-15 中国人民解放军国防科学技术大学 带有数据压缩功能的闪存转换层及实现方法
CN102541778A (zh) * 2010-12-17 2012-07-04 西安奇维测控科技有限公司 一种超高速超大容量存储装置及其实现方法
CN104471547A (zh) * 2012-06-22 2015-03-25 美光科技公司 数据压缩及管理
CN103136109A (zh) * 2013-02-07 2013-06-05 中国科学院苏州纳米技术与纳米仿生研究所 一种具有压缩功能的固态存储系统ftl写入及读取方法
CN105009094A (zh) * 2013-03-05 2015-10-28 西部数据技术公司 在固态驱动器中利用空闲空间计数来重建两阶加电映射的方法、设备和系统

Also Published As

Publication number Publication date
US20170139773A1 (en) 2017-05-18
US10255004B2 (en) 2019-04-09
CN107037979A (zh) 2017-08-11

Similar Documents

Publication Publication Date Title
KR101912596B1 (ko) 리던던트 어레이들을 통한 비휘발성 메모리 프로그램 실패 복구
US10853234B2 (en) Memory controller
US8819336B2 (en) Nonvolatile memory system and related method of preserving stored data during power interruption
CN107037979B (zh) 用于在存储器设备中管理地址映射数据的系统和方法
US11336305B2 (en) Memory system
US9058288B2 (en) Redundant storage in non-volatile memory by storing redundancy information in volatile memory
US20130179752A1 (en) Storage device and nonvolatile memory device and operating method thereof
JP2014507717A (ja) より高いレベルの冗長な情報の計算
KR20180034842A (ko) 메모리 제어장치 및 방법
US11544157B2 (en) Apparatus and method for storing data in an MLC area of a memory system
WO2012075200A2 (en) Dynamic higher-level redundancy mode management with independent silicon elements
KR20170095524A (ko) 메모리 시스템 및 그의 동작 방법
CN109753463B (zh) 控制器及其操作方法和存储系统及其操作方法
CN106445749B (zh) 使用独立磁盘冗余阵列的动态自动调谐的最大延迟的减小
US20200057562A1 (en) Apparatus and method for checking valid data in block capable of storing large volume data in memory system
TW201445313A (zh) 記憶體儲存裝置及其還原方法與記憶體控制器
US11281574B2 (en) Apparatus and method for processing different types of data in memory system
CN113590503A (zh) 一种非挥发性记忆体存储器的垃圾回收方法与垃圾回收系统
CN113590502B (zh) 一种非挥发性记忆体存储设备的垃圾回收方法与垃圾回收系统
CN109240949B (zh) 数据存储装置及其操作方法
US11314653B2 (en) Memory controller
CN113849121A (zh) 用于访问条带形式的数据的存储器系统及其操作方法
US11636042B2 (en) Data processing method for improving access performance of memory device and data storage device utilizing the same
US11281381B2 (en) Storage node of distributed storage system and method of operating the same
KR20220005832A (ko) 메타 데이터 관리를 위한 메모리 시스템 및 메모리 시스템의 동작방법

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
CB03 Change of inventor or designer information
CB03 Change of inventor or designer information

Inventor after: Kang Xinhai

Inventor after: Xu Wei

Inventor before: Kang Xinhai

Inventor before: Xu Wei

CB03 Change of inventor or designer information
CB03 Change of inventor or designer information

Inventor after: Kang Xinhai

Inventor after: Xu Wei

Inventor before: Kang Xinhai

Inventor before: Xu Wei

SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20200426

Address after: Singapore City

Applicant after: Marvell Asia Pte. Ltd.

Address before: Ford street, Grand Cayman, Cayman Islands

Applicant before: Kaiwei international Co.

Effective date of registration: 20200426

Address after: Ford street, Grand Cayman, Cayman Islands

Applicant after: Kaiwei international Co.

Address before: Hamilton, Bermuda

Applicant before: Marvell International Ltd.

Effective date of registration: 20200426

Address after: Hamilton, Bermuda

Applicant after: Marvell International Ltd.

Address before: Saint Michael

Applicant before: MARVELL WORLD TRADE Ltd.

GR01 Patent grant
GR01 Patent grant