CN111831576A - 包括多个存储数据的区域的存储器系统及其操作方法 - Google Patents

包括多个存储数据的区域的存储器系统及其操作方法 Download PDF

Info

Publication number
CN111831576A
CN111831576A CN201911243474.8A CN201911243474A CN111831576A CN 111831576 A CN111831576 A CN 111831576A CN 201911243474 A CN201911243474 A CN 201911243474A CN 111831576 A CN111831576 A CN 111831576A
Authority
CN
China
Prior art keywords
block
target block
cfb
die
candidate
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.)
Withdrawn
Application number
CN201911243474.8A
Other languages
English (en)
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 CN111831576A publication Critical patent/CN111831576A/zh
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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
    • 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
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • 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/0644Management of space entities, e.g. partitions, extents, pools
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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
    • 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/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • 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

Abstract

本发明涉及一种存储器系统。该存储器系统可以包括多个管芯;以及控制器,通过多个数据路径来并行地传送从主机接收的第一数据和通过内部操作获得的第二数据。

Description

包括多个存储数据的区域的存储器系统及其操作方法
相关申请的交叉引用
本申请要求于2019年4月22日提交的申请号为10-2019-0046913的韩国专利申请的优先权,该韩国专利申请通过引用整体并入本文。
技术领域
各个实施例总体涉及一种包括多个存储数据的区域的存储器系统,并且更特别地,涉及一种在数据处理系统中包括的存储器系统中执行垃圾收集的设备和方法。
背景技术
近来,计算机环境范例已经转变成允许计算机系统随时随地使用的普适计算。因此,诸如移动电话、数码相机和膝上型计算机的便携式电子装置的使用已经迅速增加。通常,这种便携式电子装置使用包括存储器装置的存储器系统,即数据存储装置。存储器系统可以用作便携式电子装置的主数据存储装置或辅助数据存储装置。
发明内容
本发明的各个实施例涉及一种能够减少存储器系统的性能下降、提高存储器装置的资源利用效率并且稳定地使用存储器装置处理数据的数据处理系统以及该数据处理系统的操作方法。
而且,各个实施例涉及一种用于执行垃圾收集(GC)操作的存储器系统的操作方法、包括用于执行该操作方法的控制器和存储器装置的存储器系统以及其操作方法。
另外,各个实施例涉及一种能够通过使用另一区域的块来减少垃圾收集(GC)操作所需的时间,或者能够消除存储器装置与控制器之间的数据传送中的瓶颈现象的存储器系统,其中存储器装置内的多个区域的至少一个中包括的块不位于该另一区域中,该多个区域通过诸如通道或通路的数据通信线路来划分。
根据实施例,一种存储器系统可以包括多个管芯;以及控制器,通过多个数据路径联接至多个管芯,该控制器适于通过多个数据路径并行传送从主机接收的第一数据和通过内部操作获得的第二数据。
根据实施例,一种存储器系统的操作方法,该存储器系统包括多个管芯和通过多个数据路径联接至多个管芯的控制器,该操作方法包括通过多个数据路径并行传送第一数据和第二数据,其中第一数据对应于根据从主机接收的命令的命令操作,第二数据通过内部操作而获得。
附图说明
图1示出根据本发明的实施例的包括联接至主机的存储器系统的数据处理系统。
图2是示出根据本发明的实施例的在存储器系统中使用的超级存储块的示图。
图3是示出存储器系统中的垃圾收集(GC)操作的示例。
图4至图6是示出根据本发明的实施例的存储器系统的数据处理操作的示图。
图7是示出根据本发明的实施例的存储器系统的操作方法的流程图。
图8是详细示出图7的步骤S705的流程图。
图9和图10是详细示出根据本发明的实施例的选择候选目标块的方法的流程图。
具体实施方式
在下文中,现在将参照附图更全面地描述示例性实施例;然而,实施例可以以不同的形式实施,并且不应该被解释为限于本文阐述的实施例。相反,提供这些实施例使得本公开将彻底且完整,并且将向本领域技术人员充分传达示例性实施例的范围。
应理解的是,附图是所描述装置的各个实施例的简化示意图,并且可能不包括公知的细节,以避免模糊本发明的特征。
还应注意的是,在不脱离本发明的范围的情况下,一个实施例中存在的特征可以与另一实施例中的一个或更多个特征一起使用。
图1示出根据本公开的实施例的数据处理系统。
参照图1,数据处理系统包括存储器系统,该存储器系统包括控制器130和存储器装置150。存储器系统联接至主机102。控制器130与主机102和存储器装置150协作。控制器130包括主机接口(I/F)132、存储器接口(I/F)142、存储器144和闪存转换层(FTL)140。
主机接口132可以处置从主机102接收的命令和数据。通过示例而非限制的方式,主机接口132可以包括缓冲器管理器52、事件队列54和命令队列56。命令队列56可以顺序地存储命令和数据,并且以存储顺序将命令和数据输出至缓冲器管理器52。缓冲器管理器52可以对从命令队列56传递的命令和数据进行分类、管理或调整。事件队列54可以顺序地传送用于处理从缓冲器管理器52接收的命令和数据的事件。
可以从主机102连续地接收相同类型的多个命令和/或数据(例如,读取命令)。可选地,可以从主机102以混合顺序接收不同类型的多个命令和/或数据。例如,主机102可以以连续顺序传送用于读取数据的多个命令(即,读取命令),然后以连续顺序传送多个写入命令(即,用于编程数据,也称为编程命令)。或者可选地,主机102可以以混合次序来传送读取命令和写入命令。主机接口132可以将从主机102接收的命令和数据以接收次序顺序地存储到命令队列56。此后,主机接口132可以根据从主机102接收的命令、数据的特性以及其它相关信息来确定控制器130将执行的下一操作。主机接口132可以根据所接收的命令和数据的优先级次序来确定处理次序,其中所接收的命令和数据的优先级次序至少部分基于命令和数据的特性。根据所接收的命令和数据的特性,缓冲器管理器52被配置成确定缓冲器管理器52是否应当将所接收的命令和数据存储在存储器144中,或者缓冲器管理器是否应当将所接收的命令和数据传递至FTL 140。事件队列54接收待由存储器系统110或控制器130响应于命令和数据内部地执行并处理的、从缓冲器管理器52输入的事件。事件队列54以接收的顺序将事件传递至FTL 140。
根据实施例,FTL 140可以包括状态管理器(SM)42、映射管理器(MM)44、主机请求管理器(HRM)46和块管理器48。主机请求管理器46可以管理从事件队列54输入的事件。映射管理器44可以处置或控制映射数据。状态管理器42可以执行垃圾收集(GC)或损耗均衡(WL)。块管理器48可以对存储器装置150中的块执行命令或指令。
通过示例而非限制的方式,主机请求管理器46可以使用映射管理器44和块管理器48以根据读取和编程命令以及从主机接口132传递的事件来处置或处理请求。主机请求管理器46可以将查询请求发送到映射管理器44以确定与事件一起输入的逻辑地址对应的物理地址。主机请求管理器46可以将读取请求与物理地址一起发送到存储器接口142,以处理读取请求(或处置事件)。另一方面,主机请求管理器46可以将编程请求(写入请求)发送到块管理器48,以将进入的数据编程至存储器装置150中的未记录特定页面(没有数据)。然后,主机请求管理器46可以将与编程请求对应的映射更新请求传送至映射管理器44,以更新映射信息中的与编程数据相关的项,该映射信息指示将逻辑到物理地址彼此映射。
块管理器48可以将从主机请求管理器46、映射管理器44和/或状态管理器42传递的编程请求转换成用于存储器装置150的闪存编程请求,以管理存储器装置150中的闪存块。为了最大化或提高存储器系统110的编程或写入性能,块管理器48可以收集编程请求并且将用于多平面和单触发编程操作的闪存编程请求发送到存储器接口142。块管理器48可以将若干闪存编程请求发送到存储器接口单元142以提高或最大化多通道和多向闪速控制器(即,存储器接口142)的并行处理。
块管理器48可以被配置成根据有效页面的数量来管理存储器装置150中的块。此外,当需要空闲块时,块管理器48可以选择并擦除不具有有效页面的块,并且当确定了需要垃圾收集时选择包括最小数量的有效页面的块。状态管理器42可以执行垃圾收集以将有效数据移动到空块,并且擦除包含被移动的有效数据的块,使得块管理器48可以具有足够的空闲块(即,没有数据的空块)。如果块管理器48将关于待擦除的块的信息提供到状态管理器42,则状态管理器42检查待擦除的块的所有闪存页面以确定每个页面是否有效。例如,为了确定每个页面的有效性,状态管理器42可以识别每个页面的区域(例如,带外(OOB)区域)中存储的逻辑地址。为了确定每个页面是否有效,状态管理器42可以将页面的物理地址与映射到从查询请求获得的逻辑地址的物理地址进行比较。状态管理器42针对每个有效页面将编程请求发送到块管理器48。当编程操作完成时,映射表可以通过映射管理器44的更新而被更新。
映射管理器44可以管理逻辑到物理映射表。映射管理器44可以处理由主机请求管理器46或状态管理器42生成的请求,诸如查询、更新。映射管理器44可以将整个映射表存储在存储器装置150(例如,闪存/非易失性存储器)中,并且根据存储器144的存储容量来高速缓存映射条目。当在处理查询请求或更新请求时发生映射高速缓存未命中时,映射管理器44可以将读取请求发送到存储器接口142以加载存储在存储器装置150中的相关映射表。当映射管理器44中的脏高速缓存块的数量超过特定阈值时,可以将编程请求发送到块管理器48,使得形成干净高速缓存块并且可以将脏映射表存储在存储器装置150中。
当执行垃圾收集时,状态管理器42将有效页面复制到空闲块中,并且主机请求管理器46可以针对相同逻辑地址的页面编程最新版本的数据,并且即时发出更新请求。当状态管理器42在有效页面的复制没有正常完成的状态下请求映射更新时,映射管理器44可能没有执行映射表更新。这是因为如果状态管理器42请求映射更新并且稍后完成有效页面复制,则发出了具有旧物理信息的映射请求。只要最新映射表仍然指向旧物理地址,映射管理器44就可以执行映射更新操作以确保准确性。
存储器装置150可以包括多个存储块。根据块的一个存储器单元中可以存储或表达的位的数量,多个存储块可以被分类为不同类型的存储块,诸如单层单元(SLC)存储块或多层单元(MLC)存储块。SLC存储块包括由每个存储一位数据的存储器单元实施的多个页面。SLC存储块可以具有高数据输入和输出(I/O)操作性能和高耐用性。MLC存储块包括由每个存储多位(例如,两位或更多位)数据的存储器单元实施的多个页面。在相同的空间中,MLC存储块可以具有比SLC存储块更大的存储容量。在存储容量方面,可以高度集成MLC存储块。在实施例中,存储器装置150可以利用诸如MLC存储块、三层单元(TLC)存储块、四层单元(QLC)存储块及其组合的MLC存储块来实施。MLC存储块可以包括由每个能够存储两位数据的存储器单元实施的多个页面。三层单元(TLC)存储块可以包括由每个能够存储三位数据的存储器单元实施的多个页面。四层单元(QLC)存储块可以包括由每个能够存储四位数据的存储器单元实施的多个页面。在另一实施例中,存储器装置150可以利用包括由每个能够存储五位或更多位数据的存储器单元实施的多个页面的块来实施。
在实施例中,存储器装置150被实施为诸如闪速存储器的非易失性存储器,诸如NAND闪速存储器或者NOR闪速存储器。在另一实施例中,存储器装置150可以由以下中的至少一个来实施:相变随机存取存储器(PCRAM)、铁电随机存取存储器(FRAM)、自旋转移力矩磁性存储器(STT-RAM)、自旋转移力矩磁性随机存取存储器(STT-MRAM)。
图2是示出根据本发明的实施例的在存储器系统中使用的超级存储块的概念的示图。
图2示出根据本发明的实施例的在存储器系统110的组件之中的诸如图1的存储器装置150的存储器装置中包括的存储器管芯1501至150n。例如,存储器装置150可以包括第一存储器管芯(DIE1)1501和第二存储器管芯(DIE2)1502。
第一存储器管芯1501和第二存储器管芯1502中的每一个可以包括多个平面。例如,第一存储器管芯1501可以包括第一平面PLANE00和第二平面PLANE01,第二存储器管芯1502可以包括第三平面PLANE10和第四平面PLANE11。平面中的每一个可以包括多个块。例如,第一平面PLANE00可以包括第一至第N存储块BLOCK000至BLCOK00N,第二平面PLANE01可以包括第一至第N存储块BLOCK010至BLCOK01N。第三平面PLANE10可以包括第一至第N存储块BLOCK100至BLCOK10N,并且第四平面PLANE11可以包括第一至第N存储块BLOCK110至BLCOK11N。
第一存储器管芯1501能够通过第零通道CH0输入和输出(输入/输出)数据,第二存储器管芯1502能够通过第一通道CH1输入/输出数据。第零通道CH0和第一通道CH1可以以交织方案输入/输出数据。
第一存储器管芯1501包括分别与多个通路WAY0和WAY1对应的多个平面PLANE00和PLANE01,该多个通路WAY0和WAY1能够通过共享第零信道CH0而以交织方案来输入/输出数据。
第二存储器管芯1502包括分别与多个通路WAY2和WAY3对应的多个平面PLANE10和PLANE11,该多个通路WAY2和WAY3能够通过共享第一通道CH1而以交织方案来输入/输出数据。
可以基于使用相同通路或通道的物理位置来将存储器装置150中的多个存储块划分为组。
虽然作为示例,图2的实施例示出了存储器装置150中存在两个管芯,每个管芯具有两个平面的的配置,但是本发明不限于该配置。基于系统设计考虑,可以使用任何合适的管芯和平面配置。每个平面中的存储块数量也可以变化。
图1的控制器130可以基于存储块的物理位置,将不同管芯或不同平面中的多个存储块之中的、可以同时被选择的存储块进行分组,并且将存储块组作为超级存储块来管理。
可以以各种方式来执行控制器130将存储块分组为超级存储块并且管理超级存储块的方案。以下以三种方案作为示例进行描述。
例如,第一方案是控制器130对存储器装置150中的多个存储器管芯的第一存储器管芯1501中的第一平面PLANE00的任意存储块BLOCK000和第二平面PLANE01的任意存储块BLOCK010进行分组,并且将所分组的存储块BLOCK000和BLOCK010作为单个超级存储块A1来管理。当第一方案被应用于存储器装置150中的第二存储器管芯1502时,控制器130可以对第二存储器管芯1502中的第一平面PLANE10的任意存储块BLOCK100和第二平面PLANE11的任意存储块BLOCK110进行分组,并且将所分组的存储块BLOCK100和BLOCK110作为单个超级存储块A2来管理。
例如,第二方案是控制器130对第一存储器管芯1501中的第一平面PLANE00的任意存储块BLOCK002和第二存储器管芯1502中的第一平面PLANE10的任意存储块BLOCK102进行分组,并且将所分组的存储块BLOCK002和BLOCK102作为单个超级存储块B1来管理。另外,根据第二方案,控制器130对第一存储器管芯1501中的第二平面PLANE01的任意存储块BLOCK012和第二存储器管芯1502中的第二平面PLANE11的任意存储块BLOCK112进行分组,并且将所分组的存储块BLOCK012和BLOCK112作为单个超级存储块B2来管理。
例如,第三方案是控制器130对第一存储器管芯1501中的第一平面PLANE00的任意存储块BLOCK001、第一存储器管芯1501中的第二平面PLANE01中包括的任意存储块BLOCK011、第二存储器管芯1502的第一平面PLANE10中的任意存储块BLOCK101以及第二存储器管芯1502的第二平面PLANE11中的任意存储块BLOCK111进行分组,并且将所分组的存储块BLOCK001、BLOCK011、BLOCK101以及BLOCK111作为单个超级存储块C来管理。
因此,可以通过交织方案同时选择超级存储块中的每一个中的可同时选择的存储块。例如,交织方案可以包括通道交织方案、存储器管芯交织方案、存储器芯片交织方案或通路交织方案。
图3是示出存储器系统110中的垃圾收集(GC)操作的示例。
参照图3,存储器装置150可以包括多个数据块40_1以及多个空闲块40_2。存储在多个数据块40_1中的无效数据量可以随着来自控制器130的重复编程命令而增加。控制器130可以包括存储器144和GC控制组件196。为了再次使用存储无效数据的数据块40_1,则可以执行内部操作(例如,GC或损耗均衡)。例如,GC控制组件196可以执行GC以将存储有效数据的数据块40_1改变为空闲块。也就是说,当到达GC时间或剩余空闲块的数量小于或等于阈值时,GC控制组件196可以检查多个数据块40_1之中的封闭数据块(以下称为源块)。GC控制组件196可以在检查到的源块之中,选择有效页面的数量小于随机设定阈值的源块作为牺牲块。选择具有较少数量的有效页面的源块的原因在于,当对具有较大数量的有效页面的源块执行GC操作时,执行GC操作所需的时间和成本可能会增加,并且存储器装置150的寿命可能缩短。然后,GC控制组件196可以将牺牲块中包括的有效数据复制到目标块,该目标块为未被执行编程操作的空闲块。当将有效数据复制并存储在目标块中时,GC控制组件196可以擦除牺牲块。
为了在上述GC操作期间将数据从存储器装置150的源块移动到空闲块,控制器130可以从存储器装置150的源块读取数据,将读取数据加载到存储器144,然后将存储在存储器144中的数据编程到空闲块。由于控制器130对存储器装置150执行操作(例如,读取操作或编程操作),因此当在执行GC操作的同时从外部(例如,图1中的主机102)接收到命令时,控制器130可以停止GC操作以执行与读取命令或编程命令对应的操作。
当彼此并行执行编程操作和GC操作时,为了减少执行GC操作所需的时间和成本,控制器130可能不会停止GC操作。换言之,控制器130可以从与包括可以被执行编程操作的开放块的管芯不同的管芯中选择目标块,并且将牺牲块的有效数据移动到目标块,以便并行执行编程操作和GC操作。下面将参照图4至图10详细描述该进程。在本实施例中,可以通过一个或更多个通道CHANNEL和通路WAY来分别地管理在存储器装置150中包括的多个管芯。此外,注意的是,本发明可以应用于由超级块组成的存储器装置150,也可以应用于不是由超级块组成的存储器装置150。
图4至图6是示出根据本发明的实施例的存储器系统的数据处理操作的示图。
参照图4,存储器系统110可以包括控制器130和存储器装置150。
存储器装置150可以包括多个管芯。例如,多个管芯可以包括第一管芯Die1 1501、第二管芯Die2 1502,第三管芯Die3 1503和第四管芯Die41504。管芯1501至1504中的每一个可以包括多个存储块。参照图5,多个存储块可以包括第一存储块BLK1、第二存储块BLK2、第三存储块BLK3和第四存储块BLK4。然而,本实施例不限于此。多个存储块BLK1至BLK4可以被分类成空闲块、开放块或活动块和源块。空闲块是没有存储数据的块。例如,空闲块可以包括第一管芯Die1 1501的第三存储块BLK3,第二管芯Die2 1502的第一存储块BLK1、第二存储块BLK2和第四存储块BLK4,第三管芯Die3 1503的第四存储块BLK4以及第四管芯Die41504的第一存储块BLK1、第二存储块BLK2和第三存储块BLK3。开放块是存储有数据的块,并且还包括可被编程数据的剩余页面。例如,开放块可以包括第一管芯Die1 1501的第一存储块BLK1。源块是存储有数据并且不包括可被编程数据的页面的封闭块。也就是说,源块不具有可被编程数据的空页面。例如,源块可以包括第一管芯Die1 1501的第二存储块BLK2和第四存储块BLK4,第二管芯Die2 1502的第三存储块BLK3,第三管芯Die3 1503的第一存储块BLK1、第二存储块BLK2和第三存储块BLK3以及第四管芯Die4 1504的第四存储块BLK4。
返回参照图4,控制器130可以包括存储器144和GC控制组件196。GC控制组件196可以包括GC操作确定器196A、GC操作器196B和GC目标块管理器196C。参照图4至图6,将描述GC控制组件196的操作。
存储器144可以包括垃圾收集(GC)缓冲器144A和目标块候选列表144B。当执行GC操作时,GC缓冲器144A可以用于临时存储牺牲块的、待被传送到目标块的有效数据。目标块候选列表144B是用于存储候选目标块的列表,其中牺牲块的有效数据可以被传送到候选目标块。也就是说,可以基于编程/擦除(P/E)周期计数(P/EC),通过将在下面描述的GC目标块管理器196C来在空闲块之中选择候选目标块。可以按照P/E周期计数的升序或给定优先级,来对存储在目标块候选列表144B中的候选目标块进行排序。也就是说,可以从具有最小P/E周期计数的空闲块开始以升序来对候选目标块进行排序和存储,或者可以根据给定优先级来对候选目标块进行排序和存储。P/E周期可以被认为是可以描述各个块的操作状态(例如,寿命和健康状态)的参数中的一个。可以基于可以描述存储器装置150内的各个块的操作状态的其它参数来判定候选目标块。
参照图6所示的目标块候选列表144B,可以针对每个索引Index[i]来存储候选目标块和P/E周期计数信息。例如,可以在索引Index[1]处存储指示第二管芯Die2 1502中的第二存储块BLK2(Die2_BLK2)的第一候选目标块和P/E周期计数“5”。此外,可以在索引Index[2]处存储指示第二管芯Die2 1502中的第一存储块BLK1(Die2_BLK1)的第二候选目标块和P/E周期计数“10”。此外,可以在索引Index[3]处存储指示第四管芯Die4 1504中的第三存储块BLK3(Die4_BLK3)的第三候选目标块和P/E周期计数“15”。此外,可以在索引Index[4]处存储指示第四管芯Die4 1504中的第一存储块BLK1(Die4_BLK1)的第四候选目标块和P/E周期计数“20”。在本实施例中,四个候选目标块存储在目标块候选列表中。然而,本实施例不限于此。将基于下面将描述的GC目标块管理器196C的配置来详细描述用于选择候选目标块的方法。
GC操作确定器196A可以在每个预定时段中,基于空闲块计数(FBC)来确定是否执行GC操作。也就是说,GC操作确定器196A可以检查FBC是否小于第一阈值TH1,以便确定是否执行GC操作。第一阈值TH1可以表示用于确定控制器130需要获得(secure)一个或多个空闲块的时间点的最小FBC。第一阈值TH1可以是预定值,并且最小FBC可以根据存储器系统的操作条件而变化。当FBC小于第一阈值TH1(FBC<TH1)时,这可以表示发生用于执行GC操作的事件,因此GC操作确定器196A可以进入GC操作模式。当FBC大于或等于第一阈值TH1(FBC>=TH1)时,可以不执行GC操作,并且GC操作确定器196A可以在每个预定时段中基于FBC来确定是否执行GC操作。当发生这种GC事件时,可以通过GC操作器196B执行GC操作。
GC操作器196B可以在多个管芯中的多个源块之中选择一个或更多个牺牲块。也就是说,GC操作器196B可以在多个源块之中,选择有效页面的数量小于或等于第二阈值TH2的源块作为GC操作的牺牲块。GC操作器196B可以将所选择牺牲块的有效数据临时存储在存储器144中的GC缓冲器144A中。
然后,GC操作器196B可以从目标块候选列表144B中选择目标块,以便移动牺牲块的有效数据。此时,GC操作器196B可以根据有效数据的数量来选择所需目标块的数量。此处,将以所需目标块的数量为1的情况为例进行说明。GC操作器196B可以从目标块候选列表144B的索引Index[i]开始顺序地检查候选目标块是否包括在与包括开放块的管芯相同的管芯中。当检查结果指示候选目标块不包括在与包括开放块的管芯相同的管芯中时,GC操作器196B可以选择相应候选目标块作为目标块。例如,当开放块包括在第一管芯Die1 1501中时,GC操作器196B可以检查存储在目标块候选列表144B的索引Index[1]处的第一候选目标块是否包括在包括开放块的第一管芯Die1 1501中。由于检查结果指示第一候选目标块是第二管芯Die2 1502中的第二存储块BLK2,因此因为第一候选目标块不是包括在与包括开放块的管芯相同的管芯中的存储块,所以可以选择第一候选目标块作为目标块。然后,可以从目标块候选列表144B中删除所选择候选目标块的信息。
另一方面,当候选目标块包括在与包括开放块的管芯相同的管芯中时,GC操作器196B可以将索引Index[i]逐一地增加,以便检查候选目标块是否包括在与包括开放块的管芯相同的管芯中。由此,针对目标块候选列表144B中的、从索引Index[1]至索引Index[i_max]的索引范围,GC操作器196B可以检查候选目标块是否包括与包括开放块的管芯相同的管芯中。此处,i_max表示可以在目标块候选列表144B中存储的候选目标块的最大数量。当检查结果指示从索引Index[1]至索引Index[i_max]的候选目标块都包括在与包括开放块的管芯相同的管芯中时,GC操作器196B可以通过GC目标块管理器196C从与包括开放块的管芯不同的管芯中选择候选目标块。然后,GC操作器196B可以选择所选择候选目标块之中的、具有最小P/E周期计数的候选目标块作为目标块。
GC操作器196B可以在从目标块候选列表144B中选择目标块以存储牺牲块的有效数据之前,检查目标块候选列表144B中是否存在候选目标块。当目标块候选列表144B中不存在候选目标块时,GC操作器196B可以通过GC目标块管理器196C来选择一个或多个候选目标块,并且将所选择候选目标块存储在目标块候选列表144B中。
GC操作器196B可以将临时存储在GC缓冲器144A中的有效数据复制并存储到所选择目标块中。例如,GC操作器196B可以将有效数据复制并存储到所选择目标块中,即第二管芯Die2 1502中的作为空闲块的第二存储块BLK2。然后,GC操作器196B可以擦除牺牲块中包括的所有页面,然后将牺牲块设置为空闲块。
GC目标块管理器196C可以从多个管芯之中的、不涉及开放块的管芯中选择候选目标块。此外,GC目标块管理器196C可以将所选择候选目标块存储在存储器144中的目标块候选列表144B中。此处,根据设计者的选择,可以存在用于选择候选目标块的各种方法。在实施例中,将示例两种方法。
第一种方法将描述如下。GC目标块管理器196C可以检查除了包括开放块的第n管芯之外的其它管芯中是否存在一个或多个空闲块。当检查结果指示在其它管芯中不存在一个或多个空闲块时,GC目标块管理器196C可以在第n管芯中包括的作为空闲块的存储块之中,选择P/E周期计数小于或等于第三阈值TH3的存储块作为候选目标块。此外,GC目标块管理器196C可以将该候选目标块存储在目标块候选列表144B中。例如,当存储块是从包括开放块的第一管芯Die1 1501中选择的、P/E周期计数小于或等于第三阈值TH3 20的空闲块时,因为第三存储块BLK3的P/E周期计数是1,所以第三存储块BLK3可变为候选目标块。选择P/E周期计数小于或等于预定阈值的存储块作为候选目标块的原因在于,存储块中包括的存储器单元的擦除速度在初始阶段相对较高,但可能会随着存储块的P/E周期计数的增加而降低。这是因为当存储块中的存储器单元的编程速度和擦除速度较高时,存储器单元的阈值电压的变化随着存储块的P/E周期计数的增加而增大,因此存储器单元会以较高的速度劣化。
另一方面,当在其它管芯中存在一个或多个空闲块时,GC目标块管理器196C可以选择P/E周期计数小于或等于第四阈值TH4的空闲块作为候选目标块,并且将该候选目标块存储在目标块候选列表中。例如,图5示出多个管芯之中的包括开放块的管芯是第一管芯Die1 1501。GC目标块管理器196C可以检查除了第一管芯Die1 1501之外的第二管芯Die2至第四管芯Die4中是否存在空闲块。检查结果示出第二管芯Die2 1502的第一存储块BLK1、第二存储块BLK2和第四存储块BLK4,第三管芯Die3 1503的第四存储块BLK4以及第四管芯Die4 1504的第一存储块BLK1、第二存储块BLK2和第三存储块BLK3是空闲块。GC目标块管理器196C可以在第二至第四管芯Die2至Die4中包括的作为空闲块的存储块之中,选择P/E周期计数小于或等于第四阈值TH4的存储块作为候选目标块。例如,在第二管芯Die2 1502中包括的第一存储块BLK1、第二存储块BLK2和第四存储块BLK4的P/E周期计数分别为10、5和40。此外,第三管芯Die3 1503中的第四存储块BLK4的P/E周期计数是28,并且第四管芯Die41504中包括的第一存储块BLK1、第二存储块BLK2和第三存储块BLK3的P/E周期计数分别为20、35和15。当将第四阈值TH4设置为“20”时,GC目标块管理器196C可以从多个存储块之中,选择P/E周期计数小于或等于“20”的存储块作为候选目标块。此外,GC目标块管理器196C可以从具有最小P/E周期计数的存储块开始以升序将候选目标块存储在目标块候选列表144B中。如图6所示,第二管芯Die2 1502的第二存储块BLK2、第二管芯Die2 1502的第一存储块BLK1、第四管芯Die4 1504的第三存储块BLK3和第四管芯Die4 1504的第一存储块BLK1可以作为所选择候选目标块顺序地存储在目标块候选列表144B中。
根据第二种方法,GC目标块管理器196C可以从包括开放块的第n管芯中检查具有最小P/E周期计数的存储块。为了方便起见,该存储块将被称为第一候选空闲块(CFB)CFB_1。然后,GC目标块管理器196C可以从除了第n管芯之外的其它管芯中检查具有最小P/E周期计数的存储块。为了方便起见,该存储块将被称为第二CFB CFB_1。
然后,GC目标块管理器196C可以检查第一CFB CFB_1的P/E周期计数是否小于第二CFB CFB_2的P/E周期计数。当检查结果指示第一CFB CFB_1的P/E周期计数不小于第二CFBCFB_2的P/E周期计数(否)时,GC目标块管理器196C可以选择其它管芯中的空闲块之中的候选目标块。也就是说,GC目标块管理器196C可以选择其它管芯中包括的空闲块之中的、P/E周期计数小于或等于第六阈值TH6的空闲块作为候选目标块,并且将该候选目标块存储在目标块候选列表144B中。
另一方面,当检查结果指示第一CFB CFB_1的P/E周期计数小于第二CFB CFB_2的P/E周期计数(是)时,GC目标块管理器196C可以检查第一CFB CFB_1的P/E周期计数与第二CFB CFB_2的P/E周期计数之间的差值是否小于第五阈值TH5。将第一CFB CFB_1的P/E周期计数和第二CFB CFB_2的P/E周期计数之间的差值与第五阈值TH5进行比较的原因在于,当第n管芯中的第一CFB CFB_1明显小于其它管芯中的第二CFB CFB_2的P/E周期计数时,与其它管芯中的空闲块相比,第一CFB CFB_1以较低速度劣化。也就是说,随着P/E周期计数的增加,存储器单元的阈值电压的变化可能增大,从而加速存储器单元的劣化。
当检查结果指示第一CFB CFB_1的P/E周期计数与第二CFB CFB_2的P/E周期计数之间的差值小于第五阈值TH5(是)时,GC目标块管理器196C可以选择其它管芯中的空闲块之中的、P/E周期计数小于或等于第六阈值TH6的空闲块作为候选目标块,并且将该候选目标块存储在目标块候选列表144B中。
另一方面,当检查结果指示第一CFB CFB_1的P/E周期计数与第二CFB CFB_2的P/E周期计数之间的差值大于或等于第五阈值TH5(否)时,GC目标块管理器196C可以选择所有管芯中的空闲块之中的、P/E周期计数小于或等于第七阈值TH7的存储块作为候选目标块,并且将该候选目标块存储在目标块候选列表144B中。
图7是示出根据本发明的实施例的存储器系统的操作方法的流程图。图8是详细示出图7的步骤S705的流程图。图9和图10是详细示出根据本发明的实施例的选择候选目标块的方法的流程图。
参照图7,在步骤701中,控制器130可以在每个预定时段中基于空闲块计数(FBC)来确定是否执行GC操作。也就是说,控制器130可以检查FBC是否小于第一阈值TH1,以便确定是否执行GC操作。第一阈值TH1可以指示用于确定控制器130需要获得一个或多个空闲块的时间点的最小FBC。第一阈值TH1可以是预定值,并且最小FBC可以根据存储器系统的操作条件而变化。当FBC小于第一阈值TH1(即,FBC<TH1)时,这可以指示发生用于执行GC操作的事件,因此控制器130可以进入GC操作模式。另一方面,当FBC大于或等于第一阈值TH1(FBC>=TH1)时,控制器130可以不执行GC操作,并且在每个预定时段基于FBC来确定是否执行GC操作。
在步骤S703中,控制器130可以在多个管芯中的多个源块之中选择一个或多个牺牲块。也就是说,控制器130可以选择多个源块之中的、有效页面的数量小于或等于第二阈值TH2的源块作为GC操作的牺牲块。控制器130可以将所选择牺牲块的有效数据临时存储在GC缓冲器144A中。
在步骤S705中,控制器130可以通过参照目标块候选列表144B来选择目标块,以便移动牺牲块的有效数据。此时,控制器130可以根据有效数据计数(VPC)来从目标块候选列表144B中选择所需数量的目标块。
在步骤S707中,控制器130可以将临时存储在GC缓冲器144A中的有效数据复制并存储到目标块中。
在步骤S709中,控制器130可以擦除牺牲块中的所有页面,然后将牺牲块设置为空闲块。
图8是详细示出图7的步骤S705的流程图。也就是说,图8是示出控制器130选择用于存储牺牲块的有效数据的目标块的方法的流程图。
参照图8,在步骤S801中,控制器130可以检查目标块候选列表144B中是否存在候选目标块,以便从目标块候选列表144B中选择目标块。
当检查结果指示在目标块候选列表144B中不存在候选目标块(S801中为否)时,控制器130可以从与包括开放块的管芯不同的管芯中选择候选目标块,然后将候选目标块存储在目标块候选列表144B中。然后,在步骤S803中,控制器130可以选择候选目标块之中的、未包括在与包括开放块的管芯相同的管芯中的候选目标块作为目标块。
另一方面,当目标块候选列表144B中存在候选目标块(S801中为是)时,在步骤S805中,控制器130可以从目标块候选列表144B的索引Index[i](i=1)开始顺序地检查候选目标块是否包括在与包括开放块的管芯相同的管芯中。
当步骤S805的检查结果指示索引Index[i]的候选目标块未包括在与包括开放块的管芯相同的管芯中(S805中为否)时,步骤S807中,控制器130可以选择索引Index[i]的候选目标块作为目标块。
在步骤S809中,控制器130可以从目标块候选列表144B中擦除(或删除)所选择候选目标块。
当步骤S805的检查结果指示索引Index[i]的候选目标块包括在与包括开放块的管芯相同的管芯中(S805中为是)时,步骤S811中,控制器130可以检查索引Index[i]是否为目标块候选列表的最后索引[i_max]。
当检查结果指示索引Index[i]是目标块候选列表144B的最后索引[i_max]时,控制器130可以从与包括开放块的管芯不同的管芯中选择候选目标块,然后将所选择候选目标块存储在目标块候选列表144B中。然后,在步骤S803中,控制器130可以选择候选目标块之中的、未包括在与包括开放块的管芯相同的管芯中的候选目标块作为目标块。
另一方面,当检查结果指示索引Index[i]不是目标块候选列表144B的最后索引[i_max]时,在步骤S813中,控制器130可以增加索引Index[i],即将1与索引Index[i]相加。此外,控制器130可以返回到步骤S805以检查索引Index[i]的候选目标块是否包括在与包括开放块的管芯相同的管芯中。
图9和图10是详细示出图8的步骤S803的流程图。也就是说,图9和图10是示出控制器130在存储器装置150中的空闲块之中选择候选目标块的方法的流程图。控制器130可以从多个管芯之中的、不涉及开放块的管芯中选择候选目标块。此外,控制器130可以将所选择候选目标块存储在存储器144中的目标块候选列表144B中。根据存储器系统的配置和设计,可以存在用于选择候选目标块的各种方法。在实施例中,将参照图9和图10例示并描述两种方法。
在图9中,控制器130可以使用与被执行编程操作的开放块所位于的管芯不同的管芯中的空闲块,以便在执行与从外部接收的编程命令对应的编程操作的同时,并行地执行GC操作。
参照图9,在步骤S901中,控制器130可以检查包括开放块的第n管芯。
在步骤S903中,控制器130可以检查除了第n管芯之外的其它管芯中是否存在空闲块。
当检查结果指示在其它管芯中不存在一个或多个空闲块(S905中为否)时,在步骤S911中,控制器130可以选择第n管芯中的作为空闲块的存储块之中的、P/E周期计数小于或等于第三阈值TH3的存储块作为候选目标块。在步骤S909中,控制器130可以将一个或多个所选择候选目标块存储在目标块候选列表144B中。
另一方面,当检查结果指示在其它管芯中存在一个或多个空闲块(S905中为是)时,在步骤S907中,控制器130可以选择其它管芯中的作为空闲块的存储块之中的、P/E周期计数小于或等于第四阈值TH4的一个或多个存储块作为一个或多个候选目标块。在步骤S909中,控制器130可以将一个或多个所选择候选目标块存储在目标块候选列表144B中。
选择P/E周期计数小于或等于预定阈值的存储块作为候选目标块的原因在于,存储块中的存储器单元的擦除速度在初始阶段相对较高,但可能会随着存储块的P/E周期计数的增加而相对降低。这是因为,当存储块中的存储器单元的编程速度和擦除速度较高时,存储器单元的阈值电压的变化会随着存储块的P/E周期计数的增加而增大,因此存储器单元以较高的速度劣化。
图10示出在并行地执行编程操作和GC操作时,通过反映管芯的每一个中的块的操作状态(例如,寿命和健康状态)来选择用于GC操作的目标块的方法。
参照图10,在步骤S1001中,控制器130可以从包括开放块的第n管芯中检查具有最小P/E周期计数的存储块。为了方便起见,将具有最小P/E周期计数的存储块称为第一候选空闲块(CFB)CFB_1。
在步骤S1003中,控制器130可以从除第n管芯之外的其它管芯中检查具有最校P/E周期计数的存储块。为了方便起见,将具有最校P/E周期计数的存储块称为第二CFB CFB_2。
在步骤S1005中,控制器130可以检查第一CFB CFB_1的P/E周期计数是否小于第二CFB CFB_2的P/E周期计数。
当步骤S1005的检查结果指示第一CFB CFB_1的P/E周期计数小于第二CFB CFB_2的P/E周期计数(步骤S1005中为是)时,在步骤S1007中,控制器130可以检查第一CFB CFB_1的P/E周期计数与第二CFB CFB_2的P/E周期计数之间的差值是否小于第五阈值TH5。将第一CFB CFB_1的P/E周期计数和第二CFB CFB_2的P/E周期计数之间的差值与第五阈值TH5进行比较的原因在于,当第n管芯中的第一CFB CFB_1的P/E周期计数明显小于其它管芯中的第二CFB CFB_2时,与其它管芯中的空闲块相比,第一CFB CFB_1以更低的速度劣化。因此,控制器130可以甚至在第n管芯中的空闲块之中选择候选目标块。
当步骤S1007的检查结果指示第一CFB CFB_1的P/E周期计数与第二CFB CFB_2的P/E周期计数之间的差值小于第五阈值TH5(S1007中为是)时,在步骤S1009中,控制器130可以选择其它管芯的空闲块之中的一个或多个候选目标块。也就是说,控制器130可以选择其它管芯中的空闲块之中的、P/E周期计数小于或等于第六阈值TH6的一个或多个空闲块作为一个或多个候选目标块。在步骤S1011中,控制器130可以将一个或多个所选择候选目标块存储在目标块候选列表144B中。
另一方面,当步骤S1007的检查结果指示第一CFB CFB_1的P/E周期计数与第二CFBCFB_2的P/E周期计数之间的差值大于或等于第五阈值TH5(S1007中为否)时,在步骤S1013中,控制器130可以在所有管芯中的空闲块之中选择一个或多个候选目标块。也就是说,控制器130可以选择所有管芯中的作为空闲块的存储块之中的、P/E周期计数小于或等于第七阈值TH7的一个或更多空闲块作为一个或多个候选目标块。在步骤S1011中,控制器130可以将一个或多个所选择候选目标块存储在目标块候选列表144B中。
当步骤S1005的检查结果指示第一CFB CFB_1的P/E周期计数不小于第二CFB CFB_2的P/E周期计数(步骤S1005中为否)时,在步骤S1009中,控制器130可以在其它管芯中的空闲块之中选择候选目标块。也就是说,控制器130可以选择其它管芯中包括的空闲块之中的、P/E周期计数小于或等于第六阈值TH6的空闲块作为候选目标块,并且在步骤S1011中,将所选择候选目标块存储在目标块候选列表144B中。
根据上述实施例,控制器可以控制一个或多个开放块,以便将编程命令和数据存储在存储器装置中。控制器可以将数据顺序地编程在开放块中。因此,当将通过GC操作排序的数据被程到相同开放块时,编程操作可能被延迟。此外,当优先执行编程操作时,将通过GC操作排序的数据编程到存储器装置的操作可能被延迟,或者可能停止GC操作。控制器可以选择与执行编程操作的块的位置不同的位置作为用于GC操作的目标块,使得可以通过不同的数据路径(例如,通道或通路)来传送不同数据(例如,编程数据和通过GC操作而排序的有效数据)。
在实施例中,控制器可以反映各个块的操作状态以选择被编程不同数据的块。例如,为了并行地执行编程操作和GC操作,控制器可以根据块的操作状态来选择用于GC操作的管芯,并且在所选择管芯内选择空闲块。
在实施例中,在将不同数据编程到存储器装置时,控制器可以优先考虑目标块的操作状态而不是目标块的位置。
根据本实施例,存储器系统可以在不包括用于编程操作的开放块的管芯中选择用于GC操作的目标块,从而并行地执行GC操作和编程操作。因此,存储器系统可缩短GC操作时间。
此外,执行GC操作的存储器系统可以选择更健康的块来编程数据,从而稳定地执行GC操作。
虽然为了说明目的已经描述了各个实施例,但是对于本领域技术人员显而易见的是,在不脱离如所附权利要求所限定的本发明的精神和范围的情况下,可以进行各种改变和修改。

Claims (20)

1.一种存储器系统,包括:
多个管芯;以及
控制器,通过多个数据路径联接至所述多个管芯,所述控制器通过所述多个数据路径来并行地传送从主机接收的第一数据和通过内部操作获得的第二数据。
2.根据权利要求1所述的存储器系统,其中所述控制器通过所述多个数据路径中的任何一个数据路径来交替地传送所述第一数据和所述第二数据。
3.根据权利要求1所述的存储器系统,其中所述控制器选择所述多个管芯中的多个存储块之中的具有较少数量的有效数据的牺牲块,将所述牺牲块的有效数据分类为所述第二数据,在与包括待存储所述第一数据的开放块的管芯不同的管芯中选择目标块,并且将所述第二数据编程到所选择目标块中。
4.根据权利要求1所述的存储器系统,其中所述控制器包括存储器,所述存储器包括垃圾收集缓冲器,即GC缓冲器以及目标块候选列表,所述GC缓冲器临时存储所述第二数据,所述目标块候选列表包括编程所述第二数据的候选目标块。
5.根据权利要求4所述的存储器系统,其中所述控制器基于所述第二数据的数量来确定所需目标块的数量,从所述目标块候选列表中选择所述目标块,并且将临时存储在所述GC缓冲器中的所述第二数据复制到所选择目标块中。
6.根据权利要求3所述的存储器系统,其中所述控制器检查所述多个管芯之中的包括开放块的第n管芯,并且检查除了所述第n管芯之外的其它管芯中是否存在空闲块,
其中当在所述其它管芯中存在所述空闲块时,所述控制器从所述其它管芯中的空闲块中选择候选目标块,并且将所选择候选目标块存储在所述目标块候选列表中;
其中当在所述其它管芯中不存在所述空闲块时,所述控制器从所述第n管芯选择候选目标块,并且将所选择候选目标块存储在所述目标块候选列表中。
7.根据权利要求1所述的存储器系统,其中所述控制器从所述多个管芯之中的包括开放块的第n管芯中选择第一候选空闲块,即第一CFB,从除了所述第n管芯之外的其它管芯中选择第二CFB,并且检查所述第一CFB和所述第二CFB之间的编程/擦除周期计数差值,即P/E周期计数差值是否小于预定阈值,
其中当所述第一CFB和所述第二CFB之间的P/E周期计数差值小于所述预定阈值时,所述控制器在所述其它管芯中的空闲块之中选择候选目标块,并且将所选择候选目标块存储在所述目标块候选列表中;并且
其中当所述第一CFB和所述第二CFB之间的P/E周期计数差值大于或等于所述预定阈值时,所述控制器从所述多个管芯中选择候选目标块,并且将所选择候选目标块存储在所述目标块候选列表中。
8.根据权利要求7所述的存储器系统,其中在选择所述第一CFB和所述第二CFB之后,所述控制器检查所述第一CFB的P/E周期计数是否小于所述第二CFB的P/E周期计数,
其中当所述第一CFB的P/E周期计数小于所述第二CFB的P/E周期计数时,所述控制器检查所述第一CFB和第二CFB之间的P/E周期计数差值是否小于所述预定阈值;并且
其中当所述第一CFB的P/E周期计数不小于所述第二CFB的P/E周期计数时,所述控制器在所述其它管芯中的空闲块之中选择候选目标块,并且将所选择候选目标块存储在所述目标块候选列表中。
9.根据权利要求4所述的存储器系统,其中基于所选择空闲块的P/E周期计数,从具有最小P/E周期计数的空闲块开始以升序在所述目标块候选列表中对所述候选目标块进行排序。
10.根据权利要求3所述的存储器系统,其中所述控制器将所述牺牲块的有效数据存储在所述所选择目标块中,并且通过擦除所述牺牲块的所有页面来将所述牺牲块设置为空闲块。
11.一种存储器系统的操作方法,所述存储器系统包括多个管芯和控制器,所述控制器通过多个数据路径而联接至所述多个管芯,所述操作方法包括:
通过所述多个数据路径来并行地传送第一数据和第二数据,
其中所述第一数据对应于根据从主机接收的命令的命令操作,并且所述第二数据通过内部操作而获得。
12.根据权利要求11所述的操作方法,其中所述内部操作包括:
在所述多个管芯中的多个存储块之中选择牺牲块;
将所述牺牲块的有效数据分类为所述第二数据;
从目标块候选列表中选择未包括在开放块的管芯中的目标块;
将所述第二数据编程到所选择目标块中;以及
在编程所述第二数据之后,通过擦除所述牺牲块的所有页面来将所述牺牲块设置为空闲块。
13.根据权利要求12所述的操作方法,其中所述目标块候选列表是存储候选目标块的列表,基于所述多个空闲块的编程/擦除周期计数,即P/E周期计数来在所述多个空闲块之中选择所述候选目标块,其中从具有最小P/E周期计数的空闲块开始以升序或以给定优先级来对所述候选目标块进行排序。
14.根据权利要求12所述的操作方法,进一步包括在从所述目标块候选列表中选择未包括在所述开放快的管芯中的目标块之前,基于所选择牺牲块中的有效数据的数量来判定所需目标块的数量。
15.根据权利要求12所述的操作方法,其中从所述目标块候选列表中选择未包括在所述开放快的管芯中的目标块包括:
检查所述目标块候选列表中是否存在候选目标块;
当所述目标块候选列表中存在所述候选目标块时,从具有最小编程/擦除周期计数,即P/E周期计数的第一候选目标块开始检查所述候选目标块是否包括在与所述开放块的管芯相同的管芯中;
当所述第一候选目标块未包括在与所述开放块的管芯相同的管芯中时,选择所述第一候选目标块作为所述目标块;
当所述第一候选目标块包括在与所述开放块的管芯相同的管芯中时,将索引增加一,以检查第二候选目标块是否包括在与所述开放块的管芯相同的管芯中;以及
当直到所述目标块候选列表的最后候选目标块也没有候选目标块被选择作为所述目标块时,从所述多个空闲块中选择所述候选目标块并且将所选择候选目标块存储在所述目标块候选列表中。
16.根据权利要求15所述的操作方法,进一步包括当所述目标块候选列表中不存在所述候选目标块时,从所述多个空闲块中选择未包括在所述开放块的管芯中的候选目标块,并且将所选择候选目标块存储在所述目标块候选列表中。
17.根据权利要求13所述的操作方法,其中基于所述多个空闲块的P/E周期计数来在所述多个空闲块之中选择所述候选目标块包括:
检查所述多个管芯之中的、包括待存储所述第一数据的开放块的第n管芯;
检查在除了所述第n管芯之外的其它管芯中是否存在空闲块;
当所述其它管芯中存在所述空闲块时,选择所述其它管芯中的空闲块之中的、P/E周期计数小于或等于预定阈值的空闲块作为候选目标块,并且将所选择候选目标块存储在所述目标块候选列表中;以及
当所述其它管芯中不存在所述空闲块时,选择所述第n管芯中的空闲块之中的、P/E周期计数小于或等于所述预定阈值的空闲块作为候选目标块,并且将所选择候选目标块存储在所述目标块候选列表中。
18.根据权利要求13所述的操作方法,其中基于所述多个空闲块的P/E周期计数来在所述多个空闲块之中选择所述候选目标块包括:
从在所述多个管芯之中的包括开放块的第n管芯中选择第一候选空闲块,即第一CFB;
从除了所述第n管芯的其它管芯中选择第二CFB;
检查所述第一CFB和所述第二CFB之间的P/E周期计数差值是否小于预定阈值;
当所述第一CFB和所述第二CFB之间的P/E周期计数差值小于所述预定阈值时,在所述其它管芯中的空闲块之中选择候选目标块,并且将所选择候选目标块存储在所述目标块候选列表中;以及
当所述第一CFB和所述第二CFB之间的P/E周期计数差值大于或等于所述预定阈值时,从所述多个管芯中选择候选目标块,并且将所选择候选目标块存储在所述目标块候选列表中。
19.根据权利要求18所述的操作方法,进一步包括在检查所述第一CFB和所述第二CFB之间的P/E周期计数差值是否小于所述预定阈值之前,
检查所述第一CFB的P/E周期计数是否小于所述第二CFB的P/E周期计数;
当所述第一CFB的P/E周期计数小于所述第二CFB的P/E周期计数时,检查所述第一CFB和所述第二CFB之间的P/E周期计数差值是否小于所述预定阈值;以及
当所述第一CFB的P/E周期计数不小于所述第二CFB的P/E周期计数时,在所述其它管芯中的空闲块之中选择候选目标块,并且将所选择候选目标块存储在所述目标块候选列表中。
20.根据权利要求11所述的操作方法,进一步包括通过所述多个数据路径中的任意一个数据路径来交替地传送所述第一数据和所述第二数据。
CN201911243474.8A 2019-04-22 2019-12-06 包括多个存储数据的区域的存储器系统及其操作方法 Withdrawn CN111831576A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2019-0046913 2019-04-22
KR1020190046913A KR20200123683A (ko) 2019-04-22 2019-04-22 데이터를 저장할 수 있는 복수의 영역을 포함하는 메모리 시스템 및 메모리 시스템의 동작방법

Publications (1)

Publication Number Publication Date
CN111831576A true CN111831576A (zh) 2020-10-27

Family

ID=72832488

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911243474.8A Withdrawn CN111831576A (zh) 2019-04-22 2019-12-06 包括多个存储数据的区域的存储器系统及其操作方法

Country Status (3)

Country Link
US (1) US11487658B2 (zh)
KR (1) KR20200123683A (zh)
CN (1) CN111831576A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI798016B (zh) * 2021-04-01 2023-04-01 慧榮科技股份有限公司 快閃記憶體控制器的控制方法、快閃記憶體控制器以及儲存裝置

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210044564A (ko) * 2019-10-15 2021-04-23 삼성전자주식회사 스토리지 장치 및 그것의 가비지 컬렉션 방법
KR20220165074A (ko) 2021-06-07 2022-12-14 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7451265B2 (en) * 2006-08-04 2008-11-11 Sandisk Corporation Non-volatile memory storage systems for phased garbage collection
US8473669B2 (en) * 2009-12-07 2013-06-25 Sandisk Technologies Inc. Method and system for concurrent background and foreground operations in a non-volatile memory array
US9652415B2 (en) 2014-07-09 2017-05-16 Sandisk Technologies Llc Atomic non-volatile memory data transfer
US9811462B2 (en) * 2015-04-30 2017-11-07 Toshiba Memory Corporation Memory system executing garbage collection
US9870149B2 (en) 2015-07-08 2018-01-16 Sandisk Technologies Llc Scheduling operations in non-volatile memory devices using preference values
US10102119B2 (en) * 2015-10-30 2018-10-16 Sandisk Technologies Llc Garbage collection based on queued and/or selected write commands
US10254998B2 (en) 2015-11-03 2019-04-09 Samsung Electronics Co., Ltd. Coordinated garbage collection of flash devices in a distributed storage system
US10002073B2 (en) * 2015-11-06 2018-06-19 SK Hynix Inc. Selective data recycling in non-volatile memory
US10712972B2 (en) * 2017-09-29 2020-07-14 Western Digital Technologies, Inc. Read commands scheduling method in storage device
US10585791B2 (en) * 2018-03-20 2020-03-10 Intel Corporation Ordering of memory device mapping to reduce contention

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI798016B (zh) * 2021-04-01 2023-04-01 慧榮科技股份有限公司 快閃記憶體控制器的控制方法、快閃記憶體控制器以及儲存裝置
US11809328B2 (en) 2021-04-01 2023-11-07 Silicon Motion, Inc. Control method of flash memory controller and associated flash memory controller and storage device
TWI823784B (zh) * 2021-04-01 2023-11-21 慧榮科技股份有限公司 快閃記憶體控制器的控制方法、快閃記憶體控制器以及儲存裝置

Also Published As

Publication number Publication date
US20200334144A1 (en) 2020-10-22
KR20200123683A (ko) 2020-10-30
US11487658B2 (en) 2022-11-01

Similar Documents

Publication Publication Date Title
CN111240586B (zh) 存储器系统及其操作方法
US11216368B2 (en) Memory system for garbage collection using page offsets, invalid offset ratio, sequential ratio, and logical address prediction
CN110781096B (zh) 用于通过预测需求时间来执行垃圾收集的设备和方法
KR101465789B1 (ko) 페이지 복사 횟수를 줄일 수 있는 메모리 카드 시스템의쓰기 및 병합 방법
US11249903B2 (en) Memory system for garbage collection operation and operating method thereof
US11113198B2 (en) Timed data transfer between a host system and a memory sub-system
US11573742B2 (en) Dynamic data placement for collision avoidance among concurrent write streams
CN111831583A (zh) 用于传送存储器系统中的映射段的设备和方法
CN110618945B (zh) 存储系统
CN111078582B (zh) 基于模式调整映射段的存储器系统及其操作方法
CN110825659B (zh) 用于检查存储器系统中的块中的有效数据的设备和方法
CN111831576A (zh) 包括多个存储数据的区域的存储器系统及其操作方法
US11782841B2 (en) Management of programming mode transitions to accommodate a constant size of data transfer between a host system and a memory sub-system
US11392309B2 (en) Memory system for performing migration operation and operating method thereof
US20170147231A1 (en) Storage device and operating method of storage device
CN110895449A (zh) 用于在存储器系统中管理有效数据的装置和方法
US20170255636A1 (en) Method and system for storing metadata of log-structured file system
CN112130749B (zh) 数据储存装置以及非挥发式存储器控制方法
KR20200014175A (ko) 소요시간을 예측하여 가비지 컬렉션을 수행하는 방법 및 장치
CN113811847A (zh) 来自主机系统的写入命令的部分执行
KR20230115196A (ko) 메모리 블록을 할당 해제하는 스토리지 컨트롤러, 그것의 동작하는 방법, 및 그것을 포함하는 스토리지 장치의 동작하는 방법
CN112527692A (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
WW01 Invention patent application withdrawn after publication

Application publication date: 20201027

WW01 Invention patent application withdrawn after publication