CN109426441A - 数据储存装置以及其操作方法 - Google Patents
数据储存装置以及其操作方法 Download PDFInfo
- Publication number
- CN109426441A CN109426441A CN201810007193.1A CN201810007193A CN109426441A CN 109426441 A CN109426441 A CN 109426441A CN 201810007193 A CN201810007193 A CN 201810007193A CN 109426441 A CN109426441 A CN 109426441A
- Authority
- CN
- China
- Prior art keywords
- page
- data
- super
- pages
- write
- 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.)
- Granted
Links
- 238000013500 data storage Methods 0.000 title claims abstract description 35
- 238000000034 method Methods 0.000 title claims abstract description 32
- 241001269238 Data Species 0.000 claims description 23
- 230000008439 repair process Effects 0.000 claims description 10
- 238000012360 testing method Methods 0.000 claims description 5
- 238000003860 storage Methods 0.000 description 30
- 238000010586 diagram Methods 0.000 description 6
- 238000012795 verification Methods 0.000 description 5
- 238000012546 transfer Methods 0.000 description 4
- 230000007717 exclusion Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000005621 ferroelectricity Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000011017 operating method Methods 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000011084 recovery 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/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
- 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/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/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- 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
- G06F12/0877—Cache access modes
- G06F12/0882—Page mode
-
- 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/0608—Saving storage space on storage systems
-
- 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/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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明涉及一种数据储存装置以及其操作方法,包括一快闪存储器、一控制器以及一随机存取存储器。快闪存储器包括多个区块。上述区块的每一者包括多个页面。控制器将这些区块的这些页面配置为多个超级页面,其中这些超级页面区分成多第一页面以及多第二页面。控制器将至少一笔超级页面数据写入其中之一这些第一页面,依据至少一笔该超级页面数据产生一个校验码,以及储存该校验码至该随机存取存储器。
Description
技术领域
本发明有关于数据储存装置与数据储存方法,特别有关于利用校验码修复数据,以节省储存空间的数据储存装置与数据储存方法。
背景技术
数据储存装置所采用的非挥发式存储器有多种形式─例如,快闪存储器(flashmemory)、磁阻式挥发性存储器(Magnetoresistive RAM)、铁电挥发性存储器(Ferroelectric RAM)、电阻式挥发性存储器(Resistive RAM)、自旋转移力矩挥发性存储器(Spin Transfer Torque-RAM,STT-RAM)…等,用于长时间数据保存。
数据储存装置的效能受限于非挥发式存储器的操作特性。本领域一项重要议题为提升数据储存装置的效能。
发明内容
本发明揭示一种数据储存装置,用以储存修复数据的校验码,而不是储存页面的数据。由于校验码所需的储存空间较小,因此能够有效节省数据储存装置的储存空间,并且增进数据存取的效率。再者,因为数据储存装置所储存的校验码的数量是固定的,即使写入数据储存装置的数据增加,也不会增加储存校验码所需要的储存空间。此外,本发明更使用指标或是计数值对校验码进行动态管理,以提升数据处理的效能。
本发明提供一种数据储存装置,包括一快闪存储器、一控制器以及一随机存取存储器。快闪存储器包括多个区块(block)。上述区块的每一者包括多个页面(page)。该控制器将这些区块的这些页面配置为多个超级页面,其中这些超级页面区分成多第一页面以及多第二页面。该控制器将至少一笔超级页面数据写入其中之一这些第一页面,依据至少一笔该超级页面数据产生一个校验码,以及储存该校验码至该随机存取存储器。
本发明提供一种数据储存装置耦接一主机,该数据储存装置包括一快闪存储器、一控制器以及一随机存取存储器。快闪存储器包括多个区块(block)。上述区块的每一者包括多个页面(page)。该主机将这些区块的这些页面配置为多个超级页面,其中这些超级页面区分成多第一页面以及多第二页面。该主机输入至少一笔超级页面数据至该数据储存装置,依据至少一笔该超级页面数据产生一个校验码,以及储存该校验码至该随机存取存储器。
本发明提供一种数据储存方法,应用于一数据储存装置,该数据储存装置包括一快闪存储器、一控制器以及一随机存取存储器。快闪存储器包括多个区块,这些区块的每一者包括多个页面。数据储存方法包括:将这些区块的这些页面配置为多个超级页面,其中这些超级页面区分成多第一页面以及多第二页面;将至少一笔超级页面数据写入其中之一这些第一页面;依据至少一笔该超级页面数据产生一个校验码;以及储存该校验码至该随机存取存储器。
本发明提供一种数据储存方法,应用于一数据储存装置以及一主机,该数据储存装置包括一快闪存储器、一控制器以及一随机存取存储器。快闪存储器包括多个区块,这些区块的每一者包括多个页面。数据储存方法包括:将这些区块的这些页面配置为多个超级页面,其中这些超级页面区分成多第一页面以及多第二页面;输入至少一笔超级页面数据至该数据储存装置;依据至少一笔该超级页面数据产生一个校验码;以及储存该校验码至该随机存取存储器。
下文特举实施例,并配合附图,详细说明本发明内容。
附图说明
图1是根据本发明一种实施例所述的数据储存装置与主机的示意图;
图2是根据本发明一种实施例所述的超级页面的示意图;
图3是显示根据本发明一实施例所述的写入查找表的示意图;
图4是根据本发明一种实施例所述的超级页面与校验码的示意图;
图5是显示根据本发明一实施例所述的数据储存方法之流程图;
图6是显示根据本发明另一实施例所述的数据储存方法的流程图;
图7是显示根据本发明另一实施例所述的数据储存方法的流程图。
符号说明
100~数据储存装置;
120~控制器;
140~快闪存储器;
160-16N~储存单元;
160_A、160_Z…16N_A、16N_Z、BLK~区块;
160_A_1、160_ZX…16N_A1、16N_ZX、P#0、P#1…P#15~页面;
180~随机存取存储器;
200~主机;
PC#0、PC#1…PC#27~校验码;
P#0、P#1…P#767~页面;
SP#0、SP#1…SP#767~超级页面;
S502…S718~步骤。
具体实施方式
为让本发明的目的、特征和优点能更明显易懂,下文特举出本发明的具体实施例,并配合附图,作详细说明如下。目的在于说明本发明的精神而非用以限定本发明的保护范围,应理解下列实施例可经由软件、硬件、固件、或上述任意组合来实现。
图1是显示根据本发明一实施例所述的数据储存装置100与主机200的示意图。在一实施例中,数据储存装置100包括控制器120、非挥发性存储器以及随机存取存储器(RAM)180。数据储存装置100耦接主机200以传送数据与指令、或是接收数据与指令。数据储存装置100与主机200之间的通信协定系符合嵌入式快闪存储器模组(eMMC)规范、通用快闪存储器(UFS)、NVMe、SD或SATA规范。非挥发式存储器可以是快闪存储器(Flash Memory)、磁阻式挥发性存储器(Magnetoresistive RAM)、铁电挥发性存储器(Ferroelectric RAM)、电阻式存储器(Resistive RAM,RRAM)、自旋转移力矩挥发性存储器(Spin Transfer Torque-RAM,STT-RAM)…等具有长时间数据保存之存储器装置。以下特别以快闪存储器(Flash Memory)140为例进行讨论。
如图1所示,控制器120耦接快闪存储器140以及随机存取存储器180。随机存取存储器180用以暂存以及预取控制器120所需的数据,或是用以暂存主机200要写入快闪存储器140的数据,以加快数据储存装置100的存取时间。随机存取存储器180较佳是SRAM,也可以是DRAM。
控制器120耦接快闪存储器140以相互传送数据与指令或接收数据与指令。在一实施例中,控制器120与快闪存储器140之间具有4个通道(亦即CH0~CH3)以传输数据或指令。进一步而言,控制器120可包括具有固件码的一微控制器以及唯读存储器(ROM),并且微控制器执行固件码以操作或是存取快闪存储器140。
快闪存储器140包括多个储存单元160~16N所形成的储存矩阵。举例而言,快闪存储器140具有4个储存单元160~163所形成的储存矩阵。在一实施例中,每个储存单元包括一个以上的模块(Die),并且每个模块包括一个以上的平面(Plane),每个平面包括多个区块(Blocks)160_A~16N_Z,每个包括多个页面。在一实施例中,将每个平面的一个区块组合成一超级区块(Super Block),使得快闪存储器140包括多个超级区块,每一超级区块包括多个超级页面。由于页面与超级页面的运作原理类似,在下述的说明中两者将交替使用以简化说明,但不以此为限。
如图1所示,储存单元160包括区块160_A~160_Z;储存单元16N包括区块16N_A~16N_Z,Z例如是2048。对于储存单元160而言,区块160_A~160_Z中的每一者还包括多个页面160_A_1~16N_Z_X,X例如是768,每一页面160_A_1~16N_Z_X的数据储存量例如是16KB,一个页面数据例如是4笔4KB大小的数据。控制器120在对快闪存储器140执行写入动作时,是以页面为最小数据写入单位来执行数据写入的动作,其中,页面是由字元线所控制。
对于快闪存储器140而言,每一区块160_A~16N_Z的每一页面160_A_1~16N_Z_X皆具有不同的实体地址。当数据储存装置100执行一数据写入运作时,控制器120决定快闪存储器140的一实体地址以写入数据。此外,控制器120则分别将上述实体地址对应至数据的逻辑地址,并依此建立了对照表H2F。因此,对于主机200而言,主机200藉由逻辑地址,来读取数据储存装置100的数据,控制器120藉由对照表H2F得知实体地址,并提供实体地址所储存的数据至主机200。
图2是根据本发明一种实施例所述的超级页面的示意图。如图2所示,快闪存储器140包括4个储存单元160~163,储存单元160~163分别包括区块160_A~163_A,控制器120可将区块160_A~163_A组成超级区块。区块160_A~163_A分别具有768个页面,即页面P#0~P#767。控制器120可将区块160_A~163_A中相同编号的页面组成超级页面,分别是超级页面SP#0~SP#767,可分别储存大小为64KB的超级页面数据。其中,储存单元160~163较佳置于不同的通道上,也可以平均地置于二个通道上。
由于区块160_A~163_A中有些页面可能无法正常操作,因此,控制器120亦可将区块160_A~163_A中不同编号但相同的写入顺序的页面组成超级页面,也由于有些页面可能无法正常操作而予以遮蔽,因此,超级页面的总数可能小于767。
快闪存储器140可为三阶储存单元(Triple-Level Cell,TLC)结构,则页面P#0~P#2可由字元线WL#0所控制,即一条字元线可以控制三个页面的操作,并以此类推。其中,页面P#0称为下页面(Lower Page),页面P#1~P#2称为上页面(Upper Page)。另外,快闪存储器140亦可为四阶储存单元(Quadruple-Level Cell,QLC)结构,则页面P#0~P#3可由相同的字元线所控制,即一条字元线可以控制四个页面的操作,并以此类推。其中,页面P#0~1称为下页面,页面P#2~P#3称为上页面,也可以是页面P#0称为下页面,页面P#1~P#3称为上页面。在下述说明中,将以TLC为例进行说明,并不以此为限。
针对同一字元线所控制的页面,控制器120较佳以二阶段(Two-Pass)写入方式将页面数据写入至快闪存储器140中,即第一阶段先将页面数据写入至下页面,第二阶段再将页面数据写入至上页面。或者,第一阶段先将页面数据写入至下页面,第二阶段先参考下页面的页面数据,再将页面数据写入至上页面。由于下页面及上页面所包括的页面数据数量大于等于一,所以,将页面数据写入至下页面或上页面表示将大于等于一笔页面数据写入至下页面或上页面。
依据快闪存储器140的运作特性,数据写入的顺序较佳与页面的编号顺序无关,乃依据写入查找表或判断式进行判断。以图3的写入查找表为例,页面数据先依序写入至页面P#0、P#3、P#6、P#9、P#12、P#15、P#18、P#21、P#24、P#27(下页面)后,再将二笔页面数据写入页面P#1~P#2(上页面),然后,再交错地写入页面数据至下页面及上页面,依此类推。如果是超级页面的话,则超级页面数据先依序写入至超级页面SP#0、SP#3、SP#6、SP#9、SP#12、SP#15、SP#18、SP#21、SP#24、SP#27(下页面)后,再将二笔超级页面数据写入超级页面SP#1~SP#2(上页面),然后,再交错地写入超级页面数据至下页面及上页面,依此类推。
如果超级页面数据写入上页面时发生了写入失败,这会造成下页面所储存的超级页面数据遗失或毁损。为了确保数据储存的正确性与可靠度,控制器120会将每个下页面所储存的超级页面数据备份至随机存取存储器180,以作为数据备份或修复之用,直到下页面与上页面的写入操作完成无误后,再予以删除。然而,当下页面与上页面的写入差距愈大,即同一字元线所控制的下页面的写入操作到上页面的写入操作,两者之间所进行的下页面的写入操作的次数愈大,控制器120需储存愈多超级页面数据至随机存取存储器180。以图3的写入查找表为例,写入差距(最大值)为10,则控制器120需储存10笔下页面的超级页面数据至随机存取存储器180。这些超级页面数据将占用随机存取存储器180许多数据储存空间。另外,针对目前写入的一笔或多笔超级页面,在写入动作尚未确定成功之前,一律将超级页面储存至随机存取存储器180。
为了解决上述问题,本发明乃在控制器120内建互斥或闸(Exclusive OR Gate,XOR Gate),并以多页面或超级页面为一个校验单位,产生此校验单位所储存的超级页面数据的校验码(Parity Code,PC),并将校验码储存至随机存取存储器180,至于校验单位的超级页面数据,则不储存至随机存取存储器180。控制器120较佳储存下页面的超级页面数据之校验码至随机存取存储器180,储存上页面的超级页面数据至随机存取存储器180。在其他实施例中,由于控制器120并无内建互斥或闸,或不利用控制器120内建互斥或闸,此时,校验单位的超级页面数据的校验码乃由外部装置,例如主机200,所提供。
此校验码较佳采用容错式闪存阵列(RAID,Redundant Array Of IndependentDisk)的配置,例如:RAID 5的配置,但本发明并不加以限制。如图3所示,控制器120分别对超级页面SP#0的超级页面数据进行运算以得到校验码PC#0,并将校验码PC#0储存至随机存取存储器180,以此类推。由于随机存取存储器180仅储存超级页面SP#0中的页面数据的校验码PC#0,而非超级页面SP#0中的页面数据,因此,本发明可节省大约四分之三的随机存取存储器180的数据储存空间。在其他实施例中,上述校验码PC#0储存于快闪存储器140。
在图4的实施例中,假设快闪存储器140为TLC结构,校验单位为一个超级页面,而1个超级页面包含4个页面以储存一笔超级页面数据,并采用二阶段写入操作以分别写入超级页面数据至下页面及上页面,写入差距值为10,依据写入查找表或判断式,控制器120分别写入1笔超级页面数据至超级页面SP#0、SP#3、SP#6、SP#9、SP#12、SP#15、SP#18、SP#21、SP#24、SP#27(下页面),并将超级页面数据的校验码PC#0、PC#3、PC#6、PC#9、PC#12、PC#15、PC#18、PC#21、PC#24、PC#27储存至随机存取存储器180;接着,写入2笔超级页面数据至超级页面SP#1~SP#2(上页面),依此类推。
于写入差距值为10,所以随机存取存储器180仅储存10个校验码。控制器120使用一指标指向随机存取存储器180的地址,以储存校验码,或是利用指向的校验码进行数据修复。例如,当超级页面数据写入上页面时,控制器120也利用指标再度指向其中之一校验码的地址,以取得数据修复(Recovery)所需的校验码。例如:控制器120写入1笔超级页面数据至超级页面SP#0时,指标指向随机存取存储器180的地址#0以储存校验码PC#0。控制器120写入1笔超级页面数据至超级页面SP#3时,指标指向随机存取存储器180的地址#1以储存校验码PC#3。当控制器120写入2笔超级页面数据至超级页面SP#1~SP#2时,指标指向随机存取存储器180的地址#0,以取得数据修复所需的校验码PC#0,以此类推。
如果控制器120写入2笔超级页面数据至超级页面SP#1~SP#2时区块160_A的页面P#1~2发生写入失败,这将导致超级页面SP#0中区块160_A的页面P#0的页面数据损毁或遗失。此时,控制器120读取区块160_A、161_A、162_A、163_A的页面P#0的4笔页面数据,由于指标指向随机存取存储器180的地址#0,所以控制器120可以取得储存于随机存取存储器180的校验码PC#0。将区块160_A、161_A、162_A、163_A的页面P#0的4笔页面数据以及校验码PC#0计算后,控制器120可取得区块160_A的页面P#0的页面数据,即修复后的区块160_A的页面P#0的页面数据。接着,控制器120启动错误管理程序,对区块160_A的页面P#0执行数据再写入;或者,将超级页面SP#0的超级页面数据写入另一超级页面,例如,超级页面SP#30;或者,将此超级区块关闭,将超级页面SP#0的超级页面数据写入另一超级区块的超级页面SP#0中。针对应写入超级页面SP#1~SP#2的2笔超级页面数据,执行数据再写入;或者,将超级页面SP#1~SP#2的2笔超级页面数据写入其他超级页面,例如超级页面SP#30(下页面)以及超级页面SP#4(上页面);或者,将此超级区块关闭,将超级页面SP#1~SP#2的2笔超级页面数据写入另一超级区块的超级页面SP#0及SP#3中。另外,控制器120也可以仅读取区块161_A、162_A、163_A的页面P#0的3笔页面数据以及的校验码PC#0而达到修复区块160_A的页面P#0的页面数据的目的。
由上述中可知,如果超级页面中发生了一笔页面数据毁损时,藉由读取超级页面的其他笔页面数据以及指标所指向的校验码即可修复毁损的页面数据,达到数据修复的目的。
另外,上述指标亦可使用一计数值来代表,其中计数值等于写入差距值。当超级页面数据(下页面)完成写入后,则计数值递增1。当计数值累积到10之后,则重设为0。控制器120仅需知道校验码在随机存取存储器180的起始地址、校验码的大小以及计数值的值,即可知得所需校验码的地址以取得所需校验码。目前藉由本发明所提出之指标或计数方法,控制器120能够清楚得知校验码应该储存的地址,或从哪个地址可以取得所需的校验码以便进行数据修复。
图5是显示根据本发明一实施例所述的数据储存方法的流程图。步骤S502:控制器120将多超级页面区分成多下页面以及多上页面,其中,超级页面置于超级区块中;超级页面是由单一或多区块的页面所组成;下页面和上页面由区块(超级区块)的同一字元线所控制;下页面所储存的页面数据的数目小于或等于上页面所储存的页面数据的数目。
步骤S504:控制器120写入超级页面数据至其中的一下页面。控制器120依据写入查找表或判断式而决定应将超级页面数据写入至哪一个超级页面(下页面)。例如,写入顺序为超级页面SP#0、SP#3、SP#6、SP#9、SP#12、SP#15、SP#18、SP#21、SP#24、SP#27(下页面)。
步骤S506:控制器120将超级页面数据的校验码储存至随机存取存储器180。控制器120将超级页面SP#0的超级页面数据的校验码PC#0储存至指标所指向的随机存取存储器180的地址,例如地址#0。
步骤S508:控制器120判断是否写入超级页面数据至上页面。控制器120依据写入查找表或判断式而决定是否写入数据上页面,例如,超级页面数据写入至超级页面SP#27之后,接着应写入超级页面数据至超级页面SP#1-SP#2。
步骤S510:控制器120写入超级页面数据至其中的一上页面。控制器120依据写入查找表或判断式而决定应将页面数据写入至哪一个上页面,例如,应将2笔超级页面数据写入至超级页面SP#1~2。
步骤S512:控制器120判断写入是否成功,如果成功则执行步骤S518,不成功则执行步骤S514。
步骤S514:控制器120依据下页面所储存的页面数据以及校验码执行数据修复。假设控制器120写入2笔超级页面数据至超级页面SP#1~SP#2时区块160_A的页面P#1~P#2发生了写入失败,这将导致超级页面SP#0中区块160_A的页面P#0的页面数据损毁或遗失。此时,控制器120读取区块160_A、161_A、162_A、163_A的页面P#0的4笔页面数据。由于指标指向随机存取存储器180的地址#0,所以控制器120可以取得储存于随机存取存储器180的校验码PC#0。将区块160_A、161_A、162_A、163_A的页面P#0的4笔页面数据以及校验码PC#0计算后,控制器120可取得区块160_A的页面P#0的页面数据,即修复后的区块160_A的页面P#0的页面数据。
步骤S516:控制器120启动错误管理程序。控制器120对区块160_A的页面P#0执行数据再写入;或者,将超级页面SP#0的超级页面数据写入另一超级页面;或者,将此超级区块关闭,将超级页面SP#0的超级页面数据写入另一超级区块的超级页面SP#0中。针对超级页面SP#1~SP#2的2笔超级页面数据,执行数据再写入;或者,将超级页面SP#1~SP#2的2笔超级页面数据写入其他超级页面,例如超级页面SP#30(下页面)以及超级页面SP#4(上页面);或者,将此超级区块关闭,将超级页面SP#1~SP#2的2笔超级页面数据写入另一超级区块的超级页面SP#0及#SP#3中。
步骤S518:控制器120判断是否写入超级页面数据至下页面。控制器120依据写入查找表或判断式而决定是否写入数据下页面,例如,超级页面数据写入至超级页面SP#1~SP#2之后,接着应写入超级页面数据写入至超级页面SP#30。
图6是显示根据本发明另一实施例所述的数据储存方法的流程图。步骤S602:控制器120将多超级页面区分成多下页面以及多上页面。步骤S604:控制器120决定多超级页面的写入顺序。步骤S606:控制器120写入超级页面数据至超级页面。步骤S608:控制器120将超级页面数据的校验码储存至随机存取存储器。步骤S610:控制器120判断写入是否成功,成功则执行步骤S606,否则执行步骤S612:控制器120判断超级页面是否为上页面,如果是则执行步骤S614:控制器120依据上页面所对应的下页面所储存的超级页面数据以及校验码执行数据修复,再执行步骤S616:控制器120启动错误管理程序;如果不是则直接执行步骤S616。由于步骤S602~S616与步骤S502~S518类似,故不多作说明。
图7显示根据本发明另一实施例所述的数据储存方法的流程图,图7的流程与图6的流程类似,主要的差别乃在于图7的流程乃由主机200所执行,对照表H2F、写入查找表或判断式也由主机200所维持,而非控制器120。步骤S702:主机200将多超级页面区分成多下页面以及多上页面。步骤S704:主机200决定多超级页面的写入顺序。步骤S706:主机200输出超级页面数据至数据储存装置100。步骤S708:主机200将超级页面数据的校验码储存至主机200的随机存取存储器(未显示)。步骤S710:主机200依据数据储存装置100所回传的讯息判断写入是否成功,成功则执行步骤S706,否则执行步骤S712:主机200判断超级页面是否为上页面,如果是则执行步骤S714:主机200令数据储存装置100输出上页面所对应的下页面所储存的超级页面数据。步骤S716:主机200依据上页面所对应的下页面所储存的超级页面数据以及校验码执行数据修复,再执行步骤S718:主机200启动错误管理程序;如果不是则直接执行步骤S718。
本发明虽以较佳实施例揭示如上,然其并非用以限定本发明的范围,任何熟悉本技术领域者,在不脱离本发明的精神和范围内,当可做些许的更动与润饰,因此本发明的保护范围当由权利要求书界定为准。
Claims (22)
1.一种数据储存装置,包括:
一随机存取存储器;
一快闪存储器,包括多个区块(block),其中这些区块的每一者包括多个页面(page);以及
一控制器,将这些区块的这些页面配置为多个超级页面,其中这些超级页面区分成多第一页面以及多第二页面,并且该控制器将至少一笔超级页面数据写入其中之一这些第一页面,依据至少一笔该超级页面数据产生一个校验码(parity code),以及储存该校验码至该随机存取存储器。
2.如权利要求1所述的数据储存装置,其特征在于,当至少一笔该超级页面数据写入其中之一这些第一页面之后,该控制器不储存至少一笔该超级页面数据至该随机存取存储器。
3.如权利要求1所述的数据储存装置,其特征在于,当欲修复储存于其中之一这些第一页面的至少一笔该超级页面数据时,该控制器读取其中之一这些第一页面的至少一笔该超级页面数据以及该校验码并利用该校验码对其中的一这些第一页面的至少一笔该超级页面进行修复。
4.如权利要求1所述的数据储存装置,其特征在于,当多笔超级页面数据写入其中之一这些第二页面失败时,该控制器修复储存于其中之一这些第一页面的至少一笔该超级页面数据,而其中之一这些第二页面与其中之一这些第一页面由一字元线所控制。
5.如权利要求1所述的数据储存装置,其特征在于,当多笔超级页面数据写入其中之一这些第二页面失败时,该控制器修复储存于其中之一这些第一页面的至少一笔该超级页面数据,而其中之一这些第二页面与其中之一这些第一页面的写入顺序的差值等于一写入差距值。
6.一种数据储存装置,耦接一主机,该数据储存装置包括:
一随机存取存储器;以及
一快闪存储器,包括多个区块(block),其中这些区块的每一者包括多个页面(page),该主机将这些区块的这些页面配置为多个超级页面,这些超级页面区分成多第一页面以及多第二页面,并且该主机输出至少一笔超级页面数据至该数据储存装置,依据至少一笔该超级页面数据产生一个校验码(parity code),以及储存该校验码至该随机存取存储器。
7.如权利要求6所述的数据储存装置,其特征在于,当至少一笔该超级页面数据写入其中之一这些第一页面之后,该主机不储存至少一笔该超级页面数据至该随机存取存储器。
8.如权利要求6所述的数据储存装置,其特征在于,当欲修复储存于其中之一这些第一页面的至少一笔该超级页面数据时,该主机令该数据储存装置输出其中之一这些第一页面的至少一笔该超级页面数据,并利用该校验码对其中之一这些第一页面的至少一笔该超级页面进行修复。
9.如权利要求6所述的数据储存装置,其特征在于,当多笔超级页面数据写入其中之一这些第二页面失败时,该主机修复储存于其中之一这些第一页面的至少一笔该超级页面数据,而其中之一这些第二页面与其中之一这些第一页面由一字元线所控制。
10.如权利要求6所述的数据储存装置,其特征在于,当多笔超级页面数据写入其中之一这些第二页面失败时,该主机修复储存于其中之一这些第一页面的至少一笔该超级页面数据,而其中之一这些第二页面与其中之一这些第一页面的写入顺序的差值等于一写入差距值。
11.一种数据储存方法,应用于一数据储存装置,该数据储存装置包括一快闪存储器以及一随机存取存储器,其中该快闪存储器包括多个区块(block),这些区块之每一者包括多个页面(page),该数据储存方法包括:
将这些区块的这些页面配置为多个超级页面,其中这些超级页面区分成多第一页面以及多第二页面;
将至少一笔超级页面数据写入其中之一这些第一页面;
依据至少一笔该超级页面数据产生一个校验码(parity code);以及
储存该校验码至该随机存取存储器。
12.如权利要求11所述的数据储存方法,其特征在于,当至少一笔该超级页面数据写入其中之一这些第一页面之后,不储存至少一笔该超级页面数据至该随机存取存储器。
13.如权利要求11所述的数据储存方法,其特征在于,当欲修复储存于其中之一这些第一页面的至少一笔该超级页面数据时,读取其中之一这些第一页面的至少一笔该超级页面数据以及该校验码并利用该校验码对其中之一这些第一页面的至少一笔该超级页面进行修复。
14.如权利要求11所述的数据储存方法,其特征在于,当多笔超级页面数据写入其中之一这些第二页面失败时,修复储存于其中之一这些第一页面的至少一笔该超级页面数据,而其中之一这些第二页面与其中之一这些第一页面由一字元线所控制。
15.如权利要求11所述的数据储存方法,其特征在于,当多笔超级页面数据写入其中之一这些第二页面失败时,修复储存于其中之一这些第一页面的至少一笔该超级页面数据,而其中之一这些第二页面与其中之一这些第一页面的写入顺序的差值等于一写入差距值。
16.如权利要求11所述的数据储存方法,其特征在于,还包括:使用一指标以指向该校验码。
17.一种数据储存方法,用以控制一数据储存装置的数据储存,该数据储存装置包括一快闪存储器,其中该快闪存储器包括多个区块(block),这些区块的每一者包括多个页面(page),该数据储存方法包括:
将这些区块的这些页面配置为多个超级页面,其中这些超级页面区分成多第一页面以及多第二页面;
输出至少一笔超级页面数据至该数据储存装置;
依据至少一笔该超级页面数据产生一个校验码(parity code);以及
储存该校验码至一随机存取存储器。
18.如权利要求17所述的数据储存方法,其特征在于,当至少一笔该超级页面数据写入其中之一这些第一页面之后,不储存至少一笔该超级页面数据至该随机存取存储器。
19.如权利要求17所述的数据储存方法,其特征在于,当欲修复储存于其中之一这些第一页面的至少一笔该超级页面数据时,令该数据储存装置输出其中之一这些第一页面的至少一笔该超级页面数据,并利用该校验码对其中之一这些第一页面的至少一笔该超级页面进行修复。
20.如权利要求17所述的数据储存方法,其特征在于,当多笔超级页面数据写入其中之一这些第二页面失败时,修复储存于其中之一这些第一页面的至少一笔该超级页面数据,而其中之一这些第二页面与其中之一这些第一页面由一字元线所控制。
21.如权利要求17所述的数据储存方法,其特征在于,当多笔超级页面数据写入其中之一这些第二页面失败时,修复储存于其中之一这些第一页面的至少一笔该超级页面数据,而其中之一这些第二页面与其中之一这些第一页面的写入顺序的差值等于一写入差距值。
22.如权利要求17所述的数据储存方法,其特征在于,还包括:使用一指标以指向该校验码。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106129515 | 2017-08-30 | ||
TW106129515A TWI720246B (zh) | 2017-08-30 | 2017-08-30 | 資料儲存裝置以及其操作方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109426441A true CN109426441A (zh) | 2019-03-05 |
CN109426441B CN109426441B (zh) | 2022-07-26 |
Family
ID=65435138
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810007193.1A Active CN109426441B (zh) | 2017-08-30 | 2018-01-04 | 数据储存装置以及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10509697B2 (zh) |
CN (1) | CN109426441B (zh) |
TW (1) | TWI720246B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110471798A (zh) * | 2019-08-21 | 2019-11-19 | 深圳市时创意电子有限公司 | 一种有效改善Pair-Page掉失数据的方法 |
CN115329399A (zh) * | 2022-10-13 | 2022-11-11 | 江苏华存电子科技有限公司 | 基于nand的垂直水平raid4数据保护管理方法及*** |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190034306A1 (en) * | 2017-07-31 | 2019-01-31 | Intel Corporation | Computer System, Computer System Host, First Storage Device, Second Storage Device, Controllers, Methods, Apparatuses and Computer Programs |
US10872012B2 (en) * | 2019-01-08 | 2020-12-22 | Western Digital Technologies, Inc. | XOR recovery schemes utilizing external memory |
US11966607B2 (en) * | 2021-09-29 | 2024-04-23 | Silicon Motion, Inc. | Method and non-transitory computer-readable storage medium and apparatus for accessing to encoding-history information |
CN114579057B (zh) * | 2022-03-11 | 2024-05-14 | 长江存储科技有限责任公司 | 缓存设备的校验数据的存储方法、存储装置及存储*** |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120254694A1 (en) * | 2011-04-03 | 2012-10-04 | Anobit Technologies Ltd. | Redundant storage in non-volatile memory by storing redundancy information in volatile memory |
CN103197897A (zh) * | 2012-01-09 | 2013-07-10 | 三星电子株式会社 | 存储装置和非易失性存储器装置及其操作方法 |
US20150178149A1 (en) * | 2013-12-20 | 2015-06-25 | Lsi Corporation | Method to distribute user data and error correction data over different page types by leveraging error rate variations |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9389952B2 (en) | 2008-06-18 | 2016-07-12 | Super Talent Technology, Corp. | Green NAND SSD application and driver |
US8555143B2 (en) * | 2008-12-22 | 2013-10-08 | Industrial Technology Research Institute | Flash memory controller and the method thereof |
US8832507B2 (en) * | 2010-08-23 | 2014-09-09 | Apple Inc. | Systems and methods for generating dynamic super blocks |
US8914670B2 (en) * | 2012-11-07 | 2014-12-16 | Apple Inc. | Redundancy schemes for non-volatile memory using parity zones having new and old parity blocks |
US9405621B2 (en) * | 2012-12-28 | 2016-08-02 | Super Talent Technology, Corp. | Green eMMC device (GeD) controller with DRAM data persistence, data-type splitting, meta-page grouping, and diversion of temp files for enhanced flash endurance |
TWI556254B (zh) * | 2014-10-14 | 2016-11-01 | 慧榮科技股份有限公司 | 資料儲存裝置及其資料存取方法 |
CN105573681B (zh) | 2015-12-31 | 2017-03-22 | 湖南国科微电子股份有限公司 | 一种ssd盘片内部raid组建方法及*** |
-
2017
- 2017-08-30 TW TW106129515A patent/TWI720246B/zh active
-
2018
- 2018-01-04 CN CN201810007193.1A patent/CN109426441B/zh active Active
- 2018-05-01 US US15/968,305 patent/US10509697B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120254694A1 (en) * | 2011-04-03 | 2012-10-04 | Anobit Technologies Ltd. | Redundant storage in non-volatile memory by storing redundancy information in volatile memory |
CN103197897A (zh) * | 2012-01-09 | 2013-07-10 | 三星电子株式会社 | 存储装置和非易失性存储器装置及其操作方法 |
US20150178149A1 (en) * | 2013-12-20 | 2015-06-25 | Lsi Corporation | Method to distribute user data and error correction data over different page types by leveraging error rate variations |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110471798A (zh) * | 2019-08-21 | 2019-11-19 | 深圳市时创意电子有限公司 | 一种有效改善Pair-Page掉失数据的方法 |
CN115329399A (zh) * | 2022-10-13 | 2022-11-11 | 江苏华存电子科技有限公司 | 基于nand的垂直水平raid4数据保护管理方法及*** |
CN115329399B (zh) * | 2022-10-13 | 2023-01-31 | 江苏华存电子科技有限公司 | 基于nand的垂直水平raid4数据保护管理方法及*** |
Also Published As
Publication number | Publication date |
---|---|
TWI720246B (zh) | 2021-03-01 |
TW201913380A (zh) | 2019-04-01 |
US10509697B2 (en) | 2019-12-17 |
CN109426441B (zh) | 2022-07-26 |
US20190065309A1 (en) | 2019-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109426441A (zh) | 数据储存装置以及其操作方法 | |
CN103119569B (zh) | 基于存储条的非易失性多级存储器操作 | |
US10372603B2 (en) | Handling of unaligned writes | |
CN1499532B (zh) | 非易失性存储器***内纠错码的混合实现 | |
CN108733510A (zh) | 数据储存装置及映射表重建方法 | |
CN101427323B (zh) | 读取非易失性计算机存储器的***和方法 | |
TWI645404B (zh) | 資料儲存裝置以及非揮發式記憶體操作方法 | |
US20120260020A1 (en) | Non-volatile semiconductor memory module enabling out of order host command chunk media access | |
US8612836B2 (en) | Non-volatile memory device with uncorrectable information region and operation method using the same | |
CN109885506A (zh) | 数据储存装置、主机装置、以及数据写入方法 | |
CN109542675A (zh) | 存储器***及其操作方法 | |
US8902671B2 (en) | Memory storage device, memory controller thereof, and method for programming data thereof | |
CN103578565B (zh) | 一种NAND Flash存储芯片的校验方法及装置 | |
TWI646535B (zh) | 資料儲存裝置以及非揮發式記憶體操作方法 | |
CN104461391A (zh) | 一种存储设备元数据管理处理方法及*** | |
CN107977161A (zh) | 数据储存装置及其数据写入方法 | |
US9141530B2 (en) | Data writing method, memory controller and memory storage device | |
CN108958961B (zh) | 数据储存装置以及数据错误管理方法 | |
US20130304970A1 (en) | Systems and methods for providing high performance redundant array of independent disks in a solid-state device | |
CN106598479A (zh) | 闪速存储器的故障安全擦除的方法和装置 | |
CN104794063A (zh) | 一种具备电阻式存储器的固态储存装置的控制方法 | |
CN109815160A (zh) | 最后写入页搜索 | |
CN106164873A (zh) | 当到达寿命终止条件时约束写入固态存储器的方法和装置 | |
CN105808378B (zh) | 元数据修复方法及装置 | |
CN109521944A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |