CN113849121A - 用于访问条带形式的数据的存储器系统及其操作方法 - Google Patents
用于访问条带形式的数据的存储器系统及其操作方法 Download PDFInfo
- Publication number
- CN113849121A CN113849121A CN202110133334.6A CN202110133334A CN113849121A CN 113849121 A CN113849121 A CN 113849121A CN 202110133334 A CN202110133334 A CN 202110133334A CN 113849121 A CN113849121 A CN 113849121A
- Authority
- CN
- China
- Prior art keywords
- data
- page
- pages
- memory
- read
- 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.)
- Withdrawn
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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of 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/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
- 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
- G06F11/1032—Simple parity
-
- 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/1044—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 with specific ECC/EDC distribution
-
- 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/1048—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 arrangements adapted for a specific error detection or correction feature
-
- 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
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/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/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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
-
- 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
-
- 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
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
Abstract
本公开涉及一种存储器系统。该存储器系统包括:多个存储器装置;缓冲存储器;以及控制器,被配置成:每当完成对多个页面中的每个的读取操作时,生成多个页面的位图信息,以将读取操作已经成功的第一页面与读取操作已经失败的第二页面区分开,并且将位图信息存储在缓冲存储器中;每当对多个页面中的每个执行读取操作时,通过对多个页面之中的第一页面的数据累加地执行奇偶校验运算来生成奇偶校验数据,并且将该奇偶校验数据存储在缓冲存储器中;并且在对多个页面的读取操作完成之后检查位图信息,并且当多个页面之中存在第二页面时,通过参考奇偶校验数据来恢复第二页面的数据。
Description
相关申请的交叉引用
本申请要求于2020年6月9日提交的申请号为10-2020-0069602的韩国专利申请的优先权,该韩国专利申请通过引用整体并入本文。
技术领域
示例性实施例涉及一种存储器系统,并且更特别地,涉及一种用于访问条带形式的数据的存储器系统及其操作方法。
背景技术
近来,计算机环境范例已经转变为使得几乎能够随时随地访问计算系统的普适计算。因此,诸如移动电话、数码相机、笔记本电脑等的便携式电子装置的使用已经增加。这种便携式电子装置各自使用或包括使用或嵌入至少一个存储器装置的存储器系统,即数据存储装置。数据存储装置可以被用作便携式电子装置的主存储装置或辅助存储装置。
在计算系统中,相比于硬盘,使用非易失性半导体存储器装置的数据存储装置是有利的。这种数据存储装置由于没有机械驱动部件(例如,机械臂)而具有优异的稳定性和耐久性,并且具有高数据访问速度和低功耗。这种数据存储装置的示例包括通用串行总线(USB)存储器装置、具有各种接口的存储卡、固态驱动器(SSD)等。
发明内容
各个实施例涉及一种存储器系统及其操作方法,该存储器系统能够在读取通过对数据页面和奇偶校验页面进行分组而获得的条带数据中包括的多个页面的数据时更有效地恢复读取操作已经失败的页面的数据。
在实施例中,一种存储器系统可以包括:多个存储器装置;缓冲存储器;以及控制器,被配置成访问多个存储器装置中存储的条带数据,该条带数据是通过对多个存储器装置中包括的多个页面中存储的数据进行分组而获得的。控制器可以被配置成:通过根据预设顺序、以页面为单位读取多个页面中的每个中存储的数据来访问条带数据;每当完成对多个页面中的每个的读取操作时,生成多个页面的位图信息,以将读取操作已经成功的第一页面与读取操作已经失败的第二页面区分开,并且将该位图信息存储在缓冲存储器中;每当对多个页面中的每个执行读取操作时,通过对多个页面之中的第一页面的数据累加地(cumulatively)执行奇偶校验运算来生成奇偶校验数据,并且将该奇偶校验数据存储在缓冲存储器中;并且在对多个页面的读取操作完成之后检查位图信息,并且当多个页面之中存在第二页面时,通过参考奇偶校验数据来恢复第二页面的数据。
控制器可以包括错误校正码(ECC)单元,并且可以被配置成:根据预设顺序从与多个页面中的每个相对应的读取页面读取数据,使用ECC单元检查从读取页面中读取的数据中是否发生错误,并且当发生错误时,对从读取页面中读取的数据执行错误校正解码操作;当未发生错误或错误校正解码操作已经成功时,确定对读取页面执行的读取操作已经成功,并且将该读取页面分类为第一页面;并且当错误校正解码操作已经失败时,确定对该读取页面执行的读取操作已经失败,并且将该读取页面分类为第二页面。
控制器可以将位图信息的、与第一页面相对应的位设定为第一值,并且可以将位图信息的、与第二页面相对应的位设定为第二值,第二值不同于第一值。
多个存储器装置中的每个可以包括多个存储块,每个存储块包括多条字线,多条字线中的每条联接到相应存储块中的多个存储器单元,每个存储器单元存储N位数据。控制器可以通过以下方式来生成条带数据:选择多个存储器装置中的一个或多个,选择一个或多个所选择的存储器装置中的每个中包括的一个或多个存储块,选择一个或多个所选择的存储块中的每个中包括的一条或多条字线,选择联接到一条或多条所选择的字线中的每条的N个页面中的一个,并且根据预设顺序将所选择的页面分类为多个页面,该N个页面分别与N位数据相对应,其中N可以是等于或大于1的自然数。
控制器可以通过执行XOR运算作为奇偶校验运算来生成奇偶校验数据。
多个页面可以包括至少一个奇偶校验页面和多个数据页面。
当在完成对多个页面的读取操作之后,检查位图信息的结果指示多个页面之中存在第二页面并且控制器通过参考奇偶校验数据成功地恢复第二页面的数据时,控制器可以将第一页面的数据以及第二页面的恢复后的数据作为读取数据输出到主机。
当在完成对多个页面的读取操作之后,检查位图信息的结果指示多个页面之中存在第二页面并且控制器无法恢复第二页面的数据时,控制器可以将第一页面的数据作为读取数据输出到主机。
当在完成对多个页面的读取操作之后,检查位图信息的结果指示多个页面之中不存在第二页面时,控制器可以将第一页面的数据作为读取数据输出到主机。
在实施例中,一种操作存储器系统的方法,该存储器系统包括多个存储器装置和缓冲存储器,该方法可以包括:通过根据预设顺序、以页面为单位读取多个页面中存储的数据来访问条带数据,该条带数据是通过对多个存储器装置中包括的多个页面中存储的数据进行分组而获得的;当完成对多个页面中的每个的读取操作时,生成多个页面的位图信息,以将读取操作已经成功的第一页面与读取操作已经失败的第二页面区分开,并且将位图信息存储在缓冲存储器中;每当对多个页面中的每个执行读取操作时,通过对多个页面之中的第一页面的数据累加地执行奇偶校验运算来生成奇偶校验数据,并且将奇偶校验数据存储在缓冲存储器中,并且在对多个页面的读取操作完成之后检查位图信息,并且当多个页面之中存在第二页面时,通过参考奇偶校验数据来恢复第二页面的数据。
读取多个页面中存储的数据可以包括:根据预设顺序从与多个页面中的每个相对应的读取页面中读取数据,检查从读取页面中读取的数据中是否发生错误,并且当发生错误时,对从读取页面中读取的数据执行错误校正解码操作;当未发生错误或错误校正解码操作已经成功时,确定对读取页面执行的读取操作已经成功,并且将读取页面分类为第一页面;并且当错误校正解码操作已经失败时,确定对读取页面执行的读取操作已经失败,并且将读取页面分类为第二页面。
生成位图信息可以包括:可以将位图信息的、与第一页面相对应的位设定为第一值,并且将位图信息的、与第二页面相对应的位设定为第二值,第二值不同于第一值。
多个存储器装置中的每个可以包括多个存储块,每个存储块包括多条字线,多条字线中的每条联接到相应存储块中的多个存储器单元,每个存储器单元存储N位数据。该方法可以包括通过以下方式来生成条带数据:选择多个存储器装置中的一个或多个,选择一个或多个所选择的存储器装置中的每个中包括的一个或多个存储块,选择一个或多个所选择的存储块中的每个中包括的一条或多条字线,选择联接到一条或多条所选择的字线中的每条的N个页面中的一个,并且根据预设顺序将所选择的页面分类为多个页面,该N个页面分别与N位数据相对应,其中N可以是等于或大于1的自然数。
可以通过执行XOR运算作为奇偶校验运算来生成奇偶校验数据。
多个页面可以包括至少一个奇偶校验页面和多个数据页面。
当多个页面之中存在第二页面并且对第二页面的数据的恢复成功时,可以将第一页面的数据和第二页面的恢复后的数据作为读取数据输出到主机。
当多个页面之中存在第二页面并且对第二页面的数据的恢复失败时,可以将第一页面的数据作为读取数据输出到主机。
当多个页面之中不存在第二页面时,可以将第一页面的数据作为读取数据输出到主机。
根据实施例,当读取通过对数据页面和奇偶校验页面进行分组而获得的条带数据时,存储器系统及其操作方法可以每当以页面为单位的读取操作成功时,通过累加地执行奇偶校验运算来生成奇偶校验信息,并且当以页面为单位的读取操作失败时,通过参考奇偶校验信息来执行恢复操作。
根据实施例,存储器系统及其操作方法可以对读取操作已经失败的页面执行恢复操作,而无需重新读取读取操作已经成功的页面的数据。
附图说明
图1示出根据实施例的包括存储器系统的数据处理系统。
图2示出根据实施例的图1的存储器系统中包括的存储器装置。
图3示出根据实施例的用于访问图1的存储器系统中的条带形式的数据的操作。
图4A和图4B示出根据实施例的用于读取图1的存储器系统中的条带形式的数据的操作。
具体实施方式
下面参照附图更详细地描述本公开的各个实施例。然而,本技术的各方面和各特征可以以不同方式实现,以形成包括任何所公开实施例的变型的其它实施例。因此,本公开的技术不应被解释为限于本文阐述的实施例。相反,提供所描述的实施例,使得本公开是彻底和完整的,并且将本公开充分传达给本公开的技术所属领域的技术人员。在整个本公开中,相同的附图标记在本公开的各个附图和示例中指代相同的部件。注意的是,对“实施例”、“另一实施例”等的引用不一定仅意指一个实施例,并且对任何这种短语的不同引用不一定针对相同的实施例。
将理解的是,尽管本文可以使用术语“第一”、“第二”、“第三”等来识别各个元件,但是这些元件不受这些术语的限制。这些术语用于将一个元件与另外具有相同或相似名称的另一元件区分开。因此,在不脱离本技术的精神和范围的情况下,在一个实例中的第一元件可以在另一实例中被称为第二或第三元件。
附图不一定按比例绘制,并且在一些实例中,为了清楚地示出实施例的特征,比例可能已被放大。当元件被称为连接或联接到另一元件时,应当理解的是,前者可以直接连接或联接到后者,或者经由其间的一个或多个中间元件而电连接或联接到后者。另外,还将理解的是,当元件被称为在两个元件“之间”时,该元件可以是这两个元件之间的唯一元件,或者也可以存在一个或多个中间元件。
本文所使用的术语仅用于描述特定实施例的目的,而不旨在限制本公开的技术。如本文所使用的,除非上下文另外明确指示,否则单数形式旨在包括复数形式,反之亦然。类似地,不定冠词“一”和“一个”意指一个或多个,除非从语言或语境中清楚地指示仅一个。
将进一步理解的是,当在说明书中使用时,术语“包括”、“包括有”、“包含”和“包含有”指明所陈述元件的存在并且不排除一个或多个其它元件的存在或添加。如本文所使用的,术语“和/或”包括一个或多个相关所列项目的任意和所有组合。
除非另有定义,否则鉴于本公开,本文所使用的包括技术和科学术语在内的所有术语具有与本技术所属领域的普通技术人员通常理解的含义相同的含义。将进一步理解的是,除非在本文中明确定义,否则诸如在常用词典中所定义的那些的术语应当被解释为具有与在本公开和相关领域的语境中的含义一致的含义,并且不应以理想化或过于形式化的意义来解释。
在下面的描述中,阐述了许多具体细节,以便提供对本技术的全面理解。可以在没有一些或所有这些具体细节的情况下实践本技术。在其它情况下,为了避免不必要地模糊本技术,没有详细描述公知的工艺结构和/或过程。
还注意的是,除非另外特别指出,否则如对相关领域的技术人员来说显而易见的,在一些实例中,结合一个实施例描述的特征或元件可以单独使用,或者与另一实施例的其它特征或元件组合使用。
下面参照附图详细地描述本公开的实施例,其中相同的附图标记指代相同的元件。
图1示出根据实施例的包括存储器系统110的数据处理系统100。
图2示出根据实施例的图1的存储器系统110中包括的存储器装置。
图1的数据处理系统100可以进一步包括与存储器系统110接合或可操作地联接的主机102。
主机102可以包括诸如移动电话、MP3播放器、膝上型计算机等的便携式电子装置,或者诸如台式计算机、游戏机、电视(TV)、投影仪等的电子装置。
主机102可以包括至少一个操作系统(OS),OS通常可以管理和控制在主机102中执行的功能和操作。OS可以提供主机102与存储器系统110的用户之间的互操作性。OS可以支持与用户请求相对应的功能和操作。作为示例而非限制,根据主机102的移动性,OS可以包括通用操作系统、移动操作系统或两者。根据系统需求或用户环境,通用操作系统可以包括个人操作系统和企业操作系统。个人操作系统可以专用于支持普通用户的服务提供功能,并且可以包括Windows、Chrome等。企业操作系统可以专用于确保和支持高性能,并且可以包括Windows servers、Linux、Unix等。移动操作系统可以包括Android、iOS、WindowsMobile等。移动操作系统可以用于支持针对移动性的服务或功能(例如,省电功能)。
主机102可以包括多个操作系统。根据用户请求,主机102可以运行一个或多个操作系统,以与存储器系统110协同执行操作。主机102可以将与用户请求相对应的多个请求传输到存储器系统110中,从而在存储器系统110内执行与多个请求相对应的操作。
存储器系统110可以响应于来自主机102的请求而执行特定的功能或操作,并且特别地,可以存储待由主机102访问的数据。存储器系统110可以用作主机102的主存储器系统或辅助存储器系统。根据主机接口的协议,存储器系统110可以利用可以与主机102电联接的各种类型的存储装置中的任意一种来实施。存储装置可以包括固态驱动器(SSD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、缩小尺寸的MMC(RS-MMC)、微型MMC、安全数字(SD)卡、迷你SD、微型SD、通用串行总线(USB)存储装置、通用闪存(UFS)装置、紧凑型闪存(CF)卡、智能媒体(SM)卡和记忆棒等。
用于存储器系统110的存储装置可以利用例如动态随机存取存储器(DRAM)、静态RAM(SRAM)等的易失性存储器装置来实施,和/或利用例如只读存储器(ROM)、掩模ROM(MROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、铁电RAM(FRAM)、相变RAM(PRAM)、磁阻RAM(MRAM)、电阻式RAM(RRAM或ReRAM)、闪速存储器等的非易失性存储器装置来实施。
参照图1和图2,存储器系统110可以包括用于存储由主机102访问数据的数据存储装置150以及用于控制数据存储装置150的数据存储操作的控制器130。
存储器系统110的数据存储装置150和控制器130可以被集成到单个半导体装置中,该单个半导体装置可以被包括在如上面例示的各种类型的存储器系统中的任意一种中。存储器系统110可以形成SSD以提高操作速度。当存储器系统110利用SSD来实施时,与当主机102连接到硬盘时相比,可以提高连接到存储器系统110的主机102的操作速度。在另一实施例中,存储器系统110可以形成诸如以下的存储卡:PC卡(PCMCIA)、紧凑型闪存卡(CF)、智能媒体卡(例如,SM或SMC)、记忆棒、多媒体卡(例如,MMC、RS-MMC、或微型MMC)、安全数字(SD)卡(例如,SD、迷你SD、微型SD、或SDHC)、通用闪存等。
存储器系统110可以被配置为例如以下的装置的一部分:计算机、超级移动PC(UMPC)、工作站、上网本、个人数字助理(PDA)、便携式计算机、网络平板、平板电脑、无线电话、移动电话、智能电话、电子书、便携式多媒体播放器(PMP)、便携式游戏机、导航系统、黑匣子、数码相机、数字多媒体广播(DMB)播放器、三维(3D)电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、配置数据中心的存储装置、能够在无线环境下传输和接收信息的装置、配置家庭网络的各种电子装置中的一种、配置计算机网络的各种电子装置中的一种、配置远程信息处理网络的各种电子装置中的一种、射频识别(RFID)装置、或配置计算系统的各种组件中的一种。
参照图1和图2,存储器系统110中的数据存储装置150可以包括即使没有向其供应电力也能够保留所存储的数据的非易失性存储器装置。例如,数据存储装置150可以包括闪速存储器装置。因此,数据存储装置150可以通过执行写入操作将由主机102提供的数据作为非易失性数据存储在数据存储装置150中,并且通过执行读取操作将所存储的数据提供到主机102。
更具体地,数据存储装置150可以包括多个存储器装置1500至1503。存储器装置1500至1503中的每一个可以包括多个平面。参照图2,存储器装置1500包括多个平面PLANE00和PLANE01,并且存储器装置1501包括多个平面PLANE10和PLANE11。此外,平面PLANE00、PLANE01、PLANE10和PLANE11中的每一个可以包括多个存储块。例如,平面PLANE00可以包括三个存储块BLOCK000、BLOCK001和BLOCK002,平面PLANE01可以包括三个存储块BLOCK010、BLOCK011和BLOCK012,平面PLANE10可以包括三个存储块BLOCK100、BLOCK101和BLOCK102,并且平面PLANE11可以包括三个存储块BLOCK110、BLOCK111和BLOCK112。上面的存储块BLOCK000至BLOCK112中的每一个可以包括位于多条字线WL<0:100>和多条位线BL<0:9>之间的各个交叉处的多个存储器单元MEMORY CELL,多个存储器单元MEMORY CELL中的每一个存储一位或多位数据。
作为参考,图1示出数据存储装置150包括四个存储器装置1500至1503,但是实施例不限于此。在另一实施例中,数据存储装置150可以包括各种数量的存储器装置中的一种,例如,两个或八个存储器装置。图2示出一个存储器装置包括两个平面,但是实施例不限于此。在另一实施例中,一个存储器装置可以包括各种数量的平面中的一种,例如,四个或八个平面。此外,图2示出一个平面包括三个存储块,但是实施例不限于此。在另一实施例中,一个平面可以包括各种数量的存储块中的一种,例如,多于三个存储块。此外,图2示出一个存储块中包括101条字线WL<0:100>和10条位线BL<0:9>的配置。然而,一个存储块可以包括各种数量的字线中的一种,例如,多于101条字线,以及各种数量的位线中的一种,例如,多于10条位线。
数据存储装置150中包括的多个存储器装置1500至1503可以分别通过多个通道CH0至CH3联接到控制器130。例如,第零存储器装置1500可以通过第零通道CH0联接到控制器130,第一存储器装置1501可以通过第一通道CH1联接到控制器130,第二存储器装置1502可以通过第二通道CH2联接到控制器130,并且第三存储器装置1503可以通过第三通道CH3联接到控制器130。
作为参考,图2示出四个存储器装置1500至1503通过四个通道CH0至CH3联接到控制器130。然而,存储器装置的数量并不总是等于通道的数量。在另一实施例中,各种数量的存储器装置中的一种,例如两个或四个存储器装置,可以联接到一个通道。即,可以根据存储器系统110的使用目的和性能要求来改变数据存储装置150内的存储器装置的数量以及通道的数量。
当存储器装置1500至1503中的每一个包括多个平面并且一个存储器装置联接到一个通道时,多个平面中的每一个可以通过通路联接到通道。参照图2,第零存储器装置1500中包括的两个平面PLANE00和PLANE01可以分别通过第零通路WAY0和第一通路WAY1联接到第零通道CH0。类似地,第一存储器装置1501中包括的两个平面PLANE10和PLANE11可以分别通过第二通路WAY2和第三通路WAY3联接到第一通道CH1。
作为参考,图2示出因为一个存储器装置中包括两个平面,所以两个通路联接到一个通道。然而,实施例不限于此,并且可以根据有多少平面联接到一个通道来确定联接到一个通道的通路的数量。
数据存储装置150中包括的多个存储器装置1500至1503可以被认为是彼此不同的模块,并且通过诸如多个通道CH0至CH3的多个数据路径联接到控制器130。当多个存储器装置1500至1503和控制器130通过多个数据路径交换数据时,可以以交错方式在多个存储器装置1500至1503与控制器130之间交换数据。当使用多个数据路径以交错方式来交换数据时,相比于当通过一个数据路径来交换数据时,数据传送率可以更高。
多个存储器装置1500至1503可以分别包括多个存储块BLOCK000、BLOCK001和BLOCK002,BLOCK010、BLOCK011和BLOCK012,BLOCK100、BLOCK101和BLOCK102以及BLOCK110、BLOCK111和BLOCK112。根据一个存储器单元中存储的位的数量,多个存储器装置1500至1503中包括的多个存储块中的每一个可以是单层单元(SLC)存储块或多层单元(MLC)存储块。此处,SLC存储块包括由每个存储器单元存储一位数据的存储器单元实施的多个页面。SLC存储块可以具有高数据输入/输出(I/O)操作性能和高耐久性。MLC存储块包括由每个存储器单元存储多位数据(例如,两位或更多位数据)的存储器单元实施的多个页面。对于相同的空间,与SLC存储块相比,MLC存储块可以具有更大的存储容量。在存储容量方面,MLC存储块可以被高度集成。
在实施例中,多个存储器装置1500至1503中的每一个可以利用诸如双层单元存储块、三层单元(TLC)存储块、四层单元(QLC)存储块或其组合的MLC存储块来实施。双层单元存储块可以包括由每个存储器单元能够存储2位数据的存储器单元实施的多个页面。三层单元(TLC)存储块可以包括由每个存储器单元能够存储3位数据的存储器单元实施的多个页面。四层单元(QLC)存储块可以包括由每个存储器单元能够存储4位数据的存储器单元实施的多个页面。在另一实施例中,数据存储装置150可以利用包括由每个存储器单元能够存储5位或更多位数据的存储器单元实施的多个页面的块来实施。
在实施例中,多个存储器装置1500至1503中的每一个是诸如闪速存储器的非易失性存储器,例如NAND闪速存储器、NOR闪速存储器等。在另一实施例中,数据存储装置150可以包括相变随机存取存储器(PCRAM)、铁电随机存取存储器(FRAM)和自旋注入磁性存储器(例如,自旋转移扭矩磁性随机存取存储器(STT-MRAM))中的至少一种。
重新参照图1,存储器系统110中的控制器130响应于来自主机102的请求而控制数据存储装置150。例如,控制器130将从数据存储装置150读取的数据提供到主机102,并且将由主机102提供的数据存储在数据存储装置150中。对于这些操作,控制器130可以控制数据存储装置150的读取操作、写入操作和擦除操作。
控制器130可以包括主机接口(I/F)132、处理器134、错误校正码(ECC)单元138、电源管理单元(PMU)140、存储器接口(I/F)142和存储器144。
控制器130中的主机接口132可以处理由主机102提供的请求和数据,并且可以通过诸如以下的各种接口协议中的至少一种与主机102通信:通用串行总线(USB)、多媒体卡(MMC)、高速外围组件互连(PCI-e或PCIe)、小型计算机系统接口(SCSI)、串列SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、小型计算机系统接口(SCSI)、增强型小型磁盘接口(ESDI)和电子集成驱动器(IDE)。根据实施例,主机接口132可以与主机102交换数据,并且可以由被称为主机接口层(HIL)的固件来实施。
ECC单元138可以校正从数据存储装置150输出的数据的错误位,并且可以包括ECC编码器和ECC解码器。此处,ECC编码器可以对待编程到数据存储装置150中的数据执行错误校正编码,并且生成添加了ECC信息的经编码数据。当控制器130读取数据存储装置150中存储的数据时,ECC解码器可以检测和校正从数据存储装置150读取的数据中包含的错误位。换句话说,在对从数据存储装置150读取的数据执行错误校正解码之后,ECC单元138可以确定错误校正解码是否已经成功并输出指令信号,例如,校正成功信号或校正失败信号。ECC单元138可以使用在错误校正编码期间已经生成的ECC信息来校正读取数据中包括的错误位。当读取数据中包含的错误位的数量大于或等于可校正错误位的数量时,ECC单元138可以不校正错误位,而是可以输出指示校正错误位失败的校正失败信号。
ECC单元138可以基于诸如以下的编码调制来执行错误校正操作:低密度奇偶校验(LDPC)码、博斯-查德胡里-霍昆格姆(Bose-Chaudhuri-Hocquenghem,BCH)码、涡轮码、里德-所罗门(Reed-Solomon,RS)码、卷积码、递归系统码(RSC)、网格编码调制(TCM)、分组编码调制(BCM)或其组合。ECC单元138可以包括用于基于上述代码中的至少一种来执行错误校正操作的电路、模块、系统和装置中的任意一种。
存储器接口142可以用作用于处置在控制器130和数据存储装置150之间传输的命令和数据的接口,从而允许控制器130响应于从主机102传递的请求来控制数据存储装置150。当数据存储装置150是闪速存储器时,特别是当数据存储装置150是NAND闪速存储器时,存储器接口142可以在处理器134的控制下生成控制信号以控制数据存储装置150,并且可以处理待编程到数据存储装置150中或从数据存储装置150输出的数据。存储器接口142可以提供用于处置在控制器130和数据存储装置150之间传输的命令和数据的接口。根据实施例,存储器接口142可以由被称为闪存接口层(FIL)的固件来实施。
存储器144可以支持通过存储器系统110和控制器130执行的操作。存储器144可以存储针对存储器系统110和控制器130中的操作而生成或传递的临时数据或事务数据。控制器130可以响应于来自主机102的请求而控制数据存储装置150。控制器130可以将从数据存储装置150读取的数据传递到主机102中。存储器144可以临时存储待编程到数据存储装置150中的数据。存储器144可以用于存储控制器130和数据存储装置150执行诸如读取操作或编程/写入操作的操作所需的数据。
存储器144可以存储用于执行诸如主机102所请求的数据写入操作和数据读取操作的操作的数据,并且/或者存储在数据存储装置150与控制器130之间传输以执行诸如垃圾收集和损耗均衡的后台操作的数据。根据实施例,为了支持存储器系统110中的操作,存储器144可以包括程序存储器、数据存储器、写入缓冲器/高速缓存、读取缓冲器/高速缓存、数据缓冲器/高速缓存和映射缓冲器/高速缓存中的一种或多种。
存储器144可以利用易失性存储器来实施。例如,存储器144可以利用SRAM(静态随机存取存储器)或DRAM(动态随机存取存储器)来实施。此外,如图1所示,存储器144可以存在于控制器130的内部或外部。当存储器144存在于控制器130外部时,可以通过单独的存储器接口(未示出)来在存储器144和控制器130之间传输数据。
处理器134可以利用微处理器或中央处理器单元(CPU)来实施。存储器系统110可以包括一个或多个处理器。处理器134可以控制存储器系统110的全部操作。作为示例而非限制,处理器134可以响应于由主机102提供的写入请求或读取请求来控制数据存储装置150的编程操作或读取操作。根据实施例,处理器134可以使用或运行固件以控制存储器系统110的全部操作。本文中,固件可以是闪存转换层(FTL)。FTL可以用作主机102和数据存储装置150之间的接口。主机102可以通过FTL将对写入操作和读取操作的请求传输到数据存储装置150。
FTL可以管理地址映射、垃圾收集、损耗均衡等的操作。特别地,FTL可以加载、生成、更新或存储映射数据。因此,控制器130可以通过使用映射数据来将由主机102提供的逻辑地址与数据存储装置150的物理地址进行映射。地址映射操作使得数据存储装置150用作执行读取操作或写入操作的通用存储装置。通过使用基于映射数据的地址映射操作,当控制器130更新数据存储装置150的特定页面中存储的数据时,控制器130可以将更新后的数据编程到与该特定页面不同的空页面中,并且可以使该特定页面中存储的数据无效。另外,根据闪速存储器装置的特性的需要,控制器130可以利用编程有更新后的数据的页面的物理地址来更新与更新后的数据的逻辑地址相对应的物理地址。进一步地,控制器130可以将与编程有更新后的数据的页面的物理地址相对应的映射数据存储到FTL中。
例如,当在数据存储装置150中执行由主机102请求的操作时,控制器130使用处理器134。与数据存储装置150接合的处理器134可以处置与来自主机102的请求相对应的指令或命令。控制器130可以将与来自主机102的请求相对应的命令操作作为前台操作来执行,诸如与写入命令相对应的编程操作、与读取命令相对应的读取操作、与擦除/丢弃命令相对应的擦除/丢弃操作、或者与作为设定命令的设定参数命令或设定特征命令相对应的参数设定操作。
控制器130还可以使用处理器134对数据存储装置150执行后台操作。作为示例而非限制,针对数据存储装置150的后台操作包括垃圾收集(GC)操作,其中复制存储块中存储的数据并且将所复制的数据存储在另一存储块中。后台操作可以进一步包括损耗均衡(WL)操作,其中将数据存储装置150中的多个存储块BLOCK000至BLOCK112中的至少一个中存储的数据移动到多个存储块BLOCK000至BLOCK112中的至少另一个中。在后台操作期间,控制器130可以使用处理器134来执行将控制器130中存储的映射数据存储到多个存储块BLOCK000至BLOCK112中的至少一个的映射清除操作。由处理器134执行的后台操作可以进一步包括坏块管理操作,其中在多个存储块BLOCK000至BLOCK112之中检查坏存储块。
管理单元(未示出)可以被包括在处理器134中。管理单元可以对数据存储装置150执行坏块管理操作。管理单元可以发现处于不满足进一步使用条件的坏存储块,并且对该坏存储块执行坏块管理操作。当数据存储装置150是闪速存储器,例如是NAND闪速存储器时,由于NAND逻辑功能的特性,在编程操作期间可能发生编程失败。在执行坏块管理操作的同时,可以将编程失败的存储块中的数据或本应该被编程到坏存储块中的数据编程到新的存储块中。坏存储块可以显著地劣化具有三维(3D)堆叠结构的数据存储装置150的利用效率和存储器系统110的可靠性。因此,可能需要可靠的坏块管理来增强或提高存储器系统110的性能。
图3示出根据实施例的用于访问存储器系统110中的条带形式的数据的操作。
参照图3,存储器系统110可以包括用于存储由主机102访问的数据的数据存储装置150以及用于控制数据存储装置150的控制器130。控制器130可以包括主机接口132、处理器134、缓冲存储器144、ECC单元138和存储器接口142。缓冲存储器144对应于上面参照图1描述的存储器144。图3示出缓冲存储器144用作用于存储待从数据存储装置150读取或待写入到数据存储装置150中的数据的数据缓冲存储器的情况。
具体地,在数据存储装置150和控制器130之间,控制器130可以访问条带形式的数据。
当在数据存储装置150和控制器130之间,控制器130访问条带形式的数据时,这可以指示在数据存储装置150和控制器130之间,控制器130访问通过对数据页面DATAPAGE的用户数据ND+EF与奇偶校验页面PARITY PAGE的奇偶校验数据PD+EF进行分组而获得的条带形式的数据。即,当在数据存储装置150和控制器130之间,控制器130访问条带形式的数据时,控制器130可以将包括数据页面DATA PAGE和奇偶校验页面PARITY PAGE的多个页面PAGE进行分组,并且将分组后的页面PAGE传输到数据存储装置150。例如,当在数据存储装置150和控制器130之间,访问条带形式的数据时,控制器130可以对(M-K)个数据页面DATAPAGE<1:M-K>的用户数据ND+EF和K个奇偶校验页面PARITY PAGE<1:K>的奇偶校验数据PD+EF进行分组,并且向数据存储装置150传输分组后的数据,即条带数据STRIPE DATA。作为参考,M是等于或大于2的自然数,并且K是等于或大于1且等于或小于M的自然数。
更具体地,在下文中将描述将条带数据STRIPE DATA存储在数据存储装置150中的操作。
首先,控制器130可以通过主机接口132从主机102接收普通数据ND以及写入请求。控制器130可以在将从主机102接收的普通数据ND传输到数据存储装置150之前,将普通数据ND存储在缓冲存储器144中。
控制器130可以将通过对缓冲存储器144中存储的普通数据ND与奇偶校验数据PD进行分组而生成的条带数据STRIPE DATA传输到数据存储装置150,以便将条带数据STRIPEDATA存储在数据存储装置150中。
对于该操作,控制器130可以通过使用控制器130中包括的ECC单元138来对缓冲存储器144中存储的普通数据ND执行奇偶校验运算,例如XOR运算,来生成奇偶校验数据PD。
控制器130可以进一步通过使用控制器130中包括的ECC单元138来对普通数据ND和奇偶校验数据PD执行错误校正编码操作来生成ECC信息EF。在实施例中,控制器130可以生成与普通数据ND相对应的ECC信息EF和与奇偶校验数据PD相对应的ECC信息EF,并且将普通数据ND、奇偶校验数据PD以及所生成的ECC信息分组为条带数据STRIPE DATA。
因此,可以通过对包括普通数据ND和与该普通数据ND相对应的ECC信息EF的数据页面DATAPAGE的用户数据ND+EF以及包括奇偶校验数据PD和与该奇偶校验数据PD相对应的ECC信息EF的奇偶校验页面PARITY PAGE的奇偶校验数据PD+EF进行分组,来生成从控制器130传输到数据存储装置150的条带数据STRIPE DATA。例如,包括用户数据ND+EF和奇偶校验数据PD+EF的条带数据STRIPE DATA可以存储在如图3所示的M个页面PAGE<1:M>中。即,控制器130可以根据预设顺序、以页面为单位来将包括用户数据ND+EF和奇偶校验数据PD+EF的条带数据STRIPE DATA传输到数据存储装置150,以便将用户数据ND+EF和奇偶校验数据PD+EF存储在M个页面PAGE<1:M>中。此时,用户数据ND+EF可以包括(M-K)个数据页面DATAPAGE<1:M-K>中存储的(M-K)条普通数据ND以及与普通数据ND相对应的(M-K)条ECC信息EF,并且奇偶校验数据PD+EF可以包括K个奇偶校验页面PARITY PAGE<1:K>中存储的K条奇偶校验数据PD以及与奇偶校验数据PD相对应的K条ECC信息EF。作为参考,M是等于或大于2的自然数,并且K是等于或大于1并且等于或小于M的自然数。图3仅示出了在假设K为1的情况下的一个奇偶校验页面PARITY PAGE,但这仅仅是实施例。根据设计者的选择,可以将K设定为大于1的自然数。
此外,在下文中将描述从数据存储装置150中读取条带数据STRIPE DATA的操作。
首先,控制器130可以从主机102接收读取请求。控制器130可以根据预设顺序、以页面为单位从数据存储装置150读取存储条带数据STRIPE DATA的M个页面PAGE<1:M>。即,控制器130可以根据预设顺序、以页面为单位来读取(M-K)个数据页面DATAPAGE<1:M-K>和K个奇偶校验页面PARITY PAGE<1:K>,以便根据预设顺序、以页面为单位来读取M个页面PAGE<1:M>中存储的条带数据STRIPE DATA。
此时,每当根据预设顺序、以页面为单位对M个页面PAGE<1:M>页面执行读取操作时,控制器130可以生成位图信息BF,该位图信息BF用于在M个页面PAGE<1:M>之中,将读取操作已经成功的“第一页面”与读取操作已经失败的“第二页面”区分开,并且将所生成的位图信息BF存储在缓冲存储器144中。“第一页面”可以被称为“成功页面”,并且“第二页面”可以被称为“失败页面”。
例如,当假设M为5时,控制器130可以根据预设顺序、以页面为单位来读取五个页面。即,控制器130可以执行五次读取操作,以读取五个页面中存储的条带数据STRIPEDATA。此时,在五个页面之中,对第一至第三页面以及第五页面执行的读取操作可能成功,并且对第四页面执行的读取操作可能失败。在这种情况下,在五个页面之中,控制器130可以将第一至第三页面以及第五页面中的每一个分类为“成功页面”,并且将第四页面分类为“失败页面”。控制器130可以生成包括分别与五个页面相对应的五个位的位图信息BF。此时,在位图信息BF中包括的五个位之中,可以将与读取操作已经成功的第一至第三页面以及第五页面相对应的位设定为“1”。类似地,可以将与读取操作已经失败的第四页面相对应的位设定为“0”。即,可以将包括五个位的位图信息BF设定为分别与第一至第五页面相对应的“11 1 0 1”。
控制器130可以根据预设顺序、以页面为单位来读取存储条带数据STRIPE DATA的M个页面PAGE<1:M>,并且通过使用ECC单元138,使用条带数据STRIPE DATA中包括的ECC信息EF来对条带数据STRIPE DATA执行错误校正解码操作。即,控制器130可以在M个页面PAGE<1:M>中存储的条带数据STRIPE DATA之中,检查根据预设顺序而读取的页面的数据中是否发生错误。当页面的数据中发生错误时,控制器30可以对包括错误的页面的数据执行错误校正解码操作。
当在M个页面PAGE<1:M>中存储的条带数据STRIPE DATA之中,根据预设顺序而读取的页面的数据没有发生错误时,控制器130可以确定对页面的读取操作已经成功,并且将相应的页面分类为“成功页面”。控制器130可以将被分类为“成功页面”的页面的数据输出到主机102。
当即使在M个页面PAGE<1:M>之中的、根据预设顺序而读取的页面的数据中发生了错误,但是错误校正解码操作已经成功时,控制器130可以确定对该页面的读取操作已经成功,因此将相应的页面分类为“成功页面”。控制器130可以将被分类为“成功页面”的页面的数据输出到主机102。
当在M个页面PAGE<1:M>中存储的条带数据STRIPE DATA之中,根据预设顺序而读取的页面的数据发生了错误,并且对该数据执行的错误校正解码操作已经失败时,控制器130可以确定对该页面的读取操作已经失败,并且将相应的页面分类为“失败页面”。控制器130可以不将被分类为“失败页面”的页面的数据输出到主机102。
此时,每当根据预设顺序、以页面为单位读取M个页面PAGE<1:M>的操作成功时或者M个页面PAGE<1:M>中的任意一个被分类为“成功页面”时,控制器130可以生成奇偶校验数据PD并且将奇偶校验数据PD存储在缓冲存储器144中,奇偶校验数据PD是通过对每个被分类为“成功页面”的页面的数据累加地执行奇偶校验运算而生成的。即,在将被分类为“成功页面”的页面的数据输出到主机102之前,控制器130可以通过对每个被分类为“成功页面”的页面的数据累加地执行奇偶校验运算来生成奇偶校验数据PD。
在生成奇偶校验数据PD并且将奇偶校验数据PD存储在缓冲存储器144中之后,控制器130可以将每个被分类为“成功页面”的页面的数据输出到主机102,其中该数据用于生成奇偶校验数据PD。作为参考,每当根据预设顺序、以页面为单位对M个页面PAGE<1:M>执行读取操作时,控制器130可以根据最近最少使用(LRU)方法,将读取页面的数据之中的预定数量的数据存储在缓冲存储器144中。
也就是说,即使在通过奇偶校验运算将被分类为“成功页面”的页面的数据用于生成奇偶校验数据PD之后,在将预定数量的数据新存储在缓冲存储器144中之前的预定时段期间,也可不将该页面的数据输出到主机102,而是存储在缓冲存储器144中。然而,为了便于描述,下面的实施例将基于以下假设:通过奇偶校验运算将被分类为“成功页面”的页面的数据用于生成奇偶校验数据PD,然后将该页面的数据立即输出到主机102。
例如,当假设M为5时,控制器130可以根据预设顺序、以页面为单位来读取五个页面。即,控制器130可以执行五次读取操作以读取五个页面中存储的数据。此时,当对五个页面中的第一页面执行的读取操作成功时,控制器130可以生成位图信息BF,以将第一页面分类为“成功页面”,并且通过对从被分类为“成功页面”的第一页面读取的数据执行奇偶校验运算来同时地生成奇偶校验数据PD。然后,控制器130可以将从第一页面读取的数据输出到主机102中。此时,在将从第一页面读取的数据输出到主机102之后,控制器130可以从缓冲存储器144中删除或释放从第一页面读取的数据。
然后,当在对第一页面执行读取操作之后执行的、对五个页面中的第二页面执行的读取操作成功时,控制器130可以通过将第一页面和第二页面中的每一个分类为“成功页面”来更新位图信息BF,并且通过对从第二页面读取的数据累加地执行奇偶校验运算来同时地更新作为对第一页面执行奇偶校验运算的结果所生成的奇偶校验数据PD。然后,控制器130可以将从第二页面读取的数据输出到主机102中。即,控制器130可以根据对每个被分类为“成功页面”的第一和第二页面累加地执行奇偶校验运算的结果来更新奇偶校验数据PD,然后将从第二页面读取的数据输出到主机102。此时,控制器130可以将从第二页面读取的数据输出到主机102,然后从缓冲存储器144中删除或释放从第二页面读取的数据。
然后,当在对第二页面执行读取操作之后执行的、对五个页面中的第三页面执行的读取操作成功时,控制器130可以通过将第一至第三页面中的每一个分类为“成功页面”来更新位图信息BF,并且通过对从第三页面读取的数据累加地执行奇偶校验运算来同时地更新作为对第一和第二页面执行奇偶校验运算的结果所生成的奇偶校验数据PD。然后,控制器130可以将从第三页面读取的数据输出到主机102中。即,控制器130可以根据对每个被分类为“成功页面”的第一至第三页面累加地执行奇偶校验运算的结果来更新奇偶校验数据PD,然后将从第三页面读取的数据输出到主机102。此时,在将从第三页面读取的数据输出到主机102之后,控制器130可以从缓冲存储器144中删除或释放从第三页面读取的数据。
然后,当在对第三页面执行读取操作之后执行的、对五个页面中的第四页面执行的读取操作失败时,控制器130可以通过将第四页面分类为“失败页面”来更新位图信息BF。在这种情况下,因为第四页面被分类为“失败页面”,所以不对第四页面执行奇偶校验运算。
然后,当在对第四页面执行读取操作之后执行的、对五个页面中的第五页面执行的读取操作成功时,控制器130可以通过将第一至第三页面以及第五页面中的每一个分类为“成功页面”来更新位图信息BF,并且通过对从第五页面读取的数据累加地执行奇偶校验运算来同时地更新作为对第一至第三页面执行奇偶校验运算的结果所生成的奇偶校验数据PD。然后,控制器130可以将从第五页面读取的数据输出到主机102中。即,控制器130可以根据对每个被分类为“成功页面”的第一至第三页面以及第五页面累加地执行奇偶校验运算的结果来更新奇偶校验数据PD,然后将从第五页面读取的数据输出到主机102。此时,在将从第五页面读取的数据输出到主机102之后,控制器130可以从缓冲存储器144中删除或释放从第五页面读取的数据。
作为参考,用于生成奇偶校验数据PD的奇偶校验运算可以包括XOR运算。即,对从每个被分类为“成功页面”的第一至第三页面以及第五页面读取的数据执行XOR运算,以生成和更新奇偶校验数据PD。
在对存储条带数据STRIPE DATA的M个页面PAGE<1:M>执行的读取操作完成之后,控制器130可以检查缓冲存储器144中存储的位图信息BF,以便检查在读取操作完成的M个页面PAGE<1:M>之中是否存在失败页面。当缓冲存储器144中存储的位图信息BF的检查结果指示在M个页面PAGE<1:M>之中存在失败页面时,控制器130可以通过参考缓冲存储器144中存储的奇偶校验数据PD来恢复失败页面的数据。即,控制器130中包括的ECC单元138可以使用缓冲存储器144中存储的奇偶校验数据PD来恢复读取操作已经失败的失败页面的数据。在实施例中,对失败页面的数据的恢复操作包括对失败页面的数据与奇偶校验数据PD执行XOR运算。
此时,当ECC单元138成功恢复失败页面的数据时,控制器130可以将已经由ECC单元138成功恢复的失败页面的数据作为读取数据输出到主机102。即,可以将已经输出到主机102的、成功页面的数据以及已经由ECC单元138恢复的失败页面的数据作为读取数据输出到主机102。另一方面,当ECC单元138无法恢复失败页面的数据时,控制器130可以仅将成功页面的数据作为读取数据输出到主机102。当缓冲存储器144中存储的位图信息BF的检查结果指示在M个页面PAGE<1:M>中不存在失败页面或仅存在成功页面时,控制器130可以将成功页面的数据作为读取数据输出到主机102。
图4A和图4B示出根据实施例的用于读取存储器系统中的条带形式的数据的操作。将参照图2和图3所示的存储器系统110来描述图4A和图4B所示的操作。
图2、图3和图4A可以基于以下假设:将三个条带数据LSB STRIPE、CSB STRIPE和MSB STRIPE存储在数据存储装置150中包括的多个存储器装置1500至1503之中的第零存储器装置1500和第一存储器装置1501中。
具体地,如上面参照图2所述,第零存储器装置1500可以包括多个平面PLANE00和PLANE01,并且第一存储器装置1501可以包括多个平面PLANE10和PLANE11。此外,平面PLANE00可以包括多个存储块BLOCK000、BLOCK001和BLOCK002,平面PLANE01可以包括多个存储块BLOCK010、BLOCK011和BLOCK012,平面PLANE10可以包括多个存储块BLOCK100、BLOCK101和BLOCK102,并且平面PLANE11可以包括多个存储块BLOCK110、BLOCK111和BLOCK112。存储块BLOCK000、BLOCK001、BLOCK002、BLOCK010、BLOCK011、BLOCK012、BLOCK100、BLOCK101、BLOCK102、BLOCK110、BLOCK111和BLOCK112中的每一个可以包括以阵列布置的、位于多条字线WL<0:100>和多条位线BL<0:9>之间的各个交叉处的多个存储器单元MEMORY CELL,每个存储器单元能够存储一位或多位数据。
图4A示出平面PLANE00、PLANE01、PLANE10和PLANE11中的每一个包括一个或多个存储块BLOCK000、……、BLOCK010、……、BLOCK100、……和BLOCK110、……,每个存储块包括16条字线WL<0:15>。16条字线WL<0:15>中的每一条联接到多个存储器单元MEMORY CELL,每个存储器单元存储N位数据。此处,N是等于或大于2的自然数,并且下面的描述将基于N为3的假设。即,下面的描述将基于以下假设:存储器单元MEMORY CELL中的每一个是能够存储3位数据的TLC(三层单元),3位数据包括最高有效位(MSB)、中间有效位(CSB)和最低有效位(LSB)。
如上所述,因为存储器单元MEMORY CELL中的每一个是能够存储3位数据的TLC,所以联接到16条字线WL<0:15>中的每一条的多个存储器单元MEMORY CELL可以包括三个逻辑页面,即LSB页面、CSB页面和MSB页面。
更具体地,参照图4A,控制器130可以选择一个或多个存储器装置,例如存储器装置1500至1501,以便读取条带形式的数据。此外,控制器130可以选择所选择的存储器装置1500和1501中包括的多个块之中的一个或多个块,例如BLOCK000、BLOCK010、BLOCK100和BLOCK110。此外,控制器130可以选择所选择的块BLOCK000、BLOCK010、BLOCK100和BLOCK110中的每一个中包括的多条字线WL<0:15>中的一条或多条。
参照图3和图4A,控制器130可以根据预设顺序,选择与联接到字线WL<0:15>中的每一条的存储器单元相对应的三个逻辑页面中的一个,并且将所选择的页面的数据分类为条带数据STRIPE DATA。对于包括LSB页面、CSB页面和MSB页面的三个逻辑页面中的每一个,控制器130可以选择M个页面PAGE<1:M>并且将M个页面PAGE<1:M>的数据分类为条带数据STRIPE DATA。
例如,控制器130可以通过根据预设顺序,选择与所选择的存储块BLOCK000、BLOCK010、BLOCK100和BLOCK110中包括的、联接到字线WL<0:15>的存储器单元相对应的逻辑页面之中的64个LSB页面来确定LSB条带数据LSB STRIPE。类似地,控制器130可以通过根据预设顺序,选择与所选择的存储块BLOCK000、BLOCK010、BLOCK100和BLOCK110中包括的、联接到字线WL<0:15>的存储器单元相对应的逻辑页面之中的64个CSB页面来确定CSB条带数据CSB STRIPE。类似地,控制器130可以通过根据预设顺序选择与所选择的存储块BLOCK000、BLOCK010、BLOCK100和BLOCK110中包括的、联接到字线WL<0:15>的存储器单元相对应的逻辑页面之中的64个MSB页面来确定MSB条带数据MSB STRIPE。
此处,控制器130选择64个LSB页面的预设顺序可以对应于以下顺序:控制器130从第零存储器装置1500中包括的第零存储块BLOCK000中选择联接到第零字线WL<0>的LSB页面P0 LSB、从第零存储器装置1500中包括的第一存储块BLOCK010中选择联接到第零字线WL<0>的LSB页面P0 LSB、从第一存储器装置1501中包括的第零存储块BLOCK100中选择联接到第零字线WL<0>的LSB页面P0 LSB、从第一存储器装置1501中包括的第一存储块BLOCK110中选择联接到第零字线WL<0>的LSB页面P0 LSB、从第零存储器装置1500中包括的第零存储块BLOCK000中选择联接到第一字线WL<1>的LSB页面P1 LSB、然后从第零存储器装置1500和第一存储器装置1501中包括的存储块BLOCK000、BLOCK010、BLOCK100和BLOCK110中顺序地选择联接到字线<1:15>的其它LSB页面。此外,控制器130可以在与LSB条带数据LSB STRIPE相对应的64个LSB页面之中,将根据预设顺序最后选择的页面设定为奇偶校验页面PARITYPAGE。即,将第一存储器装置1501中包括的第一存储块BLOCK110中的、联接到第十五字线WL<15>的LSB页面P15 LSB设定为LSB条带数据LSB STRIPE的奇偶校验页面PARITY PAGE。
参照图3、图4A和图4B,控制器130可以通过从数据存储装置150读取M个页面PAGE<1:M>中存储的数据,即三个条带数据LSB STRIPE、CSB STRIPE和MSB STRIPE中的每一个中存储的数据,并且对读取数据执行奇偶校验运算,来生成三组位图信息BITMAPINFORMATION和三个奇偶校验数据PARITY DATA,并且将所生成的位图信息BITMAPINFORMATION和奇偶校验数据PARITY DATA存储在缓冲存储器144中。参照图4A,M可以是64。
例如,控制器130可以针对与LSB条带数据LSB STRIPE相对应的64个LSB页面生成LSB条带页面位图信息LSB STRIPE PAGE BITMAP和LSB条带奇偶校验数据LSB STRIPEPARITY DATA,并且将所生成的位图信息LSB STRIPE PAGE BITMAP和奇偶校验数据LSBSTRIPE PARITY DATA存储在缓冲存储器144中。特别地,每当根据预设顺序读取LSB条带数据LSB STRIPE的64个LSB页面中的每一个中存储的数据的操作完成时,控制器130可以生成或更新LSB条带页面位图信息LSB STRIPE PAGE BITMAP,以在LSB条带数据LSB STRIPE的64个LSB页面之中,将读取操作已经成功的成功页面与读取操作已经失败的失败页面区分开,并且与将从读取操作已经成功的页面读取的数据输出到主机102的操作分开地,将所生成的或更新后的位图信息LSB STRIPE PAGE BITMAP存储在缓冲存储器144中。
此外,每当根据预设顺序读取LSB条带数据LSB STRIPE的64个LSB页面中的每一个中存储的数据的操作成功时,控制器130可以对读取数据执行累加的奇偶校验运算,以便生成或更新LSB条带奇偶校验数据LSB STRIPE PARITY DATA,并且将LSB条带奇偶校验数据LSB STRIPE PARITY DATA存储在缓冲存储器144中,其中与将读取操作已经成功的页面的数据输出到主机102的操作分开地执行累加的奇偶校验运算。因此,即使在将页面的数据输出到主机102之后,控制器130也可以检查缓冲存储器144中存储的LSB条带页面位图信息LSB STRIPE PAGE BITMAP,以便检查LSB条带数据LSB STRIPE的64个LSB页面之中是否存在失败页面。当LSB条带数据LSB STRIPE的64个LSB页面之中存在失败页面时,控制器130可以通过参考缓冲存储器144中存储的LSB条带奇偶校验数据LSB STRIPE PARITY DATA来恢复失败页面的数据。
类似地,控制器130可以针对与CSB条带数据CSB STRIPE相对应的64个CSB页面而生成CSB条带页面位图信息CSB STRIPE PAGE BITMAP和CSB条带奇偶校验数据CSB STRIPEPARITY DATA,并且将所生成的位图信息CSB STRIPE PAGE BITMAP和奇偶校验数据CSBSTRIPE PARITY DATA存储在缓冲存储器144中。特别地,每当根据预设顺序读取CSB条带数据CSB STRIPE的64个CSB页面中的每一个中存储的数据的操作完成时,控制器130可以生成或更新CSB条带页面位图信息CSB STRIPE PAGE BITMAP,以在CSB条带数据CSB STRIPE的64个CSB页面之中,将读取操作已经成功的成功页面与读取操作已经失败的失败页面区分开,并且与将从读取操作已经成功的页面读取的数据输出到主机102的操作分开地,将所生成的或更新后的位图信息CSB STRIPE PAGE BITMAP存储在缓冲存储器144中。
此外,每当根据预设顺序读取CSB条带数据CSB STRIPE的64个CSB页面中的每一个中存储的数据的操作成功时,控制器130可以对读取数据执行累加的奇偶校验运算,以便生成或更新CSB条带奇偶校验数据CSB STRIPE PARITY DATA,并且将CSB条带奇偶校验数据CSB STRIPE PARITY DATA存储在缓冲存储器144中,其中与将读取操作已经成功的页面的数据输出到主机102的操作分开地执行累加的奇偶校验运算。因此,即使在将页面的数据输出到主机102之后,控制器130也可以检查缓冲存储器144中存储的CSB条带页面位图信息CSB STRIPE PAGE BITMAP,以便检查CSB条带数据CSB STRIPE的64个CSB页面之中是否存在失败页面。当CSB条带数据CSB STRIPE的64个CSB页面之中存在失败页面时,控制器130可以通过参考缓冲存储器144中存储的CSB条带奇偶校验数据CSB STRIPE PARITY DATA来恢复失败页面的数据。
类似地,控制器130可以针对与MSB条带数据MSB STRIPE相对应的64个MSB页面而生成MSB条带页面位图信息MSB STRIPE PAGE BITMAP和MSB条带奇偶校验数据MSB STRIPEPARITY DATA,并且将所生成的位图信息MSB STRIPE PAGE BITMAP和奇偶校验数据MSBSTRIPE PARITY DATA存储在缓冲存储器144中。特别地,每当根据预设顺序读取MSB条带数据MSB STRIPE的64个MSB页面中的每一个中存储的数据的操作完成时,控制器130可以生成或更新MSB条带页面位图信息MSB STRIPE PAGE BITMAP,以在MSB条带数据MSB STRIPE的64个MSB页面之中,将读取操作已经成功的成功页面与读取操作已经失败的失败页面区分开,并且与将从读取操作已经成功的页面读取的数据输出到主机102的操作分开地,将所生成的或更新后的位图信息MSB STRIPE PAGE BITMAP存储到缓冲存储器144中。
此外,每当根据预设顺序读取MSB条带数据MSB STRIPE的64个MSB页面中的每一个中存储的数据的操作成功时,控制器130可以对读取数据执行累加的奇偶校验运算,以便生成或更新MSB条带奇偶校验数据MSB STRIPE PARITY DATA,并且将MSB条带奇偶校验数据MSB STRIPE PARITY DATA存储在缓冲存储器144中,其中与将读取操作已经成功的页面的数据输出到主机102的操作分开地执行累加奇偶校验运算。因此,即使在将页面数据输出到主机102之后,控制器130也可以检查缓冲存储器144中存储的MSB条带页面位图信息MSBSTRIPE PAGE BITMAP,以便检查MSB条带数据MSB STRIPE的64个MSB页面之中是否存在失败页面。当MSB条带数据MSB STRIPE的64个MSB页面之中存在失败页面时,控制器130可以通过参考缓冲存储器144中存储的MSB条带奇偶校验数据MSB STRIPE PARITY DATA来恢复失败页面的数据。
根据本公开的实施例,当读取通过对数据页面和奇偶校验页面进行分组而获得的条带形式的多个页面的数据时,每当以页面为单位对条带形式的多个页面中的每一个执行的读取操作成功时,存储器系统可以通过对条带形式的多个页面的数据累加地执行奇偶校验运算来生成奇偶校验数据。然后,当以页面为单位执行的读取操作失败时,存储器系统可以通过参考奇偶校验数据来对失败页面的数据执行恢复操作。通过该操作,存储器系统可以在读取操作失败的时间点,执行恢复操作而无需重新读取条带形式的多个页面之中的读取操作已经成功的页面的数据。
尽管已经出于说明的目的描述了各个实施例,但对于本领域技术人员将显而易见的是,在不脱离如所附权利要求所限定的本发明的精神和范围的情况下,可以进行各种改变和修改。
Claims (18)
1.一种存储器系统,包括:
多个存储器装置;
缓冲存储器;以及
控制器,访问所述多个存储器装置中存储的条带数据,所述条带数据是通过对所述多个存储器装置中包括的多个页面中存储的数据进行分组而获得的,
其中所述控制器:
通过根据预设顺序、以页面为单位读取所述多个页面中的每个中存储的数据来访问所述条带数据;
每当完成对所述多个页面中的每个的读取操作时,生成所述多个页面的位图信息,以将所述读取操作已经成功的第一页面与所述读取操作已经失败的第二页面区分开,并且将所述位图信息存储在所述缓冲存储器中;
每当对所述多个页面中的每个执行所述读取操作时,通过对所述多个页面之中的第一页面的数据累加地执行奇偶校验运算来生成奇偶校验数据,并且将所述奇偶校验数据存储在所述缓冲存储器中,并且
在对所述多个页面的所述读取操作完成之后检查所述位图信息,并且当所述多个页面之中存在所述第二页面时,通过参考所述奇偶校验数据来恢复所述第二页面的数据。
2.根据权利要求1所述的存储器系统,其中所述控制器包括错误校正码单元,即ECC单元,并且所述控制器:
根据所述预设顺序从与所述多个页面中的每个相对应的读取页面读取数据,使用所述ECC单元检查从所述读取页面中读取的数据中是否发生错误,并且当发生错误时,对从所述读取页面中读取的数据执行错误校正解码操作,
当未发生错误或所述错误校正解码操作已经成功时,确定对所述读取页面执行的所述读取操作已经成功,并且将所述读取页面分类为所述第一页面,并且
当所述错误校正解码操作已经失败时,确定对所述读取页面执行的所述读取操作已经失败,并且将所述读取页面分类为所述第二页面。
3.根据权利要求2所述的存储器系统,其中所述控制器将所述位图信息的、与所述第一页面相对应的位设定为第一值,并且将所述位图信息的、与所述第二页面相对应的位设定为第二值,所述第二值不同于所述第一值。
4.根据权利要求1所述的存储器系统,其中所述多个存储器装置中的每个包括多个存储块,所述多个存储块中的每个包括多条字线,所述多条字线中的每条联接到相应存储块中的多个存储器单元,所述多个存储器单元中的每个存储N位数据,并且
其中所述控制器通过以下方式来生成所述条带数据:选择所述多个存储器装置中的一个或多个,选择一个或多个所选择的存储器装置的每个中包括的一个或多个存储块,选择一个或多个所选择的存储块的每个中包括的一条或多条字线,选择联接到一条或多条所选择的字线中的每条的N个页面中的一个,并且根据所述预设顺序将所选择的页面分类为所述多个页面,所述N个页面分别与所述N位数据相对应,其中N是等于或大于1的自然数。
5.根据权利要求1所述的存储器系统,其中所述控制器通过执行XOR运算作为所述奇偶校验运算来生成所述奇偶校验数据。
6.根据权利要求1所述的存储器系统,其中所述多个页面包括至少一个奇偶校验页面和多个数据页面。
7.根据权利要求1所述的存储器系统,其中当在完成对所述多个页面的所述读取操作之后,检查所述位图信息的结果指示所述多个页面之中存在所述第二页面并且所述控制器通过参考所述奇偶校验数据成功地恢复所述第二页面的数据时,所述控制器将所述第一页面的数据以及所述第二页面的恢复后的数据作为读取数据输出到主机。
8.根据权利要求1所述的存储器系统,其中当在完成对所述多个页面的所述读取操作之后,检查所述位图信息的结果指示所述多个页面之中存在所述第二页面并且所述控制器无法恢复所述第二页面的数据时,所述控制器将所述第一页面的数据作为读取数据输出到主机。
9.根据权利要求1所述的存储器系统,其中当在完成对所述多个页面的所述读取操作之后,检查所述位图信息的结果指示所述多个页面之中不存在所述第二页面时,所述控制器将所述第一页面的数据作为读取数据输出到主机。
10.一种操作存储器系统的方法,所述存储器系统包括多个存储器装置和缓冲存储器,所述方法包括:
通过根据预设顺序、以页面为单位读取多个页面中存储的数据来访问条带数据,所述条带数据是通过对所述多个存储器装置中包括的多个页面中存储的数据进行分组而获得的;
当完成对所述多个页面中的每个的读取操作时,生成所述多个页面的位图信息,以将所述读取操作已经成功的第一页面与所述读取操作已经失败的第二页面区分开,并且将所述位图信息存储在所述缓冲存储器中;
每当对所述多个页面中的每个执行所述读取操作时,通过对所述多个页面之中的所述第一页面的数据累加地执行奇偶校验运算来生成奇偶校验数据,并且将所述奇偶校验数据存储在所述缓冲存储器中,并且
在对所述多个页面的所述读取操作完成之后检查所述位图信息,并且当所述多个页面之中存在所述第二页面时,通过参考所述奇偶校验数据来恢复所述第二页面的数据。
11.根据权利要求10所述的方法,其中读取所述多个页面中存储的数据包括:
根据所述预设顺序从与所述多个页面中的每个相对应的读取页面中读取数据,检查从所述读取页面中读取的数据中是否发生错误,并且当发生错误时,对从所述读取页面中读取的数据执行错误校正解码操作;
当未发生错误或所述错误校正解码操作已经成功时,确定对所述读取页面执行的所述读取操作已经成功,并且将所述读取页面分类为所述第一页面;并且
当所述错误校正解码操作已经失败时,确定对所述读取页面执行的所述读取操作已经失败,并且将所述读取页面分类为所述第二页面。
12.根据权利要求11所述的方法,其中生成所述位图信息包括:将所述位图信息的、与所述第一页面相对应的位设定为第一值,并且将所述位图信息的、与所述第二页面相对应的位设定为第二值,所述第二值不同于所述第一值。
13.根据权利要求10所述的方法,其中所述多个存储器装置中的每个包括多个存储块,所述多个存储块中的每个包括多条字线,所述多条字线中的每条联接到相应存储块中的多个存储器单元,所述多个存储器单元中的每个存储N位数据,并且
其中所述方法包括通过以下方式来生成所述条带数据:选择所述多个存储器装置中的一个或多个,选择一个或多个所选择的存储器装置的每个中包括的一个或多个存储块,选择一个或多个所选择的存储块的每个中包括的一条或多条字线,选择联接到一条或多条所选择的字线中的每条的N个页面中的一个,并且根据所述预设顺序将所选择的页面分类为所述多个页面,所述N个页面分别与所述N位数据相对应,其中N是等于或大于1的自然数。
14.根据权利要求10所述的方法,其中通过执行XOR运算作为所述奇偶校验运算来生成所述奇偶校验数据。
15.根据权利要求10所述的方法,其中所述多个页面包括至少一个奇偶校验页面和多个数据页面。
16.根据权利要求10所述的方法,其中当所述多个页面之中存在所述第二页面并且所述第二页面的数据的恢复成功时,将所述第一页面的数据以及所述第二页面的恢复后的数据作为读取数据输出到主机。
17.根据权利要求10所述的方法,其中当所述多个页面之中存在所述第二页面并且所述第二页面的数据的恢复失败时,将所述第一页面的数据作为读取数据输出到主机。
18.根据权利要求10所述的方法,其中当所述多个页面之中不存在所述第二页面时,将所述第一页面的数据作为读取数据输出到主机。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2020-0069602 | 2020-06-09 | ||
KR1020200069602A KR20210152738A (ko) | 2020-06-09 | 2020-06-09 | 스트라이프 형태로 데이터를 액세스하는 메모리 시스템 및 메모리 시스템의 동작방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113849121A true CN113849121A (zh) | 2021-12-28 |
Family
ID=78817466
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110133334.6A Withdrawn CN113849121A (zh) | 2020-06-09 | 2021-02-01 | 用于访问条带形式的数据的存储器系统及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11194661B1 (zh) |
KR (1) | KR20210152738A (zh) |
CN (1) | CN113849121A (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11487447B2 (en) * | 2020-08-28 | 2022-11-01 | Advanced Micro Devices, Inc. | Hardware-software collaborative address mapping scheme for efficient processing-in-memory systems |
US11960759B2 (en) * | 2022-06-28 | 2024-04-16 | Macronix International Co., Ltd. | Memory device and data searching method thereof |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6795895B2 (en) * | 2001-03-07 | 2004-09-21 | Canopy Group | Dual axis RAID systems for enhanced bandwidth and reliability |
US7873782B2 (en) * | 2004-11-05 | 2011-01-18 | Data Robotics, Inc. | Filesystem-aware block storage system, apparatus, and method |
KR102233074B1 (ko) | 2014-10-08 | 2021-03-30 | 삼성전자주식회사 | 저장 장치 및 그것의 신뢰성 검증 방법 |
US10467100B2 (en) * | 2016-08-15 | 2019-11-05 | Western Digital Technologies, Inc. | High availability state machine and recovery |
KR102032878B1 (ko) | 2017-12-22 | 2019-10-16 | 한국외국어대학교 연구산학협력단 | 플래시 메모리 컨트롤러의 에러 정정 방법 |
-
2020
- 2020-06-09 KR KR1020200069602A patent/KR20210152738A/ko unknown
- 2020-10-13 US US17/069,012 patent/US11194661B1/en active Active
-
2021
- 2021-02-01 CN CN202110133334.6A patent/CN113849121A/zh not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
US11194661B1 (en) | 2021-12-07 |
KR20210152738A (ko) | 2021-12-16 |
US20210382787A1 (en) | 2021-12-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109144408B (zh) | 存储器系统及其操作方法 | |
CN107229577B (zh) | 存储系统及其操作方法 | |
US9875035B2 (en) | Memory system having a read and copy-back operation and method for the same | |
US11544157B2 (en) | Apparatus and method for storing data in an MLC area of a memory system | |
US11150822B2 (en) | Memory system for determining usage of a buffer based on I/O throughput and operation method thereof | |
US11269542B2 (en) | Memory system for distributing and reading data and operating method thereof | |
CN110968522B (zh) | 存储器系统及其操作方法、包括存储器系统的数据库系统 | |
CN108932202B (zh) | 存储器系统及其操作方法 | |
US11275525B2 (en) | Apparatus and method for improving write throughput of memory system | |
CN110888825B (zh) | 在存储器系统中处理数据的设备和方法 | |
CN113360083A (zh) | 用于在存储器系统中控制映射数据的装置和方法 | |
CN109727630B (zh) | 存储系统及其操作方法 | |
US20190369880A1 (en) | Memory system and operating method thereof | |
US11687249B2 (en) | Memory system and operation method thereof | |
CN113010098A (zh) | 用于提高存储器系统的输入/输出吞吐量的设备和方法 | |
CN113314179A (zh) | 用于执行读取操作的存储器系统及其操作方法 | |
US11194661B1 (en) | Memory system for accessing data in stripe form and operating method thereof | |
CN111435334A (zh) | 在存储器系统中检查有效数据的设备和方法 | |
US11354051B2 (en) | Memory system for efficiently managing memory block and operating method thereof | |
US20220171564A1 (en) | Apparatus and method for maintaining data stored in a memory system | |
US11200960B2 (en) | Memory system, data processing system and operation method of the same | |
CN113553631A (zh) | 用于在存储器系统中保护数据的设备和方法 | |
CN109918315B (zh) | 存储器系统及存储器系统的操作方法 | |
US11941289B2 (en) | Apparatus and method for checking an error of a non-volatile memory device in a memory system | |
US20220075542A1 (en) | Calibration apparatus and method for data communication in a memory system |
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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20211228 |