CN106409344A - 数据储存设备及其操作方法 - Google Patents
数据储存设备及其操作方法 Download PDFInfo
- Publication number
- CN106409344A CN106409344A CN201610118031.6A CN201610118031A CN106409344A CN 106409344 A CN106409344 A CN 106409344A CN 201610118031 A CN201610118031 A CN 201610118031A CN 106409344 A CN106409344 A CN 106409344A
- Authority
- CN
- China
- Prior art keywords
- data
- superblock
- chunks
- parity
- controller
- 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
Classifications
-
- 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/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- 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
-
- 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/1012—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 using codes or arrangements adapted for a specific type of error
-
- 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/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- 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/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/108—Parity data distribution in semiconductor storages, e.g. in SSD
-
- 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/065—Replication 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
-
- 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/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- 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/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/44—Indication or identification of errors, e.g. for repair
- G11C29/4401—Indication or identification of errors, e.g. for repair for self repair
-
- 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
- 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/1072—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 multilevel memories
-
- 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
-
- 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/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0411—Online error correction
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1111—Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
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)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Detection And Correction Of Errors (AREA)
- Microelectronics & Electronic Packaging (AREA)
Abstract
一种数据储存设备可以包括多个非易失性存储器件和控制器,所述多个非易失性存储器件包括多个块,所述控制器适用于针对由所述多个块中的一个或更多个形成的超级块产生超级块奇偶校验数据。
Description
相关申请的交叉引用
本申请要求2015年7月31日提交给韩国知识产权局的申请号为10-2015-0108642的韩国专利申请的优先权,其通过引用整体合并于此。
技术领域
各个实施例总体而言涉及一种数据储存设备,更具体,涉及一种能够校正错误位的数据储存设备。
背景技术
数据储存设备响应于来自外部设备的写入请求来储存从外部设备提供的数据。数据储存设备也响应于来自外部设备的读取请求将储存的数据提供给外部设备。外部设备是能够处理数据的电子设备,且可以包括计算机、数字相机、移动电话等。数据储存设备可以嵌入在外部设备中,或者可以被单独地制造,然后耦接到外部设备。
发明内容
在一个实施例中,一种数据储存设备可以包括:多个非易失性存储器件,所述多个非易失性存储器件包括多个块;以及控制器,适用于针对超级块产生超级块奇偶校验数据,所述超级块由所述多个块中的一个或更多个块形成。
在一个实施例中,一种数据储存设备可以包括:多个非易失性存储器件,所述多个非易失性存储器件包括多个块;以及控制器,适用于将多个数据组块储存在超级块中以及针对所述多个数据组块产生超级块奇偶校验数据,所述超级块包括所述多个块之中的相同块偏移的块。
在一个实施例中,一种操作数据储存设备的方法,所述数据储存设备包括多个非易失性存储器件,所述方法可以包括:将多个数据组块储存在超级块中,所述超级块包括所述多个非易失性存储器件中包括的多个块之中的相同块偏移的块;以及针对所述多个数据组块产生超级块奇偶校验数据。
附图说明
图1是图示根据一个实施例的数据储存设备的框图。
图2是图示图1所示的非易失性存储器件的存储区的示图。
图3是图示数据储存设备的用于产生针对图2所示的存储区的超级块奇偶校验数据的方法。
图4是图示图1所示的非易失性存储器件的存储区的示图。
图5和图6是图示数据储存设备的用于产生针对图4所示的存储区的超级块奇偶校验数据的方法的示图。
图7是图示图1所示的非易失性存储器件的存储区的图。
图8和图9是图示数据储存设备的用于产生针对图7所示的存储区的超级块奇偶校验数据的方法的示图。
图10是图示图1所示的非易失性存储器件的存储区的示图。
图11和图12是图示数据储存设备的用于产生针对图10所示的存储区的超级块奇偶校验数据的方法的示图。
图13是图示数据储存设备的用于产生条纹奇偶校验数据和超级块奇偶校验数据的方法的示图。
图14是图示数据储存设备的用于产生条纹奇偶校验数据和超级块奇偶校验数据的方法的示图。
图15a、15b、15c和15d是图示控制器的用于产生超级块奇偶校验数据的方法的示图。
图16是图示根据一个实施例的操作数据储存设备的方法的流程图。
图17是图示根据一个实施例的操作数据储存设备的方法的流程图。
图18是图示根据一个实施例的固态驱动器的框图。
图19是图示包括数据储存设备的数据处理系统的框图。
具体实施方式
在下文,将通过本发明的示例性实施例参照附图来描述根据本发明的数据储存设备及其操作方法。然而,本申请可以采用不同的形式来实施且不应理解为限于本文所阐述的实施例。确切地说,提供这些实施例以将本申请详细描述到本发明所属技术领域人员能够执行本发明的技术概念的程度。
要理解,本发明的实施例不限于图中所示的细节,附图不一定按比例绘制,且在一些实例中,比例可能已经夸大,以便更清楚地描绘本发明的某些特征。尽管使用了特定的术语,但要理解的是,使用的术语仅仅是为了描述特定的实施例,而并非意图限制本发明的范围。
图1是图示根据一个实施例的数据储存设备10的框图。
数据储存设备10可以包括控制器100和储存媒介200。
数据储存设备10可以由个人计算机存储卡国际协会(PCMCIA)卡、紧凑型闪存(CF)卡、智能媒体卡、记忆棒、多媒体卡(MMC)、嵌入式MMC(eMMC)、尺寸减小的多媒体卡(RS-MMC)和微尺寸版的MMC(MMC-micro)、安全数字(SD)卡、迷你安全数字(mini-SD)卡和微型安全数字(micro-SD)、通用闪存(UFS)和/或固态驱动器(SSD)来配置。
控制器100可以控制数据储存设备10的一般操作。控制器100可以响应于从外部设备传送来的写入请求来将数据储存在储存媒介200中,以及可以响应于从外部设备传送来的读取请求来读取储存在储存媒介200中的数据并将读取的数据输出到外部设备。为了储存/读取数据,控制器100可以根据交织方案来访问储存媒介200中包括的非易失性存储器件210和211。
控制器100可以将多个数据组块储存在超级块中且可以将针对多个数据组块产生的超级块奇偶校验数据储存在储存媒介200中包括的奇偶校验区域中,该超级块包括非易失性存储器件210和211中包括的多个块之中的具有相同块偏移的块。
根据一个实施例,控制器100可以根据要储存多个数据组块的目标区域的属性来将超级块的多个数据组块分类为多个数据组。控制器100可以针对多个相应数据组产生超级块奇偶校验数据。控制器100可以针对形成在非易失性存储器件210和211中的每个超级块产生超级块奇偶校验数据。因为控制器100针对每个超级块产生超级块奇偶校验数据,所以相比于比超级块小的存储区域(例如,包括超级块中的相同页偏移的页的条带(stripe))的奇偶校验数据,超级块奇偶校验数据占用更小的储存空间。因此,可以改善空间利用效率。
根据一个实施例,当读取储存在超级块中的多个数据组块之中的第一数据组的第一数据组块且确定在第一数据组块中已经出现错误或者确定第一数据组块的错误不能被错误校正码(ECC)单元(未示出)的错误校正码(ECC)算法校正时,控制器100可以从储存媒介200读取第一数据组中的除了第一数据组块之外的所有数据组块和针对第一数据组产生的超级块奇偶校验数据。控制器100可以基于第一数据组的其它数据组块和超级块奇偶校验数据来校正具有错误的第一数据组块。换言之,经由超级块奇偶校验数据,控制器100可以校正储存的数据的错误。因此,可以改善数据的可靠性。
根据一个实施例,控制器100可以将多个数据组块储存在条带(其包括每个超级块中包括的多个页之中具有相同页偏移的页)中,以及可以将针对条带产生的条带奇偶校验数据储存在储存媒介200中包括的奇偶校验区域中。
储存媒介200可以包括非易失性存储器件210和211。
非易失性存储装置可以包括快闪存储器件,诸如NAND闪存或NOR闪存、铁电随机存取存储器(FeRAM)、相变随机存取存储器(PCRAM)、磁阻随机存取存储器(MRAM)、电阻式随机存取存储器(ReRAM)等。
非易失性存储器件210和211中的每个可以在控制器100的控制下储存从控制器100传送来的数据组块,可以读取储存在其中的数据组块,以及将读取的数据组块传送到控制器100。
尽管图1示出储存媒介200包括两个非易失性存储器件210和211,但是要注意,储存媒介200中包括的非易失性存储器件的数量不限于此。
图2是图示图1所示的非易失性存储器件210和211的实施例210_0和211_0的存储区的示图。
非易失性存储器件210_0和211_0中的每个可以包括多个块。例如,非易失性存储器件210_0可以包括块BK0_0和BK0_1。在非易失性存储器件210_0和211_0中,每个块可以具有预定的块偏移。例如,在非易失性存储器件210_0中,块BK0_0的块偏移可以是“0”,块BK0_1的块偏移可以是“1”。
每个块可以包括多个页。例如,块BK0_0可以包括页P0_0至P0_3。在每个块中,每个页可以具有预定的页偏移。例如,在块BK0_0中,页P0_0的页偏移可以是“0”,页P0_1的页偏移可以是“1”,页P0_2的页偏移可以是“2”,页P0_3的页偏移可以是“3”。在本实施例中,数据组块是指要储存在页中的数据的单位。各个数据组块可以储存在不同的页中。
每个页可以在对应的字线被使能时而被访问。当电耦接到字线的存储单元是单电平单元(SLC)时,单个页可以对应于单个字线。例如,在块BK0_0中,页P0_0可以对应于具有“0”的字线偏移WLO的字线,页P0_1可以对应于具有“1”的字线偏移WLO的字线,页P0_2可以对应于具有“2”的字线偏移WLO的字线,以及页P0_3可以对应于具有“3”的字线偏移WLO的字线。在每个块中,虽然各个字线可以根据它们布置的顺序而具有字线偏移WLO,但是要注意的是,实施例不局限于此。
可以在非易失性存储器件210_0和211_0中形成超级块SB0_0和SB0_1。超级块SB0_0和SB0_1中的每个可以包括非易失性存储器件210_0和211_0中的具有相同块偏移的块。例如,超级块SB0_0可以包括在相应的非易失性存储器件210_0和211_0中具有块偏移“0”的块BK0_0和BK1_0。超级块SB0_1可以包括在相应的非易失性存储器件210_0和211_0中具有块偏移“1”的块BK0_1和BK1_1。
在图2所示的存储结构中,各个页可以具有彼此不同的属性。页的属性可以包括例如,块偏移、页偏移和字线偏移。例如,页P0_0的属性可以包括块BK0_0的块偏移“0”,页P0_0的页偏移“0”以及与页P0_0相对应的字线的字线偏移“0”。页的属性可以用作用于将多个数据组块分类为多个数据组的参考。
根据一个实施例,为了将多个数据组块分类为多个数据组,可以参考除了上述块偏移、页偏移和字线偏移之外的其它参考。
图2所示的块的数量、字线的数量和页的数量仅仅是出于图示说明的目的,要注意的是,实施例不局限于此。
图3是图示数据储存设备10的用于针对图2所示的存储区产生超级块奇偶校验数据的方法的示图。图3示出针对要储存在图2的超级块SB0_0中的数据组块而产生的超级块奇偶校验数据PT_A1和PT_A2。
例如,控制器100可以根据与要储存数据组块的页相对应的字线偏移来将超级块SB0_0的数据组块分类为数据组A1和A2。控制器100可以将要储存在与偶数或奇数字线偏移的字线相对应的页中的数据组块分类为超级块SB0_0中的相同数据组。例如,在各个块BK0_0和BK1_0中,控制器100可以将要储存在与具有偶数字线偏移的字线(即,偶数编号的字线)相对应的页P0_0、P0_2、P1_0和P1_2中的数据组块分类为数据组A1,以及可以将要储存在与具有奇数字线偏移的字线(即,奇数编号的字线)相对应的页P0_1、P0_3、P1_1和P1_3中的数据组块分类为数据组A2。在本文,零(0)被定义为偶数。下面的表1示意性地示出一种参考,通过所述参考,根据与要储存数据组块的页相对应的字线偏移,数据组块在超级块SB0_0中被分类为数据组A1和A2。
[表1]
字线偏移 | 数据组 |
偶数 | A1 |
奇数 | A2 |
控制器100可以分别针对数据组A1和A2产生超级块奇偶校验数据PT_A1和PT_A2。例如,控制器100可以针对分类为数据组A1的数据组块产生超级块奇偶校验数据PT_A1。控制器100可以将数据组块储存在超级块SB0_0中,以及可以将超级块奇偶校验数据PT_A1和PT_A2储存在储存媒介200中所预定的奇偶校验区中。
根据一个实施例,在储存媒介200中,要储存超级块奇偶校验数据PT_A1和PT_A2的奇偶校验区可以与超级块SB0_0分离。奇偶校验区可以被包括在储存媒介200中的除了非易失性存储器件210_0和211_0之外的另一个非易失性存储器件(未示出)中。在一个实施例中,奇偶校验区可以被包括在超级块SB0_0中。奇偶校验区可以是超级块SB0_0中的最后页P0_3和P1_3。在此情况下,可以针对要储存在页P0_0、P0_2、P1_0和P1_2中的数据组块产生超级块奇偶校验数据PT_A1,以及可以针对要储存在页P0_1和P1_1中的数据组块产生超级块奇偶校验数据PT_A2。
在数据组块储存在超级块SB0_0之后,在储存于例如页P0_0中的数据组块中出现错误位的情况下,由于非易失性存储器件的结构特性,很有可能甚至在储存于页P0_1中的数据组块中出现错误位。换言之,储存在与相邻字线相对应的页P0_0和P0_1中的数据组块可能相互影响且可能同时包括错误位。然而,如图3所示,当存在针对各个数据组A1和A2的超级块奇偶校验数据PT_A1和PT_A2时,储存在页P0_0中的数据组块中出现的错误位可以通过使用包括在数据组A1中的其余数据组块和超级块奇偶校验数据PT_A1来校正,以及,储存在页P0_1中的数据组块中所出现的错误位可以通过使用包括在数据组A2中的其余数据组块和超级块奇偶校验数据PT_A2来校正。
总之,为了校正在与相邻字线相对应的页出现中的错误位,要储存在与相邻字线相对应的页中的数据组块可以被分类为不同的数据组。根据一个实施例,在每个块中,控制器100可以将数据组块分类为多个数据组,使得要储存在与相邻字线相对应的页中的数据组块被分类为不同的数据组。在每个块中,控制器100可以将与偶数编号的字线或奇数编号的字线相对应的数据组块分类为相同数据组。例如,在每个块中,当控制器100将与由“k”个字线(k是自然数)分离的字线相对应的数据组块分类为相同的数据组时,控制器100可以将要储存在单个超级块中的数据组块分类为“k+1”个数据组,且可以产生分别对应于数据组的“k+1”个超级块奇偶校验数据。
图4是图示图1所示的非易失性存储器件210和211的实施例210_1和211_1的存储区的示图。
除了每个存储单元是储存两个位的多电平单元(MLC)之外,非易失性存储器件210_1和211_1可以与图2所示的非易失性存储器件210_0和211_0实质相似地配置。
参见图4,当每个存储单元是MLC时,两个页可以对应于单个字线。例如,在块BK2_0中,页LP2_0和MP2_1可以对应于具有“0”的字线偏移WLO的字线,页LP2_2和MP2_3可以对应于具有“1”的字线偏移WLO的字线,页LP2_4和MP2_5可以对应于具有“2”的字线偏移WLO的字线,以及页LP2_6和MP2_7可以对应于具有“3”的字线偏移WLO的字线。
一起对应于单个字线的页可以根据位之中的哪个位要储存在页中而分成不同类型的页(例如,最低有效位(LSB)页和最高有效位(MSB)页)。详细地,要储存LSB数据的页可以是LSB页,要储存MSB数据的页可以是MSB页。在一起对应于单个字线的两个页之中,偶数页偏移的页可以是LSB页,奇数页偏移的页可以是MSB页。例如,在块BK2_0中,页LP2_0可以是LSB页,页MP2_1可以是MSB页。
根据一个实施例,可以在每个存储单元中储存至少3个位的数据。在每个存储单元储存多个位(例如“n”个位)的情况下,可以存在“n”个不同的页类型。
图5和图6是图示数据储存设备10的用于针对图4所示的存储区产生超级块奇偶校验数据的方法的示图。图5图示针对要储存在图4的超级块SB1_0中的数据组块所产生的超级块奇偶校验数据PT_B1和PT_B2,图6图示超级块奇偶校验数据PT_C1至PT_C4。
参见图5,控制器100可以根据要储存数据组块的页的页类型而将超级块SB1_0的数据组块分类为数据组B1和B2。例如,在块BK2_0中,控制器100可以将要储存在LSB页LP2_0、LP2_2、LP2_4和LP2_6中的数据组块分类为数据组B1,以及可以将要储存在MSB页MP2_1、MP2_3、MP2_5和MP2_7中的数据组块分类为数据组B2。即使对于块BK3_0,控制器100也可以以与块BK2_0相同的方式来将数据组块分类为数据组B1和B2。表2.1示意性地示出一种参考,通过所述参考,根据要储存数据组块的页的页类型,数据组块在超级块SB1_0中被分类为数据组B1和B2。
[表2.1]
页类型 | 数据组 |
LSB页 | B1 |
MSB页 | B2 |
控制器100可以分别针对数据组B1和B2产生超级块奇偶校验数据PT_B1和PT_B2。控制器100可以将数据组块储存在超级块SB1_0中,以及可以将超级块奇偶校验数据PT_B1和PT_B2储存在储存媒介200中所预定的奇偶校验区中。
在数据组块储存在超级块SB1_0之后,当储存在例如页LP2_0中的数据组块中出现错误位时,由于非易失性存储器件的结构特性,很有可能在储存于页MP2_1中的数据组块中出现错误位。也就是说,储存在与相同字线相对应的页LP2_0和MP2_1中的数据组块可能彼此影响且可能同时包括错误位。然而,如图5所示,当存在针对各个数据组B1和B2的超级块奇偶校验数据PT_B1和PT_B2时,储存在页LP2_0中的数据组块中出现的错误位可以通过使用包括在数据组B1中的其余数据组块和超级块奇偶校验数据PT_B1来校正,以及储存在页MP2_1中的数据组块中出现的错误位可以通过使用包括在数据组B2中的其余数据组块和超级块奇偶校验数据PT_B2来校正。
根据一个实施例,当在每个存储单元中储存“m”个位且存在“m”个页类型时,控制器100可以根据“m”个页类型而将数据组块分类为m个数据组,并且可以产生分别对应于“m”个数据组的“m”个超级块奇偶校验数据。
参见图6,控制器100可以根据与要储存数据组块的页相对应的字线偏移和页类型,来将超级块SB1_0的数据组块分类为数据组C1至C4。例如,在块BK2_0中,控制器100可以将要储存在与偶数字线偏移相对应的LSB页LP2_0和LP2_4中的数据组块分类为数据组C1。此外,在块BK2_0中,控制器100可以将要储存在与偶数字线偏移相对应的MSB页MP2_1和MP2_5中的数据组块分类为数据组C2。此外,在块BK2_0中,控制器100可以将要储存在与奇数字线偏移相对应的LSB页LP2_2和LP2_6中的数据组块分类为数据组C3。另外,在块BK2_0中,控制器100可以将要储存在与奇数字线偏移相对应的MSB页MP2_3和MP2_7中的数据组块分类为数据组C4。即使对于块BK3_0,控制器100也可以以与块BK2_0相同的方式来将数据组块分类为数据组C1至C4。表2.2示意性地示出一种参考,通过所述参考,根据要储存数据组块的页的页类型和字线偏移,数据组块在超级块SB1_0中被分类为数据组C1至C4。
[表2.2]
字线偏移 | 页类型 | 数据组 |
偶数 | LSB页 | C1 |
偶数 | MSB页 | C2 |
奇数 | LSB页 | C3 |
奇数 | MSB页 | C4 |
控制器100可以分别针对数据组C1至C4产生超级块奇偶校验数据PT_C1至PT_C4。控制器100可以将数据组块储存在超级块SB1_0中,以及可以将超级块奇偶校验数据PT_C1至PT_C4储存在储存媒介200中所预定的奇偶校验区中。
如图6所示,当存在针对各个数据组C1至C4的超级块奇偶校验数据PT_C1至PT_C4时,可以校正同时出现在与相邻字线相对应的各个页中的错误位以及同时出现在与相同字线相对应的各个页中的错误位。
根据一个实施例,如参照图3描述的,控制器100可以根据与要储存数据组块的页相对应的字线偏移而将超级块SB1_0的数据组块分类为多个数据组,且可以产生多个超级块奇偶校验数据。
图7是图示图1所示的非易失性存储器件210和211的实施例210_2和211_2的存储区的示图。
非易失性存储器件210_2和211_2可以包括两个平面。例如,非易失性存储器件210_2可以包括平面PLN4_0和PLN4_1。在非易失性存储器件210_2和211_2中的每个中,每个平面可以具有预定的平面偏移。例如,在非易失性存储器件210_2中,平面PLN4_0的平面偏移可以是“0”,平面PLN4_1的平面偏移可以是“1”。
每个平面可以包括多个块。例如,平面PLN4_0可以包括块BK40_0和BK40_1。在平面PLN4_0、PLN4_1、PLN5_0和PLN5_1中的每个中,每个块可以具有预定的块偏移。每个块的详细配置可以与上面参照图2描述的块BK0_0的配置实质相同。
超级块SB2_0和SB2_1中的每个可以包括非易失性存储器件210_2和211_2中的具有相同块偏移的块。例如,超级块SB2_0可以包括在非易失性存储器件210_2的各个平面PLN4_0和PLN4_1中具有块偏移“0”的块BK40_0和BK41_0,以及可以包括在非易失性存储器件211_2的各个平面PLN5_0和PLN5_1中具有块偏移“0”的块BK50_0和BK51_0。
根据一个实施例,非易失性存储器件210_2和211_2中的每个可以包括至少三个平面。
图8和图9是图示数据储存设备10的用于针对图7所示的存储区产生超级块奇偶校验数据的方法的示图。图8图示针对要储存在图7的超级块SB2_0中的数据组块所产生的超级块奇偶校验数据PT_D1和PT_D2,图9图示超级块奇偶校验数据PT_E1至PT_E4。
参见图8,控制器100可以根据与要储存数据组块的页相对应的平面偏移来将超级块SB2_0的数据组块分类为数据组D1和D2。例如,在非易失性存储器件210_2中,控制器100可以将要储存在与平面偏移“0”相对应的页P40_0至P40_3中的数据组块分类为数据组D1,以及可以将要储存在与平面偏移“1”相对应的页P41_0至P41_3中的数据组块分类为数据组D2。此外,对于非易失性存储器件211_2,控制器100可以以与非易失性存储器件210_2相同的方式来将数据组块分类为数据组D1和D2。表格3.1示意性地示出一种参考,通过所述参考,根据与要储存数据组块的页相对应的平面偏移,数据组块在超级块SB2_0中被分类为数据组D1和D2。
[表3.1]
平面偏移 | 数据组 |
0 | D1 |
1 | D2 |
控制器100可以分别针对数据组D1和D2产生超级块奇偶校验数据PT_D1和PT_D2。控制器100可以将数据组块储存在超级块SB2_0中,以及可以将超级块奇偶校验数据PT_D1和PT_D2储存在储存媒介200中所预定的奇偶校验区中。
在数据组块储存在超级块SB2_0中之后,当储存在例如页P40_0中的数据组块中出现错误位时,由于非易失性存储器件的结构特性,很有可能在储存于页P41_0中的数据组块中出现错误位。换言之,在各个平面PLN4_0和PLN4_1中的与相同字线偏移相对应的页P40_0和P41_0中储存的数据组块可以分别同时包括错误位。然而,如图8所示,当存在针对各个数据组D1和D2的超级块奇偶校验数据PT_D1和PT_D2时,可以通过使用数据组D1中包括的其余数据组块和超级块奇偶校验数据PT_D1来校正储存在页P40_0中的数据组块中出现的错误位,以及可以通过使用数据组D2中包括的其余数据组块和超级块奇偶校验数据PT_D2来校正储存在页P41_0中的数据组块中出现的错误位。
根据一个实施例,当非易失性存储器件包括“n”个平面时,控制器100可以根据平面偏移而将数据组块分类为“n”个数据组,并且可以产生分别对应于“n”个数据组的“n”个超级块奇偶校验数据。
参见图9,控制器100可以根据与要储存数据组块的页相对应的平面偏移和字线偏移来将超级块SB2_0的数据组块分类为数据组E1至E4。例如,在非易失性存储器件210_2中,控制器100可以将要储存在与平面偏移“0”相对应且与偶数字线偏移相对应的页P40_0和P40_2中的数据组块分类为数据组E1。此外,在非易失性存储器件210_2中,控制器100可以将要储存在与平面偏移“0”相对应且与奇数字线偏移相对应的页P40_1和P40_3中的数据组块分类为数据组E2。此外,在非易失性存储器件210_2中,控制器100可以将要储存在与平面偏移“1”相对应且与偶数字线偏移相对应的页P41_0和P41_2中的数据组块分类为数据组E3。另外,在非易失性存储器件210_2中,控制器100可以将要储存在与平面偏移“1”相对应且与奇数字线偏移相对应的页P41_1和P41_3中的数据组块分类为数据组E4。此外,对于非易失性存储器件211_2,控制器100可以以与非易失性存储器件210_2相同的方式来将数据组块分类为数据组E1至E4。表3.2示意性地示出一种参考,通过所述参考,根据与要储存数据组块的页相对应的平面偏移和字线偏移,数据组块在超级块SB2_0中被分类为数据组E1至E4。
[表3.2]
平面偏移 | 字线偏移 | 数据组 |
0 | 偶数 | E1 |
0 | 奇数 | E2 |
1 | 偶数 | E3 |
1 | 奇数 | E4 |
控制器100可以分别针对数据组E1至E4产生超级块奇偶校验数据PT_E1至PT_E4。控制器100可以将数据组块储存在超级块SB2_0中,以及可以将超级块奇偶校验数据PT_E1至PT_E4储存在储存媒介200中所预定的奇偶校验区中。
如图9所示,当针对各个数据组E1至E4存在超级块奇偶校验数据PT_E1至PT_E4时,可以校正在与相同字线偏移相对应的各个页中同时出现的错误位和在与相邻字线相对应的各个页中同时出现的错误位。
根据一个实施例,如上面参照图3描述的,控制器100可以根据要储存数据组块的页的字线偏移来将超级块SB2_0的数据组块分类为多个数据组,以及可以产生多个超级块奇偶校验数据。
图10是图示图1所示的非易失性存储器件210和211的实施例210_3和211_3的存储区的示图。
除了每个存储单元是MLC之外,非易失性存储器件210_3和211_3可以与图7所示的非易失性存储器件210_2和211_2实质上相似地配置。
超级块SB3_0和SB3_1中的每个可以包括在非易失性存储器件210_3和211_3中具有相同块偏移的块。
图11和图12是图示数据储存设备10的用于针对图10所示的存储区产生超级块奇偶校验数据的方法的示图。图11图示针对要储存在图10的超级块SB3_0中的数据组块所产生的超级块奇偶校验数据PT_F1至PT_F4,以及图12图示超级块奇偶校验数据PT_G1至PT_G8。
参见图11,控制器100可以根据与要储存数据组块的页相对应的平面偏移和页类型来将超级块SB3_0的数据组块分类为数据组F1至F4。例如,在非易失性存储器件210_3中,控制器100可以将要储存在与平面偏移“0”相对应的LSB页LP60_0、LP60_2、LP60_4和LP60_6中的数据组块分类为数据组F1。此外,在非易失性存储器件210_3中,控制器100可以将要储存在与平面偏移“0”相对应的MSB页MP60_1、MP60_3、MP60_5和MP60_7中的数据组块分类为数据组F2。进一步地,在非易失性存储器件210_3中,控制器100可以将要储存在与平面偏移“1”相对应的LSB页LP61_0、LP61_2、LP61_4和LP61_6中的数据组块分类为数据组F3。另外,在非易失性存储器件210_3中,控制器100可以将要储存在与平面偏移“1”相对应的MSB页MP61_1、MP61_3、MP61_5和MP61_7中的数据组块分类为数据组F4。此外,对于非易失性存储器件211_3,控制器100可以以相同的方式来将数据组块分类为数据组F1至F4。表4.1示意性地示出一种参考,通过所述参考,根据与要储存数据组块的页相对应的平面偏移和页类型,数据组块在超级块SB3_0中被分类为数据组F1至F4。
[表4.1]
控制器100可以分别针对数据组F1至F4产生超级块奇偶校验数据PT_F1至PT_F4。控制器100可以将数据组块储存在超级块SB3_0中,以及可以将超级块奇偶校验数据PT_F1至PT_F4储存在储存媒介200中所预定的奇偶校验区中。
如图11所示,当针对各个数据组F1至F4存在超级块奇偶校验数据PT_F1至PT_F4时,可以校正在与相同字线偏移相对应的各个页中同时出现的错误位和在与相同字线相对应的各个页中同时出现的错误位。
参见图12,控制器100可以根据与要储存数据组块的页相对应的平面偏移、字线偏移和页类型来将超级块SB3_0的数据组块分类为数据组G1至G8。例如,在非易失性存储器件210_3中,控制器100可以将要储存在与平面偏移“0”相对应的、与偶数字线偏移相对应的LSB页LP60_0和LP60_4中的数据组块分类为数据组G1。表4.2示意性地示出一种参考,通过所述参考,根据与要储存数据组块的页相对应的平面偏移、字线偏移和页类型,数据组块在超级块SB3_0中被分类为数据组G1至G8。
[表4.2]
平面偏移 | 字线偏移 | 页类型 | 数据组 |
0 | 偶数 | LSB页 | G1 |
0 | 偶数 | MSB页 | G2 |
0 | 奇数 | LSB页 | G3 |
0 | 奇数 | MSB页 | G4 |
1 | 偶数 | LSB页 | G5 |
1 | 偶数 | MSB页 | G6 |
1 | 奇数 | LSB页 | G7 |
1 | 奇数 | MSB页 | G8 |
控制器100可以分别针对数据组G1至G8产生超级块奇偶校验数据PT_G1至PT_G8。控制器100可以将数据组块储存在超级块SB3_0中,以及可以将超级块奇偶校验数据PT_G1至PT_G8储存在储存媒介200中所预定的奇偶校验区中。
如图12所示,当针对各个数据组G1至G8存在超级块奇偶校验数据PT_G1至PT_G8时,可以校正在与相同字线偏移相对应的各个页中同时出现的错误位、在与相邻字线相对应的各个页中同时出现的错误位、以及在与相同字线相对应的各个页中同时出现的错误位。
根据一个实施例,控制器100可以根据与要储存数据组块的页相对应的平面偏移、字线偏移和页类型中的至少一个来将超级块SB3_0的数据组块分类为多个数据组,以及可以产生多个超级块奇偶校验数据。
图13是图示数据储存设备10的用于产生条带奇偶校验数据和超级块奇偶校验数据的方法的示图。图13图示针对要储存在图2的超级块SB0_0中的数据组块所产生的条带奇偶校验数据STP0至STP3以及超级块奇偶校验数据PT_A1和PT_A2。
条带ST0_0至ST0_3中的每个可以包括超级块SB0_0中的具有相同页偏移的页。例如,条带ST0_0可以包括在超级块SB0_0中具有页偏移“0”的页P0_0和P1_0。当将数据组块储存在超级块SB0_0中时,控制器100可以例如从条带ST0_0开始以条带为单位顺序地储存数据组块。
控制器100可以分别针对要储存在条带ST0_0至ST0_3中的数据组块产生条带奇偶校验数据STP0至STP3。条带奇偶校验数据STP0至STP3可以针对条带ST0_0至ST0_3而产生。例如,控制器100可以针对要储存在条带ST0_0中的数据组块产生条带奇偶校验数据STP0。控制器100可以将数据组块储存在条带ST0_0中,以及可以将条带奇偶校验数据STP0储存在预定的奇偶校验区中。
与超级块奇偶校验数据相似,条带奇偶校验数据可以用来校正数据组块中的错误位。例如,当在储存在页P0_0中的数据组块中出现错误位时,控制器100可以从储存媒介200读取包括在条带ST0_0中的页P0_0和P1_0中储存的数据组块,以及与条带ST0_0相对应的条带奇偶校验数据STP0,并且可以基于读取的数据组块和读取的条带奇偶校验数据STP0来校正错误位。
根据一个实施例,控制器100可以通过使用条带奇偶校验数据STP0至STP3代替要储存在超级块SB0_0中的数据组块,来产生超级块奇偶校验数据PT_A1和PT_A2。换言之,通过对针对相同数据组中包括的数据组块所产生的多个条带奇偶校验数据执行逻辑操作,控制器100可以针对相应的数据组产生超级块奇偶校验数据。例如,通过对针对数据组A1中包括的数据组块所产生的条带奇偶校验数据STP0和STP2执行逻辑操作,控制器100可以针对数据组A1产生超级块奇偶校验数据PT_A1。
根据一个实施例,当针对各个条带ST0_0至ST0_3顺序地产生条带奇偶校验数据STP0至STP3时,仅最近写入的针对预定数量的条带的条带奇偶校验数据可以被保留。这是因为连续地管理针对各个条带ST0_0至ST0_3的所有条带奇偶校验数据STP0至STP3会是相当繁重的。因此,仅最近写入的且易受后续写入操作影响而出现错误的一些条带的条带奇偶校验数据可以保留在控制器100或储存媒介200的奇偶校验区中。
根据实施例,由于超级块奇偶校验数据具有比条带奇偶校验数据小的尺寸,因此会需要更小的奇偶校验区。因此,可以减少储存管理方面的负担,且可以改善空间利用效率。此外,即使条带奇偶校验数据未被保留,由于在储存于储存媒介200中的数据组块中出现的错误位可以经由超级块奇偶校验数据来校正,因此仍可以改善数据的可靠性。
图14是图示数据储存设备10的用于产生条带奇偶校验数据和超级块奇偶校验数据的方法的示图。图14图示针对要储存在图10的超级块SB3_0中的数据组块所产生的条带奇偶校验数据SPT00至SPT71和超级块奇偶校验数据PT_G1至PT_G8。
参见图14,超级块SB3_0可以包括条带ST1_0至ST1_7。控制器100可以针对条带ST1_0至ST1_7中的每个产生两个条带奇偶校验数据。根据与包括在条带中的数据组块相对应的平面偏移,控制器100可以将要储存在条带中的数据组块进行分类,并且可以产生条带奇偶校验数据。例如,在条带ST1_0中,控制器100可以针对要储存在与平面偏移“0”相对应的页LP60_0和LP70_0中的数据组块产生条带奇偶校验数据STP00,以及可以针对要储存在与平面偏移“1”相对应的页LP61_0和LP71_0中的数据组块产生条带奇偶校验数据STP01。以此方式,当针对条带ST1_0的条带奇偶校验数据STP00和STP01两者都存在时,可以校正在与相同字线偏移相对应的页(例如,页LP60_0和LP61_0)中储存的各个数据组块中同时出现的错误位。
根据一个实施例,控制器100可以通过使用条带奇偶校验数据STP00至STP71代替要储存在超级块SB3_0中的数据组块来产生超级块奇偶校验数据PT_G1至PT_G8。例如,通过对针对数据组G1中包括的数据组块所产生的条带奇偶校验数据STP00和STP40执行逻辑操作,控制器100可以针对数据组G1产生超级块奇偶校验数据PT_G1。
图15a至15d是图示控制器100的用于产生超级块奇偶校验数据的方法的示图。在图15a至15d中,如上面参照图3描述的,控制器100可以根据与要储存数据组块的页相对应的字线偏移WLO来将超级块SB0_0的数据组块分类为数据组A1和A2,以及可以产生超级块奇偶校验数据PT_A1和PT_A2。
为了针对数据组A1产生超级块奇偶校验数据PT_A1,控制器100可以包括储存部111,储存部111用于储存对数据组A1中包括的数据组块执行逻辑操作(例如,异或逻辑操作)的结果。此外,为了针对数据组A2产生超级块奇偶校验数据PT_A2,控制器100可以包括储存部112,储存部112用于储存对数据组A2中包括的数据组块执行逻辑操作(例如,异或逻辑操作)的结果。
根据一个实施例,控制器100中要包括的储存部的数量可以取决于要产生的超级块奇偶校验数据的数量。
参见图15a,控制器100可以根据与要储存数据组块D0的页相对应的字线偏移WLO来将要储存在超级块SB0_0中的数据组块D0分类为数据组A1。控制器100可以将数据组块D0储存在储存部111中。控制器100可以将数据组块D0储存在超级块SB0_0中。
参见图15b,控制器100可以根据与要储存数据组块D1的页相对应的字线偏移WLO来将要储存在超级块SB0_0中的数据组块D1分类为数据组A1。控制器100可以对数据组块D0和数据组块D1执行逻辑操作,以及可以将逻辑操作的结果储存在储存部111中。控制器100可以将数据组块D1储存在超级块SB0_0中。
参见图15c,控制器100可以根据与要储存数据组块D2的页相对应的字线偏移WLO来将要储存在超级块SB0_0中的数据组块D2分类为数据组A2。控制器100可以将数据组块D2储存在储存部112中。控制器100可以将数据组块D2储存在超级块SB0_0中。
参见图15d,控制器100可以将数据组块D3至D7分类为数据组A1和A2,可以根据这种分类来执行逻辑操作,以及可以将逻辑操作的结果储存在储存部111和112中。当超级块SB0_0充满数据组块时,控制器100可以将储存在储存部111和112中的逻辑操作结果作为超级块奇偶校验数据PT_A1和PT_A2储存在储存媒介200的预定奇偶校验区中。
虽然未示出,但是控制器100也可以以与上面参照图15a至15d描述的方式实质相同方式来产生条带奇偶校验数据。控制器100还可以包括与条带奇偶校验数据相对应的储存部。
图16是图示根据一个实施例的操作数据储存设备10的方法的流程图。图16示出数据储存设备10的用于产生超级块奇偶校验数据的方法。
在步骤S110,控制器100可以根据要储存多个数据组块的超级块的目标区域的属性,来将超级块的多个数据组块分类为多个数据组。目标区域的属性可以是平面偏移、字线偏移、页偏移和页类型之中的至少一个。
在步骤S120,控制器100可以针对多个相应的数据组来产生超级块奇偶校验数据。控制器100可以通过对分类为相同数据组的数据组块执行逻辑操作来产生对应的超级块奇偶校验数据。
在步骤S130,控制器100可以将多个数据组块储存在超级块中。控制器100可以将已被执行了用于产生超级块奇偶校验数据的逻辑操作的数据组块储存在超级块中。
在步骤S140,控制器100可以将超级块奇偶校验数据储存在储存媒介200的奇偶校验区中。
图17是图示根据一个实施例的操作数据储存设备10的方法的流程图。图17示出数据储存设备10的用于经由超级块奇偶校验数据来校正储存的数据组块的错误位的方法。
在步骤S210,控制器100可以检测分类为多个数据组之中的第一数据组的数据组块中的错误位。例如,控制器100可以在读取储存在储存媒介200中的数据组块时检测数据组块中的错误位。
在步骤S220,控制器100可以从储存媒介200读取分类为第一数据组的数据组块和针对第一数据组产生的超级块奇偶校验数据。控制器100可以从储存媒介200读取除具有错误位的数据组块之外的其余数据组块。
在步骤S230,控制器100可以基于读取的第一数据组和读取的超级块奇偶校验数据来校正错误位。
图18是图示根据一个实施例的固态驱动器(SSD)1000的框图。
SSD 1000可以包括SSD控制器1100和储存媒介1200。
SSD控制器1100可以控制主机设备1500与储存媒介1200之间的数据交换。SSD控制器1100可以以与图1的控制器100实质相似的方式来操作。SSD控制器1100可以包括处理器1110、RAM 1120、ROM 1130、ECC单元1140、主机接口单元1150和储存接口单元1160。
处理器可以控制SSD控制器1100的一般操作。处理器1110可以根据来自主机设备1500的请求来将数据储存在储存媒介1200中以及从储存媒介1200读取储存的数据。为了有效管理储存媒介1200,处理器1110可以控制SSD 1000的内部操作,诸如合并操作、磨损均衡操作等。
RAM 1120可以储存要由处理器1110使用的程序和程序数据。RAM 1120可以在将从主机接口单元1150传送来的数据传送到储存媒介1200之前,暂时储存该数据,以及可以在将从储存媒介1200传送来的数据传送到主机设备1500之前,暂时储存该数据。
ROM 1130可以储存要由处理器1110读取的程序码。程序码可以包括要由处理器1110处理的命令,用于处理器1110控制SSD控制器1100的内部单元。
ECC单元1140可以对要储存在储存媒介1200中的数据进行编码,且可以对从储存媒介1200读取的数据进行译码。ECC单元1140可以根据ECC算法来检测和校正数据中出现的错误。
主机接口单元1150可以与主机设备1500交换请求、数据等。
储存接口单元1160可以将控制信号和数据传送到储存媒介1200。可以从储存媒介1200传送数据给储存接口单元1160。储存接口单元1160可以经由多个通道CH0至CHn与储存媒介1200电耦接。
储存媒介1200可以包括多个非易失性存储器件NVM0至NVMn。与图1所示的非易失性存储器件210和211类似,多个非易失性存储器件NVM0至NVMn中的每个可以根据SSD控制器1100的控制来储存数据组块和超级块奇偶校验数据。
图19是图示包括数据储存设备10的数据处理系统2000的框图。
数据处理系统2000可以包括计算机、笔记本型电脑、上网本、智能电话、数字电视、数码相机、导航仪等。数据处理系统2000可以包括主处理器2100、主存储设备2200、储存设备2300和输入/输出设备2400。数据处理系统2000的内部单元可以经由系统总线2500交换数据、控制信号等。
主处理器2100可以控制数据处理系统2000的一般操作。例如,主处理器2100可以是中央处理单元,诸如微处理器。主处理器2100可以在主存储设备2200上执行操作系统、应用程序、设备驱动器等的软件。
主存储设备2200可以储存要由主处理器2100使用的程序和程序数据。主存储设备2200可以暂时储存要传送给储存设备2300和输入/输出设备2400的数据。
储存设备2300可以包括存储控制器2310和储存媒介2320。储存设备2300可以以与图1所示的数据储存设备10实质相同的方式来配置和操作。
输入/输出设备2400可以包括能够与用户交换数据(诸如从用户接收用于控制数据处理系统2000的命令或者向用户提供处理过的结果)的键盘、扫描仪、触摸屏、鼠标等。
根据一个实施例,数据处理系统2000可以经由网络2600(诸如局域网(LAN)、广域网(WAN)、无线网等)与至少一个服务器2700通信。数据处理系统2000可以包括网络接口单元(未示出)以访问网络2600。
尽管上面已经描述了各种实施例,但是本领域技术人员将理解,描述的实施例仅仅是示例。因此,不应基于描述的实施例来限制本文描述的数据储存设备及其操作方法。
Claims (20)
1.一种数据储存设备,包括:
多个非易失性存储器件,所述多个非易失性存储器件包括多个块;以及
控制器,适用于针对超级块产生超级块奇偶校验数据,所述超级块由所述多个块中的一个或更多个形成。
2.根据权利要求1所述的数据储存设备,
其中,控制器将要储存在超级块中的多个数据组块分类为多个数据组,且针对所述多个数据组中的每个产生超级块奇偶校验数据,以及
其中,根据超级块中的要储存对应数据组块的目标区域的属性,所述多个数据组块中的每个被分类为所述多个数据组中的任何一个。
3.根据权利要求2所述的数据储存设备,其中,属性包括与目标区域相对应的平面偏移、字线偏移、页偏移和页类型之中的一个或更多个。
4.根据权利要求2所述的数据储存设备,其中,控制器基于分类为所述多个数据组中的第一数据组的其它数据组块以及基于针对第一数据组的超级块奇偶校验数据中的一个,来校正分类为第一数据组的数据组块中的一个数据组块的错误位。
5.一种数据储存设备,包括:
多个非易失性存储器件,包括多个块;以及
控制器,适用于将多个数据组块储存在超级块中,以及针对所述多个数据组块产生超级块奇偶校验数据,所述超级块包括所述多个块之中的相同块偏移的块。
6.根据权利要求5所述的数据储存设备,其中,控制器根据要储存所述多个数据组块的超级块的目标区域的属性来将所述多个数据组块分类为多个数据组,以及针对相应的所述多个数据组产生超级块奇偶校验数据。
7.根据权利要求6所述的数据储存设备,其中,控制器基于分类为所述多个数据组中的第一数据组的其它数据组块以及基于针对第一数据组的超级块奇偶校验数据中的一个,来校正分类为第一数据组的数据组块中的一个数据组块的错误位。
8.根据权利要求5所述的数据储存设备,其中,控制器根据与要储存所述多个数据组块的超级块的每个目标区域相对应的平面偏移和页类型中的一个或更多个,来将所述多个数据组块分类为多个数据组,以及针对相应的所述多个数据组来产生超级块奇偶校验数据。
9.根据权利要求5所述的数据储存设备,其中,控制器根据与要储存所述多个数据组块的超级块的目标区域相对应的字线偏移和页类型中的一个或更多个,来将所述多个数据组块分类为多个数据组,以及针对相应的所述多个数据组来产生超级块奇偶校验数据。
10.根据权利要求5所述的数据储存设备,其中,控制器将所述多个数据组块分类为多个数据组,使得在所述多个非易失性存储器件中的每个中,与所述多个块中的每个块中的相邻字线、所述多个块之中的相同字线以及所述多个块之中的相同页类型中的一个或更多个相对应的数据组块被分类为不同的数据组,以及控制器针对相应的所述多个数据组产生超级块奇偶校验数据。
11.根据权利要求5所述的数据储存设备,
其中,超级块包括多个条带,每个条带由所述多个块中的具有相同页偏移的部分来形成,以及
其中,控制器产生与所述多个条带相对应的条带奇偶校验数据。
12.根据权利要求11所述的数据储存设备,其中,控制器通过对条带奇偶校验数据执行逻辑操作来产生超级块奇偶校验数据。
13.一种操作数据储存设备的方法,所述数据储存设备包括多个非易失性存储器件,所述方法包括:
将多个数据组块储存在超级块中,所述超级块包括所述多个非易失性存储器件中包括的多个块之中的相同块偏移的块;以及
针对所述多个数据组块产生超级块奇偶校验数据。
14.根据权利要求13所述的方法,还包括:
根据要储存所述多个数据组块的超级块的目标区域的属性来将所述多个数据组块分类为多个数据组;以及
针对相应的所述多个数据组产生超级块奇偶校验数据。
15.根据权利要求14所述的方法,还包括:基于分类为所述多个数据组中的第一数据组的其它数据组块以及基于针对第一数据组的超级块奇偶校验数据中的一个来校正分类为第一数据组的数据组块中的一个数据组块的错误位。
16.根据权利要求13所述的方法,还包括:
根据与要储存所述多个数据组块的超级块的每个目标区域相对应的平面偏移和页类型中的一个或更多个,来将所述多个数据组块分类为多个数据组;以及
针对相应的所述多个数据组产生超级块奇偶校验数据。
17.根据权利要求13所述的方法,还包括:
根据与要储存所述多个数据组块的超级块的每个目标区域相对应的字线偏移和页类型中的一个或更多个,来将所述多个数据组块分类为多个数据组;以及
针对相应的所述多个数据组产生超级块奇偶校验数据。
18.根据权利要求13所述的方法,还包括:
将所述多个数据组块分类为多个数据组,使得在所述多个非易失性存储器件中的每个中,与所述多个块中的每个块中的相邻字线、所述多个块之中的相同字线以及所述多个块之中的相同页类型中的一个或更多个相对应的数据组块被分类为不同的数据组;以及
针对相应的所述多个数据组产生超级块奇偶校验数据。
19.根据权利要求13所述的方法,还包括:
产生与多个条带相对应的条带奇偶校验数据,所述多个条带中的每个条带由所述多个块中的具有相同页偏移的部分形成。
20.根据权利要求19所述的方法,还包括:
通过对条带奇偶校验数据执行逻辑操作来产生超级块奇偶校验数据。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150108642A KR102372825B1 (ko) | 2015-07-31 | 2015-07-31 | 데이터 저장 장치 및 그것의 동작 방법 |
KR10-2015-0108642 | 2015-07-31 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106409344A true CN106409344A (zh) | 2017-02-15 |
CN106409344B CN106409344B (zh) | 2021-03-02 |
Family
ID=57883561
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610118031.6A Active CN106409344B (zh) | 2015-07-31 | 2016-03-02 | 数据储存设备及其操作方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10127997B2 (zh) |
KR (1) | KR102372825B1 (zh) |
CN (1) | CN106409344B (zh) |
TW (1) | TWI717335B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107391296A (zh) * | 2016-04-27 | 2017-11-24 | 慧荣科技股份有限公司 | 存取闪存模块的方法及相关的闪存控制器与记忆装置 |
CN109117319A (zh) * | 2017-06-23 | 2019-01-01 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
US10713115B2 (en) | 2016-04-27 | 2020-07-14 | Silicon Motion, Inc. | Flash memory apparatus and storage management method for flash memory |
US10771091B2 (en) | 2016-04-27 | 2020-09-08 | Silicon Motion Inc. | Flash memory apparatus and storage management method for flash memory |
US10846173B2 (en) | 2016-04-27 | 2020-11-24 | Silicon Motion, Inc. | Method for accessing flash memory module and associated flash memory controller and memory device |
US11323133B2 (en) | 2016-04-27 | 2022-05-03 | Silicon Motion, Inc. | Flash memory apparatus and storage management method for flash memory |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10110255B2 (en) | 2016-04-27 | 2018-10-23 | Silicon Motion Inc. | Method for accessing flash memory module and associated flash memory controller and memory device |
US9910772B2 (en) | 2016-04-27 | 2018-03-06 | Silicon Motion Inc. | Flash memory apparatus and storage management method for flash memory |
US10025662B2 (en) | 2016-04-27 | 2018-07-17 | Silicon Motion Inc. | Flash memory apparatus and storage management method for flash memory |
US10705911B2 (en) * | 2017-04-24 | 2020-07-07 | Hewlett Packard Enterprise Development Lp | Storing data in a distributed storage system |
US10691540B2 (en) | 2017-11-21 | 2020-06-23 | SK Hynix Inc. | Soft chip-kill recovery for multiple wordlines failure |
US10372355B2 (en) | 2017-12-29 | 2019-08-06 | Micron Technology, Inc. | Managing partial superblocks in a NAND device |
KR102520412B1 (ko) * | 2018-09-19 | 2023-04-12 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작방법 |
KR20210028335A (ko) * | 2019-09-04 | 2021-03-12 | 에스케이하이닉스 주식회사 | 메모리 시스템, 메모리 컨트롤러 및 동작 방법 |
US11321173B2 (en) | 2019-12-31 | 2022-05-03 | Micron Technology, Inc. | Managing storage of multiple plane parity data in a memory sub-system |
US11442808B2 (en) | 2020-03-12 | 2022-09-13 | Kioxia Corporation | Memory system |
JP2022023584A (ja) | 2020-07-27 | 2022-02-08 | キオクシア株式会社 | メモリシステム及び制御方法 |
US11568938B2 (en) * | 2020-11-03 | 2023-01-31 | Western Digital Technologies, Inc. | QLC data programming |
CN113168866A (zh) * | 2021-03-05 | 2021-07-23 | 长江存储科技有限责任公司 | 用于独立磁盘冗余阵列条带化以防止编程故障的方法及其装置 |
CN115329399B (zh) * | 2022-10-13 | 2023-01-31 | 江苏华存电子科技有限公司 | 基于nand的垂直水平raid4数据保护管理方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6993701B2 (en) * | 2001-12-28 | 2006-01-31 | Network Appliance, Inc. | Row-diagonal parity technique for enabling efficient recovery from double failures in a storage array |
CN104461926A (zh) * | 2014-11-27 | 2015-03-25 | 记忆科技(深圳)有限公司 | 一种基于二维raid的固态硬盘数据保护方法 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5499337A (en) * | 1991-09-27 | 1996-03-12 | Emc Corporation | Storage device array architecture with solid-state redundancy unit |
US6351838B1 (en) * | 1999-03-12 | 2002-02-26 | Aurora Communications, Inc | Multidimensional parity protection system |
US6862692B2 (en) * | 2001-01-29 | 2005-03-01 | Adaptec, Inc. | Dynamic redistribution of parity groups |
US7400549B2 (en) * | 2005-04-28 | 2008-07-15 | Micron Technology, Inc. | Memory block reallocation in a flash memory device |
US8285919B2 (en) * | 2008-05-27 | 2012-10-09 | Initio Corporation | SSD with improved bad block management |
US8572311B1 (en) * | 2010-01-11 | 2013-10-29 | Apple Inc. | Redundant data storage in multi-die memory systems |
US8984241B2 (en) * | 2010-07-07 | 2015-03-17 | Nexenta Systems, Inc. | Heterogeneous redundant storage array |
US8589730B2 (en) * | 2010-08-31 | 2013-11-19 | Apple Inc. | Handling errors during device bootup from a non-volatile memory |
US8578208B2 (en) * | 2011-01-13 | 2013-11-05 | Micron Technology, Inc. | Determining location of error detection data |
US8902653B2 (en) | 2011-08-12 | 2014-12-02 | Micron Technology, Inc. | Memory devices and configuration methods for a memory device |
KR101826051B1 (ko) * | 2012-02-27 | 2018-02-07 | 삼성전자주식회사 | 비휘발성 메모리 장치의 제어 방법 및 비휘발성 메모리 시스템 |
CN103383610A (zh) * | 2012-05-02 | 2013-11-06 | 北京通世舟数字科技有限责任公司 | 一种液晶屏多点触摸方法 |
US9355024B2 (en) * | 2012-10-10 | 2016-05-31 | Apple Inc. | Systems and methods for nonvolatile memory performance throttling |
JP2015018451A (ja) * | 2013-07-11 | 2015-01-29 | 株式会社東芝 | メモリコントローラ、記憶装置およびメモリ制御方法 |
US9396062B1 (en) * | 2014-04-04 | 2016-07-19 | Seagate Technology Llc | Group based codes for multi-dimensional recording (MDR) |
US10162700B2 (en) * | 2014-12-23 | 2018-12-25 | International Business Machines Corporation | Workload-adaptive data packing algorithm |
US9489260B1 (en) * | 2015-05-26 | 2016-11-08 | Seagate Technology Llc | Flexible super block sizing for failed sector recovery |
-
2015
- 2015-07-31 KR KR1020150108642A patent/KR102372825B1/ko active IP Right Grant
- 2015-12-28 US US14/979,965 patent/US10127997B2/en active Active
-
2016
- 2016-02-16 TW TW105104518A patent/TWI717335B/zh active
- 2016-03-02 CN CN201610118031.6A patent/CN106409344B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6993701B2 (en) * | 2001-12-28 | 2006-01-31 | Network Appliance, Inc. | Row-diagonal parity technique for enabling efficient recovery from double failures in a storage array |
CN104461926A (zh) * | 2014-11-27 | 2015-03-25 | 记忆科技(深圳)有限公司 | 一种基于二维raid的固态硬盘数据保护方法 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10846173B2 (en) | 2016-04-27 | 2020-11-24 | Silicon Motion, Inc. | Method for accessing flash memory module and associated flash memory controller and memory device |
US10643733B2 (en) | 2016-04-27 | 2020-05-05 | Silicon Motion, Inc. | Method, flashing memory controller, memory device for accessing 3D flash memory having multiple memory chips |
US10713115B2 (en) | 2016-04-27 | 2020-07-14 | Silicon Motion, Inc. | Flash memory apparatus and storage management method for flash memory |
US10771091B2 (en) | 2016-04-27 | 2020-09-08 | Silicon Motion Inc. | Flash memory apparatus and storage management method for flash memory |
CN107391296B (zh) * | 2016-04-27 | 2020-11-06 | 慧荣科技股份有限公司 | 存取闪存模块的方法及相关的闪存控制器与记忆装置 |
CN107391296A (zh) * | 2016-04-27 | 2017-11-24 | 慧荣科技股份有限公司 | 存取闪存模块的方法及相关的闪存控制器与记忆装置 |
US11030042B2 (en) | 2016-04-27 | 2021-06-08 | Silicon Motion, Inc. | Flash memory apparatus and storage management method for flash memory |
US11323133B2 (en) | 2016-04-27 | 2022-05-03 | Silicon Motion, Inc. | Flash memory apparatus and storage management method for flash memory |
US11500722B2 (en) | 2016-04-27 | 2022-11-15 | Silicon Motion, Inc. | Flash memory apparatus and storage management method for flash memory |
US11847023B2 (en) | 2016-04-27 | 2023-12-19 | Silicon Motion, Inc. | Flash memory apparatus and storage management method for flash memory |
US11916569B2 (en) | 2016-04-27 | 2024-02-27 | Silicon Motion, Inc. | Flash memory apparatus and storage management method for flash memory |
CN109117319A (zh) * | 2017-06-23 | 2019-01-01 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN109117319B (zh) * | 2017-06-23 | 2022-03-29 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
Also Published As
Publication number | Publication date |
---|---|
US20170031751A1 (en) | 2017-02-02 |
KR20170015757A (ko) | 2017-02-09 |
US10127997B2 (en) | 2018-11-13 |
TW201705002A (zh) | 2017-02-01 |
CN106409344B (zh) | 2021-03-02 |
TWI717335B (zh) | 2021-02-01 |
KR102372825B1 (ko) | 2022-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106409344A (zh) | 数据储存设备及其操作方法 | |
US10771091B2 (en) | Flash memory apparatus and storage management method for flash memory | |
US10019355B2 (en) | Flash memory apparatus and storage management method for flash memory | |
CN109542675B (zh) | 存储器系统及其操作方法 | |
US10283216B2 (en) | Data storage device and data maintenance method thereof | |
EP2684134A2 (en) | Programmable data storage management | |
US20150301760A1 (en) | Correction of block errors for a system having non-volatile memory | |
US20160283319A1 (en) | Data storage device and encoding method thereof | |
CN111710358B (zh) | 闪存装置、闪存控制器及闪存存储管理方法 | |
US9286993B2 (en) | Determining read voltages for reading memory | |
US10365834B2 (en) | Memory system controlling interleaving write to memory chips | |
CN110489360A (zh) | 存储器控制器及该存储器控制器的操作方法 | |
US10133645B2 (en) | Data recovery in three dimensional non-volatile memory array after word line short | |
CN110489264A (zh) | 记忆装置页可用性管理方法及系统、记忆装置及电子装置 | |
US20240154624A1 (en) | Flash memory apparatus and storage management method for flash memory | |
CN111124290A (zh) | 应用于闪存存储装置的冗余方法及闪存存储装置 | |
CN102117230B (zh) | 数据写入方法、闪存控制器与闪存储存装置 | |
CN102411987B (zh) | 存储器件及其自交织方法 | |
CN102411987A (zh) | 存储器件及其自交织方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 |