CN111435321B - 处理存储器系统的易失性存储器中的错误的设备和方法 - Google Patents

处理存储器系统的易失性存储器中的错误的设备和方法 Download PDF

Info

Publication number
CN111435321B
CN111435321B CN201910987466.8A CN201910987466A CN111435321B CN 111435321 B CN111435321 B CN 111435321B CN 201910987466 A CN201910987466 A CN 201910987466A CN 111435321 B CN111435321 B CN 111435321B
Authority
CN
China
Prior art keywords
data
memory
error
state
pieces
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910987466.8A
Other languages
English (en)
Other versions
CN111435321A (zh
Inventor
李宗珉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SK Hynix Inc
Original Assignee
SK Hynix Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by SK Hynix Inc filed Critical SK Hynix Inc
Publication of CN111435321A publication Critical patent/CN111435321A/zh
Application granted granted Critical
Publication of CN111435321B publication Critical patent/CN111435321B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • G06F11/167Error detection by comparing the memory output
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1048Adding 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1012Adding 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/102Error in check bits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • G11C11/4094Bit-line management or control circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • G11C11/4096Input/output [I/O] data management or control circuits, e.g. reading or writing circuits, I/O drivers or bit-line switches 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/41Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
    • G11C11/413Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction
    • G11C11/417Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction for memory cells of the field-effect type
    • G11C11/419Read-write [R-W] circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0409Online test
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/76Masking faults in memories by using spares or by reconfiguring using address translation or modifications

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

本公开涉及一种用于控制存储器系统中的操作的设备。该设备包括:易失性存储器,包括多个存储器单元;列数据检查电路,被配置为确定从与位线相对应的存储器单元输出的多条数据中的所有数据是否彼此相同;以及错误校正电路,被配置为至少基于数据类型、数据状态和列数据检查电路的输出来确定多条数据是否包括错误并解决错误。

Description

处理存储器系统的易失性存储器中的错误的设备和方法
相关申请的交叉引用
本专利申请要求于2019年1月11日提交的申请号为10-2019-0003823的韩国专利申请的优先权,其全部公开内容通过引用并入本文。
技术领域
本发明的各个实施例涉及一种存储器系统,且更特别地,涉及一种用于处理或纠正易失性存储器中的错误的方法和设备,该易失性存储器支持存储器系统中包括的控制器和/或非易失性存储器装置的操作。
背景技术
近来,计算环境的范例已经变为能够随时随地访问计算机系统的普适计算。因此,诸如移动电话、数码相机、笔记本电脑等的便携式电子装置的使用正在迅速增加。这种便携式电子装置通常使用或包括存储器系统,该存储器系统使用或嵌入至少一个存储器装置,即数据存储装置。数据存储装置可以用作便携式电子装置的主存储装置或辅助存储装置。
与硬盘不同,因为使用非易失性半导体存储器装置的数据存储装置不具有机械驱动部件(例如,机械臂),因此其优点在于其具有优异的稳定性和耐用性,并且具有高数据访问速度和低功耗。在具有这种优点的存储器系统的背景下,示例性数据存储装置包括通用串行总线(USB)存储器装置、具有各种接口的存储卡、固态驱动器(SSD)等。
发明内容
本公开的实施例可以提供一种存储器系统、数据处理系统以及操作过程或方法,其可以通过减少存储器系统的操作复杂性和性能劣化来快速而可靠地将数据处理到存储器装置中,从而提高存储器装置的使用效率。
本公开的实施例可以提供一种方法和设备,该方法和设备可以识别高速操作的易失性存储器中的错误以支持非易失性存储器系统中的控制器的操作,并且处理、修复或纠正所识别的错误以便增强或提高非易失性存储器系统的操作可靠性。
本公开的实施例可以包括一种方法和设备,该方法和设备可以具有简化的逻辑和电路结构,以识别高集成电路的易失性存储器中的错误,从而在避免降低高度集成电路的操作速度的同时保持高集成电路的集成度。
本公开的实施例可以提供一种方法和设备,该方法和设备用于在当推测高速缓存存储器中的存储器单元的错误由永久性损坏而不是暂时性损坏引起时,通过利用冗余存储器单元替换包括在高度集成电路中的高速缓存存储器中的存储器单元来提高诸如处理器的高度集成电路的收益(yield)。
在实施例中,一种用于控制存储器系统中的操作的设备可以包括:易失性存储器,包括多个存储器单元;列数据检查电路,被配置为确定从与位线相对应的存储器单元输出的多条数据中的所有数据是否彼此相同;以及错误校正电路,被配置为至少基于数据类型、数据状态和列数据检查电路的输出来确定多条数据中的所有数据是否包括错误并解决错误。
易失性存储器可以包括静态随机存取存储器(SRAM),该静态随机存取存储器包括至少一个存储器单元,该至少一个存储器单元包括多个晶体管。
列数据检查电路可以包括比较器,该比较器联接到缓冲器或放大器,并且被配置为比较顺序地输出的两条数据,该缓冲器或放大器经由位线与存储器单元联接。
列数据检查电路可以进一步包括:锁存器,用于临时存储通过位线传递的一条数据;以及开关,用于选择性地连接锁存器和比较器。
基于数据类型,易失性存储器可以包括:对象区域,包括经由一些位线联接的存储器单元;以及非对象区域,包括经由其它位线联接的其它存储器单元。例如,错误校正电路可以被配置为将易失性存储器划分为对象区域和非对象区域。
错误校正电路可以被配置为:当从非对象区域中的与列地址相对应的存储器单元输出的多条数据中的所有数据彼此不同时,确定与列地址相对应的至少一个存储器单元中存在错误。
错误校正电路可以被配置为:当确定非对象区域中存在错误时,将数据的错误值改变为与其它条数据相同的另一个值;并且当确定对象区域中存在错误时,基于数据状态确定如何修复错误。
错误校正电路可以被配置为:确定每个数据是处于与在将每个数据加载到易失性存储器中时的值相同的第一状态还是处于在将每个数据加载到易失性存储器中之后更新的第二状态;以及基于数据状态确定如何修复错误。
错误校正电路可以被配置为:当数据状态是第一状态时,从非易失性存储器装置重新加载包括错误的数据以解决错误;并且当数据状态为第二状态时,对包括错误的数据执行错误校正修复。
该设备可以进一步包括错误位置检查电路,该错误位置检查电路被配置为当错误校正电路确定在多条数据中的所有数据中包括错误时,跟踪与错误相对应的存储器单元的位置。
错误位置检查电路可以被配置为调整输出到列数据检查电路的数据的范围,以跟踪与错误相对应的存储器单元的位置。
该设备可以进一步包括存储器调整电路,该存储器调整电路被配置为:存储由错误位置检查电路跟踪的、与错误相对应的存储器单元的位置;监控是否在相同位置已重复发生了另一个错误,以确定相应的存储器单元是否被视为坏存储器单元;并且利用冗余单元替换相应的存储器单元。
在另一实施例中,一种存储器系统可以包括:非易失性存储器装置,包括多个存储块;以及控制器,包括易失性存储器,该易失性存储器被配置为在用于将用户数据写入非易失性存储器装置中或读取存储在非易失性存储器装置中的用户数据的操作期间存储元数据和用户数据中的至少一个。本文中,控制器可以被配置为至少基于数据类型和数据状态来确定多条数据中的所有数据是否包括错误,并解决错误。
易失性存储器可以包括通过与字线相对应的行地址和与位线相对应的列地址单独地可寻址的多个存储器单元。
控制器可以包括:列数据检查电路,被配置为:确定从与单个位线相对应的存储器单元输出的多条数据中的所有数据是否彼此相同;以及错误校正电路,被配置为至少基于数据类型、数据状态和列数据检查电路的输出来确定多条数据中的所有数据是否包括错误,并修复错误。
在另一实施例中,一种用于操作存储器系统的方法可以包括:在易失性存储器中设置用于错误检查的目标区域,易失性存储器包括通过与字线相对应的行地址和与位线相对应的列地址可寻址的多个存储器单元;确定从目标区域中的与每个列地址相对应的存储器单元输出的多条数据是否彼此相同;并且基于与存储在目标区域中的多条数据有关的数据类型、数据状态以及列数据比较结果来确定多条数据中是否包括错误,以纠正错误。
基于数据类型,易失性存储器的目标区域可以包括:对象区域,包括经由一些位线联接的存储器单元;以及非对象区域,包括经由其它位线联接的其它存储器单元。作为示例而非限制,该方法可以进一步包括:基于数据类型,将易失性存储器的目标区域划分为包括经由一些位线联接的存储器单元的对象区域和包括经由其它位线联接的其它存储器单元的非对象区域。
该方法可以进一步包括:当从非对象区域中的与列地址相对应的存储器单元输出的多条数据中的所有数据彼此相同时,确定在与列地址相对应的至少一个存储器单元中不存在错误。
确定是否包括错误可以包括:确定每个数据是处于与在将每个数据加载到易失性存储器中时的值相同的第一状态还是处于在将每个数据加载到易失性存储器中之后更新的第二状态;并且基于数据状态确定如何修复错误。
确定是否包括错误可以进一步包括:当数据状态是第一状态时,从非易失性存储器装置重新加载包括错误的数据以解决错误;并且当数据状态是第二状态时,对包括错误的数据执行错误校正修复。
在另一实施例中,一种控制器可以包括:易失性存储器,包括联接在多个字线和多个位线之间的多个存储器单元,该多个存储器单元包括用于存储数据的第一区域和第二区域;以及电路,适用于:从与多个位线之中的选择位线联接的选择存储器单元读取多条数据;对多条数据执行异或运算以产生运算结果;并且基于运算结果,检测多条数据是否包括错误,并确定选择存储器单元是属于第一区域还是属于第二区域。
附图说明
本文参照附图进行描述,其中在所有附图中,相同的附图标记指代相同的部件,并且其中:
图1示出根据本公开的实施例的存储器系统;
图2示出根据本公开的实施例的包括存储器系统的数据处理系统;
图3示出根据本公开的实施例的存储器系统;
图4示出图1至图3所示的控制器的存储器;
图5示出根据本公开的实施例的作为存储器的静态随机存取存储器(SRAM);
图6示出根据本公开的另一实施例的存储器系统;
图7A和图7B示出根据本公开的实施例的列数据检查电路和错误校正电路的操作;
图8示出根据本公开的实施例的列数据检查电路的操作;
图9示出根据本公开的实施例的错误校正电路的操作;并且
图10示出根据本公开的实施例的用于存储器系统的操作方法。
具体实施方式
以下参照附图更详细地描述本公开的各个实施例。然而,本公开的元件和特征可以不同地配置或布置以形成可以是任意公开实施例的变型的其它实施例。因此,本发明不限于本文阐述的实施例。相反,提供所描述的实施例使得本公开是完整的和全面的,并将本公开的范围充分地传达给本发明所属领域的技术人员。注意的是,对“实施例”、“另一实施例”等的参考不一定仅指一个实施例,并且对任何这种短语的不同参考不一定针对相同的实施例。
将理解的是,虽然术语“第一”、“第二”、“第三”等可在本文中使用以识别各个元件,但是这些元件不受这些术语限制。这些术语用于将一个元件与另一元件区分开,否则一个元件与另一元件具有相同或相似的名称。因此,在不脱离本发明的精神和范围的情况下,在一个实例中的第一元件也可以在另一实例中称为第二或第三元件。
附图不一定按比例绘制,并且在一些情况下,为了清楚地说明实施例的特征,比例可能被夸大。当元件被称为连接至或联接到另一元件时,应当理解的是前者可直接连接或联接到后者,或者经由其间的中间元件电连接或联接到后者。另外,还将理解的是,当元件被称为在两个元件“之间”时,两个元件之间可以仅有一个元件或也可存在一个或多个中间元件。
本文使用的术语仅是为了描述特定实施例的目的,并不旨在限制本发明。如本文使用的,单数形式也旨在包括复数形式,反之亦然,除非上下文另有清楚地说明。在本申请和所附权利要求中使用的冠词“一”和“一个”通常应被解释为表示“一个或多个”,除非另有说明或从上下文清楚地指向单数形式。
将进一步理解的是,当在本说明书中使用时,术语“包括”、“包括有”、“包含”和“包含有”指定所陈述元件的存在,并不排除一个或多个其它元件的存在或添加。如本文所使用的,短语“和/或”包括一个或多个相关所列项目的任意和全部组合。
除非另有定义,否则本文所使用的包括技术术语和科学术语的所有术语具有与本发明所属领域的普通技术人员通常理解的含义相同的含义。将进一步理解的是,诸如在常用字典中定义的那些术语的术语应当被解释为具有与其在本公开和相关技术背景下的含义一致的含义,并且将不应以理想化或过于形式化的意义来解释,除非本文中明确地这样定义。
在以下描述中,为了提供本发明的透彻理解,阐述了许多具体细节。本发明可在没有一些或全部这些具体细节的情况下被实施。在其它情况下,为了避免不必要地模糊本发明,未详细地描述公知的进程结构和/或进程。
还注意的是,在一些情况下,如对于相关领域的技术人员显而易见的是,除非另有明确说明,否则结合一个实施例所描述的特征或元件可单独使用或与另一实施例的其它特征或元件组合使用。
现在将参照附图详细描述本公开的实施例,其中相同的附图标记指代相同的元件。
图1示出根据本公开实施例的用于在存储器系统110中搜索有效数据并执行垃圾收集的设备。存储器系统110可包括控制器130和存储器装置150。存储器系统110可以与主机10或例如计算装置的另一装置可操作地接合。
参照图1,存储器系统110可以包括控制器130和存储器装置150。控制器130从存储器装置150接收并输出从主机10请求的数据,或者将从主机10接收的数据存储到存储器装置150中,以便执行从主机10请求的命令操作。存储器装置150包括多个存储块,多个存储块包括多个存储器单元,每个存储器单元能够存储1位或多位数据。例如,可以根据存储器装置150的特性、使用存储器系统110的目的、主机10所需的存储器系统110的规格等来改变存储器装置150的内部配置。
控制器130可包括至少一个处理器34、存储器114和至少一个接口36。类似于在计算装置中使用的CPU,处理器34可以在控制器130内起到用于命令操作的作用。至少一个接口36可以包括主机接口和存储器接口。主机接口用于存储器系统110与主机10之间的数据通信,而存储器接口用于存储器装置150与控制器130之间的数据通信。存储器114可以临时存储在处理器34和接口36执行的操作期间所需的数据和操作状态。可选地,存储器114可以临时存储存储器装置150和主机10之间的I/O数据(例如,读取数据或写入/编程数据)。控制器130的内部配置可以是根据由控制器处置或处理的操作或任务的功能分类。
存储器114可以是一种易失性存储器。例如,存储器114可以包括静态RAM(SRAM)或动态RAM(DRAM)。存储器114可以临时存储由处理器34和接口36执行的操作所生成、更新或传送的一条数据或一条操作信息。
为了稳定地支持由控制器130执行的操作或在控制器130中执行的操作,存储器114可以不具有缺陷存储器单元。可选地,即使一些存储器单元具有缺陷,也可以利用冗余区域或替代区域中没有缺陷的其它单元来替换这些存储器单元。在存储器系统110的操作期间,由于磨损和电磁场,可能在存储器114的特定存储器单元中发生临时或永久性故障或错误。作为示例而非限制,在存储器系统110的操作期间,在诸如SRAM的存储器114的存储器单元中发生位翻转错误。在包括多个晶体管的SRAM存储器单元高速操作的情况下,由于电磁场,SRAM存储器单元中的至少一个晶体管的操作可能是不期望的,使得存储在SRAM存储器单元中的一条数据从逻辑低“0”变为逻辑高“1”,反之亦然。该错误可以称为位翻转错误。
控制器130的错误检查电路38可以搜索存储器114中可能发生的错误,并在检测到错误时确定如何修复错误。根据实施例,错误检查电路38可以根据存储在存储器114中的数据的特性、类型或状态来确定多条数据中是否包括错误。进一步,响应于存储在存储器114中的多条数据的状态,错误检查电路38可以确定如何处理、纠正或修复在存储器144中发生的错误。在实施例中,可以由错误检查电路38选择的修复方法可以包括:从存储器装置150重新加载多条数据、直接校正多条数据以及丢弃多条数据。
如本公开中所使用的,术语“电路”是指以下所有:(a)纯硬件电路实施方案(诸如仅在模拟和/或数字电路中的实施方案),以及(b)电路和软件(和/或固件)的组合,诸如(如适用):一起工作以使诸如移动电话或服务器的设备执行各种功能的(i)处理器的组合或(ii)处理器/软件(包括数字信号处理器)、软件和存储器的部分,以及(c)即使软件或固件物理上不存在,也需要该软件或固件用于运行的电路,诸如微处理器或微处理器的一部分。“电路”的定义适用于包括在任何权利要求中的本申请中该术语的所有使用。作为进一步的示例,如在本申请中使用的,术语“电路”还涵盖仅(一个或多个)处理器或(一个或多个)处理器的一部分及其随附的软件和/或固件的实施方案。例如并且如果适用于特定的权利要求元件的话,术语“电路”还涵盖用于存储装置的集成电路。
根据实施例,控制器130的物理配置可以包括至少一个处理器、至少一个存储器、至少一个输入/输出端口以及用于上述组件之间的电连接的导线。
控制器130和存储器装置150可以彼此交换元数据和用户数据。例如,用户数据包括待由用户通过主机10存储的数据,并且元数据包括在存储器装置150中存储和管理用户数据所需的系统信息(例如,映射数据)。由于用户数据和元数据的属性彼此不同,因此可以在控制器130中以不同的方式来处理或管理用户数据和元数据。
随着存储器装置150的存储容量增加,状态信息的大小也增大。这样的状态信息可以包括系统信息、映射信息和/或对于诸如读取、编程和擦除存储器装置150中的管芯、块或页面内的数据的操作所必需的操作信息。控制器130难以将所有状态信息存储在存储器114中。因此,可以将系统信息、映射信息以及用于诸如读取、编程和擦除的操作的操作信息以及用户数据存储在存储器装置150中。控制器130可以从存储器装置150中的多个管芯或块中加载诸如读取、编程或擦除存储器装置150中的页面的数据的操作所需的一些信息,然后在相应的操作完成之后将更新的信息重新存储在存储器装置150中。
尽管未示出,随着存储器装置150中能够存储数据的存储器单元的数量增加,存储器装置150可以包括经由多个通道和多个通路与控制器130联接的多个存储器管芯。控制器130可以根据存储器装置150的内部配置一起传送或接收连接信息与数据。例如,在当存储器装置150中包括多个管芯、每个管芯包括多个块时的情况下,控制器130与存储器装置150之间存在n个通道和m个通路(其中n或m是大于1的整数)。数据和连接信息可以经由n个通道和m个通路来传送。然而,为了控制器130将数据读取或写入到存储器装置150,根据存储器装置150的内部结构,可能需要附加的控制变量或控制信号。随着存储器装置150中包括更多管芯,执行操作所需的附加信息也变得较大。
例如,主机10和存储器系统110可以根据协议、系统通信方法或接口彼此交换命令、地址和数据。因此,主机10可能不需要知道存储器系统110内的特定结构。当主机10将特定数据存储到存储器系统110或尝试读取存储在存储器系统110中的数据时,主机10发送逻辑块地址(LBA)。例如,逻辑块地址(LBA)是逻辑块寻址方法,并且可以是用于指定待存储在与计算装置相关联的存储装置中的数据块的位置的格式。例如,在常规硬盘的情况下,使用指示硬盘中包括的诸如柱面、磁头和扇区(例如,柱面磁头扇区(cylinder-head-sector)(CHS))的物理结构的寻址方法。然而,随着硬盘的存储容量的增加,与硬盘的物理结构相对应的地址系统已达到极限。在这样的大容量存储装置中,可以以如下方式指定地址:以逻辑顺序将扇区排成行,并且对扇区进行编号(例如,从0开始的顺序),而不管硬盘的物理结构如何。不同于主机10仅将数据传送或指向逻辑块地址(LBA),存储器系统110中的控制器130可以存储和管理物理地址,该物理地址是存储器装置150中存储实际数据的地址。需要匹配和管理主机10使用的逻辑块地址(LBA)。这样的信息可以包括在元数据中并且可以与由主机10存储或读取的用户数据区分开。
随着存储器装置150中可以存储的数据量增加,可能需要对元数据的有效管理。另外,随着存储器装置150中的多个块的大小增大,可以存储的数据量以及元数据的量也增加。这增加了保持和管理存储器装置150中存储的数据所需的资源(例如,时间),使得可能需要用于提高存储器系统110的操作效率、稳定性或可靠性的设备和方法。
根据实施例,存储器系统110可以包括存储器装置150,该存储器装置150包括能够存储数据的多个块。另外,存储器系统110可以包括控制器130,控制器130被配置为将每个块划分为多个逻辑单元块。控制器130可以将块的有效页面计数与每个逻辑单元块的映射数据的数量进行比较,以将数据存储在该块中的相反顺序检查映射数据是否重复,并且删除旧的重复映射数据或使旧的重复映射数据无效。可以在具有以下状态(例如,关闭状态)的特定块中执行由控制器130进行以调整映射数据的比较、验证和删除进程:在没有擦除操作的情况下,数据不能再被写入该块中。
当从主机10输入的命令重复要求利用对应于相同逻辑块地址的不同数据的多个编程操作时,控制器130可以将有效页面计数与映射数据的数量进行比较。根据实施例,存储器装置150中的多个存储块中的每一个存储块可以从其中的第一页面到最后一个页面顺序地进行存储。在此,块是执行擦除操作的单位。块中可包括至少两个逻辑单元块。逻辑单元块可以是一起分配或管理映射数据的最小单位。这里,映射数据可以包括用于将分配在每个块单元中的物理地址与主机10所使用的逻辑地址相关联的信息(例如,物理到逻辑(P2L))。
图2示出根据本公开的实施例的数据处理系统100。参照图2,数据处理系统100可以包括存储器系统110和与存储器系统110接合或互锁的主机102。
例如,主机102可以包括诸如移动电话、MP3播放器和膝上型计算机的便携式电子装置或诸如台式计算机、游戏机、电视(TV)和投影仪等的非便携式电子装置。
主机102还包括至少一个操作系统(OS),其通常可以管理和控制在主机102中执行的功能和操作。OS可以在与存储器系统110接合的主机102与需要和使用存储器系统110的用户之间提供互操作性。OS可以支持与用户请求相对应的功能和操作。作为示例而非限制,可以根据主机102的移动性将OS分类为通用操作系统和移动操作系统。根据系统要求或用户环境,可以将通用操作系统分为个人操作系统和企业操作系统。包括Windows和Chrome的个人操作系统可能需要支持一般用途的服务。但是包括Windows服务器、Linux、Unix等的企业操作系统可以专门用于保护和支持高性能。此外,移动操作系统可以包括Android、iOS、Windows Mobile等。移动操作系统可能需要支持用于移动性的服务或功能(例如,省电功能)。主机102可以包括多个操作系统。主机102可以运行与用户请求相对应的与存储器系统110互锁的多个操作系统。主机102可以将与用户请求相对应的多个命令传送到存储器系统110中,从而在存储器系统110内执行与命令相对应的操作。稍后参照图4和图5描述在存储器系统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)和闪速存储器的非易失性存储器装置来实施。
存储器系统110可包括控制器130和存储器装置150。存储器装置150可以存储待由主机102访问的数据。控制器130可以控制存储器装置150中的数据的存储。
控制器130和存储器装置150可被集成到单个半导体装置中,该单个半导体装置可包括在如上例示的各种类型的存储器系统中的任意一种中。
作为示例而非限制,控制器130和存储器装置150可以集成到单个半导体装置中。控制器130和存储器装置150可以如此集成到SSD中,以提高操作速度。当存储器系统110用作SSD时,与利用硬盘实施的主机102相比,连接到存储器系统110的主机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,多个存储块中的每一个可包括多个页面。多个页面中的每一个可包括多个存储器单元,多个字线(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交换数据的组件,其可以通过称为主机接口层(HIL)的固件来实施。
ECC组件138可以校正待在存储器装置150中处理(例如,从其输出)的数据的错误位,其可以包括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闪速存储器时的情况下,在处理器134的控制下,存储器接口142可生成用于存储器装置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使用处理器134。处理器134可以处理与从主机102接收的命令相对应的指令或命令。控制器130可以执行与从主机102接收的命令相对应的作为命令操作的前台操作,诸如与写入命令相对应的编程操作、与读取命令相对应的读取操作、与擦除/丢弃命令相对应的擦除/丢弃操作以及利用设置命令的、与设置参数命令或设置特征命令相对应的参数设置操作。
又例如,控制器130可以通过处理器134对存储器装置150执行后台操作。作为示例而非限制,后台操作包括将存储在存储器装置150中的存储块152、154、156之中的存储块中的数据复制并存储到另一存储块的操作,例如,垃圾收集(GC)操作。后台操作可以包括将存储在存储块152、154、156中至少一个中的数据移动或交换到存储块152、154、156中的至少另一个中的操作,例如,损耗均衡(WL)操作。在后台操作期间,控制器130可以使用处理器134来将存储在控制器130中的映射数据存储到存储器装置150中的存储块152、154、156中的至少一个,例如,映射清除操作。检查或搜索存储块152、154、156之中的坏块的坏块管理操作是处理器134执行的后台操作的另一示例。
根据实施例,可以通过图2中的控制器130的至少一个处理器134来实施图1的错误检查电路38。例如,当错误检查电路38包括固件时,固件可以在加载到图2中的控制器130的至少一个存储器144中之后由至少一个处理器134执行。
在存储器系统110中,控制器130执行与从主机102输入的多个命令相对应的多个命令操作。例如,当执行与多个编程命令相对应的多个编程操作,顺序地、随机地或可选地与多个读取命令相对应的多个读取操作以及与多个擦除命令相对应的多个擦除操作时,控制器130可以确定用于将控制器130连接到存储器150中包括的多个存储器管芯的多个通道(或通路)之中的哪个(哪些)通道或通路对于执行每个操作是适当的或合适的。控制器130可以经由确定的通道或通路来传送数据或指令用于执行每个操作。在每个操作完成之后,包括在存储器150中的多个存储器管芯可以分别经由相同的通道或通路来传送操作结果。然后,控制器130可以将响应或确认信号传送到主机102。在实施例中,控制器130可以检查每个通道或每个通路的状态。响应于从主机102输入的命令,控制器130可以基于每个通道或每个通路的状态来选择至少一个通道或通路,使得可以经由所选择的通道或通路来传送指令和/或具有数据操作结果。
作为示例而非限制,控制器130可以识别关于与存储器装置150中包括的多个存储器管芯相关联的多个通道(或通路)的状态。控制器130可以将每个通道或每个通路的状态确定为繁忙状态、准备状态、激活状态、空闲状态、正常状态和/或异常状态中的一个。控制器130可基于物理块地址来确定指令(和/或数据)通过哪个通道或通路传送,例如,将指令(和/或数据)传送到哪个(哪些)管芯中。控制器130可以参考从存储器装置150传送的描述符。描述符可以包括存储在块或页面中的参数或信息,其可以描述关于存储器装置150的某些信息。描述符可以被划分为具有预定格式或结构的多条数据。例如,描述符可以包括装置描述符、配置描述符、单元描述符等。控制器130可以参考或使用描述符来确定经由哪个(哪些)通道或通路来交换指令或数据。
管理单元(未示出)可以包括在处理器134中。管理单元可以对存储器装置150执行坏块管理。管理单元可发现存储器装置150中不符合进一步使用的状况的坏存储块,并对坏存储块执行坏块管理。当存储器装置150为例如NAND闪速存储器的闪速存储器时,由于NAND逻辑功能的特性,在写入操作(或编程操作期间)期间,可能发生编程失败。在坏块管理期间,编程失败的存储块或坏存储块的数据可被编程到新的存储块中。坏块可能会使具有三维(3D)堆叠结构的存储器装置150的利用效率和存储器系统110的可靠性严重劣化。因此,可靠的坏块管理可以增强或改善存储器系统110的性能。
图3示出了根据本公开的实施例的存储器系统的控制器130。
参照图3,详细描述根据本公开的另一实施例的存储器系统中的控制器130。控制器130与主机102和存储器装置150协作。控制器130包括主机接口(I/F)132、存储器接口(I/F)142、存储器144和闪存转换层(FTL)40。
尽管在图3中未示出,但是图2的ECC组件138可以包括在FTL 40中。在另一实施例中,ECC组件138可以实施为包括在控制器130中或与控制器130相关联的单独的模块、电路、固件等。
主机接口132可以处理从主机102接收的命令、数据等。作为示例而非限制,主机接口132可以包括缓冲器管理器52、事件队列54和命令队列56。命令队列56可以顺序地存储从主机102接收的命令、数据等,并且以存储的顺序将其输出到缓冲器管理器52。缓冲器管理器52可以对从命令队列56传送的命令、数据等进行分类、管理或调整。事件队列54可以顺序地传送用于处理从缓冲器管理器52接收的命令、数据等的事件。
可以从主机102连续接收具有相同特性的多个命令和/或数据。可选地,在混合或混杂之后,可以从主机102接收不同特性的多个命令和/或数据。例如,主机102可以传送用于读取数据的多个命令(即,读取命令)。又例如,主机102可以可选地传送用于读取数据的命令(即,读取命令)和用于编程/写入数据的命令(即,写入命令)。主机接口132可以将从主机102接收的命令、数据等顺序地存储到命令队列56。此后,主机接口132可以根据从主机102接收的命令、数据和其它相关信息的特性,估计或预测控制器130将执行哪种操作。主机接口132可以至少基于它们的特性来确定命令和数据的处理顺序和优先级。根据命令和数据的特性,主机接口132的缓冲器管理器52被配置为确定缓冲器管理器52是否应该将命令和数据存储在存储器144中,或者缓冲器管理器52是否应该将命令和数据传送到FTL 40。事件队列54接收从缓冲器管理器52输入的事件,响应于命令和数据这些事件将由存储器系统110或控制器130在内部执行和处理,以便将事件以接收的顺序传送到FTL 40中。
根据实施例,图3的主机接口132和存储器接口142可以执行图1中描述的控制器130的功能,诸如由接口36执行的操作。
根据实施例,FTL 40可以包括状态管理器42、映射管理器(MM)44、主机请求管理器(HRM)46和块管理器(BM或BBM)48。主机请求管理器46可以管理从事件队列54输入的事件。映射管理器44可以处理或控制映射数据。状态管理器42可以执行垃圾收集或损耗均衡。块管理器48可以对存储器装置150中的块执行命令或指令。
作为示例而非限制,主机请求管理器46可以根据读取和编程命令以及从主机接口132传送的事件使用映射管理器44和块管理器48来处置或处理请求。主机请求管理器46可以向映射管理器44发送查询请求,以确定与随事件一起输入的逻辑地址对应的物理地址。主机请求管理器46可以将具有物理地址的读取请求发送到存储器接口142,以处理读取请求(或处理事件)。另一方面,主机请求管理器46可以向块管理器48发送编程请求(或写入请求),以将输入的数据编程到存储器装置150中的未记录(无数据)的特定页面。然后,主机请求管理器46可以将与编程请求相对应的映射更新请求传送到映射管理器44,以在将逻辑到物理地址彼此映射的信息中更新与编程数据有关的项目。
块管理器48可以将从主机请求管理器46、映射管理器44和/或状态管理器42传送的编程请求转换为用于存储器装置150的闪存编程请求,以管理存储器装置150中的闪存块。为了使图2的存储器系统110的编程或写入性能最大化或增强该编程或写入性能,块管理器48可以收集编程请求并将用于多平面和单触发编程操作的闪存编程请求发送到存储器接口142。块管理器48向存储器接口142发送几个闪存编程请求以增强多通道和多方向闪存控制器(即,存储器接口142)的并行处理或使该并行处理最大化是可能的。
块管理器48可以被配置为根据有效页面的数量来管理存储器装置150中的块。进一步,当需要空闲块时,块管理器48可以选择并擦除不具有有效页面的块,并且当确定需要垃圾收集时,块管理器48可以选择包括最少有效页面的块。状态管理器42可以执行垃圾收集以将有效数据移动到空块,并擦除包含移动的有效数据的块,使得块管理器48可以具有足够的空闲块(即,没有数据的空块)。如果块管理器48将关于待擦除的块的信息提供给状态管理器42,则状态管理器42能够检查待擦除的块的所有闪存页面以确定每个页面是否有效。例如,为了确定每个页面的有效性,状态管理器42可以识别存储在每个页面的区域(例如,带外(OOB)区域)中的逻辑地址。为了确定每个页面是否有效,状态管理器42可以将页面的物理地址与映射到从查询请求获得的逻辑地址的物理地址进行比较。状态管理器42针对每个有效页面将编程请求发送到块管理器48。当编程操作完成时,可以通过更新映射管理器44来更新映射表。
映射管理器44可以管理逻辑到物理映射表。映射管理器44可以处理由主机请求管理器46或状态管理器42生成的诸如查询、更新等的请求。映射管理器44可以将整个映射表存储在存储器装置150(例如,闪存/非易失性存储器)中,并且根据存储器144的存储容量来高速缓存映射条目。当在处理查询或更新请求时发生映射高速缓存丢失时,映射管理器44可以向存储器接口142发送读取请求以加载存储在存储器装置150中的相关映射表。当映射管理器44中的脏高速缓存块的数量超过某个阈值时,可以将编程请求发送到块管理器48,以便形成干净高速缓存块,并且可以将脏映射表存储在存储器装置150中。
当执行垃圾收集时,状态管理器42将有效页面复制到空闲块中,并且主机请求管理器46可以对相同逻辑地址的页面编程最新版本的数据,并且及时发出更新请求。当状态管理器42在未正常完成有效页面的复制的状态下请求映射更新时,映射管理器44可以不执行映射表更新。这是因为,如果状态管理器42请求映射更新并且稍后完成有效页面复制,则发出的映射请求具有旧的物理信息。仅当最新的映射表仍然指向旧的物理地址时,映射管理器44可以执行映射更新操作以确保准确性。
根据实施例,状态管理器42可以包括图1所示的错误检查电路38。
存储器装置150可以包括多个存储块。根据可以存储或表示在块的一个存储器单元中的位数,可以将多个存储块分类为不同类型的存储块,诸如单层单元(SLC)存储块、多层单元(MLC)存储块等。SLC存储块包括由每个存储一位数据的存储器单元实施的多个页面。SLC存储块可具有高数据输入和输出(I/O)操作性能以及高耐用性。MLC存储块包括由每个存储多位(例如,两位或更多位)数据的存储器单元实施的多个页面。MLC存储块在相同空间中可以具有比SLC存储块更大的存储容量。MLC存储块可以在存储容量方面高度集成。在实施例中,存储器装置150可以利用MLC存储块实施,诸如MLC存储块、三层单元(TLC)存储块、四层单元(QLC)存储块及其组合。MLC存储块可以包括由每个能够存储2位数据的存储器单元实施的多个页面。三层单元(TLC)存储块可以包括由每个能够存储3位数据的存储器单元实施的多个页面。四层单元(QLC)存储块可以包括由每个能够存储4位数据的存储器单元实施的多个页面。在另一实施例中,存储器装置150可以利用包括由每个能够存储5位或更多位数据的存储器单元实施的多个页面的块实施。
在本公开的实施例中,存储器装置150实施为非易失性存储器,例如,诸如NAND闪速存储器和NOR闪速存储器的闪速存储器。但是,在另一实施例中,存储器装置150可以由相变随机存取存储器(PCRAM)、铁电随机存取存储器(FRAM)、自旋注入磁性存储器(例如,自旋转移力矩磁性随机存取存储器,STT-MRAM)等中的至少一个来实施。
图4示出图1至图3中的控制器130的存储器。根据实施例,存储器可以包括在控制器130中。可选地,存储器可以电连接到控制器130。
参照图4,存储器114可以包括多个存储器单元364。多个存储器单元364通过与多个字线WL0至WLx相对应的多个行地址和与多个位线BL0至BLx相对应的多个列地址而被单独地可寻址。因此,可以通过多个字线WL0至WLx和多个位线BL0至BLx来访问存储在多个存储器单元364中的多条数据。如图4所示,可以以矩阵的形式在概念上示出多个存储器单元364。然而,图4的矩阵的形式是概念性的,并且存储器114中的包括高度集成的元件(例如,晶体管)的多个存储器单元364可以具有平面或立方体结构,并且根据实施例可以对其结构进行各种修改。
多个字线WL0至WLx可以由行解码器选择性地启用。行解码器可以将电压施加到与在控制器130的操作期间请求的数据的地址相对应的特定字线。
根据实施例,存储器114可以利用可以具有不同结构的多个存储器单元364配置。作为示例而非限制,存储器单元364可包括静态随机存取存储器(SRAM)存储器单元364a,静态随机存取存储器(SRAM)存储器单元364a包括多个晶体管和反相锁存器。特别地,SRAM单元364a可以包括作为开关的、经由一对位线BLn、/BLn之间的单个字线WLm导通或关断的多个晶体管,以及在多个晶体管之间形成存储一条数据的闭环的反相锁存器。
作为另一示例,存储器单元364可以包括动态随机存取存储器(DRAM)存储器单元364b,动态随机存取存储器(DRAM)存储器单元364b包括一个晶体管和一个电容器。特别地,DRAM存储器单元364b可以包括用作开关晶体管的、通过单个字线WLm导通/关断的的晶体管以及能够存储与一条数据相对应的电荷量的电容器。当通过向字线WLm施加电压使晶体管导通时,存储在电容器中的电荷可流入位线BLn。
图5示出根据本公开的实施例的作为存储器的静态随机存取存储器(RAM)(SRAM)。图5中的静态RAM可以是图1至图4中的存储器114的一部分。
参照图5,存储器单元364可以经由一对位线BLn、/BLn连接到预充电单元362、以及写入驱动器366和/或读取驱动器368。尽管在图5中示出单个存储器单元364,但是多个存器储单元可以连接到一对位线BLn、/BLn。
预充电单元362可以包括作为开关元件的多个晶体管,其通过预充电信号PCn导通或关断。多个晶体管可以联接到相应的位线BLn、/BLn。
根据实施例,写入驱动器366可以包括作为开关元件的、通过写入使能信号EW、/EW导通或关断的多个晶体管以及至少一个反相器来传送一条数据。图5示出将待由用户输入的数据的反相值(/Dn)传送到写入驱动器366中的示例。根据写入驱动器366中的反相器的数量,写入驱动器366可以被设计为传送数据的原始值或相反值。
可以通过作为开关元件的、通过启用字线WLm导通的多个晶体管将存储在存储器单元364中的数据传送到一对位线BLn、/BLn。存储在存储器单元364中的数据的两个相反值分别被传送到位线BLn、/BLn。换言之,存储器单元364的数据经由位线BLn、/BLn传送到读取驱动器368中。读取驱动器368可以识别通过位线BLn、/BLn传递的两个相反值之间的差,以便基于该差输出数据Dn。
图6示出根据本公开的另一实施例的存储器系统。
参照图6,存储器系统110可以包括控制器130和存储器装置150。根据实施例,存储器装置150可以包括用于存储用户数据的用户数据块40_1和用于存储元数据的元数据块40_2。存储在存储器装置150中的用户数据或元数据中的一些可以被加载到控制器130的存储器144中,并且由控制器130重新存储在存储器装置150中。在图6中,将主要描述用于检测在控制器130的存储器144中发生的错误并处理、纠正或修复错误的设备。
存储器144可以包括单元阵列、行解码器和列缓冲器。单元阵列包括多个存储器单元。行解码器可以用于向字线施加电压以选择多个存储器单元的一部分。列缓冲器可以用于临时存储通过位线从存储器单元传送的数据,该存储器单元经由字线选择。
为了确定存储在存储器144中的一条数据中是否存在错误,列数据检查电路236可以对从单元阵列中的每一列输出的多条数据执行异或(XOR)运算。作为示例而非限制,可以顺序地启用与存储器144的全部或一部分相对应的多个字线,以便检查或验证存储在存储器144的全部或一部分中的多条数据。当顺序地启用多个字线时,连接到被启用的字线的多个存储器单元可以经由每个位线顺序地将一条数据输出到列缓冲器。在将通过位线传递的多条数据顺序地传送到列数据检查电路236之后,列数据检查电路236可以对多条数据执行XOR运算以确定多条数据是具有不同的值还是具有相同的值。例如,当多条数据具有相同的值时,XOR运算可以生成0或低电平的结果。否则,XOR运算可以生成1或高电平的结果。
错误校正电路234可以基于由列数据检查电路236执行的确定多条数据是否具有相同的值的结果来确定从列缓冲器输出的多条数据中是否存在错误。根据实施例,基于数据类型,错误校正电路234可以将存储器144的目标区域划分为包括经由一些位线联接的存储器单元的对象区域和包括经由其它位线联接的其它存储器单元的非对象区域。控制器130可以检查存储器144的全部或一部分中的错误。例如,目标区域可以是控制器130检查错误的区域。例如,可以通过顺序地启用多少个字线以用于检查错误来确定目标区域。对象区域可以包括每个存储一条有用数据的存储器单元,而非对象区域可以包括每个存储一条不完整的数据(perfunctory data)的存储器单元。
例如,存储器144的单元阵列可以包括与64个位线或64对位线连接的多个单位单元。当启用单个字线时,与64个位线或64对位线连接的多个存储器单元(即64个存储器单元)可以输出多条数据,其可以理解为64位数据。当存储在单元阵列的、对应于所启用的字线的多个存储器单元中的数据是64位用户数据时,所有位线(即64位)可以包括在对象区域中。然而,在仅使用64位之中的8位、16位或32位的数据的情况下,仅使用一些位而不是全部64位,并且不使用其它剩余位。可以在与所使用的位相对应的每个存储器单元中存储不同的值“0”或“1”。相反,可以在与未使用的位相对应的所有存储器单元中存储相同的值“0”或“1”。因此,当对从对象区域中经由每个位线彼此连接的多个存储器单元(即,列单元)输出的多条数据执行XOR运算时,XOR运算的结果可以为“0”或“1”。然而,当对从非对象区域中经由每个位线彼此连接的多个存储器单元输出的多条数据执行XOR运算时,在不存在错误的情况下,XOR运算的结果应为“0”。
当列数据检查电路236输出“0”时,即从对应于相同列地址(即,单个位线)的多个存储器单元输出的的多条数据彼此相同时,错误校正电路234可确定在非对象区域中不存在错误。然而,在列数据检查电路236确定在非对象区域中从与单个位线相对应的存储器单元输出的多条数据不全部相同(即,如果它们中的任意一个不同)时,错误校正电路234可以确定在与位线相对应的至少一个存储器单元中存在错误。
在当在非对象区域中检测到错误时的情况下,错误校正电路234可通过利用存储在非对象区域的其它存储器单元中的相同的值改变错误值来校正错误。例如,当将值“0”存储在非对象区域的存储器单元中时,可以将值“0”输入到其中检测到错误的特定存储器单元。相反,当将值“1”存储在非对象区域的其它存储器单元中时,可以将值“1”输入到其中检测到错误的特定存储器单元中。当确定不是由于存储器单元中的永久缺陷而是由于临时原因而发生错误时,图5的写入驱动器366可以经由相应的位线将一条数据输入到其中发生错误的存储器单元中。当可以通过重写来修复错误时,可以提高或增强存储器系统110的操作稳定性和可靠性。
在存储器144的对象区域的情况下,错误校正电路234可能不能通过对以列为单位的多条数据执行异或(XOR)运算来找到错误。错误校正电路234可以利用数据的奇偶校验或使用ECC码的算法来确定对象区域中是否存在错误。
当在对象区域中检测到错误时,错误校正电路234可以响应于数据的状态来确定如何修复错误。在非对象区域的情况下,用于新重新一条数据的方法可能是有效的。在对象区域的情况下,错误校正电路234可以不新重写数据以纠正错误。
存储器144可以存储从诸如易失性存储器的存储器装置150加载的数据或信息。因此,错误校正电路234可以确定每个数据是处于与每个数据被加载到易失性存储器中时的值相同的第一状态还是处于在每个数据被加载到易失性存储器装置中之后被更新的第二状态。在下文中,第一状态可以被称为干净状态,第二状态可以被称为脏状态。
当在存储在存储器144中的数据中检测到错误并且该数据处于第一状态时,错误校正电路234可以从存储器装置150重新加载该数据以纠正或修复错误。也就是说,当在从存储器装置150加载存储在存储器144中的多条数据之后,一条数据还尚未通过控制器130执行的操作而被更新、改变或修改时,因为存储在存储器144和存储器装置150中的多条数据应当彼此相同,因此错误校正电路234可以选择用于从存储器装置150重新加载该数据的操作以纠正错误。
当在存储在存储器144中的数据中检测到错误并且存储在存储器144中的数据处于第二状态时,错误校正电路234可以尝试对包括错误的该数据进行自动错误修复。如果数据已经通过控制器130执行的任意操作而被更新、改变或修改,则当从存储器装置150重新加载该数据时,更新的部分、数据或内容可能会丢失或消失。当更新的部分、数据或内容丢失或消失时,存储器系统100的操作可靠性可能劣化。在实施例中,自动错误修复可以使用采用数据奇偶校验或ECC码的算法。
在实施例中,控制器130可进一步包括错误位置检查电路232,错误位置检查电路232在错误校正电路234确定存在错误时跟踪与错误相对应的存储器单元的位置。错误位置检查电路232可以调整从与每个列地址相对应的存储器单元输出的、被传送到列数据检查电路236的数据的值域或范围,以便跟踪与错误相对应的存储器单元的位置。
例如,以存储器144中的全部单元阵列的列为单位(即,每个位线)执行异或(XOR)运算,然后在特定列中检测到错误。在这种情况下,错误校正电路234可能不检测经由位线输出多条数据的存储器单元中的哪一个是错误的。当在特定列中检测到错误时,错误位置检查电路232可以顺序地启用一半数量的字线,以限制存储器144中全部单元阵列的值域或范围(例如,一半)。当未检测到错误时,可以确定在存储器144中的全部单元阵列的另一半中存在错误。为了跟踪在特定列中发生的错误的位置,错误位置检查电路232可以逐渐减小用于检查错误的范围或值域,并识别与错误相对应的存储器单元的特定位置。
错误位置检查电路232可以将与错误相对应的存储器单元的位置存储在存储器144或存储器装置150中。可以执行存储与错误相对应的存储器单元的位置以确定错误是永久的还是临时的。当在存储器144中的特定位置重复发生错误时,即,如果已在相同位置中检测到错误,则怀疑存储器144的相应存储器单元存在永久性缺陷。
错误位置检查电路232可以在每当检测到错误时存储与错误相对应的存储器单元的位置,并且监控是否在相同位置已重复发生错误,以确定存储器单元是具有永久性缺陷还是具有临时性缺陷。当错误位置检查电路232确定特定存储器单元具有永久性缺陷时,存储器调整电路238可以响应于特定存储器单元是否具有永久性缺陷而利用冗余区域中的冗余存储器单元替换特定存储器单元。存储器144可以包括冗余区域,该冗余区域是一种不用于常规操作的额外区域。冗余区域可以包括行或列的多个单元。当确定特定存储器单元具有永久性缺陷时,可以利用冗余区域的行或列替换包括该存储器单元的行或列。
图7A和图7B示出根据本公开的实施例的列数据检查电路和错误校正电路的操作。具体地,图7A示出存储在存储器144中的多条数据中不存在错误的情况,图7B示出存储在存储器144中的多条数据中存在错误的情况。可以基于从存储器单元364输出的数据来确定图7A或图7B中的错误。
参照图7A,加载到存储器144中的多条数据是一种具有存储器144的一些位但不是所有位的大小的数据。因此,存储器144可以被划分为对象区域和非对象区域。
基于对经由存储器144的目标区域中的每个位线或每个列单元输出的多条数据执行异或(XOR)运算的结果266,可以检查数据中是否存在错误。非对象区域中的所有存储器单元应存储值“0”。当将值“0”存储在非对象区域的所有存储器单元中时,对应于非对象区域执行的XOR运算的结果266变为“0”。在这种情况下,可以确定在存储器144的目标区域内的非对象区域中不存在错误。
在存储器144中的对象区域的情况下,当对经由每个位线或每个列单元输出的多条数据执行XOR运算时,很可能获得结果“1”。进一步,可以从在特定位线或列单元中输出的多条数据获得结果“0”。相反,在存储器144中的对象区域的情况下,可能无法排除导出“0”而不是“1”结果的可能性,从而结果可能不被认为是在经由相应的位线或列单元联接的任意一个存储器单元中存在错误。
参照图7B,当在存储器144的非对象区域中存在错误时,对存储器144的目标区域中的每个位线或每个列单元执行异或(XOR)运算的结果266示出与错误相对应的存储器单元与哪个位线联接。存储器144的非对象区域的结果266应该为“0”。但是,如果获得结果“1”,则可以确定与位线或列单元相对应的存储器单元364中的至少一个具有错误。
本文中,仅基于对经由存储器144的目标区域中的每个位线或每个列单元输出的多条数据执行XOR运算的结果266,不能指定其中发生错误的存储器单元。然而,如图6所示,当改变目标区域的范围或值域并获得执行XOR运算的结果266时,控制器130可以指定哪个存储器单元与错误相对应。
根据实施例,可以通过软件、逻辑或逻辑电路来实施图6的列数据检查电路236,其生成对存储器144的目标区域中的每个位线或每个列单元执行XOR运算的结果266。当不干扰图6的存储器系统110的性能时,列数据检查电路236可以以各种方式设计。
图8示出根据本公开的实施例的列数据检查电路的操作。例如,图8示出可以利用列数据检查电路236a、236b的两个不同实施例来实施图6的列数据检查电路236。
参照图8,列数据检查电路236可以被实施为可以对顺序传送的多条数据执行异或(XOR)的逻辑或电路。例如,列数据检查电路236a、236b可以与缓冲器或数据放大器并联地联接到位线。列数据检查电路236中的每一个可以包括比较器252,该比较器252被配置为比较经由位线顺序接收的两条数据Dn。在图5中,存储在单位单元364中的多条数据可以通过读取驱动器368顺序地传送到列数据检查电路236a、236b。
根据实施例,列数据检查电路236b可以进一步包括参考生成电路256,参考生成电路256被配置为生成值“0”或“1”。例如,可能需要参考生成电路256来确定通过读取驱动器368接收的第一条数据是否包括错误。当图7的存储器144中的非对象区域被设置为“0”时,参考生成电路256可以输出值“0”。比较器252可以将来自存储器144的非对象区域的第一条数据与从参考生成电路256输出的值“0”进行比较。基于比较器252的比较结果Vn,可以确定经由每个位线从存储器144的非对象区域接收的第一条数据是否是错误的。
可以将通过读取驱动器368接收的第二或随后条数据与从参考生成电路256输出的值进行比较,以确定第二或随后条数据是否是错误的。如果比较器252可以立即将通过读取驱动器368接收的一条数据与参考生成电路256的输出进行比较,并且可以知道启用哪个字线以输出由比较器252比较的数据,则当比较器252的结果Vn改变时控制器130或错误位置检查电路232可以识别哪个存储器单元输出错误数据。当比较器252的结果Vn没有改变时,可以推测在经由位线从存储器144的非对象区域接收的多条数据中不存在错误。根据实施例,该进程可以由参照图6描述的错误位置检查电路232来执行。
根据实施例,列数据检查电路236a可以进一步包括:锁存器254,用于存储经由位线接收的数据;以及开关(SW)258,用于将锁存器254连接至比较器252。尽管未在图8中示出,但是另一开关可以布置在图5的锁存器254和读取驱动器368或位线之间。传送到列数据检查电路236a的一条数据Dn存储在锁存器254中。比较器252可以确定当前传递的一条数据Dn是否与存储在锁存器254中的数据相同。也就是说,比较器252可以将先前的数据与当前的数据进行比较以输出指示它们是否相同的结果Vn。
图9示出根据本公开的实施例的错误校正电路,例如图6的错误校正电路234的操作。
参照图9,错误校正电路234可以根据存储在存储器中的数据类型、数据状态以及作为图6的列数据检查电路236的输出的列数据判定来确定存储在存储器中的多条数据中是否存在错误。进一步,错误校正电路234可以被配置为至少基于包括错误的数据状态来确定如何纠正错误。
参照图1至图3和图6,元数据和用户数据可以存储在控制器130的存储器144中。尽管未示出,但是存储器144可以临时存储在控制器130的操作期间可以生成或加载的各种信息。作为示例将元数据与用户数据进行比较的原因是,仅存储器144的一部分(即,联接到一些位线的存储器单元)可以针对元数据而使用,但是因为元数据的大小或长度可以小于或短于用户数据的大小或长度,所以存储器144的全部(即,联接到所有位线的存储器单元)可以针对用户数据而使用。除了元数据和用户数据之外,可以将可以存储在存储器144中的各种信息项划分为使用存储器144的联接到所有位线的存储器单元的情况和使用存储器144的联接到一些位线的存储器单元的另一情况。
根据实施例,当不使用存储器144的所有位线时,即,元数据被存储在存储器144中时,错误校正电路234可以以位线或列为单位对存储在存储器144中的多条数据执行XOR运算。然而,当使用存储器144的所有位线时,即用户数据被存储在存储器144中时,错误校正电路234可能不关心错误。
作为示例而非限制,根据列数据检查电路236的结果,错误校正电路234可以识别出存储器144的非对象区域中的错误,但可能不能识别出对象区域中的错误。
根据存储在存储器144中的数据状态,错误校正电路234可以在识别出数据中存在错误之后确定如何修复错误。例如,如果存储在存储器144中的一条数据处于脏状态,则错误校正电路234可以执行自动错误修复。例如,可以通过使用数据奇偶校验或ECC码的算法来执行自动错误修复。另一方面,当存储在存储器144中的数据处于干净状态时,错误校正电路234可以从存储器装置150重新加载原始数据,而不是使用可能较复杂的错误校正算法执行错误修复。
如图9所示,错误校正电路234可以处理、纠正或修复存储器144中可能临时发生的错误。然而,当推测在存储器144的特定位置处发生的错误不是临时的而是永久的时,需要通过图6的存储器调整电路238利用位于冗余区域中的健康存储器单元来替换有缺陷的存储器单元。
图10示出根据本公开的实施例的用于存储器系统的操作方法。
参照图10,用于存储器系统的操作方法包括步骤442、步骤444和步骤446。步骤442可以包括在易失性存储器中设置用于错误检查的目标区域的步骤,该易失性存储器包括通过与字线相对应的行地址和与位线相对应的列地址可寻址的多个存储器单元。步骤444可以包括确定从目标区域中的与每个列地址相对应的存储器单元输出的多条数据是否彼此相同的步骤。步骤446可以包括基于与存储在目标区域中的多条数据有关的数据类型、数据状态以及列数据比较结果来确定多条数据中是否包括错误以纠正错误的步骤。
尽管未在图10中示出,但是为了检查存储器中是否存在错误,用于存储器系统的操作方法进一步包括基于数据类型将易失性存储器划分为包括经由一些位线联接的存储器单元的对象区域和包括经由其它位线联接的其它存储器单元的非对象区域的步骤。进一步,该操作方法包括当从非对象区域中的与列地址相对应的存储器单元输出的所有数据彼此不相同时,确定与列地址相对应的存储器单元中的至少一个中存在错误的步骤。当从非对象区域中的与列地址相对应的存储器单元输出的所有数据彼此相同时,推测在与列地址相对应的存储器单元中的至少一个中不存在错误。
在各个实施例中,确定多条数据中是否包括错误的步骤446可以包括确定每个数据处于与在将每个数据加载到易失性存储器中时的值相同的第一状态还是处于在将每个数据加载到易失性存储器装置中之后更新的第二状态的步骤。进一步,步骤446可以包括确定基于数据状态如何修复错误的步骤。例如,当包括错误的数据处于第一状态时,可以利用从存储器装置重新加载的原始数据替换存储在存储器中的数据以纠正或修复错误。当包括错误的数据处于第二状态时,存储器系统可以尝试对包括错误的数据进行自动错误修复。
如上所述,根据本公开的实施例,存储器系统可以识别、修复和校正在其操作期间可能发生的临时故障或错误,从而可以增强或改善存储器系统的操作稳定性和可靠性。
根据上述实施例,存储器系统、数据处理系统及其操作方法可以搜索在支持非易失性存储器系统中的控制器的操作的易失性存储器中发生的错误,并且修复或纠正易失性存储器中的错误以增加或增强非易失性存储器系统的操作可靠性。
本公开的实施例可以提供一种用于搜索、处理或纠正在诸如具有小存储容量但以高速运行的高速缓存存储器的易失性存储器中的存储器单元中发生的错误的设备和方法,从而可以提高包括易失性存储器的集成电路的生产率,并且可以增强或改善非易失性存储器系统的竞争力。
虽然已经针对具体实施例说明和描述了本公开,但是根据本公开对于本领域技术人员显而易见的是,在不脱离如所附权利要求中限定的本发明的精神和范围的情况下,可以进行各种改变和修改。

Claims (18)

1.一种控制存储器系统中的操作的设备,包括:
易失性存储器,包括多个存储器单元;
列数据检查电路,确定从与位线相对应的存储器单元输出的多条数据的所有数据是否彼此相同;以及
错误校正电路,至少基于数据类型、数据状态和所述列数据检查电路的输出来确定所述多条数据是否包括错误,并解决所述错误,
其中所述错误校正电路:
确定每个数据是处于与在每个数据被加载在所述易失性存储器中时的值相同的第一状态还是处于在每个数据被加载在所述易失性存储器中之后被更新的第二状态;以及
基于所述数据状态确定如何修复所述错误。
2.根据权利要求1所述的设备,其中所述易失性存储器包括静态随机存取存储器,所述静态随机存取存储器包括至少一个存储器单元,所述至少一个存储器单元包括多个晶体管。
3.根据权利要求1所述的设备,其中所述列数据检查电路包括比较器,所述比较器联接至缓冲器或放大器,并且比较顺序地输出的两条数据,所述缓冲器或所述放大器经由所述位线与所述存储器单元联接。
4.根据权利要求3所述的设备,其中所述列数据检查电路进一步包括:
锁存器,临时存储通过所述位线传递的一条数据;以及
开关,选择性地连接所述锁存器和所述比较器。
5.根据权利要求1所述的设备,其中基于所述数据类型,所述易失性存储器的目标区域被划分为包括经由一些位线联接的存储器单元的对象区域和包括经由其它位线联接的其它存储器单元的非对象区域。
6.根据权利要求5所述的设备,其中所述错误校正电路:
当从所述非对象区域中的与列地址相对应的所述存储器单元输出的多条数据的所有数据彼此不同时,确定与所述列地址相对应的至少一个存储器单元中存在错误。
7.根据权利要求5所述的设备,其中所述错误校正电路:
当确定所述非对象区域中存在所述错误时,将数据的错误值改变为与其它条数据相同的另一个值;以及
当确定所述对象区域中存在所述错误时,基于所述数据状态确定如何修复所述错误。
8.根据权利要求1所述的设备,其中所述错误校正电路:
当所述数据状态是所述第一状态时,从非易失性存储器装置重新加载包括错误的数据以解决所述错误;并且
当所述数据状态是所述第二状态时,对包括错误的所述数据执行错误校正修复。
9.根据权利要求8所述的设备,进一步包括:
错误位置检查电路:当所述错误校正电路确定所述多条数据的所有数据中包括所述错误时,跟踪与所述错误相对应的存储器单元的位置。
10.根据权利要求9所述的设备,其中所述错误位置检查电路调整输出到所述列数据检查电路的数据的范围,以跟踪与所述错误相对应的所述存储器单元的位置。
11.根据权利要求9所述的设备,进一步包括:
存储器调整电路:存储由所述错误位置检查电路跟踪的、与所述错误相对应的所述存储器单元的位置;监控是否在相同位置已重复发生另一个错误,以确定相应的存储器单元是否被视为坏存储器单元;并且利用冗余单元替换所述相应的存储器单元。
12.一种存储器系统,包括:
非易失性存储器装置,包括多个存储块;以及
控制器,包括易失性存储器:在将用户数据写入所述非易失性存储器装置中或读取存储在所述非易失性存储器装置中的所述用户数据的操作期间,存储元数据和所述用户数据中的至少一个,
其中所述控制器至少基于数据类型和数据状态来确定多条数据中的所有数据是否包括错误,确定每个数据是处于与在每个数据被加载在所述易失性存储器中时的值相同的第一状态还是处于在每个数据被加载在所述易失性存储器中之后被更新的第二状态,基于所述数据状态确定如何修复所述错误,并解决所述错误。
13.根据权利要求12所述的存储器系统,其中所述易失性存储器包括多个存储器单元,所述多个存储器单元通过与字线相对应的行地址和与位线相对应的列地址单独地可寻址。
14.根据权利要求13所述的存储器系统,其中所述控制器包括:
列数据检查电路,确定从与单个位线相对应的存储器单元输出的多条数据中的所有数据是否彼此相同;以及
错误校正电路,至少基于所述数据类型、所述数据状态和所述列数据检查电路的输出来确定所述多条数据是否包括错误并修复所述错误。
15.一种操作存储器系统的方法,包括:
在易失性存储器中设置用于错误检查的目标区域,所述易失性存储器包括通过与字线相对应的行地址和与位线相对应的列地址可寻址的多个存储器单元;
确定从所述目标区域中的与每个列地址相对应的存储器单元输出的多条数据是否彼此相同;并且
基于与存储在所述目标区域中的所述多条数据有关的数据类型、数据状态以及列数据比较结果来确定所述多条数据中是否包括错误,以纠正所述错误,
其中,确定是否包括错误包括:
确定每个数据是处于与在每个数据被加载在所述易失性存储器中时的值相同的第一状态还是处于在每个数据被加载在所述易失性存储器中之后被更新的第二状态;以及
基于所述数据状态确定如何修复所述错误。
16.根据权利要求15所述的方法,其中基于所述数据类型,所述易失性存储器的目标区域被划分为包括经由一些位线联接的存储器单元的对象区域和包括经由其它位线联接的其它存储器单元的非对象区域。
17.根据权利要求16所述的方法,进一步包括:
当从所述非对象区域中的与列地址相对应的所述存储器单元输出的多条数据的所有数据彼此相同时,确定在与所述列地址相对应的至少一个存储器单元中不存在错误。
18.根据权利要求15所述的方法,其中确定是否包括错误进一步包括:
当所述数据状态是所述第一状态时,从非易失性存储器装置重新加载包括错误的数据以解决所述错误;并且
当所述数据状态是所述第二状态时,对包括错误的所述数据执行错误校正修复。
CN201910987466.8A 2019-01-11 2019-10-17 处理存储器系统的易失性存储器中的错误的设备和方法 Active CN111435321B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2019-0003823 2019-01-11
KR1020190003823A KR20200087486A (ko) 2019-01-11 2019-01-11 메모리 시스템에서의 휘발성 메모리 내 오류를 처리하는 방법 및 장치

Publications (2)

Publication Number Publication Date
CN111435321A CN111435321A (zh) 2020-07-21
CN111435321B true CN111435321B (zh) 2023-07-25

Family

ID=71518080

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910987466.8A Active CN111435321B (zh) 2019-01-11 2019-10-17 处理存储器系统的易失性存储器中的错误的设备和方法

Country Status (3)

Country Link
US (1) US11487634B2 (zh)
KR (1) KR20200087486A (zh)
CN (1) CN111435321B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11481273B2 (en) 2020-08-17 2022-10-25 Micron Technology, Inc. Partitioned memory having error detection capability
CN117581301A (zh) * 2021-12-14 2024-02-20 英特尔公司 用于防止电子设备中的存储器故障的设备和方法
US12014797B2 (en) 2022-04-27 2024-06-18 Micron Technology, Inc. Apparatuses, systems, and methods for managing metadata storage at a memory
WO2024107503A1 (en) * 2022-11-15 2024-05-23 Micron Technology, Inc. Apparatuses and methods for separate write enable for single-pass access of data, metadata, and parity information

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5490105A (en) * 1994-09-27 1996-02-06 Regents Of The University Of Michigan High speed current mirror memory cell architecture
CN102890645A (zh) * 2011-07-20 2013-01-23 群联电子股份有限公司 存储器储存装置、存储器控制器与数据写入方法
CN103093818A (zh) * 2011-11-04 2013-05-08 三星电子株式会社 存储系统及其操作方法
CN107818057A (zh) * 2016-09-13 2018-03-20 爱思开海力士有限公司 存储器系统及其操作方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5107501A (en) * 1990-04-02 1992-04-21 At&T Bell Laboratories Built-in self-test technique for content-addressable memories
US5357471A (en) * 1992-03-20 1994-10-18 National Semiconductor Corporation Fault locator architecture and method for memories
JP4044075B2 (ja) * 2004-06-14 2008-02-06 株式会社東芝 半導体集積回路の試験回路及び試験方法
DE102005016050A1 (de) * 2005-04-07 2006-10-12 Infineon Technologies Ag Speicherfehlererkennungsvorrichtung und Verfahren zum Erkennen eines Speicherfehlers
US7277307B1 (en) * 2005-09-30 2007-10-02 Netlogic Microsystems, Inc. Column defect detection in a content addressable memory
US8321757B2 (en) * 2008-06-22 2012-11-27 Sandisk Il Ltd. Method and apparatus for error correction
KR101529880B1 (ko) 2008-10-31 2015-06-19 삼성전자주식회사 에러 추정 방법 및 정정 방법
KR100996009B1 (ko) * 2009-02-02 2010-11-22 주식회사 하이닉스반도체 불휘발성 메모리 소자 및 그 동작 방법
US8635514B2 (en) * 2011-02-28 2014-01-21 Micron Technology, Inc. Error control in memory storage systems
US9110824B2 (en) 2012-06-08 2015-08-18 Silicon Motion Inc. Method, controller, and memory device for correcting data bit(s) of at least one cell of flash memory
US9312885B2 (en) * 2012-08-15 2016-04-12 Kabushiki Kaisha Toshiba Nonvolatile semiconductor memory system error correction capability of which is improved
US10089177B2 (en) 2014-06-30 2018-10-02 Sandisk Technologies Llc Multi-stage decoder
KR102286193B1 (ko) 2015-06-30 2021-08-09 에스케이하이닉스 주식회사 플래시 메모리 시스템 및 그의 동작 방법
US9684555B2 (en) * 2015-09-02 2017-06-20 International Business Machines Corporation Selective memory error reporting
US10002042B2 (en) * 2015-10-22 2018-06-19 Sandisk Technologies Llc Systems and methods of detecting errors during read operations and skipping word line portions
KR20190004094A (ko) * 2017-07-03 2019-01-11 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5490105A (en) * 1994-09-27 1996-02-06 Regents Of The University Of Michigan High speed current mirror memory cell architecture
CN102890645A (zh) * 2011-07-20 2013-01-23 群联电子股份有限公司 存储器储存装置、存储器控制器与数据写入方法
CN103093818A (zh) * 2011-11-04 2013-05-08 三星电子株式会社 存储系统及其操作方法
CN107818057A (zh) * 2016-09-13 2018-03-20 爱思开海力士有限公司 存储器系统及其操作方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
FREE-p: Protecting Non-Volatile Memory against both Hard and Soft Errors;Doe Hyun Yoon 等;《2011 IEEE 17th International Symposium on High Performance Computer Architecture》;20110415;第466-477页 *

Also Published As

Publication number Publication date
US11487634B2 (en) 2022-11-01
CN111435321A (zh) 2020-07-21
KR20200087486A (ko) 2020-07-21
US20200226039A1 (en) 2020-07-16

Similar Documents

Publication Publication Date Title
US9996297B2 (en) Hot-cold data separation method in flash translation layer
CN111435321B (zh) 处理存储器系统的易失性存储器中的错误的设备和方法
US20180173619A1 (en) System and Method for Distributed Logical to Physical Address Mapping
US11138080B2 (en) Apparatus and method for reducing cell disturb in an open block of a memory system during a recovery procedure
KR102564774B1 (ko) 메모리 시스템 혹은 데이터 처리 시스템의 동작을 진단하는 장치 혹은 진단을 통해 신뢰성을 확보하는 방법
US11150822B2 (en) Memory system for determining usage of a buffer based on I/O throughput and operation method thereof
US10963160B2 (en) Apparatus and method for checking valid data in block capable of storing large volume data in memory system
US11544157B2 (en) Apparatus and method for storing data in an MLC area of a memory system
CN110910944A (zh) 保持存储器系统中的固件的设备和方法
KR20200033625A (ko) 메모리 시스템에서의 유효 데이터 체크 방법 및 장치
US20200034081A1 (en) Apparatus and method for processing data in memory system
US11675543B2 (en) Apparatus and method for processing data in memory system
CN111752474A (zh) 控制存储器系统的写入操作的设备和方法
KR102559549B1 (ko) 메모리 시스템에서의 블록 상태를 관리하는 방법 및 장치
CN112558860A (zh) 分布和读取数据的存储器系统及其操作方法
CN111435334B (zh) 在存储器系统中检查有效数据的设备和方法
CN112988054A (zh) 存储器系统及其操作方法
US11314653B2 (en) Memory controller
US11815985B2 (en) Apparatus and method for checking an operation status of a memory device in a memory system
CN114579040A (zh) 用于保持在存储器系统中存储的数据的设备和方法
CN112445424A (zh) 提高存储器系统的输入/输出吞吐量的设备和方法
US11392322B2 (en) Memory system for read operation and operating method thereof
CN114360620A (zh) 检查非易失性存储器装置的错误的设备和方法
US20240201864A1 (en) Memory system for securing reliability and operating method thereof
KR20190018908A (ko) 메모리 시스템 및 메모리 시스템의 동작 방법

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant