CN110825659A - 用于检查存储器系统中的块中的有效数据的设备和方法 - Google Patents

用于检查存储器系统中的块中的有效数据的设备和方法 Download PDF

Info

Publication number
CN110825659A
CN110825659A CN201910748853.6A CN201910748853A CN110825659A CN 110825659 A CN110825659 A CN 110825659A CN 201910748853 A CN201910748853 A CN 201910748853A CN 110825659 A CN110825659 A CN 110825659A
Authority
CN
China
Prior art keywords
memory
block
data
logical unit
controller
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
Application number
CN201910748853.6A
Other languages
English (en)
Other versions
CN110825659B (zh
Inventor
李宗珉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SK Hynix Inc
Original Assignee
SK Hynix Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SK Hynix Inc filed Critical SK Hynix Inc
Publication of CN110825659A publication Critical patent/CN110825659A/zh
Application granted granted Critical
Publication of CN110825659B publication Critical patent/CN110825659B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7209Validity control, e.g. using flags, time stamps or sequence numbers

Abstract

本发明提供一种存储器系统,该存储器系统包括:存储器装置,包括存储数据的多个存储块;以及控制器,被配置成将存储块划分成多个逻辑单元块,顺序地将存储块的有效页面计数与每个逻辑单元块的映射数据计数进行比较,并且基于比较结果确定用于垃圾收集操作的每个逻辑单元块的数据有效性。

Description

用于检查存储器系统中的块中的有效数据的设备和方法
相关申请的交叉引用
本专利申请要求于2018年8月14日提交的申请号为10-2018-0094934的韩国专利申请的优先权,该韩国专利申请的全部公开内容通过引用并入本文。
技术领域
本发明的各个实施例涉及一种存储器系统,并且更特别地,涉及一种用于通过使用非易失性存储器装置中包括的、能够存储大量数据的存储块中的有效数据计数来确定用于垃圾收集的牺牲块的设备和方法。
背景技术
近来,计算环境范例已经转变成能够随时随地访问计算机系统的普适计算。因此,诸如移动电话、数码相机、笔记本电脑等的便携式电子装置的使用正迅速增加。这种便携式电子装置通常使用或包括使用或嵌入至少一个存储器装置的存储器系统,即数据存储装置。数据存储装置可以用作便携式电子装置的主存储装置或辅助存储装置。
与硬盘不同,因为使用非易失性半导体存储器装置的数据存储装置不具有机械驱动部件(例如,机械臂),所以使用非易失性半导体存储器装置的数据存储装置的优点在于具有优异的稳定性和耐用性,并且具有高数据访问速度和低功耗。在具有这些优点的存储器系统的背景下,示例性数据存储装置包括USB(通用串行总线)存储器装置、具有各种接口的存储卡、固态驱动器(SSD)等。
发明内容
本公开的实施例可以提供一种存储器系统、数据处理系统和操作进程或方法,可以通过降低存储器系统的操作复杂性和性能劣化来快速且可靠地将数据处理到存储器装置中,从而提高存储器装置的使用效率。
本公开的实施例可以提供一种能够简化用于选择并确定数据存储块之中的存储无效数据的块的过程以便释放块以使块变为空闲块的设备和方法。可以提供一种可以减少选择并确定哪个块是存储无效数据的块所需的时间的方法和设备。
在实施例中,提供一种用于将块划分成多个逻辑单元块以管理块的控制方法,其增加了大容量存储器装置中的数据存储容量。当确定不能进一步对块进行编程时,存储器系统可以将每个逻辑单元块的物理地址的数量与块的有效数据计数进行比较,并且当有效数据的比值在设定范围内时,存储器系统可以执行用于验证数据有效性的操作,当比值超出设定范围时,存储器系统可以将块确定为垃圾收集的目标。
另外,实施例可以提供一种用于将块划分成多个逻辑单元块的设备和方法,其增加了大容量存储器装置中的数据存储容量,并且顺序地将块的有效页面计数(VPC)与每个逻辑单元块的映射数据计数进行比较,以便减少在垃圾收集期间识别有效数据所需的时间。
在实施例中,一种存储器系统可以包括:存储器装置,包括存储数据的多个存储块;以及控制器,被配置成将存储块划分成多个逻辑单元块,顺序地将存储块的有效页面计数与每个逻辑单元块的映射数据计数进行比较,并且基于比较结果确定用于垃圾收集操作的每个逻辑单元块的数据有效性。
通过示例而非限制的方式,当有效页面计数小于多个逻辑单元块中的选择的逻辑单元块的映射数据计数时,控制器可以确定存储在选择的逻辑单元块之后的至少一个逻辑单元块中的数据无效。此外,控制器被配置成对存储在选择的逻辑单元块中的数据执行有效性检查操作。
例如,控制器被配置成当有效页面计数大于选择的逻辑单元块的映射数据计数时,从有效页面计数中减去选择的逻辑单元块的映射数据计数,并且将减后的有效页面计数与接在选择的逻辑单元块之后的另一逻辑单元块的映射数据计数进行比较。控制器可以被配置成对存储在另一逻辑单元块中的数据执行有效性检查操作。
控制器可以被配置成当有效页面计数等于映射数据计数时,确定存储在选择的逻辑单元块中的所有数据有效,并且确定存储在选择的逻辑单元块之后的至少一个逻辑单元块中的数据无效。
例如,可以逐逻辑单元块地确定映射数据计数,并且映射数据计数是用于将物理地址与逻辑地址相关联的映射数据的数量。
包括至少两个逻辑单元块的存储块是作为单元一起可擦除的独特存储器单元组,并且逻辑单元块通过设定数量的映射数据来识别,设定数量的映射数据各自被分配给作为单元一起可编程的独特存储器单元组。
控制器被配置成当存储块在没有擦除操作的情况下不可编程时,将有效页面计数与多个逻辑单元块的映射数据的总数量进行比较。控制器被配置成选择多个存储块之中的、有效页面计数和映射数据的总数量之间的差值最大的至少一个存储块,并且检查存储在选择的存储块中的映射数据的有效性。
例如,控制器可以被配置成优先指定多个存储块之中的存储块作为用于垃圾收集操作的牺牲块,指定的存储块中的多个逻辑单元块的有效映射数据的总数量与指定的存储块中的页面的数量的比值最小。
在另一实施例中,一种存储器系统的操作方法可以包括:将存储数据的多个存储块中的每一个划分成多个逻辑单元块;当多个存储块中的至少一个存储块在没有擦除操作的情况下不可编程时,确定是否执行垃圾收集操作;顺序地比较存储块的有效页面计数与存储块的每个逻辑单元块的映射数据计数;以及基于比较结果确定用于垃圾收集操作的每个逻辑单元块的数据有效性。
比较有效页面计数可以包括:将有效页面计数与在多个逻辑单元块之中顺序地选择的逻辑单元块的映射数据计数进行比较。
确定数据有效性可以包括:当有效页面计数小于选择的逻辑单元块的映射数据计数时,确定存储在选择的逻辑单元块之后的至少一个逻辑单元块中的数据无效;以及对存储在选择的逻辑单元块中的数据执行有效性检查操作。
确定数据有效性可以包括:当有效页面计数大于选择的逻辑单元块的映射数据计数时,从有效页面计数中减去选择的逻辑单元块的映射数据计数;以及确定存储在选择的逻辑单元块中的数据有效。
确定数据有效性可以包括:将减后的有效页面计数与顺序地接在选择的逻辑单元块之后的另一逻辑单元块的映射数据计数进行比较;以及当减后的有效页面计数小于另一逻辑单元块的映射数据计数时,对存储在另一逻辑单元块中的数据执行有效性检查操作。
确定数据有效性可以包括:当有效页面计数等于选择的逻辑单元块的映射数据计数时,确定存储在选择的逻辑单元块中的所有数据有效;以及确定存储在选择的逻辑单元块之后的至少一个逻辑单元块中的数据无效。
确定是否执行垃圾收集操作可以包括:将关于每个存储块的有效页面计数与映射数据的总数量进行比较;选择有效页面计数与映射数据的总数量之间的差值最大的至少一个存储块;以及检查存储在选择的存储块中的映射数据的有效性。
确定是否执行垃圾收集操作可以包括:优先指定多个存储块之中的存储块作为用于垃圾收集操作的牺牲块,指定的存储块中的多个逻辑单元块的有效映射数据的总数量与指定的存储块中的页面的数量的比值最小。
在另一实施例中,提供一种用于控制存储器系统的设备,该设备包括至少一个处理器和至少一个存储器,至少一个存储器包括计算机程序代码。至少一个存储器和计算机程序代码与至少一个处理器一起配置以使设备:将存储数据的多个存储块中的每一个划分成多个逻辑单元块;当多个存储块中的至少一个存储块在没有擦除操作的情况下不可编程时,确定是否执行垃圾收集操作;顺序地将存储块的有效页面计数与存储块的每个逻辑单元块的映射数据计数进行比较;并且基于比较结果确定用于垃圾收集操作的每个逻辑单元块的数据有效性。
在另一实施例中,一种存储器系统可以包括:非易失性存储器装置,包括物理块,物理块包括顺序的多个逻辑单元块;以及控制器,被配置成:控制非易失性存储器装置将数据顺序地编程到物理块内的物理页面中,并且当多个逻辑单元块之中的当前逻辑单元块的有效映射数据的数量大于或等于物理块的剩余有效页面计数时,将与多个逻辑单元块之中的随后逻辑单元块对应的数据确定为无效,其中剩余有效页面计数是物理块的总有效页面计数减去一个或多个先前逻辑单元块的有效映射数据的数量,并且其中有效映射数据表示物理页面和逻辑页面彼此有效映射。
附图说明
本文的描述参照附图,其中相同的附图标记在所有附图中表示相同的部件,并且其中:
图1示出根据本公开的实施例的存储器系统中的垃圾收集;
图2示出包括根据本公开的实施例的存储器系统的数据处理系统;
图3示出根据本公开的实施例的存储器系统;
图4和图5示出根据本公开的实施例的执行与多个命令对应的多个命令操作的存储器系统;
图6示出根据本公开的实施例的包括控制器和非易失性存储器装置的存储器系统;
图7示出根据本公开的实施例的控制器中用于控制元数据的方法;
图8示出将映射数据存储在根据本公开的实施例的存储器系统中;
图9示出用于将数据编程在存储器装置的块中并且生成映射数据的操作;
图10示出用于在垃圾收集期间在存储器装置的块中搜索有效数据的方法;
图11示出根据本公开的实施例的存储器系统的操作方法;
图12示出根据本公开的另一实施例的存储器系统的操作方法;以及
图13至图21是示意性地示出包括根据本公开的实施例的存储器系统的其它数据处理系统的框图。
具体实施方式
以下参照附图更详细地描述本公开的各个实施例。然而,本公开的元件和特征可以不同地配置或布置以形成其它实施例,其它实施例可以是所公开的实施例中的任意一个的变型。因此,本发明不限于本文阐述的实施例。而是,提供所描述的实施例使得本公开彻底且完整,并且将本公开的范围充分地传达给本发明所属领域的技术人员。注意的是,对“实施例”、“另一实施例”等的参考不一定仅针对一个实施例,并且对任意这种短语的不同参考不一定针对相同的实施例。
将理解的是,虽然术语“第一”、“第二”、“第三”等可以在本文中用于标识各个元件,但是这些元件不受这些术语限制。这些术语用于将一个元件与另一元件区分开,否则一个元件与另一元件具有相同或相似的名称。因此,在不脱离本发明的精神和范围的情况下,一个示例中的第一元件也可以在另一示例中被称为第二元件或第三元件。
附图不一定按比例绘制,并且在一些情况下,为了清楚地示出实施例的特征,比例可能已经被夸大。当元件被称为连接或联接到另一元件时,应理解的是,前者可以直接连接或联接到后者,或者通过其间的中间元件电连接或联接到后者。另外,还将理解的是,当元件被称为在两个元件“之间”时,该元件可以是该两个元件之间仅有的元件,或者也可以存在一个或多个中间元件。
本文使用的术语仅用于描述特定实施例的目的,并不旨在限制本发明。如本文使用的,单数形式也旨在包括复数形式,反之亦然,除非上下文另有清楚地说明。除非另有说明或由上下文清楚地指向单数形式,否则本申请和所附权利要求书中使用的冠词“一”和“一个”通常应被解释为表示“一个或多个”。
将进一步理解的是,当在本说明书中使用术语“包括”、“包括有”、“包含”和“包含有”时,指明所陈述元件的存在,并不排除一个或多个其它元件的存在或添加。如本文所使用的,术语“和/或”包括一个或多个相关所列项目的任意一个和全部组合。
除非另有定义,否则本文所使用的包括技术术语和科学术语的所有术语具有与本发明所属领域的技术人员鉴于本公开所通常理解的含义相同的含义。将进一步理解的是,诸如在常用词典中定义的那些术语的术语应被理解为具有与其在本公开的上下文和相关领域中的含义一致的含义,并且不应以理想化或过于正式的意义来解释,除非本文如此明确地定义。
在下面的描述中,为了提供对本发明的透彻理解,描述了大量具体细节。可以在没有一些或全部这些具体细节的情况下实践本发明。在其它情况下,为了避免不必要地模糊本发明,未详细地描述公知的进程结构和/或进程。
也应注意的是,在一些情况下,对相关领域的技术人员显而易见的是,结合一个实施例描述的特征或元件可以单独使用或与另一实施例的其它特征或元件结合使用,除非另有明确说明。
现在将参照附图详细描述本公开的实施例,其中相同的附图标记表示相同的元件。
在图1中,描述根据本公开的实施例的存储器系统110。存储器系统110可以包括控制器130和存储器装置150。存储器系统110可以与例如计算装置的另一装置接合。
参照图1,垃圾收集(GC)可以在没有从主机102(参见图2)传送的命令或指令的情况下由存储器系统自行执行。存储器系统110中的控制器130可以从存储器装置150的多个数据块40_1读取用户数据、将用户数据临时存储在设置在控制器130内或者直接与控制器130接合并由控制器130控制的存储器144中,并且将加载在存储器144中的用户数据编程到存储器装置150的空闲块40_2中。此处,多个数据块40_1可以包括在没有擦除的情况下不能再编程新数据的块。
具体地,控制器130中包括的垃圾收集控制电路196可以选择存储器装置150中的多个数据块40_1中的至少一个作为牺牲块。另外,垃圾收集控制电路196在被选择作为牺牲块的存储块中搜索并提取有效数据,并将有效数据移动到作为目标块的空闲块40_2。可以丢弃存储器装置150中的多个数据块40_1之中的至少一个牺牲块中的、被确定为不再有效的数据(即,该数据可不被移动到空闲块40_2)。当存储在存储器装置150中的特定块40_1中的有效数据被移动到空闲块40_2时,控制器130认为特定块40_1不再具有有效数据。此后,当需要在特定块40_1中编程新数据时,可以擦除存储在对应块40_1中的所有数据。
如在本公开中所使用的,术语“电路”是指以下中的全部:(a)仅硬件电路实施方案(诸如仅模拟和/或数字电路的实施方案);(b)电路和软件(和/或固件)的组合,诸如(如适用):(i)处理器的组合或(ii)(包括一起工作以使诸如移动电话或服务器的设备执行各种功能的数字信号处理器、软件和存储器的)处理器/软件的部分;以及(c)需要软件或固件(即使软件或固件并非物理地存在)来进行操作的电路,诸如微处理器或微处理器的一部分。“电路”的这种定义适用于该术语在本申请中的所有应用,包括在任意权利要求中的应用。作为另外的示例,如在本申请中所使用的,术语“电路”还涵盖仅处理器(或多个处理器)或处理器的部分及处理器(或多个处理器)附带的软件和/或固件的实施方案。例如,如果术语“电路”适用于特定的权利要求元件,则术语“电路”还涵盖用于存储装置的集成电路。
根据实施例,控制器130可以使用存储器144临时存储针对垃圾收集操作识别并选择的有效数据,直到有效数据被编程到空闲块40_2中。
为了实现垃圾收集,控制器130应将存储在多个数据块40_1中的有效数据与无效数据区分开。关于与每个数据块40_1对应的有效页面计数(VPC)的信息指示每个数据块40_1中存储多少有效数据(例如,有效页面的数量),但是可能不会指示哪个数据或哪个页面有效。因此,可能需要控制器130至少基于有效页面计数以及诸如与存储在对应存储块中的数据相关联的元数据或映射数据的其它操作信息来确定哪个数据(或哪个页面)有效。如果针对垃圾收集操作待传输或存储到空闲块40_2中的有效数据可以被容易地区分,则可以减少资源(例如,时间和功率)。
存储器装置150内部的多个存储块40_1、40_2可以存储大量数据。控制器130可以将存储块划分成多个逻辑单元块,以便更有效地控制并管理能够存储大量数据的多个存储块40_1、40_2。当单个存储块被划分成多个逻辑单元块时,控制器130可以针对每个逻辑单元块生成或管理映射数据(例如,L2P表、P2L表)。
根据实施例,存在将单个存储块划分成若干逻辑单元块的不同方式。例如,可以基于存储器装置150的结构、映射数据的大小和/或映射数据的位置将块划分成若干逻辑单元块。存储器装置150中的每个存储块可以以多个页面为单元编程数据。可以存储在每个页面中的数据的大小可以根据每个存储块中包括的存储器单元的结构而改变。例如,当以位图格式创建映射数据时,可以将与映射数据的一倍或多倍对应的区域确定为逻辑单元块的大小。通过示例而非限制的方式,存储块可以包括至少两个逻辑单元块。存储块可以是作为单元一起可擦除的独特存储器单元组。逻辑单元块可以通过设定数量的映射数据来识别,设定数量的映射数据各自被分配给作为单元一起可编程的独特存储器单元组。
可以从数据块40_1中的第一页面到最后页面顺序地编程数据。当对存储块的最后页面编程数据时,存储块被封闭,也就是说,处于封闭状态,这表示不能再将新数据编程到该块中。当数据块40_1之中的特定块处于封闭状态时,垃圾收集控制电路196可以顺序地将与存储在每个逻辑单元块中的数据对应的映射数据的数量与对应块中的有效页面计数进行比较,以确定数据的有效性。
当存储器装置150中的数据块40_1变成封闭的使得在没有擦除操作的情况下不能再写入数据时,控制器130可以将有效页面计数与关于多个逻辑单元块的映射数据的总数量进行比较。当特定块中有效页面计数和映射数据的总数量不匹配(即,彼此不相等)时,可以估测对应块中包括至少一个不必要或无效的映射数据。控制器130可以检查与存储在存储块中的数据对应的映射数据是否有效。如果存在不再有效的映射数据,则控制器130可以删除、作废或无效该无效的映射数据,从而可以更新映射数据。
另一方面,垃圾收集控制电路196可以至少基于特定块中多个逻辑单元块的映射数据的总数量除以对应块中页面的总数量的比值来确定是否将特定块指定为用于垃圾收集的牺牲块。存储块中页面的数量是在存储器装置150的设计和制造期间确定的固定值。页面的数量可以表示单个存储块中可以存储的有效数据的最大量。当特定块被划分成多个逻辑单元块并且映射数据与存储在逻辑单元块中的每个数据项相关联时,对应块中的多个逻辑单元块的映射数据的总数量可以指示对应块中当前有效的数据的量。垃圾收集控制电路196可以基于一个存储块中的多个逻辑单元块的映射数据的总数量除以对应块中页面的有效页面计数的比值来识别每个块中有效数据的量。当特定块的比值较小时,垃圾收集控制电路196可以优先地确定该块为用于垃圾收集操作的牺牲块。另外,垃圾收集控制电路196可以至少基于上述比值是否在设定范围内来确定是否选择用于垃圾收集操作的牺牲块。
在图2中,描述根据本公开的实施例的数据处理系统100。参照图2,数据处理系统100可以包括与存储器系统110接合或互锁的主机102。
例如,主机102可以包括诸如移动电话、MP3播放器和膝上型计算机的便携式电子装置,或诸如台式计算机、游戏机、电视(TV)、投影仪等的电子装置。
主机102还包括通常可以管理并控制在主机102中执行的功能和操作的至少一个操作系统(OS)。OS可以提供与存储器系统110接合的主机102和需要并使用存储器系统110的用户之间的互操作性。OS可以支持与用户请求对应的功能和操作。通过示例而非限制的方式,根据主机102的移动性,OS可以分为通用操作系统和移动操作系统。根据系统要求或用户环境,通用操作系统可以分为个人操作系统和企业操作系统。包括Windows和Chrome的个人操作系统可以支持针对常规用途的服务。但是包括Windows Server、Linux、Unix等的企业操作系统可以专门用于确保并支持高性能。此外,移动操作系统可以包括Android、iOS、Windows Mobile等。移动操作系统可以支持针对移动性的服务或功能(例如,省电功能)。主机102可以包括多个操作系统。主机102可以对应于用户的请求来运行与存储器系统110互锁的多个操作系统。主机102可以将与用户的请求对应的多个命令传送至存储器系统110中,从而在存储器系统110内执行与命令对应的操作。稍后参照图4和图5描述在存储器系统110中处置多个命令。
存储器系统110可以响应于来自主机102的请求而操作或执行特定功能或操作,并且特别地,可以存储待由主机102访问的数据。存储器系统110可以用作主机102的主存储器系统或辅助存储器系统。根据主机接口的协议,存储器系统110可以利用可以与主机102电联接的各种类型的存储装置中的任意一种来实施。合适的存储装置的非限制性示例包括固态驱动器(SSD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、尺寸减小的MMC(RS-MMC)、微型MMC、安全数字(SD)卡、迷你SD卡、微型SD卡、通用串行总线(USB)存储装置、通用闪存(UFS)装置、紧凑型闪存(CF)卡、智能媒体(SM)卡、记忆棒等。
用于存储器系统110的存储装置可以利用例如动态随机存取存储器(DRAM)和静态RAM(SRAM)的易失性存储器装置和/或诸如只读存储器(ROM)、掩模ROM(MROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、铁电RAM(FRAM)、相变RAM(PRAM)、磁阻RAM(MRAM)、电阻式RAM(RRAM或ReRAM)和闪速存储器的非易失性存储器装置来实施。
存储器系统110可以包括控制器130和存储器装置150。存储器装置150可以存储待由主机102访问的数据。控制器130可以控制数据在存储器装置150中的存储。
控制器130和存储器装置150可以被集成到单个半导体装置中,该单个半导体装置可以包括在如上所例示的各种类型的存储器系统中的任意一个中。
通过示例而非限制的方式,控制器130和存储器装置150可以被集成到单个半导体装置中。控制器130和存储器装置150可以被如此集成到SSD中以提高操作速度。当存储器系统110用作SSD时,连接到存储器系统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可以向主机102提供从存储器装置150读取的数据。控制器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是可以通过被称为主机接口层(HIL)的固件来实施的、用于与主机102交换数据的组件。
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)码、trubo码、里德-所罗门(Reed-Solomon,RS)码、卷积码、递归系统码(RSC)、网格编码调制(TCM)、分组编码调制(BCM)等。ECC组件138可以包括用于基于上述码中的至少一种执行错误校正操作的所有电路、模块、系统或装置。
PMU 140可以提供并管理控制器130中的电力。
存储器接口142可以用作用于处置在控制器130和存储器装置150之间传输的命令和数据的接口,以允许控制器130响应于从主机102传递的请求来控制存储器装置150。在当存储器装置150是闪速存储器时并且特别地当存储器装置150是NAND闪速存储器时的情况下,在处理器134的控制下,存储器接口142可以生成用于存储器装置150的控制信号并且可以处理输入到存储器装置150中或从存储器装置150输出的数据。存储器接口142可以提供接口,以用于处置控制器130和存储器装置150之间的命令和数据,例如NAND闪存接口的操作,特别是控制器130和存储器装置150之间的操作。根据实施例,存储器接口142可以通过被称为闪存接口层(FIL)的固件而实施为用于与存储器装置150交换数据的组件。
存储器144可以支持由存储器系统110和控制器130执行的操作。存储器144可以存储为存储器系统110和控制器130中的操作而产生或传递的临时数据或事务数据。控制器130可以响应于来自主机102的请求来控制存储器装置150。控制器130可以将从存储器装置150读取的数据传递至主机102中。控制器130可以将通过主机102输入的数据存储在存储器装置150内。存储器144可以用于存储控制器130和存储器装置150执行诸如读取操作或编程操作/写入操作的操作所需的数据。
存储器144可以利用易失性存储器来实施。存储器144可以利用静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)或两者来实施。虽然图1例示了设置在控制器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)操作。后台操作可以包括将存储在存储块152、154、156……中的至少一个中的数据移动或交换到存储块152、154、156……中的至少另一个中的操作,例如损耗均衡(WL)操作。在后台操作期间,控制器130可以使用处理器134来将存储在控制器130中的映射数据存储到存储器装置150中的存储块152、154、156……中的至少一个,例如映射清除(flush)操作。在存储块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包括闪存转换层(FTL)140以及先前结合图2标识的主机接口132、存储器接口142和存储器144。
虽然未在图3中示出,但是根据实施例,图2中描述的ECC组件138可以包括在FTL140中。在另一实施例中,ECC组件138可以被实施为包括在控制器130中或与控制器130相关联的单独的模块、电路、固件等。
主机接口132用于处置从主机102传送的命令、数据等。通过示例而非限制的方式,主机接口132可以包括命令队列56、缓冲器管理器52和事件队列54。命令队列56可以顺序地存储从主机102传送的命令、数据等,并且以存储的顺序将该命令、数据等输出至缓冲器管理器52。缓冲器管理器52可以分类、管理或调整从命令队列56传递的命令、数据等。事件队列54可以顺序地传送用于处理从缓冲器管理器52传送的命令、数据等的事件。
相同特性的多个命令或数据可以从主机102被连续传送至存储器系统110,或者不同特性的命令和数据可以在混合或混杂之后被传送至存储器系统110。例如,用于读取数据的多个命令(读取命令)可以被传递至存储器系统110,或者用于读取数据的命令(读取命令)以及用于编程/写入数据的命令(写入命令)可以被交替地传送至存储器系统110。主机接口132可以将从主机102传送的命令、数据等顺序地存储至命令队列56。此后,主机接口132可以根据从主机102传送的命令、数据的特性以及其它相关信息来估测或预测控制器130将执行何种操作。主机接口132可以至少基于命令、数据等的特性,确定命令、数据等的处理顺序和优先级。根据从主机102传送的命令、数据等的特性,主机接口132中的缓冲器管理器52被配置成确定缓冲器管理器是否应将命令、数据等存储在存储器144中,或者缓冲器管理器是否应将命令、数据等传递至FTL 140。事件队列54接收待由存储器系统110或控制器130响应于从主机102传送的命令、数据等内部运行并处理的、从缓冲器管理器52输入的事件,以便以接收的顺序将事件传递至FTL 140。
根据实施例,图3中描述的主机接口132可以执行图1中描述的控制器130的功能。主机接口132可以将主机102中的存储器设置为从存储器,并且添加该存储器作为控制器130可控制或可使用的额外的存储空间。
根据实施例,FTL 140可以包括主机请求管理器(HRM)46、映射管理器(MM)44、状态管理器42和块管理器48。主机请求管理器(HRM)46可以管理从事件队列54输入的事件。映射管理器(MM)44可以处置或控制映射数据。状态管理器42可以执行垃圾收集或损耗均衡。块管理器48可以对存储器装置150中的块运行命令或指令。
通过示例而非限制的方式,主机请求管理器(HRM)46可以使用映射管理器(MM)44和块管理器48来根据从主机接口132传递的读取命令和编程命令以及事件处置或处理请求。主机请求管理器(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可以确定存储器装置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就可以执行映射更新操作以确保准确性。
根据实施例,状态管理器42可以包括图1中所示的垃圾收集控制电路196。
存储器装置150可以包括多个存储块。根据块的一个存储器单元中可以存储或表达的位的数量,多个存储块可以分为诸如单层单元(SLC)存储块、多层单元(MLC)存储块等不同类型的存储块。此处,SLC存储块包括由存储器单元实施的多个页面,其中每个存储器单元存储一位数据。SLC存储块可以具有高数据I/O操作性能和高耐用性。MLC存储块包括由存储器单元实施的多个页面,其中每个存储器单元存储多位(例如,两位或更多位)数据。MLC存储块可以在相同的空间中比SLC存储块具有更大的存储容量。在存储容量方面,MLC存储块可以高度集成。在实施例中,存储器装置150可以利用诸如MLC'存储块、三层单元(TLC)存储块、四层单元(QLC)存储块及其组合的MLC存储块来实施。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中的多个存储块中,与多个存储块中存储的写入数据对应地更新映射数据,并且将更新的映射数据存储在多个存储块中。在本公开的实施例中,执行与从主机102输入的多个写入命令对应的编程操作。此外,在本公开的实施例中,从主机102输入针对存储在存储器装置150中的数据的多个读取命令,通过检查与读取命令对应的数据的映射数据从存储器装置150读取与读取命令对应的数据,将读取数据存储在控制器130的存储器144中的缓冲器/高速缓存中,并且将存储在缓冲器/高速缓存中的数据提供至主机102。换言之,根据本公开的实施例,描述了以下情况:执行与从主机102输入的多个读取命令对应的读取操作。另外,根据本公开的实施例,描述了以下情况:从主机102接收针对存储器装置150中的存储块的多个擦除命令,与擦除命令对应地检查存储块,擦除存储在所检查的存储块中的数据,与擦除的数据对应地更新映射数据,并且将更新的映射数据存储在存储器装置150中包括的多个存储块中。更一般地,描述了以下情况:执行与从主机102接收的多个擦除命令对应的擦除操作。
此外,虽然在控制器130在存储器系统110中执行命令操作的背景下给出以下描述,但是将注意的是,如上所述,控制器130中的处理器134可以通过例如FTL在存储器系统110中执行命令操作。而且,在本公开的实施例中,控制器130将与从主机102输入的写入命令对应的用户数据和元数据编程并存储在存储器装置150中的多个存储块之中的存储块中,从多个存储块之中的存储块读取与从主机102接收的读取命令对应的用户数据和元数据并且将读取数据提供至主机102,或将与从主机102输入的擦除命令对应的用户数据和元数据从多个存储块之中的存储块擦除。
元数据可以包括对应于编程操作存储在存储块中的数据的第一映射数据和第二映射数据,该第一映射数据包括逻辑/物理(L2P:逻辑到物理)信息(逻辑信息),该第二映射信息包括物理/逻辑(P2L:物理到逻辑)信息(物理信息)。而且,元数据可以包括关于与从主机102接收的命令对应的命令数据的信息、关于与命令对应的命令操作的信息、关于将执行命令操作的存储器装置150的存储块的信息、以及关于与命令操作对应的映射数据的信息。换言之,元数据可以包括与从主机102接收的命令对应的全部剩余信息和除用户数据外的数据。
也就是说,在本公开的实施例中,在控制器130从主机102接收多个写入命令的情况下,执行与写入命令对应的编程操作,并且将与写入命令对应的用户数据写入并存储在存储器装置150的存储块之中的已经执行擦除操作的空存储块、开放存储块或空闲存储块中。而且,将包括L2P映射表或L2P映射列表的第一映射数据和包括P2L映射表或P2L映射列表的第二映射数据写入并存储在存储器装置150的存储块之中的空存储块、开放存储块或空闲存储块中,其中第一映射数据中记录有存储在存储块中的用户数据的作为逻辑地址和物理地址之间的映射信息的逻辑信息,第二映射数据中记录有存储有用户数据的存储块的作为物理地址和逻辑地址之间的映射信息的物理信息。
此处,在从主机102输入写入命令的情况下,控制器130将与写入命令对应的用户数据写入并存储在存储块中。控制器130将存储在存储块中的用户数据的包括第一映射数据和第二映射数据的元数据存储在另一存储块中。特别地,对应于存储在存储器装置150的存储块中的用户数据的数据段,控制器130生成并更新第一映射数据的L2P段以及第二映射数据的P2L段作为元数据的元段之中的映射数据的映射段。控制器130将映射段存储在存储器装置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中不仅执行前台操作和后台操作,而且执行各个功能和操作。
参照图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存储在第一缓冲器150中,然后将数据段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。存储器管芯中的各个平面包括多个存储块,例如,N个块BLK0、BLK1、......、BLKN-1,每个块包括多个页面,例如,2M个页面。此外,存储器装置150包括与各个存储器管芯对应的多个缓冲器,例如,与存储器管芯0对应的缓冲器0、与存储器管芯1对应的缓冲器1、与存储器管芯2对应的缓冲器2以及与存储器管芯3对应的缓冲器3。
在执行与从主机102接收的多个命令对应的命令操作的情况下,将与命令操作对应的数据存储在存储器装置150中包括的缓冲器中。例如,在执行编程操作的情况下,将与编程操作对应的数据存储在缓冲器中,然后将该数据存储在存储器管芯的页面中。在执行读取操作的情况下,从存储器管芯的存储块中的页面读取与读取操作对应的数据,将该数据存储在缓冲器中,然后通过控制器130将该数据提供至主机102。
虽然下面描述了存储器装置150中的缓冲器设置在各个对应存储器管芯外部,但是注意的是,缓冲器可以设置在各个对应存储器管芯内部,并且进一步注意的是,缓冲器可以对应于各个存储器管芯中的各个平面或各个存储块。而且,虽然下面描述了存储器装置150中的缓冲器是页面缓冲器,但是注意的是,缓冲器可以是存储器装置150中的多个高速缓存或多个寄存器。
而且,存储器装置150中的多个存储块可以被分组为多个超级存储块,并且可以以多个超级存储块来执行命令操作。每个超级存储块可以包括存储块组,例如,第一存储块组中的存储块可以形成第一超级块并且第二存储块组中的存储块可以形成第二超级块。就这方面而言,当第一存储块组包括在某个第一存储器管芯的第一平面中时,第二存储块组可以包括在第一存储器管芯的第一平面或第二平面中或者包括在第二存储器管芯的平面中。
在本公开的实施例中,数据处理系统可以包括多个存储器系统。多个存储器系统110中的每一个可以包括控制器130和存储器装置150。在数据处理系统中,多个存储器系统110中的一个存储器系统可以是主存储器系统,其它存储器系统可以是从存储器系统。可以基于多个存储器系统110之间的争用(例如,资源竞争)来确定主存储器系统。当在数据处理系统中从主机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。为了执行从主机10请求的命令操作,控制器30从存储器装置40接收从主机10请求的数据并输出该数据,或者将从主机10传输的数据存储到存储器装置40中。存储器装置40包括能够存储数据的多个存储器单元。此处,存储器装置40的内部配置可以根据存储器装置40的特性、使用存储器系统20的目的、主机10所需的存储器系统20的规格等而改变。例如,图1至图5中所示的存储器装置150和图6的存储器装置40可以包括相同组件。另外,图1至图4中描述的控制器130和图6中所示的控制器30可以包括相同组件。
控制器30可以包括至少一个处理器34、主机接口36、存储器38和控制器接口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中。
虽然未示出,但是如图6中所描述的,随着存储器装置40中能够存储数据的存储器单元的数量增加,存储器装置40的内部结构可以变得更复杂。控制器30可以与传送或接收数据一起传送或接收根据存储器装置40的内部配置的连接信息。例如,在如图6中所示的存储器装置40中包括每个包括多个块的多个管芯的情况下,在控制器30和存储器装置40之间存在n个通道和m个通路(n或m是大于1的整数)。数据和连接信息可以经由n个通道和m个通路传输。然而,为了使控制器30从存储器装置40读取数据或将数据写入存储器装置40,根据存储器装置40的内部结构,可能需要额外的控制变量或控制信号。当存储器装置40中包括更多管芯时,执行操作所需的额外的信息变得更大。
例如,主机10和存储器系统20可以根据协议、系统通信方法或接口彼此交换命令、地址、数据等。因此,主机10可能不需要知道存储器系统20内的具体结构。当主机10将特定数据存储到存储器系统20或试图读取存储在存储器系统20中的数据时,主机10发送逻辑块地址(LBA)。此处,逻辑块地址(LBA)是逻辑块寻址方法,并且可以是用于说明记录在与计算装置相关联的存储装置中的数据块的位置的格式。例如,在传统硬盘的情况下,使用指示硬盘中包括的诸如磁柱、磁头和扇区(Cylinder-Head-Sector,CHS)的物理结构的寻址方法。然而,随着硬盘的存储容量增加,与硬盘的物理结构对应的地址系统已达到极限。在这样的大容量存储装置中,可以以扇区按逻辑顺序排列成行并且扇区被编号(例如,以从0开始的序列)的方式来指定地址,而不管硬盘的物理结构如何。存储器系统20中包括的控制器30可以存储并管理物理地址,而不是主机10仅将数据传输到或指向逻辑块地址(LBA),其中该物理地址是存储器装置40中实际存储数据的地址。需要匹配并管理主机10使用的逻辑块地址(LBA)。这样的信息可以包括在元数据中,并且可以与主机10存储或读取的用户数据区分开。
随着存储器装置40中可以存储的数据的量增加,可能需要对元数据进行有效管理。而且,随着存储器装置40中包括的多个块的大小增加,可以存储的数据的量增加,并且元数据的量也增加。这增加了维护并管理存储器装置40中存储的数据所需的资源(例如,时间),从而可能需要用于提高存储器系统20的操作效率、稳定性或可靠性的设备和方法。
根据实施例,存储器系统20可以包括存储器装置40,该存储器装置40包括能够存储数据的多个块。另外,存储器系统20可以包括控制器30,该控制器30被配置成将每个块划分成多个逻辑单元块。控制器30可以将块的有效页面计数与每个逻辑单元块的映射数据的数量进行比较,检查映射数据是否以与将数据编程在块中的顺序相反的顺序重复,并且删除或废除旧的重复的映射数据。可以对具有在没有擦除操作的情况下不能再写入数据的状态(例如,封闭状态)的特定块执行由控制器30比较、验证和删除以调整映射数据的过程。
当从主机10输入的命令重复需要利用与相同逻辑块地址对应的不同数据的多个编程操作时,控制器30可以将有效页面计数与映射数据的数量进行比较。根据实施例,数据可以从第一页面到最后页面顺序地存储在存储器装置40中的多个存储块中的每一个中。此处,块是执行擦除操作的单元。块中可以包括至少两个逻辑单元块。逻辑单元块可以是映射数据被一起分配或管理的最小单元。此处,映射数据可以包括用于将以每个块为单元分配的物理地址与由主机102使用的逻辑地址相关联的信息(物理到逻辑,P2L)。
图7示出可以由存储器系统的控制器执行的用于管理元数据的方法。在图7中,主机10可以将命令传输到存储器系统20(参见图6)以重复编程与相同逻辑块地址(LBA)相关联的数据。存储器系统20中的存储器装置40可以包括非易失性存储器装置(例如,闪速存储器)。如果存储器系统20可以将数据写入或编程到指定的物理位置,然后重写其它数据,则存储器系统20可以在存储器装置40的相同位置处重复重写具有相同逻辑块地址(LBA)的从主机10输入的不同数据。然而,在诸如存储器系统20的存储器装置40的非易失性存储器装置(例如,闪速存储器)中,不可以在相同位置处重写数据,因此必须在新的(不同的)位置处编程数据。
参照图7,控制器30可以接收从主机10传送的数据、逻辑块地址和编程命令。控制器30可以响应于编程命令将逻辑块地址转换成物理块地址(52)。此处,控制器30接收的逻辑块地址可以是主机10识别并使用的逻辑地址或逻辑块地址(LBA)。例如,逻辑地址是用于识别顺序排列在整个用户数据存储装置中的扇区、空间或区域中的一个的指示符。例如,特定逻辑块地址(LBA)可以被转换成存储器系统的存储器装置40中的物理块地址。通过示例而非限制的方式,这种地址转换可以通过实施上述FTL的固件来实现。
当存储器系统存储更大量的用户数据时,每个块(例如,BLK_3)具有更大的大小。因此,存储器装置40中的存储块(例如,BLK_3)可以被划分成多个逻辑单元块LUB_0至LUB_n(54)。可以基于逻辑单元块,也就是说,逐逻辑单元块地来控制或管理一些操作。例如,块BLK_3可以包括“n”个逻辑单元块LUB_0至LUB_n。此处,“n”是2或更大的自然数。每个逻辑单元块(例如,LUB_1)可以包括“m”个页面PG_0到PG_m,其中m是2或更大的自然数。
根据实施例,各个映射数据可以被分派或分配给每个逻辑单元块。在实施例中,可以生成用于将对应于每个逻辑单元块的物理地址与逻辑地址匹配的物理到逻辑(P2L)映射表,以确定存储在逻辑单元块中包括的多个页面中的每一个中的数据是否有效。
图8示出将映射数据存储在存储器系统中。在图8中,存储器系统110可以包括控制器130和存储器装置150。具体地,控制器130可以包括映射数据管理电路198和存储器144。此外,存储器装置150可以包括非易失性存储器装置。考虑到存储器装置150的特性,控制器130可以生成与存储在用户数据块50_1中的用户数据相关联的映射数据。此外,将生成的映射数据存储在存储器装置150中,然后控制器130可以使用映射数据来识别用户数据的位置和/或验证用户数据是否有效。
参照图4、图6和图8,映射数据可以分为两种类型。一种类型包括使主机使用的逻辑地址与存储器装置中使用的物理地址接合的第一地址信息源(例如,L2P映射表)。另一种类型包括使存储器装置中使用的物理地址与主机使用的逻辑地址接合的第二地址信息源(例如,P2L映射表)。
包括第一地址信息源和第二地址信息源的映射数据可以与用户数据一起存储在存储器装置150中。根据实施例,参照图8,存储器装置150中用于存储用户数据的块50_1可以在物理上与用于存储映射数据的块50_2分开或分离。虽然未示出,但是控制器130可以将用户数据存储在一个块中的奇数编号页面中,并且将映射数据存储在相同块中的偶数编号页面中。
在不支持重写的存储器装置150中,当经由存储器144传递的新数据或不同数据被编程到用户数据块50_1中时,当加载到存储器144中的数据被更新并编程到用户数据块50_1中时,或当可以传输或移动用于垃圾收集或损耗均衡的数据时,可以连续地改变与特定逻辑地址对应的数据存储在存储器装置150中的位置。响应于这些改变,映射数据管理电路198可以更新第一地址信息源和第二地址信息源。映射数据管理电路198可以删除、作废或无效对第一地址信息源和第二地址信息源不再有效的映射数据。根据实施例,为了确定映射数据的有效性,映射数据管理电路198可以将第一地址信息源和第二地址信息源彼此进行比较(例如,交叉检查)。响应于编程操作,映射数据管理电路198可以生成更新的映射数据。更新的映射数据可以存储在存储映射数据的块50_2中。
图9示出用于将数据编程到存储器装置中的块中并且生成映射数据的操作。
参照图9,将描述用于将数据编程在存储器装置中的块BLK_1中的操作。此处,假设存储器装置中的块BLK_1包括八个逻辑单元块LUB_0至LUB_7。
可以从存储器装置中的块BLK_1的第一页面(即,第一逻辑单元块LUB_0的第一页面)到最后页面(即,第八逻辑单元块LUB_7的最后页面)顺序地编程数据。当编程数据时,可以生成与数据相关联的映射数据。在图9中,描述作为映射数据的示例的用于使物理数据与主机使用的逻辑地址接合的第二地址信息源(例如,P2L映射表)。
当从第一逻辑单元块LUB_0的第一页面到最后页面编程数据时,控制器130(参见图1至图3和图8)可以生成第二地址信息源(P2L映射表)。例如,第二地址信息源可以包括“C08”、“A30”、......、Null/Void、“1B4”、“3C7”等逻辑地址。第二地址信息源的逻辑地址可以分别对应于第一逻辑单元块LUB_0的顺序页面。也就是说,与第一逻辑单元块LUB_0的第一页面相关联的逻辑地址可以是“C08”。
当数据被编程到存储块BLK_1的第一逻辑单元块LUB_0至第八逻辑单元块LUB_7中时,控制器130可以确定存储器装置中的块BLK_1的有效页面计数(VPC)。根据实施例,有效页面计数(VPC)可以基于第一地址信息源(例如,L2P映射表)来确定,该第一地址信息源使主机使用的逻辑地址与存储器装置使用的物理地址接合。此处,可以假设存储器装置中的块BLK_1的有效页面计数(VPC)是90。
每当控制器130对存储器装置中的块BLK_1的第一逻辑单元块LUB_0至第八逻辑单元块LUB_7中的每一个的最后页面编程数据时,可以针对编程完成的逻辑单元块生成第二地址信息源(例如,P2L映射表)。每个逻辑单元块中的映射数据计数即映射数据的数量可以基于针对每个逻辑单元块生成的第二地址信息源(例如,P2L映射表)来确定。参照图9,第一逻辑单元块LUB_0的映射数据计数是40,并且第七逻辑单元块LUB_6的映射数据的数量是16。此处,当确定每个逻辑单元块的映射数据的数量时,可以不包括删除的、作废的或无效的映射数据。
根据实施例,从存储器装置中的块BLK_1的第一逻辑单元块LUB_0至第八逻辑单元块LUB_7的映射数据的总数量可以等于有效页面计数(VPC)。在这种情况下,可以推测所有映射数据都有效。然而,如果关于特定块BLK_1中的所有逻辑单元块的映射数据的总数量和特定块BLK_1中的有效页面计数(VPC)不相同,则发现与存储在存储器装置中的块BLK_1中的数据相关联的至少一些映射数据无效。控制器130可以执行用于检查映射数据的有效性的操作。例如,可以将控制器130生成的第一地址信息源和第二地址信息源彼此进行比较,或者可以确定在第二地址信息源内重复了一些映射数据。
图10示出用于在垃圾收集期间在块中搜索有效数据的方法。在图10中,将在与图9相同的背景下描述用于搜索有效数据的方法。
参照图10,可以从存储器装置中的块(BLK_1)的第一逻辑单元块(LUB_0)至第八逻辑单元块(LUB_7)顺序地执行对有效数据的搜索。
在图10中,假设存储器装置中的块BLK_1的有效页面的数量(BLK1的VPC)是90。还假设存储器装置的块BLK_1中包括的第一逻辑单元块LUB_0的映射数据计数是40。
由于第一逻辑单元块LUB_0的映射数据计数是40并且块BLK_1的有效页面计数(VPC)是90,因此块BLK_1的有效页面计数(VPC)大于第一逻辑单元块LUB_0的映射数据计数。当从块BLK_1的有效页面计数(VPC)中减去第一逻辑单元块LUB_0的映射数据计数(即,90-40)时,剩余有效页面计数(BLK1的剩余VPC)是“50”。推测存储在第一逻辑单元块LUB_0中并因此与第一逻辑单元块LUB_0的映射数据相关联的数据有效。
然后,可以将剩余有效页面计数(“50”,BLK1的剩余VPC)与第二逻辑单元块LUB_1的映射数据计数进行比较。推测第二逻辑单元块LUB_1的数据有效。可以将从第二逻辑单元块LUB_1至第七逻辑单元块LUB_6的剩余有效页面计数与每个逻辑单元块的映射数据计数顺序地相互比较。然后,可以认为存储在逻辑单元块中的数据可能有效。
在图10中,第七逻辑单元块LUB_6的映射数据计数是16,并且减去第六逻辑单元块的映射数据的数量后剩余有效页面计数是10。当从剩余有效页面计数中减去第七逻辑单元块LUB_6的映射数据计数(即,10-16)时,剩余有效页面计数“-6”小于零。在这种情况下,存储在第七逻辑单元块LUB_6中的至少一些数据无效。因此,可以检查存储在第七逻辑单元块LUB_6中的数据的映射数据有效性。
当因为从剩余有效页面计数中减去第七逻辑单元块LUB_6的映射数据计数(即,10-16),所以剩余有效页面计数“-6”小于零时,可以确定接在第七逻辑单元块LUB_6之后的第八逻辑单元块LUB_7中没有有效数据。在这种情况下,可能不需要用于检查关于第八逻辑单元块LUB_7的数据或映射数据的有效性的操作。
在参照图10描述的实施例中,针对第一逻辑单元块LUB_1至第七逻辑单元块LUB_6检查数据的有效性。在块BLK1中的至少一个另外的逻辑单元块(例如,第八逻辑单元块LUB_7)中,不需要搜索有效数据。当块BLK1被确定为垃圾收集的牺牲块时,可以跳过特定块BLK1中的至少一个逻辑单元块,从而可以减少用于在块BLK1中搜索有效数据所消耗的时间。
当从第一逻辑单元块LUB_0剩余的有效页面计数中减去第二逻辑单元块LUB_1的映射数据计数时,从第二逻辑单元块LUB_1剩余的有效页面计数可能小于零。在这种情况下,可以省略用于从第三逻辑单元块LUB_2至第八逻辑单元块LUB_7搜索有效数据或者检查映射数据的数量的操作。
另一方面,剩余有效页面计数可以等于逻辑单元块的映射数据计数。在这种情况下,可以确定存储在对应逻辑单元块中的所有数据都有效。如果剩余有效页面计数等于逻辑单元块的映射数据计数,则可以确定存储在该逻辑单元块之后的逻辑单元块中的数据无效。通过这些进程,可以大大减少用于检查存储在块中的数据的有效性的搜索范围。可以提高垃圾收集的操作速度。
图11示出根据本公开的另一实施例的存储器系统的操作方法。
参照图11,存储器系统的操作方法可以包括:将存储数据的多个块中的每一个划分成多个逻辑单元块(步骤82);顺序地将特定块的有效页面计数与特定块中包括的每个逻辑单元块的映射数据计数进行比较(步骤84);以及基于比较结果来确定每个逻辑单元块的数据有效性(步骤86)。虽然未在图11中示出,但是操作方法可以进一步包括:当多个块中的至少一个存储块在没有擦除操作的情况下不可编程时,确定是否执行垃圾收集操作。
可以对处于封闭状态的牺牲块执行垃圾收集操作。包括至少两个逻辑单元块的块是作为单元一起可擦除的独特存储器单元组。逻辑单元块可以通过一定数量的映射数据来识别,一定数量的映射数据各自被分配给作为单元一起可编程的独特存储器单元组。
根据实施例,在存储器装置中的多个块之中选择待进行垃圾收集操作的牺牲块的进程中,可以考虑每个块的有效页面计数和针对块中的多个逻辑单元块中的每一个生成的地址信息源。例如,确定是否执行垃圾收集的步骤(可以包括在步骤82中)可以包括以下步骤:当多个逻辑单元块的映射数据的总数量除以块中的页面的数量的比值较小时,将更高优先级分配给作为垃圾收集操作的牺牲块的特定块。此处,多个逻辑单元块的映射数据的总数量除以块中的页面的数量的比值可以对应于存储在块中的有效数据的比值。
虽然未示出,但是可以将特定块的有效页面计数与特定块中的多个逻辑单元块的映射数据的总数量进行比较以确定是否针对特定块执行垃圾收集。此外,可以确定特定块的映射数据是否有效。与存储在作为用于垃圾收集操作的牺牲块的块中的数据相关联的映射数据越准确,在执行垃圾收集操作的进程中检测有效数据就能够越快。为此,如果确定映射数据不准确或无效,则可以删除、作废或无效被确定为不准确或无效的一些映射数据。
当存储器装置中的多个块中的至少一个被选择作为用于垃圾收集操作的牺牲块时,需要确定存储在选择的块中的哪些数据有效。根据实施例,作为关于每个块的操作信息的有效页面计数(VPC)和针对块中的多个逻辑单元块中的每一个生成的映射数据计数可以用于确定存储在每个逻辑单元块中的数据可推测地有效。虽然未示出,但是顺序比较步骤84可以包括:将有效页面计数与从选择的牺牲块的多个逻辑单元块之中选择的单个逻辑单元块的映射数据的数量进行比较。可以顺序地将有效页面计数(VPC)与每个逻辑单元块的映射数据计数进行比较,这意味着关于存储在每个逻辑单元块中的数据的有效性的确定可以根据对该块的比较结果而不同。
例如,在数据有效性确定步骤86中,当逻辑单元块的映射数据的数量小于有效页面计数时,确定可以对该逻辑单元块执行用于检查数据有效性的操作。此外,当刚刚检查的逻辑单元块不是该块的最后逻辑单元块时,确定存储在位于刚刚检查的逻辑单元块之后的至少一个逻辑单元块中的数据不再有效。
另一方面,数据有效性确定步骤86可以包括:当逻辑单元块的映射数据计数大于剩余有效页面计数时,从剩余有效页面计数中减去逻辑单元块的映射数据计数。该示例可以与图10中的第一逻辑单元块LUB_0的数据有效性确定相似。之后,比较步骤84可以包括:将关于位于逻辑单元块之后的另一逻辑单元块的映射数据计数与在减去逻辑单元块的映射数据计数之后的剩余有效页面计数进行比较。这可以对应于图10中按照从第一逻辑单元块LUB_0至第七逻辑单元块LUB_6的顺序将映射数据计数和剩余有效页面计数顺序地相互比较的情况。但是,当逻辑单元块的映射数据计数大于剩余有效页面计数时,可以执行用于确定数据有效性的操作。这种情况可以与图10的关于第七逻辑单元块LUB_6的数据有效性确定的操作相似。
在数据有效性确定步骤86中,当单个逻辑单元块的映射数据计数等于剩余有效页面计数时,推测存储在该逻辑单元块中的所有数据有效,并且确定存储在下一逻辑单元块中的数据不再有效。
图12示出根据本公开的另一实施例的存储器系统的操作方法。
参照图12,在步骤91中,存储器系统可以选择用于垃圾收集操作的牺牲块。垃圾收集操作通常以存储器系统不处理从主机输入的命令的后台操作执行。垃圾收集操作可以既不在存储器装置中的多个块之中的空闲块中执行,也不在编程数据的开放块中执行。垃圾收集操作可以通过在处于封闭状态的块之中优先选择具有低百分比的有效数据的块来执行。根据实施例,可以首先基于数据滞留而不是存储在块中的有效数据的比值,在处于封闭状态的多个块之中选择牺牲块。
当垃圾收集操作开始时,存储器系统在选择的牺牲块内搜索有效数据。为此,在步骤93中,存储器系统可以将牺牲块的有效页面计数与牺牲块中的第N逻辑单元块的映射数据计数进行比较。N是自然数,并且N的初始值可以是1。也就是说,存储器系统可以顺序地将有效页面计数(或剩余有效页面计数)与从牺牲块中的第一逻辑单元块开始的映射数据计数进行比较。
在步骤95中,当比较指示有效页面计数大于第N逻辑单元块的映射数据计数时,存储器系统可以确定存储在第N逻辑单元块中的数据有效并且从有效页面计数中减去映射数据计数。在有效页面计数减少了映射数据计数之后,进程移动到下一逻辑单元块,即第N+1逻辑单元块。存储器系统可以将剩余有效页面计数与第N+1逻辑单元块的映射数据计数进行比较(步骤93)。
在步骤97中,当根据比较结果,映射数据计数大于(剩余)有效页面计数时,存储器系统可以确定已经执行了比较操作的逻辑单元块(第N逻辑单元块)中的数据有效性。在这种情况下,存储器系统可以通过检查数据有效性确定该逻辑单元块中的至少一些数据无效。
在步骤99中,当根据比较结果,(剩余)有效页面计数等于映射数据计数时,存储器系统可以确定已经执行了比较操作的逻辑单元块(第N逻辑单元块)的数据有效。
虽然未示出,但是在根据比较结果,映射数据计数大于或等于(剩余)有效页面计数的情况下,存储器系统可以确定牺牲块的剩余逻辑单元块,例如第N+1逻辑单元块至最后逻辑单元块未存储有效数据,因此存储器系统不搜索用于垃圾收集操作的有效数据。这些方法可以减少在垃圾收集操作期间找到并提取有效数据所需的资源(例如,时间、功率等)。
在图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和图3中所示的元件。
存储器控制器6120可以通过连接器6110与例如图2的主机102的外部装置通信。例如,如参照图1至图3所描述的,存储器控制器6120可以被配置成根据诸如以下的各种通信协议中的一种或多种与外部装置通信:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、高速PCI(PCIe)、高级技术附件(ATA)、串行ATA、并行ATA、小型计算机系统接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、火线、通用闪存(UFS)、WiFi以及蓝牙。因此,根据实施例的存储器系统和数据处理系统可以应用于有线/无线电子装置,特别是移动电子装置。
存储器装置6130可以由非易失性存储器来实施。例如,存储器装置6130可以由诸如以下的各种非易失性存储器装置来实施:可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、NAND闪速存储器、NOR闪速存储器、相变RAM(PRAM)、电阻式RAM(ReRAM)、铁电RAM(FRAM)和/或自旋转移矩磁性RAM(STT-MRAM)。如图5的存储器装置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。如参照图1和图2所描述的,图14中所示的数据处理系统6200可以用作诸如存储卡(CF、SD、微型SD等)或USB装置的存储介质。存储器装置6230可以对应于图1和图5所示的存储器系统110中的存储器装置150。存储器控制器6220可以对应于图1和图2所示的存储器系统110中的控制器130。
存储器控制器6220可以响应于主机6210的请求来控制对存储器装置6230的读取操作、写入操作或擦除操作。存储器控制器6220可以包括一个或多个CPU 6221、诸如RAM6222的缓冲存储器、ECC电路6223、主机接口6224以及诸如NVM接口6225的存储器接口。
CPU 6221可以控制对存储器装置6230的全部操作,例如读取操作、写入操作、文件系统管理操作和坏页面管理操作。RAM 6222可以根据CPU 6221的控制来操作。RAM 6222可以用作工作存储器、缓冲存储器或高速缓存存储器。当RAM 6222用作工作存储器时,通过CPU 6221处理的数据可以被临时存储在RAM 6222中。当RAM 6222用作缓冲存储器时,RAM6222可以用于缓冲从主机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交换数据。存储器控制器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和用于控制多个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。
图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之间的接口功能。例如,如参照图2所描述的,主机接口6431可以用作并行接口,例如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卡可以并联或以星型形式连接到主机6410。星型形式是单个集中式组件联接到多个装置以用于并行处理的一种布置。多个UFS卡可以并联或以星型形式连接到UFS装置6520,或者串联或以链型形式连接到UFS装置6520。
在图18所示的UFS系统6600中,主机6610、UFS装置6620和UFS卡6630中的每一个可以包括UniPro,并且主机6610可以通过执行交换操作的交换模块6640,例如,通过执行UniPro处的例如L3交换的链路层交换的交换模块6640,与UFS装置6620或UFS卡6630通信。UFS装置6620和UFS卡6630可以通过UniPro处的交换模块6640的链路层交换来彼此通信。在图18的实施例中,通过示例的方式示出一个UFS装置6620和一个UFS卡6630连接到交换模块6640的配置。然而,在另一实施例中,多个UFS装置和UFS卡可以并联或以星型形式连接到交换模块6640,并且多个UFS卡可以串联或以链型形式连接到UFS装置6620。
在图19所示的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集成为一个模块。在图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可以驱动例如OS的用户系统6900中包括的组件,并且包括控制用户系统6900中包括的组件的控制器、接口和图形引擎。应用处理器6930可以被设置为片上系统(SoC)。
存储器模块6920可以用作用户系统6900的主存储器、工作存储器、缓冲存储器或高速缓存存储器。存储器模块6920可以包括诸如DRAM、SDRAM、DDR SDRAM、DDR2 SDRAM、DDR3SDRAM、LPDDR SDARM、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闪存,并且存储模块6950可以被设置为用户系统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.根据权利要求2所述的存储器系统,其中所述控制器对存储在所述选择的逻辑单元块中的数据执行有效性检查操作。
4.根据权利要求1所述的存储器系统,其中当所述有效页面计数大于所述选择的逻辑单元块的映射数据计数时,所述控制器从所述有效页面计数中减去所述选择的逻辑单元块的映射数据计数,并且将减后的有效页面计数与接在所述选择的逻辑单元块之后的另一逻辑单元块的映射数据计数进行比较。
5.根据权利要求4所述的存储器系统,其中所述控制器对存储在所述另一逻辑单元块中的数据执行有效性检查操作。
6.根据权利要求1所述的存储器系统,其中当所述有效页面计数等于所述映射数据计数时,所述控制器确定存储在所述选择的逻辑单元块中的所有数据有效,并且确定存储在所述选择的逻辑单元块之后的至少一个逻辑单元块中的数据无效。
7.根据权利要求1所述的存储器系统,其中逐逻辑单元块地确定所述映射数据计数,并且所述映射数据计数是用于将物理地址与逻辑地址相关联的映射数据的数量。
8.根据权利要求1所述的存储器系统,其中包括至少两个逻辑单元块的所述存储块是作为单元一起可擦除的独特存储器单元组,并且所述逻辑单元块通过设定数量的映射数据来识别,设定数量的映射数据各自被分配给作为单元一起可编程的独特存储器单元组。
9.根据权利要求1所述的存储器系统,其中当所述存储块在没有擦除操作的情况下不可编程时,所述控制器将所述有效页面计数与所述多个逻辑单元块的映射数据的总数量进行比较。
10.根据权利要求9所述的存储器系统,其中所述控制器选择所述多个存储块之中的、有效页面计数和映射数据的总数量之间的差值最大的至少一个存储块,并且检查存储在选择的存储块中的映射数据的有效性。
11.根据权利要求1所述的存储器系统,其中所述控制器优先指定所述多个存储块之中的存储块作为用于所述垃圾收集操作的牺牲块,所指定的存储块中的多个逻辑单元块的有效映射数据的总数量与所指定的存储块中的页面的数量的比值最小。
12.一种存储器系统的操作方法,包括:
将存储数据的多个存储块中的每一个划分成多个逻辑单元块;
当所述多个存储块中的至少一个存储块在没有擦除操作的情况下不可编程时,确定是否执行垃圾收集操作;
顺序地比较所述存储块的有效页面计数与所述存储块的每个逻辑单元块的映射数据计数;以及
基于比较结果确定用于所述垃圾收集操作的每个逻辑单元块的数据有效性。
13.根据权利要求12所述的方法,其中比较所述有效页面计数包括:
将所述有效页面计数与在所述多个逻辑单元块之中顺序地选择的逻辑单元块的映射数据计数进行比较。
14.根据权利要求13所述的方法,其中确定所述数据有效性包括:
当所述有效页面计数小于所选择的逻辑单元块的映射数据计数时,确定存储在所选择的逻辑单元块之后的至少一个逻辑单元块中的数据无效;以及
对存储在所选择的逻辑单元块中的数据执行有效性检查操作。
15.根据权利要求13所述的方法,其中确定所述数据有效性包括:
当所述有效页面计数大于所选择的逻辑单元块的映射数据计数时,从所述有效页面计数中减去所选择的逻辑单元块的映射数据计数;以及
确定存储在所选择的逻辑单元块中的数据有效。
16.根据权利要求15所述的方法,其中确定所述数据有效性包括:
将减后的有效页面计数与顺序地接在所选择的逻辑单元块之后的另一逻辑单元块的映射数据计数进行比较;以及
当所述减后的有效页面计数小于所述另一逻辑单元块的映射数据计数时,对存储在所述另一逻辑单元块中的数据执行有效性检查操作。
17.根据权利要求13所述的方法,其中确定所述数据有效性包括:
当所述有效页面计数等于所选择的逻辑单元块的映射数据计数时,确定存储在所选择的逻辑单元块中的所有数据有效;以及
确定存储在所选择的逻辑单元块之后的至少一个逻辑单元块中的数据无效。
18.根据权利要求12所述的方法,其中确定是否执行垃圾收集操作包括:
将关于每个存储块的有效页面计数与映射数据的总数量进行比较;
选择所述有效页面计数与映射数据的总数量之间的差值最大的至少一个存储块;以及
检查存储在选择的存储块中的映射数据的有效性。
19.根据权利要求12所述的方法,其中确定是否执行垃圾收集操作包括:优先指定所述多个存储块之中的存储块作为用于所述垃圾收集操作的牺牲块,所指定的存储块中的多个逻辑单元块的有效映射数据的总数量与所指定的存储块中的页面的数量的比值最小。
20.一种用于控制存储器系统的设备,所述设备包括至少一个处理器和至少一个存储器,所述至少一个存储器包括计算机程序代码,其中所述至少一个存储器和所述计算机程序代码与所述至少一个处理器一起配置以使所述设备:
将存储数据的多个存储块中的每一个划分成多个逻辑单元块;
当所述多个存储块中的至少一个存储块在没有擦除操作的情况下不可编程时,确定是否执行垃圾收集操作;
顺序地将所述存储块的有效页面计数与所述存储块的每个逻辑单元块的映射数据计数进行比较;并且
基于比较结果确定用于垃圾收集操作的每个逻辑单元块的数据有效性。
CN201910748853.6A 2018-08-14 2019-08-14 用于检查存储器系统中的块中的有效数据的设备和方法 Active CN110825659B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020180094934A KR102649131B1 (ko) 2018-08-14 2018-08-14 메모리 시스템 내 대용량 데이터 저장이 가능한 블록에서의 유효 데이터 체크 방법 및 장치
KR10-2018-0094934 2018-08-14

Publications (2)

Publication Number Publication Date
CN110825659A true CN110825659A (zh) 2020-02-21
CN110825659B CN110825659B (zh) 2023-04-07

Family

ID=69524018

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910748853.6A Active CN110825659B (zh) 2018-08-14 2019-08-14 用于检查存储器系统中的块中的有效数据的设备和方法

Country Status (3)

Country Link
US (1) US10963160B2 (zh)
KR (1) KR102649131B1 (zh)
CN (1) CN110825659B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113190469A (zh) * 2021-05-13 2021-07-30 合肥康芯威存储技术有限公司 一种存储器、数据写入方法及存储系统

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11663136B2 (en) * 2020-06-24 2023-05-30 Western Digital Technologies, Inc. Storage capacity recovery source selection
US11868643B2 (en) * 2020-12-16 2024-01-09 Micron Technology, Inc. Background memory scan block selection
US11630727B2 (en) * 2021-03-24 2023-04-18 Micron Technology, Inc. Generating die block mapping after detected failure
JP2023044824A (ja) 2021-09-21 2023-04-03 キオクシア株式会社 メモリシステム
US11940925B2 (en) * 2021-12-29 2024-03-26 Micron Technology, Inc. Performing memory access operations with a logical-to-physical mapping table with reduced size
KR20240030819A (ko) * 2022-08-31 2024-03-07 삼성전자주식회사 스토리지 장치 및 스토리지 컨트롤러의 동작 방법

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101075211A (zh) * 2007-06-08 2007-11-21 马彩艳 基于sector访问的flash存储器的存储管理
US20110055455A1 (en) * 2009-09-03 2011-03-03 Apple Inc. Incremental garbage collection for non-volatile memories
CN102779095A (zh) * 2011-05-09 2012-11-14 索尼公司 闪存装置、存储器控制装置、存储器控制方法及存储系统
CN104298610A (zh) * 2009-09-03 2015-01-21 晶先锋科技有限公司 资料储存系统及其管理方法
US20150169237A1 (en) * 2013-12-17 2015-06-18 International Business Machines Corporation Method and device for managing a memory
US20160267004A1 (en) * 2015-03-09 2016-09-15 Amitai Perlstein Storage device including nonvolatile memory device and garbage collection method thereof
US20170052719A1 (en) * 2015-08-20 2017-02-23 Wipro Limited Methods and Systems for Memory Management in Storage Drives
CN107346213A (zh) * 2016-05-04 2017-11-14 爱思开海力士有限公司 存储器系统及其操作方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5586718B2 (ja) 2012-06-19 2014-09-10 株式会社東芝 制御プログラム、ホスト装置の制御方法、情報処理装置およびホスト装置
KR102147628B1 (ko) * 2013-01-21 2020-08-26 삼성전자 주식회사 메모리 시스템
US9354955B1 (en) * 2014-03-19 2016-05-31 Western Digital Technologies, Inc. Partial garbage collection for fast error handling and optimized garbage collection for the invisible band

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101075211A (zh) * 2007-06-08 2007-11-21 马彩艳 基于sector访问的flash存储器的存储管理
US20110055455A1 (en) * 2009-09-03 2011-03-03 Apple Inc. Incremental garbage collection for non-volatile memories
CN104298610A (zh) * 2009-09-03 2015-01-21 晶先锋科技有限公司 资料储存系统及其管理方法
CN102779095A (zh) * 2011-05-09 2012-11-14 索尼公司 闪存装置、存储器控制装置、存储器控制方法及存储系统
US20150169237A1 (en) * 2013-12-17 2015-06-18 International Business Machines Corporation Method and device for managing a memory
US20160267004A1 (en) * 2015-03-09 2016-09-15 Amitai Perlstein Storage device including nonvolatile memory device and garbage collection method thereof
US20170052719A1 (en) * 2015-08-20 2017-02-23 Wipro Limited Methods and Systems for Memory Management in Storage Drives
CN106469022A (zh) * 2015-08-20 2017-03-01 维布络有限公司 存储驱动器的存储管理方法和系统
CN107346213A (zh) * 2016-05-04 2017-11-14 爱思开海力士有限公司 存储器系统及其操作方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
AAYUSH GUPTA等: "DFTL: a flash translation layer employing demand-based selective caching of page-level address mappings" *
梅松竹 等: "针对固态驱动器的NFTL算法性能优化" *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113190469A (zh) * 2021-05-13 2021-07-30 合肥康芯威存储技术有限公司 一种存储器、数据写入方法及存储系统

Also Published As

Publication number Publication date
KR20200019421A (ko) 2020-02-24
KR102649131B1 (ko) 2024-03-19
US20200057562A1 (en) 2020-02-20
US10963160B2 (en) 2021-03-30
CN110825659B (zh) 2023-04-07

Similar Documents

Publication Publication Date Title
CN110928807B (zh) 用于检查存储器系统中的有效数据的设备和方法
CN110825659B (zh) 用于检查存储器系统中的块中的有效数据的设备和方法
CN110825319B (zh) 基于块状态确定可用性的存储器系统及操作方法
CN111240586A (zh) 存储器系统及其操作方法
CN110806984B (zh) 在存储器系统中搜索有效数据的设备和方法
CN111290704B (zh) 用于控制储存在存储系统中的数据的装置和方法
US11157402B2 (en) Apparatus and method for managing valid data in memory system
CN110806837B (zh) 数据处理系统及其操作方法
US20200034081A1 (en) Apparatus and method for processing data in memory system
CN110895449B (zh) 用于在存储器系统中管理有效数据的装置和方法
CN111581121B (zh) 用于管理存储器系统中的映射数据的方法和设备
CN111435334B (zh) 在存储器系统中检查有效数据的设备和方法
CN110806983B (zh) 存储器系统及其操作方法
CN111435291A (zh) 用于擦除非易失性存储器块中编程的数据的装置和方法
CN109426448B (zh) 存储器系统及其操作方法
CN109753233B (zh) 存储器系统及其操作方法
CN109407968B (zh) 存储器系统及其操作方法
CN111857818A (zh) 存储器系统和通过该存储器系统执行命令操作的方法
CN111857565A (zh) 存储器系统、数据处理系统及其操作方法
CN113495689A (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