CN110806983A - 存储器系统及其操作方法 - Google Patents
存储器系统及其操作方法 Download PDFInfo
- Publication number
- CN110806983A CN110806983A CN201910481137.6A CN201910481137A CN110806983A CN 110806983 A CN110806983 A CN 110806983A CN 201910481137 A CN201910481137 A CN 201910481137A CN 110806983 A CN110806983 A CN 110806983A
- Authority
- CN
- China
- Prior art keywords
- memory
- data
- block
- controller
- blocks
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/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/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
Abstract
本发明涉及一种存储器系统,该存储器系统包括:存储器装置,包括多个存储块,多个存储块中的每个包括存储数据的多个页面;以及控制器,适于从多个存储块之中的第一存储块中加载数据以执行对应于多个命令的命令操作,并且确保多个存储块之中的第二存储块存储通过命令操作而更新的数据。控制器可从第二存储块中排除第一存储块。
Description
相关申请的交叉引用
本专利申请要求于2018年8月6日提交的申请号为10-2018-0091321的韩国专利申请的优先权,其全部公开内容通过引用并入本文。
技术领域
本发明的示例性实施例涉及一种存储器系统,且更特别地,涉及一种用于控制利用非易失性存储器装置处理数据的操作的设备和方法。
背景技术
近来,计算机环境范例已经转变成使计算机系统可随时随地使用的普适计算。诸如移动电话、数码相机及笔记本电脑等便携式电子装置的使用已经快速增长。这种便携式电子装置通常使用或包括使用或嵌入至少一个存储器装置的存储器系统,即数据存储装置。数据存储装置可用作便携式电子装置的主存储装置或辅助存储装置。
与硬盘不同,使用非易失性半导体存储器装置的数据存储装置的优点在于因为其不具有机械驱动部件(例如,机械臂)而具有优异的稳定性和耐久性,并且具有高数据访问速度和低功耗。作为具有这些优点的存储器系统的示例,数据存储装置包括USB(通用串行总线)存储装置、具有各种接口的存储卡、固态驱动器(SSD)等。
发明内容
本公开的实施例可提供一种存储器系统、数据处理系统和操作进程或方法,其可通过降低存储器系统的操作复杂性和性能劣化并增强存储器装置的使用效率来快速且可靠地将数据处理到存储器装置中。
本公开的实施例可提供一种存储器系统和操作存储器系统的方法,该存储器系统能够将包括在存储器装置中的多个存储块作为空闲块列表进行管理以提高效率。
此外,在本公开的实施例中,可以提供一种当预先确保了用于编程或移动大容量数据(voluminous data)的操作的空闲块或使用了能够限制空闲块中的可用块的信息时能够减少由于错误或操作失败而导致的数据可能丢失的风险。
在实施例中,一种存储器系统可包括:存储器装置,该存储器装置包括多个存储块,多个存储块中的每个包括存储数据的多个页面;以及控制器,适于从多个存储块之中的第一存储块加载数据以执行对应于多个命令的命令操作,并且确保(secure)多个存储块之中的第二存储块存储通过命令操作而更新的数据。在本文中,控制器可从第二存储块中排除第一存储块。
作为示例而非限制,即使第一存储块在命令操作期间变为空闲块,控制器也可从第二存储块中排除第一存储块。在命令操作完成之后,控制器可将在命令操作期间变为空闲块的第一存储块包括在第二存储块中以用于另一操作。
控制器可生成和管理具有位图结构的空闲块列表,该位图包括位信息,该位信息指示第一存储块和第二存储块中的每一个是否可用。在命令操作期间,第一存储块可变为空闲块。例如,空闲块列表中的与被执行命令操作的第一存储块相对应的第一位信息为第一值,而空闲块列表中的与第二存储块相对应的第二位信息为与第一值相对的第二值。
在实施例中,控制器可在命令操作开始之前生成关于第二存储块的列表。在执行命令操作时,可不对列表进行更新或更改。
在示例中,在执行命令操作时,当除了第一存储块之外的存储块中的至少一个改变为第二存储块时,控制器可更新列表。
作为示例而非限制,控制器可更新关于新添加的第二存储块的列表,而不管命令操作。该列表可包括位信息,该位信息中的每个指示第二存储块中的每个是否可用。
在发生突然断电(SPO)之前将关于命令操作的信息存储到第二存储块之后,当供电时,控制器可加载存储在第二存储块中的信息以执行命令操作。
命令操作可包括在存储器装置中执行的前台操作和后台操作。例如,前台操作和后台操作可包括数据编程操作、数据擦除操作和数据读取操作中的至少一个。
在另一实施例中,一种存储器系统可包括:存储器装置,该存储器装置包括多个存储块,多个存储块中的每个包括存储数据的多个页面;以及控制器,从多个存储块中的第一存储块加载针对对应于命令的操作的映射数据和用户数据,并且通过对应于命令的操作来确定存储更新的映射数据和更新的用户数据的第二存储块。即使第一存储块中的至少一个第一存储块变为空闲块,控制器也可从第二存储块中排除至少一个第一存储块,直到更新的映射数据和更新的用户数据被存储在第二存储块中。
作为示例而非限制,控制器可在命令操作开始之前生成关于第二存储块的列表。在执行命令操作时,可不对列表进行更新或更改。
在示例中,在执行命令操作时,当除了第一存储块之外的至少一个存储块改变为第二存储块时,控制器可更新列表。
控制器可更新关于新添加的第二存储块的列表,而不管命令操作。在本文中,该列表可包括每一个指示第二存储块中的每个是否可用的多个位信息。
命令操作可包括在存储器装置中执行的前台操作和后台操作。例如,前台操作或后台操作可包括数据编程操作、数据擦除操作或数据读取操作。
在另一实施例中,一种操作存储器系统的方法可包括:接收从主机输入并且与包括多个存储块的存储器装置相关联的多个命令,多个存储块中的每个包括存储数据的多个页面;从多个存储块之中的第一存储块加载数据以执行对应于多个命令的命令操作;并且确保多个存储块之中的第二存储块存储通过命令操作而更新的数据。即使第一存储块中的至少一个第一存储块变为空闲块,控制器也可从第二存储块中排除至少一个第一存储块,直到更新的数据被存储在第二存储块中。
确保第二存储块可包括生成对第二存储块的信息进行排列和排序的列表。
该列表可包括位信息,该位信息中的每个对应于每个存储块并且指示在命令操作期间变为空闲块的第一存储块和第二存储块中的每个是否可用。
当生成新的空闲块时,控制器可更新列表,而不管命令操作。
可在命令操作开始之前生成列表。在执行命令操作时,可不对列表进行更新或更改。
确保第二存储块可进一步包括在执行命令操作时,当除了第一存储块之外的存储块中的至少一个改变为第二存储块时,更新列表。
在另一实施例中,一种存储器系统可包括:存储器装置,该存储器装置包括一个或多个使用中的块、一个或多个未使用的块以及一个或多个第一空闲块;以及控制单元,适于:控制存储器装置以执行将数据从使用中的块和未使用的块之中的一个或多个块移动到第一空闲块中的操作;并且即使当使用中的块在操作期间变为第二空闲块时,也控制存储器装置在操作期间保持该第二空闲块。使用中的块是存储待通过操作而被移动的数据的存储块。未使用的块是除了使用中的块和空闲块之外的存储块。
附图说明
在本文中将参考附图进行描述,其中在若干视图中,相同的附图标记指代相同的部件,并且其中:
图1是示出根据本公开的实施例的包括多个存储块的存储器系统的示例的框图;
图2是示出根据本公开的实施例的包括存储器系统的数据处理系统的示例的框图;
图3是示出根据本公开的实施例的存储器系统的示例的框图;
图4和图5是示出根据本公开的实施例的存储器系统执行对应于多个命令的多个命令操作的示例的示图;
图6是示出根据本公开的实施例的存储器系统的框图;
图7至图9示出了用于生成空闲块列表的方法的不同示例;
图10描述了根据本公开的实施例的存储器系统的操作方法;并且
图11至图19是示意性地示出根据本公开的实施例的包括存储器系统的数据处理系统的其它示例的示图。
具体实施方式
以下参照附图更详细地描述本公开的各种示例。本公开可以以不同的其它实施例、形式和变型来实现并且不应被解释为限于本文阐述的实施例。相反,提供所描述的实施例使得本公开将完整和全面并且将本公开充分地传达给本发明所属领域的技术人员。在整个本公开中,相同的附图标记在本公开的各个附图和示例中表示相同的部件。应注意的是,对“实施例”的参考不一定表示仅针对一个实施例,并且对“实施例”的不同参考不一定针对相同的实施例。
将理解的是,虽然可在本文中使用术语“第一”、“第二”、“第三”等来描述各个元件,但是这些元件不受这些术语限制。这些术语用于区分一个元件与另一个元件。因此,在不脱离本发明的精神和范围的情况下,以下描述的第一元件也可被称为第二元件或第三元件。
附图不一定按比例绘制,并且在一些情况下,为了清楚地说明实施例的特征,比例可能已经被放大。当元件被称为连接至或联接到另一元件时,应当理解的是前者可直接连接或联接到后者,或者经由其间的中间元件电连接或联接到后者。
将进一步理解的是,当元件被称为“连接到”或“联接到”另一元件时,其可直接在其它元件上、连接到或联接到其它元件,或者可存在一个或多个中间元件。此外,还将理解的是,当元件被称为在两个元件“之间”时,其可以是这两个元件之中的唯一元件,或者也可存在一个或多个中间元件。
本文使用的术语的目的仅是描述特定实施例而不旨在限制本发明。
如本文使用的,除非上下文另有明确说明,否则单数形式也旨在包括复数形式,反之亦然。
将进一步理解的是,当在本说明书中使用术语“包括”、“包括有”、“包含”和“包含有”时,其说明所陈述元件的存在,但不排除一个或多个其它元件的存在或添加。如本文所使用的,术语“和/或”包括一个或多个相关所列项目的任何和全部组合。
除非另有定义,否则本文使用的包括技术术语和科学术语的所有术语具有与本发明所属领域的普通技术人员基于本公开所通常理解的含义相同的含义。将进一步理解的是,诸如在常用词典中限定的那些术语的术语应被理解为具有与它们在本公开的上下文和相关领域中的含义一致的含义并且将不以理想化或过于正式的意义来解释,除非本文如此明确地定义。
在以下描述中,为了提供本发明的全面理解,阐述了许多具体细节。可在没有一些或全部这些具体细节的情况下实施本发明。在其它情况下,为了不使本发明不必要模糊,未详细地描述公知的进程结构和/或进程。
还应注意的是,在一些情况下,如对于相关领域的技术人员显而易见的是,结合一个实施例所描述的特征或元件可单独使用或与另一个实施例的其它特征或元件组合使用,除非另有特别说明。
在下文中,将参照附图详细描述本公开的实施例。
在图1中,描述了根据本公开的实施例的存储器系统110的示例。存储器系统110可包括控制器130和存储器装置150。存储器系统110可与另一装置,例如计算装置接合。
参照图1,存储器系统110中存在控制器130和存储器装置150。存储器装置150可包括非易失性存储器。控制器130可将外部传输的数据编程到存储器装置150中或者从存储器装置150读取外部请求的数据。
包括多个非易失性存储器单元的存储器装置150不支持重写。控制器130可将存储在特定位置的数据的改变或更新版本存储在存储器装置150内的另一位置。
虽然未示出,但控制器130可执行各种操作以增强或提高存储器系统110的操作可靠性。例如,损耗均衡可以是各种操作中的一种。在包括可擦除和写入数据的非易失性存储器的存储器系统中,损耗均衡被认为是用于延长存储器系统寿命,例如提高耐用性的技术,其中非易失性存储器诸如固态驱动器(SSD)、USB闪存驱动器、相变存储器。可提供一种损耗均衡机制,该损耗均衡机制识别这种存储器系统中的存储数据的单元被损耗的程度以提供各种水平的寿命延长。这种损耗均衡机制可应用于诸如垃圾收集(GC)的操作,其中垃圾收集释放针对后续编程操作而动态分配的存储器区域内的包括无效或丢弃数据的不必要区域以进行使用(编程)。
参照图1,存储器系统110可在损耗均衡或垃圾收集期间移动大量的数据。存储器系统110中的存储器装置150可包括:第一存储块40_1,其是存储数据的块;以及第二存储块40_2,其是未存储数据(例如,被擦除以待编程新数据)的空闲块。例如,控制器130读取存储在第一存储块40_1中的数据,并将读取的数据加载到控制器130中的存储器144中,然后将加载的数据存储在第二存储块40_2中。在将大量的数据从第一存储块40_1传输到第二存储块40_2的过程中,控制器130应当加载关于待传输的数据的元数据。元数据可被更新并存储在存储器装置150中。
当在正常地传输大量的数据之后更新传输或移动的数据的元数据时,从主机102(参见图2)请求的、与存储器系统110交换数据的操作可能不存在问题。然而,当未正常地移动大量的数据或者未能正常地更新关于传输或移动的数据的元数据时,存储器系统110可能难以传输主机102所请求的数据,因为存储器系统110可能在存储器装置150中未发现所请求的数据。
因为移动大量的数据需要一定的时间,所以在移动大量的数据的过程中,在存储器系统中可能会发生意外的问题或情况,使得可能不会正常地完成移动大量的数据的过程。例如,在移动大量的数据的过程中可能发生电力问题。由于内部或外部因素,诸如供电被中断的突然断电(SPO),大量的数据可能没有被传输到第二存储块40_2。当在中断之后恢复供电时,控制器130可重新执行在供电被中断之前执行的传输或移动大量的数据的操作。另外,由于内部或外部因素,在更新元数据的过程中可能发生问题。在这种情况下,当内部或外部因素消失时,控制器130需要恢复元数据,使得元数据被正常地更新。
即使当移动大量的数据的操作被异常终止时,存储器系统110也可通过由控制器130执行的数据恢复处理来校正错误。然而,数据恢复操作通常可能扫描存储器系统110中的所有数据区域以识别存储器系统110中操作所进行程度的状态(例如,完全传输了哪些数据或者未传输哪些数据)。在这种情况下,数据恢复操作可能需要相当长的时间,这使得可能劣化存储器系统110的性能和可靠性。
当编程或传输大量的数据时,控制器130可生成空闲块列表37,以根据当前数据存储状态来确定第一存储块40_1和第二存储块40_2是否可用作空闲块。当从外部装置传送的大量的数据被写入或编程到存储器装置150中时,或者大量的数据被传输或移动以用于损耗均衡或垃圾收集等时,如果确保了足够量的空闲存储块,则控制器130可毫无困难地将大容量数据编程到第二存储块40_2。然而,当针对大容量数据,第二存储块40_2的大小不足时,控制器130可执行垃圾收集以产生至少一个新的空闲存储块。控制器130收集在多个第一存储块(即,数据块)40_1中的一些第一存储块中的有效数据,并将有效数据传输到第二存储块(即,空闲块)40_2。多个第一存储块40_1中的、有效数据被移动或传输的一些第一存储块可被擦除并且被设置为用于编程大容量数据的空闲块。
当数据从第一存储块40_1移动到第二存储块40_2时,不再具有有效数据的第一存储块40_1可被分类为空闲块,并且有效数据在其中被移动的第二存储块40_2可被分类为数据块。当在传输或编程大容量数据的过程期间,在诸如突然断电的电力未供应或中断之后供应电力或恢复供电时,控制器130可确定不再具有有效数据的第一存储块40_1变为空闲块。然而,假设移动大量的数据的操作被异常终止。当在未确认数据是否已被完全移动或对应于被移动数据的映射数据是否已被更新的情况下,将先前存储被移动数据的数据块认为是空闲块时,存在丢失大量的数据中的至少一些数据的可能性。
因此,为了避免这种问题,在空闲块列表中,存储有数据的第一存储块40_1可具有第一值“0”并且不具有数据的第二存储块40_2可具有第二值“1”。因此,即使当移动大量的数据的操作被异常终止时,控制器130也可识别被移动数据先前存储在哪个块,将所识别的块从用于存储大容量数据的空闲块中排除,从而避免丢失至少一部分数据的可能性。
在图2中,描述了根据本公开的实施例的数据处理系统100。参照图2,数据处理系统100可包括与存储器系统110接合或互锁的主机102。
例如,主机102可以包括诸如移动电话、MP3播放器和膝上型计算机的便携式电子装置或诸如台式计算机、游戏机、电视(TV)和投影仪等的非便携式电子装置。
主机102还包括通常可管理和控制在主机102中执行的功能和操作的至少一个操作系统(OS)。OS可提供与存储器系统110接合的主机102与使用存储器系统110的用户之间的互操作性。OS可支持对应于用户请求的功能和操作。作为示例而非限制,根据主机102的移动性,可将OS分类为通用操作系统和移动操作系统。根据系统要求或用户环境,通用操作系统可被分为个人操作系统和企业操作系统。包括Windows和Chrome的个人操作系统可需要一般用途的支持服务。但企业操作系统可专门用于保护和支持较高的性能,包括Windows服务器、Linux、Unix等。进一步地,移动操作系统可包括Android、iOS、Windows Mobile等。移动操作系统可需要支持移动性的服务或功能(例如,省电功能)。主机102可包括多个操作系统。对应于用户请求,主机102可执行与存储器系统110互锁的多个操作系统。主机102可将对应于用户请求的多个命令传输到存储器系统110,从而在存储器系统110内执行对应于命令的操作。稍后参照图4和图5描述在存储器系统110中处理多个命令。
存储器系统110可响应于来自主机102的请求来操作或执行具体的功能或操作,并且特别地,可存储待由主机102访问的数据。存储器系统110可用作主机102的主存储器系统或辅助存储器系统。根据主机接口的协议,存储器系统110可利用可与主机102电联接的各种类型的存储装置中的任何一种来实施。合适的存储装置的非限制性示例包括固态驱动器(SSD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、缩小尺寸的MMC(RS-MMC)、微型MMC、安全数字(SD)卡、迷你SD、微型SD、通用串行总线(USB)存储装置、通用闪存(UFS)装置、标准闪存(CF)卡、智能媒体(SM)卡、记忆棒等。
用于存储器系统110的存储装置可利用例如以下的易失性存储器装置来实施:动态随机存取存储器(DRAM)和静态RAM(SRAM),和/或可利用诸如以下的非易失性存储器装置来实施:只读存储器(ROM)、掩模ROM(MROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、铁电RAM(FRAM)、相变RAM(PRAM)、磁阻RAM(MRAM)、电阻式RAM(RRAM或ReRAM)和/或闪速存储器。
存储器系统110可包括控制器130和存储器装置150。存储器装置150可存储待由主机102访问的数据。控制器130可控制数据在存储器装置150中的存储。
控制器130和存储器装置150可集成到单个半导体装置中,该单个半导体装置可被包括在如上所例示的各种类型的存储器系统中。
作为示例而非限制,控制器130和存储器装置150可被集成到单个半导体装置。配置SSD的控制器130和存储器装置150可集成到单个半导体装置中,以提高操作速度。当存储器系统110用作SSD时,连接到存储器系统110的主机102的操作速度可以比利用硬盘实施的主机102的操作速度提高很多。另外,集成到一个半导体装置中的控制器130和存储器装置150可形成存储卡。例如,PC卡(PCMCIA)、标准闪存卡(CF)、诸如智能媒体卡(SM、SMC)的存储卡、记忆棒、多媒体卡(MMC、RS-MMC、微型MMC)、SD卡(SD、迷你SD、微型SD、SDHC)、通用闪速存储器等。
存储器系统110可被配置成例如以下的一部分:计算机、超移动PC(UMPC)、工作站、上网本、个人数字助理(PDA)、便携式计算机、网络平板、平板电脑、无线电话、移动电话、智能电话、电子书、便携式多媒体播放器(PMP)、便携式游戏机、导航系统、黑盒、数码相机、数字多媒体广播(DMB)播放器、三维(3D)电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、配置数据中心的存储装置、能够在无线环境下传输和接收信息的装置、配置家庭网络的各种电子装置之一、配置计算机网络的各种电子装置之一、配置远程信息处理网络的各种电子装置之一、射频识别(RFID)装置或配置计算系统的各种部件之一。
存储器装置150可以是非易失性存储器装置,并且即使在不供应电力时也可保留所存储的数据。存储器装置150可通过写入操作存储从主机102提供的数据,同时通过读取操作将所存储的数据提供到主机102。存储器装置150可包括多个存储块152、154、156。存储块152、154、156中的每一个可包括多个页面。多个页面中的每一个可包括与多个字线(WL)电联接的多个存储器单元。存储器装置150还包括多个存储器管芯,多个存储器管芯中的每一个包括多个平面,多个平面中的每一个包括多个存储块152、154、156。另外,存储器装置150可以是非易失性存储器装置,例如闪速存储器,其中闪速存储器可以是三维堆叠结构。
控制器130可控制存储器装置150的全部操作,诸如读取操作、写入操作、编程操作和擦除操作。例如,控制器130可响应于来自主机102的请求来控制存储器装置150。控制器130可将从存储器装置150读取的数据提供到主机102。控制器130可将由主机102提供的数据存储到存储器装置150中。
控制器130可包括主机接口(I/F)132、处理器134、错误校正码(ECC)电路138、电源管理单元(PMU)140、存储器接口(I/F)142以及存储器144,其全部通过内部总线可操作地联接。
主机接口132可处理从主机102提供的命令和数据,并可通过诸如以下的各种接口协议中的至少一种与主机102通信:通用串行总线(USB)、多媒体卡(MMC)、高速外围组件互连(PCI-e或PCIe)、小型计算机系统接口(SCSI)、串列SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、小型计算机系统接口(SCSI)、增强型小型磁盘接口(ESDI)以及电子集成驱动器(IDE)。根据实施例,主机接口单元132是用于与主机102交换数据的部件,主机接口单元132可通过被称为主机接口层(HIL)的固件来实施。
ECC电路138可校正待在存储器装置150中处理(例如,从存储器装置150输出)的数据的错误位,该ECC电路138可包括ECC编码器和ECC解码器。此处,ECC编码器可对待被编程在存储器装置150中的数据执行错误校正编码,以生成添加有奇偶校验位的编码数据,然后将编码数据存储在存储器装置150中。当控制器130读取存储在存储器装置150中的数据时,ECC解码器可检测并校正包括在从存储器装置150读取的数据中的错误。换言之,在对从存储器装置150读取的数据执行错误校正解码之后,ECC电路138可确定错误校正解码是否成功并输出指示信号(例如,校正成功信号或校正失败信号)。ECC电路138可使用在ECC编码处理期间生成的奇偶校验位以校正读取数据的错误位。当错误位的数量大于或等于可校正错误位的阈值数量时,ECC电路138可不校正错误位,而是可输出指示校正错误位失败的错误校正失败信号。
ECC电路138可基于诸如以下的编码调制来执行错误校正操作:低密度奇偶校验(LDPC)码、博斯-查德胡里-霍昆格姆(Bose-Chaudhri-Hocquenghem,BCH)码、turbo码、里德-所罗门(Reed-Solomon,RS)码、卷积码、递归系统码(RSC)、网格编码调制(TCM)以及分组编码调制(BCM)等。ECC电路138可包括基于上述代码中的至少一个来执行错误校正操作的电路、模块、系统或装置中的全部或一些。
PMU 140可管理在控制器130中提供的电力。
存储器接口142可用作用于处理控制器130和存储器装置150之间传递的命令和数据的接口,以允许控制器130响应于从主机102传送的请求来控制存储器装置150。在当存储器装置150是闪速存储器时,并且特别地当存储器装置150是NAND闪速存储器时的情况下,存储器接口142可在处理器134的控制下生成用于存储器装置150的控制信号,并可处理输入到存储器装置150中或从存储器装置150输出的数据。存储器接口单元142可提供用于在控制器130与存储器装置150之间处理命令和数据,例如NAND闪存接口的操作,特别是控制器130与存储器装置150之间的操作的接口。根据实施例,存储器接口单元142可通过被称为闪存接口层(FIL)的固件而被实施为用于与存储器装置150交换数据的部件。
存储器144可支持由存储器系统110和控制器130执行的操作。存储器144可存储针对存储器系统110和控制器130中的操作而出现或传送的临时数据或事务数据。控制器130可响应于来自主机102的请求来控制存储器装置150。控制器130可将从存储器装置150读取的数据传送到主机102。控制器130可将通过主机102输入的数据存储到存储器装置150中。存储器144可用于存储控制器130和存储器装置150执行诸如读取操作或编程/写入操作的操作所需的数据。
存储器144可利用易失性存储器来实施。存储器144可利用静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)或这两者来实施。虽然图1例示了设置在控制器130内的存储器144,但本实施例不限于此。也就是说,存储器144可位于控制器130的内部或外部。例如,存储器144可由具有存储器接口的外部易失性存储器实现,该存储器接口传递在存储器144和控制器130之间传递的数据和/或信号。
存储器144可存储执行诸如由主机102请求的数据写入和数据读取的操作所需的数据和/或存储在存储器装置150和控制器130之间传输以用于诸如如上所述的垃圾收集和损耗均衡的后台操作的数据。根据实施例,为了支持存储器系统110中的操作,存储器144可包括编程存储器、数据存储器、写入缓冲器/高速缓存、读取缓冲器/高速缓存、数据缓冲器/高速缓存、映射缓冲器/高速缓存等。
处理器134可利用微处理器或中央处理单元(CPU)来实施。存储器系统110可包括一个或多个处理器134。处理器134可控制存储器系统110的全部操作。作为示例而非限制,处理器134可响应于从主机102输入的写入请求或读取请求来控制对存储器装置150的编程操作或读取操作。根据实施例,处理器134可使用或执行固件来控制存储器系统110的全部操作。在本文中,固件可被称为闪存转换层(FTL)。FTL可根据主机102和存储器装置150之间的接口来执行操作。主机102可通过FTL将写入操作和读取操作的请求传输到存储器装置150。
FTL可管理地址映射、垃圾收集、损耗均衡等操作。特别地,FTL可加载、生成、更新或存储映射数据。因此,控制器130可通过映射数据将从主机102输入的逻辑地址与存储器装置150的物理地址进行映射。因为地址映射操作,存储器装置150可看起来像执行读取或写入操作的通用存储装置。而且,通过基于映射数据的地址映射操作,当控制器130尝试更新存储在特定页面中的数据时,由于闪速存储器装置的特性,控制器130可将更新数据编程到另一空页面上,并且可使该特定页面的旧数据无效(例如,将与更新数据的逻辑地址相对应的物理地址从先前的特定页面更新为另一个新的编程页面)。进一步地,控制器130可将新数据的映射数据存储到FTL中。
例如,当在存储器装置150中执行从主机102请求的操作时,控制器130使用被实施为微处理器或中央处理单元(CPU)等的处理器134。与存储器装置150接合的处理器134可处理与来自主机102的输入命令相对应的指令或命令。控制器130可执行作为与从主机102输入的命令相对应的命令操作的前台操作,诸如对应于写入命令的编程操作、对应于读取命令的读取操作、对应于擦除/丢弃命令的擦除/丢弃操作以及使用设置命令的、对应于设置参数命令或设置特征命令的参数设置操作。
又例如,控制器130可通过处理器134对存储器装置150执行后台操作。作为示例而非限制,存储器装置150的后台操作包括将存储在存储器装置150中的存储块152、154、156之中的任意存储块中的数据复制并存储到另一任意存储块中的操作(例如,垃圾收集(GC)操作)。后台操作可包括在存储器装置150中的存储块152、154、156中的至少一个中存储的数据和存储块152、154、156中的至少另一个中存储的数据之间进行移动或交换的操作(例如,损耗均衡(WL)操作)。作为后台操作,控制器130使用处理器134以将存储在控制器130中的映射数据存储到存储器装置150中的存储块152、154、156中的至少一个中,例如,映射清除操作。用于检查包括在存储器装置150中的多个存储块152、154、156中的坏块的坏块管理操作是由处理器134执行的其它后台操作示例中的一个。
根据实施例,图1所示的控制器130和存储器144可通过图2中描述的控制器130中的至少一个处理器134和至少一个存储器144来实施。
在存储器系统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的性能。
参照图3,详细描述了根据本公开另一示例的存储器系统中的控制器。控制器130与主机102和存储器装置150协作。控制器130可包括主机接口单元132、闪存转换层(FTL)单元40、存储器接口单元142和存储器144。
虽然未在图3中示出,但根据实施例,图2中描述的ECC电路138可被包括在闪存转换层(FTL)单元40中。在另一实施例中,ECC电路138可被实施为被包括在控制器130中或与控制器130相关联的单独的模块、电路、固件等。
主机接口单元132用于处理从主机102传输的命令、数据等。作为示例而非限制,主机接口单元132可包括命令队列56、缓冲器管理器52和事件队列54。命令队列56可顺序地存储从主机102传输的命令、数据等,并且以存储顺序将命令、数据等输出到缓冲器管理器52。缓冲器管理器52可对从命令队列56传送的命令、数据等进行分类、管理或调整。事件队列54可顺序地传输从缓冲器管理器52传输的用于处理命令、数据等的事件。
可从主机102连续地传输多个相同特性的命令或数据,或者在混合或打乱之后,可将不同特性的命令和数据传输到存储器系统110。例如,可将用于读取数据的多个命令(读取命令)传送到存储器系统110或可将用于读取数据的命令(读取命令)和用于编程/写入数据的命令(写入命令)交替地传输到存储器系统110。主机接口单元132可顺序地将从主机102传输的命令、数据等存储到命令队列56。此后,主机接口单元132可根据从主机102传输的命令、数据等的特性来估计或预测控制器130将执行何种类型的操作。主机接口单元132可至少基于命令、数据等的特性来确定它们的处理顺序和优先级。根据从主机102传输的命令、数据等的特性,主机接口单元132中的缓冲器管理器52被配置成确定缓冲器管理器是否应当将命令、数据等存储在存储器144中,或者缓冲器管理器是否应当将命令、数据等传送到闪存转换层(FTL)单元40中。事件队列54接收从缓冲器管理器52输入的事件,这些事件待由存储器系统110或控制器130响应于从主机102传输的命令、数据等而内部执行和处理,以便按照接收的顺序将事件传送到闪存转换层(FTL)单元40中。
根据实施例,图3中描述的主机接口单元132可执行图1中描述的控制器130的功能。主机接口单元132可将包括在主机102中的第一存储器(未示出)设置为从设备(slave),并且将第一存储器添加为由控制器130可控制或可使用的额外存储空间。
根据实施例,闪存转换层(FTL)单元40可包括主机请求管理器(HRM)46、映射管理器(MM)44、状态管理器42和块管理器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(参见图2)的编程或写入性能,块管理器48可收集编程请求并且向存储器接口单元142发送用于多平面和一次性编程操作的闪存编程请求。合理的是,块管理器48向存储器接口单元142发送若干闪存编程请求以增强或最大化多通道和多向闪存控制器的并行处理。
另一方面,块管理器48可被配置成根据有效页面的数量来管理存储器装置150中的块,当需要空闲块时,选择和擦除不具有有效页面的块,并且当确定需要垃圾收集时,选择包括最少有效页面的块。状态管理器42可执行垃圾收集以将有效数据移动到空块并且擦除包括被移动的有效数据的块,使得块管理器48可具有足够的空闲块(不具有数据的空块)。如果块管理器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可执行映射更新操作以确保准确性。
存储器装置150可包括多个存储块。根据可在一个存储器单元中存储或表示的位的数量,多个存储块可被分类为不同类型的存储块,诸如单层单元(SLC)存储块、多层单元(MLC)存储块等。此处,SLC存储块包括由每一个存储一位数据的存储器单元实施的多个页面。SLC存储块可具有高数据I/O操作性能和高耐用性。MLC存储块包括由每一个存储多位数据(例如,两位或更多位)的存储器单元实施的多个页面。在相同空间中,MLC存储块可具有比SLC存储块更大的存储容量。鉴于存储容量,MLC存储块可被高度集成。在实施例中,存储器装置150可利用诸如以下的MLC存储块来实施:MLC存储块、三层单元(TLC)存储块、四层单元(QLC)存储块及其组合。MLC存储块可包括由每一个能够存储2位数据的存储器单元实施的多个页面。三层单元(TLC)存储块可包括由每一个能够存储3位数据的存储器单元实施的多个页面。四层单元(QLC)存储块可包括由每一个能够存储4位数据的存储器单元实施的多个页面。在另一实施例中,存储器装置150可利用包括由每一个能够存储5位或更多位数据的存储器单元实施的多个页面的块来实施。
在本公开的实施例中,存储器装置150被实现为诸如闪速存储器的非易失性存储器,其中闪速存储器诸如NAND闪速存储器、NOR闪速存储器等。然而,存储器装置150还可由相变随机存取存储器(PCRAM)、铁电随机存取存储器(FRAM)、自旋注入磁存储器(STT-RAM)和自旋转移力矩磁性随机存取存储器(STT-MRAM)等中的至少一个来实施。
图4和图5示意性地描述了根据本公开的实施例的在存储器系统中执行对应于多个命令的多个命令操作的示例。例如,在本公开的实施例中,将对以下数据处理操作进行详细描述:在从主机102接收多个写入命令并执行对应于写入命令的编程操作的情况下的数据处理操作;在从主机102接收多个读取命令并执行对应于读取命令的读取操作的情况下的数据处理操作;在从主机102接收多个擦除命令并执行对应于擦除命令的擦除操作的情况下的数据处理操作;或者在从主机102一起接收多个写入命令和多个读取命令,然后执行对应于写入命令和读取命令的编程操作和读取操作的情况下的数据处理操作。
此外,在本公开的实施例中,将以下列情况作为示例进行描述:将与从主机102输入的多个写入命令相对应的写入数据存储在控制器130的存储器144中包括的缓冲器/高速缓存中,将存储在缓冲器/高速缓存中的写入数据编程并存储在存储器装置150中包括的多个存储块中,对应于多个存储块中的存储的写入数据而更新映射数据,并且将更新的映射数据存储在存储器装置150中包括的多个存储块中。在本公开的实施例中,将以下情况作为示例进行描述:执行与从主机102输入的多个写入命令相对应的编程操作。此外,在本公开的实施例中,将以下情况作为示例进行描述:针对存储在存储器装置150中的数据,从主机102输入多个读取命令,通过检查对应于读取命令的数据的映射数据来从存储器装置150读取对应于读取命令的数据,将读取数据存储在控制器130的存储器144中包括的缓冲器/高速缓存中,并且将存储在缓冲器/高速缓存中的数据提供到主机102。换言之,在本公开的实施例中,将以下情况作为示例进行描述:执行与从主机102输入的多个读取命令相对应的读取操作。此外,在本公开的实施例中,将以下情况作为示例进行描述:针对包括在存储器装置150中的存储块,从主机102接收多个擦除命令,对应于擦除命令来检查存储块,擦除检查到的存储块中存储的数据,更新与擦除的数据相对应的映射数据,并且将更新的映射数据存储在存储器装置150中包括的多个存储块中。即,在本公开的实施例中,将以下情况作为示例进行描述:执行与从主机102接收的多个擦除命令相对应的擦除操作。
进一步地,在本公开的实施例中,将以下内容作为示例进行描述:控制器130在存储器系统110中执行命令操作,需要注意的是,如上所述,包括在控制器130中的处理器134可通过例如FTL(闪存转换层)在存储器系统110中执行命令操作。而且,在本公开的实施例中,控制器130将与从主机102输入的写入命令相对应的用户数据和元数据编程并存储在存储器装置150中包括的多个存储块之中的任意存储块中,从存储器装置150中包括的多个存储块之中的任意存储块读取与从主机102接收的读取命令相对应的用户数据和元数据,并且擦除存储器装置150中包括的多个存储块之中的、存储与从主机102输入的擦除命令相对应的用户数据和元数据的存储块。
元数据可包括对应于编程操作而被存储在存储块中的数据的第一映射数据和第二映射数据,其中第一映射数据包括逻辑/物理(L2P:逻辑到物理)信息(在下文中,被称为“逻辑信息”),第二映射数据包括物理/逻辑(P2L:物理到逻辑)信息(在下文中,被称为“物理信息”)。而且,元数据可包括:关于与从主机102接收的命令相对应的命令数据的信息;关于与命令相对应的命令操作的信息;关于存储器装置150的、待被执行命令操作的存储块的信息;以及关于与命令操作相对应的映射数据的信息。换言之,元数据可包括与从主机102接收的命令相对应的、除了用户数据之外的所有剩余信息和数据。
也就是说,在本公开的实施例中,在控制器130从主机102接收到多个写入命令的情况下,执行对应于写入命令的编程操作,并且将对应于写入命令的用户数据写入并存储在存储器装置150的存储块之中的空存储块、开放存储块或已执行擦除操作的空闲存储块中。而且,将包括L2P映射表或L2P映射列表的第一映射数据和包括P2L映射表或P2L映射列表的第二映射数据写入并存储在存储器装置150的存储块之中的空存储块、开放存储块或空闲存储块中,其中L2P映射表或L2P映射列表记录了作为存储在存储块中的用户数据的逻辑地址和物理地址之间的映射信息的逻辑信息,P2L映射表或P2L映射列表记录了作为存储有用户数据的存储块的物理地址和逻辑地址之间的映射信息的物理信息。
此处,在从主机102输入写入命令的情况下,控制器130将对应于写入命令的用户数据写入并存储在存储块中。控制器130将存储在存储块中的用户数据的、包括第一映射数据和第二映射数据的元数据存储在其它存储块中。特别地,对应于存储在存储器装置150的存储块中的用户数据的数据段,控制器130生成并更新第一映射数据的L2P段和第二映射数据的P2L段作为元数据的元段之中的映射数据的映射段。控制器130将元段存储在存储器装置150的存储块中。存储在存储器装置150的存储块中的映射段被加载到包括在控制器130中的存储器144中,然后被更新。
进一步地,在从主机102接收多个读取命令的情况下,控制器130从存储器装置150读取与读取命令相对应的读取数据,将读取的数据存储在控制器130的存储器144中包括的缓冲器/高速缓存中。控制器130将存储在缓冲器/高速缓存中的数据提供到主机102,由此执行与多个读取命令相对应的读取操作。
另外,在从主机102接收多个擦除命令的情况下,控制器130检查存储器装置150的、与擦除命令相对应的存储块,并且然后对该存储块执行擦除操作。
当在执行后台操作的同时执行与从主机102接收的多个命令相对应的命令操作时,控制器130将与后台操作相对应的数据,即元数据和用户数据加载并存储在控制器130的存储器144中包括的缓冲器/高速缓存中,然后将数据,即元数据和用户数据存储在存储器装置150中。在本文中,作为示例而非限制,后台操作可包括作为复制操作的垃圾收集操作或读取回收操作、作为交换操作的损耗均衡操作或映射清除操作。例如,对于后台操作,控制器130可在存储器装置150的存储块中检查与后台操作相对应的元数据和用户数据,将存储在存储器装置150的某些存储块中的元数据和用户数据加载并存储到控制器130的存储器144中包括的缓冲器/高速缓存中,然后将该元数据和用户数据存储在存储器装置150的某些其它存储块中。
在根据本公开的实施例的存储器系统中,在执行作为前台操作的命令操作和作为后台操作的复制操作、交换操作和映射清除操作的情况下,控制器130调度对应于前台操作和后台操作的队列,并将调度的队列分配至包括在控制器130中的存储器144和包括在主机102中的存储器。在这方面,针对待在存储器装置150中执行的前台操作和后台操作,控制器130为各个操作分配标识符(ID),并且分别调度与分配有标识符的操作相对应的队列。在根据本公开的实施例的存储器系统中,不仅为存储器装置150的各个操作来分配标识符,而且为存储器装置150的功能分配标识符,并且调度与被分配有各自标识符的功能相对应的队列。
在根据本公开的实施例的存储器系统中,控制器130管理通过待在存储器装置150中执行的各个功能和操作的标识符而调度的队列。控制器130管理通过待在存储器装置150中执行的前台操作和后台操作的标识符而调度的队列。在根据本公开的实施例的存储器系统中,在将与通过标识符而调度的队列相对应的存储器区域分配至包括在控制器130中的存储器144和包括在主机102中的存储器之后,控制器130管理分配的存储器区域的地址。通过使用调度的队列,控制器130不仅执行前台操作和后台操作,还执行存储器装置150中的各个功能和操作。
参照图4,控制器130可执行与从主机102输入的多个命令相对应的命令操作,例如,与从主机102输入的多个写入命令相对应的编程操作。此时,控制器130将对应于写入命令的用户数据编程并存储在存储器装置150的存储块中。而且,对应于针对存储块的编程操作,控制器130生成并更新用户数据的元数据,并且将元数据存储在存储器装置150的存储块中。
控制器130生成并更新第一映射数据和第二映射数据,该第一映射数据和第二映射数据包括指示用户数据被存储在存储器装置150的存储块中包括的页面中的信息。也就是说,控制器130生成并更新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执行功能和操作。
参照图5,存储器装置150包括多个存储器管芯,例如存储器管芯0、存储器管芯1、存储器管芯2及存储器管芯3,并且存储器管芯中的每一个包括多个平面,例如,平面0、平面1、平面2和平面3。在实施例中,包括在存储器装置150中的存储器管芯中的各个平面包括多个存储块,例如,N个块Block0、Block1、……、BlockN-1,块中的每一个包括多个页面,例如,2M个页面。此外,存储器装置150包括与各个存储器管芯相对应的多个缓冲器,例如,与存储器管芯0相对应的缓冲器0、与存储器管芯1相对应的缓冲器1、与存储器管芯2相对应的缓冲器2及与存储器管芯3相对应的缓冲器3。
在执行与从主机102接收到的多个命令相对应的命令操作的情况下,对应于命令操作的数据被存储在存储器装置150中包括的缓冲器中。例如,在执行编程操作的情况下,对应于编程操作的数据被存储在缓冲器中,然后被存储在存储器管芯的存储块中包括的页面中。在执行读取操作的情况下,从包括在存储器管芯的存储块中的页面中读取对应于读取操作的数据,该数据被存储在缓冲器中,然后通过控制器130而被提供到主机102。
在本公开的实施例中,包括在存储器装置150中的缓冲器存在于各个对应存储器管芯的外部,然而,应当注意的是,缓冲器可存在于各个对应存储器管芯的内部,并且应当注意的是,缓冲器可对应于各个存储器管芯中的各个平面或各个存储块。进一步地,在本公开的实施例中,包括在存储器装置150中的缓冲器可以是包括在存储器装置150中的多个页面缓冲器,然而,应当注意的是,缓冲器可以是包括在存储器装置150中的多个高速缓存或多个寄存器。
而且,包括在存储器装置150中的多个存储块可被分组为多个超级存储块,并且可在多个超级存储块中执行命令操作。超级存储块中的每一个可包括多个存储块,例如包括在第一存储块组和第二存储块组中的存储块。在这方面,在第一存储块组被包括在某个第一存储器管芯的第一平面中的情况下,第二存储块组可被包括在该第一存储器管芯的第一平面中、被包括在该第一存储器管芯的第二平面中或被包括在第二存储器管芯的平面中。
在本公开的实施例中,数据处理系统可包括多个存储器系统。多个存储器系统110中的每一个可包括控制器130和存储器装置150。在数据处理系统中,多个存储器系统110中的一个可以是主设备(master),而其它存储器系统可以是从设备。可基于多个存储器系统110之间的争用(contention)来确定主设备。当多个命令从主机102传送至数据处理系统中时,主设备可至少基于通道或总线的状态来确定每一个命令的目标。例如,对应于从多个存储器系统传送的信息,可将第一存储器系统确定为多个存储器系统之中的主存储器系统。如果将第一存储器系统确定为主存储器系统,则认为剩余的存储器系统是从存储器系统。主存储器系统的控制器可检查联接到多个存储器系统的多个通道(或通路、总线)的状态,以选择哪个存储器系统来处理从主机102传送的命令或数据。在实施例中,可在多个存储器系统之中动态地确定主设备。在另一实施例中,主存储器系统可周期性地或根据事件而与其它从存储器系统中的一个进行改变。
在下文中,将更详细地描述在包括上述存储器装置150和控制器130的存储器系统110中传输数据的方法和设备。随着存储在存储器系统110中的数据量变大,可能需要存储器系统110一次读取或存储大量的数据。然而,用于读取存储在存储器装置150中的数据的读取时间或用于将数据写入在存储器装置150中的编程/写入时间通常可能比控制器130处理数据的处理时间或控制器130和存储器装置150之间的数据传输时间长。例如,读取时间可能是处理时间的两倍。因为读取时间或编程时间相比于处理时间或数据传输时间长得多,因此用于在存储器系统110中传送数据的程序或进程可能影响存储器系统110的性能,例如操作速度,和/或影响存储器系统110的结构,诸如缓冲器大小。
在图6中,描述了根据本公开的实施例的主机10和存储器系统20。根据本公开的实施例的数据处理系统可由主机10、存储器系统20和其它部件构成。在嵌入有存储器系统20的计算装置或移动装置中,存储器系统20与主机10接合以交换数据。
参照图6,存储器系统20可以包括控制器30和存储器装置40。控制器30从存储器装置40接收并输出从主机10请求的数据,或者将从主机10传输的数据存储到存储器装置40中,以便执行从主机10请求的命令操作。存储器装置40包括能够存储数据的多个存储器单元。此处,可根据存储器装置40的特性、存储器系统20的使用目的、主机10所需要的存储器系统20的规格等来改变存储器装置40的内部配置。
例如,图1至图5所示的存储器装置150和图6的存储器装置40可包括相同的部件。另外,图1至图5中描述的控制器130和图6所示的控制器30可包括相同的部件。
控制器30可包括至少一个处理器34、主机接口36、缓冲器28和控制器接口32。控制器30内的用于命令操作的处理器34可起到与计算装置中使用的CPU的作用类似的作用。主机接口36用于存储器系统20和主机10之间的数据通信,同时控制器接口32用于存储器装置40和控制器30之间的数据通信。存储器38临时存储由处理器34、主机接口36和控制器接口32执行操作期间所需的数据和操作状态。或者,存储器38可临时存储存储器装置40和主机10之间的I/O数据。上述控制器30的内部配置可以是根据由控制器处置或处理的操作、任务等的功能分类。
根据实施例,控制器30的物理配置可包括至少一个处理器、至少一个存储器、至少一个输入/输出端口、以及用于上述部件之间的电连接的布线。
控制器30和存储器装置40可彼此交换元数据和用户数据。此处,用户数据包括待由用户通过主机10存储的数据,并且元数据包括在存储器装置40中存储和管理用户数据所需的系统信息(例如,映射数据等)。因为用户数据和元数据的特性彼此不同,所以在控制器30中可以不同的方式处理或管理用户数据和元数据。
随着存储器装置40的存储容量增加,状态信息等具有更大的大小,状态信息等可包括在存储器装置40中包括的多个管芯、多个块或多个页面内的诸如读取、编程和擦除数据的操作所必需的系统信息、映射信息和/或操作信息。控制器30难以将所有的状态信息等存储在存储器38中。因此,用于诸如读取、编程、擦除等操作的系统信息、映射信息、操作信息等以及用户数据可被存储在存储器装置40中。控制器30可从存储器装置40中的多个管芯、块加载诸如从存储器装置40的多个页面中读取、编程或擦除数据等的操作所需的一些信息,然后在相应的操作完成之后将更新的信息重新存储在存储器装置40中。
虽然未示出,但随着存储器装置40中能够存储数据的存储器单元的数量增加,存储器装置40的内部结构可能是复杂的,如图6所示。控制器30可根据存储器装置40的内部配置将连接信息与数据一起传输或接收。例如,在如图6所示的在存储器装置40中包括多个管芯的情况下,在控制器30和存储器装置40之间存在n个通道和m个通路(n、m为大于1的整数)。数据和连接信息可经由n个通道和m个通路传输。然而,为了使控制器30向存储器装置40读取或写入数据,根据存储器装置40的内部结构,可能需要另外的控制变量或控制信号。随着存储器装置40中包括更多的管芯,执行操作所需的另外的信息变得更多。
如上所述,根据实施例的存储器系统20包括存储器装置40和控制器30,其中存储器装置40包括多个存储块,多个存储块包括存储数据的多个页面,控制器30用于执行对应于多个命令的命令操作。在本文中,控制器30可从存储器装置40中的多个第一存储块中加载数据,并且在多个第二存储块中排除多个第一存储块来对通过内部或外部命令操作而加载的、更新的或生成的新数据进行编程。命令操作可包括在存储器装置40内执行的前台操作和后台操作。前台操作和后台操作可包括数据编程操作、数据擦除操作、数据读取操作等。即使从第一存储块输出的一些数据被擦除或丢弃,并且第一存储块中的一些变为空闲块,控制器30也不将第一存储块中的一些第一存储块分配为待编程最初存储在第一存储块中并且现在被传输、移动或更新的数据的第二存储块。当更新的数据被存储在先前确保的第二存储块中并且命令操作完成时,被擦除或丢弃的第一存储块可被用作第二存储块以编程对应于下一操作的另一数据。此外,控制器30可在供电中断之前,例如在突然断电(SPO)之前,将关于命令操作的信息顺序地存储在第二存储块中。在通电之后,控制器30顺序地加载存储在第二存储块中的信息以恢复命令操作。
图7至9示出了如何生成空闲块列表37的不同示例。在图7至图9中,存储器装置150中包括多个数据块40_1和多个空闲块40_2。此外,多个数据块40_1中的六个块BLK15、BLK17、BLK25、BLK29、BLK31和BLK36是用于编程或移动大量的数据的单个操作的数据块。此处,六个块BLK15、BLK17、BLK25、BLK29、BLK31和BLK36可被称为使用中的块。多个数据块40_1之中的除使用中的块之外的多个块BLK11、BLK23和BKL30可被称为未使用的块。同时,在执行编程大量的数据的操作之前,控制器130(参见图1至图3)可将块识别或确定为使用中的块、未使用的块和空闲块中的一种。
参照图7,控制器130可在执行至少一个操作以编程或传输大量的数据之前生成空闲块列表37。空闲块列表37可包括与存储器装置150中的多个空闲块40_2有关的信息。根据实施例,空闲块列表37可包括与存储器装置150中的所有空闲块40_2有关的信息。可根据驱动信息、状态信息等对包括在空闲块列表37中的空闲块BLK33、BLK12、BLK9、BLK39、BLK26、BLK21进行优先级排序并且存储。例如,空闲块列表37中包括与空闲块BLK33、BLK12、BLK9、BLK39、BLK26、BLK21有关的信息,并且空闲块BLK33、BLK12、BLK9、BLK39、BLK26、BLK21中的每一个的擦除计数越小,在空闲块列表37中可具有越高的优先级。与非优先级的块BLK12、BLK9、BLK39、BLK26、BLK21相比,高优先级的块BLK33可首先用于至少一个编程或移动较大容量的数据的操作。
在执行至少一个编程或移动大量的数据的操作之前生成的空闲块列表37可能不会被更新,直到完成相应的操作。为此,控制器130可允许空闲块列表37包括预定数量的空闲块。根据实施例,预定数量可大于存储控制器130可在单个操作中编程的数据量所需的块的数量。可根据每一个块的存储容量来确定预定数量。
在操作开始之前生成了空闲块列表37之后,空闲块列表37可能不会被更新,直到完成相应的操作。因此,即使由于诸如供电中断的意外事件而未正常完成当前操作,也可避免当再次启动并创建空闲块列表37时数据失真的风险。而且,根据实施例,即使空闲块列表37在发生诸如突然供电中断的事件之前被备份到存储器装置150,存储器系统也重新启动并加载空闲块列表37,使得可降低当恢复时数据失真的风险。
图8示出了生成空闲块列表37的另一实施例。
参照图8,可在至少一个编程或移动存储在多个使用中的块BLK15、BLK17、BLK25、BLK29、BLK31、BLK36中的大量的数据的操作期间更新空闲块列表37。
在至少一个编程或移动存储在多个使用中的块BLK15、BLK17、BLK25、BLK29、BLK31中的大量的数据的操作期间,可在多个数据块40_1之中将一个或多个块BLK23、BLK36改变为空闲块。如果可在执行至少一个操作的过程期间更新空闲块列表37,则可将从数据块改变为空闲块的块BLK23、BLK36添加到空闲块列表37。然而,即使在执行至少一个操作的过程期间被改变为空闲块,使用中的块BLK36也不能被添加到空闲块列表37。相反,当在执行至少一个操作的过程期间被改变为空闲块时,无论过程如何,可将未使用的块BLK23添加到空闲块列表37。
在完成执行与多个使用中的块BLK15、BLK17、BLK25、BLK29、BLK31、BLK36相关联的操作的过程之后,可将从使用中的块改变为空闲块的块BLK36添加到空闲块列表37。
在动态更新空闲块列表37的实施例中,即使当前执行的操作由于意外事件而未正常完成,通过从空闲块列表37中排除在当前执行的操作期间改变为空闲块的使用中的块,可避免丢失数据的风险。
图9示出了生成空闲块列表37的另一示例。
参照图9,可经由控制器130(参见图1至图3和图6)在任何时间更新空闲块列表37。当生成存储器装置150中的空闲块时,可将新生成的空闲块的信息添加到空闲块列表37。然而,空闲块列表37可包括另外的标记或段。
根据实施例,空闲块列表37可简单地列出空闲块或者根据优先级对空闲块进行排序。空闲块列表37可包括新生成的空闲块的信息。根据本发明的实施例,每当新添加空闲块的信息时,可至少基于优先级顺序来重新排列空闲块列表37中的空闲块的信息。
空闲块列表37可包括空闲块信息(例如,空闲块BLK9、BLK12、BLK26、BLK21、BLK33、BLK39、BLK36和BLK23的地址以及对应于每一个空闲块的位信息(“1”或“0”))。例如,在控制器130执行至少一个操作以编程或移动大量的数据之前,多个空闲块BLK9、BLK12、BLK26、BLK21、BLK33和BLK39具有位信息“1”,位信息“1”指示相应的空闲块可用于控制器130当前正在执行的至少一个操作。然而,位信息“0”可指示相应的空闲块不可用于控制器130当前正在执行的操作。
同时,在控制器130的操作期间改变为空闲块的数据块BLK23和BLK36可被包括在空闲块列表37中。然而,变为空闲块的使用中的块BLK36具有位信息“0”。相反,变为空闲块的未使用的块BLK23可具有位信息“1”。控制器130不能将具有位信息“0”的空闲块BLK36用于当前的操作,而具有位信息“1”的空闲块BLK23可用于编程大容量数据的当前操作。
在动态更新空闲块列表37的实施例中,空闲块列表37可包括指示每一个空闲块是否可用于当前执行的操作的位信息。即使改变为空闲块的至少一个块被包括在空闲块列表37中,也可避免使用该至少一个块用于当前执行的操作。这可在由于诸如突然供电中断的事件而导致当前操作未正常完成的情况下,避免丢失数据的风险。
参照图7至图9,控制器130生成空闲块列表37以确定空闲块是否可用于当前执行的操作,使得可以在当前操作异常终止时防止丢失数据的风险。可提高或增强存储器系统20的操作稳定性。
图10示出了根据本公开的另一实施例的操作存储器系统20的方法。
参照图10,操作存储器系统20的方法包括:步骤82,接收从主机10输入的与存储器装置20相关联的多个命令,存储器装置20包括多个存储块,多个存储块中的每一个包括存储数据的多个页面;步骤84,从多个存储块之中的第一存储块40_1加载数据以执行对应于多个命令的命令操作;以及步骤86,在执行命令操作之后分配存储更新的数据的第二存储块40_2。此处,第一存储块40_1可被认为是存储与存储器装置150中的当前命令操作相关联的数据。而且,第二存储块40_2可被认为是可用于通过当前命令操作而生成、更新或传输的大量的数据的空闲块。
另一方面,即使第一存储块40_1中的一些在当前操作期间变为空闲块,第一存储块中的这一些也可能不被用作空闲块,直到当前操作正常终止并且更新的数据被存储。
另外,分配第二存储块40_2的步骤86可包括生成第二存储块40_2的排序列表的步骤88。该列表可包括关于第二存储块40_2的可用性的信息,即对应于每一个存储块的位信息。根据实施例,列表可仅包括块信息(例如,块地址)。而且,列表可基于优先级顺序来对第二存储块的信息进行排序或排列。
例如,可由于新生成的空闲块而更新列表。在另一示例中,可在命令操作开始之前生成列表,并且在正在执行命令操作时不更新该列表。而且,当除了多个第一存储块之外的至少一个块在命令操作期间改变为第二存储块时,可更新列表以包括该至少一个块。
虽然未示出,但在发生突然断电之前,关于命令操作的信息被顺序地存储在第二存储块中。当供电时,可顺序地加载存储在第二存储块中的关于命令操作的信息。在实施例中,关于第一存储块和/或第二存储块的可用性的信息可由位图类型的空闲块列表37管理,空闲块列表37包括每一个对应于每一个存储块的位信息。为了管理空闲块列表37,该操作方法可包括以下步骤:控制空闲块列表37以包括指示存储块在命令操作期间被用作空闲块的第一值和表示存储块在命令操作开始时或开始之后变为空闲块的第二值。
在本文中,第一存储块可包括每一个都存储数据的多个存储块,第二存储块可包括未存储任何数据的多个空闲存储块。
根据实施例,从第一存储块加载的数据和存储在第二存储块中的更新的数据可与相应的映射数据相关联。根据实施例,映射数据可包括用于将逻辑块地址映射到物理块地址的第一映射数据和用于将物理块地址映射到逻辑块地址的第二映射数据。
根据实施例,命令操作可包括在存储器装置内执行的前台操作和后台操作。例如,前台操作和后台操作可分别包括数据编程操作、数据擦除操作或数据读取操作。
如上所述,存储器系统20中的大量的数据可被移动或传输,以用于诸如损耗均衡和垃圾收集的各种目的。为了传输大量的数据,必须对大量的数据进行编程,这可能需要一些时间。在该过程中,大量的数据的编程操作可能由于供电的中断而中断。因此,控制器30可根据多个存储块的当前数据存储状态(即,指示针对当前命令操作的可用性)来生成并存储用于确定空闲块是否可用的位图类型的信息。在本文中,位图类型的信息可能不会占用太多的资源。即使第一存储块中的一些变为空闲块,也可以进行控制以针对当前的命令操作不使用该空闲块。进一步地,通过参考位图类型的信息,即使在断电之后再次通电,也可在没有扫描所有的存储块的情况下,将数据编程到空闲块之后的存储块中,从而提高存储器系统的稳定性和可靠性。
在图11中,描述了包括根据实施例的存储器系统的数据处理系统的另一示例。图11示意性地示出应用了根据本实施例的存储器系统的存储卡系统。
参照图11,存储卡系统6100可包括存储器控制器6120、存储器装置6130和连接器6110。
存储器控制器6120可连接到由非易失性存储器实现的存储器装置6130。存储器控制器6120可被配置成访问存储器装置6130。作为示例而非限制,存储器控制器6120可被配置成控制存储器装置6130的读取操作、写入操作、擦除操作和后台操作。存储器控制器6120可被配置成提供存储器装置6130和主机之间的接口并且使用固件以控制存储器装置6130。也就是说,存储器控制器6120可对应于参照图1和图3描述的存储器系统110的控制器130,并且存储器装置6130可对应于参照图1和图5描述的存储器系统110的存储器装置150。
因此,存储器控制器6120可包括RAM、处理单元、主机接口、存储器接口和错误校正单元。存储器控制器130可进一步包括图1和图3所示的元件。
存储器控制器6120可通过连接器6110与例如图1的主机102的外部装置通信。例如,如参照图1至图3描述的,存储器控制器6120可被配置为通过诸如以下的各种通信协议中的一种或多种与外部装置通信:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、高速PCI(PCIe)、高级技术附件(ATA)、串行ATA、并行ATA、小型计算机系统接口(SCSI)、增强型小型磁盘接口(EDSI)、集成驱动电路(IDE)、火线、通用闪存(UFS)、WIFI和蓝牙。因此,根据本实施例的存储器系统和数据处理系统可应用于有线/无线电子装置,特别是移动电子装置。
存储器装置6130可由非易失性存储器来实施。例如,存储器装置6130可通过诸如以下的各种非易失性存储器装置来实施:可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、NAND闪速存储器、NOR闪速存储器、相变RAM(PRAM)、电阻式RAM(ReRAM)、铁电RAM(FRAM)和自旋转移力矩磁性RAM(STT-RAM)。存储器装置6130可包括如在图5的存储器装置150中的多个管芯。
存储器控制器6120和存储器装置6130可集成到单个半导体装置中。例如,存储器控制器6120和存储器装置6130可通过集成到单个半导体装置中来构造固态驱动器(SSD)。而且,存储器控制器6120和存储器装置6130可构造诸如以下的存储卡:PC卡(PCMCIA:个人计算机存储卡国际协会)、标准闪存(CF)卡、智能媒体卡(例如,SM和SMC)、记忆棒、多媒体卡(例如,MMC、RS-MMC、微型MMC和eMMC)、SD卡(例如,SD、迷你SD、微型SD和SDHC)以及通用闪存(UFS)。
图12是示意性地示出包括根据实施例的存储器系统的数据处理系统的另一示例的示图。
参照图12,数据处理系统6200可包括具有一个或多个非易失性存储器的存储器装置6230和用于控制存储器装置6230的存储器控制器6220。图12所示的数据处理系统6200可用作如参照图1和图2描述的诸如存储卡(CF、SD、微型SD等)或USB装置的存储介质。存储器装置6230可对应于图1和图5所示的存储器系统110中的存储器装置150。存储器控制器6220可对应于图1和图5所示的存储器系统110中的控制器130。
存储器控制器6220可响应于主机6210的请求来控制对存储器装置6230的读取操作、写入操作或擦除操作。存储器控制器6220可包括一个或多个CPU 6221、诸如RAM 6222的缓冲存储器、ECC电路6223、主机接口6224和诸如NVM接口6225的存储器接口。
CPU 6221可控制对存储器装置6230的全部操作,例如读取操作、写入操作、文件系统管理和坏页面管理操作。RAM 6222可根据CPU 6221的控制来操作。RAM 6222可用作工作存储器、缓冲存储器或高速缓存存储器。当RAM 6222用作工作存储器时,由CPU 6221处理的数据可以临时存储在RAM 6222中。当RAM 6222用作缓冲存储器时,RAM 6222可用于缓冲从主机6210传输到存储器装置6230的数据或从存储器装置6230传输到主机6210的数据。当RAM 6222用作高速缓存存储器时,RAM 6222可以辅助低速存储器装置6230以高速运转。
ECC电路6223可对应于图2所示的控制器130的ECC电路138。如参照图2所述,ECC电路6223可生成用于校正从存储器装置6230提供的数据的失败位或错误位的ECC(错误校正码)。ECC电路6223可对被提供到存储器装置6230的数据执行错误校正编码,由此形成具有奇偶校验位的数据。奇偶校验位可被存储在存储器装置6230中。ECC电路6223可对从存储器装置6230输出的数据执行错误校正解码。此时,ECC电路6223可使用奇偶校验位来校正错误。例如,如参照图2描述的,ECC电路6223可以使用LDPC码、BCH码、turbo码、里德-所罗门码、卷积码、RSC或诸如TCM或BCM的编码调制来校正错误。
存储器控制器6220可通过主机接口6224向主机6210传输数据/从主机6210接收数据。存储器控制器6220可通过NVM接口6225向存储器装置6230传输数据/从存储器装置6230接收数据。主机接口6224可通过PATA总线、SATA总线、SCSI、USB、PCIe或NAND接口连接至主机6210。存储器控制器6220可利用诸如WiFi或长期演进(LTE)的移动通信协议而具有无线通信功能。存储器控制器6220可连接到外部装置,例如主机6210或另一个外部装置,然后向外部装置传输数据/从外部装置接收数据。特别地,因为存储器控制器6220被配置为通过各种通信协议中的一种或多种与外部装置通信,所以根据本实施例的存储器系统和数据处理系统可以应用于有线/无线电子装置,特别是移动电子装置。
图13是示意性地示出包括根据实施例的存储器系统的数据处理系统的另一示例的示图。图13示意性地示出应用了根据本实施例的存储器系统的SSD。
参照图13,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的非易失性存储器来实施。为便于描述,图13示出缓冲存储器6325存在于控制器6320内部。然而,缓冲存储器6325可存在于控制器6320外部。
ECC电路6322可在编程操作期间计算待被编程到存储器装置6340的数据的ECC值。ECC电路6322可在读取操作期间基于ECC值对从存储器装置6340读取的数据执行错误校正操作。ECC电路6322可在失效数据恢复操作期间对从存储器装置6340恢复的数据执行错误校正操作。
主机接口6324可提供与诸如主机6310的外部装置的接口功能。非易失性存储器接口6326可通过多个通道连接来提供与存储器装置6340的接口功能。
此外,应用了图1和图5的存储器系统110的多个SSD 6300可被提供以实施例如RAID(独立磁盘的冗余阵列)系统的数据处理系统。此时,RAID系统可包括多个SSD 6300和用于控制多个SSD 6300的RAID控制器。当RAID控制器响应于从主机6310提供的写入命令执行编程操作时,RAID控制器可根据多个RAID级别,即,从主机6310提供的写入命令的RAID级别信息,在SSD 6300中选择一个或多个存储器系统或SSD 6300。RAID控制器可将对应于写入命令的数据输出到所选择的SSD 6300。此外,当RAID控制器响应于从主机6310提供的读取命令执行读取操作时,RAID控制器可根据多个RAID级别,即,从主机6310提供的读取命令的RAID级别信息,在SSD 6300中选择一个或多个存储器系统或SSD 6300。RAID控制器可将从所选择的SSD 6300读取的数据提供到主机6310。
图14是示意性地示出包括根据实施例的存储器系统的数据处理系统的另一示例的示图。图14示意性地示出应用了根据实施例的存储器系统的嵌入式多媒体卡(eMMC)。
参照图14,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和图5所示的存储器系统110来实现。例如,在UFS系统6500、6600、6700、6800中,UFS装置6520、6620、6720、6820可参照图13至图16描述的数据处理系统6200、SSD 6300或eMMC 6400的形式来实现,并且UFS卡6530、6630、6730、6830可以参照图11描述的存储卡系统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彼此通信。
在图15所示的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卡可并行地或以星型形式连接到主机6510。星型形式是一种将单个集中部件联接到多个装置以进行并行处理的布置。多个UFS卡可并行地或以星型形式连接到UFS装置6520或串联地或以链型形式连接到UFS装置6520。
在图16所示的UFS系统6600中,主机6610、UFS装置6620和UFS卡6630中的每一个可包括UniPro,并且主机6610可通过执行交换操作的交换模块6640,例如,通过在UniPro处执行例如L3交换的链路层交换的交换模块6640来与UFS装置6620或UFS卡6630通信。UFS装置6620和UFS卡6630可通过在UniPro处的交换模块6640的链路层交换来彼此通信。在本实施例中,为了便于描述,已经例示一个UFS装置6620和一个UFS卡6630连接到交换模块6640的配置。然而,多个UFS装置和UFS卡可并联或以星型形式连接到交换模块6640,并且多个UFS卡可串联或以链型形式连接到UFS装置6620。
在图17所示的UFS系统6700中,主机6710、UFS装置6720和UFS卡6730中的每一个可包括UniPro,并且主机6710可通过执行交换操作的交换模块6740,例如,通过在UniPro处执行例如L3交换的链路层交换的交换模块6740,来与UFS装置6720或UFS卡6730通信。此时,UFS装置6720和UFS卡6730可在UniPro处通过交换模块6740的链路层交换来彼此通信,并且交换模块6740可在UFS装置6720内部或外部与UFS装置6720集成为一个模块。在本实施例中,为便于描述,已经例示了其中一个UFS装置6720和一个UFS卡6730连接到交换模块6740的配置。然而,包括交换模块6740和UFS装置6720的多个模块可以并行地或以星型形式连接到主机6710或者串联地或以链型形式连接到彼此。此外,多个UFS卡可以并行地或以星型形式连接到UFS装置6720。
在图18所示的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。
图19是示意性地示出包括根据实施例的存储器系统的数据处理系统的另一示例的示图。图19是示意性地示出应用了根据实施例的存储器系统的用户系统的示图。
参照图19,用户系统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。例如,可基于POP(堆叠封装)来封装并安装应用处理器6930和存储器模块6920。
网络模块6940可与外部装置通信。例如,网络模块6940不仅可支持有线通信,还可支持诸如以下的各种无线通信:码分多址(CDMA)、全球移动通信系统(GSM)、宽带CDMA(WCDMA)、CDMA-2000、时分多址(TDMA)、长期演进(LTE)、全球微波接入互操作性(Wimax)、无线局域网(WLAN)、超宽带(UWB)、蓝牙、无线显示(WI-DI),从而与特别是移动电子装置的有线/无线电子装置通信。因此,根据本发明的实施例的存储器系统和数据处理系统可应用于有线/无线电子装置。网络模块6940可被包括在应用处理器6930中。
存储模块6950可存储数据,例如从应用处理器6930接收的数据,然后可将所存储的数据传输到应用处理器6930。存储模块6950可由诸如以下的非易失性半导体存储器装置实现:相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(ReRAM)、NAND闪存、NOR闪存和3DNAND闪存,并且被设置为诸如用户系统6900的存储卡和外部驱动器的可移除存储介质。存储模块6950可以对应于以上参照图1和图5描述的存储器系统110。此外,存储模块6950可被实施为如上参照图15至图20所述的SSD、eMMC和UFS。
用户接口6910可包括用于将数据或命令输入到应用处理器6930或用于将数据输出到外部装置的接口。例如,用户接口6910可以包括诸如键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、摄像机、麦克风、陀螺仪传感器、振动传感器和压电元件的用户输入接口以及诸如液晶显示器(LCD)、有机发光二极管(OLED)显示装置、有源矩阵OLED(AMOLED)显示装置、LED、扬声器和马达的用户输出接口。
此外,当其中图1和图5的存储器系统110被应用于用户系统6900的移动电子装置时,应用处理器6930可控制移动电子装置的全部操作。网络模块6940可用作用于控制与外部装置的有线/无线通信的通信模块。用户接口6910可在移动电子装置的显示/触摸模块上显示通过处理器6930处理的数据。进一步地,用户接口6910可支持从触摸面板接收数据的功能。
根据上述实施例,有利的是,在移动或编程大量的数据的操作由于诸如供电中断的外部因素而尚未完成之后,在后来去除外部因素的时间点,存储器系统可尝试在降低丢失数据风险的状态下恢复数据。
进一步地,本公开可提供一种提高能够处理大量的数据的存储器系统的操作稳定性和可靠性的设备和方法。
虽然已经针对具体实施例描述了本公开,但是对于本领域技术人员显而易见的是,在不脱离如所附权利要求所限定的本发明的精神和范围的情况下,可进行各种改变和修改。
Claims (20)
1.一种存储器系统,包括:
存储器装置,包括多个存储块,所述多个存储块中的每个包括存储数据的多个页面;以及
控制器,从所述多个存储块之中的第一存储块加载数据以执行对应于多个命令的命令操作,并且确保所述多个存储块之中的第二存储块存储通过所述命令操作而更新的数据,
其中所述控制器从所述第二存储块中排除所述第一存储块。
2.根据权利要求1所述的存储器系统,
其中即使所述第一存储块在所述命令操作期间变为空闲块,所述控制器也从所述第二存储块中排除所述第一存储块,并且
其中在所述命令操作完成之后,所述控制器将在所述命令操作期间变为所述空闲块的所述第一存储块包括在所述第二存储块中。
3.根据权利要求1所述的存储器系统,其中所述控制器生成并管理具有位图的空闲块列表,所述位图包括位信息,所述位信息指示在所述命令操作期间变为空闲块的所述第一存储块和所述第二存储块中的每个是否可用。
4.根据权利要求3所述的存储器系统,其中所述控制器确定在所述空闲块列表中,与在所述命令操作期间变为所述空闲块的所述第一存储块相对应的第一位信息具有第一值,并且与所述第二存储块相对应的第二位信息具有第二值。
5.根据权利要求1所述的存储器系统,其中所述控制器在所述命令操作开始之前生成关于所述第二存储块的列表,然后在执行所述命令操作时不更新或更改所述列表。
6.根据权利要求1所述的存储器系统,其中在执行所述命令操作时,当除了所述第一存储块之外的存储块中的至少一个改变为所述第二存储块时,所述控制器更新列表。
7.根据权利要求1所述的存储器系统,其中所述控制器更新关于新添加的第二存储块的列表,而不管所述命令操作,并且所述列表包括位信息,所述位信息中的每个指示所述第二存储块中的每个是否可用。
8.根据权利要求1所述的存储器系统,其中在发生突然断电,即SPO之前将关于所述命令操作的信息存储到所述第二存储块之后,当供电时,所述控制器加载存储在所述第二存储块中的所述信息以执行所述命令操作。
9.根据权利要求1所述的存储器系统,
其中所述命令操作包括在所述存储器装置中执行的前台操作和后台操作,并且
其中所述前台操作和所述后台操作包括数据编程操作、数据擦除操作或数据读取操作。
10.一种存储器系统,包括:
存储器装置,包括多个存储块,所述多个存储块中的每个包括存储数据的多个页面;以及
控制器,从所述多个存储块中的第一存储块加载针对对应于命令的操作的映射数据和用户数据,并且通过对应于所述命令的所述操作来确定存储更新的映射数据和更新的用户数据的第二存储块,
其中即使所述第一存储块中的至少一个第一存储块变为空闲块,所述控制器也从所述第二存储块中排除所述至少一个第一存储块,直到所述更新的映射数据和所述更新的用户数据被存储在所述第二存储块中。
11.根据权利要求10所述的存储器系统,其中所述控制器在所述命令操作开始之前生成关于所述第二存储块的列表,然后在执行所述命令操作时不更新或更改所述列表。
12.根据权利要求10所述的存储器系统,其中在执行所述命令操作时,当除了所述第一存储块之外的存储块中的至少一个改变为所述第二存储块时,所述控制器更新列表。
13.根据权利要求10所述的存储器系统,其中所述控制器更新关于新添加的第二存储块的列表,而不管所述命令操作,并且所述列表包括指示所述第二存储块中的每个是否可用的位信息。
14.根据权利要求10所述的存储器系统,
其中所述命令操作包括在所述存储器装置中执行的前台操作和后台操作,并且
其中所述前台操作和所述后台操作包括数据编程操作、数据擦除操作或数据读取操作。
15.一种操作存储器系统的方法,所述方法包括:
接收从主机输入并且与存储器装置相关联的多个命令,所述存储器装置包括多个存储块,所述多个存储块中的每个包括存储数据的多个页面;
从所述多个存储块之中的第一存储块加载数据以执行对应于所述多个命令的命令操作;并且
确保所述多个存储块之中的第二存储块存储通过所述命令操作而更新的数据,
其中即使所述第一存储块中的至少一个第一存储块变为空闲块,所述控制器也从所述第二存储块中排除所述至少一个第一存储块,直到所述更新的数据被存储在所述第二存储块中。
16.根据权利要求15所述的方法,其中确保所述第二存储块包括生成对所述第二存储块的信息进行排列和排序的列表。
17.根据权利要求16所述的方法,其中所述列表包括位信息,所述位信息中的每个对应于每个存储块并且指示在所述命令操作期间变为空闲块的所述第一存储块和所述第二存储块中的每个是否可用。
18.根据权利要求17所述的方法,其中当生成新的空闲块时,所述控制器更新所述列表,而不管所述命令操作。
19.根据权利要求16所述的方法,其中在所述命令操作开始之前生成所述列表,并且在执行所述命令操作时不更新或更改所述列表。
20.根据权利要求16所述的方法,其中确保所述第二存储块进一步包括在执行所述命令操作时,当除了所述第一存储块之外的存储块中的至少一个改变为所述第二存储块时,更新所述列表。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180091321A KR20200016076A (ko) | 2018-08-06 | 2018-08-06 | 메모리 시스템 및 메모리 시스템의 동작방법 |
KR10-2018-0091321 | 2018-08-06 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110806983A true CN110806983A (zh) | 2020-02-18 |
CN110806983B CN110806983B (zh) | 2023-04-07 |
Family
ID=69227482
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910481137.6A Active CN110806983B (zh) | 2018-08-06 | 2019-06-04 | 存储器系统及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10846022B2 (zh) |
KR (1) | KR20200016076A (zh) |
CN (1) | CN110806983B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114730301A (zh) * | 2020-04-17 | 2022-07-08 | 西部数据技术公司 | 用于多协议处理的存储系统和方法 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11237902B2 (en) * | 2019-03-15 | 2022-02-01 | Innogrit Technologies Co., Ltd. | Systems and methods for an ECC architecture with memory mapping |
KR20220042649A (ko) * | 2020-09-28 | 2022-04-05 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110153976A1 (en) * | 2009-12-22 | 2011-06-23 | Eric Brandon Tamura | Methods and apparatuses to allocate file storage via tree representations of a bitmap |
US20110231594A1 (en) * | 2009-08-31 | 2011-09-22 | Hitachi, Ltd. | Storage system having plurality of flash packages |
US20140195725A1 (en) * | 2013-01-08 | 2014-07-10 | Violin Memory Inc. | Method and system for data storage |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101997572B1 (ko) | 2012-06-01 | 2019-07-09 | 삼성전자주식회사 | 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 쓰기 방법 |
KR102285462B1 (ko) | 2014-03-26 | 2021-08-05 | 삼성전자주식회사 | 불휘발성 메모리 및 메모리 컨트롤러를 포함하는 메모리 시스템의 동작 방법 |
US10289551B2 (en) * | 2017-05-11 | 2019-05-14 | Western Digital Technologies, Inc. | Preserving data upon a power shutdown |
-
2018
- 2018-08-06 KR KR1020180091321A patent/KR20200016076A/ko not_active Application Discontinuation
-
2019
- 2019-03-01 US US16/289,833 patent/US10846022B2/en active Active
- 2019-06-04 CN CN201910481137.6A patent/CN110806983B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110231594A1 (en) * | 2009-08-31 | 2011-09-22 | Hitachi, Ltd. | Storage system having plurality of flash packages |
US20110153976A1 (en) * | 2009-12-22 | 2011-06-23 | Eric Brandon Tamura | Methods and apparatuses to allocate file storage via tree representations of a bitmap |
US20140195725A1 (en) * | 2013-01-08 | 2014-07-10 | Violin Memory Inc. | Method and system for data storage |
Non-Patent Citations (1)
Title |
---|
李江: ""TLSF动态内存分配算法的研究与应用"" * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114730301A (zh) * | 2020-04-17 | 2022-07-08 | 西部数据技术公司 | 用于多协议处理的存储系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
KR20200016076A (ko) | 2020-02-14 |
US20200042243A1 (en) | 2020-02-06 |
CN110806983B (zh) | 2023-04-07 |
US10846022B2 (en) | 2020-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110825319B (zh) | 基于块状态确定可用性的存储器系统及操作方法 | |
CN109284202B (zh) | 控制器及其操作方法 | |
US10817418B2 (en) | Apparatus and method for checking valid data in memory system | |
US11036421B2 (en) | Apparatus and method for retaining firmware in memory system | |
CN110806984B (zh) | 在存储器系统中搜索有效数据的设备和方法 | |
CN110825659B (zh) | 用于检查存储器系统中的块中的有效数据的设备和方法 | |
US11138080B2 (en) | Apparatus and method for reducing cell disturb in an open block of a memory system during a recovery procedure | |
CN110806837B (zh) | 数据处理系统及其操作方法 | |
US20200034081A1 (en) | Apparatus and method for processing data in memory system | |
CN112148208B (zh) | 在休眠模式下传送存储器系统的内部数据的设备和方法 | |
CN108733616B (zh) | 包括多处理器的控制器及其操作方法 | |
CN113900586A (zh) | 存储器系统及其操作方法 | |
CN112199038A (zh) | 基于i/o吞吐量确定缓冲器使用的存储器系统及其操作方法 | |
CN110895448A (zh) | 用于管理存储器系统中的有效数据的设备和方法 | |
US11656785B2 (en) | Apparatus and method for erasing data programmed in a non-volatile memory block in a memory system | |
CN110806983B (zh) | 存储器系统及其操作方法 | |
CN111435334B (zh) | 在存储器系统中检查有效数据的设备和方法 | |
CN109426448B (zh) | 存储器系统及其操作方法 | |
CN109407968B (zh) | 存储器系统及其操作方法 | |
CN112230841A (zh) | 提高存储器系统的输入/输出吞吐量的设备和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |