CN110781023A - 用于在存储器***中处理数据的设备和方法 - Google Patents
用于在存储器***中处理数据的设备和方法 Download PDFInfo
- Publication number
- CN110781023A CN110781023A CN201910629364.9A CN201910629364A CN110781023A CN 110781023 A CN110781023 A CN 110781023A CN 201910629364 A CN201910629364 A CN 201910629364A CN 110781023 A CN110781023 A CN 110781023A
- Authority
- CN
- China
- Prior art keywords
- memory
- data
- blocks
- controller
- memory device
- 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.)
- Pending
Links
- 230000015654 memory Effects 0.000 title claims abstract description 508
- 238000000034 method Methods 0.000 title claims description 50
- 238000012545 processing Methods 0.000 title description 41
- 101100508818 Mus musculus Inpp5k gene Proteins 0.000 claims description 15
- 101100366438 Rattus norvegicus Sphkap gene Proteins 0.000 claims description 15
- 230000004044 response Effects 0.000 claims description 15
- 238000013507 mapping Methods 0.000 description 108
- 239000000872 buffer Substances 0.000 description 66
- 230000006870 function Effects 0.000 description 29
- 230000008569 process Effects 0.000 description 27
- 238000012937 correction Methods 0.000 description 15
- 238000011084 recovery Methods 0.000 description 14
- 238000012546 transfer Methods 0.000 description 12
- 238000004891 communication Methods 0.000 description 11
- 238000007726 management method Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 7
- 238000013519 translation Methods 0.000 description 7
- 230000008859 change Effects 0.000 description 6
- 239000004065 semiconductor Substances 0.000 description 6
- 238000013500 data storage Methods 0.000 description 4
- 230000009191 jumping Effects 0.000 description 4
- 239000007787 solid Substances 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000007246 mechanism Effects 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
- 230000015572 biosynthetic process Effects 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 238000011017 operating method Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000037361 pathway Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000011112 process operation Methods 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/108—Parity data distribution in semiconductor storages, e.g. in SSD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/30—Means for acting in the event of power-supply failure or interruption, e.g. power-supply fluctuations
-
- 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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
- G06F2212/1036—Life time enhancement
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明公开一种存储器***,该存储器***包括存储器装置和控制器。存储器装置包括多个块,每个块能够存储数据。控制器记录用于确定多个块之中的哪些块中将编程大容量数据的操作信息。大容量数据具有需要多个块之中的至少两个块的大小。在执行大容量数据的编程操作之后,控制器可在编程操作停止之后基于操作信息恢复编程操作。
Description
相关申请的交叉引用
本专利申请要求于2018年7月25日提交的申请号为10-2018-0086792的韩国专利申请的优先权,该韩国专利申请的全部公开内容通过引用并入本文。
技术领域
本发明的各个实施例总体涉及一种存储器***。特别地,实施例涉及一种能够在意外电力供应中断之后不执行数据恢复进程而校正错误的存储器***及该存储器***的操作方法和控制设备。
背景技术
近来,计算机环境范例已经转变成能够随时随地使用计算机***的普适计算。因此,诸如移动电话、数码相机及笔记本电脑等的便携式电子装置的使用已经快速增长。这种便携式电子装置通常使用或包括存储器***,即数据存储装置,该存储器***使用或嵌入至少一个存储器装置。数据存储装置可用作便携式电子装置的主存储装置或辅助存储装置。
与硬盘的特性不同,使用非易失性半导体存储器装置的数据存储装置因其不具有机械驱动部件(例如,机械臂)而具有诸如优异的稳定性和耐久性的优点,并且具有高数据存取速度和低功耗的优点。作为具有这些优点的存储器***的示例,数据存储装置包括USB(通用串行总线)存储器装置、具有各种接口的存储卡、固态驱动器(SSD)等。
发明内容
本发明的实施例提供一种存储器***、数据处理***和操作进程或方法,该存储器***、数据处理***和操作进程或方法可通过降低存储器***的操作复杂性和性能劣化并增强存储器装置的利用效率将数据快速且可靠地处理到存储器装置中。
存储器***可执行诸如垃圾收集或损耗均衡的用于对存储在特定块中的大量数据进行移动并编程的操作,以提高存储器装置的耐久性。本公开可提供一种存储器***、该存储器***的操作方法和控制设备,其中该存储器***通过存储用于顺序地选择待编程的至少一个存储块的跳跃信息,即使在诸如突然断电(SPO)的意外电力供应中断之后,也能够在没有数据恢复进程的情况下执行操作。因此,存储器***可无需执行另外的数据恢复进程,也无需简化或减少突然断电(SPO)之后的数据恢复进程。
进一步地,本公开的实施例可提供一种控制方法和控制设备,该控制方法和控制设备在大量数据被移动并编程在非易失性存储器装置中并且数据移动或数据编程由于诸如电力供应中断或另一中断的外部因素而未完成的情况下,可不执行数据恢复进程来校正错误。
在实施例中,一种存储器***可包括:存储器装置,包括多个块,每个块能够存储数据;以及控制器,适于记录用于确定多个块之中的哪些块中将编程大容量数据的操作信息,执行大容量数据的编程操作,并且在编程操作停止之后基于操作信息恢复编程操作。大容量数据可具有需要多个块之中的至少两个块的各种大小。
通过示例而非限制的方式,操作信息可包括与如何确定至少两个块的跳跃序列有关的参考。
在存储器***中,控制器可基于检查点信息和操作信息来确定至少两个块之中、编程操作停止的特定块。
例如,操作信息可指示与检查点信息对应的、第一块之后的第二块。即使在检查点信息不存在或包括错误时,在编程操作停止之后,操作信息也可示出编程大容量数据的至少两个块的序列。在一个实施例中,操作信息包括与编程大容量数据的至少两个块有关的元数据。操作信息包括至少两个块之间的跳跃规则和第一块地址。
通过示例而非限制的方式,编程操作停止是由突然断电(SPO)导致的。当在突然断电之后提供电力时,控制器扫描由操作信息指示的特定块,而非扫描存储器装置中的所有元数据。
例如,编程操作在用于存储器装置的损耗均衡的后台操作期间执行。
在另一示例中,一种用于操作存储器***的方法可包括:识别用于编程大容量数据的请求或任务;记录操作信息,该操作信息用于确定存储器***的多个块之中的哪些块中将编程大容量数据;执行大容量数据的编程操作;并且在编程操作完成之前编程操作被非期望地停止之后,基于操作信息恢复编程操作。大容量数据可具有需要存储器装置中的多个块之中的至少两个块的各种大小。
通过示例而非限制的方式,操作信息可包括与如何确定至少两个块的跳跃序列有关的参考。
恢复编程操作可包括:基于检查点信息和操作信息来确定至少两个块之中、编程操作停止的特定块。例如,操作信息指示与检查点信息对应的、第一块之后的第二块。
在示例中,即使在检查点信息不存在或包括错误时,在编程操作停止之后,操作信息也示出编程大容量数据的至少两个块的序列。在另一示例中,操作信息包括与编程大容量数据的至少两个块有关的元数据。在又一示例中,操作信息包括至少两个块之间的跳跃规则和第一块地址。
通过示例而非限制的方式,大容量数据的编程操作的停止是由突然断电(SPO)导致的。
恢复编程操作可包括:当在突然断电之后提供电力时,扫描由操作信息指示的特定块,而非扫描存储器装置中的所有元数据。
在另一示例中,一种控制非易失性存储器装置的设备可包括:处理器,适于响应于从主机输入的命令执行前台操作或者在未执行前台操作时开始后台操作;以及存储装置,适于在后台操作期间记录用于确定哪些块中编程大容量数据的操作信息。处理器可执行大容量数据的编程操作,并且当在编程操作完成之前编程操作被非期望地停止时,基于操作信息恢复编程操作。例如,大容量数据可具有需要非易失性存储器装置中的多个块之中的至少两个块的多种大小。
在另一实施例中,存储器***可包括:存储器装置,包括存储块;以及控制器,联接到存储器装置。控制器可控制存储器装置以执行将具有对应于两个或更多个存储块的大小的大容量数据编程到存储块之中的目标块中的编程操作,同时记录目标块之中当前被编程的目标块的信息。进一步地,控制器可在当前被编程的目标块被中断之后,基于所记录的信息,参考当前被编程的目标块,控制存储器装置以恢复编程操作。可在控制器内设置与目标块的编程顺序有关的信息。
附图说明
在本文中参照附图进行描述,其中在多个附图中,相同的附图标记指代相同的部件,并且其中:
图1示出包括根据本发明的实施例的存储器***的数据处理***的示例;
图2示出根据本发明的实施例的存储器***的示例;
图3示出根据本发明的实施例的存储器***中包括的存储器装置的示例;
图4示出根据本发明的实施例的存储器装置中包括的存储块中的非易失性存储器单元阵列;
图5示出根据本发明的实施例的存储器***中的存储器装置结构;
图6和图7示出根据本发明的实施例的存储器***执行与多个命令对应的多个命令操作的示例;
图8示出根据本发明的另一实施例的存储器***;
图9示出用于损耗均衡的大容量数据移动;
图10示出用于准备编程大量数据的空闲块选择和跳跃的操作;
图11示出根据本发明的另一实施例的控制器;
图12示出根据本发明的另一实施例的操作存储器***的方法;以及
图13至图21示意性地示出包括根据本发明的实施例的存储器***的数据处理***的其它示例。
具体实施方式
以下参照附图更详细地描述本公开的各个示例。本公开可以其它实施例、形式和其变型来实施并且不应被解释为限于本文阐述的实施例。而是,提供所描述的实施例使得本公开彻底且完整并将本公开充分地传达给本发明所属领域的技术人员。在整个本公开中,相同的附图标记在整个本公开的各个附图和示例中指代相同的部件。注意的是,对“实施例”、“另一实施例”等的参考不一定仅指一个实施例,并且对任何这种短语的不同参考不一定针对相同的实施例。
将理解的是,虽然可在本文中使用术语“第一”、“第二”、“第三”等来描述各个元件,但是这些元件不受这些术语的限制。这些术语用于将一个元件与另一元件区分开,否则一个元件与另一元件具有相同或相似的名称。因此,在不脱离本发明的精神和范围的情况下,一个示例中的第一元件在另一示例中可被称为第二元件或第三元件。
附图不一定按比例绘制,并且在一些情况下,为了清楚地示出实施例的特征,可夸大比例。当元件被称为连接或联接到另一元件时,应当理解的是,前者可直接连接或联接到后者,或者经由一个或多个中间元件电连接或联接到后者。除非上下文另有说明,否则无论直接还是间接连接/联接,两个元件之间的通信可以是有线的或无线的。
另外,还将理解的是,当元件被称为在两个元件“之间”时,该元件可以是这两个元件之间仅有的元件,或者也可存在一个或多个中间元件。
本文使用术语的目的仅是描述特定实施例而不旨在限制本发明。
如本文使用的,除非上下文另有明确说明,否则单数形式也旨在包括复数形式,反之亦然。除非另有说明或根据上下文清楚地指向单数形式,否则本申请和所附权利要求书中使用的冠词“一”和“一个”通常应被解释为表示“一个或多个”。
将进一步理解的是,当在本说明书中使用术语“包括”、“包括有”、“包含”和“包含有”时,说明所陈述元件的存在,并不排除一个或多个其它元件的存在或添加。如本文使用的,术语“和/或”包括一个或多个相关所列项目的任意一个和全部组合。
除非另有定义,否则本文使用的包括技术术语和科学术语的所有术语具有与本发明所属领域的普通技术人员基于本公开通常理解的含义相同的含义。将进一步理解的是,诸如在常用词典中定义的那些术语的术语应被理解为具有与其在本公开的上下文和相关领域中的含义一致的含义,并且将不以理想化或过于正式的意义来解释,除非本文如此明确地定义。
在下面的描述中,为了提供对本发明的全面理解,阐述了大量具体细节。本发明可在没有一些或全部这些具体细节的情况下被实践。在其它情况下,为了避免不必要地模糊本发明,未详细地描述公知的进程结构和/或进程。
也要注意的是,在一些情况下,如对相关领域的技术人员显而易见的是,结合一个实施例描述的特征或元件可单独使用或与另一实施例的其它特征或元件结合使用,除非另有明确说明。
将参照附图详细描述本公开的实施例。
在图1中,描述了根据本公开的实施例的数据处理***100。参照图1,数据处理***100可包括与存储器***110接合或可操作地联接的主机102。
例如,主机102可包括诸如移动电话、MP3播放器和膝上型计算机的便携式电子装置,或诸如台式计算机、游戏机、电视(TV)、投影仪等的电子装置。
主机102还包括通常可管理并控制在主机102中执行的功能和操作的至少一个操作***(OS)。OS可提供与存储器***110接合的主机102和需要并使用存储器***110的用户之间的互操作性。OS可支持与用户请求对应的功能和操作。通过示例而非限制的方式,根据主机102的移动性,OS可分类为通用操作***和移动操作***。根据***要求或用户环境,通用操作***可被分为个人操作***和企业操作***。包括Windows和Chrome的个人操作***可用于支持针对一般目的的服务。但企业操作***可专门用于确保并支持高性能,包括Windows服务器、Linux、Unix等。进一步地,移动操作***可包括Android、iOS、Windowsmobile等。移动操作***可用于支持针对移动性的服务或功能(例如,省电功能)。主机102可包括多个操作***。对应于用户请求,主机102可执行与存储器***110互锁的多个操作***。主机102可将与用户请求对应的多个命令传送到存储器***110,从而在存储器***110内执行与命令对应的操作。稍后参照图6和图7描述在存储器***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),和/或存储器***110的存储装置可利用诸如以下的非易失性存储器装置来实施:只读存储器(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可被集成到单个半导体装置中。这种集成可提高操作速度。相比于存储器***110利用硬盘实施时主机102的操作速度,当存储器***110用作SSD时,连接到存储器***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,多个存储块152、154、156中的每一个可包括多个页面。多个页面中的每一个可包括多个存储器单元,其中多个字线(WL)电联接到多个存储器单元。存储器装置150还包括多个存储器管芯,多个存储器管芯中的每一个包括多个平面,多个平面中的每一个包括多个存储块152、154、156。另外,存储器装置150可以是非易失性存储器装置,例如闪速存储器,其中闪速存储器可以是三维堆叠结构。
以下将参照图3至图5更详细地描述存储器装置150的结构和/或存储器装置150的三维立体堆叠结构。将在图7中更详细地描述存储器装置150,该存储器装置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中处理(例如,从存储器装置150输出)的数据的错误位,该ECC组件138可包括ECC编码器和ECC解码器。此处,ECC编码器可执行对待编程在存储器装置150中的数据的错误校正编码,以生成添加奇偶校验位的编码数据,并且将编码数据存储在存储器装置150中。当控制器130读取存储在存储器装置150中的数据时,ECC解码器可检测并校正从存储器装置150读取的数据中包含的错误。换言之,在对从存储器装置150读取的数据执行错误校正解码之后,ECC组件138可确定错误校正解码是否成功并输出指令信号(例如,校正成功信号或校正失败信号)。ECC组件138可使用在ECC编码进程期间生成的奇偶校验位来校正读取数据的错误位。当错误位的数量大于或等于可校正错误位的阈值数量时,ECC组件138可不校正错误位,而是可输出指示校正错误位失败的错误校正失败信号。
ECC组件138可基于诸如以下的编码调制执行错误校正操作:低密度奇偶校验(LDPC)码、博斯-查德胡里-霍昆格姆(Bose-Chaudhuri-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可通过作为用于与存储器装置150交换数据的组件的、被称为闪存接口层(FIL)的固件来实施。
存储器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可包括可控制存储器***110的全部操作的一个或多个处理器134。通过示例而非限制的方式,处理器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中的任意两个或更多个之间移动或交换数据的操作(例如,损耗均衡(WL)操作)。作为后台操作,控制器130使用处理器134将存储在控制器130中的映射数据存储到存储器装置150中的存储块152、154、156中的至少一个中,例如,映射清除(flush)操作。检查多个存储块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,详细描述了根据本公开的另一示例的存储器***110中的控制器130。控制器130与主机102和存储器装置150一起操作。控制器130可包括主机接口132、闪存转换层(FTL)40、存储器接口142和存储器144。
虽然图2中未示出,但是图1中描述的ECC组件138可被包括在闪存转换层(FTL)40中。在另一实施例中,ECC组件138可被实施为包括在控制器130中或与控制器130关联的单独的模块、电路、固件等。
主机接口132用于处理从主机102传送的命令、数据等。通过示例而非限制的方式,主机接口132可包括命令队列56、缓冲器管理器52和事件队列54。命令队列56可顺序地存储从主机102传送的命令、数据等,并且以存储的顺序或先进先出(FIFO)方案将命令、数据等输出到缓冲器管理器52。缓冲器管理器52可对从命令队列56传送的命令、数据等进行分类、管理或调整。事件队列54可顺序地传送用于处理从缓冲器管理器52传送的命令、数据等的事件。
可从主机102连续传送相同特性的多个命令或数据,或者可将不同特性的命令和数据随机地传送到存储器***110。例如,可将多个读取命令传送到,或者可将读取命令和写入命令交替地传送到存储器***110。主机接口132可将从主机102传送的命令、数据等顺序地存储到命令队列56。此后,主机接口132可根据从主机102传送的命令、数据等的特性来估计或预测控制器130将执行哪种操作。主机接口132可至少基于命令、数据等的特性来确定命令、数据等的处理顺序和优先级。根据从主机102传送的命令、数据等的特性,主机接口132中的缓冲器管理器52被配置成确定是否将命令、数据等存储在存储器144中,或者是否将命令、数据等传送到闪存转换层(FTL)40中。事件队列54接收从缓冲器管理器52输入的待由存储器***110或控制器130响应于从主机102传送的命令、数据等内部地执行并处理的事件,以便以接收的顺序将事件传送到闪存转换层(FTL)40中。
根据实施例,闪存转换层(FTL)40可包括主机请求管理器(HRM)46、映射数据管理器(MM)44、状态管理器(GC/WL)42和块管理器(BM/BBM)48。主机请求管理器(HRM)46可管理从事件队列54输入的事件。映射数据管理器(MM)44可处理或控制映射数据。状态管理器42可执行垃圾收集或损耗均衡。块管理器48可对存储器装置150中的块执行命令或指令。
通过示例而非限制的方式,主机请求管理器(HRM)46可根据从主机接口132传送的读取和编程命令及事件来控制映射数据管理器(MM)44和块管理器48以处置或处理请求。主机请求管理器(HRM)46可向映射数据管理器(MM)44发送查询,以确认与随事件一起输入的逻辑地址对应的物理地址。主机请求管理器(HRM)46可向存储器接口142发送带有物理地址的读取请求,以处理读取请求(处理事件)。另一方面,主机请求管理器(HRM)46可向块管理器48发送编程请求(写入请求),以将输入的数据编程到存储器装置150中未记录(无数据)的特定页面,然后可向映射数据管理器(MM)44传送与编程请求对应的映射更新请求,以更新逻辑-物理地址相互映射的信息中与编程数据相关的项目。
此处,块管理器48可将从主机请求管理器(HRM)46、映射数据管理器(MM)44和/或状态管理器42传送的编程请求转换成用于存储器装置150的闪存编程请求,以管理存储器装置150中的闪存块。为了最大化或增强存储器***110的编程或写入性能,块管理器48可收集编程请求并向存储器接口142发送用于多平面和单触发编程操作的闪存编程请求。块管理器48可向存储器接口142发送若干闪存编程请求,以增强或最大化多通道和多向闪存控制器130的并行处理。
另一方面,块管理器48可被配置成根据有效页面的数量来管理存储器装置150中的块,当需要空闲块时选择并擦除不具有有效页面的块,并且当确定需要垃圾收集时选择包括最少有效页面的块。状态管理器42可执行垃圾收集以将有效数据移动到空块并擦除包括移动的有效数据的块,从而块管理器48可确定存储器装置150中具有足够的空闲块(不具有数据的空块)。如果块管理器48向状态管理器42提供关于待擦除的块的信息,则状态管理器42可检查待擦除的块的所有闪存页面以确定每个页面是否有效。例如,为了确定每个页面的有效性,状态管理器42可确认记录在每个页面的带外(OOB)区域中的逻辑地址。为了确定每个页面是否有效,状态管理器42可将页面的物理地址与被映射到针对查询请求所获得的逻辑地址的物理地址进行比较。状态管理器42针对每个有效页面向块管理器48发送编程请求。当编程操作完成时,可由映射数据管理器44更新映射表。
映射数据管理器44可管理逻辑-物理映射表。映射数据管理器44可处理由主机请求管理器(HRM)46或状态管理器42生成的诸如查询、更新等的请求。映射数据管理器44可将整个映射表存储在存储器装置150(例如,闪存/非易失性存储器)中并根据存储器144的存储容量来高速缓存映射条目。当处理查询或更新请求时发生映射高速缓存未命中时,映射数据管理器44可向存储器接口142发送读取请求以加载存储在存储器装置150中的相关映射表。当映射数据管理器44中的脏高速缓存块的数量超过特定阈值时,可将编程请求发送到块管理器48,从而形成干净高速缓存块,并且可将脏映射表存储在存储器装置150中。
另一方面,当执行垃圾收集时,状态管理器42将有效页面复制到空闲块中,并且主机请求管理器(HRM)46可针对页面的相同逻辑地址编程最新版本的数据,并且当前发出更新请求。当状态管理器42在有效页面的复制未成功完成的状态下请求映射更新时,映射数据管理器44可不执行映射表更新。这是因为如果状态管理器42请求映射更新并且稍后才完成有效页面复制,则利用旧物理信息发出的映射请求。只要最新映射表仍然指向旧物理地址,映射数据管理器44就可执行映射更新操作以确保准确性。
图3示出根据本发明的实施例的存储器***中包括的存储器装置的示例,图4示出根据本发明的实施例的存储器装置中包括的存储块中的非易失性存储器单元阵列,图5示出根据本发明的实施例的存储器***中的三维存储器装置结构的示例。
参照图3,存储器装置150可包括多个存储块,诸如第一块(BLOCK0)210、第二块(BLOCK1)220、第三块(BLOCK2)230和第n块(BLOCKN-1)240。块210、220、230、240中的每一个可包括多个页面,例如2M个页面、2M个页面或M个页面。此处,n和M为自然数。为便于说明,假设存储块中的每一个包括2M个页面。页面中的每一个可包括经由至少一个字线(WL)彼此联接的多个非易失性存储器单元。
存储器装置150可包括多个存储块。根据一个存储器单元中可存储或表示的位的数量,多个存储块中的每一个是诸如单层单元(SLC)存储块、多层单元(MLC)存储块等不同类型的存储块中的一种。此处,SLC存储块包括由每一个都存储一位数据的存储器单元实施的多个页面。SLC存储块可具有高数据I/O操作性能和高耐久性。MLC存储块包括由每一个都存储多位(例如,两位或更多位)数据的存储器单元实施的多个页面。MLC存储块可比SLC存储块具有更大的存储容量。MLC存储块可高度集成以在与SLC存储块相同量的空间内提供更大的存储容量。在实施例中,存储器装置150可利用诸如MLC'存储块、三层单元(TLC)存储块、四层单元(QLC)存储块及其组合的MLC存储块来实施。MLC'存储块可包括由每一个都能够存储两位数据的存储器单元实施的多个页面。三层单元(TLC)存储块可包括由每一个都能够存储三位数据的存储器单元实施的多个页面。四层单元(QLC)存储块可包括由每一个都能够存储四位数据的存储器单元实施的多个页面。在另一实施例中,存储器装置150可利用包括由每一个都能够存储五位或更多位数据的存储器单元实施的多个页面的块来实施。
在本公开的实施例中,存储器装置150被实施为诸如闪速存储器的非易失性存储器,例如,NAND闪速存储器、NOR闪速存储器等。在其它实施例中,存储器装置150可由相变随机存取存储器(PCRAM)、铁电随机存取存储器(FRAM)、自旋转移矩随机存取存储器(STT-RAM)和自旋转移矩磁性随机存取存储器(STT-MRAM)等中的至少一个来实施。
存储器装置150中的块210、220、230、240中的每一个可通过编程操作存储从主机102提供的数据,并且通过读取操作将存储的数据提供到主机102。
参照图4,可对应于存储器***110的存储器装置150中包括的多个存储块152、154、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。
虽然图4示出NAND闪速存储器单元,但是本发明不限于此。注意的是,存储器单元可以是NOR闪速存储器单元或混合闪速存储器单元,该混合闪速存储器单元包括组合在其中的两种或更多种存储器单元。而且,注意的是,存储器装置150可以是包括作为电荷存储层的导电浮栅的闪速存储器装置,或者包括作为电荷存储层的绝缘层的电荷撷取闪存(CTF)存储器装置。
存储器装置150可进一步包括电压供应装置310,该电压供应装置310提供包括编程电压、读取电压和通过电压的字线电压以根据操作模式供应到字线。电压供应装置310的电压生成操作可由控制电路(未示出)来控制。在控制电路的控制下,电压供应装置310可选择存储器单元阵列的存储块(或扇区)中的一个,选择所选择的存储块的字线中的一个,并且根据需要将字线电压提供到所选择的字线和未选择的字线。
存储器装置150可包括由控制电路控制的读取/写入电路320。在验证/正常读取操作期间,读取/写入电路320可用作从存储器单元阵列读取数据的读出放大器。在编程操作期间,读取/写入电路320可用作根据待被存储在存储器单元阵列中的数据驱动位线的写入驱动器。在编程操作期间,读取/写入电路320可从缓冲器(未示出)接收待被存储到存储器单元阵列中的数据,并且可根据接收的数据将电流或电压供应到位线上。读取/写入电路320可包括分别与列(或位线)或列对(或位线对)对应的多个页面缓冲器322、324、326。页面缓冲器322、324、326中的每一个可包括多个锁存器(未示出)
另外,存储器装置150可被实施为二维或三维存储器装置,并且可被实施为三维立体堆叠结构的非易失性存储器装置。存储器装置150可包括多个存储块BLK0至BLKN-1。图5是示出图1所示的存储器装置150的存储块152、154、156的框图。存储块152、154、156中的每一个可被实施为三维结构。例如,存储块152、154、156中的每一个可通过尺寸在例如x轴方向、y轴方向和z轴方向的相互正交方向上延伸的结构来实现。
通过示例而非限制的方式,存储器装置150中包括的每个存储块330可包括沿第二方向延伸的多个NAND串(NS),和/或可设置有沿第一方向或第三方向的多个NAND串(NS)。此处,每个NAND串NS经由位线BL、至少一个源极选择线SSL、至少一个漏极选择线DSL、多个字线WL、至少一个虚设字线DWL和共源线CSL中的至少一个与I/O控制电路联接。NAND串(NS)可包括多个晶体管以在多条线路上切换。
存储器装置150中的多个存储块152、154、156中的每一个可包括多个位线BL、多个源极选择线SSL、多个漏极选择线DSL、多个字线WL、多个虚设字线DWL和多个共源线CSL。每个存储块330包括图4所示的多个NAND串(NS)。
参照图6至图12,将更详细地描述根据本发明的实施例的存储器***中的存储器装置的数据处理。特别地,执行与从主机102输入的命令对应的多个操作。将更详细地描述执行操作的情况。
图6至图7示意性地示出根据本公开的实施例的在存储器***中执行与多个命令对应的多个命令操作的示例。这在数据处理操作的不同情况中进行描述,第一种情况是从主机102接收多个写入命令并执行与写入命令对应的编程操作,第二种情况是从主机102接收多个读取命令并执行与读取命令对应的读取操作,第三种情况是从主机102接收多个擦除命令并执行与擦除命令对应的擦除操作,第四种情况是从主机102一起接收多个写入命令和多个读取命令并执行与写入命令对应的编程操作和与读取命令对应的读取操作。
此外,在本公开的实施例中,描述以下情况:将与从主机102输入的多个写入命令对应的写入数据存储在控制器130的存储器144中包括的缓冲器/高速缓存中,将存储在缓冲器/高速缓存中的写入数据编程到并存储在存储器装置150中包括的多个存储块中,对应于存储在多个存储块中的写入数据更新映射数据,并且将更新的映射数据存储在存储器装置150中包括的多个存储块中。换言之,描述以下情况:执行与从主机102输入的多个写入命令对应的编程操作。此外,在本公开的又一实施例中,描述以下情况:从主机102输入针对存储在存储器装置150中的数据的多个读取命令,通过检查与读取命令对应的数据的映射数据来从存储器装置150读取与读取命令对应的数据,将读取的数据存储在控制器130的存储器144中包括的缓冲器/高速缓存中,并且将存储在缓冲器/高速缓存中的数据提供到主机102。换言之,描述以下情况:执行与从主机102输入的多个读取命令对应的读取操作。此外,在本公开的另一实施例中,描述以下情况:从主机102接收针对存储器装置150中包括的存储块的多个擦除命令,对应于擦除命令检查存储块,擦除存储在检查到的存储块中的数据,对应于擦除的数据更新映射数据,并且将更新的映射数据存储在存储器装置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将作为映射数据的映射段的第一映射数据的L2P段和第二映射数据的P2L段存储在存储器装置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中包括的存储器。在这方面,控制器130根据待在存储器装置150中执行的前台操作和后台操作的各个操作来分配标识符(ID),并且调度与分别分配有标识符的操作对应的队列。在根据本公开的实施例的存储器***中,不仅根据存储器装置150的各个操作而且根据存储器装置150的功能来分配标识符,并且调度与分别分配有标识符的功能对应的队列。
在根据本公开的实施例的存储器***中,控制器130管理通过待在存储器装置150中执行的各个功能和操作的标识符调度的队列。控制器130管理通过待在存储器装置150中执行的前台操作和后台操作的标识符调度的队列。在根据本公开的实施例的存储器***中,在与通过标识符调度的队列对应的存储器区域被分配给控制器130中包括的存储器144和主机102中包括的存储器之后,控制器130管理分配的存储器区域的地址。通过使用调度的队列,控制器130不仅执行前台操作和后台操作,而且执行存储器装置150中的各个功能和操作。
参照图6,控制器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将第一映射数据和第二映射数据存储在控制器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通过分配给控制器130的存储器144和主机102的存储器的存储器区域执行存储器装置150的功能和操作。
参照图7,存储器装置150包括多个存储器管芯,例如存储器管芯0、存储器管芯1、存储器管芯2及存储器管芯3,并且存储器管芯中的每一个包括多个平面,例如,平面0、平面1、平面2和平面3。如上参照图3所描述的,存储器装置150中包括的存储器管芯中的各个平面包括多个存储块,例如,N个块BLOCK0、BLOCK1、……、BLOCKN-1,每个存储块包括多个页面,例如,2M个页面。此外,存储器装置150包括与各个存储器管芯对应的多个缓冲器,例如,与存储器管芯0对应的缓冲器0、与存储器管芯1对应的缓冲器1、与存储器管芯2对应的缓冲器2及与存储器管芯3对应的缓冲器3。
在执行与从主机102接收的多个命令对应的命令操作的情况下,与命令操作对应的数据被存储在存储器装置150中包括的缓冲器中。例如,在执行编程操作的情况下,与编程操作对应的数据被存储在缓冲器中,并且然后被存储在存储器管芯的存储块中包括的页面中。在执行读取操作的情况下,与读取操作对应的数据从存储器管芯的存储块中包括的页面中被读取,并且被存储在缓冲器中,然后通过控制器130被提供到主机102。
在本公开的实施例中,尽管下面将作为示例描述存储器装置150中的缓冲器存在于各个相应存储器管芯外部,但要注意的是,缓冲器可存在于各个相应存储器管芯内部,并且要注意的是,缓冲器可对应于各个存储器管芯中的各个平面或各个存储块。进一步地,尽管下面将作为示例描述存储器装置150中的缓冲器是如上参照图4所描述的多个页面缓冲器322、324和326,但要注意的是,缓冲器可以是存储器装置150中包括的多个高速缓存或多个寄存器。
而且,存储器装置150中包括的多个存储块可被分组成多个超级存储块,并且可在多个超级存储块中执行命令操作。超级存储块中的每一个可包括多个存储块,例如,第一存储块组和第二存储块组中包括的存储块。在这方面,在第一存储块组被包括在特定第一存储器管芯的第一平面中的情况下,第二存储块组可被包括在第一存储器管芯的第一平面中、被包括在第一存储器管芯的第二平面中或被包括在第二存储器管芯的平面中。
在本公开的实施例中,数据处理***可包括多个存储器***。多个存储器***110中的每一个可包括控制器130和存储器装置150。在数据处理***中,多个存储器***110中的一个可以是主存储器***,其它存储器***可以是从存储器***。可基于多个存储器***110之间的争用来确定主存储器***。当在数据处理***中从主机102传送多个命令时,主存储器***可至少基于通道或总线的状态来确定每个命令的目标。例如,对应于从多个存储器***传送的信息,可将第一存储器***确定为多个存储器***之中的主存储器***。如果将第一存储器***确定为主存储器***,则认为剩余的存储器***是从存储器***。主存储器***的控制器可检查联接到多个存储器***的多个通道(或通路、总线)的状态,以选择哪个存储器***处理从主机102传送的命令或数据。在实施例中,可在多个存储器***之中动态地确定主存储器***。在另一实施例中,主存储器***可周期性地或根据事件而与其它从存储器***中的一个交换。
下面更详细地描述用于在包括存储器装置150和控制器130的存储器***110中传输数据的方法和设备。随着存储在存储器***110中的数据的量变大,可能需要存储器***110一次读取或存储大量数据。然而,用于读取存储在存储器装置150中的数据的读取时间或用于将数据写入存储器装置150中的编程/写入时间通常可能比控制器130处理数据的处理时间或控制器130与存储器***150之间的数据传送时间长。例如,读取时间可能是处理时间的两倍。因为读取时间或编程时间比处理时间或数据传送时间相对长很多,用于在存储器***110中传送数据的过程或进程可能影响存储器***110的性能,例如,操作速度,和/或可能影响存储器***110的结构,例如,缓冲器大小。
图8描述根据本公开的另一实施例的存储器***20。例如,在嵌入有存储器***20的计算装置、移动装置等中,主机10可与存储器***20接合以用于数据输入/输出(I/O)操作。
参照图8,存储器***20可包括控制器30和存储器装置40。控制器30可输出由主机10请求并从存储器装置40传送的数据,或者将从主机10传输的数据存储在存储器装置40中。存储器装置40包括每一个都能够存储数据的多个非易失性存储器单元。此处,存储器装置40的内部结构和/或配置可基于存储器装置40的规格或所需性能而不同。规格或所需性能根据使用存储器***20的目的或主机10的要求而变化。通过示例而非限制的方式,图1至图7中示出的存储器装置150和图8中示出的存储器装置40两者可包括基本相同的组件。另外,图1至图2中描述的控制器130和图8中描述的控制器30也可包括基本相同的元件。
控制器30可包括至少一个处理器34、主机接口36、缓冲器38和控制器接口32。处理器34用于处理控制器30内通过内部/外部命令生成的操作或进程,处理器34可起到类似于计算机中包括的CPU的作用。主机接口36可用于支持存储器***20与主机10之间的通信,并且控制器接口32可支持存储器装置40与控制器30之间的通信。缓冲器38可在处理器34、主机接口36和控制器接口32的操作期间临时存储被导出或生成的数据和/或操作状态。缓冲器38可支持存储器装置40与主机10之间的数据传送。
根据实施例,控制器30的内部结构或配置可由与诸如至少一个处理器34、主机接口36、缓冲器38和控制器接口32的每个元件对应的至少一个电路构成。如在本申请中使用的,术语“电路”指以下中的任意一种和所有:(a)仅硬件电路实施方案,例如,仅模拟和/或数字电路的实施方案;(b)电路与软件和/或固件的组合,例如(如适用):(i)处理器的组合或(ii)包括一起工作以使诸如移动电话或服务器的设备执行各种功能的数字信号处理器、软件和存储器的处理器/软件的部分;以及(c)需要软件或固件来进行操作的电路,即使该软件或固件并非物理地存在,例如,微处理器或微处理器的一部分。“电路”的这种定义适用于本申请中该术语的所有使用,包括在任意权利要求中该术语的所有使用。作为进一步的示例,术语“电路”还涵盖仅一个或多个处理器或其部分及其附带的软件和/或固件的实施方案。例如并且如果适用于特定的权利要求元件,术语“电路”还涵盖用于控制器、计算装置、游戏装置、移动电话、显示器或者网络或通信装置的集成电路或应用处理器集成电路。根据另一实施例,控制器30的内部结构或配置可包括基于根据由控制器30处理的操作、任务等的功能分类的元件。
根据实施例,控制器30可包括物理组件,物理组件包括至少一个处理器、至少一个存储器、至少一个输入/输出端口、用于彼此电联接的导线等。
控制器30和存储器装置40可交换元数据和用户数据。在本文中,用户数据可包括用户通过主机10输入并存储的各种数据,并且元数据可包括用于将用户数据存储在存储器装置40中的***信息(例如,映射数据等)。用户数据和元数据因其特性或特征彼此不同而可在控制器30中以不同的方式进行处理或管理。
尽管存储器装置40的存储容量增加,但控制器30难以存储包括***信息、映射信息、操作状态信息等的所有状态信息,这些状态信息用于或涉及利用存储器装置40中包括的多个管芯、多个块或多个页面执行的诸如读取操作、编程操作和擦除操作的操作。随着存储容量增加,状态信息的量也可能增加。可能难以在控制器30内包括具有用于所有状态信息的足够存储容量的另外的存储器。因此,存储器装置40可用于存储用户数据以及用于诸如读取操作、编程操作和擦除操作的操作的包括***信息、映射信息、操作状态信息等的各种状态信息。控制器30可加载存储在存储器装置40中的一些或部分状态信息,以用于利用多个管芯、多个块或多个页面执行的诸如读取操作、编程操作和擦除操作的操作。在完成操作之后,控制器30可将更新并加载的状态信息存储在存储器装置40中。
虽然未示出,但随着存储器装置40中能够存储数据的单元的数量增加,存储器装置40的内部配置或结构可能变得更加复杂,如图7所示。控制器30可利用根据存储器装置40的内部配置或结构的连接信息向存储器装置40传送数据或从存储器装置40接收数据。例如,当存储器装置40中包括多个管芯时,控制器30可通过n个通道和m个通路与存储器装置40交换数据。然而,为了控制器30从存储器装置40读取数据或将数据写入存储器装置40,根据存储器装置40的内部配置或结构,可能需要另外的控制变量或控制信号。
存储器装置40可包括能够存储数据的多个块。与存储器装置40接合的控制器30可将大容量数据存储或编程在存储器装置40中。在本文中,大容量数据可具有需要存储器装置40中的多个块之中的至少两个块的大小。控制器30可记录用于确定大容量数据将被编程到哪些块的操作信息。操作信息可包括与如何确定至少两个块的跳跃序列有关的参考(例如,跳跃规则)。当在编程操作被非期望地停止之后供应电力时,控制器30可基于操作信息恢复编程操作。控制器30可扫描由操作信息指示的特定块,而不是扫描存储器装置40的整个元数据区域以找到特定块,从而恢复被非期望地停止的编程操作。
图9示出用于损耗均衡的大量数据的移动。
损耗均衡是一种延长存储器***的寿命或提高该存储器***的耐久性的技术,存储器***包括诸如固态驱动器(SSD)、USB闪存驱动器和相变存储器的非易失性存储器,该技术应擦除存储的数据以将新数据写入同一存储器单元中。可以提供一种识别存储数据的单元的损耗程度并为这种存储器***提供各个水平的寿命延长的损耗均衡机制。这种损耗均衡机制可应用于诸如垃圾收集(GC)的操作,在垃圾收集(GC)操作中可通过从先前分配用于编程数据的存储器区域释放不必要的区域来编程新数据。
参照图9,存储器***可针对损耗均衡或垃圾收集来移动大量数据。存储器***中的存储器装置40可包括存储数据的数据块40_1和未存储数据的空闲块40_2。控制器30a可读取存储在数据块40_1中的数据并将数据加载在控制器30a内部的存储器39中,并且然后将加载在存储器39中的数据存储在空闲块40_2中。在将大量数据从数据块40_1传输到空闲块40_2的过程中,控制器30a可加载待移动的数据的元数据,在数据被移动后更新元数据,并将更新的元数据存储在存储器装置40中。
当在成功地传输大量数据之后更新与大量数据有关的元数据时,可能在主机10与存储器***20交换数据的操作中不存在问题。然而,如果大量数据未被成功地移动,或者如果与所移动的数据有关的元数据未被成功地更新,则存储器***20可能难以响应于从主机10输入的请求将数据传送到主机10。
因为在存储器***中传输大量数据需要一定的时间,所以在传输大量数据的进程中存储器***中可能发生意外的难题或问题。意外的难题或问题可能导致非期望的结果,例如,在完成传输大量数据的进程之前该进程非期望地停止或中止。通过示例而非限制的方式,在移动大量数据的进程(由图9中的①表示)中可能出现问题。如果由于诸如突然断电(SPO)的内部或外部因素而无法将大量数据传输到空闲块40_2,则控制器30a可在问题解决(例如,重新供应电力)之后移动大量数据。在问题解决之后,控制器30a可重新开始全部进程或恢复特定的进程或步骤。进一步地,在传输大量数据之后,在更新元数据的进程(由图9中的②表示)期间,可能由于内部或外部因素而发生问题。在这种情况下,当内部或外部因素消失时,控制器30a需要以元数据被成功更新的方式恢复或还原元数据。
在存储器***20中,即使传输大量数据的操作异常停止或中止,控制器30a也可执行数据恢复进程以校正错误。通常,在数据恢复操作期间,在存储器***20中扫描所有数据区域并识别中断的操作。在这种数据恢复操作中,扫描所有数据区域可能需要相当长的时间。这些可能影响、恶化或劣化存储器***20的性能和可靠性。
在图10中,详细示出在空闲块之间选择和跳跃以编程大量数据的方法。
参照图10,假设大容量数据被存储在块BLK_0、BLK_3、BLK_6中。控制器30a可使用多个空闲块40_2来编程大容量数据。例如,控制器30a可从第一空闲块BLK_0的第一页面PG_0到第一空闲块BLK_0的最后页面PG_n顺序地编程大容量数据。在第一空闲块BLK_0的最后页面PG_n被写入之后,从第二空闲块BLK_3的第一页面PG_0到第二空闲块BLK_3的最后页面PG_n编程大容量数据。连续地,在第二空闲块BLK_3的最后页面PG_n被写入之后,可从第三空闲块BLK_6开始编程大容量数据。
可能无法以从第一个到最后一个的常规顺序对块进行编程。例如,优先编程第一块,即,比另一块更经常地编程第一块,可能导致第一块与其它块之间的损耗差异更大。可通过用于损耗均衡、垃圾收集等的各种机制来确定或选择待编程的块。例如,类似于图10所示的第一块BLK_0、第二块BLK_3和第三块BLK_6,控制器30a可在多个空闲块之间跳跃以确定并选择待编程的一个或多个块。
为了编程大容量数据,控制器30a可选择多个空闲块中的一些空闲块。然后,控制器30a可将大容量数据顺序地编程到所选择的空闲块中。关于这一讨论,假设在大容量数据中的一些数据被编程在第一空闲块BLK_0和第二空闲块BLK_3中之后而在大容量数据中的剩余数据被编程在第三空闲块BLK_6中之前,存储器装置40中的电力被非期望地中断。
即使在编程大容量数据的过程期间电力被中断并且未被供应,使得编程操作在第三空闲块BLK_6中编程期间中断,当再次供应电力时,存储器***也可能难以平稳地继续从第三空闲块BLK_6的中断位置或页面开始或在该中断位置或页面处编程大容量数据的进程。这是因为,当再次供应电力时,需要通过检查数据是否从第一块到第三空闲块BLK_0、BLK_3、BLK_6写入的全扫描进程来识别中断位置以用于数据恢复操作。无论控制器30a是否扫描存储器装置40中的所有块或空闲块,可能需要相当长的时间来确定在BLK_6内传输大容量数据的操作中断的位置。然而,如果控制器30a记录与块之间的跳跃有关的操作信息,例如,进程何时从第一块BLK_0跳跃到第二块BLK_3(第一跳跃)以及进程何时从第二块BLK_3跳跃到第三块BLK_6(第二跳跃)的跳跃信息,则控制器30a不必扫描存储器装置40中的所有块或空闲块来确定中断的位置,从而可减少数据恢复操作所需的时间。可在电力中断之前记录操作信息。在实施例中,可在编程大容量数据之前将操作信息存储在存储器装置40中。
在图11中,示出根据本公开的另一实施例的控制器30。控制器30和存储器装置40可操作地联接,从而控制器30和存储器装置40可彼此交换指令和数据。
参照图11,控制器30可包括至少一个处理器34和至少一个存储器39a和/或39b。至少一个处理器34可执行诸如读取操作、编程(写入)操作等前台操作,每个前台操作对应于从主机10传送的命令或数据。另外,处理器34可在未请求或执行前台操作时执行诸如损耗均衡或垃圾收集的后台操作。
根据实施例,可使用用于存储控制信息、***信息、跳跃信息、检查点信息等的第一存储器39a和用于存储用户数据、元数据等的第二存储器39b中的任意一者或两者。在本文中,第一存储器39a和第二存储器39b根据存储在其中的数据的类型和特征进行分类。
根据实施例,第一存储器39a和第二存储器39b可以是物理上彼此区分的不同的存储器装置。在另一实施例中,第一存储器39a和第二存储器39b可以是单个存储器装置中包括的两个不同的区域。
进一步地,根据实施例,第一存储器39a可包括非易失性存储器元件,第二存储器39b可包括易失性存储器元件。
根据实施例,第一存储器39a和第二存储器39b可不被包括在控制器30中,而是可被包括在存储器装置40中。例如,当难以将大容量存储装置(例如,第一存储器39a和/或第二存储器39b)包括在控制器30中时,控制器30可将存储器装置40中的特定区域用于对存储在存储器装置40的另一区域中的数据的诸如读取操作、写入操作、删除操作等操作。
第一存储器39a可存储与用于编程大容量数据的操作关联的例如跳跃信息、检查点信息等操作信息。即使用于编程大容量数据的操作被中断,当再次供应电力时,控制器30也可基于存储在第一存储器39a中的操作信息来识别用于编程大容量数据的操作将恢复的位置。当供应电力时,处理器34可参考第一存储器39a中的操作信息,从而处理器34不需要扫描所有的块就知道操作停止在哪个块。在实施例中,操作信息可包括与哪个操作被停止有关的第一信息(例如,检查点信息)和与操作已进行到或停止在哪个块有关的第二信息(例如,跳跃信息或位置信息)。特别地,基于操作信息,处理器34可更快地识别编程大容量数据的操作中断在了哪个位置或哪个块。
根据实施例,第一存储器39a可存储第二信息,例如,跳跃参考信息和编程大容量数据的第一块的物理块地址。在本文中,跳跃参考信息可包括与如何在空闲块之间跳跃以选择待编程大容量数据的块中的一个块有关的规则。
根据实施例,当再次供应电力时,控制器30可基于检查点信息和跳跃信息来确定编程大容量数据的操作中断的特定块。此处,跳跃信息可指示待分派或分配给大容量数据的选择或确定的块之中的、基于跳跃参考信息在第一块之后的包括中断页面的第二块,其中大容量数据的编程完成至该第二块并且该第二块对应于检查点信息。
另一方面,根据实施例,即使不存在检查点信息或者在大容量数据的编程操作中断之后存在错误,控制器30也可基于跳跃信息找到中断块以用于继续编程大容量数据。
如上所述,控制器30可包括处理器34以及存储器39a和39b,其中处理器34执行与从主机传输的指令对应的前台操作,或者当未执行前台操作时执行后台操作,并且存储器39a和39b存储用于确定哪些块被被分配用于编程大容量数据的操作信息,该大容量数据具有需要存储器装置40中的多个块之中的至少两个块的大小。在对大容量数据的编程操作被中断之后,处理器34可基于记录在存储器39a和39b中的操作信息来恢复编程操作。
在图12中,示出根据本公开的另一实施例的用于操作存储器***的方法。
参照图12,一种用于操作存储器***的方法可包括:执行与从主机传送的指令对应的前台操作(步骤82);在未执行前台操作时开始后台操作(步骤84);在后台操作期间记录用于确定大容量数据被编程在哪些块中的操作信息(步骤86);执行大容量数据的编程操作(步骤88);并且当在编程操作完成之前编程操作被非期望地停止时,基于操作信息恢复编程操作(步骤90)。在本文中,大容量数据可具有需要存储器装置中的多个块之中的至少两个块的各种大小。
用于选择多个空闲块中的一些空闲块的操作信息可包括表示在至少两个空闲块之间顺序地跳跃所需的标准的跳跃参考信息。根据实施例,操作信息可包括所选择的空闲块的顺序。在实施例中,操作信息可包括与所选择的空闲块之中的第一空闲块的物理块地址有关的信息、以及表示与如何确定所选择的空闲块之间的跳跃顺序有关的规则的跳跃参考信息。可在编程大容量数据之前确定并存储这样的操作信息。
虽然未示出,但基于操作信息恢复编程操作的步骤90可包括基于检查点信息和操作信息确定大容量数据的编程操作中断的特定块。此处,检查点信息可用于减少扫描的日志数据的量,该日志数据包括与在存储器***内部执行的操作有关的记录。可在不同时间,例如,周期性地检查并记录与每个操作的时间和位置有关的检查点信息,例如,块地址。因此,使用检查点信息,控制器可在突然断电(SPO)之后基于检查点信息将存储器***返回到SPO之前的特定操作时间点。然而,因为检查点信息无法示出待利用大容量数据中的一些数据进行编程的下一个块,所以仅利用检查点信息,控制器可能难以识别编程大容量数据的操作由于突然断电(SPO)而中止或停止在了所选择的块之中的哪个块处。因此,如果操作信息可提供与编程大容量数据的操作由于SPO而中断在的块有关的信息,则存储器***可容易地发现在检查点信息所指示的时间之后编程大容量数据的操作已被处理到什么程度。为此,操作信息可指示在分配给大容量数据的选择或确定的空闲块之中的、与检查点信息对应的、第一空闲块之后的第二空闲块。在第一空闲块被完全编程时,第二空闲块中存在中断页面。
根据实施例,当未发现检查点信息或发现检查点信息中的错误时,在编程大容量数据的操作意外停止或中止之后,操作信息可指示分配用于编程大容量数据的块之中的中断块,从而控制器可参考中断块来恢复编程大容量数据中的剩余数据的操作。当控制器开始用于编程大容量数据的操作时,可确定分配给大容量数据的空闲块的计数和所分配的空闲块之间的顺序。可将所分配的空闲块之间的顺序记录为操作信息。
根据实施例,操作信息可包括与将编程大容量数据的所分配的块有关的元数据。通过示例而非限制的方式,操作信息可包括分配给大容量数据的块之中的第一块(即,起始块)的物理块地址以及跳跃参考信息。在这种情况下,即使控制器不另外记录空闲块的顺序,控制器也可基于操作信息中包括的第一块的物理块地址和跳跃参考信息(例如,跳跃标准),恢复被分配以利用大容量数据编程的空闲块的顺序。
如上所述,存储器***中的大量数据可出于诸如损耗均衡和垃圾收集的各种目的而改变位置。为了传输大量数据,存储器***可对大量数据进行编程,这可能需要一些时间。在这个进程中,突然断电(SPO)可能中断大容量数据的编程操作。基于操作信息恢复编程操作(图12所示的步骤90)可包括以下步骤:当电力中断或非期望地不供应电力之后再次供应电力时,扫描由操作信息指示的特定块,而非扫描存储器装置的整个元数据区域。与需要扫描存储器装置中的所有或多个块的一般数据恢复操作相比,这极大地减少了数据恢复操作所花费的时间。基于操作信息快速完成的数据恢复操作可提高或增强存储器***的操作稳定性和可靠性。
在图13中,描述包括根据实施例的存储器***的数据处理***的另一示例。图13示意性地示出应用存储器***的存储卡***。
参照图13,存储卡***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)。如图7的存储器装置150,存储器装置6130可包括多个管芯。
存储器控制器6120和存储器装置6130可被集成到单个半导体装置中。例如,存储器控制器6120和存储器装置6130可被如此集成以形成固态驱动器(SSD)。在另一实施例中,存储器控制器6120和存储器装置6130可被集成以形成诸如以下的存储卡:PC卡(PCMCIA:个人计算机存储卡国际协会)、紧凑式闪存(CF)卡、智能媒体卡(例如,SM和SMC)、记忆棒、多媒体卡(例如,MMC、RS-MMC、微型MMC和eMMC)、SD卡(例如,SD、迷你SD、微型SD和SDHC)和/或通用闪存(UFS)。
图14是示意性地示出包括根据实施例的存储器***的数据处理***的另一示例的示图。
参照图14,数据处理***6200可包括具有一个或多个非易失性存储器的存储器装置6230和用于控制存储器装置6230的存储器控制器6220。图14所示的数据处理***6200可用作如参照图1和图2所描述的诸如存储卡(CF、SD、微型SD等)或USB装置的存储介质。存储器装置6230可对应于图1和图5所示的存储器***110中的存储器装置150。存储器控制器6220可对应于图1和图2所示的存储器***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的数据。当RAM6222用作高速缓存存储器时,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被配置成通过各种通信协议中的一种或多种与外部装置通信,因此根据实施例的存储器***和数据处理***可被应用于有线/无线电子装置,特别是移动电子装置。
图15是示意性地示出包括根据实施例的存储器***的数据处理***的另一示例的示图。图15示意性地示出应用存储器***的SSD。
参照图15,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的各种非易失性存储器中的任意一种来实施。图15示出缓冲存储器6325被设置在控制器6320中。然而,缓冲存储器6325可被设置在控制器6320外部。
ECC电路6322可在编程操作期间计算待编程到存储器装置6340的数据的ECC值。ECC电路6322可在读取操作期间基于ECC值对从存储器装置6340读取的数据执行错误校正操作。ECC电路6322可在失效数据恢复操作期间对从存储器装置6340恢复的数据执行错误校正操作。
主机接口6324可提供与例如主机6310的外部装置的接口功能。非易失性存储器接口6326可提供与通过多个通道连接的存储器装置6340的接口功能。
此外,可提供应用图1和图2的存储器***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。
图16是示意性地示出包括根据实施例的存储器***的数据处理***的另一示例的示图。图16示意性地示出应用存储器***的嵌入式多媒体卡(eMMC)。
参照图16,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与主机6410之间的接口功能。NAND接口6433可提供存储器装置6440与控制器6430之间的接口功能。例如,主机接口6431可用作并行接口,例如参照图1所描述的MMC接口。此外,主机接口6431可用作串行接口,例如UHS((超高速)-I/UHS-II)接口。
图17至图20是示意性地示出包括根据实施例的存储器***的数据处理***的其它示例的示图。图17至图20示意性地示出应用存储器***的UFS(通用闪存)***。
参照图17至图20,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和图2所示的存储器***110来实施。例如,在UFS***6500、6600、6700、6800中,UFS装置6520、6620、6720、6820可以参照图14至图16所描述的数据处理***6200、SSD 6300或eMMC 6400的形式来实施,并且UFS卡6530、6630、6730、6830可以参照图13所描述的存储卡***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的各种协议来彼此通信。
在图17所示的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处的链路层交换来彼此通信。在图17的实施例中,通过示例的方式示出一个UFS装置6520和一个UFS卡6530连接到主机6510的配置。然而,在另一实施例中,多个UFS装置和UFS卡可并行地或以星型形式连接到主机6510。星型形式是单个中央组件联接到多个装置以并行处理的布置。多个UFS卡可并行地或以星型形式连接到UFS装置6520或者串联地或以链型形式连接到UFS装置6520。
在图18所示的UFS***6600中,主机6610、UFS装置6620和UFS卡6630中的每一个可包括UniPro,并且主机6610可通过执行交换操作的交换模块6640,例如,通过执行例如L3交换的UniPro处的链路层交换的交换模块6640,与UFS装置6620或UFS卡6630通信。UFS装置6620和UFS卡6630可通过交换模块6640的UniPro处的链路层交换来彼此通信。在图18的实施例中,通过示例的方式示出一个UFS装置6620和一个UFS卡6630连接到交换模块6640的配置。然而,在另一实施例中,多个UFS装置和UFS卡可并联或以星型形式连接到交换模块6640,并且多个UFS卡可串联或以链型形式连接到UFS装置6620。
在图19所示的UFS***6700中,主机6710、UFS装置6720和UFS卡6730中的每一个可包括UniPro,并且主机6710可通过执行交换操作的交换模块6740,例如,通过执行例如L3交换的UniPro处的链路层交换的交换模块6740,与UFS装置6720或UFS卡6730通信。UFS装置6720和UFS卡6730可通过交换模块6740的UniPro处的链路层交换来彼此通信,并且交换模块6740可在UFS装置6720内部或外部与UFS装置6720集成为一个模块。在图19的实施例中,通过示例的方式示出一个UFS装置6720和一个UFS卡6730连接到交换模块6740的配置。然而,在另一实施例中,每一个都包括交换模块6740和UFS装置6720的多个模块可并联或以星型形式连接到主机6710,或者串联或以链型形式彼此连接。此外,多个UFS卡可并联或以星型形式连接到UFS装置6720。
在图20所示的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交换来彼此通信。在图20的实施例中,通过示例的方式示出一个UFS装置6820连接到主机6810并且一个UFS卡6830连接到UFS装置6820的配置。然而,多个UFS装置可并联或以星型形式连接到主机6810,或者串联或以链型形式连接到主机6810,并且多个UFS卡可并联或以星型形式连接到UFS装置6820,或者串联或以链型形式连接到UFS装置6820。
图21是示意性示出包括根据本发明的实施例的存储器***的数据处理***的另一示例的示图。图21是示意性地示出应用存储器***的用户***的示图。
参照图21,用户***6900可包括应用处理器6930、存储器模块6920、网络模块6940、存储模块6950和用户接口6910。
更具体地,应用处理器6930可驱动用户***6900中包括的例如OS的组件,并且包括控制用户***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。例如,应用处理器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闪存和3DNAND闪存,并且被设置为诸如用户***6900的存储卡或外部驱动器的可移除存储介质。存储模块6950可对应于参照图1和图2描述的存储器***110。此外,存储模块6950可被实施为如上参照图15至图20所描述的SSD、eMMC和UFS。
用户接口6910可包括用于将数据或命令输入到应用处理器6930或将数据输出到外部装置的接口。例如,用户接口6910可包括诸如键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、相机、麦克风、陀螺仪传感器、振动传感器和压电元件的用户输入接口,以及诸如液晶显示器(LCD)、有机发光二极管(OLED)显示装置、有源矩阵OLED(AMOLED)显示装置、LED、扬声器和监视器的用户输出接口。
此外,当图1和图2的存储器***110被应用于用户***6900的移动电子装置时,应用处理器6930可控制移动电子装置的全部操作。网络模块6940可用作用于控制与外部装置的有线/无线通信的通信模块。用户接口6910可在移动电子装置的显示/触摸模块上显示由应用处理器6930处理的数据。进一步地,用户接口6910可支持从触摸面板接收数据的功能。
根据实施例的存储器***及该存储器***的操作方法可最小化存储器***的复杂性和性能恶化并且最大化存储器装置的利用效率,从而针对存储器装置快速且稳定地处理数据。
在实施例中,存储器***、数据处理***及用于检查或恢复存储器***或数据处理***的操作的方法可被配置成使得在由于诸如电力供应中断或另一中断的外部因素而非期望地停止移动或编程大量数据的操作并且未完成该操作的情况下,当外部因素去除时,该操作可在无需全扫描数据恢复进程的情况下平稳地继续。
进一步地,实施例可提高或增强能够编程大量数据(大容量数据)的存储器***中的操作稳定性和可靠性。
虽然本公开示出并描述了具体实施例,但是基于本公开对于本领域技术人员将显而易见的是,在不脱离如权利要求所限定的本发明的精神和范围的情况下,可进行各种改变和修改。
Claims (20)
1.一种存储器***,包括:
存储器装置,包括多个块,每个块能够存储数据;以及
控制器:
记录用于确定所述多个块之中的哪些块中将编程大容量数据的操作信息,
执行所述大容量数据的编程操作,并且
在所述编程操作停止之后,基于所述操作信息恢复所述编程操作,
其中所述大容量数据具有需要所述多个块之中的至少两个块的大小。
2.根据权利要求1所述的存储器***,其中所述操作信息包括与如何确定所述至少两个块的跳跃序列有关的参考。
3.根据权利要求1所述的存储器***,其中所述控制器基于检查点信息和所述操作信息来确定所述至少两个块之中、所述编程操作停止的特定块。
4.根据权利要求3所述的存储器***,其中所述操作信息能指示与所述检查点信息对应的、第一块之后的第二块。
5.根据权利要求1所述的存储器***,其中即使在检查点信息不存在或包括错误时,在所述编程操作停止之后,所述操作信息也示出编程所述大容量数据的所述至少两个块的序列。
6.根据权利要求1所述的存储器***,其中所述操作信息包括与编程所述大容量数据的所述至少两个块有关的元数据。
7.根据权利要求1所述的存储器***,其中所述操作信息包括所述至少两个块之间的跳跃规则和第一块地址。
8.根据权利要求1所述的存储器***,其中所述编程操作停止是由突然断电即SPO导致的。
9.根据权利要求8所述的存储器***,其中当在所述突然断电之后提供电力时,所述控制器扫描所述至少两个块之中、由所述操作信息指示的特定块,而非扫描所述存储器装置中的所有元数据。
10.根据权利要求1所述的存储器***,其中所述编程操作在用于所述存储器装置的损耗均衡的后台操作期间执行。
11.一种用于操作存储器***的方法,包括:
识别用于编程大容量数据的请求或任务;
记录用于确定所述存储器***的多个块之中的哪些块中将编程所述大容量数据的操作信息,其中所述大容量数据具有需要存储器装置中的多个块之中的至少两个块的大小;
执行所述大容量数据的编程操作;并且
在所述编程操作完成之前所述编程操作被停止之后,基于所述操作信息恢复所述编程操作。
12.根据权利要求11所述的方法,其中所述操作信息包括与如何确定所述至少两个块的跳跃序列有关的参考。
13.根据权利要求11所述的方法,其中恢复所述编程操作包括:
基于检查点信息和所述操作信息来确定所述至少两个块之中、所述编程操作停止的特定块。
14.根据权利要求13所述的方法,其中所述操作信息能指示与所述检查点信息对应的、第一块之后的第二块。
15.根据权利要求11所述的方法,其中即使在检查点信息不存在或包括错误时,在所述编程操作停止之后,所述操作信息也示出编程所述大容量数据的所述至少两个块的序列。
16.根据权利要求11所述的方法,其中所述操作信息包括与编程所述大容量数据的所述至少两个块有关的元数据。
17.根据权利要求11所述的方法,其中所述操作信息包括所述至少两个块之间的跳跃规则和第一块地址。
18.根据权利要求11所述的方法,其中所述编程操作停止是由突然断电即SPO导致的。
19.根据权利要求18所述的方法,其中恢复所述编程操作包括:
当在所述突然断电之后提供电力时,扫描所述至少两个块之中、由所述操作信息指示的特定块,而非扫描所述存储器装置中的所有元数据。
20.一种控制非易失性存储器装置的设备,包括:
处理器,响应于命令执行前台操作或者在未执行所述前台操作时开始后台操作;以及
存储装置,记录用于确定所述非易失性存储器装置的多个块之中的哪些块中将编程大容量数据的操作信息,
其中所述处理器执行所述大容量数据的编程操作,并且在所述编程操作完成之前所述编程操作被停止之后,基于所述操作信息恢复所述编程操作,并且
其中所述大容量数据具有需要所述多个块之中的所述至少两个块的大小。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2018-0086792 | 2018-07-25 | ||
KR1020180086792A KR20200011832A (ko) | 2018-07-25 | 2018-07-25 | 메모리 시스템에서의 데이터 처리 방법 및 장치 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110781023A true CN110781023A (zh) | 2020-02-11 |
Family
ID=69177750
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910629364.9A Pending CN110781023A (zh) | 2018-07-25 | 2019-07-12 | 用于在存储器***中处理数据的设备和方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20200034081A1 (zh) |
KR (1) | KR20200011832A (zh) |
CN (1) | CN110781023A (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11144406B2 (en) * | 2018-12-12 | 2021-10-12 | SK Hynix Inc. | Memory system performing check pointing operation and operating method thereof |
KR20220053376A (ko) | 2020-10-22 | 2022-04-29 | 에스케이하이닉스 주식회사 | 컨트롤러 및 그 동작 방법 |
US11416058B2 (en) * | 2020-10-28 | 2022-08-16 | Western Digital Technologies, Inc. | Efficient data storage usage associated with ungraceful shutdown |
KR20220059272A (ko) * | 2020-11-02 | 2022-05-10 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
KR20220064592A (ko) | 2020-11-12 | 2022-05-19 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
KR20230139233A (ko) * | 2022-03-25 | 2023-10-05 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그것의 동작 방법 |
US11894060B2 (en) * | 2022-03-25 | 2024-02-06 | Western Digital Technologies, Inc. | Dual performance trim for optimization of non-volatile memory performance, endurance, and reliability |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102722339A (zh) * | 2011-03-28 | 2012-10-10 | 西部数据技术公司 | 供电安全的数据管理*** |
CN103282887A (zh) * | 2010-12-30 | 2013-09-04 | 桑迪士克科技股份有限公司 | 用于进行后台操作的控制器和方法 |
US20150127887A1 (en) * | 2013-11-07 | 2015-05-07 | SK Hynix Inc. | Data storage system and operating method thereof |
US20180081551A1 (en) * | 2016-09-19 | 2018-03-22 | SK Hynix Inc. | Memory system and operating method thereof |
CN108121665A (zh) * | 2016-11-29 | 2018-06-05 | 爱思开海力士有限公司 | 存储器***及其操作方法 |
US20180181346A1 (en) * | 2016-12-28 | 2018-06-28 | SK Hynix Inc. | Memory system and operating method thereof |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8090899B1 (en) * | 2009-03-04 | 2012-01-03 | Western Digital Technologies, Inc. | Solid state drive power safe wear-leveling |
US9164887B2 (en) * | 2011-12-05 | 2015-10-20 | Industrial Technology Research Institute | Power-failure recovery device and method for flash memory |
KR102570367B1 (ko) * | 2016-04-21 | 2023-08-28 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 컨트롤러를 포함하는 스토리지 장치를 액세스하는 액세스 방법 |
TWI607312B (zh) * | 2016-10-07 | 2017-12-01 | 慧榮科技股份有限公司 | 資料儲存裝置及其資料寫入方法 |
-
2018
- 2018-07-25 KR KR1020180086792A patent/KR20200011832A/ko not_active Application Discontinuation
-
2019
- 2019-03-07 US US16/295,635 patent/US20200034081A1/en not_active Abandoned
- 2019-07-12 CN CN201910629364.9A patent/CN110781023A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103282887A (zh) * | 2010-12-30 | 2013-09-04 | 桑迪士克科技股份有限公司 | 用于进行后台操作的控制器和方法 |
CN102722339A (zh) * | 2011-03-28 | 2012-10-10 | 西部数据技术公司 | 供电安全的数据管理*** |
US20150127887A1 (en) * | 2013-11-07 | 2015-05-07 | SK Hynix Inc. | Data storage system and operating method thereof |
US20180081551A1 (en) * | 2016-09-19 | 2018-03-22 | SK Hynix Inc. | Memory system and operating method thereof |
CN108121665A (zh) * | 2016-11-29 | 2018-06-05 | 爱思开海力士有限公司 | 存储器***及其操作方法 |
US20180181346A1 (en) * | 2016-12-28 | 2018-06-28 | SK Hynix Inc. | Memory system and operating method thereof |
CN108255739A (zh) * | 2016-12-28 | 2018-07-06 | 爱思开海力士有限公司 | 存储器***及其操作方法 |
Non-Patent Citations (1)
Title |
---|
郎为民等: "大数据中心固态存储技术研究", 《电信快报》 * |
Also Published As
Publication number | Publication date |
---|---|
KR20200011832A (ko) | 2020-02-04 |
US20200034081A1 (en) | 2020-01-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109284202B (zh) | 控制器及其操作方法 | |
US10817418B2 (en) | Apparatus and method for checking valid data in memory system | |
CN110806984B (zh) | 在存储器***中搜索有效数据的设备和方法 | |
CN110825659B (zh) | 用于检查存储器***中的块中的有效数据的设备和方法 | |
CN110321069B (zh) | 存储器***及其操作方法 | |
CN110347330B (zh) | 存储器***及其操作方法 | |
CN110781023A (zh) | 用于在存储器***中处理数据的设备和方法 | |
KR102468751B1 (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
CN110825319A (zh) | 基于块状态确定可用性的存储器***及操作方法 | |
CN110825318A (zh) | 控制器及其操作方法 | |
CN110968522B (zh) | 存储器***及其操作方法、包括存储器***的数据库*** | |
CN108733616B (zh) | 包括多处理器的控制器及其操作方法 | |
KR102415875B1 (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
US11675543B2 (en) | Apparatus and method for processing data in memory system | |
CN110765029B (zh) | 控制器及用于操作该控制器的方法 | |
CN110806837A (zh) | 数据处理***及其操作方法 | |
KR102559549B1 (ko) | 메모리 시스템에서의 블록 상태를 관리하는 방법 및 장치 | |
CN111435334B (zh) | 在存储器***中检查有效数据的设备和方法 | |
CN110806983B (zh) | 存储器***及其操作方法 | |
CN109426448B (zh) | 存储器***及其操作方法 | |
US20200310896A1 (en) | Apparatus and method for checking an operation status of a memory device in a memory system | |
CN109753233B (zh) | 存储器***及其操作方法 | |
KR20190018908A (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
US20230033610A1 (en) | Memory system and operating method thereof |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20200211 |
|
WD01 | Invention patent application deemed withdrawn after publication |