CN113220502B - 存储器管理方法、存储器存储装置及存储器控制器 - Google Patents
存储器管理方法、存储器存储装置及存储器控制器 Download PDFInfo
- Publication number
- CN113220502B CN113220502B CN202110496124.3A CN202110496124A CN113220502B CN 113220502 B CN113220502 B CN 113220502B CN 202110496124 A CN202110496124 A CN 202110496124A CN 113220502 B CN113220502 B CN 113220502B
- Authority
- CN
- China
- Prior art keywords
- entity
- data
- unit
- memory
- physical
- 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
Links
- 230000015654 memory Effects 0.000 title claims abstract description 210
- 230000005055 memory storage Effects 0.000 title claims abstract description 32
- 238000007726 management method Methods 0.000 title claims abstract description 21
- 230000002159 abnormal effect Effects 0.000 claims abstract description 16
- 230000004044 response Effects 0.000 claims description 17
- 238000012937 correction Methods 0.000 claims description 11
- 238000000034 method Methods 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 10
- 238000013507 mapping Methods 0.000 description 10
- 238000011084 recovery Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000013523 data management Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1068—Adding 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明提供一种存储器管理方法、存储器存储装置及存储器控制器。所述方法包括:在发生非正常断电后重新上电时,对作动实体区块中的实体单元进行二分搜索,以搜索出第一实体单元;读取所述第一实体单元存储的第一数据;根据所述第一数据中的位元是否为全零状态决定是否对所述第一数据进行解码操作;响应于所述第一数据中的位元是所述全零状态,不对所述第一数据进行解码操作,并继续进行二分搜索以读取下一个所述第一实体单元存储的所述第一数据;以及响应于所述第一数据中的位元不是所述全零状态,对所述第一数据进行解码操作。
Description
技术领域
本发明涉及一种存储器管理技术,尤其涉及一种存储器管理方法、存储器存储装置及存储器控制器。
背景技术
非易失性存储器模块(例如快闪存储器模块)具有数据非易失性保存、低耗电及数据存取快速等优点。当进入到三维NAND型快闪存储器模块的世代,单一实体区块往往变得非常巨大。单一实体区块包括的实体页面的数量甚至来到数千实体页面,而使得执行断电恢复(sudden power-off recovery,SPOR)操作时需要耗费很可观的时间才能重建断电前的数据。基此,如何减少断电恢复操作所需时间,是本领域人员研究的课题之一。
发明内容
本发明的实施例提供一种存储器管理方法、存储器存储装置及存储器控制器,可减少数据恢复操作时无意义的时间开销,并提升数据恢复效率。
本发明的实施例提供一种存储器管理方法,用于控制存储器模块。所述存储器模块包括多个实体区块,所述实体区块包括多个实体单元,每一所述实体单元映射至逻辑单元。所述存储器管理方法包括:在发生非正常断电后重新上电时,对作动实体区块中的实体单元进行二分搜索,以搜索出第一实体单元;读取所述第一实体单元存储的第一数据;根据所述第一数据中的位元是否为全零状态决定是否对所述第一数据进行解码操作;响应于所述第一数据中的位元是所述全零状态,不对所述第一数据进行解码操作操作,并继续进行二分搜索以读取下一个所述第一实体单元存储的所述第一数据;以及响应于所述第一数据中的位元不是所述全零状态,对所述第一数据进行解码操作。
本发明的实施例另提供一种存储器存储装置,包括连接接口、存储器模块以及存储器模块。所述连接接口用以连接主机系统。所述存储器模块包括多个实体区块,所述实体区块包括多个实体单元,每一所述实体单元映射至逻辑单元。所述存储器控制器连接所述连接接口与所述存储器模块。所述存储器控制器用以在发生非正常断电后重新上电时,对作动实体区块中的实体单元进行二分搜索,以搜索出第一实体单元。所述存储器控制器还用以读取所述第一实体单元存储的第一数据。所述存储器控制器还用以根据所述第一数据中的位元是否为全零状态决定是否对所述第一数据进行解码操作。响应于所述第一数据中的位元是所述全零状态,所述存储器控制器还用以不对所述第一数据进行解码操作,并继续进行二分搜索以读取下一个所述第一实体单元存储的所述第一数据。并且,响应于所述第一数据中的位元不是所述全零状态,所述存储器控制器还用以对所述第一数据进行解码操作。
本发明的实施例另提供一种存储器控制器,包括主机接口、存储器接口、错误检查与校正电路以及存储器控制电路。所述主机接口用以连接主机系统。所述存储器接口用以连接存储器模块,其中所述存储器模块包括多个实体区块,所述实体区块包括多个实体单元,每一所述实体单元映射至逻辑单元。所述存储器控制电路连接所述主机接口与所述存储器接口。所述存储器控制电路用以在发生非正常断电后重新上电时,对作动实体区块中的实体单元进行二分搜索,以搜索出第一实体单元。所述存储器控制电路还用以读取所述第一实体单元存储的第一数据。所述存储器控制电路还用以根据所述第一数据中的位元是否为全零状态决定是否对所述第一数据进行解码操作。响应于所述第一数据中的位元是所述全零状态,所述错误检查与校正电路不对所述第一数据进行解码操作,且所述存储器控制电路还用以继续进行二分搜索以读取下一个所述第一实体单元存储的所述第一数据。并且响应于所述第一数据中的位元不是所述全零状态,所述错误检查与校正电路还用以对所述第一数据进行解码操作。
基于上述,可对从作动实体区块二分搜索出的实体单元进行全零状态判断,并根据判断结果决定是否对搜索出的实体单元所存储的数据进行解码操作。此外,还可根据解码结果定位发生非正常断电时最后一个被程序化成功的实体单元。定位出的实体单元可用于重建存储数据和逻辑至实体映射表。藉此,可减少数据恢复操作时无意义的时间开销,并提升数据恢复效率。
附图说明
图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)接口、外设部件互连快速(PeripheralComponent Interconnect Express,PCI Express)、通用串行总线(Universal SerialBus,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型快闪存储器模块、三维NAND型快闪存储器模块(3D NAND flash memorymodule)(可具有多个三阶或四阶存储单元)或其他具有相似特性的存储器模块。存储器模块122中的存储单元是以阵列的方式设置。
存储器控制器123连接至连接接口121与存储器模块122。存储器控制器123可用以控制存储器存储装置12。例如,存储器控制器123可控制连接接口121与存储器模块122以进行数据存取与数据管理。例如,存储器控制器123可包括中央处理单元(CPU)、图形处理单元(GPU),或是其他可编程的一般用途或特殊用途的微处理器、数字信号处理器(DigitalSignal Processor,DSP)、可编程控制器、专用集成电路(Application SpecificIntegrated Circuits,ASIC)、可编程逻辑器件(Programmable Logic Device,PLD)或其他类似装置或这些装置的组合。
在一实施例中,存储器控制器123亦称为快闪(flash)存储器控制器。在一实施例中,存储器模块122亦称为快闪存储器模块。存储器模块122可接收来自存储器控制器123的指令序列并根据此指令序列存取存储于存储单元中的数据。
图2是根据本发明的一实施例所示出的存储器控制器的示意图。请参照图1与图2,存储器控制器123包括主机接口21、存储器接口22及存储器控制电路23。主机接口21用以经由连接接口121连接至主机系统11,以与主机系统11通信。存储器接口22用以连接至存储器模块122,以与存储器模块122通信。
存储器控制电路23连接至主机接口21与存储器接口22。存储器控制电路23可经由主机接口21与主机系统11沟通并经由存储器接口22存取至存储器模块122。存储器控制电路23也可视为存储器控制器123的控制核心。在以下实施例中,对于存储器控制电路23的说明等同于对于存储器控制器123的说明。此外,存储器控制电路23可包括一或多个缓冲存储器,其用以暂存数据。
在一实施例中,存储器控制器123还包括错误检查与校正电路24、缓冲存储器25、电源管理电路26与全零检查电路27。
错误检查与校正电路24是耦接至存储器控制电路23并且用以执行错误检查与校正程序以确保数据的正确性。具体来说,当存储器控制电路23从主机系统11中接收到写入指令时,错误检查与校正电路24会为对应此写入指令的数据产生对应的错误更正码(errorcorrecting code,ECC)和/或错误检查码(error detecting code,EDC),并且存储器控制电路23会将对应此写入指令的数据与对应的错误更正码和/或错误检查码写入至存储器模块122中。之后,当存储器控制电路23从存储器模块122中读取数据时会同时读取此数据对应的错误更正码和/或错误检查码,并且错误检查与校正电路24会依据此错误更正码和/或错误检查码对所读取的数据执行错误检查与校正操作。
在一实施例中,错误检查与校正电路24可以针对存储于同一个实体单元中的数据进行单框架(single-frame)编码,也可以针对存储于多个实体单元中的数据进行多框架(multi-frame)编码,单框架编码与多框架编码可以分别采用低密度奇偶检查校正码(lowdensity parity code,LDPC)、BCH码、回旋码(convolutional code)或涡轮码(turbocode)等编码算法的至少其中之一。或者,在一实施例中,多框架编码还可以采用里德-所罗门码(Reed-Solomon codes,RS codes)算法或互斥或(XOR)算法。此外,在另一实施例中,更多未列于上的编码算法也可以被采用,在此便不赘述。根据所采用的编码算法,错误检查与校正电路24可以编码欲保护的数据来产生相对应的错误更正码和/或错误检查码。
缓冲存储器25是耦接至存储器控制电路23并且用以暂存来自于主机系统11的数据与指令或来自于存储器模块122的数据。电源管理电路26是耦接至存储器控制电路23并且用以控制存储器存储装置12的电源。
全零检查电路27是耦接至存储器控制电路23并且用以执行全零检查程序以确定数据中的每个位元是否为全零(all-0)状态。
图3是根据本发明的一实施例所示出的管理存储器模块的示意图。请参照图1与图3,存储器模块122包括多个实体单元301(0)~301(C)。每一个实体单元皆包括多个存储单元且用以非易失性地存储数据。多个实体单元可组成一个实体区块。一个实体区块中的多个实体单元(或存储单元)可被同时抹除。此外,存储器控制电路23可配置多个逻辑单元311(0)~311(D)来映射至少部分的实体单元。例如,一个逻辑单元可由一或多个逻辑地址组成。逻辑单元与实体单元之间的映射关系则可记载于逻辑至实体映射表中。
在一实施例中,存储器模块122逻辑地区分为数据区310、闲置区320与系统区330。逻辑上属于数据区310的实体单元301(1)~301(A)存储有来自主机系统11的数据(亦称为使用者数据)。也就是说,当从主机系统11接收到写入指令与欲写入数据时,存储器控制电路23会从闲置区320中提取实体区块,并且将数据写入(或称为程序化、编程)至所提取的实体区块中,以替换数据区310的实体区块。数据区310中的实体单元被抹除后就会被关连至闲置区320。换言之,闲置区320中的实体单元301(A+1)~301(B)皆已被抹除且未存储有效数据。其中,闲置区320中的多个实体单元可组成一个闲置实体区块。
逻辑上属于系统区330的实体单元301(B+1)~301(C)是用以记录系统数据。例如,系统数据包括关于存储器模块的制造商与型号、存储器模块的实体区块数、每一实体区块的实体单元数等。特别是,数据区310、闲置区320与系统区330的实体单元的数量会根据不同的存储器规格而有所不同。
一般而言,存储器控制电路23会将逻辑单元与实体单元之间的映射关系记载于逻辑至实体映射表。当主机系统11欲从存储器存储装置12读取数据或写入数据至存储器存储装置12时,存储器控制电路23可根据逻辑至实体映射表中的信息来存取存储器模块122。
如上所述,在执行写入指令时,不管目前数据是要写入至哪个逻辑单元,存储器控制电路23皆会以一个实体单元接续一个实体单元的方式来写入数据(亦称为随机写入机制)。具体来说,存储器控制电路23会从闲置区320中提取一个空的闲置实体区块作为目前使用或作动(active)的实体区块来写入数据。并且,当此作动实体区块已被写满时,存储器控制电路23会再从闲置区320中提取另一个空的闲置实体区块作为作动实体区块,以继续写入对应来自于主机系统11的写入指令的数据。
在一实施例中,每当存储器存储装置12发生非正常断电(power-off)后重新上电(power-on)时,存储器控制电路23会依序扫描作动实体区块中的实体单元,找出在作动实体区块中最后一个被成功程序化的实体单元。
在本实施例中,由于存储器控制电路23是从作动实体区块的最开始依序以一个实体单元接续一个实体单元的方式来写入使用者数据,因此从作动实体区块中起始的实体单元起到最后一个被程序化的实体单元的范围包括的实体单元皆已被程序化(即,已写入数据),而第一个处于完全抹除状态的实体单元(亦称为空白实体单元)起到作动实体区块中的最后一个实体单元皆未被程序化(即,未写入数据)。然而,当存储器存储装置12在执行写入指令时发生非正常断电,可能会发生程序化失败而产生已写入数据但处于程序化失败状态的实体单元。因此,作动实体区块中被程序化的实体单元可能会包括被程序化失败的实体单元。
图4是根据本发明的一实施例所示出的作动实体区块的示意图。存储器模块122包括多个芯片致能(亦称为芯片致能群组)。为方便说明,本实施例假设存储器模块122包括芯片致能CE(0)与CE(1)。芯片致能CE(0)与CE(1)分别包含多个实体节点。存储器控制电路23可分别地通过芯片致能(chip enable)脚位来致能芯片致能。此外,芯片致能CE(0)与CE(1)可分别包含多个平面(例如图4的第一平面PL(1)、PL(3)及第二平面PL(2)、PL(4))。本领域技术人员应可清楚了解存储器模块122可具有其他任意个芯片致能,在此并不赘述。
存储器模块122可将属于不同存储器平面的数个实体区块组合为一个超实体区块来进行操作(例如,数据写入操作、数据抹除操作)。一个超实体区块中会包括所有实体区块中的至少两个可用的实体区块。在本实施例中,一个超实体区块所包括的至少两个可用实体区块是属于不同的操作单元(例如,平面(plane)、交错(interleave)或通道(channel))。因此,超实体区块包括的实体单元可以根据同一个写入指令而同时被程序化。
在本实施例中,实体单元401(0)~401(7)、402(0)~402(7)、403(0)~403(7)与404(0)~404(7)可被配置为超实体区块410(0)。并且,存储器控制电路23可依据平面PL(1)~PL(4)的程序化顺序写入数据至超实体区块410(0)的各个实体单元中。请参图4,为方便说明,本实施例假设超实体区块410(0)的实体单元401(0)、402(0)、403(0)、404(0)、401(1)、402(1)、403(1)、404(1)、401(2)、402(2)、403(2)、404(2)为被程序化成功的实体单元(图4中以斜线表示),实体单元401(3)、402(3)、403(3)、404(3)、401(4)、402(4)、403(4)、404(4)、401(5)、402(5)为被程序化失败的实体单元(图4中以点表示)。并且,假设超实体区块410(0)的实体单元403(5)、404(5)、401(6)、402(6)、403(6)、404(6)、401(7)、402(7)、403(7)、404(7)、401(8)、402(8)、403(8)、404(8)为空白实体单元。
在本实施例中,存储器控制电路23可在发生非正常断电后重新上电时,对作动实体区块中的实体单元进行二分搜索(binary search)以寻找最后一个被程序化成功的实体单元。
举例来说,存储器控制电路23会对作动实体区块中的实体单元进行二分搜索,以搜索出中间实体单元(亦称为第一实体单元)。并且,存储器控制电路23读取第一实体单元存储的数据(亦称为第一数据),并将第一数据传送至全零检查电路27进行检查。接着,全零检查电路27可根据第一数据中的位元是否为全零状态决定是否对第一数据进行解码操作。
举例来说,全零检查电路27会检查第一数据中的位元是否为全零状态(即,位元全部为“0”)。例如,可设置全零检查电路27为检查第一数据的部分位元(如,1K、2K、4K等)或全部位元,本发明不在此限制。若第一数据中的位元是全零状态,全零检查电路27会判断第一实体单元尚未被程序化(即,实体单元的存储态样为已抹除的或空白的)。于此,全零检查电路27不将第一数据传送至错误检查与校正电路24进行解码操作,并继续进行二分搜索以读取下一个第一实体单元存储的第一数据(亦即,存储器存储装置12不对第一数据进行解码操作)。存储器存储装置12可重复进行上述二分搜索并检查第一数据的操作。在此操作中,搜索顺序是从第一实体单元往逻辑上为作动实体区块中起始的实体单元进行二分搜索。若存储器控制电路23利用二分搜索方式搜索到的最后一个第一实体单元所存储的第一数据仍为全零状态,可判断此作动实体区块中的所有实体单元皆未程序化。
另一方面,若第一数据中的位元不是全零状态,全零检查电路27会识别第一实体单元已被程序化。于此,全零检查电路27将第一数据传送至错误检查与校正电路24进行解码操作。
在一实施例中,存储器控制电路23还可进一步判断上述第一数据是否解码成功。若解码成功,存储器控制电路23会判断第一数据对应的第一实体单元为被程序化成功的实体单元。然而,读取到被程序化成功的实体单元没办法确保作动实体区块中逻辑上属于此实体单元之后的实体单元未被程序化,亦即,此实体单元之后的实体单元仍可能存储有数据。因此,若解码成功,存储器控制电路23会再次进行二分搜索以读取下一个第一实体单元存储的第一数据。需注意的是,在此操作中,搜索顺序是从第一实体单元往逻辑上为作动实体区块中的最后一个实体单元进行二分搜索。
在本实施例中,若解码失败,存储器控制电路23会识别第一实体单元发生程序化失败(即,处于程序化失败状态)。于此,存储器控制电路23可从第一实体单元起往回逐页扫描作动实体区块中的其他实体单元(亦称为第二实体单元)以读取第二实体单元的数据(亦称为第二数据),并将解码成功的第二数据对应的第二实体单元决定为最后一个被程序化成功的实体单元。在此操作中,扫描顺序是从第一实体单元起往逻辑上为作动实体区块中起始的实体单元进行往回逐页扫描。
具体来说,存储器控制电路23会从第一实体单元起往回逐页扫描作动实体区块中的第二实体单元,以读取第二实体单元存储的第二数据。于此,存储器控制电路23会将第二数据传送至错误检查与校正电路24进行解码操作,并且存储器控制电路23会判断第二数据是否解码成功。若解码成功,存储器控制电路23会设定第二实体单元为最后一个被程序化成功的实体单元(亦称为第三实体单元)。若解码失败,存储器控制电路23会扫描下一个第二实体单元存储的第二数据,并再次判断此第二数据是否解码成功。存储器存储装置12可重复进行上述逐页扫描操作直到解码成功。此外,若存储器控制电路23利用扫描到的最后一个第二实体单元所存储的第二数据仍解码失败,可判断此作动实体区块中的所有实体单元皆未程序化成功。
请参图2及图4,以下即以图4中作动实体区块存储的数据为范例,具体说明本实施例的内容。在本实施例中,存储器控制电路23会对超实体区块410(0)中的实体单元401(0)~401(7)、402(0)~402(7)、403(0)~403(7)与404(0)~404(7)进行二分搜索,以搜索出实体单元401(4)作为中间实体单元来进行后续位元检查操作。接着,存储器控制电路23会读取实体单元401(4)存储的数据,并将所读取的数据传送至全零检查电路27进行检查。在本实施例中,由于实体单元401(4)是被程序化的实体单元,因此实体单元401(4)存储的数据中的位元不是全零状态。全零检查电路27会将所读取的数据传送至错误检查与校正电路24进行解码操作。由于实体单元401(4)是被程序化失败的实体单元,存储器控制电路23会根据错误检查与校正电路24的解码操作结果判断实体单元401(4)解码失败。因此,存储器控制电路23会从实体单元401(4)起往回逐页扫描超实体区块410(0)中的实体单元404(3)、403(2)、402(3)和401(3)等实体单元。直到扫描到所存储的数据可成功解码操作的实体单元404(2)后,存储器控制电路23设定实体单元404(2)为发生非正常断电时最后一个被程序化成功的实体单元。
图5是根据本发明的一实施例所示出的作动实体区块的示意图。请参图2及图5,以下即以5中作动实体区块存储的数据为范例,具体说明本实施例的内容。图5中以斜线表示被程序化成功的实体单元,以点表示被程序化失败的实体单元,并以空白表示空白实体单元。
在本实施例中,存储器控制电路23会对超实体区块410(0)中的实体单元401(0)~401(7)、402(0)~402(7)、403(0)~403(7)与404(0)~404(7)进行二分搜索,以搜索出实体单元401(4)作为中间实体单元来进行后续位元检查操作。接着,存储器控制电路23会读取实体单元401(4)存储的数据,并将所读取的数据传送至全零检查电路27进行检查。由于实体单元401(4)是空白实体单元,因此实体单元401(4)存储的数据中的位元是全零状态。于此,全零检查电路27不将所读取的数据传送至错误检查与校正电路24,并且存储器控制电路23继续对超实体区块410(0)中的实体单元401(0)、402(0)、403(0)、404(0)、401(1)、402(1)、403(1)、404(1)、401(2)、402(2)、403(2)、404(2)、401(3)、402(3)、403(3)、404(3)、401(4)进行二分搜索,以搜索出实体单元401(2)作为中间实体单元来进行后续位元检查操作。在本实施例中,实体单元401(2)存储的数据中的位元亦为全零状态,存储器控制电路23依据与前述相同的方式搜索出实体单元401(1)作为中间实体单元。
在本实施例中,存储器控制电路23会读取实体单元401(1)存储的数据,并将所读取的数据传送至全零检查电路27进行检查。由于实体单元401(1)是被程序化的实体单元,因此实体单元401(1)存储的数据中的位元不是全零状态。全零检查电路27会将所读取的数据传送至错误检查与校正电路24进行解码操作。由于实体单元401(4)是被程序化成功的实体单元,存储器控制电路23会根据错误检查与校正电路24的解码操作结果判断实体单元401(4)解码成功。存储器控制电路23会对超实体区块410(0)中的实体单元401(1)、402(1)、403(1)、404(1)、401(2)再次进行二分搜索以搜索出实体单元403(1)作为中间实体单元。
由于实体单元403(1)是被程序化失败的实体单元,其检查及解码操作操作流程可参照图4关于实体单元401(4)的说明,于此不再赘述。在判断实体单元403(1)解码失败后,存储器控制电路23会从实体单元403(1)起往回逐页扫描超实体区块410(0)中的实体单元。直到扫描到所存储的数据可成功解码操作的实体单元402(1)后,存储器控制电路23设定实体单元402(1)为发生非正常断电时最后一个被程序化成功的实体单元。
在一实施例中,在识别出最后一个被程序化成功的第三实体单元后,存储器控制电路23可根据第三实体单元识别上次存储器存储装置12断电时有效的逻辑至实体映射表。并且,存储器控制电路23可以从第三实体单元往逻辑上为作动实体区块中最后一个实体单元进行扫描,并根据扫描结果更新逻辑至实体映射表。至于,本领域人员应可知晓扫描实体区块以及更新逻辑至实体映射表的技术手段,于此不再赘述。
图6是根据本发明的一实施例所示出的存储器管理方法的流程图。请参图6,在步骤S602中,对作动实体区块中的实体单元进行二分搜索,以搜索出第一实体单元。在步骤S604中,读取第一实体单元存储的第一数据。在步骤S606中,利用全零检查电路检查第一数据中的位元是否为全零状态。若是全零状态(亦即,步骤S606判断为是),则在步骤S608中进行二分搜索以读取下一个第一实体单元存储的第一数据。若不是全零状态(亦即,步骤S606判断为否),则在步骤S610中对第一数据进行解码操作。
图7是根据本发明的一实施例所示出的存储器管理方法的流程图。请参图7,在步骤S702中,对作动实体区块中的实体单元进行二分搜索,以搜索出第一实体单元。在步骤S704中,读取第一实体单元存储的第一数据。在步骤S706中,利用全零检查电路检查第一数据中的位元是否为全零状态。若是全零状态(亦即,步骤S706判断为是),则在步骤S708中进行二分搜索以读取下一个第一实体单元存储的第一数据。若不是全零状态(亦即,步骤S706判断为否),则在步骤S710中判断第一数据是否解码成功。若解码成功(亦即,步骤S710判断为是),则再次执行步骤S708。若解码失败(亦即,步骤S710判断为否),则在步骤S712中从第一实体单元起往回扫描作动实体区块中的第二实体单元以读取第二实体单元的第二数据,并将解码成功的第二数据对应的第二实体单元决定为最后一个被程序化成功的实体单元。
图8是根据本发明的一实施例所示出的存储器管理方法的流程图。请参图7,在步骤S7121中,从第一实体单元起往回逐页扫描作动实体区块中的第二实体单元,以读取第二实体单元存储的第二数据。在步骤S7122中,判断第二数据是否解码成功。若解码失败(亦即,步骤S7122判断为否),则在步骤S7123中扫描下一个第二实体单元存储的第二数据。若解码成功(亦即,步骤S7122判断为是),则在步骤S7124中决定第二实体单元为最后一个被程序化成功的实体单元。
然而,图6至图8中各步骤已详细说明如上,在此便不再赘述。值得注意的是,图6至图8中各步骤可以实作为多个程序码或是电路,本发明不加以限制。此外,图6至图8的方法可以搭配以上范例实施例使用,也可以单独使用,本发明不加以限制。
综上所述,本实施例提供的存储器管理方法、存储器存储装置及存储器控制器,可利用全零检查电路避免花费额外时间对空白实体单元进行解码操作。此外,本实施例还可快速定位发生非正常断电时最后一个被程序化成功的实体单元,并根据定位出的实体单元重建存储数据和逻辑至实体映射表。藉此,可减少数据恢复操作时无意义的时间开销,并提升数据恢复效率。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (9)
1.一种存储器管理方法,其特征在于,用于控制存储器模块,其中所述存储器模块包括多个实体区块,所述实体区块包括多个实体单元,每一所述实体单元映射至逻辑单元,且所述存储器管理方法包括:
在发生非正常断电后重新上电时,对作动实体区块中的实体单元进行二分搜索,以搜索出第一实体单元;
读取所述第一实体单元存储的第一数据;
根据所述第一数据中的位元是否为全零状态决定是否对所述第一数据进行解码操作;
响应于所述第一数据中的位元是所述全零状态,不对所述第一数据进行解码操作,并继续往逻辑上为所述作动实体区块中起始的实体单元进行二分搜索以读取下一个所述第一实体单元存储的所述第一数据;以及
响应于所述第一数据中的位元不是所述全零状态,对所述第一数据进行解码操作,所述对所述第一数据进行解码操作的步骤还包括:
响应于解码成功,进行二分搜索以读取下一个所述第一实体单元存储的所述第一数据,所述响应于解码成功,进行二分搜索以读取下一个所述第一实体单元存储的所述第一数据的步骤中,搜索顺序是从所述第一实体单元往逻辑上为所述作动实体区块中的最后一个实体单元进行二分搜索;
响应于解码失败,从所述第一实体单元起往回逐页扫描所述作动实体区块中的第二实体单元以读取所述第二实体单元的第二数据,并将解码成功的所述第二数据对应的所述第二实体单元决定为发生非正常断电时最后一个被程序化成功的实体单元。
2.根据权利要求1所述的存储器管理方法,其特征在于,从所述第一实体单元起往回逐页扫描所述作动实体区块中的所述第二实体单元以读取所述第二实体单元的所述第二数据的步骤包括:
往逻辑上为所述作动实体区块中起始的实体单元进行往回逐页扫描。
3.根据权利要求1所述的存储器管理方法,其特征在于,根据所述第一数据中的位元是否为所述全零状态决定是否对所述第一数据进行解码操作的步骤包括:
利用全零检查电路检查所述第一数据中的位元是否为所述全零状态。
4.一种存储器存储装置,其特征在于,包括:
连接接口,用以连接主机系统;
存储器模块,包括多个实体区块,所述实体区块包括多个实体单元,每一所述实体单元映射至逻辑单元;以及
存储器控制器,连接所述连接接口与所述存储器模块,
其中所述存储器控制器用以在发生非正常断电后重新上电时,对作动实体区块中的实体单元进行二分搜索,以搜索出第一实体单元,
其中所述存储器控制器还用以读取所述第一实体单元存储的第一数据,
其中所述存储器控制器还用以根据所述第一数据中的位元是否为全零状态决定是否对所述第一数据进行解码操作,
其中响应于所述第一数据中的位元是所述全零状态,所述存储器控制器还用以不对所述第一数据进行解码操作,并继续往逻辑上为所述作动实体区块中起始的实体单元进行二分搜索以读取下一个所述第一实体单元存储的所述第一数据,并且
其中响应于所述第一数据中的位元不是所述全零状态,所述存储器控制器还用以对所述第一数据进行解码操作,所述对所述第一数据进行解码操作的操作还包括:
响应于解码成功,所述存储器控制器还用以进行二分搜索以读取下一个所述第一实体单元存储的所述第一数据,所述响应于解码成功,所述存储器控制器还用以进行二分搜索以读取下一个所述第一实体单元存储的所述第一数据的操作中,搜索顺序是从所述第一实体单元往逻辑上为所述作动实体区块中的最后一个实体单元进行二分搜索;
响应于解码失败,所述存储器控制器还用以从所述第一实体单元起往回逐页扫描所述作动实体区块中的第二实体单元以读取所述第二实体单元的第二数据,并将解码成功的所述第二数据对应的所述第二实体单元决定为发生非正常断电时最后一个被程序化成功的实体单元。
5.根据权利要求4所述的存储器存储装置,其特征在于,从所述第一实体单元起往回逐页扫描所述作动实体区块中的所述第二实体单元以读取所述第二实体单元的所述第二数据的操作包括:
所述存储器控制器还用以往逻辑上为所述作动实体区块中起始的实体单元进行往回逐页扫描。
6.根据权利要求4所述的存储器存储装置,其特征在于,所述存储器控制器还包括全零检查电路,用以检查所述第一数据中的位元是否为所述全零状态。
7.一种存储器控制器,其特征在于,包括:
主机接口,用以连接主机系统;
存储器接口,用以连接存储器模块,其中所述存储器模块包括多个实体区块,所述实体区块包括多个实体单元,每一所述实体单元映射至逻辑单元;
错误检查与校正电路;以及
存储器控制电路,连接所述主机接口、所述存储器接口与所述错误检查与校正电路,
其中所述存储器控制电路用以在发生非正常断电后重新上电时,对作动实体区块中的实体单元进行二分搜索,以搜索出第一实体单元,
其中所述存储器控制电路还用以读取所述第一实体单元存储的第一数据,
其中所述存储器控制电路还用以根据所述第一数据中的位元是否为全零状态决定是否对所述第一数据进行解码操作,
其中响应于所述第一数据中的位元是所述全零状态,所述错误检查与校正电路不对所述第一数据进行解码操作,且所述存储器控制电路还用以继续往逻辑上为所述作动实体区块中起始的实体单元进行二分搜索以读取下一个所述第一实体单元存储的所述第一数据,并且
其中响应于所述第一数据中的位元不是所述全零状态,所述错误检查与校正电路还用以对所述第一数据进行解码操作,所述对所述第一数据进行解码操作的操作还包括:
响应于解码成功,所述存储器控制电路还用以进行二分搜索以读取下一个所述第一实体单元存储的所述第一数据,所述响应于解码成功,所述存储器控制电路还用以进行二分搜索以读取下一个所述第一实体单元存储的所述第一数据的操作包括:搜索顺序是从所述第一实体单元往逻辑上为所述作动实体区块中的最后一个实体单元进行二分搜索;
响应于解码失败,所述存储器控制电路还用以从所述第一实体单元起往回逐页扫描所述作动实体区块中的第二实体单元以读取所述第二实体单元的第二数据,并将解码成功的所述第二数据对应的所述第二实体单元决定为发生非正常断电时最后一个被程序化成功的实体单元。
8.根据权利要求7所述的存储器控制器,其特征在于,从所述第一实体单元起往回逐页扫描所述作动实体区块中的所述第二实体单元以读取所述第二实体单元的所述第二数据的操作包括:
所述存储器控制电路还用以往逻辑上为所述作动实体区块中起始的实体单元进行往回逐页扫描。
9.根据权利要求7所述的存储器控制器,其特征在于,所述存储器控制器还包括全零检查电路,用以检查所述第一数据中的位元是否为所述全零状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110496124.3A CN113220502B (zh) | 2021-05-07 | 2021-05-07 | 存储器管理方法、存储器存储装置及存储器控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110496124.3A CN113220502B (zh) | 2021-05-07 | 2021-05-07 | 存储器管理方法、存储器存储装置及存储器控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113220502A CN113220502A (zh) | 2021-08-06 |
CN113220502B true CN113220502B (zh) | 2023-10-31 |
Family
ID=77091718
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110496124.3A Active CN113220502B (zh) | 2021-05-07 | 2021-05-07 | 存储器管理方法、存储器存储装置及存储器控制器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113220502B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9361991B1 (en) * | 2014-12-23 | 2016-06-07 | Sandisk Technologies Inc. | Efficient scanning of nonvolatile memory blocks |
CN106681652A (zh) * | 2016-08-26 | 2017-05-17 | 合肥兆芯电子有限公司 | 存储器管理方法、存储器控制电路单元与存储器存储装置 |
CN109815160A (zh) * | 2017-11-21 | 2019-05-28 | 美光科技公司 | 最后写入页搜索 |
CN110489352A (zh) * | 2018-05-14 | 2019-11-22 | 慧荣科技股份有限公司 | 数据储存装置与数据处理方法 |
CN110827906A (zh) * | 2018-08-10 | 2020-02-21 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN111984462A (zh) * | 2019-05-22 | 2020-11-24 | 慧荣科技股份有限公司 | 无预警断电复原管理方法、记忆装置、控制器及电子装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8055942B2 (en) * | 2009-12-03 | 2011-11-08 | Seagate Technology Llc | Data storage devices and methods for power-on initialization |
-
2021
- 2021-05-07 CN CN202110496124.3A patent/CN113220502B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9361991B1 (en) * | 2014-12-23 | 2016-06-07 | Sandisk Technologies Inc. | Efficient scanning of nonvolatile memory blocks |
CN106681652A (zh) * | 2016-08-26 | 2017-05-17 | 合肥兆芯电子有限公司 | 存储器管理方法、存储器控制电路单元与存储器存储装置 |
CN109815160A (zh) * | 2017-11-21 | 2019-05-28 | 美光科技公司 | 最后写入页搜索 |
CN110489352A (zh) * | 2018-05-14 | 2019-11-22 | 慧荣科技股份有限公司 | 数据储存装置与数据处理方法 |
CN110827906A (zh) * | 2018-08-10 | 2020-02-21 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN111984462A (zh) * | 2019-05-22 | 2020-11-24 | 慧荣科技股份有限公司 | 无预警断电复原管理方法、记忆装置、控制器及电子装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113220502A (zh) | 2021-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8175012B2 (en) | Decoding/encoding method for booting from a NAND flash and system thereof | |
TWI521528B (zh) | 記憶體儲存裝置、其記憶體控制器與資料處理方法 | |
CN101256842B (zh) | 纠错码控制器和包括该纠错码控制器的存储器系统 | |
US20120254511A1 (en) | Memory storage device, memory controller, and data writing method | |
US10691534B2 (en) | Data encoding method, data decoding method and storage controller | |
KR20190117117A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
US11907059B2 (en) | Abnormal power loss recovery method, memory control circuit unit, and memory storage device | |
US11467758B2 (en) | Data writing method using different programming modes based on the number of available physical erasing units, memory control circuit unit and memory storage device | |
CN102890645B (zh) | 存储器储存装置、存储器控制器与数据写入方法 | |
CN109783005B (zh) | 控制记忆装置的方法、记忆装置、及其控制器和电子装置 | |
CN103631670A (zh) | 存储器储存装置、存储器控制器与数据处理方法 | |
US9213597B2 (en) | Memory storage device, memory controller thereof, and method for programming data thereof | |
TW202240407A (zh) | 主機記憶體緩衝區管理方法、記憶體儲存裝置與記憶體控制電路單元 | |
CN112051963B (zh) | 数据写入方法、存储器控制电路单元以及存储器存储装置 | |
TWI575533B (zh) | 資料校正方法、記憶體控制電路單元與記憶體儲存裝置 | |
CN113094307B (zh) | 映射信息管理方法、存储器存储装置及存储器控制器 | |
CN113220502B (zh) | 存储器管理方法、存储器存储装置及存储器控制器 | |
CN108664350B (zh) | 数据保护方法、存储器存储装置及存储器控制电路单元 | |
CN111796774B (zh) | 存储器控制方法、存储器存储装置及存储器控制器 | |
US10922025B2 (en) | Nonvolatile memory bad row management | |
CN117632579B (zh) | 存储器控制方法和存储器存储装置 | |
CN112965670B (zh) | 主机存储器缓冲区管理方法、存储装置与控制电路单元 | |
CN111724851B (zh) | 数据保护方法、存储器存储装置及存储器控制电路单元 | |
CN112347010B (zh) | 存储器控制方法、存储器存储装置及存储器控制电路单元 | |
US10936248B2 (en) | Data writing method with verifying a part of data, memory controlling circuit unit and memory storage device |
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 |