CN110908843A - 诊断存储器系统的设备及其操作方法 - Google Patents
诊断存储器系统的设备及其操作方法 Download PDFInfo
- Publication number
- CN110908843A CN110908843A CN201910796061.6A CN201910796061A CN110908843A CN 110908843 A CN110908843 A CN 110908843A CN 201910796061 A CN201910796061 A CN 201910796061A CN 110908843 A CN110908843 A CN 110908843A
- Authority
- CN
- China
- Prior art keywords
- data
- write command
- memory
- write
- command data
- 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/0653—Monitoring storage devices or systems
-
- 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
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
-
- 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/1016—Error in accessing a memory location, i.e. addressing 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/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/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2273—Test methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
-
- 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
- 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/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/02—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
- G11C11/16—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
- G11C11/165—Auxiliary circuits
- G11C11/1673—Reading or sensing circuits or methods
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/02—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
- G11C11/16—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
- G11C11/165—Auxiliary circuits
- G11C11/1675—Writing or programming circuits or methods
-
- 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
-
- 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/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3436—Arrangements for verifying correct programming or erasure
- G11C16/3454—Arrangements for verifying correct programming or for detecting overprogrammed cells
- G11C16/3459—Circuits or methods to verify correct programming of nonvolatile memory cells
-
- 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
-
- 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/1201—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details comprising I/O circuitry
-
- 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/564—Miscellaneous aspects
- G11C2211/5648—Multilevel memory programming, reading or erasing operations wherein the order or sequence of the operations is relevant
-
- 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/18—Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Human Computer Interaction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本发明涉及一种诊断存储器系统的设备、其操作方法以及存储器系统的操作方法,该存储器系统包括至少一个存储器装置和处理该至少一个存储器装置中的操作的控制器。该方法可包括:响应于第一写入命令集对至少一个存储器装置的第一区域执行写入操作;通过对响应于第一写入命令集而被编程的第一区域进行读取来输出读取数据;基于读取数据,重组关于第一写入命令集的多个写入命令数据;基于所重组的写入命令数据中的每一个的索引来排列所重组的写入命令数据;基于所排列的写入命令数据来生成估计读取数据;并且将读取数据与估计读取数据进行比较,以验证第一写入命令集的操作结果。
Description
相关申请的交叉引用
本专利申请要求于2018年9月18日提交的申请号为10-2018-0111535的韩国专利申请的优先权,该韩国专利申请的全部公开内容通过引用并入本文。
技术领域
本公开的各个实施例涉及一种存储器系统,且更特别地,涉及一种诊断存储器系统中的操作的装置及其方法。
背景技术
计算机环境范例已经转变至可支持随时随地进行计算机系统访问的普适计算系统。因此,诸如移动电话、数码照相机和笔记本电脑的便携式电子装置的使用已经迅速增加。这些便携式电子装置通常使用存储器系统,存储器系统具有一个或多个用于存储数据的存储器装置。存储器系统可用作便携式电子装置的主存储装置或辅助存储装置。
与硬盘的特性不同,使用非易失性半导体存储器装置的数据存储装置因其不具有机械驱动部件(例如,机械臂)而具有诸如优异的稳定性和耐久性的优点,并且具有高数据访问速度和低功耗。作为具有这些优点的存储器系统的示例,数据存储装置包括USB(通用串行总线)存储器装置、具有各种接口的存储卡、固态驱动器(SSD)等。
发明内容
在本公开的实施例中,存储器系统可包括至少一个存储器装置和处理该至少一个存储器装置中的操作的控制器。存储器系统的操作方法可包括:响应于第一写入命令集对至少一个存储器装置的第一区域执行写入操作;通过对响应于第一写入命令集而被编程的第一区域进行读取来输出读取数据;基于读取数据,重组关于第一写入命令集的多个写入命令数据;基于每个所重组的写入命令数据的索引来排列所重组的写入命令数据;基于所排列的写入命令数据来生成估计读取数据;并且将读取数据与估计读取数据进行比较,以验证第一写入命令集的操作结果。
在本公开的另一实施例中,测试装置可与存储器系统中的至少一个存储器装置电联接,并且与处理至少一个存储器装置中的操作的控制器接合或包括在该控制器中。测试装置被配置成:响应于第一写入命令集,使存储器系统对至少一个存储器装置的第一区域执行写入操作;通过对响应于第一写入命令集而被编程的第一区域进行读取来输出读取数据;基于读取数据,重组关于第一写入命令集的多个写入命令数据;基于每个所重组的写入命令数据的索引来排列所重组的写入命令数据;基于所排列的写入命令数据来生成估计读取数据;并且将读取数据与估计读取数据进行比较,以验证第一写入命令集的操作结果。
在本公开的另一实施例中,一种测试存储器装置的方法可包括:控制存储器装置以分别响应于多组写入命令来执行多个写入操作,每个写入操作响应于多个组之中的相应一组来将顺序信息和存储范围信息存储在存储区域中;控制存储器装置以从存储区域实际读取数据;从该实际读取数据中获得顺序信息和存储范围信息;基于所获得的顺序信息和存储范围信息来估计存储区域的读取数据;并且基于估计读取数据和实际读取数据之间的比较来确定存储器装置的正常状态,其中顺序信息表示多个组之中的相应一组的处理顺序,并且其中存储范围表示存储区域内的、存储多个组之中的相应一组的相应顺序信息的存储区。
附图说明
参照附图根据以下详细描述,本发明的这些和其它特征及优点对于本发明所属领域的技术人员将变得显而易见,其中:
图1是示出根据本发明的实施例的包括存储器系统的数据处理系统的框图;
图2是示出在图1所示的存储器系统中采用的存储器装置的示例性配置的示图;
图3是示出图2所示的存储器装置中的存储块的存储器单元阵列的示例性配置的示图;
图4是示出图2所示的存储器装置的示例性三维结构的示图;
图5和图6是示出根据本公开的另一实施例的存储器系统的示图;
图7是示出执行存储器系统的操作的方法的流程图;
图8A和图8B是示出存储在存储器装置中或从存储器装置收集的数据的示图;
图9是示出第一写入命令集和从存储器装置中的预定区域输出的读取数据的示图;
图10是示出基于读取数据来重建或重组写入命令集的方法的示图;
图11是示出根据索引或顺序来排列重组表中的信息的方法的示图;
图12至图14是示出存储器装置中发生缺陷或操作错误的情况的示图;以及
图15至图23是示意性地示出根据本发明的实施例的包括存储器系统的数据处理系统的其它示例的示图。
具体实施方式
以下参照附图更详细地描述本公开的各种示例。本公开可以其它实施例、形式和其变型来实现并且不应被解释为限于本文阐述的实施例。而是,提供所描述的实施例使得本公开是彻底的且完整的,并将本公开充分地传达给本发明所属领域的技术人员。在整个本公开中,相同的附图标记在本公开的各个附图和示例中始终表示相同的部件。注意的是,对“实施例”、“另一实施例”等的参考不一定仅意味着一个实施例,并且对任何这种短语的不同参考不一定针对相同的实施例。
将理解的是,虽然可在本文中使用术语“第一”、“第二”、“第三”等来描述各个元件,但是这些元件不受这些术语限制。这些术语用于将一个元件与否则具有相同或相似的名称的另一元件区分开。因此,在不脱离本发明的精神和范围的情况下,一个示例中的第一元件在另一示例中可被称为第二元件或第三元件。
附图不一定按比例绘制,并且在一些情况下,为了清楚地说明实施例的特征,可能已经放大了比例。当元件被称为连接至或联接到另一元件时,应当理解的是前者可直接连接或联接到后者,或者经由其间的一个或多个中间元件电连接或联接到后者。除非上下文另有说明,否则无论直接还是间接连接/联接,两个元件之间的通信可以是有线的或无线的。此外,还将理解的是,当元件被称为在两个元件“之间”时,其可以是这两个元件之间的唯一元件,或者也可存在一个或多个中间元件。
本文使用的术语的目的仅是描述特定实施例而不旨在限制本发明。
如本文使用的,除非上下文另有明确说明,否则单数形式也旨在包括复数形式,反之亦然。本申请和所附权利要求书中使用的冠词“一”和“一个”通常应被解释为表示“一个或多个”,除非上下文另有说明或清楚地指明单数形式。
将进一步理解的是,当在本说明书中使用术语“包括”、“包括有”、“包含”和“包含有”时,其说明所陈述元件的存在,但不排除一个或多个其它元件的存在或添加。如本文所使用的,术语“和/或”包括一个或多个相关所列项目的任何和全部组合。
除非另有定义,否则本文使用的包括技术和科学术语的所有术语具有与本公开所属领域的普通技术人员鉴于本公开所通常理解的含义相同的含义。将进一步理解的是,诸如在常用词典中限定的那些术语的术语应被理解为具有与其在本公开的上下文和相关领域中的含义一致的含义,并且将不以理想化或过于形式化的意义来解释,除非本文如此明确地定义。
在以下描述中,为了提供对本发明的透彻理解,阐述了许多具体细节。可在没有一些或全部这些具体细节的情况下实践本发明。在其它情况下,为了避免不必要地模糊本发明,未详细地描述公知的进程结构和/或进程。
也要注意的是,在一些情况下,如对相关领域的技术人员显而易见的是,除非另有明确说明,否则结合一个实施例描述的特征或元件可单独使用或与另一实施例的其它特征或元件组合使用。
本发明的实施例提供一种可通过降低存储器系统的操作复杂性和性能劣化从而提高存储器装置的利用效率来将数据快速且可靠地处理到存储器装置中的存储器系统、数据处理系统以及操作进程或方法。
本公开提供了一种操作存储器系统的设备和方法。在该设备和方法中,多个写入和读取命令可在存储器装置中排队。然后,可将响应于排队命令(命令队列)而执行操作之后输出的读取数据与写入命令数据进行比较。比较结果可示出是否能在存储器系统中正常地执行操作。
另外,本公开中的实施例可仅通过基于从存储器装置的预定区域输出的读取数据生成估计读取数据来确定数据的有效性,而无需存储作为单独数据表的写入模式,来确定编程数据的有效性和存储器装置的操作状态。
在实施例中,存储器系统可包括至少一个存储器装置和处理该至少一个存储器装置中的操作的控制器。存储器系统的操作方法可包括:响应于第一写入命令集对至少一个存储器装置的第一区域执行写入操作;通过对响应于第一写入命令集而被编程的第一区域进行读取来输出读取数据;基于读取数据,重组关于第一写入命令集的多个写入命令数据;基于每个所重组的写入命令数据的索引来排列所重组的写入命令数据;基于所排列的写入命令数据来生成估计读取数据;并且将读取数据与估计读取数据进行比较,以验证第一写入命令集的操作结果。
操作方法可包括生成用于运行多个写入操作的第一写入命令集。
第一写入命令集可包括预定数量的写入命令数据,每个写入命令数据对应于每个写入操作。写入命令数据可包括指示写入命令的运行顺序的第一信息项和指示写入命令数据被包括在哪个写入命令集中的第二信息项。
读取数据可包括多个数据单元,每个数据单元存储在第一区域的、对应于逻辑块地址的空间单元中。
数据单元可包括:第一字段,包括写入命令数据;第二字段,包括索引;第三字段,指示读取数据的当前参考;以及第四字段,指示索引的存储范围,存储范围由存储范围的开始位置和结束位置的信息来定义,其中第三字段和第四字段包括一个或多个逻辑块地址。
第一区域包括多个页面,并且多个页面位于至少一个块中、至少一个平面中或至少一个管芯中。
该排列可包括识别多个写入命令数据中的至少一些写入命令数据以及第一区域内的、对应于该至少一些写入命令数据的位置;并且基于索引对多个写入命令数据中的该至少一些写入命令数据进行排序。
该生成可包括:对应于第一写入命令集在第一区域中的操作结果,针对第一区域的每个逻辑块地址,从至少一些写入命令数据中提取最新写入命令数据;并且根据第一区域的逻辑块地址的顺序来将所提取的写入命令数据排成一行(align),以生成估计读取数据。
读取数据和估计读取数据具有相同的长度,并且读取数据和估计读取数据的长度是基于第一写入命令集中包括的写入命令数据的数量和第一区域的大小来确定的。
长度小于或等于页面中的位的数量,并且大于或等于作为第一写入命令集中包括的写入命令数据的数量乘以对应于第一区域的逻辑块地址的数量的二值化值的值。
该操作方法在存储器系统的空闲状态下被执行以用于自诊断。
在另一实施例中,测试装置可与存储器系统中的至少一个存储器装置电联接,并且与处理至少一个存储器装置中的操作的控制器接合或包括在该控制器中。测试装置被配置成使存储器系统:响应于第一写入命令集对至少一个存储器装置的第一区域执行写入操作;通过对响应于第一写入命令集而被编程的第一区域进行读取来输出读取数据;基于读取数据,重组关于第一写入命令集的多个写入命令数据;基于每个所重组的写入命令数据的索引来排列所重组的写入命令数据;基于所排列的写入命令数据来生成估计读取数据;并且将读取数据与估计读取数据进行比较,以验证第一写入命令集的操作结果。
测试装置被进一步配置成使存储器系统生成用于执行多个写入操作的第一写入命令集。
第一写入命令集可包括预定数量的写入命令数据,每个写入命令数据对应于每个写入操作。写入命令数据可包括指示写入命令的执行顺序的第一信息项和指示写入命令数据所被包括的写入命令集中的第二信息项。
读取数据包括多个数据单元,每个数据单元存储在第一区域中的、对应于逻辑块地址的空间单元中。
数据单元可包括:第一字段,包括写入命令数据;第二字段,包括索引;第三字段,指示读取数据的当前参考;以及第四字段,指示索引的存储范围,存储范围由存储范围的起始位置和结束位置来定义,其中第三字段和第四字段包括一个或多个逻辑块地址。
第一区域包括多个页面,并且多个页面位于至少一个块中、至少一个平面中或至少一个管芯中。
测试装置可进一步被配置成使存储器系统识别多个写入命令数据中的至少一些写入命令数据以及第一区域内的、对应于该至少一些写入命令数据的位置;并且基于索引对多个写入命令数据中的该至少一些写入命令数据进行排序。
测试装置可被进一步配置成使存储器系统对应于第一写入命令集在第一区域中的操作结果,针对第一区域的每个逻辑块地址,从至少一些写入命令数据中提取最新写入命令数据;并且根据第一区域的逻辑块地址的顺序来将所提取的写入命令数据排成一行,以生成估计读取数据。
读取数据和估计读取数据具有相同的长度。读取数据和估计读取数据的长度是基于第一写入命令集中包括的写入命令数据的数量和第一区域的大小来确定的。
在另一实施例中,一种测试存储器装置的方法可包括:控制存储器装置以分别响应于多组写入命令来执行多个写入操作,每个写入操作响应于多个组之中的相应一组来将顺序信息和存储范围信息存储在存储区域中;控制存储器装置以从存储区域实际读取数据;从该实际读取数据中获得顺序信息和存储范围信息;基于所获得的顺序信息和存储范围信息来估计存储区域的读取数据;并且基于估计读取数据和实际读取数据之间的比较来确定存储器装置的正常状态,其中顺序信息表示多个组之中的相应一组的处理顺序,并且其中存储范围表示存储区域内的、存储多个组之中的相应一组的相应顺序信息的存储区。
将参照附图详细描述本公开的实施例。
图1是示出根据本发明的实施例的包括存储器系统110的数据处理系统100的框图。在图1中,描述了根据本公开的实施例的数据处理系统100。参照图1,数据处理系统100可包括与存储器系统110接合或互锁的主机102。
例如,主机102可包括诸如移动电话、MP3播放器和膝上型计算机的便携式电子装置或诸如台式计算机、游戏机、电视(TV)和投影仪等的电子装置。
主机102还包括至少一个操作系统(OS),OS通常可管理和控制在主机102中执行的功能和操作。OS可提供与存储器系统110接合的主机102与使用存储器系统110的用户之间的互操作性。OS可支持与用户请求相对应的功能和操作。作为示例而非限制,根据主机102的移动性,OS可被分类为通用操作系统和移动操作系统。根据系统需求或用户环境,通用操作系统可被分为个人操作系统和企业操作系统。包括Windows和Chrome的个人操作系统可用于支持针对通用目的的服务。企业操作系统可专门用于确保并支持高性能操作,并且包括Windows Server、Linux、Unix等。进一步地,移动操作系统可包括Android、iOS、WindowsMobile等。移动操作系统可用于支持针对移动性的服务或功能(例如,省电功能)。主机102可包括多个操作系统。主机102可对应于用户请求,运行与存储器系统110互锁的多个操作系统。主机102可将与用户请求相对应的多个命令传输到存储器系统110,从而在存储器系统110内执行与命令相对应的操作。稍后参照图4和图5描述在存储器系统110中处理多个命令。
存储器系统110可响应于来自主机102的请求来操作或执行具体的功能或操作,并且特别地,可存储待由主机102访问的数据。存储器系统110可用作主机102的主存储器系统或辅助存储器系统。在本文中,根据实施例,主机102可包括用于诊断在存储器系统110内执行的操作的测试装置、测试模块或外部装置。根据主机接口的协议,存储器系统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)和闪速存储器。
存储器系统110可包括控制器130和存储器装置150。存储器装置150可存储待由主机102访问的数据。控制器130可控制数据在存储器装置150中的存储。
控制器130和存储器装置150可集成到单个半导体装置中,该单个半导体装置可被包括在如上例示的各种类型的存储器系统中。
作为示例而非限制,控制器130和存储器装置150可被集成到单个半导体装置中。配置SSD的控制器130和存储器装置150可集成到单个半导体装置中,以提高操作速度。当存储器系统110用作SSD时,连接到存储器系统110的主机102的操作速度比利用硬盘实施的主机102的操作速度提高更多。另外,集成到一个半导体装置中的控制器130和存储器装置150可形成存储卡。例如,PC卡(PCMCIA)、紧凑式闪存卡(CF)、诸如智能媒体卡(SM、SMC)的存储卡、记忆棒、多媒体卡(MMC、RS-MMC、微型MMC)、SD卡(SD、迷你SD、微型SD、SDHC)、通用闪速存储器等。
存储器系统110可被配置成例如以下的一部分:计算机、超移动PC(UMPC)、工作站、上网本、个人数字助理(PDA)、便携式计算机、网络平板、平板电脑、无线电话、移动电话、智能电话、电子书、便携式多媒体播放器(PMP)、便携式游戏机、导航系统、黑盒、数码相机、数字多媒体广播(DMB)播放器、三维(3D)电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、配置数据中心的存储装置、能够在无线环境下传输和接收信息的装置、配置家庭网络的各种电子装置中的一个、配置计算机网络的各种电子装置中的一个、配置远程信息处理网络的各种电子装置中的一个、射频识别(RFID)装置或配置计算系统的各种组件中的一个。
存储器装置150可以是非易失性存储器装置,并且即使当不供应电力时也可保留所存储的数据。存储器装置150可通过写入操作存储从主机102提供的数据,同时通过读取操作将所存储的数据提供到主机102。存储器装置150可包括多个存储块152、154、156。存储块152、154、156中的每一个可包括多个页面。多个页面中的每一个可包括与多个字线(WL)电联接的多个存储器单元。存储器装置150还包括多个存储器管芯,多个存储器管芯中的每一个包括多个平面,多个平面中的每一个包括多个存储块152、154、156。另外,存储器装置150可以是非易失性存储器装置,例如闪速存储器,其中闪速存储器可以是三维堆叠结构。
控制器130可控制存储器装置150的全部操作,诸如读取操作、写入操作、编程操作和擦除操作。例如,控制器130可响应于来自主机102的请求来控制存储器装置150。控制器130可将从存储器装置150读取的数据提供到主机102。控制器130可将由主机102提供的数据存储到存储器装置150中。
控制器130可包括全部经由内部总线可操作地联接的主机接口(I/F)132、处理器134、错误校正码(ECC)电路138、电源管理单元(PMU)140、存储器接口(I/F)142以及存储器144。
主机接口132可处理从主机102提供的命令和数据,并可通过诸如以下的各种接口协议中的至少一种与主机102通信:通用串行总线(USB)、多媒体卡(MMC)、高速外围组件互连(PCI-e或PCIe)、小型计算机系统接口(SCSI)、串列SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、增强型小型磁盘接口(ESDI)以及电子集成驱动器(IDE)。根据实施例,主机接口单元132是用于与主机102交换数据的组件,主机接口单元132可通过被称为主机接口层(HIL)的固件来实施。
ECC电路138可校正待在存储器装置150中处理(例如,从存储器装置150输出)的数据的错误位,该ECC电路138可包括ECC编码器和ECC解码器。此处,ECC编码器可对待编程在存储器装置150中的数据执行错误校正编码,以生成添加了奇偶校验位的经编码数据,并且将经编码数据存储在存储器装置150中。当控制器130读取存储在存储器装置150中的数据时,ECC解码器可检测并校正从存储器装置150读取的数据中包含的错误。也就是说,在对从存储器装置150读取的数据执行错误校正解码之后,ECC电路138可确定错误校正解码是否已成功并输出指示信号(例如,校正成功信号或校正失败信号)。ECC电路138可使用在ECC编码处理期间生成的奇偶校验位来校正读取数据的错误位。当错误位的数量大于或等于可校正错误位的阈值数量时,ECC电路138可不校正错误位,而是可输出指示校正错误位失败的错误校正失败信号。
ECC电路138可基于诸如以下的编码调制来执行错误校正操作:低密度奇偶校验(LDPC)码、博斯-查德胡里-霍昆格姆(Bose-Chaudhri-Hocquenghem,BCH)码、turbo码、里德-所罗门(Reed-Solomon,RS)码、卷积码、递归系统码(RSC)、网格编码调制(TCM)、分组编码调制(BCM)等。ECC电路138可包括基于上述代码中的至少一个来执行错误校正操作的电路、模块、系统或装置中的全部或一些。
PMU 140可管理在控制器130中提供的电力。
存储器接口142可用作用于处理控制器130和存储器装置150之间传递的命令和数据的接口,以允许控制器130响应于从主机102传送的请求来控制存储器装置150。在当存储器装置150是闪速存储器时,特别地当存储器装置150是NAND闪速存储器时的情况下,存储器接口142可在处理器134的控制下生成用于存储器装置150的控制信号,并可处理输入到存储器装置150中或从存储器装置150输出的数据。存储器接口单元142可提供用于在控制器130与存储器装置150之间处理命令和数据,例如NAND闪存接口的操作,特别是控制器130与存储器装置150之间的操作的接口。根据实施例,存储器接口单元142可通过被称为闪存接口层(FIL)的固件而被实施为用于与存储器装置150交换数据的组件。
存储器144可支持由存储器系统110和控制器130执行的操作。存储器144可存储针对存储器系统110和控制器130中的操作而出现或传送的临时数据或事务数据。控制器130可响应于来自主机102的请求来控制存储器装置150。控制器130可将从存储器装置150读取的数据传送到主机102。控制器130可将通过主机102输入的数据存储到存储器装置150内。存储器144可用于存储控制器130和存储器装置150执行诸如读取操作或编程/写入操作的操作所需的数据。
存储器144可利用易失性存储器来实施。存储器144可利用静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)或两者来实施。虽然图1例示了存储器144设置在控制器130的内部,但本实施例不限于此。也就是说,存储器144可位于控制器130的内部或外部。例如,存储器144可由具有在存储器144与控制器130之间传递数据和/或信号的存储器接口的外部易失性存储器来实现。
存储器144可存储执行诸如由主机102请求的数据写入和数据读取的操作所需的数据和/或针对诸如如上所述的垃圾收集和损耗均衡的后台操作而在存储器装置150和控制器130之间传递的数据。根据实施例,为了支持存储器系统110中的操作,存储器144可包括程序存储器、数据存储器、写入缓冲器/高速缓存、读取缓冲器/高速缓存、数据缓冲器/高速缓存、映射缓冲器/高速缓存等。
处理器134可利用微处理器或中央处理单元(CPU)来实施。存储器系统110可包括一个或多个处理器134。处理器134可控制存储器系统110的全部操作。作为示例而非限制,处理器134可响应于从主机102输入的写入请求或读取请求来控制对存储器装置150的编程操作或读取操作。根据实施例,处理器134可使用或执行固件来控制存储器系统110的全部操作。在本文中,可将该固件称为闪存转换层(FTL)。FTL可作为主机102和存储器装置150之间的接口来执行操作。主机102可通过FTL将对写入操作和读取操作的请求传输到存储器装置150。
FTL可管理地址映射、垃圾收集、损耗均衡等操作。特别地,FTL可加载、生成、更新或存储映射数据。因此,控制器130可通过映射数据将从主机102输入的逻辑地址与存储器装置150的物理地址进行映射。因为地址映射操作,存储器装置150可以作为通用存储装置来执行读取操作或写入操作。而且,通过基于映射数据的地址映射操作,当控制器130尝试更新存储在特定页面中的数据时,由于闪速存储器装置的特性,控制器130可将更新后的数据编程到另一空页面上,并且可使该特定页面的旧数据无效(例如,将与更新后的数据的逻辑地址相对应的物理地址从先前特定页面更新为另一新编程页面)。进一步地,控制器130可将新数据的映射数据存储到FTL中。
例如,对于在存储器装置150中执行从主机102请求的操作,控制器130使用以微处理器或中央处理单元(CPU)等实施的处理器134。与存储器装置150接合的处理器134可处理与来自主机102的输入命令相对应的指令或命令。控制器130可执行作为与从主机102输入的命令相对应的命令操作的前台操作,诸如与写入命令相对应的编程操作、与读取命令相对应的读取操作、与擦除/丢弃命令相对应的擦除/丢弃操作、以及使用设置命令的、与设置参数命令或设置特征命令相对应的参数设置操作。
又例如,控制器130可通过处理器134对存储器装置150执行后台操作。作为示例而非限制,存储器装置150的后台操作包括将存储在存储器装置150中的存储块152、154、156之中的任意存储块中的数据复制并存储到另一任意存储块中的操作(例如,垃圾收集(GC)操作)。后台操作可包括在存储器装置150中的存储块152、154、156的至少一个中存储的数据和存储块152、154、156中的至少另一个中存储的数据之间进行移动或交换的操作(例如,损耗均衡(WL)操作)。作为后台操作,控制器130使用处理器134将存储在控制器130中的映射数据存储到存储器装置150中的存储块152、154、156中的至少一个,例如,映射清除操作。用于检查存储器装置150中包括的多个存储块152、154、156中的坏块的坏块管理操作是由处理器134执行的其它后台操作示例中的一个。
在存储器系统110中,控制器130执行与从主机102输入的多个命令相对应的多个命令操作。例如,当顺序地、随机地或可选地执行对应于多个编程命令的多个编程操作、对应于多个读取命令的多个读取操作以及对应于多个擦除命令的多个擦除操作时,控制器130可确定用于将控制器130连接到包括在存储器150中的多个存储器管芯的多个通道(或通路)中的哪个(哪些)通道或通路适于或适用于执行每个操作。针对执行每个操作,控制器130可经由所确定的通道或通路来发送或传输数据或指令。在每个操作完成之后,包括在存储器150中的多个存储器管芯可分别经由相同的通道或通路传输操作结果。然后,控制器130可将响应或确认信号传输到主机102。在实施例中,控制器130可检查每个通道或每个通路的状态。响应于从主机102输入的命令,控制器130可基于每个通道或每个通路的状态来选择至少一个通道或通路,使得可经由所选择的通道或通路来传送指令和/或操作结果以及数据。
作为示例而非限制,控制器130可识别关于与存储器装置150中包括的多个存储器管芯相关的多个通道(或通路)的状态。控制器130可将每个通道或每个通路确定为忙碌状态、就绪状态、活动状态、空闲状态、正常状态和/或异常状态中的一种。控制器确定通过哪个通道或通路来传送指令(和/或数据)可与物理块地址,例如将指令(和/或数据)传送到哪个(哪些)管芯中相关。控制器130可参考从存储器装置150传送的描述符。描述符可包括描述与存储器装置150有关的某些信息的块或页面参数,该块或页面参数是具有预定格式或结构的数据。例如,描述符可包括装置描述符、配置描述符、单元描述符等。控制器130可参考或使用描述符来确定经由哪个(哪些)通道或通路交换指令或数据。
管理单元(未示出)可被包括在处理器134中。管理单元可执行存储器装置150的坏块管理。管理单元可发现存储器装置150中包括的不满足进一步使用条件的坏存储块,并对坏存储块执行坏块管理。当存储器装置150为例如NAND闪速存储器的闪速存储器时,由于NAND逻辑功能的特性,在写入操作期间,例如在编程操作期间,可能发生编程失败。在坏块管理期间,编程失败的存储块或坏存储块的数据可被编程到新的存储块中。坏块可使具有3D堆叠结构的存储器装置150的利用效率和存储器系统110的可靠性严重劣化。因此,可靠的坏块管理可增强或提高存储器系统110的性能。
图2是示出存储器装置150的示意图。
参照图2,存储器装置150可包括多个存储块0至N-1,并且块0至N-1中的每一个可包括多个页面,例如2M个页面,页面的数量可根据电路设计而变化。包括在各个存储块0至N-1中的存储器单元可以是存储1位数据的单层单元(SLC)或存储2位或更多位数据的多层单元(MLC)中的一个或多个。在实施例中,存储器装置150可包括多个每个存储3位数据的三层单元(TLC)。在另一实施例中,存储器装置可包括多个每个存储4位数据的四层单元(QLC)。
图3是示出存储器装置150中的存储块的存储器单元阵列的示例性配置的电路图。
参照图3,可对应于存储器系统110的存储器装置150中包括的多个存储块152至156中的任意一个的存储块330可包括联接到多个相应位线BL0至BLm-1的多个单元串340。每列的单元串340可包括一个或多个漏极选择晶体管DST和一个或多个源极选择晶体管SST。多个存储器单元MC0至MCn-1可串联联接在漏极选择晶体管DST与源极选择晶体管SST之间。在实施例中,存储器单元晶体管MC0至MCn-1中的每一个可由能够存储多位数据信息的MLC来实现。单元串340中的每一个可电联接到多个位线BL0至BLm-1之中的相应位线。例如,如图3所示,第一单元串联接到第一位线BL0,并且最后单元串联接到最后位线BLm-1。
虽然图3示出NAND闪速存储器单元,但是本发明不限于此方式。应注意的是,存储器单元可以是NOR闪速存储器单元,或包括组合在其中的两种或更多种类型的存储器单元的混合闪速存储器单元。而且,注意的是,存储器装置150可以是包括导电浮栅作为电荷存储层的闪速存储器装置,或者是包括绝缘层作为电荷存储层的电荷撷取闪速(CTF)存储器装置。
存储器装置150可进一步包括电压供给单元310,该电压供给单元310根据操作模式提供包括编程电压、读取电压和通过电压的字线电压以供应至字线。电压供给单元310的电压生成操作可由控制电路(未示出)来控制。在控制电路的控制下,电压供给单元310可选择存储器单元阵列的存储块(或扇区)中的一个,选择所选择存储块的字线中的一个,并且根据需要将字线电压提供给所选择字线和未选择字线。
存储器装置150可包括由控制电路控制的读取/写入电路320。在验证/正常读取操作期间,读取/写入电路320可作为从存储器单元阵列读取数据的读出放大器操作。在编程操作期间,读取/写入电路320可作为根据待存储在存储器单元阵列中的数据而驱动位线的写入驱动器操作。在编程操作期间,读取/写入电路320可从缓冲器(未示出)接收待存储到存储器单元阵列中的数据,并且可根据接收的数据将电流或电压供应到位线。读取/写入电路320可包括分别对应于列(或位线)或列对(或位线对)的多个页面缓冲器322至326。页面缓冲器322至326中的每一个可包括多个锁存器(未示出)。
图4是示出存储器装置150的示例性3D结构的示意图。
存储器装置150可通过2D或3D存储器装置来实现。具体地,如图4所示,存储器装置150可以由具有3D堆叠结构的非易失性存储器装置来实现。当存储器装置150具有3D结构时,存储器装置150可包括多个存储块BLK0至BLKN-1,多个存储块BLK0至BLKN-1的每一个具有3D结构(或垂直结构)。
图5和图6示意性地描述了根据本公开的实施例的在存储器系统中执行对应于多个命令的多个命令操作的示例。例如,在本公开的实施例中,将对以下数据处理操作进行详细描述:在从主机102接收多个写入命令并且执行与写入命令相对应的编程操作的情况下的数据处理操作;在从主机102接收多个读取命令并且执行与读取命令相对应的读取操作的另一情况下的数据处理操作;在从主机102接收多个擦除命令并执行与擦除命令相对应的擦除操作的另一情况下的数据处理操作;或者在从主机102一起接收多个写入命令和多个读取命令,并且执行与写入命令和读取命令相对应的编程操作和读取操作的另一情况下的数据处理操作。
此外,在本公开的实施例中,将以下列情况作为示例进行描述:将与从主机102输入的多个写入命令相对应的写入数据存储在控制器130的存储器144中包括的缓冲器/高速缓存中,将存储在缓冲器/高速缓存中的写入数据编程到并存储在存储器装置150中包括的多个存储块中,更新与多个存储块中存储的写入数据相对应的映射数据。将所更新的映射数据存储在存储器装置150中包括的多个存储块中。在本公开的实施例中,将以下列情况作为示例进行描述:执行与从主机102输入的多个写入命令相对应的编程操作。此外,在本公开的实施例中,将以下列情况作为示例进行描述:针对存储在存储器装置150中的数据,从主机102输入多个读取命令,通过检查对应于读取命令的数据的映射数据来从存储器装置150读取对应于读取命令的数据,将读取数据存储在控制器130的存储器144中包括的缓冲器/高速缓存中,并且将存储在缓冲器/高速缓存中的数据提供到主机102。也就是说,在本公开的实施例中,将以下列情况作为示例进行描述:执行与从主机102输入的多个读取命令相对应的读取操作。此外,在本公开的实施例中,将以下列情况作为示例进行描述:针对包括在存储器装置150中的存储块,从主机102接收多个擦除命令,对应于擦除命令来检查存储块,擦除在检查到的存储块中存储的数据,更新与擦除的数据相对应的映射数据,并且将更新的映射数据存储在存储器装置150中包括的多个存储块中。即,在本公开的实施例中,将以下列情况作为示例进行描述:执行与从主机102接收的多个擦除命令相对应的擦除操作。
进一步地,在本公开的实施例中,下面将作为示例描述控制器130在存储器系统110中执行命令操作。然而,注意的是,如上所述,控制器130中包括的处理器134可通过例如FTL(闪存转换层)来在存储器系统110中执行命令操作。而且,在本公开的实施例中,控制器130将与从主机102输入的写入命令相对应的用户数据和元数据编程并存储在存储器装置150中包括的多个存储块之中的任意存储块中,从存储器装置150中包括的多个存储块之中的任意存储块读取与从主机102接收的读取命令相对应的用户数据和元数据,并且将读取数据提供到主机102,或者从存储器装置150中包括的多个存储块之中的任意存储块擦除与从主机102输入的擦除命令相对应的用户数据和元数据。
元数据可包括对应于编程操作而被存储在存储块中的数据的第一映射数据和第二映射数据,其中第一映射数据包括逻辑/物理(L2P:逻辑到物理)信息(在下文中,被称为“逻辑信息”),第二映射数据包括物理/逻辑(P2L:物理到逻辑)信息(在下文中,被称为“物理信息”)。并且,元数据可包括:关于与从主机102接收的命令相对应的命令数据的信息、关于与命令相对应的命令操作的信息、关于待被执行命令操作的存储器装置150的存储块的信息、以及关于与命令操作相对应的映射数据的信息。也就是说,元数据可包括与从主机102接收的命令相对应的、除了用户数据之外的所有剩余信息和数据。
在本公开的实施例中,在控制器130从主机102接收多个写入命令的情况下,执行与写入命令相对应的编程操作,并且将与写入命令相对应的用户数据写入并存储在存储器装置150的存储块之中的已执行擦除操作的空存储块、开放存储块或空闲存储块中。而且,将包括L2P映射表或L2P映射列表的第一映射数据和包括P2L映射表或P2L映射列表的第二映射数据写入并存储在存储器装置150的存储块之中的空存储块、开放存储块或空闲存储块中,其中L2P映射表或L2P映射列表中记录了作为存储在存储块中的用户数据的逻辑地址和物理地址之间的映射信息的逻辑信息,P2L映射表或P2L映射列表中记录了作为存储有用户数据的存储块的物理地址和逻辑地址之间的映射信息的物理信息。
此处,在从主机102输入写入命令的情况下,控制器130将与写入命令相对应的用户数据写入并存储在存储块中。控制器130将存储在存储块中的用户数据的、包括第一映射数据和第二映射数据的元数据存储在其它存储块中。特别地,对应于存储在存储器装置150的存储块中的用户数据的数据段,控制器130生成并更新第一映射数据的L2P段和第二映射数据的P2L段作为元数据的元段之中的映射数据的映射段。控制器130将映射段存储在存储器装置150的存储块中。存储在存储器装置150的存储块中的映射段被加载到控制器130中包括的存储器144中,然后被更新。
进一步地,在从主机102接收多个读取命令的情况下,控制器130从存储器装置150读取与读取命令相对应的读取数据,将读取的数据存储在控制器130的存储器144中包括的缓冲器/高速缓存中。控制器130将存储在缓冲器/高速缓存中的数据提供到主机102,由此执行与多个读取命令相对应的读取操作。
另外,在从主机102接收多个擦除命令的情况下,控制器130检查存储器装置150的与擦除命令相对应的存储块,并且然后对该存储块执行擦除操作。
当在执行后台操作的同时执行与从主机102接收的多个命令相对应的命令操作时,控制器130将与后台操作相对应的数据,即元数据和用户数据加载并存储在控制器130的存储器144中包括的缓冲器/高速缓存中,然后将数据,即元数据和用户数据存储在存储器装置150中。在本文中,作为示例而非限制,后台操作可包括作为复制操作的垃圾收集操作或读取回收操作、作为交换操作的损耗均衡操作、或映射清除操作。例如,对于后台操作,控制器130可在存储器装置150的存储块中检查与后台操作相对应的元数据和用户数据,将存储在存储器装置150的某些存储块中的元数据和用户数据加载并存储在控制器130的存储器144中包括的缓冲器/高速缓存中,然后将该元数据和用户数据存储在存储器装置150的某些其它存储块中。
在根据本公开的实施例的存储器系统中,在执行作为前台操作的命令操作和作为后台操作的复制操作、交换操作和映射清除操作的情况下,控制器130调度对应于前台操作和后台操作的队列,并将调度的队列分配至包括在控制器130中的存储器144和包括在主机102中的存储器。在这方面,针对待在存储器装置150中执行的前台操作和后台操作,控制器130为各个操作分配标识符(ID),并且分别调度与分配有标识符的操作相对应的队列。在根据本公开的实施例的存储器系统中,不仅为存储器装置150的各个操作分配标识符,而且为存储器装置150的功能分配标识符,并且调度与被分配有各自标识符的功能相对应的队列。
在根据本公开的实施例的存储器系统中,控制器130管理通过待在存储器装置150中执行的各个功能和操作的标识符而调度的队列。控制器130管理通过待在存储器装置150中执行的前台操作和后台操作的标识符而调度的队列。在根据本公开的实施例的存储器系统中,在对控制器130中包括的存储器144和主机102中包括的存储器分配与通过标识符而调度的队列相对应的存储器区域之后,控制器130管理分配的存储器区域的地址。通过使用调度的队列,控制器130在存储器装置150中不仅执行前台操作和后台操作,还执行各个功能和操作。
参照图5,控制器130执行与从主机102输入的多个命令相对应的命令操作,例如,与从主机102输入的多个写入命令相对应的编程操作。此时,控制器130将对应于写入命令的用户数据编程并存储在存储器装置150的存储块中。而且,对应于针对存储块的编程操作,控制器130生成并更新用户数据的元数据,并且将元数据存储在存储器装置150的存储块中。
控制器130生成并更新第一映射数据和第二映射数据,该第一映射数据和第二映射数据包括指示用户数据被存储在存储器装置150的存储块中包括的页面中的信息。也就是说,控制器130生成并更新作为第一映射数据的逻辑段的L2P段和作为第二映射数据的物理段的P2L段,然后将L2P段和P2L段存储在存储器装置150的存储块中包括的页面中。
例如,控制器130将与从主机102输入的写入命令相对应的用户数据高速缓存和缓冲在控制器130的存储器144中包括的第一缓冲器510中。特别地,在将用户数据的数据段512存储在用作数据缓冲器/高速缓存的第一缓冲器510中之后,控制器130将存储在第一缓冲器510中的数据段512存储在存储器装置150的存储块中包括的页面中。当与从主机102接收到的写入命令相对应的用户数据的数据段512被编程到并存储在存储器装置150的存储块中包括的页面中时,控制器130生成并更新第一映射数据和第二映射数据。控制器130将L2P段和P2L段存储在控制器130的存储器144中包括的第二缓冲器520中。特别地,控制器130将用户数据的第一映射数据的L2P段522和第二映射数据的P2L段524存储在作为映射缓冲器/高速缓存的第二缓冲器520中。如上所述,可将第一映射数据的L2P段522和第二映射数据的P2L段524存储在控制器130中的存储器144的第二缓冲器520中。可将用于第一映射数据的L2P段522的映射列表和用于第二映射数据的P2L段524的另一映射列表存储在第二缓冲器520中。控制器130将存储在第二缓冲器520中的第一映射数据的L2P段522和第二映射数据的P2L段524存储在存储器装置150的存储块中包括的页面中。
而且,控制器130执行与从主机102接收的多个命令相对应的命令操作,例如,与从主机102接收的多个读取命令相对应的读取操作。特别地,控制器130将作为与读取命令相对应的用户数据的映射段的第一映射数据的L2P段522和第二映射数据的P2L段524加载到第二缓冲器520中,并且检查L2P段522和P2L段524。然后,控制器130读取存储在存储器装置150的存储块之中的相应存储块的页面中的用户数据,将读取的用户数据的数据段512存储在第一缓冲器510中,然后将数据段512提供到主机102。
此外,控制器130执行与从主机102输入的多个命令相对应的命令操作,例如,与从主机102输入的多个擦除命令相对应的擦除操作。特别地,控制器130检查存储器装置150的存储块之中的与擦除命令相对应的存储块,以对检查到的存储块执行擦除操作。
在存储器装置150中包括的存储块之中执行复制数据或交换数据的操作,例如作为后台操作的垃圾收集操作、读取回收操作或损耗均衡操作的情况下,控制器130将相应的用户数据的数据段512存储在第一缓冲器510中,将与用户数据相对应的映射数据的映射段522和524加载到第二缓冲器520中,并且然后执行垃圾收集操作、读取回收操作或损耗均衡操作。在对存储器装置150的存储块执行针对例如映射数据的元数据的、作为后台操作的映射更新操作和映射清除操作的情况下,控制器130将相应的映射段522和524加载到第二缓冲器520中,然后执行映射更新操作和映射清除操作。
如上所述,在对存储器装置150执行包括前台操作和后台操作的功能和操作的情况下,控制器130为待对存储器装置150执行的功能和操作分配标识符。控制器130调度分别与分配有标识符的功能和操作相对应的队列。控制器130对控制器130中包括的存储器144和主机102中包括的存储器分配与各个队列相对应的存储器区域。控制器130管理分配至各个功能和操作的标识符、针对各个标识符调度的队列以及对控制器130的存储器144和主机102的存储器分配的对应于队列的存储器区域。通过对控制器130的存储器144和主机102的存储器分配的存储器区域,控制器130对存储器装置150执行功能和操作。
参照图6,存储器装置150包括多个存储器管芯,例如存储器管芯0、存储器管芯1、存储器管芯2和存储器管芯3。存储器管芯中的每一个包括多个平面,例如平面0、平面1、平面2和平面3。存储器装置150中包括的存储器管芯中的各个平面包括多个存储块,例如,N个块Block0、Block1、……、BlockN-1,每个存储块包括多个页面,例如,2M个页面。此外,存储器装置150包括与各个存储器管芯相对应的多个缓冲器,例如,与存储器管芯0相对应的缓冲器0、与存储器管芯1相对应的缓冲器1、与存储器管芯2相对应的缓冲器2以及与存储器管芯3相对应的缓冲器3。
当执行与从主机102接收到的多个命令相对应的命令操作时,将对应于命令操作的数据存储在存储器装置150中包括的缓冲器中。例如,当执行编程操作时,将与编程操作相对应的数据存储在缓冲器中,然后存储在存储器管芯的存储块中包括的页面中。当执行读取操作时,从存储器管芯的存储块中包括的页面中读取与读取操作相对应的数据,然后存储在缓冲器中,并且通过控制器130提供到主机102。
在本公开的实施例中,尽管下面将作为示例描述存储器装置150中包括的缓冲器存在于各自相应的存储器管芯的外部,但要注意的是,缓冲器可存在于各自相应的存储器管芯的内部,并且要注意的是,缓冲器可对应于各自存储器管芯中的各个平面或各个存储块。进一步地,在本公开的实施例中,尽管下面将作为示例描述存储器装置150中包括的缓冲器是如上参照图3所描述的存储器装置150中包括的多个页面缓冲器322、324和326,但要注意的是,缓冲器可以是存储器装置150中包括的多个高速缓存或多个寄存器。
而且,存储器装置150中包括的多个存储块可被分组为多个超级存储块,并且可在多个超级存储块中执行命令操作。超级存储块中的每一个可包括多个存储块,例如第一存储块组和第二存储块组中包括的存储块。在这方面,当第一存储块组被包括在某个第一存储器管芯的第一平面中时,第二存储块组可被包括在该第一存储器管芯的第一平面中、被包括在该第一存储器管芯的第二平面中或被包括在第二存储器管芯的平面中。
在本公开的实施例中,数据处理系统可包括多个存储器系统。多个存储器系统110中的每一个可包括控制器130和存储器装置150。在数据处理系统中,多个存储器系统110中的一个可以是主设备(master),而其它存储器系统可以是从设备。可基于多个存储器系统110之间的争用(contention)来确定主设备。在数据处理系统中从主机102传送多个命令时,主设备可至少基于通道或总线的状态来确定每个命令的目标。例如,对应于从多个存储器系统传送的信息,可将第一存储器系统确定为多个存储器系统之中的主存储器系统,即主设备。如果将第一存储器系统确定为主存储器系统,则认为其余存储器系统是从存储器系统,即从设备。主存储器系统的控制器可检查联接到多个存储器系统的多个通道(或通路、总线)的状态,以选择哪个存储器系统来处理从主机102传送的命令或数据。在实施例中,可在多个存储器系统之中动态地确定主设备。在另一实施例中,主存储器系统可周期性地或根据事件被改变为其它从存储器系统中的一个。
在下文中,将更详细地描述在包括上述的存储器装置150和控制器130的存储器系统110中传递数据的方法和设备。当存储器系统110中存储的数据量变大时,可能需要存储器系统110一次读取或存储大量的数据。然而,用于读取存储在存储器装置150中的数据的读取时间或用于将数据写入存储器装置150中的编程/写入时间通常可比控制器130处理数据的处理时间或在控制器130和存储器装置150之间的数据传输时间更长。例如,读取时间可能是处理时间的两倍。因为读取时间或编程时间相比于处理时间或数据传输时间相对长得多,因此用于在存储器系统110中传送数据的过程或进程可能影响存储器系统110的性能,例如操作速度,和/或影响存储器系统110的结构,诸如缓冲器大小。
图7详细示出执行存储器系统100的操作的方法。
参照图7,该方法可包括:在预定存储器区域的第一区域(例如,至少一个存储器装置的第一区域)中处理第一写入命令集(S12),输出通过实际读取在第一区域中处理第一写入命令集的结果来输出实际读取数据(S14),基于实际读取数据来重组第一写入命令集的写入命令数据(S16),基于所重组的写入命令数据的索引来排列所重组的写入命令数据(S18),基于所排列的写入命令数据生成估计读取数据(S20),并且将实际读取数据与估计读取数据进行比较,以验证第一写入命令集的处理结果(S22)。
根据实施例,为了验证在存储器系统中执行的操作,测试装置或测试模块可通过存储器系统中包括的控制器来在作为存储器区域的一部分的第一区域中执行读取和写入数据的操作。例如,测试装置或测试模块可使控制器对第一区域处理第一写入命令集和/或实际读取第一区域中存储的数据。
根据实施例,测试装置或测试模块可被包括在存储器系统中包括的控制器中。在这种情况下,控制器可包括测试模块以及用于在存储器系统中处理操作的模块,诸如用于处理命令的命令队列模块、用于处理数据的数据输入/输出(I/O)模块、用于映射或管理逻辑地址和物理地址的地址处理模块。在这种情况下,测试装置或测试模块可通过使用控制器中的其它模块来访问存储器装置或存储器区域。
虽然未示出,但操作存储器系统的方法可进一步包括生成第一写入命令集。例如,第一写入命令集可包括预定数量的写入命令数据。在本文中,多个写入命令数据中的每一个可从写入命令转换或简化而来。或者,写入命令数据可以是模拟的。多个写入命令数据中的每一个可与用于得到多个写入命令数据的顺序的第一信息项相关联或包括该第一信息项。
此处,第一写入命令集可与在存储器系统中使用的写入使能信号区分开。例如,第一写入命令集包括用于验证存储器系统的操作是否正常的多个写入命令数据。在本文中,写入命令数据可以是从每个写入命令中部分提取的数据类型。例如,写入命令数据可包括可暗示多个写入命令数据之中的次序或顺序的第一信息项,以及指示相应的第一信息项被编程或存储的存储位置的信息项。
当响应于预定数量的写入命令数据而执行操作时,写入命令数据的一部分可被记录在存储器装置的预定区域中。存储器装置的预定区域可包括多个页面。多个页面可位于至少一个块中、至少一个平面中或至少一个管芯中。例如,预定区域可包括可通过单个写入命令集来验证操作的区域或空间范围。可通过一个或多个测试操作来验证在存储器系统的存储器装置中执行的至少一个操作。可不同地确定对应于每个测试操作的预定区域的大小。
在存储器装置中执行了响应于包括预定数量的写入命令数据的第一写入命令集的操作之后,测试模块或测试装置可通过控制器来访问和读取存储器装置中存储的数据。
通常,为了验证在存储器装置中执行的操作,可将待存储在存储器装置中的数据与从该存储器装置中读取的数据进行比较。为了进行数据比较,可能需要另外记录在存储器装置中存储数据的操作历史。在这种情况下,因为记录和管理用于数据比较的多个写入操作需要使用资源,所以每当执行多个写入操作时就附加地记录多个写入操作可能是繁重不堪的。当将关于写入操作的信息作为数据而存储在存储器装置中,并且读取和重建所存储的数据以追溯该多个写入操作时,可减少上述单独记录和管理多个写入操作的负担。
虽然未示出,但是基于每个所重组的写入命令数据的索引或顺序来排列所重组的写入命令的步骤S18可包括:识别第一写入命令集中包括的多个写入命令数据中的至少一些以及多个写入命令数据中的所识别的多段写入命令数据在第一区域中的位置,并且基于索引和顺序来顺序地对所识别的多段写入命令数据进行排序。
进一步地,生成估计读取数据的步骤S20可包括:针对每个逻辑块地址,提取或选择多个写入命令数据中的所排序的多段写入命令数据之中的最新写入命令数据,并且将多个写入命令数据中的所提取或选择的多段写入命令数据排成一行,以生成估计读取数据。
图8A示出了多个写入命令数据中的一段写入命令数据的示例。响应于该段写入命令数据中包括的策略、预设或项,可将预定格式的该段写入命令数据中包括的第二和第四信息项(例如,写入索引和存储范围)编程在存储器装置的特定位置处。例如,可基于也包括在该段写入命令数据中的地址预设(例如,预设地址转换)和第三信息项来确定该特定位置。可响应于读取命令或读取指令来访问和输出这样编程的第二和第四信息项。
参照图8A,该段写入命令数据22包括写入历史,即在存储器系统中执行的写入或编程操作的历史。可从存储器装置中的特定位置输出该段写入命令数据22。该段写入命令数据22可包括:第二信息项(例如,写入索引),指示或暗示该段写入命令数据被包括在哪个集中(例如,图8B所示的第一写入命令集或第二写入命令集);第三信息项(例如,当前LBA),指示该段写入命令数据的、由用于诊断的测试模块或外部装置使用的特定可访问地址;以及第四信息项(例如,起始LBA、结束LBA),指示测试模块或外部装置可访问的、第一写入命令集中包括的该段写入命令数据将被存储在存储器装置内的地址范围。写入命令数据22可包括对该操作没有具体含义的虚拟数据(dummy)。当写入命令数据22的总长度可以等于可作为一个单元(例如,页面等)一起编程的不同存储器单元组的总长度时,虚拟数据可辅助写入或编程操作。如未示出的,写入命令数据22可包括第一信息项(图9所示的“写入命令”),指示或暗示特定写入命令集中包括的多个写入命令数据的顺序或次序。
作为示例而非限制,当访问存储器装置内的对应于第三信息项(例如,当前LBA)的特定位置时,可至少获得第二信息项(例如,写入索引)和第四信息项(例如,起始LBA和结束LBA)。此处,将第二信息项(例如,写入索引)和第四信息项(例如,起始LBA和结束LBA)存储在存储器装置内的由第四信息项(例如,起始LBA和结束LBA)定义的存储范围中,并且第二信息项和第四信息项被分类为各自包括多个写入命令数据的第一或第二写入命令集(见图7和图8B)。另外,对应于第三信息项(例如,当前LBA)的特定位置可与由第四信息项(例如,起始LBA和结束LBA)确定的存储范围相关联。根据实施例,由第四信息项(例如,起始LBA和结束LBA)指示的组或范围可包括多个连续的物理或逻辑位置,或者以预定方式计算的序列的物理或逻辑位置。例如,第三信息项和第四信息项可包括一类逻辑块地址(LBA),该类逻辑块地址(LBA)用于确定对应于一段写入命令数据的特定位置和对应于写入命令集的多个写入命令数据的存储范围。
当从存储器装置内的、包括特定位置(例如,当前LBA)的存储范围中收集数据(例如,第二和第四信息项)时,存储器系统可以识别包括多个数据单元的读取数据,其中多个数据单元中的每一个对应于预定区域中的逻辑块地址中的每一个。
参照图8B,描述了对应于两个写入命令集的两个写入操作。可通过多个写入命令数据中的每段写入命令数据的写入索引或第二信息项(例如,0x0)来识别对应于第一写入命令集的第一写入操作(1st Write)。对应于第一写入命令集,对应于第四信息项(例如,LBA0x10至0x14)的存储范围可存储第二信息项(例如,0x0)和图9中所示的第一信息项。可将对应于第一写入命令集的第二信息项存储在与五段写入命令数据的各自的第三信息项相对应的各自位置中。作为示例而非限制,将第二信息项0x0存储在与多个写入命令数据的第一段写入命令数据的第三信息项0x10相对应的第一特定位置中。第一特定位置可被包括在由第四信息项0x10和0x14标识的存储范围中。可在每个位置中的剩余部分中记录零模式或虚拟模式。将第二信息项0x0也存储在与多个写入命令数据的第二段写入命令数据的第三信息项0x11相对应的第二特定位置中。第二特定位置可被包括在由第四信息项0x10和0x14标识的存储范围中。将第二信息项0x0存储在分别与多个写入命令数据的第三至第五段写入命令数据的第三信息项0x12、0x13、0x14相对应的第三至第五特定位置中。第三至第五特定位置可被包括在由第四信息项0x10和0x14标识的存储范围中。测试模块或外部装置可读取存储器装置150中的第一至第五特定位置中存储的多个数据,然后基于在所读取的多个数据中存储的第二信息项0x0而识别出所读取的多个数据与第一写入命令集相关联。
在对应于第二写入命令集的第二写入操作(2nd Write)中,可存储对应于第二写入命令集的多个写入命令数据的写入索引或第二信息项(例如,0x1)以及存储范围或第四信息项(例如,LBA 0x3至0x7)。可将对应于第二写入命令集的第二信息项存储在与五段写入命令数据的各自的第三信息项相对应的各自位置中。作为示例而非限制,将多个写入命令数据的第二信息项0x1存储在与多个写入命令数据的第一段写入命令数据的第三信息项0x3相对应的另一第一特定位置中。另一第一特定位置可被包括在由第四信息项0x3和0x7标识的另一存储范围中。可在每个位置中的剩余部分中记录零模式或虚拟模式。将第二信息项0x1存储在与多个写入命令数据的第二段写入命令数据的第三信息项0x4相对应的另一第二特定位置中。另一第二特定位置可被包括在由第四信息项0x3和0x7标识的存储范围中。将第二信息项0x1存储在分别与多个写入命令数据的第三至第五段写入命令数据的第三信息项0x5、0x6、0x7相对应的其它第三至第五特定位置中。其它第三至第五特定位置可被包括在由第四信息项0x3和0x7标识的存储范围中。测试模块或外部装置可读取存储器装置150中的另一第一至第五特定位置中存储的多个数据,然后基于在所读取的多个数据中存储的第二信息项0x1来识别出所读取的多个数据与第二写入命令集相关联。
在下文中,将参照图9至图11描述用于验证在存储器装置中执行的操作的方法。
图9示出第一写入命令集的示例和从存储器装置中的预定区域中输出的读取数据的示例。
如图所示,第一写入命令集32可包括七段写入命令数据,该七段写入命令数据基于指示第一写入命令集32中的写入命令数据的索引或顺序的第一信息项(即,写入命令)A至G而彼此区分。此处,第一写入命令集32中包括的写入命令数据的数量可根据实施例而变化。例如,一个写入命令集中可包括十个或二十个写入命令数据,以及一个写入命令集中可包括两个或三个写入命令数据。
每个写入命令数据可包括第一信息项或写入命令,该第一信息项或写入命令具有指示或暗示多个写入命令数据的执行顺序的、范围为A至G的值。作为示例示出了具有字母顺序的第一信息项,但根据实施例,可以利用能够确定顺序或索引的各种模式的信息。
图9至图14示出了“顺序”字段,以更好地理解写入命令数据的顺序。例如,在图9中,具有写入命令A的第一写入命令数据(在下文中,称为第一写入命令数据A)的顺序为0,并且可将第一写入命令数据A存储在对应于第四信息项的存储范围(即,对应于第0LBA至第5LBA的特定位置)中。在执行响应于第一写入命令数据A的操作之后,可将第一写入命令数据A的第一和第四信息项(即,写入命令和存储范围信息)存储在对应于第0LBA至第5LBA的存储位置中。然后,第二写入命令数据B的顺序为1,并且因为存储范围仅与第0LBA相关联,所以仅可将第二写入命令数据B存储在对应于第0LBA的特定位置中。在执行第二写入命令数据B的操作之后,将第二写入命令数据B存储在对应于第0LBA的特定位置中。如第二写入命令数据B一样,也可仅将第三写入命令数据C存储在对应于第0LBA的位置中。可顺序地执行响应于第三写入命令数据C和第四写入命令数据D的操作。然后,可顺序地执行后面的操作,直到可执行响应于第七写入命令数据G的最后操作。
如操作历史表34所示,当在存储器装置中执行第一写入命令集32时,可将写入命令数据A、B、C、D、E、F、G的第一至第四信息项(例如,写入命令、写入索引和存储范围信息)存储在存储器装置中的、对应于LBA0至LBA5的特定位置中。例如,可将写入命令数据A、B、C、F顺序地存储在对应于第一逻辑块地址LBA0的第一位置中。实际上,因为存储器装置不支持重写机制,所以可将多段写入命令数据A、B、C、F顺序地编程到不同的位置中,但是映射转换可支持将不同的位置与每个逻辑块地址相关联,并且每个写入命令数据的最后编程位置可与每个逻辑块地址相匹配。当执行第一写入命令集32时,与关于第一逻辑块地址LBA0的最后操作相对应的写入命令数据F可保留在对应于第一逻辑块地址LBA0的第一位置中。当执行第一写入命令集32时,可将写入命令数据A、D、E、F、G顺序地存储在对应于第二逻辑块地址LBA1的第二位置中。最后写入的写入命令数据G保留在对应于第二逻辑块地址LBA1的第二位置中。在执行了所有的第一写入命令集32之后,由测试装置或测试模块访问存储器装置中的、与逻辑块地址相关联的相应位置,以输出读取数据36,其中与逻辑块地址相关联的相应位置也被称为当前参考。可输出具有位置顺序对应于逻辑块地址LBA0至LBA5的写入命令值F、G、F、E、E、A的读取数据36。测试装置或测试模块可检查读取数据36F、G、F、E、E、A是否有效。当读取数据36有效时,测试装置可确定在存储器装置中正常地执行了与第一写入命令集32中包括的多个写入命令数据相对应的所有操作。
为便于理解描述了操作历史表34。然而,可能没有必要在存储器系统或测试装置中存储或记录诸如操作历史表34的附加信息或内容,这可能导致操作负担或开销。
图10描述了基于读取数据36来重建或重组写入命令集的方法。
如操作历史表34所示,基于针对已被执行第一写入命令集32的存储器装置的相应逻辑块地址LBA0至LBA5的读取数据36F、G、F、E、E、A,可重构或重组写入命令集32以生成诸如重组表38的信息。
与基于输入的写入命令集所配置的操作历史表34不同,重组表38是基于从存储器装置中输出的读取数据36而生成的。重组表38不检查是否正常执行了与未包括在读取数据36中的写入命令数据相对应的操作。例如,写入命令数据的一些段写入命令数据F、G、F、E、E、A被包括在读取数据36中,但写入命令数据的其它段写入命令数据B、C、D没有被包括在该读取数据36中。也就是说,重组表38可不用于验证与未包括在读取数据36中的写入命令数据B、C、D相对应的任何操作。
在读取数据36中,输出最新存储在对应于第一逻辑块地址LBA0的位置中的写入命令数据F。从对应于第一逻辑块地址LBA0的位置输出的数据单元可包括第一信息项,即写入命令数据F,其值表示该写入命令数据F在第一写入命令集32中的顺序。写入命令数据的值“F”可指示7个写入命令数据A至G之中的第六写入命令数据。进一步地,从对应于第一逻辑块地址LBA0的位置输出的数据单元包括第四信息项,即参照图8A至图9描述的存储范围。基于对应于第一逻辑块地址LBA0输出的数据单元,可以识别到写入命令数据F存储在对应于逻辑块地址LBA0至LBA2的存储范围中。基于此,可推断到当生成重组表38时,第六写入命令数据F存储在对应于第一至第三逻辑块地址LBA0至LBA2的位置中。
接下来,从对应于第二逻辑块地址LBA1的位置输出读取数据36中的写入命令数据G。对应于第二逻辑块地址LBA1输出的数据单元可包括写入命令数据G,其值表示写入命令数据G在第一写入命令集32中的顺序。写入命令数据的值“G”可指示7个写入命令数据A至G之中的第七写入命令数据。参照对应于第二逻辑块地址LBA1输出的数据单元,可以确认写入命令数据G仅存储在第二逻辑块地址LBA1中。基于此,可推断到当生成重组表38时,第七写入命令数据G存储在对应于第二逻辑块地址LBA1的位置中。
接下来,读取数据36可包括对应于第三逻辑块地址LBA2的写入命令数据F。从与第三逻辑块地址LBA2相关联的位置输出的数据单元包括写入命令数据F,其值表示写入命令数据F在第一写入命令集32中的顺序。写入命令数据的值“F”可指示7个写入命令数据A至G之中的第六写入命令数据。基于从对应于第三逻辑块地址LBA2的位置输出的数据单元,可以识别到写入命令数据F存储在对应于第一至第三逻辑块地址LBA0至LBA2的位置中。基于此,可推断到当生成重组表38时,第六写入命令数据F存储在对应于第一至第三逻辑块地址LBA0至LBA2的位置中。
接下来,读取数据36可包括从对应于第四逻辑块地址LBA3的位置输出的写入命令数据E。对应于第四逻辑块地址LBA3输出的数据单元可包括写入命令数据E,其值表示写入命令数据E在第一写入命令集32中的顺序。写入命令数据的值“E”可指示7个写入命令数据A至G之中的第五写入命令数据。基于从对应于第四逻辑块地址LBA3的位置输出的数据单元,可以识别到写入命令数据E存储在与第二至第五逻辑块地址LBA1至LBA4相关联的位置中。基于此,可推断到当生成重组表38时,第五写入命令数据E存储在对应于第二至第五逻辑块地址LBA1至LBA4的位置中。
接下来,在读取数据36中,可包括从对应于第五逻辑块地址LBA4的位置输出的写入命令数据E。当从与第五逻辑块地址LBA4相关联的位置输出的写入命令数据E为正常时,对应于第五逻辑块地址LBA4输出的数据单元可与对应于第四逻辑块地址LBA3输出的数据单元部分相同。
接下来,在读取数据36中,从由第六逻辑块地址LBA5标识的位置输出写入命令数据A。对应于第六逻辑块地址LBA5输出的数据单元可包括写入命令数据A,其值表示写入命令数据A在第一写入命令集32中的顺序。写入命令数据的值“A”可指示7个写入命令数据A至G之中的第一写入命令数据。基于从第六逻辑块地址LBA5输出的数据单元,可以识别到写入命令数据A存储在从第一逻辑块地址LBA0到第六逻辑块地址LBA5。基于此,可推断到当生成重组表38时,写入命令数据A存储在与第一至第六逻辑块地址LBA0至LBA5相关联的位置中。如上所述,可基于读取数据36来生成重组表38以用于验证。
图11示出根据写入命令数据的顺序来排列重组表38中的信息的方法的示例。参照图9和图10,可基于通过解析读取数据36所获得的结果来从第一写入命令集32的至少一部分(即,第一和第四信息项)中导出重组表38。
参照图11,重组表38可用于生成恢复表40,该恢复表40是基于写入命令数据在第一写入命令集32中的顺序来排列的。可以基于该顺序来排列写入命令数据,以根据与存储器装置中的由写入命令数据的第四信息项(即,存储范围的信息)标识的范围或位置内的每个逻辑块地址LBA相对应的每个位置的最新存储的写入命令来生成估计读取数据42,该估计读取数据42包括写入命令数据的第一和第四信息项。
估计读取数据42可与从存储器装置中的对应于逻辑块地址LBA0至LBA5的位置收集的读取数据36进行比较,从而可验证是否在存储器装置的对应于逻辑块地址LBA0至LBA5的位置中正常地执行了响应于第一写入命令集32的操作。当估计读取数据42和读取数据36相同时,测试装置或测试模块可确定在响应于第一写入命令集32的操作期间不存在错误。
在下文中,作为示例将参照图12至图14来描述在存储器装置中发生缺陷或操作错误的情况。
图12示出第一写入命令集32的示例和从存储器装置的预定区域输出的读取数据46的示例。此处,第一写入命令集32与图9中描述的第一写入命令集32相同。例如,第一写入命令集32可包括七个写入命令数据,该七个写入命令数据分别具有值为A至G的写入索引并且存储在存储器装置中的对应于逻辑块地址LBA0至LBA5的一些位置或区域中。另外,为便于理解描述了操作历史表44。然而,可能没有必要在存储器系统或测试装置中另外记录操作历史表44,这可能导致操作负担。
与图9所示的示例不同,第五写入命令数据E未能正常存储在图12的操作历史表44中的第四逻辑块地址LBA3中。但是,已正常执行了第一写入命令集中包括的其它写入命令数据。在这种情况下,从存储器装置的对应于逻辑块地址LBA0至LBA5的部分区域中输出的读取数据46可具有写入索引值“F、G、F、A、E、A”。
图13示出基于读取数据46来重建或重组第一写入命令集32的写入命令数据的方法的示例。
参照图13,在执行第一写入命令集32之后,从存储器装置的、对应于逻辑块地址LBA0至LBA5的位置或区域输出读取数据46“F、G、F、A、E、A”。可基于读取数据46来重构第一写入命令集32,以生成诸如重建表48的信息。
与其中第一写入命令集32中的所有数据被顺序地写入的操作历史表44不同,可基于读取数据46来生成重建表48。因此,即使响应于任意写入命令数据的操作被正常地执行,但是未被包括在读取数据46中,也可在重建表48中省略与该写入命令数据相关的信息。可能无法验证是否正常地执行了该操作。例如,因为仅写入命令数据F、G、F、A、E、A保留在读取数据46中,所以不考虑写入命令数据B、C、D。
从对应于第一逻辑块地址LBA0的位置输出读取数据46中的写入命令数据F。对应于第一逻辑块地址LBA0输出的信息或数据包括写入命令数据F,写入命令数据F表示该写入命令数据F在第一写入命令集32中的全部写入命令之中的顺序。基于从与第一逻辑块地址LBA0相关联的位置输出的数据单元,可以识别到写入命令数据F存储在对应于第一至第三逻辑块地址LBA0至LBA2的位置中。基于此,可推断到当生成重建表48时,第六写入命令数据F存储在与第一至第三逻辑块地址LBA0至LBA2相关联的位置中。
然后,读取数据46可包括从对应于第二逻辑块地址LBA1的位置输出的写入命令数据G。对应于第二逻辑块地址LBA1输出的数据单元可包括写入命令数据G,写入命令数据G表示写入命令数据G在第一写入命令集32中的顺序(例如,“G”可指示7个写入命令之中的第七写入命令)。参照从对应于第二逻辑块地址LBA1的位置输出的数据单元,可以确认写入命令数据G仅存储在与第二逻辑块地址LBA1相关联的位置中。基于此,可推断到当生成重建表48时,第七写入命令数据G存储在对应于第二逻辑块地址LBA1的位置中。
接下来,从对应于第三逻辑块地址LBA2的位置输出读取数据46中的写入命令数据F。对应于第三逻辑块地址LBA2输出的数据单元包括写入命令数据F,写入命令数据F表示写入命令数据F的顺序(例如,“F”可指示第六写入命令)。基于对应于第三逻辑块地址LBA2输出的数据单元,可以验证写入命令数据F存储在与第一至第三逻辑块地址LBA0至LBA2相关联的位置中。基于此,可推断到当生成重建表48时,第六写入命令数据F存储在从第一逻辑块地址LBA0到第三逻辑块地址LBA2。
接下来,因为可能未正常地执行写入命令数据E的操作,所以读取数据46包括从对应于第四逻辑块地址LBA3的位置输出的写入命令数据A。与在将写入命令数据A存储在对应于第四逻辑块地址LBA3的位置中之后本应当存储的写入命令数据E相关的编程或读取操作可能未被正常地执行。从对应于第四逻辑块地址LBA3的位置输出的数据单元可包括写入命令数据A,写入命令数据A表示写入命令数据A在第一写入命令集32中的顺序(例如,“A”可指示7个写入命令之中的第一写入命令)。基于从第四逻辑块地址LBA3输出的数据单元,可以识别到写入命令数据A存储在与第一至第六逻辑块地址LBA0至LBA5相关联的位置中。基于此,可推断到当生成重建表48时,第一写入命令数据A存储在对应于第一至第六逻辑块地址LBA0至LBA5的位置中。
接下来,从由第五逻辑块地址LBA4标识的位置输出读取数据46中的写入命令数据E。对应于第五逻辑块地址LBA4输出的数据单元可包括写入命令数据E,写入命令数据E表示写入命令数据E的顺序(例如,“E”可指示7个写入命令之中的第五写入命令)。基于从对应于第五逻辑块地址LBA4的位置输出的数据单元,可以识别到写入命令数据E存储在与第二至第五逻辑块地址LBA1至LBA4相关联的位置中。基于此,可推断到当生成重建表48时,第五写入命令数据E存储在对应于第二至第五逻辑块地址LBA1至LBA4的位置中。
然后,读取数据46可包括从对应于第六逻辑块地址LBA5的位置输出的写入命令数据A。对应于第六逻辑块地址LBA5输出的数据单元可包括写入命令数据A,写入命令数据A表示写入命令数据A在第一写入命令集32中的顺序(例如,“A”可指示7个写入命令之中的第一写入命令)。基于从对应于第六逻辑块地址LBA5的位置输出的数据单元,可以识别到写入命令数据A存储在与第一至第六逻辑块地址LBA0至LBA5相关联的位置中。基于此,可推断到当生成重建表48时,第一写入命令数据A存储在对应于第一至第六逻辑块地址LBA0至LBA5的位置中。如上所述,可基于读取数据46来生成重建表48以用于验证。
图14示出根据第一写入命令集32中包括的写入命令数据的顺序来对重建表48的项进行排列的方法的示例。此处,参照图14,通过基于通过解析读取数据46所获得的结果来推断第一写入命令集32的至少一部分(即,第一和第四信息项)来获得重建表48。
参照图14,重建表48可用于生成恢复表50,该恢复表50是基于写入命令数据的顺序来排列的。在基于顺序排列写入命令数据之后,测试装置或测试模块可根据与在存储器装置中的、由写入命令数据的第四信息项(即,存储范围的信息)标识的范围内的每个逻辑块地址LBA相对应的每个位置的最新存储的写入索引,来生成包括写入命令数据的第一和第四信息项的估计读取数据52。
此处,从恢复表50中获得的估计读取数据52“F、G、F、E、E、A”与从存储器装置的、对应于逻辑块地址LBA0至LBA5的位置或区域输出的读取数据46“F、G、F、A、E、A”不同。可确定到在存储器装置的、对应于逻辑块地址LBA0至LBA5的区域中执行的第一写入命令集32中的至少一些未被正常地执行。因此,因为在对应于逻辑块地址LBA3的特定位置中存储的写入命令数据为A,而非所期望的E,所以可容易地识别到在存储器装置中的、与对应于逻辑块地址LBA3的特定位置相关的写入或读取操作中存在错误。
另一方面,参照图9至图14,读取数据和估计读取数据的长度可以相同。读取数据36、46和估计读取数据42、52的长度可对应于第一写入命令集32中的写入命令数据的数量和存储器装置中的对应于逻辑块地址LBA0至LBA5的区域的大小。例如,至少基于通过用指示存储器装置中的相应区域的逻辑块地址的位的数量对第一写入命令集32中包括的写入命令数据的数量进行二值化(binarizing)而获得的位的数量,来确定读取数据36、46的长度。作为示例而非限制,长度可小于或等于页面中的位的数量。进一步地,长度可大于或等于将第一写入命令集中包括的写入命令数据的数量的二值化值乘以对应于区域的逻辑块地址的数量的值。
根据实施例,测试装置或测试模块可验证响应于多个写入命令而执行的操作。当存储器系统处于空闲状态时,测试模块可检查哪个块是坏块,或者监测哪个块可能不健康。为了验证,存储器系统可使用彼此间具有顺序的模拟写入命令,而非带有数据的实际写入命令。
在图15中,描述了根据实施例的包括存储器系统的数据处理系统的另一示例。图15示意性地示出应用存储器系统的存储卡系统。
参照图15,存储卡系统6100可包括存储器控制器6120、存储器装置6130和连接器6110。
存储器控制器6120可连接到由非易失性存储器实现的存储器装置6130。存储器控制器6120可被配置成访问存储器装置6130。作为示例而非限制,存储器控制器6120可被配置成控制存储器装置6130的读取操作、写入操作、擦除操作和后台操作。存储器控制器6120可被配置成提供存储器装置6130与主机之间的接口连接并且使用固件控制存储器装置6130。也就是说,存储器控制器6120可对应于参照图1和图2描述的存储器系统110的控制器130,并且存储器装置6130可对应于参照图1和图5描述的存储器系统110的存储器装置150。
因此,存储器控制器6120可包括RAM、处理器、主机接口、存储器接口和错误校正组件。存储器控制器6120可进一步包括图1和图2中所示的元件。
存储器控制器6120可通过连接器6110与例如图1的主机102的外部装置通信。例如,如参照图1所描述的,存储器控制器6120可被配置成根据诸如以下的各种通信协议中的一种或多种与外部装置通信:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、高速PCI(PCIe)、高级技术附件(ATA)、串行ATA、并行ATA、小型计算机系统接口(SCSI)、增强型小型磁盘接口(EDSI)、电子集成驱动器(IDE)、火线、通用闪存(UFS)、WiFi和蓝牙。因此,存储器系统和数据处理系统可应用于有线/无线电子装置,特别是移动电子装置。
存储器装置6130可通过非易失性存储器来实施。例如,存储器装置6130可通过诸如以下的各种非易失性存储器装置中的任意一种来实施:可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、NAND闪速存储器、NOR闪速存储器、相变RAM(PRAM)、电阻式RAM(ReRAM)、铁电RAM(FRAM)以及自旋转移力矩磁性RAM(STT-RAM)。存储器装置6130可包括如在图6的存储器装置150中的多个管芯。
存储器控制器6120和存储器装置6130可集成到单个半导体装置中。例如,存储器控制器6120和存储器装置6130可被如此集成以形成固态驱动器(SSD)。在另一实施例中,存储器控制器6120和存储器装置6130可被集成以形成诸如以下的存储卡:PC卡(PCMCIA:个人计算机存储卡国际协会)、紧凑式闪存(CF)卡、智能媒体卡(例如,SM和SMC)、记忆棒、多媒体卡(例如,MMC、RS-MMC、微型MMC和eMMC)、SD卡(例如,SD、迷你SD、微型SD和SDHC)和/或通用闪存(UFS)。
图16是示意性地示出根据实施例的包括存储器系统的数据处理系统的另一示例的示图。
参照图16,数据处理系统6200可包括具有一个或多个非易失性存储器的存储器装置6230和用于控制存储器装置6230的存储器控制器6220。图16所示的数据处理系统6200可用作如参照图1和图2描述的诸如存储卡(CF、SD、微型SD等)或USB装置的存储介质。存储器装置6230可对应于图1和图5所示的存储器系统110中的存储器装置150。存储器控制器6220可对应于图1和图5所示的存储器系统110中的控制器130。
存储器控制器6220可响应于主机6210的请求来控制对存储器装置6230的读取操作、写入操作或擦除操作。存储器控制器6220可包括一个或多个CPU 6221、诸如RAM 6222的缓冲存储器、ECC电路6223、主机接口6224和诸如NVM接口6225的存储器接口。
CPU 6221可控制对存储器装置6230的全部操作,例如读取操作、写入操作、文件系统管理操作和坏页面管理操作。RAM 6222可根据CPU 6221的控制来操作。RAM 6222可用作工作存储器、缓冲存储器或高速缓存存储器。当RAM 6222用作工作存储器时,通过CPU 6221处理的数据可被临时存储在RAM 6222中。当RAM 6222用作缓冲存储器时,RAM 6222可用于缓冲从主机6210传输到存储器装置6230的数据或从存储器装置6230传输到主机6210的数据。当RAM 6222用作高速缓存存储器时,RAM 6222可辅助低速存储器装置6230以高速运行。
ECC电路6223可对应于图1所示的控制器130的ECC电路138。如参照图1所述,ECC电路6223可生成用于校正从存储器装置6230提供的数据的失败位或错误位的ECC(错误校正码)。ECC电路6223可对被提供到存储器装置6230的数据执行错误校正编码,由此形成具有奇偶校验位的数据。奇偶校验位可被存储在存储器装置6230中。ECC电路6223可对从存储器装置6230输出的数据执行错误校正解码。ECC电路6223可使用奇偶校验位来校正错误。例如,如参照图1描述的,ECC电路6223可使用LDPC码、BCH码、turbo码、里德-所罗门码、卷积码、RSC或诸如TCM或BCM的编码调制来校正错误。
存储器控制器6220可通过主机接口6224与主机6210交换数据。存储器控制器6220可通过NVM接口6225与存储器装置6230交换数据。主机接口6224可通过PATA总线、SATA总线、SCSI、USB、PCIe或NAND接口连接至主机6210。存储器控制器6220可利用诸如WiFi或长期演进(LTE)的移动通信协议而具有无线通信功能。存储器控制器6220可连接到例如主机6210的外部装置或另一外部装置,并且与外部装置交换数据。特别地,由于存储器控制器6220被配置成通过各种通信协议中的一种或多种与外部装置通信,因此根据实施例的存储器系统和数据处理系统可应用于有线/无线电子装置,特别是移动电子装置。
图17是示意性地示出根据实施例的包括存储器系统的数据处理系统的另一示例的示图。图17示意性地示出应用存储器系统的SSD。
参照图17,SSD 6300可包括控制器6320和包括多个非易失性存储器的存储器装置6340。控制器6320可对应于图1和图2的存储器系统110中的控制器130。存储器装置6340可对应于图1和图5的存储器系统中的存储器装置150。
具体地,控制器6320可通过多个通道CH1至CHi连接到存储器装置6340。控制器6320可包括一个或多个处理器6321、缓冲存储器6325、ECC电路6322、主机接口6324和例如非易失性存储器接口6326的存储器接口。
缓冲存储器6325可临时存储从主机6310提供的数据或从存储器装置6340中包括的多个闪速存储器NVM提供的数据,或者临时存储多个闪速存储器NVM的元数据,例如包括映射表的映射数据。缓冲存储器6325可由诸如DRAM、SDRAM、DDR SDRAM、LPDDR SDRAM和GRAM的各种易失性存储器或诸如FRAM、ReRAM、STT-MRAM和PRAM的非易失性存储器中的任意一种来实现。图17示出缓冲存储器6325被设置在控制器6320中。然而,缓冲存储器6325可被设置在控制器6320的外部。
ECC电路6322可在编程操作期间计算待被编程到存储器装置6340的数据的ECC值。ECC电路6322可在读取操作期间基于ECC值来对从存储器装置6340读取的数据执行错误校正操作。ECC电路6322可在失败数据恢复操作期间对从存储器装置6340恢复的数据执行错误校正操作。
主机接口6324可提供与例如主机6310的外部装置的接口连接功能。非易失性存储器接口6326可提供与通过多个通道进行连接的存储器装置6340的接口连接功能。
此外,可提供应用图1和图5的存储器系统110的多个SSD 6300以实现例如RAID(独立磁盘冗余阵列)系统的数据处理系统。RAID系统可包括多个SSD 6300和用于控制多个SSD6300的RAID控制器。当RAID控制器响应于从主机6310提供的写入命令执行编程操作时,RAID控制器可根据多个RAID级别,即从主机6310提供的写入命令的RAID级别信息,来在SSD6300中选择一个或多个存储器系统或SSD 6300。RAID控制器可将与写入命令对应的数据输出到所选择的SSD 6300。此外,当RAID控制器响应于从主机6310提供的读取命令执行读取操作时,RAID控制器可根据多个RAID级别,即从主机6310提供的读取命令的RAID级别信息,来在SSD 6300中选择一个或多个存储器系统或SSD 6300。RAID控制器可将从所选择的SSD6300读取的数据提供到主机6310。
图18是示意性地示出根据实施例的包括存储器系统的数据处理系统的另一示例的示图。图18示意性地示出应用存储器系统的嵌入式多媒体卡(eMMC)。
参照图18,eMMC 6400可包括控制器6430和通过一个或多个NAND闪速存储器实现的存储器装置6440。控制器6430可对应于图1和图2的存储器系统110中的控制器130。存储器装置6440可对应于图1和图5的存储器系统110中的存储器装置150。
更具体地,控制器6430可通过多个通道连接到存储器装置6440。控制器6430可包括一个或多个内核6432、主机接口6431和例如NAND接口6433的存储器接口。
内核6432可控制eMMC 6400的全部操作。主机接口6431可提供控制器6430与主机6510之间的接口连接功能。NAND接口6433可提供存储器装置6440与控制器6430之间的接口连接功能。例如,主机接口6431可用作并行接口,诸如参照图1所描述的MMC接口。此外,主机接口6431可用作串行接口,例如UHS((超高速)-I/UHS-II)接口。
图19至图22是示意性地示出根据实施例的包括存储器系统的数据处理系统的其它示例的示图。图19至图22示意性地示出应用存储器系统的UFS(通用闪存)系统。
参照图19至图22,UFS系统6500、6600、6700、6800可分别包括主机6510、6610、6710、6810,UFS装置6520、6620、6720、6820以及UFS卡6530、6630、6730、6830。主机6510、6610、6710、6810可用作有线/无线电子装置,特别是移动电子装置的应用处理器,UFS装置6520、6620、6720、6820可用作嵌入式UFS装置,并且UFS卡6530、6630、6730、6830可用作外部嵌入式UFS装置或可移动UFS卡。
在各个UFS系统6500、6600、6700、6800中的主机6510、6610、6710、6810,UFS装置6520、6620、6720、6820以及UFS卡6530、6630、6730、6830可通过UFS协议与例如有线/无线电子装置,特别是移动电子装置的外部装置通信,并且UFS装置6520、6620、6720、6820以及UFS卡6530、6630、6730、6830可由图1和图5所示的存储器系统110来实现。例如,在UFS系统6500、6600、6700、6800中,UFS装置6520、6620、6720、6820可以以参照图13至图16描述的数据处理系统6200、SSD 6300或eMMC 6400的形式来实现,并且UFS卡6530、6630、6730、6830可以以参照图15描述的存储卡系统6100的形式来实现。
此外,在UFS系统6500、6600、6700、6800中,主机6510、6610、6710、6810,UFS装置6520、6620、6720、6820以及UFS卡6530、6630、6730、6830可通过例如MIPI(移动工业处理器接口)中的MIPI M-PHY和MIPI UniPro(统一协议)的UFS接口来彼此通信。此外,UFS装置6520、6620、6720、6820与UFS卡6530、6630、6730、6830可通过除UFS协议以外的各种协议,例如UFD、MMC、SD、迷你SD和微型SD彼此通信。
在图19所示的UFS系统6500中,主机6510、UFS装置6520和UFS卡6530中的每一个可包括UniPro。主机6510可执行交换操作,以便与UFS装置6520和UFS卡6530通信。特别地,主机6510可在UniPro处,通过例如L3交换的链路层交换与UFS装置6520或UFS卡6530通信。UFS装置6520和UFS卡6530可在主机6510的UniPro处,通过链路层交换来彼此通信。在图19的实施例中,通过示例的方式示出一个UFS装置6520和一个UFS卡6530连接到主机6510的配置。然而,在另一实施例中,多个UFS装置和UFS卡可并联地或以星型形式连接到主机6510。星型形式是单个集成式组件联接到多个装置以并行处理的布置。多个UFS卡可并联地或以星型形式连接到UFS装置6520或者串联地或以链型形式连接到UFS装置6520。
在图20所示的UFS系统6600中,主机6610、UFS装置6620和UFS卡6630中的每一个可包括UniPro,并且主机6610可通过执行交换操作的交换模块6640,例如,通过在UniPro处执行例如L3交换的链路层交换的交换模块6640与UFS装置6620或UFS卡6630通信。UFS装置6620和UFS卡6630可通过交换模块6640在UniPro处的链路层交换来彼此通信。在图20的实施例中,通过示例的方式示出一个UFS装置6620和一个UFS卡6630连接到交换模块6640的配置。然而,在另一实施例中,多个UFS装置和UFS卡可并联地或以星型形式连接到交换模块6640,并且多个UFS卡可串联地或以链型形式连接到UFS装置6620。
在图21所示的UFS系统6700中,主机6710、UFS装置6720和UFS卡6730中的每一个可包括UniPro,并且主机6710可通过执行交换操作的交换模块6740,例如,通过在UniPro处执行例如L3交换的链路层交换的交换模块6740来与UFS装置6720或UFS卡6730通信。UFS装置6720和UFS卡6730可通过交换模块6740在UniPro处的链路层交换来彼此通信,并且交换模块6740可在UFS装置6720的内部或外部与UFS装置6720集成为一个模块。在图21的实施例中,通过示例的方式示出一个UFS装置6720和一个UFS卡6730连接到交换模块6740的配置。然而,在另一实施例中,每一个都包括交换模块6740和UFS装置6720的多个模块可并联地或以星型形式连接到主机6710,或者串联地或以链型形式彼此连接。此外,多个UFS卡可以并联地或以星型形式连接到UFS装置6720。
在图22所示的UFS系统6800中,主机6810、UFS装置6820和UFS卡6830中的每一个可包括M-PHY和UniPro。UFS装置6820可执行交换操作,以便与主机6810和UFS卡6830通信。特别地,UFS装置6820可通过用于与主机6810通信的M-PHY和UniPro模块之间的交换操作和用于与UFS卡6830通信的M-PHY和UniPro模块之间的交换操作,例如通过目标ID(标识符)交换操作来与主机6810或UFS卡6830通信。主机6810和UFS卡6830可通过UFS装置6820的M-PHY和UniPro模块之间的目标ID交换来彼此通信。在图22的实施例中,通过示例的方式示出一个UFS装置6820连接到主机6810并且一个UFS卡6830连接到UFS装置6820的配置。然而,多个UFS装置可并联地或以星型形式连接到主机6810或者串联地或以链型形式连接到主机6810,并且多个UFS卡可并联地或以星型形式连接到UFS装置6820或者串联地或以链型形式连接到UFS装置6820。
图23是示意性地示出根据本公开的实施例的包括存储器系统的数据处理系统的另一示例的示图。图23是示意性地示出应用存储器系统的用户系统的示图。
参照图23,用户系统6900可包括应用处理器6930、存储器模块6920、网络模块6940、存储模块6950和用户接口6910。
具体地,应用处理器6930可驱动例如OS的用户系统6900中包括的组件,并且包括控制用户系统6900中包括的组件的控制器、接口和图形引擎。应用处理器6930可被提供为片上系统(SoC)。
存储器模块6920可用作用户系统6900的主存储器、工作存储器、缓冲存储器或高速缓存存储器。存储器模块6920可包括诸如DRAM、SDRAM、DDR SDRAM、DDR2 SDRAM、DDR3SDRAM、LPDDR SDRAM、LPDDR2 SDRAM或LPDDR3 SDRAM的易失性RAM或诸如PRAM、ReRAM、MRAM或FRAM的非易失性RAM。例如,可基于POP(堆叠封装)来封装并安装应用处理器6930和存储器模块6920。
网络模块6940可与外部装置通信。例如,网络模块6940不仅可支持有线通信,还可支持诸如以下的各种无线通信协议:码分多址(CDMA)、全球移动通信系统(GSM)、宽带CDMA(WCDMA)、CDMA-2000、时分多址(TDMA)、长期演进(LTE)、全球微波接入互操作性(Wimax)、无线局域网(WLAN)、超宽带(UWB)、蓝牙、无线显示(WI-DI),从而与有线/无线电子装置,特别是移动电子装置通信。因此,根据本公开的实施例的存储器系统和数据处理系统可应用于有线/无线电子装置。网络模块6940可被包括在应用处理器6930中。
存储模块6950可存储数据,例如从应用处理器6930接收的数据,然后可将所存储的数据传输到应用处理器6930。存储模块6950可由诸如以下的非易失性半导体存储器装置实现:相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(ReRAM)、NAND闪存、NOR闪存和3D NAND闪存,并且被设置为诸如用户系统6900的存储卡或外部驱动器的可移动存储介质。存储模块6950可对应于以上参照图1和图5描述的存储器系统110。此外,存储模块6950可被实现为如上参照图15至图20所述的SSD、eMMC和UFS。
用户接口6910可包括用于向应用处理器6930输入数据或命令或者用于将数据输出到外部装置的接口。例如,用户接口6910可包括诸如键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、摄像机、麦克风、陀螺仪传感器、振动传感器和压电元件的用户输入接口,以及诸如液晶显示器(LCD)、有机发光二极管(OLED)显示装置、有源矩阵OLED(AMOLED)显示装置、LED、扬声器和监视器的用户输出接口。
此外,当图1和图5的存储器系统110被应用于用户系统6900的移动电子装置时,应用处理器6930可控制移动电子装置的全部操作。网络模块6940可用作用于控制与外部装置的有线/无线通信的通信模块。用户接口6910可在移动电子装置的显示/触摸模块上显示由应用处理器6930处理的数据。进一步地,用户接口6910可支持从触摸面板接收数据的功能。
如上所述,在本公开的实施例中,存储器系统、数据处理系统以及其用于验证操作方法和操作的方法不必跟踪或管理用于验证在存储器装置中执行的操作的数据模式或作为表或列表的写入数据。
为了验证存储器系统的操作,因为将通过数据读取从存储器区域中输出的读取数据与基于排列的写入命令数据而生成的估计读取数据进行比较,所以可以在没有编程操作的记录或历史的情况下,通过将读取数据与基于所排列的写入命令数据而生成的估计读取数据进行比较来在任何时间执行验证过程。
虽然本公开示出并描述了具体实施例,但是鉴于本公开,对于本领域技术人员将显而易见的是,在不脱离如权利要求书所限定的本发明的精神和范围的情况下,可进行各种改变和修改。
Claims (20)
1.一种存储器系统的操作方法,所述存储器系统包括至少一个存储器装置和处理所述至少一个存储器装置中的操作的控制器,所述操作方法包括:
响应于第一写入命令集对所述至少一个存储器装置的第一区域执行写入操作;
通过对响应于所述第一写入命令集而被编程的所述第一区域进行读取来输出读取数据;
基于所述读取数据,重组关于所述第一写入命令集的多个写入命令数据;
基于所重组的写入命令数据中的每一个的索引来排列所重组的写入命令数据;
基于所排列的写入命令数据来生成估计读取数据;并且
将所述读取数据与所述估计读取数据进行比较,以验证所述第一写入命令集的操作结果。
2.根据权利要求1所述的操作方法,进一步包括:生成用于执行多个写入操作的所述第一写入命令集。
3.根据权利要求2所述的操作方法,
其中所述第一写入命令集包括预定数量的写入命令数据,所述写入命令数据中的每一个对应于每个写入操作,并且
其中所述写入命令数据包括第一信息项和第二信息项,所述第一信息项指示所述写入命令的执行顺序,所述第二信息项指示所述写入命令数据所被包括的写入命令集。
4.根据权利要求1所述的操作方法,其中所述读取数据包括多个数据单元,所述多个数据单元中的每一个存储在所述第一区域的、对应于逻辑块地址的空间单元中。
5.根据权利要求4所述的操作方法,
其中所述数据单元包括:
第一字段,包括所述写入命令数据;
第二字段,包括所述索引;
第三字段,指示所述读取数据的当前参考;以及
第四字段,指示所述索引的存储范围,所述存储范围由所述存储范围的起始位置和结束位置的信息来定义,
其中所述第三字段和所述第四字段包括一个或多个逻辑块地址。
6.根据权利要求1所述的操作方法,
其中所述第一区域包括多个页面,并且
其中所述多个页面位于至少一个块中、至少一个平面中或至少一个管芯中。
7.根据权利要求1所述的操作方法,其中所述排列包括:
识别所述多个写入命令数据中的至少一些写入命令数据以及所述第一区域内的、对应于所述至少一些写入命令数据的位置;并且
基于所述索引对所述多个写入命令数据中的所述至少一些写入命令数据进行排序。
8.根据权利要求7所述的操作方法,其中所述生成包括:
对应于所述第一写入命令集在所述第一区域中的操作结果,针对所述第一区域的每个逻辑块地址,从所述至少一些写入命令数据中提取最新写入命令数据;并且
根据所述第一区域的逻辑块地址的顺序来将所提取的写入命令数据排成一行,以生成所述估计读取数据。
9.根据权利要求1所述的操作方法,
其中所述读取数据和所述估计读取数据具有相同的长度,并且
其中基于所述第一写入命令集中包括的写入命令数据的数量和所述第一区域的大小来确定所述读取数据和所述估计读取数据的所述长度。
10.根据权利要求9所述的操作方法,其中所述长度小于或等于页面中的位的数量,并且大于或等于将所述第一写入命令集中包括的所述写入命令数据的数量的二值化值乘以对应于所述第一区域的所述逻辑块地址的数量的值。
11.根据权利要求1所述的操作方法,其中所述操作方法在所述存储器系统的空闲状态下被执行以用于自诊断。
12.一种测试装置,所述测试装置与存储器系统中的至少一个存储器装置电联接并且与控制器接合或被包括在所述控制器中,所述控制器处理所述至少一个存储器装置中的操作,所述测试装置使所述存储器系统:
响应于第一写入命令集对所述至少一个存储器装置的第一区域执行写入操作;
通过对响应于所述第一写入命令集而被编程的所述第一区域进行读取来输出读取数据;
基于所述读取数据,重组关于所述第一写入命令集的多个写入命令数据;
基于所重组的写入命令数据中的每一个的索引来排列所重组的写入命令数据;
基于所排列的写入命令数据来生成估计读取数据;并且
将所述读取数据与所述估计读取数据进行比较,以验证所述第一写入命令集的操作结果。
13.根据权利要求12所述的测试装置,其中所述测试装置进一步使所述存储器系统生成用于执行多个写入操作的所述第一写入命令集。
14.根据权利要求13所述的测试装置,
其中所述第一写入命令集包括预定数量的写入命令数据,所述写入命令数据中的每一个对应于每个写入操作,并且
其中所述写入命令数据包括第一信息项和第二信息项,所述第一信息项指示所述写入命令的执行顺序,所述第二信息项指示所述写入命令数据所被包括的写入命令集。
15.根据权利要求12所述的测试装置,其中所述读取数据包括多个数据单元,所述多个数据单元中的每一个存储在所述第一区域的、对应于逻辑块地址的空间单元中。
16.根据权利要求12所述的测试装置,其中所述数据单元包括:
第一字段,包括所述写入命令数据;
第二字段,包括所述索引;
第三字段,指示所述读取数据的当前参考;以及
第四字段,指示所述索引的存储范围,所述存储范围由所述存储范围的起始位置和结束位置来定义,
其中所述第三字段和所述第四字段包括一个或多个逻辑块地址。
17.根据权利要求12所述的测试装置,
其中所述第一区域包括多个页面,并且
其中所述多个页面位于至少一个块中、至少一个平面中或至少一个管芯中。
18.根据权利要求12所述的测试装置,其中所述测试装置进一步使所述存储器系统:
识别所述多个写入命令数据中的至少一些写入命令数据以及所述第一区域内的、对应于所述至少一些写入命令数据的位置;并且
基于所述索引对所述多个写入命令数据中的所述至少一些写入命令数据进行排序。
19.根据权利要求18所述的测试装置,其中所述测试装置进一步使所述存储器系统:
对应于所述第一写入命令集在所述第一区域中的操作结果,针对所述第一区域的每个逻辑块地址,从所述至少一些写入命令数据中提取最新写入命令数据;并且
根据所述第一区域的逻辑块地址的顺序来将所提取的写入命令数据排成一行,以生成所述估计读取数据。
20.根据权利要求12所述的测试装置,
其中所述读取数据和所述估计读取数据具有相同的长度,并且
其中基于所述第一写入命令集中包括的写入命令数据的数量和所述第一区域的大小来确定所述读取数据和所述估计读取数据的所述长度。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180111535A KR102564774B1 (ko) | 2018-09-18 | 2018-09-18 | 메모리 시스템 혹은 데이터 처리 시스템의 동작을 진단하는 장치 혹은 진단을 통해 신뢰성을 확보하는 방법 |
KR10-2018-0111535 | 2018-09-18 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110908843A true CN110908843A (zh) | 2020-03-24 |
Family
ID=69774106
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910796061.6A Withdrawn CN110908843A (zh) | 2018-09-18 | 2019-08-27 | 诊断存储器系统的设备及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11269722B2 (zh) |
KR (1) | KR102564774B1 (zh) |
CN (1) | CN110908843A (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11003551B2 (en) * | 2018-09-27 | 2021-05-11 | Sandisk Technologies Llc | Non-volatile storage system with program failure recovery |
KR20210151581A (ko) | 2020-06-05 | 2021-12-14 | 삼성전자주식회사 | 메모리 컨트롤러, 메모리 컨트롤러의 동작 방법 및 메모리 컨트롤러를 포함하는 스토리지 장치 |
US11442852B2 (en) * | 2020-06-25 | 2022-09-13 | Western Digital Technologies, Inc. | Adaptive context metadata message for optimized two-chip performance |
KR20220057354A (ko) | 2020-10-29 | 2022-05-09 | 삼성전자주식회사 | 문턱 전압 산포 특성을 향상한 메모리 컨트롤러, 메모리 시스템 및 그 동작 방법 |
KR20220140367A (ko) * | 2021-04-09 | 2022-10-18 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 이의 동작 방법 |
US11967392B2 (en) * | 2022-03-09 | 2024-04-23 | Changxin Memory Technologies, Inc. | Method and apparatus for testing failure of memory, storage medium, and electronic device |
CN117012268B (zh) * | 2023-06-30 | 2024-03-19 | 珠海妙存科技有限公司 | 一种对ufs最大性能的测试方法、控制器、系统和介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1525330A (zh) * | 2003-02-27 | 2004-09-01 | 义隆电子股份有限公司 | 测试具有通用串行总线接口的存储装置的方法及存储装置 |
CN102037514A (zh) * | 2008-05-21 | 2011-04-27 | Nxp股份有限公司 | 包括重排网络的数据处理系统 |
CN102930877A (zh) * | 2012-11-02 | 2013-02-13 | 东莞铭普光磁股份有限公司 | 适用于光模块控制器中数字监控系统及其实现方法 |
CN103295648A (zh) * | 2012-02-29 | 2013-09-11 | 三星电子株式会社 | 修复存储器单元的设备和方法及包括该设备的存储器系统 |
CN104025010A (zh) * | 2011-09-30 | 2014-09-03 | 净睿存储股份有限公司 | 存储系统中的可变长度编码 |
CN105589661A (zh) * | 2014-11-12 | 2016-05-18 | 三星电子株式会社 | 数据存储装置、数据处理系统和操作方法 |
CN107003986A (zh) * | 2014-12-27 | 2017-08-01 | 英特尔公司 | 用于利用索引和立即数实行向量重组的方法和装置 |
CN107643985A (zh) * | 2016-07-21 | 2018-01-30 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000322328A (ja) | 1999-05-06 | 2000-11-24 | Fujitsu Ltd | データ検証方法及びその装置 |
US20050198443A1 (en) * | 2004-02-05 | 2005-09-08 | Broadcom Corporation | Verification of memory accesses by distal clients by testing memory access by a proximate client |
US7360112B2 (en) * | 2005-02-07 | 2008-04-15 | International Business Machines Corporation | Detection and recovery of dropped writes in storage devices |
US9076530B2 (en) * | 2013-02-07 | 2015-07-07 | Seagate Technology Llc | Non-volatile write buffer data retention pending scheduled verification |
US9424946B2 (en) * | 2013-02-08 | 2016-08-23 | Seagate Technology Llc | Non-volatile buffering to enable sloppy writes and fast write verification |
US9329799B2 (en) * | 2014-03-04 | 2016-05-03 | Netapp, Inc. | Background checking for lost writes and data corruption |
KR101631461B1 (ko) * | 2014-09-30 | 2016-06-17 | 주식회사 네오셈 | 메모리 소자 테스트 장치 및 방법 |
KR20160121270A (ko) * | 2015-04-10 | 2016-10-19 | 에스케이하이닉스 주식회사 | 반도체 장치 및 그 테스트 방법 |
KR20180094724A (ko) * | 2017-02-16 | 2018-08-24 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
-
2018
- 2018-09-18 KR KR1020180111535A patent/KR102564774B1/ko active IP Right Grant
-
2019
- 2019-07-29 US US16/524,673 patent/US11269722B2/en active Active
- 2019-08-27 CN CN201910796061.6A patent/CN110908843A/zh not_active Withdrawn
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1525330A (zh) * | 2003-02-27 | 2004-09-01 | 义隆电子股份有限公司 | 测试具有通用串行总线接口的存储装置的方法及存储装置 |
CN102037514A (zh) * | 2008-05-21 | 2011-04-27 | Nxp股份有限公司 | 包括重排网络的数据处理系统 |
CN104025010A (zh) * | 2011-09-30 | 2014-09-03 | 净睿存储股份有限公司 | 存储系统中的可变长度编码 |
CN103295648A (zh) * | 2012-02-29 | 2013-09-11 | 三星电子株式会社 | 修复存储器单元的设备和方法及包括该设备的存储器系统 |
CN102930877A (zh) * | 2012-11-02 | 2013-02-13 | 东莞铭普光磁股份有限公司 | 适用于光模块控制器中数字监控系统及其实现方法 |
CN105589661A (zh) * | 2014-11-12 | 2016-05-18 | 三星电子株式会社 | 数据存储装置、数据处理系统和操作方法 |
CN107003986A (zh) * | 2014-12-27 | 2017-08-01 | 英特尔公司 | 用于利用索引和立即数实行向量重组的方法和装置 |
CN107643985A (zh) * | 2016-07-21 | 2018-01-30 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
Also Published As
Publication number | Publication date |
---|---|
KR20200032463A (ko) | 2020-03-26 |
US20200089566A1 (en) | 2020-03-19 |
US11269722B2 (en) | 2022-03-08 |
KR102564774B1 (ko) | 2023-08-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109144408B (zh) | 存储器系统及其操作方法 | |
CN109947358B (zh) | 存储器系统及其操作方法 | |
US11269722B2 (en) | Apparatus for diagnosing memory system and operating method thereof | |
CN109426449B (zh) | 存储器系统及其操作方法 | |
CN110928807B (zh) | 用于检查存储器系统中的有效数据的设备和方法 | |
CN110473582B (zh) | 存储器系统及其操作方法 | |
CN110347330B (zh) | 存储器系统及其操作方法 | |
CN110806984B (zh) | 在存储器系统中搜索有效数据的设备和方法 | |
CN110825659B (zh) | 用于检查存储器系统中的块中的有效数据的设备和方法 | |
CN110321069B (zh) | 存储器系统及其操作方法 | |
CN110825319A (zh) | 基于块状态确定可用性的存储器系统及操作方法 | |
CN110888825B (zh) | 在存储器系统中处理数据的设备和方法 | |
CN110910944A (zh) | 保持存储器系统中的固件的设备和方法 | |
CN110968522B (zh) | 存储器系统及其操作方法、包括存储器系统的数据库系统 | |
US20200034081A1 (en) | Apparatus and method for processing data in memory system | |
CN108733616B (zh) | 包括多处理器的控制器及其操作方法 | |
CN110765029B (zh) | 控制器及用于操作该控制器的方法 | |
CN110895449A (zh) | 用于在存储器系统中管理有效数据的装置和方法 | |
CN110910941A (zh) | 存储器系统及其操作方法 | |
CN111435334B (zh) | 在存储器系统中检查有效数据的设备和方法 | |
CN109426448B (zh) | 存储器系统及其操作方法 | |
CN110007851B (zh) | 存储器系统及其操作方法 | |
CN109753233B (zh) | 存储器系统及其操作方法 | |
CN109918315B (zh) | 存储器系统及存储器系统的操作方法 | |
CN111755061A (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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20200324 |
|
WW01 | Invention patent application withdrawn after publication |