CN107861884B - 一种提高nand闪存中跨页存储地址映射效率的方法 - Google Patents

一种提高nand闪存中跨页存储地址映射效率的方法 Download PDF

Info

Publication number
CN107861884B
CN107861884B CN201711074790.8A CN201711074790A CN107861884B CN 107861884 B CN107861884 B CN 107861884B CN 201711074790 A CN201711074790 A CN 201711074790A CN 107861884 B CN107861884 B CN 107861884B
Authority
CN
China
Prior art keywords
page
flash memory
information
recorded
information bits
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
CN201711074790.8A
Other languages
English (en)
Other versions
CN107861884A (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.)
Huazhong University of Science and Technology
Original Assignee
Huazhong University of Science and Technology
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 Huazhong University of Science and Technology filed Critical Huazhong University of Science and Technology
Priority to CN201711074790.8A priority Critical patent/CN107861884B/zh
Publication of CN107861884A publication Critical patent/CN107861884A/zh
Application granted granted Critical
Publication of CN107861884B publication Critical patent/CN107861884B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Read Only Memory (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明公开了一种提高NAND闪存中跨页存储地址映射效率的方法,包括:从闪存芯片中选择多个块号最大的块作为信息记录块,对于每个信息记录块而言,将其每个页中除了ECC码以外的部分划分为多个槽,每个槽的大小等于一个被记录页或被记录子页的信息位的大小,将信息记录块的最后一个槽设置用于记录槽所在页与被记录页之间的对应关系,将被记录页的信息位写入对应的槽中。本发明根据对闪存结构分布与读写流程等特性的研究以及工程化需求,提供了一种空间高效的小容量信息位跨页存储的地址映射的方法。

Description

一种提高NAND闪存中跨页存储地址映射效率的方法
技术领域
本发明属于计算机存储领域,更具体地,涉及一种提高NAND闪存中跨页存储地址映射效率的方法。
背景技术
随着闪存技术的发展,3D TLC以其高容量、低成本的优势,已经成为未来应用与研究的热点。然而,由于3D TLC的原始比特误码率很高,必须采用LDPC译码算法进行纠错,但LDPC译码器硬件设计复杂,译码延时较高,许多研究者希望对其进行优化和改进。
目前通常采用的优化译码算法的方法需要在带外区域(Out of band,简称OOB)空间中设置信息位,如果信息位过长,则需要将这些信息位存储到闪存中固定的块中,然后建立原始页与对应信息位的映射关系。
然而,上述方法存在一个不可忽略的问题是,其可能导致信息位地址映射的空间大小过长,以致超过信息位的长度或占据较大比重,从而使得这些方法的空间利用率很低。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种提高NAND闪存中跨页存储地址映射效率的方法,其目的在于,通过引入计算代替存储的方法,解决现有方法中信息位地址映射的空间较大所导致的空间利用率低的技术问题。
为实现上述目的,按照本发明的一个方面,提供了一种提高NAND闪存中跨页存储地址映射效率的方法,包括以下步骤:
(1)从闪存芯片中选择多个块号最大的块作为信息记录块;
(2)对于每个信息记录块而言,将其每个页中除了ECC码以外的部分划分为多个槽,每个槽的大小等于一个被记录页或被记录子页的信息位的大小;
(3)将信息记录块的最后一个槽设置用于记录槽所在页与被记录页之间的对应关系;
(4)将被记录页的信息位写入对应的槽中。
优选地,步骤(4)具体为,首先将被记录页的信息位缓存在内存中,等到内存中缓存的信息位大小等于闪存中的一个信息记录块时,将缓存的该信息位刷新写入到闪存中。
优选地,在断电时,将信息位刷新到固态硬盘上的信息记录块中,当固态硬盘加电时,在读取数据的同时读取相应的信息记录块,以将信息位载入到内存中。
优选地,闪存可以是QLC、TLC、MLC或SLC闪存。
优选地,当闪存是TLC闪存时,所述方法进一步包括步骤(4)之后的如下步骤:当TLC闪存的一个字线上的三个页中的某个页的信息位失效时,回收该信息位在闪存中所占用的空间,使用信息记录块中该记录页的下一个记录页填充删除掉的记录页,并更新信息记录块的最后一个槽记录的信息。
按照本发明的另一方面,提供了一种提高NAND闪存中跨页存储地址映射效率的系统,包括:
第一模块,用于从闪存芯片中选择多个块号最大的块作为信息记录块;
第二模块,用于对于每个信息记录块而言,将其每个页中除了ECC码以外的部分划分为多个槽,每个槽的大小等于一个被记录页或被记录子页的信息位的大小;
第三模块,用于将信息记录块的最后一个槽设置用于记录槽所在页与被记录页之间的对应关系;
第四模块,用于将被记录页的信息位写入对应的槽中。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:
(1)本发明能够有效降低地址映射所消耗的空间:而本发明中严格按照槽与页一一映射,只需记录信息记录块与被记录信息快的信息,其他信息都可以根据位置并通过槽号和页号计算得出,地址映射表中存储的几乎全是信息位,从而大大地减少了地址映射需要的存储空间。
(2)本发明能够在保证高效率的址址映射情况下,提升系统的吞吐率:本发明能够空间高效地记录长度较小的信息位,这些信息位在运行时可以轻易地被加载到内存中,并且值可以被修改,从而解决了现有方法中信息位存储在闪存中不能被修改的问题;对于长度较长的信息位,如果是只读型的,本发明也可以在运行时部分地将该信息位载入到内存中;
(3)本发明易于实现,只需修改FTL层调度算法即可:当对某个页读取时,可以利用Multi-Die等命令同时将对应的信息位所在的页读出来,然后根据页号计算信息位的偏移,其他暂时用不到的信息位则可以缓存在内存中;当信息位需要被修改时,可以直接在内存中修改;
(4)本发明通过采用定时刷新的方法将内存中的数据写入到闪存中,可防止出现意外断电等情况造成的数据丢失。
附图说明
图1是本发明提高NAND闪存中跨页存储地址映射效率的方法的具体设计示意图。
图2是本发明提高NAND闪存中跨页存储地址映射效率的方法流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
以下首先对本发明的技术术语进行解释和说明:
晶片(Die):晶片是晶圆上的小方块,一个芯片里可能封装若干个晶片,由于闪存的工艺不一样,技术不一样,由此产生了晶片的概念,常见的有Mono晶片、A晶片、B晶片等。
分组(Plane):分组是NAND能够根据读、写、擦除等命令进行操作的最小单位,一个分组就是一个存储矩阵,其包含若干个块(Block)。
本发明的整体思路在于,提供一种对偏移量计算的方法,减少对地址映射需要的存储空间。具体地如图1所示,映射严格按照块号与槽号,页号与页号的一一对应关系,通过计算可以得出其对应的物理地址,从而避免了直接记录块号+页号+页内偏移带来的地址位的空间开销。尽管本发明目前针对长度较小的信息位适用,但对于长度较大的只读型的信息位仍适用。例如将部分ECC采用本发明的方法存储。但长度过长时,必须部分地加载到内存中,并且再次访问时需要从闪存中读取,可能影响系统性能。因此本发明在信息位越短时,空间效率越高,系统性能提升也越明显。
如图2所示,本发明提高NAND闪存中跨页存储地址映射效率的方法包括以下步骤:
(1)从闪存芯片中选择多个块号最大的块(Block)作为信息记录块;
其中,选择的块的数量是和需跨页存储(即被记录)的信息位长度成正比,信息记录块与对应的被记录块在不同的晶片中,这种分布式的选择有利于并行读取或写入,不至于影响到系统性能。
另外,信息记录块一般是固定的(当然,也可以是动态调整的,但需要在FTL表中进行标记),这样便于计算其他被记录块的偏移位置。
(2)对于每个信息记录块而言,将其每个页中除了纠错码(Error correctioncode,简称ECC)以外的部分划分为多个槽(Slot),每个槽的大小等于一个被记录页(或子页)的信息位的大小;
例如,被记录页(或子页)的信息位大小为1字节,则槽的大小统一都设置为1字节;此外,一个信息记录块的页中槽的数量与被记录页(或子页)的信息位的大小呈负相关。
例如,假设一个页包括4个子页,则0到3号槽分别对应0号被记录块中所有被记录页的第0到3号子页,4-7号槽对应1号被记录块中所有被记录页的第0-3号子页,依次类推。
如图1所示,图1中是没有对物理页划分子页的情况,所以0号槽对应0号块,1号槽对应1号块。
(3)将信息记录块的最后一个槽设置用于记录槽所在页与被记录页之间的对应关系;
本步骤的目的在于,在固态硬盘运行一段时间后,可能有部分被记录页的信息位被回收,从而可以通过最后一个槽记录的信息来进行地址映射。
如图1所示,0号信息记录块最后是其记录信息的映射信息,用来标识当前页实际记录的其他被记录块的页号。
(4)将被记录页的信息位写入对应的槽中;具体而言,首先将被记录页的信息位缓存在内存中,等到内存中缓存的信息位大小等于闪存中的一个信息记录块时,将缓存的该信息位刷新写入到闪存中;
在断电时,将信息位刷新到固态硬盘上的信息记录块中,当固态硬盘加电时,在读取数据的同时读取相应的信息记录块,从而将信息位载入到内存中。
在本发明中,闪存可以是三层单元(Triple-Level Cell,简称TLC)、多层单元(Multi-Level Cell,简称MLC)、单层单元(Single-Level Cell,简称SLC)等,当采用TLC时,本发明的方法还可以包括在上述步骤(4)之后的如下步骤:
(5)当TLC闪存的一个字线(Wordline)上的三个页中的某个页的信息位(如中间有效位(Central significant bit,简称CSB))失效时,回收该信息位在闪存中所占用的空间,即删除该信息位对应的记录页,使用信息记录块中该记录页的下一个记录页填充删除掉的记录页,并更新信息记录块的最后一个槽记录的信息。如图1所示,右边每页分别记录的P0,
P1,P2,P3,P4,P5,……。当被回收后,下一记录页可以填充被删除页,所以变为P0,P2,P3,P5,……。
总而言之,本发明具有以下的优点:
(1)本发明能够有效降低地址映射所消耗的空间:假设在同一个分组(Plane)内做映射,传统方法每条映射信息需要存储被记录块的块号(11位)+页号(10位)+页内偏移(2位)共23位,假设额外的信息位需要存储4个字节(32位),那么地址位在其中占据了约42%的空间,空间效率极差;而本发明中严格按照槽与页一一映射,只需记录一份块号(8位)的信息,其他信息都可以根据位置由槽号和页号计算得出,地址映射表中存储的几乎全是信息位,大大地减少了地址映射需要的存储空间。
(2)本发明能够在保证高效率的址址映射情况下,提升系统的吞吐率。本发明的目的在于空间高效地记录长度较小的信息位。由于所占空间不多,所以这些信息位在运行时可以轻易地被加载到内存中,并且值可以被修改,从而解决了存储在闪存中不能修改的问题(传统方法要修改闪存中的内容需要将块擦除,并将新数据写入)。对于长度较长的信息位,如果是只读型的,也可以在运行时部分地载入到内存中。因此本发明解决了地址映射中地址位过长的问题,使得有效的信息位可以在内存中缓存,从而提升系统的吞吐率;在加电时,可在极短时间内将信息位载入内存并在运行时做修改;在断电时由于数据量较少,可以快速将内存中的数据写回固态硬盘。
(3)本发明易于实现,只需修改FTL层调度算法即可。当对某个页读取时,可以利用Multi-Die等命令同时将对应的信息位所在的页读出来。然后根据页号计算信息位的偏移。其他暂时用不到的信息位可以缓存在内存中。当信息位需要修改时,直接在内存中修改。为防止意外断电等情况,可以采用定时刷新的方法将内存中的数据写入到闪存中。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (5)

1.一种提高NAND闪存中跨页存储地址映射效率的方法,其特征在于,包括以下步骤:
(1)从闪存芯片中选择多个块号最大的块作为信息记录块;
(2)对于每个信息记录块而言,将其每个页中除了ECC码以外的部分划分为多个槽,每个槽的大小等于一个被记录页或被记录子页的信息位的大小;
(3)将信息记录块的最后一个槽设置用于记录槽所在页与被记录页之间的对应关系;
(4)将被记录页的信息位写入对应的槽中,具体为,首先将被记录页的信息位缓存在内存中,等到内存中缓存的信息位大小等于闪存中的一个信息记录块时,将缓存的该信息位刷新写入到闪存中。
2.根据权利要求1所述的方法,其特征在于,在断电时,将信息位刷新到固态硬盘上的信息记录块中,当固态硬盘加电时,在读取数据的同时读取相应的信息记录块,以将信息位载入到内存中。
3.根据权利要求1或2所述的方法,其特征在于,闪存可以是QLC、TLC、MLC或SLC闪存。
4.根据权利要求3所述的方法,其特征在于,如果闪存是TLC闪存,则所述方法进一步包括步骤(4)之后的如下步骤:当TLC闪存的一个字线上的三个页中的某个页的信息位失效时,回收该信息位在闪存中所占用的空间,使用信息记录块中该记录页的下一个记录页填充删除掉的记录页,并更新信息记录块的最后一个槽记录的信息。
5.一种提高NAND闪存中跨页存储地址映射效率的系统,其特征在于,包括:
第一模块,用于从闪存芯片中选择多个块号最大的块作为信息记录块;
第二模块,用于对于每个信息记录块而言,将其每个页中除了ECC码以外的部分划分为多个槽,每个槽的大小等于一个被记录页或被记录子页的信息位的大小;
第三模块,用于将信息记录块的最后一个槽设置用于记录槽所在页与被记录页之间的对应关系;
第四模块,用于将被记录页的信息位写入对应的槽中,具体为,首先将被记录页的信息位缓存在内存中,等到内存中缓存的信息位大小等于闪存中的一个信息记录块时,将缓存的该信息位刷新写入到闪存中。
CN201711074790.8A 2017-11-06 2017-11-06 一种提高nand闪存中跨页存储地址映射效率的方法 Active CN107861884B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711074790.8A CN107861884B (zh) 2017-11-06 2017-11-06 一种提高nand闪存中跨页存储地址映射效率的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711074790.8A CN107861884B (zh) 2017-11-06 2017-11-06 一种提高nand闪存中跨页存储地址映射效率的方法

Publications (2)

Publication Number Publication Date
CN107861884A CN107861884A (zh) 2018-03-30
CN107861884B true CN107861884B (zh) 2020-06-02

Family

ID=61700818

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711074790.8A Active CN107861884B (zh) 2017-11-06 2017-11-06 一种提高nand闪存中跨页存储地址映射效率的方法

Country Status (1)

Country Link
CN (1) CN107861884B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108717395B (zh) * 2018-05-18 2021-07-13 记忆科技(深圳)有限公司 一种降低动态块映射信息占用内存的方法及装置
CN110825325A (zh) * 2019-10-30 2020-02-21 深圳忆联信息系统有限公司 基于映射表动态加载的ssd性能提升方法、装置、计算机设备及存储介质
CN112363833B (zh) * 2020-11-10 2023-01-31 海光信息技术股份有限公司 一种网络数据包的内存分配方法、装置及相关设备
CN112558879A (zh) * 2020-12-17 2021-03-26 南昌航空大学 一种提高固态盘内3D-flash性能的方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102479157A (zh) * 2010-11-22 2012-05-30 慧荣科技股份有限公司 用来进行区块管理的方法、记忆装置及其控制器
CN103440206A (zh) * 2013-07-25 2013-12-11 记忆科技(深圳)有限公司 一种固态硬盘及其混合映射方法
CN103970674A (zh) * 2013-01-30 2014-08-06 安凯(广州)微电子技术有限公司 一种物理块写入方法及系统
US9053012B1 (en) * 2013-03-15 2015-06-09 Pmc-Sierra, Inc. Systems and methods for storing data for solid-state memory
CN106371943A (zh) * 2016-09-06 2017-02-01 华中科技大学 一种基于flash编程干扰错误感知的LDPC译码优化方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102479157A (zh) * 2010-11-22 2012-05-30 慧荣科技股份有限公司 用来进行区块管理的方法、记忆装置及其控制器
CN103970674A (zh) * 2013-01-30 2014-08-06 安凯(广州)微电子技术有限公司 一种物理块写入方法及系统
US9053012B1 (en) * 2013-03-15 2015-06-09 Pmc-Sierra, Inc. Systems and methods for storing data for solid-state memory
CN103440206A (zh) * 2013-07-25 2013-12-11 记忆科技(深圳)有限公司 一种固态硬盘及其混合映射方法
CN106371943A (zh) * 2016-09-06 2017-02-01 华中科技大学 一种基于flash编程干扰错误感知的LDPC译码优化方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
体全息存储文件系统的设计;易法令等;《计算机应用研究》;20060131(第1期);第160-163页 *

Also Published As

Publication number Publication date
CN107861884A (zh) 2018-03-30

Similar Documents

Publication Publication Date Title
US10915475B2 (en) Methods and apparatus for variable size logical page management based on hot and cold data
JP5823875B2 (ja) 固体メモリフォーマッティング
CN107861884B (zh) 一种提高nand闪存中跨页存储地址映射效率的方法
CN105718530B (zh) 文件存储系统及其文件存储控制方法
KR101014040B1 (ko) 디램 버퍼 관리 장치 및 방법
US20100180145A1 (en) Data accessing method for flash memory, and storage system and controller system thereof
CN103106143B (zh) 固态储存装置及其逻辑至实体对应表建立方法
JP2013200889A (ja) 揮発性メモリおよび不揮発性メモリを有するハイブリッド固体メモリシステム
US9619380B2 (en) Data writing method, memory control circuit unit and memory storage apparatus
US11397669B2 (en) Data storage device and non-volatile memory control method
TWI473100B (zh) Flash memory system and its operation method
US20140328127A1 (en) Method of Managing Non-Volatile Memory and Non-Volatile Storage Device Using the Same
US8429339B2 (en) Storage device utilizing free pages in compressed blocks
US9037781B2 (en) Method for managing buffer memory, memory controllor, and memory storage device
US11307979B2 (en) Data storage device and non-volatile memory control method
CN102999441A (zh) 一种细粒度内存访问的方法
CN113590505A (zh) 地址映射方法、固态硬盘控制器及固态硬盘
CN103092771A (zh) 固态储存装置及其高速缓存的控制方法
CN116149554B (zh) 一种基于risc-v及其扩展指令的数据存储处理系统及其方法
US20230122919A1 (en) Storage device and storage method for caching address conversion table
US20210318953A1 (en) Method for managing flash memory module and associated flash memory controller and electronic device based on timing of dummy read operations
US11526299B2 (en) Elastic buffer for media management of a memory sub-system
CN110223726B (zh) 一种增加ssd使用寿命的方法及其系统
CN112558879A (zh) 一种提高固态盘内3D-flash性能的方法
KR20090046568A (ko) 플래시 메모리 시스템 및 그것의 쓰기 방법

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