CN110910941A - 存储器系统及其操作方法 - Google Patents
存储器系统及其操作方法 Download PDFInfo
- Publication number
- CN110910941A CN110910941A CN201910592602.3A CN201910592602A CN110910941A CN 110910941 A CN110910941 A CN 110910941A CN 201910592602 A CN201910592602 A CN 201910592602A CN 110910941 A CN110910941 A CN 110910941A
- Authority
- CN
- China
- Prior art keywords
- memory
- error
- information
- controller
- background
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000015654 memory Effects 0.000 title claims abstract description 287
- 238000011017 operating method Methods 0.000 title description 3
- 238000000034 method Methods 0.000 claims abstract description 17
- 238000012545 processing Methods 0.000 description 23
- 238000010586 diagram Methods 0.000 description 21
- 239000000872 buffer Substances 0.000 description 18
- 238000012937 correction Methods 0.000 description 17
- 230000006870 function Effects 0.000 description 13
- 238000004891 communication Methods 0.000 description 8
- 230000004044 response Effects 0.000 description 7
- 230000008859 change Effects 0.000 description 6
- 238000013507 mapping Methods 0.000 description 5
- 238000007726 management method Methods 0.000 description 4
- 239000004065 semiconductor Substances 0.000 description 4
- 239000007787 solid Substances 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000011084 recovery Methods 0.000 description 3
- 230000003936 working memory Effects 0.000 description 3
- 229920001621 AMOLED Polymers 0.000 description 2
- 101000934888 Homo sapiens Succinate dehydrogenase cytochrome b560 subunit, mitochondrial Proteins 0.000 description 2
- 102100025393 Succinate dehydrogenase cytochrome b560 subunit, mitochondrial Human genes 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000009897 systematic effect Effects 0.000 description 2
- 239000000470 constituent Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1471—Saving, restoring, recovering or retrying involving logging of persistent data for recovery
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- 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/3418—Disturbance prevention or evaluation; Refreshing of disturbed memory data
-
- 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/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
-
- 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/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
-
- 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/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/30—Power supply circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/44—Indication or identification of errors, e.g. for repair
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/82—Solving problems relating to consistency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/84—Using snapshots, i.e. a logical point-in-time copy of the data
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
存储器系统及其操作方法。一种存储器系统包括:存储器装置,所述存储器装置用于存储系统操作信息;以及控制器,所述控制器用于每当要执行后台操作时执行检查定点操作,基于所述系统操作信息执行所述后台操作,并且当在所述后台操作期间发生错误时基于紧接在执行所述后台操作之前通过所述检查定点操作而存储的系统操作信息执行回滚操作,其中,所述控制器通过将关于所述错误的错误信息反映到所述系统操作信息中并且基于其中反映了所述错误信息的系统操作信息执行所述后台操作,来执行所述回滚操作。
Description
技术领域
本发明的各种实施方式涉及存储器系统,更具体地,涉及一种能够高效地执行纠错操作的存储器系统及该存储器系统的操作方法。
背景技术
计算机环境典范已经转移到普适计算,这使得计算系统能够被随时随地使用。因此,诸如移动电话、数码相机和膝上型计算机之类的便携式电子装置的使用迅速增加。这些便携式电子装置通常使用具有一个或更多个存储器装置的存储器系统来存储数据。存储器系统可以用作便携式电子装置的主存储器装置或辅存储器装置。
与硬盘装置相比,因为存储器系统没有移动部件,所以它们提供了优异的稳定性、耐用性、高的信息访问速度和低的功耗。具有这些优点的存储器系统的示例包括通用串行总线(USB)存储器装置、具有各种接口的存储卡以及固态驱动器(SSD)。
发明内容
本发明的实施方式涉及一种能够高效地执行纠错操作的存储器系统。
根据本发明的一个实施方式,一种存储器系统包括:存储器装置,所述存储器装置用于存储系统操作信息;以及控制器,所述控制器用于每当要执行后台操作时执行检查定点操作(check-pointing operation),基于所述系统操作信息执行所述后台操作,并且当在所述后台操作期间发生错误时基于紧接在执行所述后台操作之前通过所述检查定点操作而存储的系统操作信息执行回滚操作(roll-back operation),其中,所述控制器通过将关于所述错误的错误信息反映到所述系统操作信息中并且基于其中反映了所述错误信息的系统操作信息执行所述后台操作,来执行所述回滚操作。
根据本发明的另一实施方式,一种用于操作存储器系统的方法包括以下步骤:每当要执行后台操作时执行检查定点操作;基于系统操作信息执行后台操作;以及当在所述后台操作期间发生错误时,基于紧接在执行所述后台操作之前通过所述检查定点操作而存储的所述系统操作信息来执行回滚操作,其中,执行所述回滚操作包括以下步骤:将关于所述错误的错误信息反映到通过所述检查定点操作获得的所述系统操作信息中,并基于其中反映了所述错误信息的系统操作信息执行所述后台操作。
根据本发明的一个实施方式,一种存储器系统包括:存储器装置;以及控制器,所述控制器适于:执行包括将系统操作信息存储在存储器装置中的检查定点操作;在执行检查定点操作之后,基于系统操作信息执行针对存储器装置的后台操作;在后台操作期间确定是否发生了错误;当确定出发生了错误时,更新系统操作信息以反映关于错误的信息;并且基于更新的系统操作信息执行后台操作。
附图说明
图1是示出根据本发明的一个实施方式的包括存储器系统的数据处理系统的框图。
图2是示出图1所示的存储器系统中采用的存储器装置的配置的示意图。
图3是示出图1所示的存储器装置中的存储块的存储器单元阵列的配置的电路图。
图4是示出根据本发明的一个实施方式的存储器系统的存储器装置的结构的框图。
图5是示出根据现有技术的回滚操作的流程图。
图6是示出根据本发明的一个实施方式的存储器系统的结构的框图。
图7是示出根据本发明的一个实施方式的存储器系统的操作的流程图。
图8是示出根据本发明的一个实施方式的错误检测操作的框图。
图9是示出根据本发明的一个实施方式的存储器系统的操作的流程图。
图10至图18是示意性示出根据本发明的各种实施方式的数据处理系统的应用的图。
具体实施方式
下面将参照附图更详细地描述本发明的各种实施方式。然而,本发明可以以不同的形式实施,而不应该被解释为限于本文所阐述的实施方式。相反,提供这些实施方式是为了使本公开是彻底的和完整的,并且向本领域技术人员充分传达本发明的范围。贯穿本公开,相同的附图标记在本发明的各个图和实施方式中指代相同的部件。
注意,对“实施方式”、“另一实施方式”等的引用不一定仅意味着一个实施方式,并且对任何这样的短语的不同引用也不一定指相同实施方式。
应当理解,尽管本文可以使用术语“第一”和/或“第二”来标识各种元件,但是这些元件不应受这些术语的限制。这些术语仅用于将一个元件与另外具有相同或相似名称的另一元件区分开来。例如,在不脱离本公开的教导的情况下,一个实例中的第一元件能够在另一实例中被称为第二元件,反之亦然。
应当理解,当元件被称为“联接”或“连接”到另一元件时,该元件能够直接联接或直接连接到另一元件,或者可以在它们之间存在中间元件。相反,应该理解,当元件被称为“直接联接”或“直接连接”到另一元件时,不存在中间元件。诸如“在…之间”、“直接在…之间”、“与…相邻”、“直接与…相邻”之类的解释元件之间的关系的其它表述应以相同方式来解释。除非上下文另有说明,否则两个元件之间的通信(无论是直接连接/联接还是间接连接/联接)可以是有线的或无线的。
本文所使用的术语仅用于描述特定实施方式的目的,而并非限制性的。在本公开中,除非上下文另有明确说明,否则单数形式旨在包括复数形式,反之亦然。本申请和所附权利要求中使用的冠词“一”和“一个”通常应被解释为表示“一个或更多个”,除非另有说明或根据上下文清楚地指向单数形式。将进一步理解,当在本说明书中使用术语“包括”、“包含”、“具有”和其它开放式过渡术语时,其指示存在所提及特征、数字、步骤、操作、元件、部件和/或它们的组合,但不排除存在或添加一个或更多个其它特征、数字、步骤、操作、元件、部件和/或其组合。
本文所公开的实施方式仅用于理解本公开的技术精神的目的,并且本发明的范围不应限于所公开的实施方式。本公开所属领域的技术人员根据本公开内容将理解的是,在本发明的范围内可以进行各种变型。
除非另外定义,否则本文使用的包括技术术语和科学术语在内的所有术语具有与本公开所属领域的普通技术人员通常理解的含义相同的含义。除非在本公开中另外定义,否则不应以理想或过于形式的方式解释这些术语。
现在将参照附图详细描述本发明的各种实施方式。
图1是示出根据本发明的一个实施方式的包括存储器系统110的数据处理系统100的框图。
参照图1,数据处理系统100可以包括主机102和存储器系统110。
主机102可以包括诸如移动电话、MP3播放器和膝上型计算机之类的各种便携式电子装置中的任意一种或者诸如台式计算机、游戏机、电视机(TV)和投影仪之类的各种非便携式电子装置中的任意一种。
主机102可以包括至少一个操作系统(OS)或多个操作系统。主机102可以执行OS以对存储器系统110执行与用户请求对应的操作。这里,主机102可以向存储器系统110提供与用户请求相对应的多个命令。因此,存储器系统110可以执行与多个命令对应(即,与用户请求对应)的特定操作。OS可以管理和控制主机102的整体功能和操作。OS可以使用数据处理系统100或存储器系统110来支持主机102和用户之间的操作。
存储器系统110可以响应于来自主机102的请求而操作或执行特定功能或操作,具体地,可以存储主机102要访问的数据。存储器系统110可以用作主机102的主存储器系统或辅存储器系统。根据主机接口的协议,存储器系统110可以利用可与主机102电联接的各种类型的储存装置中的任意一种来实现。存储器系统110的非限制性示例包括固态驱动器(SSD)、多媒体卡(MMC)和嵌入式MMC(eMMC)。
存储器系统110可以包括各种类型的储存装置。这种储存装置的非限制性示例包括诸如DRAM动态随机存取存储器(DRAM)和静态RAM(SRAM)之类的易失性存储器装置以及诸如只读存储器(ROM)、掩模ROM(MROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、铁电RAM(FRAM)、相变RAM(PRAM)、磁阻RAM(MRAM)、电阻RAM(RRAM)和闪存之类的非易失性存储器装置。
存储器系统110可以包括控制器130和存储器装置150。
控制器130和存储器装置150可以集成到单个半导体装置中,该半导体装置可以被包括在如上所述的各种类型的存储器系统中的任意一种中。例如,控制器130和存储器装置150可以被集成为单个半导体装置以构成SSD、个人计算机存储卡国际联盟(PCMCIA)卡、包括mini-SD、micro-SD和SDHC的安全数字(SD)卡以及通用闪存(UFS)装置。存储器系统110可以被配置为计算机、智能电话、便携式游戏机的一部分或者配置计算系统的各种组件中的一个组件。
存储器装置150可以是即使不供电也可以保留存储的数据的非易失性存储器装置。存储器装置150可以通过写入操作来存储从主机102提供的数据,并且通过读取操作将存储在其内的数据输出到主机102。在实施方式中,存储器装置150可以包括多个存储器管芯(未示出),并且每个存储器管芯可以包括多个平面(未示出)。每个平面可以包括多个存储块152至156,每个存储块可以包括多个页,每个页可以包括联接到字线的多个存储器单元。在实施方式中,存储器装置150可以是具有3维(3D)堆叠结构的闪存。
下面将参照图2至图4详细描述存储器装置150的结构和存储器装置150的3D堆叠结构。
控制器130可以响应于来自主机102的请求而控制存储器装置150。例如,控制器130可以将从存储器装置150读取的数据提供给主机102,并且将从主机102提供的数据存储到存储器装置150。对于该操作,控制器130可以控制存储器装置150的读取操作、写入操作、编程操作和擦除操作。
更具体地,控制器130可以包括经由内部总线全部可操作地联接或接合的主机接口(I/F)132、处理器134、纠错码(ECC)组件138、电源管理单元(PMU)140、存储器接口142和存储器144。
主机接口132可以处理主机102的命令和数据。主机接口132可以通过诸如以下各种接口协议中的一种或更多种与主机102通信:通用串行总线(USB)、多媒体卡(MMC)、外设组件快速互连(PCI-e或PCIe)、小型计算机系统接口(SCSI)、串行连接SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、增强型小磁盘接口(ESDI)和集成驱动电子设备(IDE)。主机接口132可以经由固件(即,主机接口层(HIL))来驱动以用于与主机102交换数据。
此外,ECC组件138可以校正存储器装置150要处理的数据的错误比特,并且可以包括ECC编码器和ECC解码器。ECC编码器可以对要编程到存储器装置150中的数据执行纠错编码,以生成添加了奇偶校验比特的数据。包括奇偶校验比特的数据可以存储在存储器装置150中。ECC解码器可以检测从存储器装置150读取的数据中所包含的错误并进行校正。ECC组件138可以通过低密度奇偶校验(LDPC)码、博斯-查德胡里-霍昆格姆(Bose-Chaudhri-Hocquenghem,BCH)码、turbo码、里德-所罗门(Reed-Solomon)码、卷积码、递归系统码(RSC)或者诸如网格编码调制(TCM)和块编码调制(BCM)之类的编码调制来执行纠错。然而,ECC组件138不限于这些纠错技术。这样,ECC组件138可以包括用于执行适当纠错的任何和所有电路、模块、系统或装置。
PMU 140可以管理和提供在控制器130中使用的电力。
存储器接口142可以用作控制器130和存储器装置150之间的存储器/储存接口,使得控制器130可以响应于来自主机102的请求而控制存储器装置150。
存储器144可以用作存储器系统110和控制器130的工作存储器,并且存储用于驱动存储器系统110和控制器130的数据。
存储器144可以是易失性存储器。例如,存储器144可以是静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)。存储器144可以设置在控制器130内部或外部。图1示出了设置在控制器130内的存储器144。在实施方式中,存储器144可以是外部易失性存储器,该外部易失性存储器具有用于在存储器144和控制器130之间传送数据的存储器接口。
如上所述,存储器144可以包括编程存储器、数据存储器、写入缓冲器/高速缓存、读取缓冲器/高速缓存、数据缓冲器/高速缓存和映射缓冲器/高速缓存,以存储在主机102和存储器装置150之间执行数据写入和读取操作所需的一些数据以及控制器130和存储器装置150执行这些操作所需的其它数据。
处理器134可以控制存储器系统110的整体操作。处理器134可以使用固件来控制存储器系统110的整体操作。固件可以被称为闪存转换层(FTL)。处理器134可以用微处理器或中央处理单元(CPU)来实现。
例如,控制器130可以通过处理器134对存储器装置150执行主机102请求的操作。另外,控制器130可以通过处理器134对存储器装置150执行后台操作。对存储器装置150执行的后台操作可以包括以下操作:将存储器装置150的存储块152至156当中的一些存储块中所存储的数据复制和处理到其它存储块的操作(例如,垃圾收集(GC)操作)、在存储块152至156中的一些存储块之间交换数据的操作(例如,耗损均衡(WL)操作)、将控制器130中所存储的映射数据存储在存储块152至156中的操作(例如,映射刷新操作)、或者管理存储器装置150的坏块的操作(例如,检测和处理存储器装置150中的存储块152至156当中的坏块的坏块管理操作)。
参照图2至图4详细描述根据本发明的实施方式的存储器系统的存储器装置。
图2是示出存储器装置150的示意图。图3是示出存储器装置150中的存储块330的存储器单元阵列的配置的电路图。图4是示出存储器装置150的三维(3D)结构的示意图。
参照图2,存储器装置150可以包括多个存储块BLOCK0 210至BLOCKN-1 240,其中N是大于1的整数。块BLOCK0 210至BLOCKN-1 240中的每一个可以包括数量可根据电路设计而变化的多个页,例如,2M或M个页,M是大于1的整数。每个页可包括联接到多条字线WL的多个存储器单元。
另外,各个存储块BLOCK0 210至BLOCKN-1 240中的存储器单元可以是存储1比特数据的单级单元(SLC)存储块或存储2比特数据的多级单元(MLC)存储块中的一个或更多个。因此,取决于在存储块中的每个存储器单元中能够表示或存储的比特数,存储器装置150可以包括SLC存储块或MLC存储块。SLC存储块可以包括由每个存储一比特数据的存储器单元实现的多个页。SLC存储块通常可以具有比MLC存储块更高的数据计算性能和更高的耐用性。MLC存储块可以包括由每个存储多比特数据(例如,2比特或更多比特)的存储器单元实现的多个页。MLC存储块通常可以具有比SLC存储块更大的数据储存空间,即,更高的集成密度。在另一实施方式中,存储器装置150可以包括多个三级单元(TLC)存储块。在又一实施方式中,存储器装置150可以包括多个四级单元(QLC)存储块。TLC存储块可以包括由每个能够存储3比特数据的存储器单元实现的多个页。QLC存储块可以包括由每个能够存储4比特数据的存储器单元实现的多个页。
代替非易失性存储器,存储器装置150可以由相变随机存取存储器(PCRAM)、电阻随机存取存储器(RRAM或ReRAM)、铁电随机存取存储器(FRAM)和自旋转移力矩磁随机存取存储器(STT-RAM或STT-MRAM)中的任意一个来实现。
存储块210、220、230、240可以通过编程操作来存储从主机102传送的数据,并且可以通过读取操作将存储在其内的数据传送到主机102。
参照图3,存储块330可以包括联接到多条对应位线BL0至BLm-1的多个单元串340。每列的单元串340可以包括一个或更多个漏极选择晶体管DST和一个或更多个源极选择晶体管SST。在漏极选择晶体管DST和源极选择晶体管SST之间,可以串联联接多个存储器单元MC0至MCn-1。在实施方式中,存储器单元晶体管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中的每一个可以包括多个锁存器(未示出)。
存储器装置150可以由2D或3D存储器装置实现。具体地,如图4中所示,存储器装置150可以由具有3D堆叠结构的非易失性存储器装置实现。当存储器装置150具有3D结构时,存储器装置150可以包括多个存储块BLK0至BLKN-1。图4是示出图1中所示的存储器装置150的存储块152、154和156的框图。存储块152、154和156中的每一个可以以3D结构(或垂直结构)实现。例如,存储块152、154和156可以通过具有在三个相互正交的方向(例如,图4中所示的x轴方向、y轴方向和z轴方向)上延伸的维度的三维结构单独地和共同地实现。
存储器装置150中所包括的每个存储块330可以包括在第二方向上延伸的多个NAND串NS以及在第一方向和第三方向上延伸的多个NAND串NS。NAND串NS(未示出)中的每一个可以联接到位线BL、至少一条源极选择线SSL、至少一条漏极选择线DSL、多条字线WL、至少一条虚设字线DWL(未示出)和公共源线CSL,并且NAND串NS中的每一个可以包括多个晶体管结构TS。
简而言之,存储器装置150的存储块152、154和156中的每个存储块330可以联接到多条位线BL、多条源极选择线SSL、多条漏极选择线DSL、多条字线WL、多条虚设字线DWL和多条公共源线CSL,并且每个存储块330可以包括多个NAND串NS。另外,在每个存储块330中,一条位线BL可以联接到多个NAND串NS,以在一个NAND串NS中实现多个晶体管。另外,每个NAND串NS的源极选择晶体管SST可以联接到公共源线CSL,并且每个NAND串NS的漏极选择晶体管DST可以联接到对应位线BL。这里,存储器单元MC可以设置在每个NAND串NS的源极选择晶体管SST和漏极选择晶体管DST之间。换句话说,可以在存储器装置150的每个存储块330中实现多个存储器单元。
在以上存储器系统100中,可以执行回滚操作。回滚操作可以是指当数据无效时或者当在更新操作期间发生错误时将数据的当前状态返回到现有正常状态的操作。每当执行后台操作时,控制器130可以控制存储器装置150执行检查定点操作,以恢复错误数据,从而复原现有正常数据。当发生错误时,控制器130可以执行回滚操作,该回滚操作是基于根据先前的检查定点操作的系统操作信息来执行后台操作。
图5是示出根据现有技术的回滚操作的流程图。
参照图5,在步骤S502,每当执行后台操作时,控制器执行检查定点操作以存储紧接在后台操作之前的系统操作信息。系统操作信息是执行后台操作所需的系统状态信息,诸如打开块的地址信息、擦除计数信息、有效页计数信息和读取计数信息。
在步骤S504,控制器基于系统操作信息执行后台操作。后台操作是映射更新操作、耗损均衡操作、数据垃圾收集操作、映射垃圾收集操作和读取复归(reclaim)操作中的任何一个。控制器可以基于存储在控制器的存储器中的系统操作信息来执行后台操作。例如,控制器130基于存储在存储器中的有效页计数信息和空闲页计数信息来检测源块和目的地块,以执行垃圾收集操作。
在步骤S506,控制器检测在执行后台操作的同时发生的错误,例如,编程失败或VCC电压下降。控制器将已经发生错误的块指定为坏块。例如,当在执行垃圾收集操作期间编程在目的地块中的有效数据是失败数据时,控制器将其中发生了编程失败的目的地块指定为坏块。
在步骤S508,当在步骤S506发生错误时,控制器执行基于根据在步骤S502执行的检查定点操作的系统操作信息执行后台操作的回滚操作。
然而,根据现有技术的控制器没有将在步骤S506产生的关于错误的信息(即,错误信息)反映到通过在紧接着之前执行的检查定点操作而存储在存储块中的系统操作信息中。因此,根据回滚操作,数据的当前状态能够返回到错误发生之前的正常状态,但是错误信息会丢失。因此,当执行根据现有技术的回滚操作时,可以恢复损坏的数据并将其复原到现有正常数据,但是无法防止在执行回滚操作之后可能发生的错误,这是有问题的。例如,当控制器执行回滚操作时,关于在步骤S506指定的坏块的信息可丢失。因此,当步骤S506的坏块在回滚操作之后被指定为目的地块,然后执行后台操作时,可发生错误。
根据本发明的实施方式,控制器130可以通过将关于在执行后台操作期间发生的错误的信息反映到通过紧接着之前执行的检查定点操作而存储在存储块中的系统操作信息中来执行回滚操作。因此,可以通过在反映错误信息的同时执行回滚操作来防止在回滚操作之后可能发生的错误以及同时恢复错误。
图6是示出根据本发明的一个实施方式的存储器系统110的结构的框图。为清楚起见,图6仅示出了图1的数据处理系统100中的与以下描述相关的组成元件。然而,应该理解,图6的存储器系统110可以包括附加组件,附加组件包括在图1中示出的但是在图6中省略的组件。
参照图6,如上所述,存储器系统110可以包括存储器装置150和控制器130。控制器130可以控制存储器装置150的后台操作和回滚操作。
控制器130可以包括处理器134和存储器144。控制器130还可以包括系统操作信息管理器602、错误检测器604和更新器606。
每当执行后台操作时,处理器134可以向系统操作信息管理器602提供起始信号Sigstart。根据本发明的实施方式,后台操作可以包括垃圾收集操作、映射更新操作、读取复归操作和耗损均衡操作。
系统操作信息管理器602可以基于提供的起始信号Sigstart向存储器装置150提供编程命令CMDPGM和存储在存储器144中的系统操作信息Infosystem。存储器装置150可以基于所提供的编程命令CMDPGM将系统操作信息Infosystem编程到存储块152中。每当执行后台操作时,处理器134可以向系统操作信息管理器602提供起始信号Sigstart。系统操作信息管理器602可以向存储器装置150提供系统操作信息Infosystem,以便执行将表示紧接在执行后台操作之前的系统状态信息的系统操作信息Infosystem存储在存储器装置150中的检查定点操作。当存储器装置150的编程操作完成时,系统操作信息管理器602可以向处理器134提供完成信号Sigcomplete。
处理器134可以基于所提供的完成信号Sigcomplete来控制存储器装置150的后台操作。处理器134可以控制存储器装置150基于存储在存储器144中的系统操作信息Infosystem来执行后台操作。例如,处理器134可以基于存储在存储器144中的读取计数信息和空闲块信息,检测其读取计数大于或等于阈值的存储块作为牺牲块并且检测空闲块作为目的地块。此外,处理器134可以控制存储器装置150执行将牺牲块中所存储的有效数据复制到目标块中的读取复归操作。
错误检测器604可以检测在执行后台操作期间发生的错误并将错误信息infoerror存储在存储器144中。当发生突然断电时,错误检测器604可以控制存储器装置150执行将错误信息infoerror存储在存储块中的备份操作。根据本发明的实施方式,当在后台操作期间发生编程失败时,错误检测器604可以将发生了编程失败的存储块指定为坏块,并将坏块的地址信息存储在存储器144中。例如,当处理器134执行将源块中所存储的有效数据复制到目的地块中的垃圾收集操作时,结果证明在目的地块中编程的有效数据是失败数据,错误检测器604可以检测到编程失败并将目的地块指定为坏块。错误检测器604可以将坏块的地址信息存储在存储器144中。
根据本发明的另一实施方式,当在后台操作期间发生VCC电压下降时,错误检测器604可以将在VCC电压下降期间处于执行编程操作中的字线的地址信息存储在存储器144中。当完成将错误信息infoerror存储在存储器144中的操作时,错误检测器604可以向系统操作信息管理器602提供触发信号Sigtrig。
系统操作信息管理器602可以基于所提供的触发信号Sigtrig向存储器装置150提供读取命令CMDread。存储器装置150可以基于所提供的读取命令CMDread来读取存储块152中所存储的系统操作信息Infosystem。在将读取的系统操作信息Infosystem存储在存储器144中之后,系统操作信息管理器602可以向更新器606提供触发信号Sigtrig。系统操作信息Infosystem可以是紧接在处理器134执行后台操作之前存储在存储器144中的系统操作信息Infosystem。系统操作信息管理器602可以控制存储器装置150从存储块读取系统操作信息Infosystem,以便将由于发生错误而产生的损坏数据恢复到现有正常数据。
更新器606可以基于所提供的触发信号Sigtrig执行将错误信息infoerror反映到存储器装置150提供的系统操作信息Infosystem中的更新操作。根据本发明的实施方式,更新器606可以通过同步来执行将错误信息infoerror反映到紧接在执行后台操作之前的系统操作信息Infosystem中的更新操作。更新器606可以将作为更新操作的结果而产生的更新的系统操作信息Infosystem存储在存储器144中,然后向处理器134提供完成信号Sigcomplete。
处理器134可以根据所提供的完成信号Sigcomplete来控制存储器装置150执行基于更新的系统操作信息Infosystem执行后台操作的回滚操作。根据本发明的实施方式,处理器134可以通过执行基于反映了错误信息的更新的系统操作信息Infosystem执行后台操作的回滚操作,在将损坏的数据恢复为现有正常数据的同时防止在回滚操作之后发生错误。
图7是示出根据本发明的一个实施方式的存储器系统(例如,存储器系统110)的操作的流程图。
参照图7,用于操作存储器系统110的方法可以包括在步骤S702执行检查定点操作、在步骤S704执行后台操作、在步骤S706检测错误、在步骤S708更新系统操作信息以及在步骤S710执行回滚操作。
在步骤S702,每当执行后台操作时,控制器130可以控制存储器装置150执行检查定点操作。系统操作信息管理器602可以控制存储器装置150执行紧接在执行后台操作之前将系统操作信息Infosystem存储在存储块中的检查定点操作。每当执行后台操作时,处理器134可以向系统操作信息管理器602提供起始信号Sigstart。系统操作信息管理器602可以基于起始信号Sigstart向存储器装置150提供存储器144中所存储的系统操作信息Infosystem以及编程命令CMDPGM。存储器装置150可以基于编程命令CMDPGM执行将系统操作信息Infosystem编程到存储块152中的检查定点操作。当检查定点操作完成时,系统操作信息管理器602可以向处理器134提供完成信号Sigcomplete。
在步骤S704,在执行检查定点操作之后,控制器130可以控制存储器装置150执行后台操作。处理器134可以根据所提供的完成信号Sigcomplete控制存储器装置150基于存储器144中所存储的系统操作信息Infosystem执行后台操作。
在步骤S706,控制器130可以检测在执行后台操作的同时发生的错误。错误检测器604可以将关于发生的错误的信息存储在存储器144中,并向系统操作信息管理器602提供触发信号Sigtrig。根据本发明的实施方式,当执行垃圾收集操作时,结果证明在目的地块中编程的有效数据是失败数据,错误检测器604可以将目的地块指定为坏块,然后将坏块的地址信息存储在存储器144中。
图8是示出根据本发明的一个实施方式的错误检测操作的框图。
当存储器装置150执行将源块802的有效数据复制到目的地块804中的垃圾收集操作时,在目的地块804中编程的有效数据证明是失败数据,错误检测器604可以将目的地块804指定为坏块。错误检测器604可以基于存储在映射块中的映射数据将坏块的地址信息infoerror存储在存储器144中。在发生突然断电的情况下,错误检测器604可以控制存储器装置150将存储在存储器144中的错误信息infoerror编程到备用块806中。
返回参照图7,在步骤S708,控制器130可以执行将错误信息infoerror反映到紧接在执行后台操作之前的系统操作信息Infosystem中的系统操作信息更新操作。系统操作信息管理器602可以基于所提供的触发信号Sigtrig向存储器装置150提供读取命令CMDread,以读取存储在存储器系统150中的、紧接在执行后台操作之前的系统操作信息Infosystem,并将所读取的系统操作信息Infosystem存储在存储器144中。例如,系统操作信息管理器602可以控制存储器装置150搜索存储块中所存储的最新系统操作信息。系统操作信息管理器602可以通过将错误信息infoerror反映到系统操作信息Infosystem中来更新系统操作信息Infosystem。
系统操作信息管理器602可以将系统操作信息Infosystem存储在存储器144中,然后向更新器606提供触发信号Sigtrig。更新器606可以基于所提供的触发信号Sigtrig来更新系统操作信息Infosystem以反映错误信息infoerror。根据本发明的实施方式,更新器606可以通过使存储器144中所存储的错误信息infoerror与紧接在执行后台操作之前的系统操作信息Infosystem同步来执行更新操作。当更新操作完成时,更新器606可以向处理器134提供完成信号Sigcomplete。
在步骤S710,控制器130可以控制存储器装置150执行基于在步骤S708中获得的更新的系统操作信息Infosystem执行后台操作的回滚操作。根据本发明的实施方式,处理器134可以通过基于反映了错误信息infoerror的系统操作信息Infosystem执行后台操作,来防止在执行回滚操作之后可能发生的错误,同时将损坏的数据恢复到现有正常数据。例如,当坏块被指定为目的地块时可发生错误。然而,处理器134可以通过基于错误信息infoerror来从用于目的地块的候选块列表中去除在步骤S706检测到的被指定为坏块的存储块,然后执行垃圾收集操作,能够防止在执行回滚操作之后发生这种错误。
图9是示出根据本发明的一个实施方式的存储器系统(例如,存储器系统110)的操作的流程图。
参照图9,在步骤S902,控制器130可以向存储器装置150提供紧接在执行后台操作之前的系统操作信息Infosystem以及针对系统操作信息Infosystem的编程命令CMDPGM。每当执行后台操作时,控制器130可以通过向存储器装置150提供系统操作信息Infosystem和编程命令CMDPGM来控制存储器装置150的检查定点操作。
在步骤S904,存储器装置150可以在控制器130的控制下,基于所提供的编程命令CMDPGM执行将系统操作信息Infosystem编程到存储块中的检查定点操作。当检查定点操作完成时,存储器装置150可以向控制器130提供完成信号Sigcomplete。
在步骤S906,控制器130可以控制存储器装置150的后台操作。存储器装置150可以基于所提供的系统操作信息Infosystem来执行后台操作。
在步骤S908,控制器130可以检测在执行后台操作的同时发生的错误。控制器130可以将关于检测到的错误的信息infoerror(其被简称为错误信息infoerror)存储在存储器144中,并且可以控制存储器装置150执行将错误信息编程到备份块中的后台操作来为突然断电作准备。在检测到错误之后,控制器130可以向存储器装置150提供针对根据检查定点操作的系统操作信息Infosystem的读取命令(即,读取COM)。
在步骤S910,存储器装置150可以响应于读取命令而读取根据检查定点操作的系统操作信息Infosystem。存储器装置150可以向控制器130提供所读取的系统操作信息Infosystem。
在步骤S912,控制器130可以通过将在步骤S908检测到的错误信息infoerror反映到在步骤S910读取的系统操作信息Infosystem中来更新系统操作信息Infosystem。控制器130可以控制存储器装置150执行基于更新的系统操作信息Infosystem执行后台操作的回滚操作。
下面参照图10至图18详细描述可以应用包括上述存储器装置150和控制器130的存储器系统110的数据处理系统和电子装置。
图10是示意性示出根据实施方式的包括存储器系统的数据处理系统的另一示例的图。图10示意性地示出了可以应用存储器系统的存储卡系统。
参照图10,存储卡系统6100可以包括存储器控制器6120、存储器装置6130和连接器6110。
更具体地,存储器控制器6120可以电连接到由非易失性存储器实现的存储器装置6130并且被配置为访问存储器装置6130。例如,存储器控制器6120可以被配置为控制存储器装置6130的读取操作、写入操作、擦除操作和后台操作。存储器控制器6120可以被配置为提供存储器装置6130与主机之间的接口,并使用固件来控制存储器装置6130。也就是说,存储器控制器6120可以对应于参照图1描述的存储器系统110中的控制器130,并且存储器装置6130可以对应于参照图1描述的存储器系统110中的存储器装置150。
因此,存储器控制器6120可以包括随机存取存储器(RAM)、处理器、主机接口、存储器接口和纠错组件。
存储器控制器6120可以通过连接器6110与外部装置(例如,图1的主机102)通信。例如,如参照图1所描述的,存储器控制器6120可以被配置为通过诸如以下各种通信协议中的一种或更多种与外部装置通信:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外设组件互连(PCI)、快速PCI(PCIe)、高级技术附件(ATA)、串行-ATA、并行-ATA、小型计算机系统接口(SCSI)、增强型小磁盘接口(EDSI)、集成驱动电子设备(IDE)、火线(Firewire)、通用闪存(UFS)、无线保真(Wi-Fi或WiFi)和蓝牙。因此,存储器系统和数据处理系统可以应用于有线/无线电子装置,包括移动电子装置。
存储器装置6130可以由非易失性存储器实现。例如,存储器装置6130可以由诸如可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、NAND闪存、NOR闪存、相变RAM(PRAM)、电阻RAM(ReRAM)、铁电RAM(FRAM)和自旋力矩转移磁RAM(STT-RAM)之类的各种非易失性存储器装置中的任意一种实现。
存储器控制器6120和存储器装置6130可以集成到单个半导体装置中以形成固态驱动器(SSD)。另外,存储器控制器6120和存储器装置6130可以被集成以形成诸如PC卡(PCMCIA:个人计算机存储卡国际协会)、紧凑型闪存(CF)卡、智能媒体卡(例如,SM和SMC)、记忆棒、多媒体卡(例如,MMC、RS-MMC、MMCmicro和eMMC)、SD卡(例如,SD、miniSD、microSD和SDHC)和/或通用闪存(UFS)之类的存储卡。
图11是示意性示出根据一个实施方式的包括存储器系统的数据处理系统的另一示例的图。
参照图11,数据处理系统6200可以包括具有一个或更多个非易失性存储器的存储器装置6230和用于控制存储器装置6230的存储器控制器6220。如参照图1所述的,图11中所示的数据处理系统6200可以用作诸如存储卡(例如,CF、SD、micro-SD等)或USB装置之类的储存介质。存储器装置6230可以对应于图1中所示的存储器系统110中的存储器装置150,存储器控制器6220可以对应于图1中所示的存储器系统110中的控制器130。
存储器控制器6220可以响应于主机6210的请求而控制对存储器装置6230的读取操作、写入操作或擦除操作。存储器控制器6220可以包括一个或更多个中央处理单元(CPU)6221、诸如随机存取存储器(RAM)6222的缓冲存储器、纠错码(ECC)电路6223、主机接口6224和诸如NVM接口6225的存储器接口。
CPU 6221可以控制对存储器装置6230的整体操作,例如,读取操作、写入操作、文件系统管理操作和坏页管理操作。RAM 6222可以根据CPU 6221的控制来操作,并且用作工作存储器、缓冲存储器或高速缓冲存储器。当RAM 6222被用作工作存储器时,由CPU 6221处理的数据可以被临时存储在RAM 6222中。当RAM 6222被用作缓冲存储器时,RAM 6222可以用于对从主机6210发送到存储器装置6230的数据进行缓冲,反之亦然。当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)码、博斯-查德胡里-霍昆格姆(Bose-Chaudhri-Hocquenghem,BCH)码、turbo码、里德-所罗门(Reed-Solomon)码、卷积码、递归系统码(RSC)或者诸如网格编码调制(TCM)或块编码调制(BCM)的编码调制来校正错误。
存储器控制器6220可以通过主机接口6224与主机6210交换数据。存储器控制器6220可以通过NVM接口6225与存储器装置6230交换数据。主机接口6224可以通过PATA总线、SATA总线、SCSI、USB、PCIe或NAND接口连接到主机6210。存储器控制器6220可以具有与诸如无线保真(WiFi)或长期演进(LTE)之类的移动通信协议的无线通信功能。存储器控制器6220可以连接到例如主机6210的外部装置或另一外部装置,然后与外部装置交换数据。具体地,由于存储器控制器6220被配置为根据各种通信协议中的一种或更多种与外部装置通信,所以存储器系统和数据处理系统可以应用于有线/无线电子装置,尤其是移动电子装置。
图12是示意性地示出根据一个实施方式的包括存储器系统的数据处理系统的另一示例的图。图12示意性地示出了可以应用存储器系统的固态驱动器(SSD)6300。
参照图12,SSD 6300可以包括控制器6320和包括多个非易失性存储器的存储器装置6340。控制器6320可以对应于图1的存储器系统110中的控制器130,存储器装置6340可以对应于图1的存储器系统中的存储器装置150。
更具体地,控制器6320可以通过多个通道CH1至CHi连接到存储器装置6340。控制器6320可以包括一个或更多个处理器6321、缓冲存储器6325、纠错码(ECC)电路6322、主机接口6324以及例如非易失性存储器接口6326的存储器接口。
缓冲存储器6325可以临时存储从主机6310提供的数据或从存储器装置6340中所包括的多个闪存NVM提供的数据。此外,缓冲存储器6325可以临时存储多个闪存NVM的元数据,例如,包括映射表的映射数据。缓冲存储器6325可以由诸如动态随机存取存储器(DRAM)、同步DRAM(SDRAM)、双数据速率(DDR)SDRAM、低功率DDR(LPDDR)SDRAM和图形RAM(GRAM)之类的各种易失性存储器或者诸如铁电RAM(FRAM)、电阻RAM(RRAM或ReRAM)、自旋转移力矩磁RAM(STT-MRAM)和相变RAM(PRAM)之类的各种非易失性存储器中的任意一种来实现。图12示出了缓冲存储器6325被实现在控制器6320中。然而,缓冲存储器6325可以在控制器6320的外部。
ECC电路6322可以在编程操作期间计算要编程到存储器装置6340的数据的ECC值,在读取操作期间基于ECC值对从存储器装置6340读取的数据执行纠错操作,并且在失败数据恢复操作期间对从存储器装置6340恢复的数据执行纠错操作。
主机接口6324可以提供与外部装置(例如,主机6310)的接口功能,并且非易失性存储器接口6326可以提供与通过多个通道连接的存储器装置6340的接口功能。
此外,可应用图1的存储器系统110的多个SSD 6300可以被提供为实现数据处理系统,例如,RAID(独立磁盘冗余阵列)系统。RAID系统可以包括多个SSD 6300和用于控制多个SSD 6300的RAID控制器。当RAID控制器响应于从主机6310提供的写入命令而执行编程操作时,RAID控制器可以根据多个RAID级(即,从SSD 6300中的主机6310提供的写入命令的RAID级别信息)选择一个或更多个存储器系统或SSD 6300,并且将与写入命令相对应的数据输出到所选择的SSD 6300。此外,当RAID控制器响应于从主机6310提供的读取命令而执行读取操作时,RAID控制器可以根据多个RAID级(即,从SSD 6300中的主机6310提供的读取命令的RAID级别信息)选择一个或更多个存储器系统或SSD 6300,并将从被选SSD 6300读取的数据提供给主机6310。
图13是示意性示出根据一个实施方式的包括存储器系统的数据处理系统的另一示例的图。图13示意性示出了可以应用存储器系统的嵌入式多媒体卡(eMMC)6400。
参照图13,eMMC 6400可以包括控制器6430和由一个或更多个NAND闪存实现的存储器装置6440。控制器6430可以对应于图1的存储器系统110中的控制器130。存储器装置6440可以对应于图1的存储器系统110中的存储器装置150。
更具体地,控制器6430可以通过多个通道连接到存储器装置6440。控制器6430可以包括一个或更多个内核6432、主机接口6431以及例如NAND接口6433的存储器接口。
内核6432可以控制eMMC 6400的整体操作,主机接口6431可以提供控制器6430和主机6410之间的接口功能,并且NAND接口6433可以提供存储器装置6440和控制器6430之间的接口功能。例如,主机接口6431可以用作并行接口,例如,如参照图1所述的MMC接口。此外,主机接口6431可以用作串行接口,例如,UHS((超高速)-I/UHS-II)接口。
图14至图17是示意性示出根据实施方式的包括存储器系统的数据处理系统的其它示例的图。图14至图17示意性示出了可以应用存储器系统的通用闪存(UFS)系统。
参照图14至图17,UFS系统6500可以包括主机6510、UFS装置6520和UFS卡6530;UFS系统6600可以包括主机6610、UFS装置6620和UFS卡6630;UFS系统6700可以包括主机6710、UFS装置6720和UFS卡6730;UFS系统6800可以包括主机6810、UFS装置6820和UFS卡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中所示的存储器系统110实现。例如,在UFS系统6500、6600、6700、6800中,UFS装置6520、6620、6720、6820可以以参照图11至图13描述的数据处理系统6200、SSD 6300或eMMC 6400的形式实现,并且UFS卡6530、6630、6730、6830可以以参照图10描述的存储卡系统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、mini-SD和micro-SD的各种协议中的任意协议彼此通信。
在图14中所示的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处的链路层切换来彼此通信。在所示实施方式中,一个UFS装置6520和一个UFS卡6530连接到主机6510。然而,多个UFS装置和多个UFS卡可以并联或以星形形式连接到主机6410。星形形式是其中单个装置与多个装置联接以进行集中操作的布置。多个UFS卡可以并联或以星形形式连接到UFS装置6520,或者串联或以链形式连接到UFS装置6520。
在图15中所示的UFS系统6600中,主机6610、UFS装置6620和UFS卡6630中的每一个可以包括UniPro。主机6610可以通过执行切换操作的切换模块6640(例如,通过在UniPro处执行链路层切换(例如,L3切换)的切换模块6640)与UFS装置6620或UFS卡6630通信。UFS装置6620和UFS卡6630可以通过切换模块6640在UniPro处的链路层切换来彼此通信。在所示实施方式中,一个UFS装置6620和一个UFS卡6630连接到切换模块6640。然而,多个UFS装置和多个UFS卡可以并联或以星形形式连接到切换模块6640。多个UFS卡可以串联或以链形式连接到UFS装置6620。
在图16中所示的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集成为一个模块。在所示实施方式中,一个UFS装置6720和一个UFS卡6730连接到切换模块6740。然而,每个包括切换模块6740和UFS装置6720的多个模块可以并联或以星形形式连接到主机6710。在另一示例中,多个模块可以串联或以链形式彼此连接。此外,多个UFS卡可以并联或以星形形式连接到UFS装置6720。
在图17中所示的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切换来彼此通信。在所示实施方式中,一个UFS装置6820连接到主机6810并且一个UFS卡6830连接到UFS装置6820。然而,多个UFS装置可以并联或以星形形式连接到主机6810,或者串联或以链形式连接到主机6810。多个UFS卡可以并联或以星形形式连接到UFS装置6820,或者串联或以链形式连接到UFS装置6820。
图18是示意性示出根据本发明的一个实施方式的包括存储器系统的数据处理系统的另一示例的图。图18是示意性地示出可以应用存储器系统的用户系统6900的图。
参照图18,用户系统6900可以包括应用处理器6930、存储器模块6920、网络模块6940、储存模块6950和用户接口6910。
更具体地,应用处理器6930可以驱动用户系统6900中的组件,例如OS,并且包括控制用户系统6900中所包括的组件的控制器、接口和图形引擎。应用处理器6930可以被提供为片上系统(SoC)。
存储器模块6920可以用作用户系统6900的主存储器、工作存储器、缓冲存储器或高速缓冲存储器。存储器模块6920可以包括诸如动态RAM(DRAM)、同步DRAM(SDRAM)、双数据速率(DDR)SDRAM、DDR2SDRAM、DDR3SDRAM、低功耗DDR(LPDDR)SDARM、LPDDR2SDRAM或LPDDR3SDRAM之类的易失性随机存取存储器(RAM)或者诸如相变RAM(PRAM)、电阻RAM(ReRAM)、磁阻RAM(MRAM)或铁电RAM(FRAM)之类的非易失性RAM。例如,应用处理器6930和存储器模块6920可以基于堆叠封装(PoP)来封装和安装。
网络模块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描述的存储器系统110。此外,储存模块6950可以被实现为如上面参照图12至图17所描述的SSD、eMMC和UFS。
用户接口6910可以包括用于向应用处理器6930输入数据或命令或者向外部装置输出数据的接口。例如,用户接口6910可以包括诸如键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、相机、麦克风、陀螺仪传感器、振动传感器和压电元件之类的用户输入接口以及诸如液晶显示器(LCD)、有机发光二极管(OLED)显示装置、有源矩阵OLED(AMOLED)显示装置、LED、扬声器和电动机之类的用户输出接口。
此外,当将图1的存储器系统110应用于用户系统6900的移动电子装置时,应用处理器6930可以控制移动电子装置的整体操作,并且网络模块6940可以用作用于控制与外部装置的有线/无线通信的通信模块。用户界面6910可以在移动电子装置的显示/触摸模块上显示处理器6930所处理的数据,或者支持从触摸面板接收数据的功能。
根据本发明的各种实施方式,存储器系统可以通过基于在后台操作之前的检查定点操作将错误信息反映到系统操作信息中并执行正确的回滚操作,来高效地执行纠错操作。
虽然已经针对特定实施方式示例并描述了本公开,但是本领域技术人员根据本公开将显而易见的是,在不脱离如在所附权利要求中限定的本公开的精神和范围的情况下,可以进行各种改变和修改。
相关申请的交叉引用
本申请要求于2018年9月14日提交的韩国专利申请No.10-2018-0110371的优先权,该韩国专利申请的全部内容通过引用合并于本文中。
Claims (20)
1.一种存储器系统,该存储器系统包括:
存储器装置,所述存储器装置用于存储系统操作信息;以及
控制器,所述控制器用于每当要执行后台操作时执行检查定点操作,基于所述系统操作信息执行所述后台操作,并且当在所述后台操作期间发生错误时基于紧接在执行所述后台操作之前通过所述检查定点操作而存储的系统操作信息执行回滚操作,
其中,所述控制器通过将关于所述错误的错误信息反映到所述系统操作信息中并且基于其中反映了所述错误信息的系统操作信息执行所述后台操作,来执行所述回滚操作。
2.根据权利要求1所述的存储器系统,该存储器系统还包括:
存储器,所述存储器用于存储所述错误信息和所述系统操作信息。
3.根据权利要求1所述的存储器系统,其中,所述检查定点操作包括紧接在执行所述后台操作之前将所述系统操作信息存储在所述存储器装置中的步骤。
4.根据权利要求2所述的存储器系统,其中,每当在执行所述后台操作的同时发生错误时,所述控制器将所述错误信息存储在所述存储器中。
5.根据权利要求2所述的存储器系统,其中,所述控制器通过将所述存储器装置中所存储的所述系统操作信息加载到所述存储器中,来基于紧接在执行所述后台操作之前的系统操作信息执行所述后台操作。
6.根据权利要求5所述的存储器系统,其中,所述控制器通过使所述存储器中所存储的所述错误信息与加载在所述存储器中的所述系统操作信息同步,来执行所述回滚操作。
7.根据权利要求1所述的存储器系统,其中,所述错误包括编程失败。
8.根据权利要求1所述的存储器系统,其中,所述错误包括VCC电压下降。
9.根据权利要求7所述的存储器系统,其中,所述错误信息包括发生了所述编程失败的存储块的地址。
10.根据权利要求8所述的存储器系统,其中,所述错误信息包括在发生所述VCC电压下降时执行编程操作的字线的地址。
11.一种用于操作存储器系统的方法,该方法包括以下步骤:
每当要执行后台操作时执行检查定点操作;
基于系统操作信息执行后台操作;以及
当在所述后台操作期间发生错误时,基于紧接在执行所述后台操作之前通过所述检查定点操作而存储的所述系统操作信息来执行回滚操作,
其中,执行所述回滚操作包括以下步骤:
将关于所述错误的错误信息反映到通过所述检查定点操作获得的所述系统操作信息中,并基于其中反映了所述错误信息的系统操作信息执行所述后台操作。
12.根据权利要求11所述的方法,该方法还包括以下步骤:
将所述错误信息和所述系统操作信息存储在存储器中。
13.根据权利要求11所述的方法,其中,所述检查定点操作包括紧接在执行所述后台操作之前将所述系统操作信息存储在存储器装置中的步骤。
14.根据权利要求12所述的方法,其中,执行所述回滚操作还包括以下步骤:
每当在执行所述后台操作的同时发生错误时,将所述错误信息存储在所述存储器中。
15.根据权利要求12所述的方法,其中,执行所述回滚操作包括以下步骤:
通过将存储器装置中所存储的所述系统操作信息加载到所述存储器中,来基于紧接在执行所述后台操作之前的所述系统操作信息执行所述后台操作。
16.根据权利要求15所述的方法,其中,执行所述回滚操作是通过以下步骤执行的:
使所述存储器中所存储的所述错误信息与加载在所述存储器中的所述系统操作信息同步。
17.根据权利要求11所述的方法,其中,所述错误包括编程失败。
18.根据权利要求11所述的方法,其中,所述错误包括VCC电压下降。
19.根据权利要求17所述的方法,其中,所述错误信息包括发生所述编程失败的存储块的地址。
20.根据权利要求18所述的方法,其中,所述错误信息包括在发生所述VCC电压下降的同时执行编程操作的字线的地址。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180110371A KR20200031402A (ko) | 2018-09-14 | 2018-09-14 | 메모리 시스템 및 그것의 동작방법 |
KR10-2018-0110371 | 2018-09-14 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110910941A true CN110910941A (zh) | 2020-03-24 |
CN110910941B CN110910941B (zh) | 2023-04-07 |
Family
ID=69774120
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910592602.3A Active CN110910941B (zh) | 2018-09-14 | 2019-07-03 | 存储器系统及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10956283B2 (zh) |
KR (1) | KR20200031402A (zh) |
CN (1) | CN110910941B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210065439A (ko) | 2019-11-27 | 2021-06-04 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작방법 |
US11145389B2 (en) * | 2019-12-03 | 2021-10-12 | Intel Corporation | Detection and error-handling of high error rate blocks during copyback |
US11550710B2 (en) * | 2020-02-06 | 2023-01-10 | Realtek Semiconductor Corp. | Data processing method and memory controller utilizing the same |
KR20220023476A (ko) | 2020-08-21 | 2022-03-02 | 에스케이하이닉스 주식회사 | 레이드 데이터 저장 장치 및 이를 포함하는 데이터 저장 시스템 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102196496A (zh) * | 2010-03-19 | 2011-09-21 | 中兴通讯股份有限公司 | 一种处理回程链路错误的方法和中继节点 |
US20150301932A1 (en) * | 2014-04-21 | 2015-10-22 | Moon-wook OH | Nonvolatile memory system and method of performing operation of the nonvolatile memory system |
CN105139184A (zh) * | 2015-08-10 | 2015-12-09 | 北京思特奇信息技术股份有限公司 | 一种多元化数据计算方法及系统 |
KR20160055723A (ko) * | 2013-07-31 | 2016-05-18 | 휴렛 팩커드 엔터프라이즈 디벨롭먼트 엘피 | 버저닝된 메모리 구현 |
US20160148708A1 (en) * | 2014-11-21 | 2016-05-26 | Sandisk Technologies Inc. | Defect Logging in Nonvolatile Memory |
CN107015917A (zh) * | 2015-12-18 | 2017-08-04 | 三星电子株式会社 | 储存装置和其读取回收方法 |
US20170357447A1 (en) * | 2016-06-10 | 2017-12-14 | SK Hynix Inc. | Memory system and operation method thereof |
CN107766257A (zh) * | 2016-08-19 | 2018-03-06 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101639672B1 (ko) | 2010-01-05 | 2016-07-15 | 삼성전자주식회사 | 무한 트랜잭션 메모리 시스템 및 그 동작 방법 |
JP5906325B2 (ja) | 2011-12-16 | 2016-04-20 | インテル・コーポレーション | トランザクションをサポートするコンピューターアーキテクチャにおけるコード特殊化のための例外を用いるプログラム及びコンピューティングデバイス |
US10635523B2 (en) * | 2018-02-23 | 2020-04-28 | International Business Machines Corporation | Fast recovery from failures in a chronologically ordered log-structured key-value storage system |
-
2018
- 2018-09-14 KR KR1020180110371A patent/KR20200031402A/ko not_active Application Discontinuation
-
2019
- 2019-04-12 US US16/382,999 patent/US10956283B2/en active Active
- 2019-07-03 CN CN201910592602.3A patent/CN110910941B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102196496A (zh) * | 2010-03-19 | 2011-09-21 | 中兴通讯股份有限公司 | 一种处理回程链路错误的方法和中继节点 |
KR20160055723A (ko) * | 2013-07-31 | 2016-05-18 | 휴렛 팩커드 엔터프라이즈 디벨롭먼트 엘피 | 버저닝된 메모리 구현 |
US20150301932A1 (en) * | 2014-04-21 | 2015-10-22 | Moon-wook OH | Nonvolatile memory system and method of performing operation of the nonvolatile memory system |
US20160148708A1 (en) * | 2014-11-21 | 2016-05-26 | Sandisk Technologies Inc. | Defect Logging in Nonvolatile Memory |
CN105139184A (zh) * | 2015-08-10 | 2015-12-09 | 北京思特奇信息技术股份有限公司 | 一种多元化数据计算方法及系统 |
CN107015917A (zh) * | 2015-12-18 | 2017-08-04 | 三星电子株式会社 | 储存装置和其读取回收方法 |
US20170357447A1 (en) * | 2016-06-10 | 2017-12-14 | SK Hynix Inc. | Memory system and operation method thereof |
CN107491396A (zh) * | 2016-06-10 | 2017-12-19 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN107766257A (zh) * | 2016-08-19 | 2018-03-06 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
Non-Patent Citations (1)
Title |
---|
GENGBIN ZHENG: "A scalable double in-memory checkpoint and restart scheme towards exascale" * |
Also Published As
Publication number | Publication date |
---|---|
KR20200031402A (ko) | 2020-03-24 |
US20200089581A1 (en) | 2020-03-19 |
CN110910941B (zh) | 2023-04-07 |
US10956283B2 (en) | 2021-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107562649B (zh) | 存储器系统及其操作方法 | |
US20180101454A1 (en) | Memory system and operation method for the same | |
US10489078B2 (en) | Controller keeping a sequence of data and operating method thereof | |
US10956320B2 (en) | Memory system and operating method thereof | |
CN107450845B (zh) | 存储器系统及其操作方法 | |
CN110321069B (zh) | 存储器系统及其操作方法 | |
CN109697171B (zh) | 控制器及其操作方法 | |
KR20200011831A (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
CN110910941B (zh) | 存储器系统及其操作方法 | |
US10445194B2 (en) | Memory system storing checkpoint information and operating method thereof | |
CN110765029B (zh) | 控制器及用于操作该控制器的方法 | |
CN108733616B (zh) | 包括多处理器的控制器及其操作方法 | |
US20200210295A1 (en) | Memory system and operating method thereof | |
CN110045914B (zh) | 存储器系统及其操作方法 | |
CN110556152A (zh) | 存储器装置、其操作方法以及包括其的存储器系统 | |
US20190087114A1 (en) | Data processing system and operating method thereof | |
CN110688060B (zh) | 存储器系统及该存储器系统的操作方法 | |
US10783074B2 (en) | Controller for performing garbage collection, method for operating the same, and memory system including the same | |
US20190012109A1 (en) | Memory system and operating method for the memory system | |
CN110349615B (zh) | 控制器、其操作方法及包括控制器的存储器系统 | |
US10685719B2 (en) | Memory device and operation method thereof | |
CN109947360B (zh) | 存储器系统及其操作方法 | |
US10521138B2 (en) | Memory system and operating method for re-building map data according to operation logs | |
CN111258920A (zh) | 存储器系统、存储器系统的操作方法和控制器 | |
KR20190046169A (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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20240612 Address after: American Texas Patentee after: Mimi IP Co.,Ltd. Country or region after: U.S.A. Address before: Gyeonggi Do, South Korea Patentee before: Sk Hynix Inc. Country or region before: Republic of Korea |
|
TR01 | Transfer of patent right |