CN113220221B - 存储器控制器与数据处理方法 - Google Patents
存储器控制器与数据处理方法 Download PDFInfo
- Publication number
- CN113220221B CN113220221B CN202011203510.0A CN202011203510A CN113220221B CN 113220221 B CN113220221 B CN 113220221B CN 202011203510 A CN202011203510 A CN 202011203510A CN 113220221 B CN113220221 B CN 113220221B
- Authority
- CN
- China
- Prior art keywords
- memory
- memory block
- data
- processor
- logical
- 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
Classifications
-
- 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/062—Securing storage systems
- G06F3/0622—Securing storage systems in relation to access
-
- 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/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1435—Saving, restoring, recovering or retrying at system level using file system or storage system metadata
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- 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/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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/064—Management of blocks
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- 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]
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)
- Library & Information Science (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
一种存储器控制器以及一种数据处理方法,所述存储器控制器包括一存储器接口与一处理器。处理器耦接至存储器接口,用以通过存储器接口控制一存储器装置的存取操作。处理器根据存储器装置的一第一存储器区块的一写入操作维护一既定表格,并且因应写入操作执行数据保护。于执行所述数据保护时,处理器判断第一存储器区块是否发生存储空间损坏。于判断第一存储器区块发生存储空间损坏时,处理器根据既定表格追溯被写入第一存储器区块的数据所对应的一或多个数据来源,以取得一或多个来源存储器区块的位址信息,并且根据一或多个来源存储器区块的位址信息执行一数据修复操作。
Description
技术领域
本发明涉及一种数据处理方法,特别涉及一种可有效保护存储器装置存储的数据的数据处理方法。
背景技术
快闪存储器装置因为工艺的因素通常有会有一定比例的存储单元在其保证寿命前就会发生物理性的破坏,造成存储单元无法再被继续使用。若在破坏发生时,存储单元已被写入有效数据,则将进一步造成有效数据的遗失。
为了保护快闪存储器不会因为存储单元的损坏而发生有效数据遗失,现有的技术中运用了容错式磁盘阵列(Redundant Array of Independent Disks,缩写RAID)所采用的保护机制进行快闪存储器的数据保护。于RAID所采用的保护机制中,会根据被写入快闪存储器的数据计算出同位(parity)信息,并将同位信息与其所保护的数据一并存储于快闪存储器中。于破坏发生时,便可利用同位信息反向推导出被遗失的有效数据内容。
然而,由于同位信息必须被存储于快闪存储器中,因此,快闪存储器实际可用于存储有效数据的存储器空间会因为保护机制的应用而减少。此外,同位信息的计算、存储、以及读取等操作也会浪费快闪存储器控制器的运算资源,进一步降低快闪存储器的存取速度。
为解决上述问题,需要一种新颖的数据处理方法,其可有效保护存储器装置存储的数据,同时可避免上述占据存储器空间以及降低存储器存取速度等的问题。
发明内容
本发明的一目的在于提供一种可有效保护存储器装置存储的数据的数据处理方法,以解决上述问题。该方法的构思在于当发生存储空间损坏时利用快闪存储器的特性追溯回正确的数据,借此数据修复率可达百分之百。此外,因无须占用存储器额外的空间,便可修复损坏数据,因此可避免上述占据存储器空间以及降低存储器存取速度等的问题。
根据本发明的一实施例,一种存储器控制器包括一存储器接口与一处理器。处理器耦接至存储器接口,用以通过存储器接口控制一存储器装置的存取操作,其中处理器根据存储器装置的一第一存储器区块的一写入操作维护一既定表格,并且因应写入操作执行数据保护。于执行所述数据保护时,处理器判断第一存储器区块是否发生存储空间损坏。于判断第一存储器区块发生存储空间损坏时,处理器根据既定表格追溯被写入第一存储器区块的数据所对应的一或多个数据来源,以取得一或多个来源存储器区块的位址信息,并且根据一或多个来源存储器区块的位址信息执行一数据修复操作。
根据本发明的另一实施例,一种数据处理方法适用于一存储器控制器,存储器控制器耦接一存储器装置并且包括用以控制存储器装置的存取操作的一处理器,该方法由处理器所执行并包括:根据一第一存储器区块的一写入操作维护一既定表格;以及因应写入操作执行数据保护。其中因应写入操作执行所述数据保护的步骤还包括:判断第一存储器区块是否发生存储空间损坏;于判断第一存储器区块发生存储空间损坏时,根据既定表格追溯被写入第一存储器区块的数据所对应的一或多个数据来源,以取得一或多个来源存储器区块的位址信息;以及根据一或多个来源存储器区块的位址信息执行一数据修复操作。
附图说明
图1是显示根据本发明的一实施例所述的系统方框图。
图2是显示根据本发明的一实施例所述的存储器控制器的范例方框图。
图3是显示根据本发明的一实施例所述的数据处理方法的范例流程图。
图4是显示根据本发明的第一实施例所述的映射信息的记录范例。
图5是显示根据本发明的第一实施例所述的当存储器区块Block_B发生存储空间损坏时修改映射信息的记录范例。
图6是显示根据本发明的第二实施例所述的映射信息的记录范例。
图7是显示根据本发明的第二实施例所述的确认存储器区块Block_B未发生存储空间损坏后修改映射信息的记录范例。
符号说明
100:系统
110:主机装置
120:存储装置
121,200:存储器控制器
122:动态随机存取存储器
123:快闪存储器
210:主机接口
220,230:存储器接口
240:处理器
250:总线
260:指令缓冲存储器
270:数据缓冲存储器
41A,41B:数据
42:多方映射表格
43:L2P表格
43_n:L2P表格的栏位
Block_A,Block_B:存储器区块
S302,S303,S304,S306,S308,S310,S312:步骤
具体实施方式
图1是显示根据本发明的一实施例所述的系统方框图。所述的系统可以是一数据存储系统、一电脑系统或者一电子产品系统。系统100可包括一主机装置110与一存储装置120。存储装置120可包括一存储器控制器121与一或多个存储器装置。根据本发明的一实施例,存储装置120可以是设置于电子产品之中或者与电子产品连接的一固态硬盘(SolidState Drive,缩写SSD)。存储器控制器121可耦接至所述一或多个存储器装置,其中存储器装置可以是图中所示的动态随机存取存储器(Dynamic Random Access Memory,缩写DRAM)122与快闪存储器(Flash memory)123,并且快闪存储器123可包含多个快闪存储器模块。存储器控制器121可通过对应的接口存取DRAM 122及快闪存储器123。存储器控制器121也通过对应的接口与主机装置110沟通,用以接收多个指令,并响应于指令执行对应的存储器存取操作。
需注意的是,图1为一简化的方框图,其中仅显示出与本发明相关的元件。本领域技术人员均可理解,一电子产品系统当可包含许多未示于图1的元件,以实施各种对应的功能。
图2是显示根据本发明的一实施例所述的存储器控制器的范例方框图。存储器控制器200可为存储器控制器121的一种实现。存储器控制器200可包括多个接口,例如,主机接口210、存储器接口220与230等,其中主机接口210可耦接至主机装置,存储器接口220与230可耦接至对应的存储器装置,存储器控制器200通过所述接口与周边装置沟通。主机接口210可由一控制器实施,例如,一周边元件快速互连(Peripheral ComponentInterconnect Express,缩写PCI Express或PCI)/串行高技术组态(Serial AdvancedTechnology Attachment,串行高技术附件,缩写SATA)控制器,用以控制存储器控制器200与主机装置110之间通过对应的硬件接口传递的沟通信号。存储器控制器200可通过主机接口210自主机装置110接收多个指令。存储器接口220可由一DRAM控制器实施,用以控制存储器控制器121/200与DRAM 122之间通过对应的硬件接口传递的沟通信号。存储器接口230可由一快闪存储器控制器实施,用以控制存储器控制器121/200与快闪存储器123之间通过对应的硬件接口传递的沟通信号。
存储器控制器200可还包括一处理器240、一总线250、一指令缓冲存储器260与一数据缓冲存储器270。处理器240用以通过总线250及前述接口与周边装置沟通。举例而言,处理器240可通过存储器接口(例如,存储器接口230)控制存储器装置(例如,快闪存储器123)的存取操作。总线250可依循开放式核心协议(Open Core Protocol,缩写OCP)运行,用以连接主机接口210、存储器接口220与230、处理器240、指令缓冲存储器260与数据缓冲存储器270等装置,使其可以相互沟通协作。指令缓冲存储器260与数据缓冲存储器270用以进行所需的缓冲处理,其中指令缓冲存储器260与数据缓冲存储器270可以随机存取存储器(RAM)来实施。例如,静态随机存取存储器(Static RAM,缩写SRAM),但本发明不限于此。
需注意的是,图2为一简化的方框图,其中仅显示出与本发明相关的元件。本领域技术人员均可理解,一存储器控制器当可包含许多未示于图2的元件,以实施各种对应的功能。
为能有效保护存储器装置(例如,快闪存储器123)存储的数据,同时避免上述占据存储器空间以及降低存储器存取速度等的问题,于本发明的实施例中,处理器240因应存储器装置的写入操作执行数据保护,并且于检测到存储器区块发生存储空间损坏时,利用快闪存储器既有的特性执行数据修复操作,使得使用者的数据不会因此随着存储器破坏而随之丧失。
图3为一范例流程图,用以显示根据本发明的一实施例所述的数据处理方法的步骤流程。本发明的数据处理方法适用于存储器控制器121/200,并且可包含由处理器240执行的以下步骤:
步骤S302:根据存储器装置的第一存储器区块的写入操作维护一既定表格。于本发明的实施例中,既定表格可以是一多方映射表格或一逻辑到实体(Logical toPhysical,简称L2P)映射表格,且所述的维护可以是根据写入操作的内容对应地更新既定表格内所记录的数据。
步骤S303:因应第一存储器区块的写入操作执行数据保护。其中,步骤S303可还包括以下操作:
步骤S304:判断第一存储器区块是否发生存储空间损坏。若是,执行步骤S306。若否,执行步骤S312。
步骤S306:根据既定表格所记录的内容追溯被写入第一存储器区块的数据所对应的一或多个数据来源,以取得一或多个来源存储器区块的位址信息。
步骤S308:根据一或多个来源存储器区块的位址信息执行一数据修复操作。
步骤S310:因应数据修复操作更新既定表格。
步骤S312:因应写入操作更新既定表格。
值得注意的是,于不同实施例中,步骤S310与步骤S312的执行可被弹性地调整。举例而言,于一些实施例中,步骤S310或步骤S312的执行可被省略,或者于另一些实施例中,当既定表格为多方映射表格,步骤S310及/或步骤S312可还包含更新L2P映射表格的操作。
一般而言,当数据在存储器装置内的不同存储区域(例如,不同存储器区块)间被搬移,其可能是存储器装置因为空间不足进而触发垃圾回收(Garbage collection,缩写为GC)所产生的数据搬移操作、因为执行写除抹入平均(wear leveling)所产生的数据搬移操作、或者因为一或多个主动区块被写满进而触发将数据以更高空间利用率的方式整合到其他存储器区块所产生的数据搬移操作、或其他,其中主动区块是负责接收来自于主机装置110的数据,且通常空间利用率低但保护力较佳的存储器区块(例如,单层式存储(Single-Level Cell)存储器区块)会被挑选为主动区块。
而于本发明的实施例中,所述的写入操作可以是于不同存储区域间执行数据搬移时,将自来源存储器区块复制的数据写入目的存储器区块时所执行的写入操作。由于数据搬移仅是做数据的平行搬移,数据的内容并没有改变,因此,于本发明的实施例中,处理器240可记录数据的原始位置。于数据搬移到新的存储区域(例如,目的存储器区块)的过程中,若发现新的区域有存储器损坏的情况,因为相同的数据仍然被存储于旧的数据区域(例如,来源存储器区块)而且其内容是正确的,处理器240可回溯到旧的数据区域,取得正确的数据进行数据修复,借此可达到最高等级的数据保护力。此外,由于本发明的数据修复操作巧妙地利用了快闪存储器原有的特性(即,通过搬移操作优化存储器空间的利用率,而原有数据在搬移操作后可先被记录为无效或删除其连结但并不会立刻被删除),因此,于本发明的实施例中,无须占用存储器额外的空间,便可修复损坏数据,且修复率可达百分之百。
于本发明的一些实施例中,所述既定表格为一多方映射表格(multi-mappingtable)。多方映射表格包含多笔多方映射记录,各多方映射记录至少包含存储一逻辑位址的一第一栏位、存储一来源实体位址的一第二栏位以及存储一目的实体位址的一第三栏位,用以记录一逻辑位址所对应的数据是自哪个来源实体位址被搬移至哪个目的实体位址。根据本发明的一实施例,多方映射表格可被存储于数据缓冲存储器270或快闪存储器123内。举例而言,处理器240可利用一块存储器,各存储单元可存储一笔多方映射记录。
除前述既定表格外,处理器240还可为存储器装置(例如,快闪存储器123)维护L2P表格,其中L2P表格通常被存储于快闪存储器123内,并且于需要被更新时,处理器240可将L2P表格载入数据缓冲存储器270进行编辑。
根据本发明的一实施例,L2P表格对应于多个逻辑位址(或,多个逻辑数据页),用以记录各逻辑位址(或,多个逻辑数据页)映射至哪个实体位址的映射信息。举例而言,L2P表格可包含多个栏位,各栏位对应于一个逻辑数据页,用以记录此逻辑数据页的映射信息。即,此逻辑数据页的数据是指向(实际上被存储于)快闪存储器123的哪个实体位址,其中逻辑数据页可为从主机装置110的观点存取快闪存储器123所使用的基本单位,一逻辑数据页可由对应的一逻辑位址表示,或者可由任何可指向该逻辑数据页的形式表示,并且实体位址可由存储器区块编号与物理数据页编号表示,或者可由任何可指向该实体位址的形式表示。
于本发明的第一实施例中,处理器240根据第一存储器区块的写入操作维护多方映射表格以及L2P表格。更具体地说,于执行第一存储器区块的写入操作时,处理器240是将一或多个逻辑位址所对应的数据写入第一存储器区块。因应第一存储器区块的写入操作,处理器240将各逻辑位址、各逻辑位址所对应的数据的数据来源的相关信息(例如,来源存储器区块的存储器区块编号与其中存放此数据的物理数据页的编号)以及各逻辑位址所对应的数据的存储目的地的相关信息(例如,目的存储器区块或第一存储器区块的存储器区块编号与其中存放所述数据的物理数据页的编号)分别记录于多方映射表格中对应的一笔多方映射记录的第一栏位、第二栏位与第三栏位。
此外,处理器240更因应第一存储器区块的写入操作将L2P表格中对应于所述一或多个逻辑位址的映射信息更新为第一存储器区块的实体位址。举例而言,前述于L2P表格中记录的实体位址可包含存储器区块的编号与存放所述数据的物理数据页编号。
于本发明的第一实施例中,当处理器240判断第一存储器区块发生存储空间损坏时,处理器240根据多方映射表格所记录的内容追溯被写入第一存储器区块的数据所对应的一或多个数据来源,以取得一或多个来源存储器区块的位址信息,并且将L2P映射表格中对应于被写入第一存储器区块的数据的一或多个逻辑位址的映射信息修改为所述一或多个来源存储器区块的实体位址。如此一来,数据来源可回溯(trace back)至来源存储器区块所存储的正确的数据。
而后,于执行数据修复操作时,处理器240可选择另一存储器区块(例如,第二存储器区块),根据多方映射表格或L2P映射表格所记录的内容自所述一或多个来源存储器区块读取先前曾被写入第一存储器区块的数据,并且将自一或多个来源存储器区块读取的数据重新写入第二存储器区块。
值得注意的是,响应于第二存储器区块的写入操作,处理器240亦可进一步如上所述根据第二存储器区块的写入操作维护多方映射表格及/或L2P映射表格,以及因应第二存储器区块的写入操作执行数据保护。
另一方面,当处理器240判断第一存储器区块未发生存储空间损坏时,或者于数据修复操作完成后,处理器240可清除多方映射表格所记录的内容,例如,清除对应于被写入第一存储器区块的数据的一或多个逻辑位址的相关内容,或者仅清除其中的来源实体位址的相关内容。
图4是显示根据本发明的第一实施例所述的映射信息的记录范例。
假设处理器240执行将数据自存储器区块Block_A搬移至存储器区块Block_B的数据搬移操作。如上所述,数据搬移操作包含读取并复制来源存储器区块Block_A的数据,以及将数据写入目的存储器区块Block_B等的操作。图4是以被写入存储器区块Block_B的其中一笔数据作为说明。如图所示,假设数据41A为原先被存储于存储器区块Block_A中的数据,并且为逻辑位址LA5所对应的数据,数据41A所对应的实体位址可被表示为(A,10),而因数据搬移的操作,该数据被复制并写入存储器区块Block_B作为数据41B,数据41B所对应的实体位址可被表示为(B,12)。
处理器240根据写入操作维护多方映射表格42。多方映射表格42包含多笔多方映射记录,各多方映射记录可包含至少三个栏位,第一栏位存储逻辑位址的信息,例如,逻辑位址LA5,第二栏位存储来源实体位址的信息,例如,数据41A所对应的实体位址(A,10),第三栏位存储目的实体位址的信息,例如,数据41B所对应的实体位址(B,12),用以记录逻辑位址LA5所对应的数据是自来源实体位址(A,10)被搬移至目的实体位址(B,12)。通过多方映射表格42所记录的内容,处理器240可于检测到存储空间损坏时回溯正确数据来源。
于本发明的第一实施例中,处理器240亦根据写入操作维护L2P表格43,用以将L2P表格43中写入操作所涉及的逻辑位址的映射信息更新为存储器区块Block_B的实体位址。假设L2P表格43的栏位43_n对应于逻辑位址LA5,用以记录逻辑位址LA5的映射信息,处理器240因应写入操作将栏位43_n的内容更新为数据41B所对应的实体位址(B,12)。
图5是显示根据本发明的第一实施例所述的当存储器区块Block_B发生存储空间损坏时修改映射信息的记录范例。
当处理器240判断存储器区块Block_B发生存储空间损坏时,处理器240根据多方映射表格42所记录的内容追溯被写入存储器区块Block_B的数据所对应的一或多个数据来源,以取得一或多个来源存储器区块的位址信息,例如,根据多方映射表格42所记录的内容,处理器240可得知实体位址(B,12)所对应的数据41B的数据来源为实体位址(A,10)所存储的数据41A。此外,处理器240可将L2P映射表格43中写入操作所涉及的逻辑位址的映射信息修改为来源存储器区块的实体位址,使其能指回存储正确数据的位址。例如,如图5所示将栏位43_n的内容修改为数据41A所对应的实体位址(A,10)。如此一来,数据来源可回溯至来源存储器区块所存储的正确的数据。
而后,于执行数据修复操作时,处理器240可选择另一存储器区块,例如,存储器区块Block_C,根据多方映射表格42或L2P映射表格43所记录的内容自所述一或多个来源存储器区块(例如,存储器区块Block_A)读取先前曾被写入存储器区块Block_B的数据,并且将自一或多个来源存储器区块读取的数据重新写入存储器区块Block_C。
另一方面,当处理器240判断存储器区块Block_B未发生存储空间损坏时,或者于数据修复操作完成后,处理器240可清除多方映射表格42所记录的内容,例如,清除对应于被写入存储器区块Block_B的数据的一或多个逻辑位址的相关内容,或者仅清除其中的来源实体位址的相关内容。
不同于第一实施例,于本发明的第二实施例中,处理器240根据第一存储器区块的写入操作维护多方映射表格,但在判断或确认第一存储器区块未发生存储空间损坏前,处理器240先不将L2P表格中对应于第一存储器区块的写入操作所涉及的一或多个逻辑位址的映射信息更新为第一存储器区块的实体位址,而是暂时保持原先记录的内容。于处理器240判断或确认第一存储器区块未发生存储空间损坏后,处理器240才将L2P表格中对应于该一或多个逻辑位址的映射信息更新为第一存储器区块的实体位址。
图6是显示根据本发明的第二实施例所述的映射信息的记录范例。图7是显示根据本发明的第二实施例所述的确认存储器区块Block_B未发生存储空间损坏后修改映射信息的记录范例。图6与图7所显示的部分内容与图4与图5相同,相同的部分便不再赘述。
如图6所示,于本发明的第二实施例中,在判断或确认存储器区块Block_B未发生存储空间损坏前,处理器240不因应写入操作将栏位43_n的内容更新为数据41B所对应的实体位址(B,12),而是暂时保持原先记录的内容,例如,数据41A所对应的实体位址(A,10)。如此一来,当检测到存储器区块Block_B发生存储空间损坏时,数据来源可根据多方映射表格42或L2P映射表格43所记录的内容回溯至来源存储器区块所存储的正确的数据。
于处理器240判断或确认存储器区块Block_B未发生存储空间损坏后,处理器240将L2P表格43中对应于存储器区块Block_B的写入操作所涉及的逻辑位址的映射信息更新为存储器区块Block_B的实体位址。
于本发明的第三实施例中,处理器240并不使用额外的存储器空间维护多方映射表格,仅根据写入操作维护L2P表格。因此,于本发明的第三实施例中,所述既定表格可为L2P表格。本发明的第三实施例中记录映射信息的方式与第二实施例部分相同,因此,可参考图6与图7所示有关L2P表格43的映射信息记录范例。
于本发明的第三实施例中,在判断或确认存储器区块Block_B未发生存储空间损坏前,处理器240不因应写入操作将栏位43_n的内容更新为数据41B所对应的实体位址(B,12),而是暂时保持原先记录的内容,例如,数据41A所对应的实体位址(A,10)。如此一来,当检测到存储器区块Block_B发生存储空间损坏时,数据来源可根据L2P映射表格43所记录的内容回溯至来源存储器区块所存储的正确的数据。
于处理器240判断或确认存储器区块Block_B未发生存储空间损坏后,处理器240将L2P表格43中对应于存储器区块Block_B的写入操作所涉及的逻辑位址的映射信息更新为存储器区块Block_B的实体位址。举例而言,于更新映射信息时,处理器240读取新数据内的逻辑位置记录(例如,存储器区块Block_B所存储的数据所对应的逻辑位址记录),并且依此逻辑位置将L2P表格43的内容转换表改成新的位置(例如,这些逻辑位址所对应的存储器区块Block_B的实体位址)。
于本发明的实施例中,处理器240可根据以下多种不同的方法之一或多者的结合检查、判断或确认被写入的存储器区块(例如,前述的第一存储器区块或者存储器区块Block_B)是否发生存储空间损坏。例如,处理器240可于每个新存储空间被写入后,确认存储器装置所回传的状态是否正确,以判断是否发生存储空间损坏。举例而言,存储器装置可于执行完一写入操作后回传写入成功或写入失败,或者写入完成或写入未完成等的状态信息。一旦处理器240接收到写入失败或写入未完成等的状态信息,可判断被写入的存储器区块发生存储空间损坏。
此外,处理器240可于每个新存储空间被写入后,回读确认刚写入的数据是否为正确的,以判断是否发生存储空间损坏。即,处理器240无须于一个完整的存储器区块被写入完毕后才检查数据的正确性,处理器240可于一个存储器区块被写满前便执行一或多次的确认。举例而言,处理器240可于存储器装置执行完一写入操作后,例如,一或多个数据页的写入操作完成后,将写入的数据读出,并根据读出的内容判断数据是否正确或者状态良好。若处理器240判断数据不正确或状态不良好,或所述一或多个数据页的任一者所存储的数据被损害时,可判断被写入的存储器区块发生存储空间损坏或者极有可能发生存储空间损坏。其中,当处理器240判断存储器区块极有可能发生存储空间损坏时,也可利用前述的方式回溯正确数据来源,并启动本发明所述的数据修复操作。
此外,处理器240可于一个完整的存储空间写入完毕后,读取整个空间内所有的数据判断数据是否都是正确而且状态良好的,以判断是否发生存储空间损坏。举例而言,处理器240可于一整个存储器区块的写入操作完成或一个存储器区块(例如,目的存储器区块)被写满后,读取整个存储器区块所存储的数据,并根据读出的内容判断数据是否正确或者状态良好。若处理器240判断任一笔数据不正确或状态不良好,可判断被写入的存储器区块发生存储空间损坏或者极有可能发生存储空间损坏。
于本发明的实施例中,处理器240可通过分析或解码读出的数据判断数据是否正确或者状态良好。举例而言,处理器240可利用一解码器将从读出的数据进行错误更正码(Error Correction Code,缩写ECC)解码,计算一个存储空间(例如,一或多个数据页)的错误位元总数量、可以纠错的错误位元数量、不可纠错的错误位元数量,并根据以上结果判断数据是否正确或者状态良好。当错误位元总数量或不可纠错的错误位元数量大于对应的一临界值时,判断数据不正确或状态不良好。举另一例,处理器240可分析数据的准位或临界电压的分布,以判断数据准位或临界电压的飘移程度,并根据以上结果判断数据是否正确或者状态良好。当飘移程度大于对应的一临界值时,判断数据不正确或状态不良好。举又另一例,处理器240可将自目的存储器区块读出的数据与来源存储器区块所存储的原始数据比对其正确性,判断数据是否正确或者状态良好。当读出的数据与原始数据的差异量大于对应的一临界值时,判断数据不正确或状态不良好。若处理器240判断任一笔数据不正确或状态不良好,可判断被写入的存储器区块发生存储空间损坏或者极有可能发生存储空间损坏。当处理器240判断存储器区块已发生存储空间损坏或极有可能发生存储空间损坏时,便可利用前述的方式回溯正确数据来源,并启动本发明所述的数据修复操作。
如上所述,现有技术中使用同位信息保护数据的方法存在着占据存储器额外的空间以及降低存储器存取速度等的问题。此外,使用同位信息保护数据的方法仅能在错误率低于一既定位准时发挥效用,因此无法实现百分之百的数据修复率。相较于现有技术,于本发明所提出的数据处理方法中,无须占用存储器额外的空间,便可修复损坏数据。此外,由于本发明的数据修复操作利用快闪存储器的特性追溯回正确的数据,因此,当发生存储空间损坏时,数据修复率可达百分之百。因此,在存储器装置的寿命终了前,可确保使用者的数据不会因此随着存储器破坏而随之丧失。
以上所述仅为本发明的优选实施例,凡依本发明权利要求所做的均等变化与修饰,皆应属本发明的涵盖范围。
Claims (9)
1.一种存储器控制器,包括:
一存储器接口;以及
一处理器,耦接至该存储器接口,用以通过该存储器接口控制一存储器装置的存取操作,其中该处理器根据该存储器装置的一第一存储器区块的一写入操作维护一既定表格,并且因应所述写入操作执行数据保护,其中,该第一存储器区块是目的存储器区块,且该第一存储器区块的该写入操作是将自一或多个来源存储器区块复制的数据写入该目的存储器区块,且
于执行所述数据保护时,该处理器判断该第一存储器区块是否发生存储空间损坏,以及
于判断该第一存储器区块发生存储空间损坏时,该处理器根据该既定表格追溯被写入该第一存储器区块的数据所对应的一或多个数据来源,以取得一或多个来源存储器区块的位址信息,并且根据该一或多个来源存储器区块的位址信息执行一数据修复操作,其中该既定表格为一多方映射表格,该多方映射表格包含多笔多方映射记录,各多方映射记录至少包含存储一逻辑位址的一第一栏位、存储一来源实体位址的一第二栏位以及存储一目的实体位址的一第三栏位,用以记录该逻辑位址所对应的数据是自该来源实体位址被搬移至该目的实体位址,且
其中,记录在该既定表格的该第二栏位中的来源实体位址的物理数据页编号不同于记录在该既定表格的该第三栏位中的目的实体位址的物理数据页编号。
2.如权利要求1所述的存储器控制器,其中该处理器还维护一逻辑到实体映射表格,该逻辑到实体映射表格对应于多个逻辑位址,用以记录所述多个逻辑位址映射至哪个实体位址的映射信息,其中于执行该第一存储器区块的该写入操作时,该处理器将一或多个逻辑位址所对应的数据写入该第一存储器区块,并且将该逻辑到实体映射表格中对应于该一或多个逻辑位址的映射信息更新为该第一存储器区块的实体位址。
3.如权利要求2所述的存储器控制器,其中于判断该第一存储器区块发生存储空间损坏时,该处理器还将该逻辑到实体映射表格中对应于该一或多个逻辑位址的映射信息修改为该一或多个来源存储器区块的实体位址。
4.如权利要求1所述的存储器控制器,其中该处理器还维护一逻辑到实体映射表格,该逻辑到实体映射表格对应于多个逻辑位址,用以记录所述多个逻辑位址映射至哪个实体位址的映射信息,其中于执行该第一存储器区块的该写入操作时,该处理器将一或多个逻辑位址所对应的数据写入该第一存储器区块,并且于判断该第一存储器区块未发生存储空间损坏前,该处理器不将该逻辑到实体映射表格中对应于该一或多个逻辑位址的映射信息更新为该第一存储器区块的实体位址。
5.如权利要求4所述的存储器控制器,其中于判断该第一存储器区块未发生存储空间损坏后,该处理器将该逻辑到实体映射表格中对应于该一或多个逻辑位址的映射信息更新为该第一存储器区块的实体位址。
6.如权利要求1所述的存储器控制器,其中该既定表格为一逻辑到实体映射表格,该逻辑到实体映射表格对应于多个逻辑位址,用以记录所述多个逻辑位址映射至哪个实体位址的映射信息,其中于执行该第一存储器区块的该写入操作时,该处理器将一或多个逻辑位址所对应的数据写入该第一存储器区块,并且于判断该第一存储器区块未发生存储空间损坏前,该处理器不更新该逻辑到实体映射表格。
7.如权利要求6所述的存储器控制器,其中于判断该第一存储器区块未发生存储空间损坏后,该处理器将该逻辑到实体映射表格中对应于该一或多个逻辑位址的映射信息更新为该第一存储器区块的实体位址。
8.如权利要求1所述的存储器控制器,其中于执行该数据修复操作时,该处理器还选择一第二存储器区块,自该一或多个来源存储器区块读取先前曾被写入该第一存储器区块的数据,并且将自该一或多个来源存储器区块读取的该数据重新写入该第二存储器区块。
9.一种数据处理方法,适用于一存储器控制器,该存储器控制器耦接一存储器装置并且包括用以控制该存储器装置的存取操作的一处理器,该方法由该处理器所执行并包括:
根据一第一存储器区块的一写入操作维护一既定表格,其中,该第一存储器区块是目的存储器区块,且该第一存储器区块的该写入操作是将自一或多个来源存储器区块复制的数据写入该目的存储器区块;以及
因应所述写入操作执行数据保护;
其中因应所述写入操作执行所述数据保护的步骤还包括:
判断该第一存储器区块是否发生存储空间损坏;
于判断该第一存储器区块发生存储空间损坏时,根据该既定表格追溯被写入该第一存储器区块的数据所对应的一或多个数据来源,以取得一或多个来源存储器区块的位址信息;及
根据该一或多个来源存储器区块的位址信息执行一数据修复操作,
其中该既定表格为一多方映射表格,该多方映射表格包含多笔多方映射记录,各多方映射记录至少包含存储一逻辑位址的一第一栏位、存储一来源实体位址的一第二栏位以及存储一目的实体位址的一第三栏位,用以记录该逻辑位址所对应的数据是自该来源实体位址被搬移至该目的实体位址,且
其中,记录在该既定表格的该第二栏位中的来源实体位址的物理数据页编号不同于记录在该既定表格的该第三栏位中的目的实体位址的物理数据页编号。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202062970714P | 2020-02-06 | 2020-02-06 | |
US62/970,714 | 2020-02-06 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113220221A CN113220221A (zh) | 2021-08-06 |
CN113220221B true CN113220221B (zh) | 2023-08-29 |
Family
ID=77085819
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011203510.0A Active CN113220221B (zh) | 2020-02-06 | 2020-11-02 | 存储器控制器与数据处理方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113220221B (zh) |
TW (1) | TWI744049B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114707478B (zh) * | 2022-06-06 | 2022-09-02 | 飞腾信息技术有限公司 | 映射表生成方法、装置、设备及存储介质 |
TWI833588B (zh) * | 2023-03-01 | 2024-02-21 | 南亞科技股份有限公司 | 邏輯位址轉換裝置、方法以及非暫態電腦可讀取儲存媒體 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101539887A (zh) * | 2009-05-06 | 2009-09-23 | 美商威睿电通公司 | 快闪存储器管理方法与计算机系统 |
CN102012867A (zh) * | 2009-09-03 | 2011-04-13 | 248固态硬碟有限公司 | 资料储存系统及其管理方法 |
CN102110056A (zh) * | 2009-12-24 | 2011-06-29 | 群联电子股份有限公司 | 闪存管理方法、闪存控制器与闪存存储系统 |
CN109933545A (zh) * | 2017-12-18 | 2019-06-25 | 慧荣科技股份有限公司 | 数据储存装置与存储器装置的数据处理方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW269054B (en) * | 1995-02-17 | 1996-01-21 | Silicon Integrated Sys Corp | Auto-recovering method for DRAM and device thereof |
TWI375959B (en) * | 2007-11-06 | 2012-11-01 | Nat Univ Tsing Hua | Method for repairing memory and system thereof |
TW201222552A (en) * | 2010-11-16 | 2012-06-01 | Hon Hai Prec Ind Co Ltd | Memory and method for repairing same, data processing device and driving method using same |
GB2527529B (en) * | 2014-06-24 | 2021-07-14 | Advanced Risc Mach Ltd | A device controller and method for performing a plurality of write transactions atomically within a non-volatile data storage device |
KR20190030790A (ko) * | 2017-09-14 | 2019-03-25 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
-
2020
- 2020-10-26 TW TW109137029A patent/TWI744049B/zh active
- 2020-11-02 CN CN202011203510.0A patent/CN113220221B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101539887A (zh) * | 2009-05-06 | 2009-09-23 | 美商威睿电通公司 | 快闪存储器管理方法与计算机系统 |
CN102012867A (zh) * | 2009-09-03 | 2011-04-13 | 248固态硬碟有限公司 | 资料储存系统及其管理方法 |
CN102110056A (zh) * | 2009-12-24 | 2011-06-29 | 群联电子股份有限公司 | 闪存管理方法、闪存控制器与闪存存储系统 |
CN109933545A (zh) * | 2017-12-18 | 2019-06-25 | 慧荣科技股份有限公司 | 数据储存装置与存储器装置的数据处理方法 |
Non-Patent Citations (1)
Title |
---|
基于HDFS的数据安全保护机制研究;丁旭阳;《中国优秀硕士学位论文全文数据库信息科技辑》;全文 * |
Also Published As
Publication number | Publication date |
---|---|
TWI744049B (zh) | 2021-10-21 |
CN113220221A (zh) | 2021-08-06 |
TW202131347A (zh) | 2021-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102023815B (zh) | 在固态存储器中实现raid | |
JP4901987B1 (ja) | 記憶装置、電子機器及び誤りデータの訂正方法 | |
EP2162822B1 (en) | Emerging bad block detection | |
US7984325B2 (en) | Storage control device, data recovery device, and storage system | |
TWI555023B (zh) | 快閃記憶體更新方法以及快閃記憶體控制器 | |
CN109582216B (zh) | 数据储存装置与存储器装置的数据处理方法 | |
TW201916018A (zh) | 資料儲存裝置與將資料寫入記憶體裝置之方法 | |
US20120215962A1 (en) | Partitioning pages of an electronic memory | |
CN113220221B (zh) | 存储器控制器与数据处理方法 | |
CN108958961B (zh) | 数据储存装置以及数据错误管理方法 | |
US20130166991A1 (en) | Non-Volatile Semiconductor Memory Device Using Mats with Error Detection and Correction and Methods of Managing the Same | |
CN111459708B (zh) | 坏块处理方法及装置 | |
JP4357305B2 (ja) | 外部記憶装置 | |
JP2018136735A (ja) | メモリ制御装置及びメモリ制御方法 | |
CN113094307B (zh) | 映射信息管理方法、存储器存储装置及存储器控制器 | |
US11550710B2 (en) | Data processing method and memory controller utilizing the same | |
US11662940B2 (en) | Data storage device and data processing method for restoring MLC/TLC memory to avoid degradation of access performance of a memory device caused by word line short | |
US10922025B2 (en) | Nonvolatile memory bad row management | |
CN112230855A (zh) | 固态硬盘及其读写方法 | |
TWI750811B (zh) | 用於記憶體的資料保護寫入方法、用於記憶體的資料保護讀取方法以及記憶體資料保護系統 | |
CN117687575A (zh) | Qlc固态硬盘开放数据块的优化处理方法和装置 | |
CN117591138A (zh) | 一种数据刷写实现方法、系统及存储介质 | |
US9400716B2 (en) | Method for handling interrupted writes using multiple cores | |
CN116755924A (zh) | 固态硬盘数据恢复效率提升方法、装置和计算机设备 | |
CN118151853A (zh) | Fpga器件的数据存储控制方法、系统、fpga系统及介质 |
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 |