CN109426447B - 用以优化数据储存装置的数据储存方法及其数据储存装置 - Google Patents
用以优化数据储存装置的数据储存方法及其数据储存装置 Download PDFInfo
- Publication number
- CN109426447B CN109426447B CN201810431333.8A CN201810431333A CN109426447B CN 109426447 B CN109426447 B CN 109426447B CN 201810431333 A CN201810431333 A CN 201810431333A CN 109426447 B CN109426447 B CN 109426447B
- Authority
- CN
- China
- Prior art keywords
- block
- blocks
- super
- superblock
- damaged
- 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
Images
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/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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2094—Redundant storage or storage space
-
- 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
-
- 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
- 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/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/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]
-
- 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/068—Hybrid storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/82—Solving problems relating to consistency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7206—Reconfiguration of flash memory system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7207—Details relating to flash memory management management of metadata or control data
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)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种数据存储方法和数据储存装置,具有一快闪存储器、一控制器以及一随机存取存储器。快闪存储器包括多个储存矩阵,并且储存矩阵的每一者包括多个区块。每一储存矩阵的一部分区块组合成一超级区块,使得快闪存储器包括多个超级区块。控制器耦接快闪存储器,用以当超级区块中的至少一第一超级区块中的一第一区块发生损毁,并且超级区块中的一第二超级区块中对应损毁区块的位置的一第二区块为正常时,控制器将第二超级区块的第二区块合并到第一超级区块以取代第一区块。随机存取存储器,储存一压缩表格用以记录第一区块于第一超级区块中的位置资讯以及第二区块的编号资讯。
Description
技术领域
本发明有关于一用以优化数据储存装置的数据储存方法及其数据储存装置,特别有关于一种藉由压缩表格记录数据区块的重组与合并的数据储存装置与数据储存方法。
背景技术
快闪存储器为一种普遍的非挥发性数据储存装置,以电性方式抹除与程序化。以与非门型的快闪存储器(NAND FLASH)为例,常用作记忆卡(memory card)、通用串行总线闪存装置(USB flash device)、固态硬碟(SSD)、嵌入式快闪存储器模组 (eMMC)、通用快闪存储器(UFS)…等使用。
由于快闪存储器具有许多数据区块,而这些数据区块可能会因为长时间的使用而发生损毁,造成数据无法正常写入或读取。因此,需要一种能够有效率的对数据区块的进行重组与合并的数据储存装置与数据储存方法,以确保数据存取的效能与可靠度。
发明内容
为了解决上述问题,本发明提出一种用以优化数据储存装置的数据储存方法及其数据储存装置,能够有效率的针对损毁的数据区块的进行重组与合并,以获得更多没有损毁的超级区块。此外,本发明以压缩表格针对有变更与合并的部分区块进行记录,避免占用太多存储器空间,以有效确保数据存取的效能与可靠度。
本发明的一实施例提供了一种数据储存装置,具有一快闪存储器、一控制器以及一随机存取存储器。快闪存储器包括多个储存矩阵(plane),并且储存矩阵的每一者包括多个区块(block)。每一储存矩阵的一部分区块组合成一超级区块(super block),使得快闪存储器包括多个超级区块。控制器耦接快闪存储器,用以当超级区块中的至少一第一超级区块中的一第一区块发生损毁,并且超级区块中的一第二超级区块中对应损毁区块的位置的一第二区块为正常时,将第二超级区块的第二区块合并到第一超级区块以取代第一区块。随机存取存储器,储存一压缩表格用以记录第一区块于第一超级区块中的位置资讯以及第二区块的编号资讯。
本发明的一实施例提供了一种用于优化数据储存装置的数据储存方法,数据储存装置具有一快闪存储器、一控制器以及一随机存取存储器,其中快闪存储器包括多个储存矩阵,并且储存矩的之每一者包括多个区块。数据储存方法包括:将每一储存矩阵的一部分区块组合成一超级区块,使得快闪存储器包括多个超级区块;当超级区块中的至少一第一超级区块中的一第一区块发生损毁,并且超级区块中的一第二超级区块中对应损毁区块的位置的一第二区块为正常时,将第二超级区块的第二区块合并到第一超级区块以取代第一区块;以及储存一压缩表格用以记录第一区块于第一超级区块中的位置资讯以及第二区块的编号资讯。
关于本发明其他附加的特征与优点,此领域的熟本技术领域者,在不脱离本发明的精神和范围内,当可根据本案实施方法中所揭示的数据储存装置与数据储存方法。
附图说明
根据以下的详细说明并配合附图做完整揭示。应注意的是,根据本产业的一般作业,图示并未必按照比例绘制。事实上,可能任意的放大或缩小元件的尺寸,以做清楚的说明。
图1显示了根据本发明一实施例所述的数据储存装置与主机的示意图;
图2显示了根据本发明一实施例所述的数据储存方法的流程图;
图3显示了根据本发明一实施例所述的数据储存方法的流程图;
图4A-4C显示了根据本发明一实施例所述的数据储存方法的流程图。
符号说明
100~数据储存装置;
120~控制器;
140~快闪存储器;
160-16N~储存矩阵;
160_A、160_Z…16N_A、16N_Z~区块;
160_A_1、160_Z_1…16N_A_X、16N_Z_X~页面;
180~随机存取存储器;
200~主机;
DT、DT2~压缩表格;
NDT、NDT1…NDT7 ~非压缩表格;
XBLK0、XBLK1…XBLKZ~超级区块;
S200…S424~步骤。
具体实施方式
为让本发明的目的、特征和优点能更明显易懂,下文特举出本发明的具体实施例,并配合附图,作详细说明如下。目的在于说明本发明的精神而非用以限定本发明的保护范围,应理解下列实施例可经由软件、硬件、固件、或上述任意组合来实现。
图1显示了根据本发明一实施例所述的数据储存装置100与主机200的示意图。在一实施例中,数据储存装置100包括控制器120、快闪存储器140以及随机存取存储器(RAM)180。数据储存装置100耦接主机200以传送数据与指令、或是接收数据与指令。快闪存储器140可以为非挥发性存储器,例如反集闸快闪存储器(NAND Flash)。数据储存装置100的例子可包含(但不限于):可携式记忆装置(诸如符合SD/MMC、 CF、MS、XD或UFS标准之记忆卡)、固态硬碟(solid state drive,SSD)以及各种嵌入式(embedded)储存装置(诸如符合UFS或EMMC规格的嵌入式储存装置)。主机 200可以为手机、平板电脑、笔记型电脑、导航机、车载系统等各种电子产品、或上述各种电子产品中的处理器。
如图1所示,控制器120耦接快闪存储器140以及随机存取存储器180。随机存取存储器180用以暂存以及预取控制器120所需的数据,或是用以暂存主机200要写入快闪存储器140的数据,以加快数据储存装置100的存取时间。控制器120藉由控制快闪存储器140以丛集(cluster)为单位执行读取运作的方式来对快闪存储器140执行读取运作。此外,控制器120耦接快闪存储器140以相互传送数据与指令或接收数据与指令。进一步而言,控制器120可包括具有固件码的只读存储器(ROM)以及微控制器,并且微控制器执行固件码以操作或是存取快闪存储器140。
快闪存储器140包括多个储存矩阵(plane)160~16N。详细而言,储存矩阵160~16N中的每一者还包括多个区块(block)160_A~16N_Z。在一实施例中,快闪存储器140具有4个储存矩阵160~164(亦即CE0~CE3)。储存矩阵160包括区块 160_A~160_Z,储存矩阵16N包括区块16N_A~16N_Z。对于储存矩阵160而言,区块 160_A~160_Z中的每一者还包括多个实体页面。区块160_A包括实体页面 160_A_1~160_A_X,区块160_Z包括实体页面160_Z_1~160_Z_X。控制器120在对快闪存储器140执行写入或储存动作时,是藉由控制快闪存储器140以实体页面为单位来执行写入或程序化的运作。
对于快闪存储器140而言,其实体页面160_A_1~16N_Z_X的每一者皆具有不同的实体地址。换言之,实体页面160_A_1~16N_Z_X的每一者都具有一个实体地址,而实体页面160_A_1~16N_Z_X的每一者的实体地址都是不同的。当数据储存装置100 执行一写入运作时,控制器120决定快闪存储器140的一实体地址以写入或储存数据。此外,控制器120则分别对应上述多个实体地址至多个逻辑地址。因此,对于主机 200而言,主机200是藉由逻辑地址,来读取或写入数据储存装置100所储存于某个逻辑地址的数据。
在一实施例中,每一储存矩阵160~16N的一部分区块组合成一超级区块(superblock),使得快闪存储器140包括多个超级区块。当超级区块中的至少一第一超级区块中的一第一区块发生损毁,并且超级区块中的一第二超级区块中对应损毁区块的位置的一第二区块为正常时,将第二超级区块的第二区块合并到第一超级区块以取代第一区块。随机存取存储器180则储存一压缩表格DT,以记录第一区块于第一超级区块中的位置资讯以及第二区块的编号资讯。在另一实施例中,随机存取存储器180则储存一非压缩表格NDT,以记录第一超级区块的每一位置资讯及其对应区块的编号资讯。举例而言,非压缩表格NDT以及压缩表格DT如下所示:
非压缩表格NDT1
如上述的非压缩表格NDT1所示,超级区块XBLK0是由储存矩阵160的编号0和1 的区块、储存矩阵161的编号0和1的区块、储存矩阵162的编号0和1的区块、以及储存矩阵163的编号0和1的区块等八个区块所构成。举例而言,储存矩阵160的编号0 的区块为区块160_A,储存矩阵160的编号1的区块为区块160_B,储存矩阵161的编号0的区块为区块161_A,以此类推。超级区块XBLK1是由储存矩阵160的编号2和3的区块、储存矩阵161的编号2和3的区块、储存矩阵162的编号2和3的区块、以及储存矩阵163的编号2和3的区块等八个区块所构成。举例而言,储存矩阵160的编号2的区块为区块160_C,储存矩阵160的编号3的区块为区块160_D,储存矩阵161的编号 2的区块为区块161_C,以此类推。
然后,超级区块XBLK0的储存矩阵163的编号1的区块(亦即区块163_A)发生损毁。详细而言,当储存矩阵163的区块163_A没有成功写入一数据、或是区块163_A 没有成功进行抹除操作时,则控制器120判断区块163_A为损毁。此外,在此实施例中,超级区块XBLK1的储存矩阵161的编号3的区块、储存矩阵162的编号3的区块以及储存矩阵166的编号2的区块也发生损毁。
当控制器120检测到上述损毁区块时,则将其他超级区块中的正常区块合并到上述发生损毁的超级区块XBLK0与XBLK1,并且取代上述损毁区块。然后,随机存取存储器180所储存的压缩表格DT以及非压缩表格NDT则进行更新以记录上述区块变更及合并的相关资讯。以下为更新后的压缩表格DT2以及非压缩表格NDT2。在非压缩表格NDT2中,标注部分即为损毁区块的编号。要注意的是,上述标注仅用以方便说明,实际上非压缩表格NDT可不进行标注。
非压缩表格NDT2
在此实施例的非压缩表格NDT2中,记录了其他超级区块的编号5的区块取代了超级区块XBLK0的位置7的区块,其他超级区块的编号8的区块取代了超级区块XBLK1 的位置3的区块,其他超级区块的编号7的区块取代了超级区块XBLK1的位置5的区块,以此类推。因此,经过区块的合并与取代后,2个超级区块XBLK0与XBLK1都是没有损毁的超级区块。
由于非压缩表格NDT2记录了全部区块的资讯,当存取的数据量大时,就会占用许多随机存取存储器180的空间。因此,本发明提出了以压缩表格DT2来记录原本非压缩表格NDT2中有发生变动的资讯,以节省存储器的空间并且加速存取速度。
以下为压缩表格DT2的示意图:
压缩表格DT2
如上所述,奇数栏位1~7为被合并的正常区块之编号资讯,偶数栏位2~8为损毁区块的位置资讯。在压缩表格DT2中,超级区块XBLK0的资讯5与7表示非压缩表格NDT2的位置7的区块被其他超级区块的编号5的区块所取代。同样地,超级区块 XBLK1的资讯8与3表示非压缩表格NDT2的位置3的区块被其他超级区块的编号8的区块所取代,资讯7与5表示非压缩表格NDT2的位置5的区块被其他超级区块的编号7的区块所取代,以此类推。
要注意的是,控制器120判断超级区块中损毁区块的数量是否大于全部区块的一半数量。如果超级区块中损毁区块的数量没有大于全部区块的一半数量,则控制器120使用压缩表格DT加以记录,并且储存于随机存取存储器180。如果超级区块中损毁区块的数量大于全部区块的一半数量,则控制器120使用压缩表格DT也无法有效降低表格的尺寸,则使用非压缩表格NDT加以记录,并且储存于随机存取存储器 180。
以下将介绍如何藉由正常区块以及损毁区块的对应关系以及数量,进行区块的合并,并且必要时将超级区块进行分割,以决定出可用于合并的正常区块。
非压缩表格NDT3
在非压缩表格NDT3的实施例中,包括了5个超级区块XBLK0~XBLK4,其中X表示该位置的区块为损毁区块。首先,控制器120找出5个超级区块XBLK0~XBLK4中损毁区块的数量最少者,优先合并正常取块以进行修复。如非压缩表格NDT3所示,超级区块XBLK3只有1个损毁区块并且其数量小于其他超级区块。然后,控制器120判断其他超级区块对应于超级区块XBLK3的损毁位置7的区块是否为正常。在此实施例中,由于超级区块XBLK4的位置7的区块为正常并且其他区块皆损毁,刚好是超级区块 XBLK3的完整互补(perfect match)。因此,控制器120合并超级区块XBLK3与XBLK4,以获得全部区块都正常的超级区块XBLK3,并且将记录表格更新为非压缩表格NDT4。
非压缩表格NDT4
要注意的是,如果超级区块XBLK3具有2个损毁区块,但是有其他两个超级区块,各自具有一对应位置为正常区块,则表示上述两个超级区块与超级区块XBLK3 为完整互补,则控制器120合并这些两个超级区块至超级区块XBLK3。换言之,本发明的数据控制方法会对现有的超级区块进行合并,如果无法合并则进行分割,也就是将一个超级区块分割为多个子超级区块。
举例而言,对于非压缩表格NDT4而言,目前已无法再合并。然而,超级区块 XBLK0还没有进行区块合并与修复。因为超级区块XBLK2的正常区块的数量大于超级区块XBLK0的损毁区块的数量,并且超级区块XBLK2中对应超级区块XBLK0的损毁位置的区块为正常区块,因此控制器120将超级区块XBLK2分割为2个超级区块XBLK2_A 以及XBLK2_B(亦即子超级区块)。非压缩表格NDT4也对应更新为下述的非压缩表格 NDT5。
非压缩表格NDT5
在此实施例中,分割后之超级区块XBLK2_B与超级区块XBLK0为完整互补,因此控制器120合并超级区块XBLK2_B与超级区块XBLK0,以修复超级区块XBLK0。要注意的是,由于超级区块XBLK1还没有进行区块合并与修复,并且超级区块XBLK2_A之正常区块的数量大于超级区块XBLK1的损毁区块的数量,超级区块XBLK2_A中对应超级区块XBLK1的损毁位置的区块为正常区块。因此,控制器120进一步分割超级区块 XBLK2_A为2个超级区块XBLK2_A_1以及XBLK2_A_2,以修复超级区块XBLK1。修复后的超级区块XBLK1为没有损毁的超级区块。更新后的非压缩表格NDT6如下所示。
非压缩表格NDT6
由于分割后的XBLK2_A_1与超级区块XBLK1为完整互补,因此控制器120合并超级区块XBLK2_A_1与超级区块XBLK1,以修复超级区块XBLK1。更新后的非压缩表格 NDT7如下所示。
非压缩表格NDT7
在原本的非压缩表格NDT3的实施例中,5个超级区块XBLK0~XBLK4都是具有损毁的超级区块。经过本发明所提供的区块分割与合并的方法后,如非压缩表格NDT6 所示,可产生3个全部正常的超级区块XBLK0、XBLK1与XBLK3,大幅提升快闪存储器 140的使用效率。
图2显示了根据本发明一实施例所述的数据储存方法的流程图。在步骤S200,控制器120将快闪存储器140的每一储存矩阵160~16N的一部分区块组合成一超级区块,使得快闪存储器140具有多个超级区块。然后,在步骤S202,控制器120上述超级区块中的至少一第一超级区块中的第一区块是否发生损毁。如果没有发生损毁,则回到步骤S202。如果发生损毁,则执行步骤S204,控制器120判断上述超级区块中的一第二超级区块中对应该损毁区块的位置的第二区块是否为正常区块。
如果判断第二区块不是正常区块,则回到步骤S204。如果判断第二区块为正常区块,则执行步骤S206,控制器120将该第二超级区块的该第二区块合并到该第一超级区块,以取代该第一区块并且修复第一超级区块。然后,在步骤S208,随机存取存储器180储存一压缩表格DT,用以记录该第一区块于该第一超级区块中的位置资讯以及该第二区块的编号资讯。
图3显示了根据本发明一实施例所述的数据储存方法的流程图。在步骤S300,控制器120判断判断是否有第一超级区块中的第一区块发生损毁。如果没有损毁,则回到步骤S300。如果有损毁,则执行步骤S302,控制器120将第二超级区块中对应第一区块的位置的正常的第二区块合并到该第一超级区块以取代第一区块。
然后,在步骤S304,控制器120判断第一超级区块中损毁的第一区块的数量是否大于第一超级区块的全部区块的一半数量。如果损毁区块的数量没有大于全部区块的一半数量,则执行步骤S306,控制器120使用压缩表格记录第一区块于第一超级区块中的位置资讯以及第二区块的编号资讯。如果损毁区块的数量大于全部区块的一半数量,则执行步骤S308,控制器120使用非压缩表格记录第一超级区块的每一位置资讯及其对应区块的编号资讯。
图4A~4C显示子根据本发明一实施例所述的数据储存方法的流程图。在步骤S400,控制器120判断判断是否有多个第一超级区块中的至少一第一区块发生损毁。如果没有损毁,则回到步骤S400。如果有损毁,则执行步骤S402,控制器120比较这些第一超级区块发生损毁的第一区块的数量。在步骤S404,控制器120判断第二超级区块中对应该损毁区块的位置的第二区块是否为正常。如果第二区块为正常区块,则执行步骤S406,控制器120优先将第二超级区块的第二区块合并到损毁之该第一区块数量最少的第一超级区块以取代其第一区块。
此外,如果第二区块为损毁区块,则执行步骤S408,控制器120判断是否能合并多个第二超级区块的多个第二区块至该第一超级区块以取代其第一区块。如果能,则执行步骤S414,控制器120合并多个第二超级区块的多个第二区块至该第一超级区块以取代其第一区块。如果不能,则执行步骤S410,控制器120将第二超级区块分割为第一子超级区块以及第二子超级区块。然后执行步骤S412,控制器120将第一子超级区块的第二区块合并到第一超级区块以取代这些一区块,并且保留第二子超级区块以进行其他合并。
然后,在步骤S416,控制器120判断第三超级区块的第三区块是否发生损毁。如果没有损毁,则回到步骤S416。如果发生损毁,则执行步骤S418,控制器120判断第二子超级区块中对应该损毁区块的位置的一第四区块是否为正常,并且第二子超级区块的正常区块的数量大于第三区块的数量。如果否,则回到步骤S418;如果是,则执行步骤S420,控制器120将第二子超级区块分割为第三子超级区块以及第四子超级区块。
然后,执行步骤S422,控制器120判断第四子超级区块中对应该损毁区块的位置的一第五区块是否为正常。如果第五区块不是正常区块,则回到步骤S422;如果第五区块为正常区块,则执行步骤S424,控制器120将第四子超级区块的第五区块合并到该第三超级区块以取代该第三区块。
本发明的方法,或特定型态或其部份,可以以程序码的型态存在。程序码可储存于实体媒体,如软碟、光碟片、硬碟、或是任何其他机器可读取(如电脑可读取) 储存媒体,亦或不限于外在形式的电脑程序产品,其中,当程序码被机器,如电脑载入且执行时,此机器变成用以参与本发明的装置。程序码也可透过一些传送媒体,如电线或电缆、光纤、或是任何传输型态进行传送,其中,当程序码被机器,如电脑接收、载入且执行时,此机器变成用以参与本发明的装置。当在一般用途处理单元实作时,程序码结合处理单元提供一操作类似于应用特定逻辑电路的独特装置。
在本说明书以及申请专利范围中的序数,例如“第一”、“第二”、“第三”等等,彼此之间并没有顺序上的先后关系,其仅用于标示区分两个具有相同名字的不同元件。本发明说明书中“耦接”一词泛指各种直接或间接的电性连接方式。本发明虽以较佳实施例揭示如上,然其并非用以限定本发明的范围,任何熟悉本技术领域者,在不脱离本发明的精神和范围内,当可做些许的更动与润饰,因此本发明的保护范围当由权利要求书界定为准。
Claims (16)
1.一种数据储存装置,包括:
一快闪存储器,包括多个储存矩阵(plane),其中这些储存矩阵的每一者包括多个区块(block),并且该每一储存矩阵的一部分区块组合成一超级区块(super block),使得该快闪存储器包括多个超级区块;
一控制器,耦接该快闪存储器,用以当这些超级区块中的至少一第一超级区块中的至少一第一区块发生损毁,并且这些超级区块中的至少一第二超级区块中对应该损毁区块的位置之至少一第二区块为正常时,将该第二超级区块的该第二区块合并到该第一超级区块以取代该第一区块;以及
一随机存取存储器,储存一压缩表格用以记录该第一区块于该第一超级区块中的位置资讯以及该第二区块的编号资讯,
其中该控制器判断该第一超级区块中损毁的该第一区块的数量是否大于该第一超级区块的全部区块的一半数量,
其中当该第一超级区块中发生损毁的该第一区块的数量未大于该第一超级区块的全部区块的一半数量时,该随机存取存储器使用该压缩表格来进行记录,当该第一超级区块中发生损毁的区块的数量大于该第一超级区块的全部区块的一半数量时,该随机存取存储器使用一非压缩表格来进行记录。
2.如权利要求1所述的数据储存装置,其特征在于,当该第一区块没有成功写入一数据、或是该第一区块没有成功进行抹除操作时,则该控制器判断该第一区块为损毁。
3.如权利要求1所述的数据储存装置,其特征在于,该非压缩表格记录该第一超级区块的每一位置资讯及其对应区块的编号资讯。
4.如权利要求1所述的数据储存装置,其特征在于,当这些超级区块中的这些第一超级区块具有至少一损毁的该第一区块时,该控制器比较这些第一超级区块发生损毁的该第一区块的数量,并且优先将该第二超级区块的该第二区块合并到损毁的该第一区块数量较少的该第一超级区块以取代该第一区块。
5.如权利要求1所述的数据储存装置,其特征在于,该控制器判断该第一超级区块具有多个损毁的第一区块,并且这些超级区块中的多个第二超级区块中对应这些第一区块的位置的多个第二区块为正常时,该控制器将这些第二超级区块的这些第二区块合并到该第一超级区块以取代这些第一区块。
6.如权利要求1所述的数据储存装置,其特征在于,当该第一超级区块中的该第一区块发生损毁,该第二超级区块中对应该损毁区块的位置的该第二区块为正常,并且该第二超级区块的正常区块的数量大于该第一区块的数量时,该控制器将该第二超级区块分割为第一子超级区块以及第二子超级区块,并且将该第一子超级区块的该第二区块合并到该第一超级区块以取代这些一区块。
7.如权利要求6所述的数据储存装置,其特征在于,当这些超级区块中的第三超级区块的第三区块发生损毁,并且该第二子超级区块中对应该损毁区块的位置的一第四区块为正常时,该控制器将该第二子超级区块的该第四区块合并到该第三超级区块以取代该第三区块。
8.如权利要求6所述的数据储存装置,其特征在于,当这些超级区块中的第三超级区块的第三区块发生损毁,该第二子超级区块中对应该损毁区块的位置的一第四区块为正常,并且该第二子超级区块的正常区块的数量大于该第三区块的数量时,该控制器将该第二子超级区块分割为第三子超级区块以及第四子超级区块,并且当该第四子超级区块中对应该损毁区块的位置的一第五区块为正常时,将该第四子超级区块的一第五区块合并到该第三超级区块以取代该第三区块。
9.一种用于优化数据储存装置的数据储存方法,该数据储存装置具有一快闪存储器、一控制器以及一随机存取存储器,其中该快闪存储器包括多个储存矩阵(plane),并且这些储存矩阵的每一者包括多个区块(block),该数据储存方法包括:
将该每一储存矩阵的一部分区块组合成一超级区块(super block),使得该快闪存储器包括多个超级区块;
当这些超级区块中的至少一第一超级区块中的至少一第一区块发生损毁,并且这些超级区块中的至少一第二超级区块中对应该损毁区块的位置的至少一第二区块为正常时,将该第二超级区块的该第二区块合并到该第一超级区块以取代该第一区块;
储存一压缩表格用以记录该第一区块于该第一超级区块中的位置资讯以及该第二区块的编号资讯
判断该第一超级区块中损毁的该第一区块的数量是否大于该第一超级区块的全部区块的一半数量;
当该第一超级区块中发生损毁的该第一区块的数量未大于该第一超级区块的全部区块的一半数量时,使用该压缩表格来进行记录;以及
当该第一超级区块中发生损毁的区块的数量大于该第一超级区块的全部区块的一半数量时,使用一非压缩表格来进行记录。
10.如权利要求9所述的用于优化数据储存装置的数据储存方法,其特征在于,当该第一区块没有成功写入一数据、或是该第一区块没有成功进行抹除操作时,则判断该第一区块为损毁。
11.如权利要求9所述的用于优化数据储存装置的数据储存方法,其特征在于,该非压缩表格记录该第一超级区块的每一位置资讯及其对应区块的编号资讯。
12.如权利要求9所述的用于优化数据储存装置的数据储存方法,其特征在于,当这些超级区块中的多个第一超级区块具有至少一损毁的该第一区块时,比较这些第一超级区块发生损毁的该第一区块的数量,并且优先将该第二超级区块的该第二区块合并到损毁的该第一区块数量较少的该第一超级区块以取代该第一区块。
13.如权利要求9所述的用于优化数据储存装置的数据储存方法,其特征在于,还包括当判断该第一超级区块具有多个损毁的第一区块,并且这些超级区块中的多个第二超级区块中对应这些第一区块的位置的多个第二区块为正常时,将这些第二超级区块的这些第二区块合并到该第一超级区块以取代这些第一区块。
14.如权利要求9所述的用于优化数据储存装置的数据储存方法,其特征在于,当该第一超级区块中的该第一区块发生损毁,该第二超级区块中对应该损毁区块的位置的该第二区块为正常,并且该第二超级区块的正常区块的数量大于该第一区块的数量时,将该第二超级区块分割为第一子超级区块以及第二子超级区块,将该第一子超级区块的该第二区块合并到该第一超级区块以取代这些一区块。
15.如权利要求14所述的用于优化数据储存装置的数据储存方法,其特征在于,当这些超级区块中的第三超级区块的第三区块发生损毁,并且该第二子超级区块中对应该损毁区块的位置的一第四区块为正常时,将该第二子超级区块的该第四区块合并到该第三超级区块以取代该第三区块。
16.如权利要求14所述的用于优化数据储存装置的数据储存方法,其特征在于,当这些超级区块中的第三超级区块的第三区块发生损毁,以及该第二子超级区块中对应该损毁区块的位置的一第四区块为正常,并且该第二子超级区块的正常区块的数量大于该第三区块的数量时,将该第二子超级区块分割为第三子超级区块以及第四子超级区块,并且当该第四子超级区块中对应该损毁区块的位置的一第五区块为正常时,将该第四子超级区块的该第五区块合并到该第三超级区块以取代该第三区块。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106129148A TWI617917B (zh) | 2017-08-28 | 2017-08-28 | 用以優化資料儲存裝置之資料儲存方法及其資料儲存裝置 |
TW106129148 | 2017-08-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109426447A CN109426447A (zh) | 2019-03-05 |
CN109426447B true CN109426447B (zh) | 2021-11-16 |
Family
ID=62189070
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810431333.8A Active CN109426447B (zh) | 2017-08-28 | 2018-05-08 | 用以优化数据储存装置的数据储存方法及其数据储存装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10776228B2 (zh) |
CN (1) | CN109426447B (zh) |
TW (1) | TWI617917B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190073125A (ko) * | 2017-12-18 | 2019-06-26 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 이의 동작 방법 |
CN111651371B (zh) * | 2019-03-04 | 2023-06-16 | 慧荣科技股份有限公司 | 非对称型平面管理方法以及数据存储装置及其控制器 |
CN113220508B (zh) * | 2021-05-08 | 2022-09-23 | 联芸科技(杭州)股份有限公司 | 存储器块的管理方法、存储器的写操作方法以及存储器 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200823925A (en) * | 2006-08-28 | 2008-06-01 | Sandisk Il Ltd | Logical super block mapping for NAND flash memory |
US8072788B1 (en) * | 2000-05-17 | 2011-12-06 | Marvell International Ltd. | Flash memory module |
CN102341792A (zh) * | 2009-03-04 | 2012-02-01 | 美光科技公司 | 存储器块管理 |
CN104142875A (zh) * | 2014-08-12 | 2014-11-12 | 浪潮电子信息产业股份有限公司 | 一种raid6数据坏块处理的方法 |
CN105095026A (zh) * | 2015-08-31 | 2015-11-25 | 小米科技有限责任公司 | Ext文件系统的超级块修复方法和装置、智能设备 |
CN105740163A (zh) * | 2016-01-29 | 2016-07-06 | 山东鲁能智能技术有限公司 | 一种Nand Flash坏块管理方法 |
TW201626230A (zh) * | 2015-01-06 | 2016-07-16 | 國立臺灣科技大學 | 利用快閃記憶體的壞頁來存取資料的方法 |
CN107077303A (zh) * | 2014-12-22 | 2017-08-18 | 英特尔公司 | 分配和配置持久存储器 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050144516A1 (en) * | 2003-12-30 | 2005-06-30 | Gonzalez Carlos J. | Adaptive deterministic grouping of blocks into multi-block units |
TWI425357B (zh) * | 2010-09-27 | 2014-02-01 | Silicon Motion Inc | 用來進行區塊管理之方法以及記憶裝置及控制器 |
US9239781B2 (en) * | 2012-02-07 | 2016-01-19 | SMART Storage Systems, Inc. | Storage control system with erase block mechanism and method of operation thereof |
US9811413B2 (en) * | 2014-07-30 | 2017-11-07 | Apple Inc. | Orphan block management in non-volatile memory devices |
KR20180047329A (ko) * | 2016-10-31 | 2018-05-10 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
KR102645572B1 (ko) * | 2016-11-29 | 2024-03-11 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그의 동작 방법 |
US10824371B2 (en) * | 2017-06-19 | 2020-11-03 | Micron Technology, Inc. | Managed NAND data compression |
KR102420025B1 (ko) * | 2017-06-19 | 2022-07-13 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
US10340016B2 (en) * | 2017-06-26 | 2019-07-02 | Micron Technology, Inc. | Methods of error-based read disturb mitigation and memory devices utilizing the same |
-
2017
- 2017-08-28 TW TW106129148A patent/TWI617917B/zh active
-
2018
- 2018-05-08 CN CN201810431333.8A patent/CN109426447B/zh active Active
- 2018-06-22 US US16/016,089 patent/US10776228B2/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8072788B1 (en) * | 2000-05-17 | 2011-12-06 | Marvell International Ltd. | Flash memory module |
TW200823925A (en) * | 2006-08-28 | 2008-06-01 | Sandisk Il Ltd | Logical super block mapping for NAND flash memory |
CN102341792A (zh) * | 2009-03-04 | 2012-02-01 | 美光科技公司 | 存储器块管理 |
CN104142875A (zh) * | 2014-08-12 | 2014-11-12 | 浪潮电子信息产业股份有限公司 | 一种raid6数据坏块处理的方法 |
CN107077303A (zh) * | 2014-12-22 | 2017-08-18 | 英特尔公司 | 分配和配置持久存储器 |
TW201626230A (zh) * | 2015-01-06 | 2016-07-16 | 國立臺灣科技大學 | 利用快閃記憶體的壞頁來存取資料的方法 |
CN105095026A (zh) * | 2015-08-31 | 2015-11-25 | 小米科技有限责任公司 | Ext文件系统的超级块修复方法和装置、智能设备 |
CN105740163A (zh) * | 2016-01-29 | 2016-07-06 | 山东鲁能智能技术有限公司 | 一种Nand Flash坏块管理方法 |
Also Published As
Publication number | Publication date |
---|---|
US20190065332A1 (en) | 2019-02-28 |
TWI617917B (zh) | 2018-03-11 |
TW201913376A (zh) | 2019-04-01 |
US10776228B2 (en) | 2020-09-15 |
CN109426447A (zh) | 2019-03-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8892814B2 (en) | Data storing method, and memory controller and memory storage apparatus using the same | |
US9043536B2 (en) | Method of recording mapping information, and memory controller and memory storage apparatus using the same | |
US20180260317A1 (en) | Method for managing the copying and storing of data in garbage collection, memory storage device and memory control circuit unit using the same | |
US9280460B2 (en) | Data writing method, memory control circuit unit and memory storage apparatus | |
US9880742B2 (en) | Valid data merging method, memory controller and memory storage apparatus | |
US9122498B2 (en) | Firmware code loading method, memory controller and memory storage apparatus | |
US10754585B2 (en) | Method for performing writing management in a memory device, and associated memory device and controller thereof | |
US9058256B2 (en) | Data writing method, memory controller and memory storage apparatus | |
US9141530B2 (en) | Data writing method, memory controller and memory storage device | |
CN109426447B (zh) | 用以优化数据储存装置的数据储存方法及其数据储存装置 | |
US9619380B2 (en) | Data writing method, memory control circuit unit and memory storage apparatus | |
CN109426581B (zh) | 用以检测数据储存装置的数据储存方法及其数据储存装置 | |
CN104423888A (zh) | 数据写入方法、存储器控制电路单元与存储器存储装置 | |
CN107544922B (zh) | 数据写入方法、存储器控制电路单元及存储器存储装置 | |
US20170052704A1 (en) | Memory management method, memory control circuit unit and memory storage device | |
US9430327B2 (en) | Data access method, memory control circuit unit and memory storage apparatus | |
US9037781B2 (en) | Method for managing buffer memory, memory controllor, and memory storage device | |
CN107045423B (zh) | 存储器装置及其数据存取方法 | |
CN103678162B (zh) | 系统数据储存方法、存储器控制器与存储器储存装置 | |
US9778862B2 (en) | Data storing method for preventing data losing during flush operation, memory control circuit unit and memory storage apparatus | |
CN109426445B (zh) | 用以优化数据储存装置的数据储存方法及其数据储存装置 | |
US20140089566A1 (en) | Data storing method, and memory controller and memory storage apparatus using the same | |
US11347433B2 (en) | Method for performing sudden power off recovery management, associated memory device and controller thereof, and associated electronic device | |
US20110087828A1 (en) | Method for enhancing performance of accessing a flash memory, and associated memory device and controller thereof | |
US9600363B2 (en) | Data accessing method, memory controlling circuit unit and memory storage apparatus |
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 |