CN114398010A - 数据读写方法、存储器存储装置及存储器控制器 - Google Patents

数据读写方法、存储器存储装置及存储器控制器 Download PDF

Info

Publication number
CN114398010A
CN114398010A CN202210044915.7A CN202210044915A CN114398010A CN 114398010 A CN114398010 A CN 114398010A CN 202210044915 A CN202210044915 A CN 202210044915A CN 114398010 A CN114398010 A CN 114398010A
Authority
CN
China
Prior art keywords
entity
blocks
bad
physical
pages
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
CN202210044915.7A
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.)
Hosin Global Electronics Co Ltd
Original Assignee
Hosin Global Electronics 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 Hosin Global Electronics Co Ltd filed Critical Hosin Global Electronics Co Ltd
Priority to CN202210044915.7A priority Critical patent/CN114398010A/zh
Publication of CN114398010A publication Critical patent/CN114398010A/zh
Pending legal-status Critical Current

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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • 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
    • 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/0658Controller construction 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0667Virtualisation aspects at data level, e.g. file, record or object virtualisation
    • 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]

Landscapes

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

Abstract

本发明提供一种数据读写方法、存储器存储装置及存储器控制器,该方法用于存储器存储装置,存储器存储装置包括存储器模块,存储器模块包括多个实体块和多个虚拟块,实体块包括多个实体页,虚拟块由多个实体块中的若干实体坏块的实体好页构建而成,该方法包括:对虚拟块进行数据读取时,根据预设的虚拟块映射表,找出当前存储有数据的实体好页对应的实体坏块的物理地址,以读取存储有数据的实体好页中的数据;对虚拟块进行数据写入时,根据预设的虚拟块映射表,找出当前空白的实体好页对应的实体坏块的物理地址,以将数据写入到空白的实体好页中。藉此,可在不改变存储器存储装置的有效存储容量的情况下,大幅度延长存储器存储装置的使用寿命。

Description

数据读写方法、存储器存储装置及存储器控制器
技术领域
本发明涉及一种存储器管理技术,尤其涉及一种数据读写方法、存储器存储装置及存储器控制器。
背景技术
随着技术的发展,存储装置的应用越来越广泛。在使用过程中,存储装置检测到存储数据的块(Block)发生损坏时,即从取代块中选取一个替换之前损坏的块,这样就能保证存储装置的有效存储,从而延长存储装置的使用寿命。只有当所有取代块都耗尽时,才认为整个存储装置的使用寿命到了。显然,取代块数量保留的越多,则存储装置的使用寿命越长,但是相应的用于有效存储数据的块数也越少,导致存储装置的有效容量也越小。
发明内容
本发明提供一种数据读写方法、存储器存储装置及存储器控制器,可在不改变存储器存储装置的有效存储容量的情况下,大幅度延长存储器存储装置的使用寿命。
本发明的实施例提供一种数据读写方法,用于存储器存储装置,其中所述存储器存储装置包括存储器模块,所述存储器模块包括多个实体块和多个虚拟块,所述实体块包括多个实体页,所述虚拟块由所述多个实体块中的若干实体坏块中的实体好页构建而成,所述数据读写方法包括:对所述虚拟块进行数据读取时,根据预设的虚拟块映射表,找出当前存储有数据的实体好页对应的实体坏块的地址,以读取所述存储有数据的实体好页中的数据;对所述虚拟块进行数据写入时,根据预设的虚拟块映射表,找出当前空白的实体好页对应的实体坏块的地址,以将数据写入所述空白的实体好页中。
本发明的实施例另提供一种存储器存储装置,包括:连接接口,用以连接至主机系统;存储器模块,包括多个实体块和多个虚拟块,所述实体块包括多个实体页,所述虚拟块由所述多个实体块中的若干实体坏块中的实体好页构建而成;存储器控制器,连接至所述连接接口与所述存储器模块,其中,所述存储器控制器用以执行上述的数据读写方法。
本发明的实施例另提供一种存储器控制器,用以控制存储器模块,其中所述存储器模块包括多个实体块和多个虚拟块,所述实体块包括多个实体页,所述虚拟块由所述多个实体块中的若干实体坏块中的实体好页构建而成,且所述存储器控制器包括:主机接口,用以连接至主机系统;存储器接口,用以连接至所述存储器模块;以及存储器控制电路,连接至所述主机接口与所述存储器接口。其中所述存储器控制电路还用以执行上述的数据读写方法。
基于上述,存储器模块除了包括多个实体块外,还包括多个虚拟块,且该虚拟块由多个实体块中的若干实体坏块中的实体好页构建而成。当对虚拟块进行数据读取时,根据预设的虚拟块映射表,找出当前存储有数据的实体好页对应的实体坏块的地址,以读取存储有数据的实体好页中的数据。当对虚拟块进行数据写入时,根据预设的虚拟块映射表,找出当前空白的实体好页对应的实体坏块的地址,以将数据写入空白的实体好页中。这样一来,本申请通过块映射的方式,将产生的实体坏块进行重新利用,构建虚拟块以及相应的虚拟块映射表,使得原有的实体坏块可以重新被使用,即建立的虚拟块可以作为取代块,进行正常使用(包括数据读取与数据写入),同时,虚拟块是由原有的实体坏块构建而成,其没有改变初始设定的取代块的比例和数量,因而不会改变存储装置的有效存储容量。藉此,可在不改变存储器存储装置的有效存储容量的情况下,大幅度延长存储器存储装置的使用寿命。
附图说明
图1是根据本发明的实施例所示出的存储器存储装置的示意图。
图2是根据本发明的实施例所示出的存储器控制器的示意图。
图3是根据本发明的实施例所示出的存储器模块的一种结构示意图。
图4是根据本发明的实施例所示出的存储器模块的另一种结构示意图。
图5是根据本发明的实施例所示出的存储器模块的实体块映射表的示意图。
图6是根据本发明的实施例所示出的建立虚拟块的流程图。
图7是根据本发明的实施例所示出的存储器模块的虚拟块映射表的示意图。
图8是根据本发明的实施例所示出的数据读写方法的流程图。
具体实施方式
现将详细地参考本发明的示范性实施例,示范性实施例的实例说明于附图中。只要有可能,相同元件符号在附图和描述中用来表示相同或相似部分。
图1是根据本发明的实施例所示出的存储器存储装置的示意图。请参照图1,存储器存储系统10包括主机系统11与存储器存储装置12。主机系统11可为任意型态的计算机系统。例如。主机系统11可为笔记本计算机、台式计算机、智能手机、平板计算机、工业计算机、游戏机、数码相机等各式电子系统。存储器存储装置12用以存储来自主机系统11的数据。例如,存储器存储装置12可包括固态硬盘、U盘、存储卡或其他类型的非易失性存储装置。主机系统11可经由串行高级技术附件(Serial Advanced Technology Attachment,SATA)接口、高速周边零件连接接口(Peripheral Component Interconnect Express,PCI Express)、通用串行总线(Universal Serial Bus,USB)或其他类型的连接接口电性连接至存储器存储装置12。因此,主机系统11可将数据存储至存储器存储装置12和/或从存储器存储装置12读取数据。
存储器存储装置12可包括连接接口121、存储器模块122及存储器控制器123。连接接口121用以将存储器存储装置12连接至主机系统11。例如,连接接口121可支持SATA、PCIExpress或USB等连接接口标准。存储器存储装置12可经由连接接口121与主机系统11通信。
存储器模块122用以存储数据。存储器模块122可包括可复写式非易失性存储器模块。存储器模块122包括存储单元阵列。存储器模块122中的存储单元是以电压的形式来存储数据。例如,存储器模块122可包括单阶存储单元(Single Level Cell,SLC)NAND型快闪存储器模块、多阶存储单元(Multi Level Cell,MLC)NAND型快闪存储器模块、三阶存储单元(Triple Level Cell,TLC)NAND型快闪存储器模块、四阶存储单元(Quad Level Cell,QLC)NAND型快闪存储器模块或其他具有相似特性的存储器模块。
存储器控制器123连接至连接接口121与存储器模块122。存储器控制器123可用以控制存储器存储装置12。例如,存储器控制器123可控制连接接口121与存储器模块122以进行数据存取与数据管理。例如,存储器控制器123可包括中央处理单元(CPU)、或是其他可编程的一般用途或特殊用途的微处理器、数字信号处理器(Digital Signal Processor,DSP)、可编程控制器、专用集成电路(Application Specific Integrated Circuits,ASIC)、可编程逻辑器件(Programmable Logic Device,PLD)或其他类似装置或这些装置的组合。
在一实施例中,存储器控制器123亦称为快闪存储器控制器。在一实施例中,存储器模块122亦称为快闪存储器模块。存储器模块122可接收来自存储器控制器123的指令序列并根据此指令序列存取存储单元。
图2是根据本发明的实施例所示出的存储器控制器的示意图。请参照图1与图2,存储器控制器123包括主机接口21、存储器接口22及存储器控制电路23。主机接口21用以经由连接接口121连接至主机系统11,以与主机系统11通信。存储器接口22用以连接至存储器模块122。
存储器控制电路23连接至主机接口21与存储器接口22。存储器控制电路23用以负责存储器存储装置12的整体或部分运作。存储器控制电路23可经由主机接口21与主机系统11通信并经由存储器接口22存取存储器模块122。在一实施例中,存储器控制电路23也可视为存储器控制器123的控制核心。在以下实施例中,对于存储器控制电路23的说明等同于对于存储器控制器123的说明。
图3是根据本发明的实施例所示出的存储器模块的示意图。请参照图1至图3,存储器模块122包括多个实体块30,每一个实体块30具体可包括多个实体页31。一个实体块30中的多个实体页31可被同时程序化以存储数据。此外,一个实体块30中的所有实体页31的存储数据可被同时擦除。即存储器模块122的基本读写单位是页,而擦除操作则以块为单位。一个实体页31在进行写入数据之前,必须先保证其所在的实体块30已经被擦除过了,且每次该实体页31需要重新写入数据之前也必须先擦除其所属的实体块30。因此,存储器模块122是采用块为基本单位来管理数据的存储。
存储器模块122的物理单元经过一定的擦除和写入操作之后,1或0的状态变得不稳定,此时认为这些物理单元已经损坏,整体表现出来就是存储数据出错。虽然大部分存储器模块122都会带有一定程度的纠错校正机制,但是一旦错误的范围扩大到纠错校正能力之外,就不再能够保证数据的正确性,此时会认为存储装置的使用寿命到了。但是如果因为一小部分物理单元错误,就导致整个存储器模块122不能使用了,显然是很浪费的。针对这种情况,一般存储器模块122都有一定的坏块管理机制,其基本原理均为:将存储器模块122以块为基本单位,划分出一部分数量的实体块30作为取代块,剩下的部分数量的实体块30用来作为有效容量存储数据。在使用过程中,当检测到存储数据的实体块30发生损坏时,即从取代块中选取一个替换之前损坏的实体块30,这样就能保证存储装置的有效存储,从而延长存储装置的使用寿命。只有当所有取代块都耗尽时,才认为整个存储装置的使用寿命到了。显然,取代块数量保留的越多,则存储装置的使用寿命越长,但是相应的用于有效存储数据的块数也越少,导致存储装置的有效容量也越小,因此,需要在这两者之间保持一定的平衡。
假定一个存储器模块122,其共有1024个实体块,每个实体块包含128个实体页,每个实体页的大小是8K字节,此时,每个实体块大小为1M字节,存储器模块122的总物理容量就是1024M字节。一般地,该存储器模块122可以保留约4%的实体块作为取代块,即大约40个实体块左右用于坏块替换。这样所有实体块划分为数据区(984个实体块)和取代区(40个实体块)两部分,数据区的容量为984M,即为存储装置的实际有效容量。其中,数据区的逻辑地址与物理地址的映射关系表初始状态如下表1所示:
Figure BDA0003471755220000051
可见,存储器模块122初始时,优选将排在前面的连续的实体块301(1)~实体块301(984)划分为数据区,则剩下的实体块301(985)~实体块301(1024)划归到取代区。此时,其数据区中,逻辑地址的排序、实体块的排序以及物理地址的排序均为连续的。当数据区的实体块出现损坏时,用取代区的实体块进行替换,以保证对应逻辑地址的数据仍然可以有效存储。以实体块301(3)损坏为例,此时,需用取代区的实体块301(985)进行替换,以保证对应逻辑地址3的数据仍然可以有效存储。调整后的数据区的逻辑地址与物理地址的映射关系表如下表2所示:
Figure BDA0003471755220000061
此时,数据区中,除了逻辑地址的排序仍保持连续外,实体块的排序以及物理地址的排序均不连续。当取代区中的40个取代块替换完了之后,这时存储器模块122通常就应该进入写保护状态,即只能从中读取数据,不能更改或写入数据,以防止新的实体坏块产生后,导致数据存储出错,换而言之,存储器模块122的存储寿命也到了,用户只能将其作为只读装置,并尽快将存储器模块122中数据备份保存到其它的存储器模块。而对于存储器模块122而言,如果一个实体块被定义为坏块,通常并非是整个实体块中的所有物理单元都损坏,事实上往往只是其中某一个或者某几个实体页,甚至某个实体页中一部分物理单元损坏。因此,该实体块实际上还有很多实体页是可以正常使用的。如果能将标记为实体坏块中的完好的实体页利用起来,比如将其重新组织成取代块,则相当于增加了取代块的数量,从而延长存储装置的使用寿命。
在一实施例中,如图4所示,该存储器模块122除了包括多个实体块301(1)~301(X)外,还包括多个虚拟块302(1)~302(Y),其中,每一个虚拟块均由多个实体块301(1)~301(X)中的若干实体坏块中的若干实体好页构建而成。其中,X、Y均表示大于1的正整数,且X应远大于Y。具体地,对于多个实体块301(1)~301(X)而言,由于其本身均“真实存在”,因而,如图5所示,每一实体块对应映射一个具体的物理地址,如实体块1对应映射的物理地址1,实体块2对应映射的物理地址2等等。而对于多个虚拟块302(1)~302(Y),由于其实际由多个实体块301(1)~301(X)中的若干实体坏块中的若干实体好页构建而成,即其本身“并非真实存在”的。需要说明的是,上述“真实存在”和“并非真实存在”是一个相对口语化的表述。另外,因为存储器模块122的特性是以块擦,以页写。因此,块映射和页映射都是可以实现主机系统11中的数据写入到存储器模块122的页中。进一步,块映射和页映射的目的是建立逻辑地址映射至物理地址的逻辑映射表。而存储器控制器123通过该逻辑映射表来实现数据从主机系统11中写入到存储器模块122中或者数据从存储器模块122中存入到主机系统11中。因此,本申请实施例存储器存储装置12的映射方式是块映射。多个实体块301(1)~301(X)是块映射外,多个虚拟块302(1)~302(Y)也是块映射。块映射中,一个逻辑块的逻辑地址可以映射到任意一个实体块的物理地址,且在映射前后,每个实体页在相应实体块中的偏移保持不变。由于块映射表只需存储块的映射,因此存储映射表所需的SRAM空间小,尤其适合存储器存储装置12为U盘的情形。这是因为U盘的价格一般比较便宜,其主控的选择就选择便宜的,而主控的成本和SRAM相关,SRAM容量越大,主控的成本就越高,所以U盘的映射方式都是块映射。同时,为控制成本,U盘一般还会选择包括有坏块或者使用过程中容易出现坏块的存储器模块122,这样,U盘的使用寿命则得不到保证。本申请为进一步提高这些U盘的使用寿命,则需要重新构建一个新的虚拟块映射表来找出构成相应虚拟块的实体块,进而找出其对应的物理地址,以将包含实体好页的实体坏块重新利用起来。
基于上述可知,以所有实体块划分为数据区(984个实体块)和取代区(40个实体块)两部分为例,当原数据区中出现实体坏块,其即被取代区中的实体块替换出来,由于不同的实体块,其损坏的程度是不同的,因而,原数据区中被替换的实体坏块中的实体坏页的数量是不同的。相关技术中,当存储器存储装置12被制造完成而进行第一次格式化(亦称为开卡)时,存储器控制电路23会对存储器模块122中的所有实体块30进行写入、读取以及擦除测试,建立一坏块表,该坏块表中记录存储器模块122中所有的实体块状态,如包括每一实体块30的错误比特数。实际情况中,由于有ECC("Error Correcting Code"的简写,中文名称是"错误检查和纠正")的存在,且不同的存储器控制电路23,其ECC校正能力亦可能不同。存储器控制电路23的ECC校正能力指当其控制的实体块出现错误比特数时,其能校正过来的最大阈值。针对当前的存储器控制电路23而言,当一实体块30的错误比特数大于其ECC校正能力的阈值时,即表示该实体块30不可用,为一实体坏块。
存储器模块122的坏块表记录有存储器模块122的实体块状态,如每一实体块30的错误比特数。具体地为哪些实体块30能够通过测试是由于其没有一个比特错误数,哪些实体块30能通过是由于ECC校正才能通过测试的,记录其明细,以当前的存储器控制电路23的ECC校正能力为16比特为例,那么实体块的错误比特数不大于16比特的都可认定是通过测试,可以使用的,示例性如下表3所示:
Figure BDA0003471755220000081
表3仅为便于说明本申请坏块表的工作原理做出的示意表格,并非坏块表的实际表现形式。上述提到的ECC校正能力取决于存储器控制电路23,其是以错误检查与校正电路的方式设置于存储器控制电路23中,以及编解码方法的不同,也对应着ECC校正能力,如BCH和LDPC,两者的校正方法是不相同的,后者是概率校验,简单来讲,超过阈值后,错误是有大概率不能被校正过来,本实施例不做具体限定,只是举例说明。
上述提到的坏块表在存储器存储装置12开卡时建立,使用过程中更新它。上述的表3中,物理地址为PBA(1)至PBA(a)的实体块30有0个错误比特数、物理地址为PBB(1)至PBB(b)的实体块30有1个错误比特数、物理地址为PBC(1)至PBC(c)的实体块30有2个错误比特数、……、物理地址为PBQ(1)至PBQ(q)的实体块30有16个错误比特数、物理地址为PBR(1)至PBR(r)的实体块30是实体坏块(表示这些实体块30的错误比特数大于16),这些实体坏块出厂就有或者使用过程中产生的。表1中的字母a至r均表示大于1的正整数,两个不同的字母表示的正整数可以相等亦可以不相等。
在一示例中,存储器控制电路23用以在多个实体块301(1)~301(X)中获取所有实体坏块,并根据每一实体坏块中所有实体页的好坏情况建立第一坏块记录表。具体地,以上述表3中r为10为例,多个实体块301(1)~301(X)中物理地址为PBR(1)至PBR(10)的实体块30是实体坏块,其依次对应为实体块301(5)、实体块301(12)、实体块301(15)、实体块301(17)、实体块301(21)、实体块301(23)、实体块301(40)、实体块301(50)、实体块301(61)以及实体块301(71)。此时,针对这些实体坏块分别进行擦除、数据写入测试,可建立第一坏块记录表,该第一坏块记录表记录的是每一实体坏块中所有实体页的好坏情况。以实体坏块为实体块301(5)为例,其总共包括128个实体页,第一坏块记录表中可记录实体块301(5)的128个实体页中,哪些实体页为实体好页(具体可将相应的实体页标记为0),哪些实体页为实体坏页(具体可将相应的实体页标记为1),示例性,第一坏块记录表具体可如下表4所示:
Figure BDA0003471755220000091
此时,在一示例中,如图6所示,存储器控制电路23用以通过多个实体块301(1)~301(B)中的若干实体坏块中的实体好页构建虚拟块的过程具体如下:在步骤S11中,获取第一坏块记录表,第一坏块记录表中记录有多个实体块中所有实体坏块的实体页好坏信息。在步骤S12中,根据实体页好坏信息对第一坏块记录表中所有实体坏块进行好坏页数量排序,得到第二坏块记录表。在步骤S13中,基于第二坏块记录表获取坏块组,坏块组中所有实体好页的数量之和大于或等于第一预设页数阈值。步骤S14中,基于坏块组建立虚拟块,并根据虚拟块的地址与对应实体坏块的地址之间的映射关系建立虚拟块映射表。图6中各步骤下文会详细说明,在此先不赘述。
在一示例中,存储器控制电路23用以获取第一坏块记录表,该第一坏块记录表中记录有多个实体块中所有实体坏块的实体页好坏信息。该第一坏块记录表具体可如上述表4所示,其记录有多个实体块301(1)~301(X)中所有实体坏块的实体页好坏信息,依据实体页在相应的实体坏块中的排序,该实体页好坏信息可以以表4中的字符串的形式体现,即表4中对应实体页好坏信息的一栏具体可为128位字长的字符串,每一位对应标记一个实体页的好坏信息。表4中实体好页数量一栏主要用于体现实体页好坏信息中标记为实体好页的实体页的数量,即相应字符串中“0”的数量,实际第一坏块记录表中可不单独列出这一项。
在一示例中,存储器控制电路23用以根据实体页好坏信息对第一坏块记录表中所有实体坏块进行好坏页数量排序,得到第二坏块记录表。其具体过程可以如下:按照实体好页数量由多到少的顺序,对第一坏块记录表中所有实体坏块进行重新排序,得到第二坏块记录表。即可通过每一实体坏块对应的实体页好坏信息,统计得到每一实体坏块的实体好页数量,即相应字符串中“0”的数量后,根据按照实体好页数量由多到少的顺序,对第一坏块记录表中所有实体坏块进行重新排序,得到第二坏块记录表,具体上表4的第一坏块记录表为例,重新排序后得到的第二坏块记录表如下表5所示:
Figure BDA0003471755220000101
对于本领域技术人员而言,亦可根据实际需要,对上述重新排序调整为,按照实体好页数量由少到多的顺序,对第一坏块记录表中所有实体坏块进行重新排序,来得到上述第二坏块记录表,新得到的第二坏块记录表的排序效果与原第二坏块记录表的排序效果相同。
在一示例中,存储器控制电路23用以基于第二坏块记录表获取坏块组,坏块组中所有实体好页的数量之和大于或等于第一预设页数阈值的操作。其具体过程可以是:从第二坏块记录表中按照从两端到中间的顺序分别获取至少两个实体坏块组成一坏块组,且坏块组中所有实体好页的数量之和大于或等于第一预设页数阈值。原则上,组成一坏块组的实体坏块的数量可以是大于1以上的任意数值,但由于获取坏块组的目的在于后续基于该坏块组建立相应的虚拟块,而用于构建同一虚拟块的实体坏块数目越多的话,会影响构建成的虚拟块的映射管理。因为由于跨了太多个实体块,就会导致基于此映射管理方法的数据读写速度比较慢。因而,优选获取两个或三个实体坏块来构成一个上述坏块组。通过两个或三个实体坏块就可以构成一虚拟块,使得后续的映射管理非常方便,数据的读写速度也能和实体块301(1)~301(X)的速度相差不是很大。尤其适合调整实体坏页比较多的实体坏块,因为通过建立第一坏块记录表和优化第一坏块记录表得到第二坏块记录表,实体坏块中实体好页的数量最大值和数量最小值是非常直观的呈现出来,后续算法的运行过程中,只需要根据第二坏块记录表来执行一个加法运算,然后构建虚拟块,构建虚拟块的速度程序运行下来会非常快,使得后续映射管理也非常方便,就可以快速地完成坏块管理。后续虚拟块构建的过程是动态调整的。
当从第二坏块记录表中按照从两端到中间的顺序分别获取两个实体坏块组成一坏块组时,可以分别从当前第二坏块记录表的队头获取一实体坏块以及从当前第二坏块记录表的队尾获取一实体坏块,以通过这两个实体坏块来组成一坏块组,以上述表3的第二坏块记录表为例,即通过实体块301(71)与实体块301(23)组成一坏块组。当从第二坏块记录表中按照从两端到中间的顺序分别获取三个实体坏块组成一坏块组时,可以分别从当前第二坏块记录表的队头获取一实体坏块以及从当前第二坏块记录表的队尾获取两实体坏块,以通过这三个实体坏块来组成一坏块组,以上述表3的第二坏块记录表为例,即通过实体块301(71)、实体块301(61)与实体块301(23)组成一坏块组。
基于上述,由于获取坏块组的目的在于后续基于该坏块组内的实体好页来建立相应的虚拟块,因而,坏块组中所有实体好页的数量之和应大于或等于要构建的虚拟块的总页数,即上述第一预设页数阈值。虚拟块的设置有两种,一种为其页的数量为现有的实体坏块的实体页数量相同,即第一预设页数阈值为一个实体块中的所有实体页的数量,如128;另一种是一种动态值,其大小和第二坏块记录表中实体好页数量相关,比如第二坏块记录表中两个或三个实体坏块中所有实体好页数量小于128,那么上述第一预设页数阈值的数值再进行调整设定。
在一示例中,存储器控制电路23用以基于坏块组建立虚拟块,以坏块组包括两个实体坏块为例,其具体过程如下:若坏块组包括两个实体坏块,则其中实体好页数量较多的实体坏块为第一实体坏块,实体好页数量较少的实体坏块为第二实体坏块;分别获取第一实体坏块的所有实体好页以及第二实体坏块的部分实体好页来建立虚拟块,所有实体好页的数量与部分实体好页的数量之和等于第一预设页数阈值。以上述表5的第二坏块记录表为例,通过实体块301(71)与实体块301(23)组成一坏块组时,获取实体块301(71)中的所有实体好页(具体数量为113)以及实体块301(23)的部分实体好页(具体数量为15),来建立相应的虚拟块。这样一来,可确保建立的虚拟块包含的实体页,其绝大部分都位于同一个实体坏块中,以方便后续的映射管理及提高相应的读写速率。
虚拟块的建立一般通过两个实体坏块来建立,其效果最佳,但亦有可能存在以下情况,两个实体坏块中所有实体页的数量不能满足建立一虚拟块的要求,即两个实体坏块中所有实体页的数量小于上述第一预设页数阈值,此时,可选择次优方案,即通过三个实体坏块来建议该虚拟块。在一示例中,存储器控制电路23用以基于坏块组建立虚拟块,以坏块组包括三个实体坏块为例,其具体过程可如下:若坏块组包括三个实体坏块,则三个实体坏块依实体好页数量由多到少的排序依次为第一实体坏块、第二实体坏块以及第三实体坏块;分别获取第一实体坏块和第二实体坏块的所有实体好页以及第三实体坏块的部分实体好页来建立虚拟块,所有实体好页的数量与部分实体好页的数量之和等于第一预设页数阈值。这样一来,可确保建立的虚拟块包含的实体页,其绝大部分都位于前两个实体坏块中,以方便后续的映射管理及提高相应的读写速率。
由于不同实体坏块中的好坏页分布可能不是相同的,有可能是实体好页数量较多的实体坏块内的实体好页分布更均匀一些,亦有可能是实体好页数量较少的实体坏块内的实体好页分别更均匀一些,此时若简单通过上述方式建立虚拟块,并不能代表映射管理是最佳的。因而,在一示例中,存储器控制电路23用以基于坏块组建立虚拟块,其具体过程还可以如下:将坏块组中的所有实体坏块划分为多个第一区段;从多个第一区段中获取实体好页数量大于或等于第二预设页数阈值的多个第一目标区段;从多个第一目标区段中获取多个目标实体好页来建立虚拟块,多个目标实体好页的数量等于第一预设页数阈值。上述第二预设页数阈值优选为一个第一区段中所有实体页的数量的一半。同样以上述表5的第二坏块记录表为例,即通过实体块301(71)与实体块301(23)组成一坏块组时,具体可将实体块301(71)与实体块301(23)划分为8个第一区段,此时,每一第一区段包含32个连续的实体页,挑选第一目标区段时,仅挑选实体好页数量大于或等于第二预设页数阈值(即16)的第一区段来作为第一目标区段。进一步,对于某些要放弃使用的第一区段,在第二坏块记录表中,做一下设定,映射管理指针跳转时,跳过它;跳到下一个符合需要的第一区段。示例性地,若某一第一区段的实体坏页数量为8时,映射管理可在32个实体页中,对其中24个实体好页来进行映射管理;而若某一第一区段的实体坏页数量为24时,映射管理则仅可在32个实体页中,对其中8个实体好页来进行映射管理,此举会影响速度,故放弃它;映射管理开始时,跳过它,寻找其它有合适的第一区段。当获取到合适的多个第一目标区段后,便可从多个第一目标区段中获取多个目标实体好页来建立虚拟块,多个目标实体好页的数量等于第一预设页数阈值。相比较原本的整个区块来进行管理,现在的管理更为精细化,通过第二预设页数阈值的设定,实体坏块的某些第一区段直接被放弃使用,从而不会影响映射管理的难度,以至于影响数据读写速度。
在一示例中,存储器控制电路23用以基于坏块组建立虚拟块,其具体过程还可以如下:将坏块组中的所有实体坏块划分为多个第二区段;从多个第二区段中获取连续实体好页数量大于或等于第三预设页数阈值的多个第二目标区段;从多个第二目标区段中获取多个目标实体好页来建立虚拟块,多个目标实体好页的数量等于第一预设页数阈值。上述第三预设页数阈值优选为一个第二区段中所有实体页的数量的一半。同样以上述表5的第二坏块记录表为例,即通过实体块301(71)与实体块301(23)组成一坏块组时,具体可将实体块301(71)与实体块301(23)划分为4个第二区段,此时,每一区段包含64个连续的实体页,挑选第二目标区段时,仅挑选实体好页数量大于或等于第三预设页数阈值(即32)的区段来作为第二目标区段。进一步,对于某些要放弃使用的第二区段,在第二坏块记录表中,做一下设定,映射管理指针跳转时,跳过它;跳到下一个符合需要的第二区段。示例性地,若某二区段的连续实体好页数量为50时,映射管理可在64个实体页中,对其中连续的50个实体好页来进行连续映射管理,此举可有效提升映射管理速度。当获取到合适的多个第二目标区段后,便可从多个第二目标区段中获取多个目标实体好页来建立虚拟块,多个目标实体好页的数量等于第一预设页数阈值。相比较原本的整个区块来进行管理,现在的管理更为精细化,通过第三预设页数阈值的设定,实体坏块的某些第二区段直接被放弃使用,从而不会影响映射管理的难度,以至于影响数据读写速度。
在一示例中,存储器控制电路23用以通过上述方式基于坏块组建立虚拟块的同时,根据虚拟块的地址与对应实体坏块的物理地址之间的映射关系建立虚拟块映射表。以表5所示的第二坏块记录表建立虚拟块为列,其简单的映射方式最终可如图7所示。
即通过上述图7所示的虚拟块映射表,可找出每一虚拟块对应的实体坏块的物理地址,即可找到该虚拟块中每一实体好页对应的实体坏块的地址,以对该虚拟块进行相应的数据读取及写入操作。以虚拟块302(1)为例,通过图7所示的虚拟块映射表,可具体找出其由实体坏块(包括实体块301(71)与实体块301(23))的实体好页构建而成,因而可找出,实体块301(71)对应的物理地址71(具体为PBR(10)),以及实体块301(23)对应的物理地址23(具体为PBR(6)),即可找到该虚拟块302(1)中每一实体好页对应的实体坏块的地址,以对该虚拟块302(1)进行相应的数据读取及写入操作。构建好的虚拟块可放于取代区中进行待用,同样以上述表1中的数据区中的实体块301(3)损坏为例,此时,可用取代区的虚拟块302(1)进行替换,以保证对应逻辑地址3的数据仍然可以有效存储。调整后的数据区的逻辑地址与物理地址的映射关系表如下表6所示:
Figure BDA0003471755220000151
在一示例中,存储器控制电路23用以对虚拟块进行数据读取时,根据预设的虚拟块映射表,找出当前存储有数据的实体好页对应的实体坏块的地址,以读取存储有数据的实体好页中的数据。该预设的虚拟块映射表即为上述建立虚拟块过程同步建立的虚拟块映射表,如图6所示的虚拟块映射表,此时,如对虚拟块302(1)进行数据读取时,假设实体块301(71)内的一实体好页存储有需要读取的数据时,可先根据上述虚拟块映射表找到虚拟块302(1)对应的实体块301(71)的物理地址71(具体为PBR(10)),来对该实体好页进行相应的数据读取操作。
在一示例中,存储器控制电路23用以对虚拟块进行数据写入时,根据预设的虚拟块映射表,找出当前空白的实体好页对应的实体坏块的地址,以将数据写入到空白的实体好页中。该预设的虚拟块映射表即为上述建立虚拟块过程同步建立的虚拟块映射表,如上述图6所示的虚拟块映射表,此时,如对虚拟块302(1)进行数据写入时,假设实体块301(23)内的一实体好页为空白时,可先根据上述虚拟块映射表找到虚拟块302(1)对应的实体块301(23)的物理地址23(具体为PBR(6)),来对该空白的实体好页进行相应的数据写入操作。
图8是根据本发明的实施例所示出的数据读写方法的流程图。请参照图4,在步骤S401中,对虚拟块进行数据读取时,根据预设的虚拟块映射表,找出当前存储有数据的实体好页对应的实体坏块的地址,以读取存储有数据的实体好页中的数据。在步骤S402中,对虚拟块进行数据写入时,根据预设的虚拟块映射表,找出当前空白的实体好页对应的实体坏块的地址,以将数据写入到空白的实体好页中。
然而,图8中各步骤已详细说明如上,在此便不再赘述。值得注意的是,图8中各步骤可以实作为多个程序码或是电路,本发明不加以限制。此外,图8的方法可以搭配以上范例实施例使用,也可以单独使用,本发明不加以限制。
综上所述,本申请通过块映射的方式,将产生的实体坏块进行重新利用,构建虚拟块以及相应的虚拟块映射表,使得原有的实体坏块可以重新被使用,即建立的虚拟块可以作为取代块,进行正常使用(包括数据读取与数据写入),同时,虚拟块是由原有的实体坏块构建而成,其没有改变初始设定的取代块的比例和数量,因而不会改变存储装置的有效存储容量。藉此,可在不改变存储器存储装置的有效存储容量的情况下,大幅度延长存储器存储装置的使用寿命。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (14)

1.一种数据读写方法,其特征在于,用于存储器存储装置,其中所述存储器存储装置包括存储器模块,所述存储器模块包括多个实体块和多个虚拟块,所述实体块包括多个实体页,所述虚拟块由所述多个实体块中的若干实体坏块中的实体好页构建而成,所述数据读写方法包括:
对所述虚拟块进行数据读取时,根据预设的虚拟块映射表,找出当前存储有数据的实体好页对应的实体坏块的物理地址,以读取所述存储有数据的实体好页中的数据;
对所述虚拟块进行数据写入时,根据预设的虚拟块映射表,找出当前空白的实体好页对应的实体坏块的物理地址,以将数据写入到所述空白的实体好页中。
2.根据权利要求1所述的数据读写方法,其特征在于,所述虚拟块由所述多个实体块中的若干实体坏块中的实体好页构建而成的操作具体包括:
获取第一坏块记录表,所述第一坏块记录表中记录有所述多个实体块中所有实体坏块的实体页好坏信息;
根据所述实体页好坏信息对所述第一坏块记录表中所有实体坏块进行基于好页数量排序,得到第二坏块记录表;
基于所述第二坏块记录表获取坏块组,所述坏块组中所有实体好页的数量之和大于或等于第一预设页数阈值;
基于所述坏块组建立所述虚拟块,并建立所述虚拟块映射表。
3.根据权利要求2所述的数据读写方法,其特征在于,所述获取第一坏块记录表,所述第一坏块记录表中记录有所述多个实体块中所有实体坏块的实体页好坏信息的操作之前,还包括:
在所述多个实体块中获取所有实体坏块,并根据每一所述实体坏块中所有实体页的好坏情况建立所述第一坏块记录表。
4.根据权利要求2所述的数据读写方法,其特征在于,所述根据所述实体页好坏信息对所述第一坏块记录表中所有实体坏块进行好坏页数量排序,得到第二坏块记录表的操作包括:
按照实体好页数量由多到少的顺序,对所述第一坏块记录表中所有实体坏块进行重新排序,得到所述第二坏块记录表。
5.根据权利要求4所述的数据读写方法,其特征在于,所述基于所述第二坏块记录表获取坏块组,所述坏块组中所有实体好页的数量之和大于或等于第一预设页数阈值的操作包括:
从所述第二坏块记录表中按照从两端到中间的顺序分别获取至少两个所述实体坏块组成一所述坏块组,且所述坏块组中所有实体好页的数量之和大于或等于第一预设页数阈值。
6.根据权利要求5所述的数据读写方法,其特征在于,所述基于所述坏块组建立所述虚拟块的操作包括:
若所述坏块组包括两个所述实体坏块,则其中实体好页数量较多的实体坏块为第一实体坏块,实体好页数量较少的实体坏块为第二实体坏块;
分别获取所述第一实体坏块的所有实体好页以及所述第二实体坏块的部分实体好页来建立所述虚拟块,所述所有实体好页的数量与所述部分实体好页的数量之和等于所述第一预设页数阈值。
7.根据权利要求6所述的数据读写方法,其特征在于,所述基于所述坏块组建立所述虚拟块的操作还包括:
若所述坏块组包括三个所述实体坏块,则三个所述实体坏块依实体好页数量由多到少的排序依次为第一实体坏块、第二实体坏块以及第三实体坏块;
分别获取所述第一实体坏块和所述第二实体坏块的所有实体好页以及所述第三实体坏块的部分实体好页来建立所述虚拟块,所述所有实体好页的数量与所述部分实体好页的数量之和等于所述第一预设页数阈值。
8.根据权利要求5所述的数据读写方法,其特征在于,所述基于所述坏块组建立所述虚拟块的操作包括:
将所述坏块组中的所有实体坏块划分为多个第一区段;
从所述多个第一区段中获取实体好页数量大于或等于第二预设页数阈值的多个第一目标区段;
从所述多个第一目标区段中获取多个目标实体好页来建立所述虚拟块,所述多个目标实体好页的数量等于所述第一预设页数阈值。
9.根据权利要求8所述的数据读写方法,其特征在于,所述第二预设页数阈值为一个所述第一区段中所有实体页的数量的一半。
10.根据权利要求5所述的数据读写方法,其特征在于,所述基于所述坏块组建立所述虚拟块的操作包括:
将所述坏块组中的所有实体坏块划分为多个第二区段;
从所述多个第二区段中获取连续实体好页数量大于或等于第三预设页数阈值的多个第二目标区段;
从所述多个第二目标区段中获取多个目标实体好页来建立所述虚拟块,所述多个目标实体好页的数量等于所述第一预设页数阈值。
11.根据权利要求10所述的数据读写方法,其特征在于,所述第三预设页数阈值为一个所述第二区段中所有实体页的数量的一半。
12.根据权利要求2-11任一项所述的数据读写方法,其特征在于,所述第一预设页数阈值为一个所述实体块中的所有实体页的数量。
13.一种存储器存储装置,其特征在于,包括:
连接接口,用以连接至主机系统;
存储器模块,其包括多个实体块和多个虚拟块,所述实体块包括多个实体页,所述虚拟块由所述多个实体块中的若干实体坏块中的实体好页构建而成;
存储器控制器,连接至所述连接接口与所述存储器模块,
其中所述存储器控制器用以执行如权利要求1-12任一项所述的数据读写方法。
14.一种存储器控制器,其特征在于,用以控制存储器模块,其中所述存储器模块包括多个实体块和多个虚拟块,所述实体块包括多个实体页,所述虚拟块由所述多个实体块中的若干实体坏块中的实体好页构建而成,且所述存储器控制器包括:
主机接口,用以连接至主机系统;
存储器接口,用以连接至所述存储器模块;以及
存储器控制电路,连接至所述主机接口与所述存储器接口,
其中所述存储器控制电路用以执行如权利要求1-12任一项所述的数据读写方法。
CN202210044915.7A 2022-01-14 2022-01-14 数据读写方法、存储器存储装置及存储器控制器 Pending CN114398010A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210044915.7A CN114398010A (zh) 2022-01-14 2022-01-14 数据读写方法、存储器存储装置及存储器控制器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210044915.7A CN114398010A (zh) 2022-01-14 2022-01-14 数据读写方法、存储器存储装置及存储器控制器

Publications (1)

Publication Number Publication Date
CN114398010A true CN114398010A (zh) 2022-04-26

Family

ID=81230659

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210044915.7A Pending CN114398010A (zh) 2022-01-14 2022-01-14 数据读写方法、存储器存储装置及存储器控制器

Country Status (1)

Country Link
CN (1) CN114398010A (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101727295A (zh) * 2008-10-31 2010-06-09 西安奇维测控科技有限公司 一种基于虚拟块闪存地址映射的数据写入及读出方法
CN102622306A (zh) * 2012-02-21 2012-08-01 中颖电子股份有限公司 存储装置的坏块管理方法
CN104317733A (zh) * 2014-10-28 2015-01-28 陕西千山航空电子有限责任公司 一种nand flash坏块管理方法
KR20150107197A (ko) * 2014-03-13 2015-09-23 한국전자통신연구원 배드 블록을 이용한 스토리지 장치 및 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101727295A (zh) * 2008-10-31 2010-06-09 西安奇维测控科技有限公司 一种基于虚拟块闪存地址映射的数据写入及读出方法
CN102622306A (zh) * 2012-02-21 2012-08-01 中颖电子股份有限公司 存储装置的坏块管理方法
KR20150107197A (ko) * 2014-03-13 2015-09-23 한국전자통신연구원 배드 블록을 이용한 스토리지 장치 및 방법
CN104317733A (zh) * 2014-10-28 2015-01-28 陕西千山航空电子有限责任公司 一种nand flash坏块管理方法

Similar Documents

Publication Publication Date Title
US6185134B1 (en) Flash memory control method, flash memory system using the control method and flash memory device using the control method
US8713381B2 (en) Systems and methods of using dynamic data for wear leveling in solid-state devices
US11288019B2 (en) Memory management method and storage controller
US9213629B2 (en) Block management method, memory controller and memory stoarge apparatus
US8341336B2 (en) Region-based management method of non-volatile memory
US8832527B2 (en) Method of storing system data, and memory controller and memory storage apparatus using the same
US8489942B1 (en) Memory management method, and memory controller and memory storage device using the same
US10579518B2 (en) Memory management method and storage controller
US20120246394A1 (en) Flash Memory Device and Data Writing Method for a Flash Memory
TW201939500A (zh) 解碼方法以及儲存控制器
US10509583B1 (en) Memory management method and storage controller
US20190347037A1 (en) Data storage apparatus and system information programming method therefor
CN115237351B (zh) Nand块动态重映射、读写命令处理方法及存储设备
CN110377538B (zh) 存储器管理方法以及存储控制器
CN111639041B (zh) 存储器控制方法、存储器存储装置及存储器控制器
CN113094307B (zh) 映射信息管理方法、存储器存储装置及存储器控制器
CN108108118B (zh) 数据写入方法以及存储控制器
CN115185468A (zh) 存储器管理方法、存储器控制器及存储器存储装置
CN114398010A (zh) 数据读写方法、存储器存储装置及存储器控制器
US11106531B2 (en) Flash memory controller, storage device and reading method thereof
CN114063933A (zh) 区块管理方法、存储器控制器和存储器存储装置
CN110289036B (zh) 读取电压最佳化方法以及存储控制器
CN112988069A (zh) 存储器管理方法、存储器存储装置及存储器控制器
CN110795025B (zh) 存储器管理方法以及存储控制器
CN114724596A (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