CN113555057A - 一种扩大固态硬盘映射表单元的实现方法 - Google Patents
一种扩大固态硬盘映射表单元的实现方法 Download PDFInfo
- Publication number
- CN113555057A CN113555057A CN202110843302.5A CN202110843302A CN113555057A CN 113555057 A CN113555057 A CN 113555057A CN 202110843302 A CN202110843302 A CN 202110843302A CN 113555057 A CN113555057 A CN 113555057A
- Authority
- CN
- China
- Prior art keywords
- mapping table
- solid state
- ecc
- state disk
- data
- 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.)
- Withdrawn
Links
- 238000013507 mapping Methods 0.000 title claims abstract description 94
- 238000000034 method Methods 0.000 title claims abstract description 34
- 239000007787 solid Substances 0.000 title claims abstract description 31
- 238000012937 correction Methods 0.000 claims abstract description 20
- 230000009467 reduction Effects 0.000 claims description 2
- 238000012005 ligant binding assay Methods 0.000 abstract description 6
- 238000013461 design Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000007547 defect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明公开了一种扩大固态硬盘映射表单元的实现方法,包括固态硬盘相对应的内存DDR,所述DDR中包括映射表、纠错码ECC,当增大映射表的地址空间时,使用内嵌纠错码ECC的方法,增加每个映射表单元的位宽。本发明利用ECC校验时,对于提高数据比特数后,数据/校验比会提高的特性,将多个映射表单元合为一个映射表组合,对该组合采用内嵌校验位的方法,更高效利用了传统映射表缓存的校验区间,扩大了物理地址的大小,将支持的闪存映射表提高了多倍。而且固态硬盘大都支持多个连续LBA合并查找映射表的设计,并没有增加多余的硬件/固件开销。
Description
技术领域
本发明涉及数据存储技术领域,尤其涉及一种扩大固态硬盘映射表单元的实现方法。
背景技术
对于固态硬盘的映射表,是根据主控中的逻辑地址,来查找计算机闪存设备(NAND)闪存中的物理地址的查找表。其中逻辑地址由主机数据的逻辑地址转换而来,通常是对namespace和逻辑区块地址(LBA)的转换。而物理地址指的是对NAND闪存的编址。由于NAND闪存需要按块擦写的特性,同一个逻辑地址可能是放到任意的物理地址上,所以需要建立一个逻辑地址到物理地址的映射表。
在企业级固态硬盘主控中,通常会采取全映射的方式,将映射表放到片外DDR的缓存区域,来满足读数据时候的低延迟和高稳定性。而由于DDR的错误率无法满足企业级固态硬盘的要求,所以会对DDR读写时加上ECC保护。
在企业级固态硬盘中,映射表是通过主机的逻辑地址来定位闪存物理地址的查找表。为了保证读数据时的稳定性,通常使用全映射方法,也就是一次查询就能根据逻辑地址查找到其对应的物理地址。而查找表大小和闪存大小通常是1:1000的关系,所以如果是4TB的硬盘,那么映射表大小将达到4GB,通常存储于片外DDR中;在存储映射表时,为了保证正确率,通常需要对存取的数据加上纠错码,这样纠错码就占用了DDR的存储空间,映射表的存储空间就变小,因此,如何提高映射表的存储空间是有待解决的问题。
发明内容
本发明的目的是针对现有技术的缺陷,提供了一种扩大固态硬盘映射表单元的实现方法。
为了实现以上目的,本发明采用以下技术方案:
一种扩大固态硬盘映射表单元的实现方法,包括固态硬盘相对应的内存DDR,所述DDR中包括映射表、纠错码ECC,当增大映射表的地址空间时,使用内嵌纠错码ECC的方法,增加每个映射表单元的位宽。
进一步的,所述使用内嵌校验位的方法,增加每个映射表单元的位宽是通过降低纠错码ECC的大小实现的。
进一步的,所述降低纠错码ECC的大小是通过程序控制实现的。
进一步的,还包括将多个映射表单元合并成一个映射表组合,对于每个映射表组合一起使用纠错码ECC进行保护。
与现有技术相比,本发明利用ECC校验时,对于提高数据比特数后,数据/校验比会提高的特性,将多个映射表单元合为一个映射表组合,对该组合采用内嵌校验位的方法,更高效利用了传统映射表缓存的校验区间,扩大了物理地址的大小,将支持的闪存映射表提高了多倍。例如只能支持4TB闪存映射表固态硬盘主控,在采用该办法后,可以支持到32TB(70比特位宽DDR接口),或者是1PB(40比特位宽DDR接口)。同时由于DDR的存取特性,而且固态硬盘大都支持多个连续LBA合并查找映射表的设计,并没有增加多余的硬件/固件开销。
附图说明
图1是实施例二提供的映射表的更新示意图;
图2是实施例二提供的映射表的ECC保护示意图;
图3是实施例二提供的扩展后的ECC组映射表示意图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
本发明的目的是针对现有技术的缺陷,提供了一种扩大固态硬盘映射表单元的实现方法。
实施例一
本实施例提供一种扩大固态硬盘映射表单元的实现方法,包括固态硬盘相对应的内存DDR,所述DDR中包括映射表、纠错码ECC,当增大映射表的地址空间时,使用内嵌纠错码ECC的方法,增加每个映射表单元的位宽。
在企业级固态硬盘中,映射表是通过主机的逻辑地址(LBA)来定位闪存物理地址(FPA)的查找表。为了保证读数据时的稳定性,通常使用全映射方法,也就是一次查询就能根据逻辑地址查找到其对应的物理地址。而查找表大小和闪存大小通常是1:1000的关系,例如4TB的硬盘,那么映射表大小将达到4GB,为了便于组织查找表,FPA的位宽通常为32比特,因此映射表通常存储于片外DDR(双倍数据速率同步动态随机存取内存)中。
在存储映射表时,为了保证正确率,通常需要对存取的数据加上纠错码,即在映射表上增加ECC(错误检查和纠正)。但是在实际使用过程中,想要扩大映射表的地址空间,本实施例提供采用内嵌纠错码ECC(Inline ECC)的方法,即减少ECC的大小,进而增加每个映射表单元的位宽,以达到提高映射表地址空间的目的。
DDR通常是64bit(8B)数据+8bit(1B)ECC校验,内嵌ECC就是不在DDR的数据总线bus上就区分数据和校验位,内嵌ECC就是ECC内嵌在数据中。
在本实施例中,减少ECC的方法可通过程序进行控制,如RS-ECC,且ECC的大小减少多少是根据实际情况来控制的。
举例说明:
将9bit*8=72bit的数据一起做ECC,在正常情况下映射表的数据为64bit,ECC的校验位为8bit,当想要扩大映射表的数据,则将ECC的校验位减为2bit,此时映射表的数据就会是70bit,这样就实现了扩大映射表的地址空间。
当映射表的空间地址扩大了,那么对应支持的硬盘大小也变大了,具体为:
映射表单元的bit数,和硬盘的大小有对应关系,其中每个地址对应4KB;
在正常情况下,单个映射单元如果是32bit的地址空间,32bit的地址空间可以对应索引到的硬盘地址为4G,若一个硬盘地址对应4KB,那么4G的硬盘地址则可以支持16TB的硬盘。
本实施例通过降低ECC的校验位,则可以使单个映射单元从32bit的地址空间变为35bit的地址空间,35bit的地址空间可以对应索引到的硬盘地址为32G,若一个硬盘地址对应4KB,那么32G的硬盘地址则可以支持128TB的硬盘。
通过本实施例的技术方案实现了映射表地址空间的扩展,将原本一个映射表单元32bit扩展到一个映射表单元35bit,所支持的硬盘大小从16TB扩展到128TB。不过如果继续减小纠错码的大小,还能继续增大硬盘的大小。
对于本实施例的方案,当减少ECC的大小,不会降低了映射表中存取数据的正确率,这是由于固态硬盘会定期保存映射表,而且也带映射表恢复的方法,所以可以增加编码的有效数据率,降低纠错码大小,此外,由于在ECC区间去扩展有效数据的空间,映射表的编址寻址过程不变,可以保持硬件和固件的兼容性,不需要对映射表的地址管理做过多修改。其中有效数据率指的是数据bits/(数据+校验位)bits的比例。
本实施例将以前用于存储ECC的位置用来作为数据的扩展区域,并将多个映射表单元合并成一个映射表组合,对于每个组合一起使用ECC保护,由于一次ECC计算的数据位变大,有效数据占总数据的比例提高,所以节约了ECC的空间,用来作为存放数据的空间。
本实施例由于将多个映射表单元组合起来,对其中任意单元的读写都会变成对整个组合的读写,增加了复杂度。但是对于DDR的读写的长度一般都会在多个字节,例如64字节,所以真实情况下并没有增加硬件的开销。反而由于在固态硬盘主控中,通常会将连续的多个LBA(例如16个LBA)组合成一次操作,在该情况下,刚好和映射表组合对应起来,并没有增加额外的开销。
实施例二
本实施例提供的一种扩大固态硬盘映射表单元的实现方法与实施例一的不同之处在于:
本实施例通过具体实例进行说明。
由于固态硬盘只能按页擦写,导致无法对逻辑地址的数据直接进行覆盖写入。为解决该问题,需要引入一个映射表,来对应主机的逻辑地址和闪存中物理地址的关系。如图1所示,当主机第一次往逻辑地址LBA=0x4写入数据时,该数据被写入到了物理地址FPA=0x3000中。当第二次主机继续写入逻辑地址LBA=0x4时,该数据无法重新覆盖FPA=0x3000的位置,只能往后写入FPA=0x3001中。
通常情况下,为方便CPU的管理和维护,FPA最大为32比特的数据,因此对应最多4G个LBA的空间,如果一个LBA对应4K字节的逻辑块,那么32字节的FPA最大对应16TB字节的闪存硬盘。由于映射表数据比较大,所以一般存储于片外DDR中,为了保证数据的正确性,通常都会加上ECC的保护,如图2所示。每个缓存单元为64bit,可以放入两个物理地址,然后使用8字节的ECC进行保护。
但是随着闪存工艺的提高,单块硬盘的容量也越来越大,16TB的硬盘已经无法满足单块硬盘容量需求,其中解决方案包括:
1.扩大单个LBA对应的逻辑块大小,例如提高到8KB或者16KB;
2.增加FPA的比特数,为了方便计算,通常增加一个字节,也就是一个FPA为40比特,这样可以对应4PB的硬盘大小,远远满足需要。
但是对应方案1,需要上层驱动把单个逻辑块改为8KB/16KB大小,对***内存是造成浪费,且有些***需要跑在512B的逻辑块大小下,那么每次读写512就对应这flash的16KB的读改覆盖过程,降低了固态硬盘的性能。
对应方案2,增加了固态硬盘的缓存大小,且由于5字节的物理地址不是2的幂次方,增加了查找地址的逻辑复杂度。
在本方法中,采用DDR数据的校验比特来扩展物理地址(FPA),如图3所示,将每个物理地址从32字节扩展到35字节,那么对应的硬盘最大容量就从16TB字节加大到了128TB字节。完全能满足当前硬盘容量的需求。而将两个物理地址作为一个ECC组进行校验扩展到16个物理地址作为一个ECC组进行校验,增加了部分ECC和DDR读写的要求。但是依然能满足可靠性和高性能的需求。
对于可靠性,采用16bitECC保护560bit的方案,并没有增加DDR的错误率。例如DDR的单比特错误率在10e-9的话,那么本方法对于2bit错误的概率为560x10e-18=5.6e-16。而每次映射表的修改对应与4K字节的数据,所以对应于数据的错误率在5.6e-16*560/(4096*8)约为0.96e-17,可以满足企业级固态硬盘的错误率要求。其次,对于映射表的错误,可以通过映射表恢复的方法进行修复,并不会真的造成数据的错误。
对于高性能要求,可以通过硬件对映射表的支持来完成。在企业级固态硬盘的方案中,映射表的更新和读取必须使用硬件逻辑来加速才能满足性能要求。所以修改的逻辑并不是很多。
与现有技术相比,本发明利用ECC校验时,对于提高数据比特数后,数据/校验比会提高的特性,将多个映射表单元合为一个映射表组合,对该组合采用内嵌校验位的方法,更高效利用了传统映射表缓存的校验区间,扩大了物理地址的大小,将支持的闪存映射表提高了多倍。例如只能支持4TB闪存映射表固态硬盘主控,在采用该办法后,可以支持到32TB(70比特位宽DDR接口),或者是1PB(40比特位宽DDR接口)。同时由于DDR的存取特性,而且固态硬盘大都支持多个连续LBA合并查找映射表的设计,并没有增加多余的硬件/固件开销。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (4)
1.一种扩大固态硬盘映射表单元的实现方法,包括固态硬盘相对应的内存DDR,其特征在于,所述DDR中包括映射表、纠错码ECC,当增大映射表的地址空间时,使用内嵌纠错码ECC的方法,增加每个映射表单元的位宽。
2.根据权利要求1所述的一种扩大固态硬盘映射表单元的实现方法,其特征在于,所述使用内嵌校验位的方法,增加每个映射表单元的位宽是通过降低纠错码ECC的大小实现的。
3.根据权利要求2所述的一种扩大固态硬盘映射表单元的实现方法,其特征在于,所述降低纠错码ECC的大小是通过程序控制实现的。
4.根据权利要求3所述的一种扩大固态硬盘映射表单元的实现方法,其特征在于,还包括将多个映射表单元合并成一个映射表组合,对于每个映射表组合一起使用纠错码ECC进行保护。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110843302.5A CN113555057A (zh) | 2021-07-26 | 2021-07-26 | 一种扩大固态硬盘映射表单元的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110843302.5A CN113555057A (zh) | 2021-07-26 | 2021-07-26 | 一种扩大固态硬盘映射表单元的实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113555057A true CN113555057A (zh) | 2021-10-26 |
Family
ID=78104389
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110843302.5A Withdrawn CN113555057A (zh) | 2021-07-26 | 2021-07-26 | 一种扩大固态硬盘映射表单元的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113555057A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114707478A (zh) * | 2022-06-06 | 2022-07-05 | 飞腾信息技术有限公司 | 映射表生成方法、装置、设备及存储介质 |
WO2024119677A1 (zh) * | 2022-12-08 | 2024-06-13 | 深圳大普微电子科技有限公司 | 物理地址映射方法及组件,数据处理方法及组件 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090172466A1 (en) * | 2007-12-31 | 2009-07-02 | Robert Royer | NAND power fail recovery |
US20090248961A1 (en) * | 2008-03-28 | 2009-10-01 | Phison Electronics Corp. | Memory management method and controller for non-volatile memory storage device |
CN103198214A (zh) * | 2013-03-19 | 2013-07-10 | 卡斯柯信号有限公司 | 一种基于码位映射模型的故障诊断方法 |
US20180129563A1 (en) * | 2016-11-07 | 2018-05-10 | Samsung Electronics Co., Ltd. | Memory system performing error correction of address mapping table |
US20180373590A1 (en) * | 2017-06-27 | 2018-12-27 | Western Digital Technologies, Inc. | Scaling large drives using enhanced dram ecc |
CN112486852A (zh) * | 2020-12-01 | 2021-03-12 | 合肥大唐存储科技有限公司 | 一种固态硬盘及其地址映射方法 |
-
2021
- 2021-07-26 CN CN202110843302.5A patent/CN113555057A/zh not_active Withdrawn
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090172466A1 (en) * | 2007-12-31 | 2009-07-02 | Robert Royer | NAND power fail recovery |
US20090248961A1 (en) * | 2008-03-28 | 2009-10-01 | Phison Electronics Corp. | Memory management method and controller for non-volatile memory storage device |
CN103198214A (zh) * | 2013-03-19 | 2013-07-10 | 卡斯柯信号有限公司 | 一种基于码位映射模型的故障诊断方法 |
US20180129563A1 (en) * | 2016-11-07 | 2018-05-10 | Samsung Electronics Co., Ltd. | Memory system performing error correction of address mapping table |
US20180373590A1 (en) * | 2017-06-27 | 2018-12-27 | Western Digital Technologies, Inc. | Scaling large drives using enhanced dram ecc |
CN112486852A (zh) * | 2020-12-01 | 2021-03-12 | 合肥大唐存储科技有限公司 | 一种固态硬盘及其地址映射方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114707478A (zh) * | 2022-06-06 | 2022-07-05 | 飞腾信息技术有限公司 | 映射表生成方法、装置、设备及存储介质 |
CN114707478B (zh) * | 2022-06-06 | 2022-09-02 | 飞腾信息技术有限公司 | 映射表生成方法、装置、设备及存储介质 |
WO2024119677A1 (zh) * | 2022-12-08 | 2024-06-13 | 深圳大普微电子科技有限公司 | 物理地址映射方法及组件,数据处理方法及组件 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11520697B2 (en) | Method for managing a memory apparatus | |
US11249840B2 (en) | Data storage devices and methods for rebuilding a memory address mapping table | |
CN112433956B (zh) | 逻辑到物理表高速缓存中基于顺序写入的分区 | |
US8612666B2 (en) | Method and system for managing a NAND flash memory by paging segments of a logical to physical address map to a non-volatile memory | |
US8762622B2 (en) | Enhanced MLC solid state device | |
US10120615B2 (en) | Memory management method and storage controller using the same | |
US10915475B2 (en) | Methods and apparatus for variable size logical page management based on hot and cold data | |
KR100881187B1 (ko) | 하이브리드 하드 디스크 드라이브, 하이브리드 하드 디스크드라이브를 내장하는 컴퓨터 시스템, 그리고 하이브리드하드 디스크 드라이브의 플래시 메모리 dma 회로 | |
US20030093610A1 (en) | Algorithm of flash memory capable of quickly building table and preventing improper operation and control system thereof | |
TWI709854B (zh) | 資料儲存裝置及用於存取邏輯至物理位址映射表之方法 | |
US20100070729A1 (en) | System and method of managing metadata | |
US20110238629A1 (en) | Uncorrectable error handling schemes for non-volatile memories | |
US20200264984A1 (en) | Partial caching of media address mapping data | |
JPWO2007119267A1 (ja) | フラッシュメモリ用のメモリコントローラ | |
CN113555057A (zh) | 一种扩大固态硬盘映射表单元的实现方法 | |
US20160179609A1 (en) | Bad Sector Repair Method and Apparatus | |
US8943289B2 (en) | Data moving method for flash memory module, and memory controller and memory storage apparatus using the same | |
TW202044046A (zh) | 資料儲存裝置與資料處理方法 | |
US8738847B2 (en) | Data writing method, and memory controller and memory storage apparatus using the same | |
CN111338562B (zh) | 数据存储装置与数据处理方法 | |
US8832358B2 (en) | Data writing method, memory controller and memory storage apparatus | |
US11500775B2 (en) | File system management in memory device | |
US9009389B2 (en) | Memory management table processing method, memory controller, and memory storage apparatus | |
CN112860182A (zh) | 用于写回合并的位屏蔽有效扇区 | |
JP2001134496A (ja) | 不揮発性半導体メモリを用いた記憶装置 |
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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20211026 |
|
WW01 | Invention patent application withdrawn after publication |