CN113138939A - 用于垃圾收集的存储器系统及其操作方法 - Google Patents

用于垃圾收集的存储器系统及其操作方法 Download PDF

Info

Publication number
CN113138939A
CN113138939A CN202010889203.6A CN202010889203A CN113138939A CN 113138939 A CN113138939 A CN 113138939A CN 202010889203 A CN202010889203 A CN 202010889203A CN 113138939 A CN113138939 A CN 113138939A
Authority
CN
China
Prior art keywords
valid
memory
offsets
offset
page
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
CN202010889203.6A
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 CN113138939A publication Critical patent/CN113138939A/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
    • G06F12/0261Garbage collection, i.e. reclamation of unreferenced memory using reference counting
    • 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
    • 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/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0882Page mode
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
    • 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/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)

Abstract

本公开涉及一种存储器系统。该存储器系统包括多个存储块,每个存储块包括多个页面,多个页面中的每一个包括多个偏移;以及控制器,包括存储器,并且被配置成使用存储器对牺牲块执行垃圾收集操作,其中该控制器从多个存储块之中选择牺牲块,通过检查牺牲块中包括的有效页面中的多个偏移之中是否存在无效偏移来计算无效偏移比率,并且,当无效偏移比率包括在预定的阈值范围内时,计算有效页面的顺序比率,根据顺序比率来预测无效偏移的逻辑地址,将有效页面中的多个有效偏移中存储的有效数据和对应于预测的逻辑地址的存储器区域中存储的有效数据存储在存储器中,使用与有效页面中的多个偏移相对应的期望值来计算有效页面的顺序比率。

Description

用于垃圾收集的存储器系统及其操作方法
相关申请的交叉引用
本申请要求于2020年1月17日提交的申请号为10-2020-0006576的韩国专利申请的优先权,其通过引用整体并入本文。
技术领域
本公开实施例涉及一种半导体装置,并且更特别地,涉及一种用于垃圾收集的存储器系统及其操作方法。
背景技术
近来,计算环境范例已经转变成可随时随地访问计算机系统的普适计算。因此,诸如移动电话、数码相机和笔记本电脑的便携式电子装置的使用已迅速增长。这种便携式电子装置通常使用包括存储器装置的存储器系统,诸如数据存储装置。数据存储装置用作便携式电子装置的主存储器装置或辅助存储器装置。
与硬盘装置相比,由于包括非易失性存储器装置的数据存储装置不具有机械驱动单元(例如,具有读取/写入头的机械臂),因此该数据存储装置具有优异的稳定性和耐久性、快速数据访问率和低功耗。具有这些优点的数据存储装置可包括通用串行总线(USB)存储器装置、具有各种接口的存储卡、固态驱动器(SSD)等中的任意一种。
发明内容
各个实施例涉及一种用于垃圾收集的存储器系统及其操作方法。
而且,各个实施例涉及一种存储器系统及其操作方法,其中,当在执行垃圾收集时,在牺牲块的有效页面中包括的一个或多个有效偏移中存储的有效数据被迁移到目标块时,通过使用映射表检查碎片化数据,将已经存储在有效页面中包括的无效偏移中的碎片化数据存储在目标块中,从而提高读取性能。
在实施例中,一种存储器系统可包括:多个存储块,每个存储块包括多个页面,多个页面中的每一个包括多个偏移;以及控制器,包括存储器,并且被配置成使用存储器对牺牲块执行垃圾收集操作,其中控制器从多个存储块之中选择牺牲块,通过检查牺牲块中包括的有效页面中的多个偏移之中是否存在无效偏移来计算无效偏移比率,并且,当无效偏移比率包括在预定的阈值范围内时,计算有效页面的顺序比率,根据顺序比率预测无效偏移的逻辑地址,将有效页面中的多个有效偏移中存储的有效数据和与预测的逻辑地址相对应的存储器区域中存储的有效数据存储在存储器中,使用与有效页面中的多个偏移相对应的期望值来计算有效页面的顺序比率。
在实施例中,一种用于操作存储器系统的方法,该存储器系统包括多个存储块和用于控制对多个存储块的垃圾收集操作的控制器,该方法包括:从多个存储块之中选择牺牲块;通过检查在配置牺牲块中包括的有效页面的多个偏移中是否包括无效偏移来计算无效偏移比率;当无效偏移比率包括在预定的阈值范围内时,设置与多个偏移相对应的期望值;使用多个偏移之中的多个有效偏移的期望值来计算有效页面的顺序比率;在有效页面的顺序比率等于或高于预定的阈值的情况下,预测与对应于多个偏移的期望值之中的无效偏移相对应的期望值,作为无效偏移的逻辑地址;并且将与预测的逻辑地址相对应的存储器区域中存储的有效数据和多个有效偏移中存储的有效数据存储在目标块中。
在本技术中,当在执行垃圾收集时,将在牺牲块的有效页面中包括的一个或多个有效偏移中存储的有效数据存储在目标块中时,在有效页面中包括无效偏移的情况下,确定有效页面中存储的有效数据的逻辑块地址的顺序性。当有效数据被确定为顺序数据时,搜索已经存储在无效偏移中的数据并将该数据存储在目标块中,从而提高读取性能。
在本技术中,当对牺牲块执行垃圾收集时,在牺牲块中的有效页面的多个偏移中包括无效偏移的情况下,使用与多个偏移之中的有效偏移相对应的逻辑块地址来计算有效页面的顺序比率,使用顺序比率来预测与有效页面中包括的无效偏移相对应的逻辑块地址,并且从与所预测的逻辑块地址相对应的物理地址读取数据并将该数据存储在目标块中,从而提高读取性能。
附图说明
图1示出根据本公开实施例的存储器系统中的控制器。
图2是示出根据本公开实施例的存储器系统中使用的超级存储块的示图。
图3是示出根据实施例的在存储器系统中执行的数据处理操作的示图。
图4是示出构成存储器装置中包括的块的页面的配置的示图。
图5是示出根据本公开实施例的用于在存储器系统中执行垃圾收集操作的设备的示图。
图6至图8是用于描述根据本公开实施例的存储器系统中的垃圾收集操作的示图。
图9A和图9B是示出根据本公开实施例的映射数据管理器的操作的示图。
图10是描述根据本公开实施例的操作存储器系统的方法的流程图。
图11是描述根据本公开实施例的计算有效页面的顺序比率的方法的流程图。
具体实施方式
以下将参照附图更详细地描述各个实施例。然而,本公开可以以不同的形式来实现,并且不应被解释为限于本文中阐述的实施例。相反,提供这些实施例使得本公开将是彻底且完全的,并且将向本领域技术人员充分传达本公开的范围。在整个本公开中,相同的附图标记在本公开的各个附图和实施例中始终指代相同的部分。
图1示出根据本公开实施例的存储器系统。参照图1,存储器系统包括控制器130和存储器装置150。控制器130与主机102和存储器装置150协作。控制器130可包括主机接口(I/F)132、闪存转换层(FTL)电路40、存储器接口(I/F)142和存储器144。
主机接口132可处理来自主机102的命令和数据。作为示例而非限制,主机接口132可包括命令队列56、缓冲器管理器52和事件队列54。命令队列56可顺序地存储来自主机102的命令和数据,并按存储顺序将命令和数据输出到缓冲器管理器52。缓冲器管理器52可对从命令队列56传递的命令和数据进行分类、管理或调整。事件队列54可从缓冲器管理器52顺序地传输用于处理命令和数据的事件。
可从主机102连续地接收多个相同特征的命令或数据,或者可在混合或打乱之后将不同特征的命令和数据传输到存储器系统。例如,可传递用于读取数据的多个命令(即,读取命令),或者可将读取命令和编程命令/写入命令交替地传输到存储器系统。主机接口132可将从主机102接收的命令和数据顺序地存储到命令队列56。此后,根据从主机102接收的命令和数据的特征(例如类型),主机接口132可估计或预测控制器130将执行何种内部操作。主机接口132可至少基于命令和数据的特征来确定命令和数据的处理顺序和优先级。根据来自主机102的命令和数据的特征,主机接口132中的缓冲器管理器52被配置成确定缓冲器管理器52是否应将命令和数据存储在存储器144中,或者缓冲器管理器52是否应将命令和数据传递到闪存转换层(FTL)电路40中。事件队列54接收从缓冲器管理器52输入的事件,这些事件将由存储器系统或控制器130响应于来自主机102的命令和数据而在内部运行和处理,以便按照接收的顺序将事件传递到闪存转换层(FTL)电路40。
根据实施例,闪存转换层(FTL)电路40可包括状态管理器(GC/WL)42、映射管理器(MM)44、主机请求管理器(HRM)46和块管理器(BM/BBM)48。主机请求管理器46可管理从事件队列54输入的事件。映射管理器44可处理或控制映射数据。状态管理器42可执行垃圾收集(GC)或损耗均衡(WL)。块管理器48可对存储器装置150中的块执行命令或指令。
作为示例而非限制,主机请求管理器46可根据从主机接口132传递的读取命令和编程命令以及事件,使用映射管理器44和块管理器48来处置或处理请求。主机请求管理器46可向映射数据管理器44发送查询或请求,以确定与随事件输入的逻辑地址相对应的物理地址。主机请求管理器46可将读取请求与物理地址一起发送到向存储器接口142,以处理读取请求(即,处置事件)。另一方面,主机请求管理器46可向块管理器48发送编程请求(或写入请求),以将输入的数据编程到存储器装置150中的空页面(即,没有数据的页面),然后,可将与编程请求相对应的映射更新请求传输到映射管理器44,从而更新映射地址。
在此,块管理器48可将从主机请求管理器46、映射数据管理器44和/或状态管理器42传递的编程请求转换为用于存储器装置150的闪存编程请求,以管理存储器装置150中的闪存块。为了提高存储器系统的编程或写入性能,块管理器48可收集编程请求,并向存储器接口142发送用于多平面和单触发编程操作的闪存编程请求。块管理器48可向存储器接口142发送若干个闪存编程请求,以增强多通道和多方向闪存控制器的并行处理。
块管理器48可被配置成根据有效页面的数量来管理存储器装置150中的块,当需要空闲块时选择并擦除没有有效页面的块,并且当确定有必要进行垃圾收集时选择包括最少数量的有效页面的块。状态管理器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仅当最新的映射表仍然指向旧的物理地址时,才可执行映射更新操作以确保准确性。
根据实施例,状态管理器42、映射管理器44和块管理器48中的至少一个可包括将参照图5来描述的垃圾收集模块(GCM)196和映射数据管理器198。例如,即使没有从主机接口单元132传输的命令,状态管理器42、映射管理器44和块管理器48中的至少一个也可执行后台操作。
存储器接口142可用作处理在控制器130和存储器装置150之间传送的命令和数据的接口,以便允许控制器130响应于从主机102传递的请求来控制存储器装置150。当存储器装置150是闪速存储器时,特别是当存储器装置150是NAND闪速存储器时,存储器接口142可在处理器134的控制下生成针对存储器装置150的控制信号,并且可处理待写入存储器装置150中的写入数据或从存储器装置150输出的读取数据。存储器接口142可提供控制器130和存储器装置150之间的NAND闪存接口的操作。根据实施例,存储器接口142可利用被称为闪存接口层(FIL)的固件来实施为与存储器装置150交换数据的组件。
存储器装置150可包括多个存储块。根据该块的一个存储器单元中可存储或表示的位数,多个存储块中的每一个可以是单层单元(SLC)存储块或多层单元(MLC)存储块。在此,SLC存储块包括由每个存储一位数据的存储器单元实施的多个页面。SLC存储块具有高数据I/O操作性能和高耐久性。MLC存储块包括由每个存储多位(例如,两位或更多位)数据的存储器单元实施的多个页面。与SLC存储块相比,MLC存储块对于相同空间可具有更大的存储容量。在存储容量方面,MLC存储块可高度集成。在实施例中,存储器装置150可利用MLC存储块来实施,诸如双层单元存储块、三层单元(TLC)存储块、四层单元(QLC)存储块或它们的组合。双层存储块可包括由每个能够存储2位数据的存储器单元实施的多个页面。三层单元(TLC)存储块可包括由每个能够存储3位数据的存储器单元实施的多个页面。四层单元(QLC)存储块可包括由每个能够存储4位数据的存储器单元实施的多个页面。在另一实施例中,存储器装置150可用包括由每个能够存储5位或更多位数据的存储器单元实施的多个页面的块来实施。
在本公开实施例中,存储器装置150是非易失性存储器,诸如NAND闪速存储器、NOR闪速存储器等的闪速存储器。在另一实施例中,存储器装置150可以是相变随机存取存储器(PCRAM)、铁电随机存取存储器(FRAM)、自旋注入磁性存储器(例如自旋转移力矩磁性随机存取存储器(STT-MRAM))等中的至少一种。
图2是示出根据本公开实施例的存储器系统中使用的超级存储块的示图。
图2示出包括在诸如图1的存储器装置150的存储器装置中的存储器管芯1501至1502。例如,存储器装置150可包括第一存储器管芯(DIE0)1501和第二存储器管芯(DIE1)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将多个存储块分组到超级存储块中并管理超级存储块的方案。下面将参照图2描述作为示例的三个方案。
例如,第一方案是控制器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是示出根据实施例的在存储器系统中执行的数据处理操作的示图。将参照图1所示的存储器系统来描述图3所示的数据处理操作。参照图1和图3,控制器130执行与从主机102接收的命令相对应的命令操作。例如,当由主机102提供编程命令时,控制器130执行编程操作,以将与编程命令相对应的用户数据编程或存储在存储器装置150的存储块552、554、562、564、572、574、582和584中的多个页面中。
控制器130生成和更新针对用户数据的元数据,并且将元数据编程或存储在存储器装置150的存储块552、554、562、564、572、574、582和584中。元数据包括存储在存储块552、554、562、564、572、574、582和584中的用户数据的逻辑到物理(逻辑/物理或L2P)信息和物理到逻辑(物理/逻辑或P2L)信息。而且,元数据可包括关于与从主机102接收的命令相对应的命令数据的信息、关于与命令相对应的命令操作的信息、关于待执行命令操作的存储器装置150的存储块的信息以及关于与命令操作相对应的映射数据的信息中的一个或多个。换言之,除了用户数据,元数据可包括与从主机102接收的命令相对应的所有信息和数据。
参照图3,控制器130可包括第一缓冲器510和第二缓冲器520。控制器130将与从主机102接收的编程命令相对应的用户数据存储在第一缓冲器510中。当用户数据包括数据段512时,控制器130将用户数据的数据段512存储在用作数据缓冲器/高速缓存的第一缓冲器510中。第一缓冲器510可包括在图1所示的控制器130的存储器144中。此后,控制器130将第一缓冲器510中存储的数据段512编程或存储在存储器装置150的存储块552、554、562、564、572、574、582和584中包括的页面中。
当用户数据的数据段512被编程或存储在存储块552、554、562、564、572、574、582和584中的页面中时,控制器130生成L2P段522和P2L段524作为元数据。然后,控制器130将L2P段522和P2L段524存储在控制器130的第二缓冲器520中。第二缓冲器520可包括在控制器130的存储器144中。在第二缓冲器520中,L2P段522和P2L段524可以列表的形式存储。然后,控制器130通过映射清除操作将第二缓冲器520中存储的L2P段522和P2L段524编程或存储在存储块552、554、562、564、572、574、582和584的页面中。
控制器130执行与从主机102接收的命令相对应的命令操作。例如,控制器130执行与读取命令相对应的读取操作。在读取操作期间,控制器130通过将与读取命令相对应的用户数据的L2P段522和P2L段524从存储器装置150加载到第二缓冲器520中来检查该L2P段522和P2L段524。然后,控制器130从存储器装置150的由L2P段522和P2L段524识别的存储位置读取用户数据的数据段512。也就是说,基于L2P段522和P2L段524,控制器130从存储块552、554、562、564、572、574、582和584之中的特定存储块的特定页面中读取用户数据的数据段512。然后,控制器130将从特定页面读取的数据段512存储在第一缓冲器510中,然后将数据段512提供到主机102。
图4是示出构成图1所示的存储器装置150中包括的存储块的页面的配置的示图。
参照图4,在存储器装置150中,每个存储块中包括的页面PAGE0至PAGE N中的每一个可包括预定数量的偏移,例如Offset 0至Offset3。因此,预定数量的偏移Offset 0至Offset 3中包括的存储器单元的数量之和可与页面PAGE 0至PAGE N的每一个中包括的存储器单元的数量相同。
当页面PAGE 0至PAGE N中的每一个包括预定数量的偏移Offset0至Offset 3时,分别对应于多个存储块的多个页面缓冲器中的每一个可包括预定数量的偏移页面缓冲器PB_Offset 0至PB_Offset 3。
通过PAGE 0至PAGE N中的每一个包括偏移Offset 0至Offset 3的配置,可输入/输出小于一个页面的存储容量的数据。例如,参照图4,一个页面包括四个偏移Offset 0至Offset 3。为了以页面单位为来输入/输出数据,可通过使用所有四个偏移Offset 0至Offset 3和对应于四个偏移Offset 0至Offset 3的四个偏移页面缓冲器PB_Offset 0至PB_Offset 3来输入/输出数据。
为了以小于页面单位的单位输入/输出数据,也就是以三个偏移为单位输入/输出数据,可通过从四个偏移Offset 0至Offset 3之中仅选择三个偏移来输入/输出数据。在这种情况下,除了从四个偏移Offset 0至Offset 3之中选择作为数据输入/输出目标的三个偏移外,剩余一个偏移中可存储虚拟数据、未被选择作为输出目标的数据或无效数据。
类似地,为了以小于页面单位的单位输入/输出数据,也就是以两个偏移为单位输入/输出数据,可通过从四个偏移Offset 0至Offset 3之中仅选择两个偏移来输入/输出数据。在这种情况下,除了从四个偏移Offset 0至Offset 3之中选择作为数据输入/输出目标的两个偏移外,剩余两个偏移中可存储虚拟数据、未被选择作为输出目标的数据或无效数据。
类似地,为了以小于页面单位的单位输入/输出数据,也就是以一个偏移为单位输入/输出数据,可通过从四个偏移Offset 0至Offset 3之中仅选择一个偏移来输入/输出数据。在这种情况下,除了从四个偏移Offset 0至Offset 3之中选择作为数据输入/输出目标的一个偏移外,剩余三个偏移中可存储虚拟数据、未被选择作为输出目标的数据或无效数据。
在从四个偏移Offset 0至Offset 3之中选择一些偏移之后,可使用以下方案向所选择的偏移输入数据/从所选择的偏移输出数据。首先,当将数据存储在从四个偏移Offset0至Offset 3之中选择的一些偏移中时,数据被高速缓存在四个偏移页面缓冲器PB_Offset0至PB_Offset 3之中的、与所选择偏移相对应的偏移页面缓冲器中,并且虚拟数据被高速缓存在与剩余的未选择偏移相对应的偏移页面缓冲器中。之后,被高速缓存在四个偏移页面缓冲器PB_Offset 0至PB_Offset 3中的所有数据和虚拟数据被编程到四个偏移Offset0至Offset 3。
进一步地,当从自四个偏移Offset 0至Offset 3之中选择的一些偏移输出数据时,四个偏移Offset 0至Offset 3中存储的所有数据被读取并高速缓存在四个偏移页面缓冲器PB_Offset 0至PB_Offset 3中。之后,选择并输出在四个偏移页面缓冲器PB_Offset 0至PB_Offset 3之中的、与所选择偏移相对应的偏移页面缓冲器中高速缓存的数据,并且与剩余的未选择偏移相对应的偏移页面缓冲器中高速缓存的数据被删除而不被输出。
当如上所述在存储器装置150中以小于页面单位的单位执行输入/输出数据的操作,也就是以偏移为单位执行输入/输出数据的操作时,也可以以偏移为单位设置数据是有效还是无效。
图5是示出根据本公开实施例的用于在存储器系统110中执行垃圾收集操作的设备的示图。
在描述图5之前,可认为,在上文参照图1至图4描述的存储器系统中,随着控制器130中从外部装置或内部装置接收的写入或读取命令的吞吐量增加,存储块中存储的数据可进一步分散,从而可能出现碎片现象。当控制器130从主机102接收到读取请求并相应地执行读取操作时,由于数据碎片,读取性能可能显著地劣化。特别地,当控制器130从主机102接收到针对碎片化顺序数据的读取请求并相应地执行读取操作时,读取性能可能显著地劣化。这是因为对应于一个逻辑地址序列的数据可能不能顺序地存储在由一个物理地址序列指定的存储器区域中。因此,应当通过搜索分别对应于逻辑地址序列的物理地址来读取数据。这样,由于控制器130执行若干次从存储器装置150读取碎片化的顺序数据的操作,因此读取性能可能显著地劣化。为了解决这个问题,在主机102没有发出挂起请求的空闲状态下,控制器130可执行垃圾收集操作作为后台操作,同时可对碎片化的顺序数据执行碎片整理,从而提高读取性能。
碎片整理指示迁移属于一个逻辑地址序列并分散在由至少两个物理地址序列指示的存储器区域中的数据,从而控制属于一个逻辑地址序列的数据存储在由一个物理地址序列指示的存储器区域中。换言之,当执行垃圾收集操作时,控制器130不仅可将有效页面的有效偏移中存储的有效数据迁移到目标块,而且可预测由于有效页面中的碎片而出现的已经存储在无效偏移中的数据,从存储所预测的数据的存储器区域复制所预测的数据,并将所预测的数据迁移到目标块,从而提高读取性能。下面将详细描述控制器130中包括的执行与之相关的操作的垃圾收集模块196和映射数据管理器198。
参照图5,存储器系统110可包括存储器装置150和控制存储器装置150的控制器130。
存储器装置150可包括多个存储块。例如,多个存储块可包括第零块BLK0至第五块BLK5。多个存储块可被划分为空闲块、开放块或活动块以及源块。空闲块表示不存储数据的存储块。例如,在多个存储块之中,第四块BLK4和第五块BLK5是空闲块。开放块表示即使数据存储在存储块中但仍保留空页面的存储块。空页面表示不存储数据的页面。例如,在多个存储块之中,第三块BLK3是开放块。源块表示存储数据并耗尽空页面的存储块。也就是说,这意味着源块中不存在空页面。例如,在多个存储块之中,第零块BLK0、第一块BLK1和第二块BLK2是源块。
控制器130可包括垃圾收集模块196、映射数据管理器198和存储器144。垃圾收集模块196和映射数据管理器198可包括在FTL 40中。FTL 40可由一个或多个处理器来实施。
当执行垃圾收集操作时,存储器144可用于临时存储牺牲块中包括的有效页面的有效偏移中存储的有效数据以及与使用比邻于有效页面中的无效偏移的有效偏移来预测的逻辑地址相对应的数据。
在实施例中,当执行垃圾收集操作时,垃圾收集模块196将牺牲块中的有效页面的有效偏移中存储的有效数据临时存储在存储器144中,然后将有效数据迁移到目标块。另外,当由于碎片而在有效页面中出现无效偏移时,垃圾收集模块196搜索已经存储在无效偏移中并且目前是存储在与包括无效偏移的牺牲块不同的块中或存储在牺牲块中的不同页面中的碎片化数据的数据,将碎片化数据存储在存储器144中,然后将碎片化数据迁移到目标块。通过执行该操作,当响应于顺序读取请求而执行顺序读取操作时,可提高读取性能。
具体地,垃圾收集模块196基于每个预定时段的空闲块计数(FBC)来决定是否进入垃圾收集模式。也即,控制器130可通过检查存储器装置150中的空闲块的数量即空闲块计数(FBC)是否等于或小于预定的第一阈值TH1,来决定是否进入垃圾收集模式。预定的第一阈值TH1是用于控制器130确定当控制器130确保至少一个空闲块时的时间点的最小空闲块计数。预定的第一阈值TH1可以是预先确定的值,并且可根据存储器系统110的操作状况来改变最小空闲块计数。当空闲块计数(FBC)超过第一阈值TH1(即,FBC>TH1)时,控制器130不进入垃圾收集模式。
另一方面,当垃圾收集模块196确定空闲块计数(FBC)等于或小于第一阈值TH1(即,FBC<=TH1)时,发生执行垃圾收集操作的事件,因此垃圾收集模块196可从至少一个管芯中包括的多个源块之中选择至少一个牺牲块,以便执行垃圾收集操作。有两种方法来选择牺牲块。第一种方法是使用多个源块中的每一个的有效页面计数,第二种方法是使用多个源块的平均有效页面计数。在第一种方法中,垃圾收集模块196可在多个源块之中选择有效页面计数等于或小于预定的第二阈值TH2的源块作为牺牲块。在第二种方法中,垃圾收集模块196可将第二阈值TH2设置为多个源块的有效页面计数的平均有效页面计数,并且可选择有效页面计数等于或小于第二阈值TH2的源块作为牺牲块。在本实施例中,每个源块的有效页面计数表示源块中包括的有效页面的数量。
在本实施例中,使用第一种方法来选择牺牲块,例如,基于每个源块的有效页面计数(VPC)和预定的第二阈值TH2。例如,参照图5,当垃圾收集模块196进入垃圾收集模式并且用于选择牺牲块的第二阈值TH2被设置为“30”时,因为第零块BLK0的有效页面计数为25,第一块BLK1的有效页面计数为50,并且第二块BLK2的有效页面计数为66,所以可选择第零块BLK0为牺牲块。
在选择牺牲块之后,垃圾收集模块196顺序地检查被选择为牺牲块的源块中包括的多个页面PAGE 0至PAGE N(N是整数)中的每一个是否是有效页面。为了检查多个页面PAGE 0至PAGE N中的每一个是否是有效页面,可使用指示每个页面的有效性的标志信息(未示出)。也就是说,指示多个页面PAGE 0至PAGE N中的每一个的有效性的标志信息可由单个位来表示,并且可由“0”或“1”来表示。例如,包括至少一个有效偏移的页面可由“0”表示为有效页面,而不包括有效偏移的页面可由“1”表示为无效页面。以这种方式,通过使用标志信息管理每个页面的有效性,当在垃圾收集期间需要检查每个页面的有效性时可快速检查每个页面的有效性。指示多个页面PAGE 0至PAGE N中的每一个的有效性的标志信息可存储在每个页面的保留区域中或存储器144中。
具体地,在第n页面不是有效页面的情况下,垃圾收集模块196检查第n页面是否是牺牲块中的最末页面,n在0至N的范围内。在第n页面不是最末页面的情况下,垃圾收集模块196将用于检查有效性的页面数量增加1,并检查下一页面的有效性。另一方面,如果确定第n页面是有效页面,则垃圾收集模块196计算被确定为有效页面的第n页面的无效偏移比率(IVOR)。可通过确定第n页面中包括的多个偏移之中的无效偏移的数量来计算无效偏移比率。然后,确定所计算的无效偏移比率是否超过“0”并且等于或小于第三阈值TH3(0<IVOR<=TH3)。确定第n页面的无效偏移比率是否超过“0”并且等于或小于第三阈值TH3的原因是,当无效偏移比率为“0”或超过第三阈值TH3时,仅第n页面中包括的至少一个有效偏移中存储的有效数据可存储在存储器144中。也即,当无效偏移比率为“0”或超过第三阈值TH3时,不必为第n页面计算顺序比率(SR)。无效偏移比率(IVOR)可表示每个页面中无效偏移的数量与总偏移的数量之比。
当有效页面中包括的多个偏移之中的无效偏移的无效偏移比率超过第三阈值TH3时,计算用于搜索与无效偏移相关的碎片化数据的顺序比率需要大量时间,因此,无法有效地对牺牲块执行垃圾收集。同时,当有效页面的无效偏移比率为“0”时,有效页面中没有无效偏移,因此不必计算用于搜索与无效偏移相关的数据的顺序比率。
接下来,如果第n页面的无效偏移比率超过“0”并且等于或小于第三阈值TH3,则垃圾收集模块196向映射数据管理器198请求计算第n页面的顺序比率以及与第n页面的无效偏移相对应的期望值。
另一方面,如果第n页面的无效偏移比率为“0”或超过第三阈值TH3,则垃圾收集模块196将第n页面中包括的多个有效偏移中存储的有效数据存储在存储器144中,而不在第n页面中搜索与无效偏移相关的碎片化数据。
当垃圾收集模块196从映射数据管理器198接收第n页面的顺序比率和与无效偏移相对应的期望值时,垃圾收集模块196确定第n页面的顺序比率是否等于或高于预定的第五阈值TH5(即,SR>=TH5)。作为确定的结果,在第n页面的顺序比率小于预定的第五阈值TH5(即,SR<TH5)的情况下,仅将第n页面的多个有效偏移中存储的有效数据复制到并存储在存储器144中。另一方面,作为确定的结果,当第n页面的顺序比率等于或高于预定的第五阈值TH5(即,SR>=TH5)时,与第n页面的无效偏移相对应的期望值可被预测为无效偏移的逻辑地址(以下,预测的逻辑地址)。第n页面的顺序比率高的事实可能意味着第n页面的多个有效偏移中存储的有效数据很可能是顺序数据。因此,与多个有效偏移相邻的无效偏移中存储的数据也可被确定为与有效偏移中存储的有效数据相关的顺序数据。换言之,可预测无效偏移的期望值是在偏移被设置为无效偏移之前已经存储在无效偏移中的数据的逻辑地址。
接下来,垃圾收集模块196通过映射表识别关于与预测的逻辑地址相对应的有效数据存储的位置的信息,并将存储在该位置的有效数据存储在存储器144中。也即,垃圾收集模块196识别与映射表中包括的预测的逻辑地址相对应的物理地址,并将由所识别的物理地址指示的存储器区域中存储的数据存储在存储器144中。
在此,参照图8,映射表存储多个逻辑地址(LBA)和对应于多个逻辑地址(LBA)的多个物理地址(PBA),并且每个物理地址可包括关于块、页面和偏移的信息。与预测的逻辑地址相对应的有效数据可存储在不同于牺牲块的第n页面的有效页面中,或者可存储在除牺牲块之外的多个块之中的另一源块或开放块中。
在将与第n页面相关的碎片化数据迁移到存储器144之后,将第n页面的多个有效偏移中存储的有效数据复制到并存储在存储器144中。接下来,垃圾收集模块196检查第n页面是否是牺牲块中的最末页面。作为检查的结果,当第n页面不是最末页面时,垃圾收集模块196将页面数量增加1,以检查牺牲块中下一页面的有效性,并对下一页面执行上述操作。另一方面,当第n有效页面是最末页面时,存储器144中存储的多个有效数据按照与有效数据相对应的逻辑地址的顺序(升序或降序)进行排序,然后,将经排序的有效数据复制到并存储在目标块中。
图6至图8示出根据本公开实施例的图5的垃圾收集模块196的操作。
参照图6至图8,垃圾收集模块196顺序地检查被选择为牺牲块的第零块BLK0中包括的多个页面的有效性。也就是说,垃圾收集模块196将第零块BLK0的第零页面PAGE 0确定为无效页面,因为其标志信息作为检查其有效性的结果是“1”。然后,垃圾收集模块196检查第零页面PAGE 0是否是第零块BLK0的最末页面。由于第零页面PAGE 0不是第零块BLK0的最末页面,因此垃圾收集模块196通过将页面数量增加1来检查下一页面,即第一页面PAGE 1的有效性。垃圾收集模块196将第一页面PAGE 1确定为有效页面,因为其标志信息作为检查其有效性的结果是“0”。然后,垃圾收集模块196检查第一页面PAGE 1的无效偏移比率IVOR。参照图6,因为第一页面PAGE 1中的四个偏移之中只有一个偏移即第零偏移是无效偏移,所以第一页面PAGE 1的无效偏移比率被确定为25%。然后,确定第一页面PAGE 1的无效偏移比率IVOR是否超过“0”并且等于或小于第三阈值TH3(0<IVOR<=TH3)。在第三阈值TH3被设置为30%的情况下,由于无效偏移比率IVOR为25%,并且存在于“0”和第三阈值TH3之间的范围内,因此垃圾收集模块196向映射数据管理器198请求计算第一页面PAGE 1的顺序比率以及与第一页面PAGE 1的无效偏移即第零偏移相对应的期望值。
当垃圾收集模块196从映射数据管理器198接收到作为第一页面PAGE 1的顺序比率的75%和作为第一页面PAGE 1的无效偏移即第零偏移的期望值的“LBA 4”时,垃圾收集模块196首先检查第一页面PAGE 1的顺序比率是否等于或高于第五阈值TH5。在第五阈值TH5被设置为50%的情况下,因为第一页面PAGE 1的顺序比率是75%,所以可检查第一页面PAGE 1的顺序比率等于或高于第五阈值TH5。因此,第零偏移的期望值,即LBA 4,可被预测为第零偏移的预测的逻辑地址。换言之,第零偏移的预测的逻辑地址可被设置为“LBA 4”。接下来,垃圾收集模块196检查映射表(参见图8),以识别对应于“LBA4”的物理地址,“LBA4”为第一页面PAGE 1的第零偏移的预测的逻辑地址。作为检查的结果,可识别到对应于LBA4的物理地址是第一块BLK1的第零页面PAGE 0的第零偏移。因此,以这种方式识别的第一块BLK1的第零页面PAGE 0的第零偏移中存储的数据存储在控制器130中包括的存储器144中。第一块BLK1的第零页面PAGE 0的第零偏移中存储的数据被识别为与第零块BLK0中的第一页面PAGE 1的第零偏移相关的碎片化数据。
以与上述相同的方式,因为第零块BLK0中的第二页面PAGE 2和第三页面PAGE 3的顺序比率被确定为等于或高于第五阈值TH5,与第零块BLK0的第二页面PAGE 2和第三页面PAGE 3中包括的无效偏移相对应的期望值被设置为其预测的逻辑地址。参照图6,第零块BLK0的第二页面PAGE 2和第三页面PAGE 3的预测的逻辑地址分别为“LBA9”和“LBA29”。对应于LBA9和LBA29的物理地址分别被识别为第一块BLK1的第零页面PAGE 0的第一偏移和第一页面PAGE1的第三偏移。
通过基于预测的逻辑地址从映射表中识别物理地址,与物理地址相对应的存储器区域中存储的数据作为碎片化数据存储在存储器144中。因此,如果上述操作完成直到第零块BLK0中的最末有效页面,则垃圾收集模块196基于与有效数据相对应的预测的逻辑地址对存储器144中存储的所有有效数据顺序地进行排序。然后,如图7所示,垃圾收集模块196将存储器144中存储的经顺序地排序的有效数据顺序地迁移到被选择为目标块的第四块BLK4。
当映射数据管理器198从垃圾收集模块196接收到用于计算有效页面的顺序比率的请求时,映射数据管理器198使用与有效页面中包括的多个偏移相对应的期望值来计算有效页面的顺序比率,并将顺序比率作为对请求的响应传送到垃圾收集模块196。所计算的有效页面的顺序比率可存储在存储器144中。
具体地,映射数据管理器198首先将多个有效偏移的任意一个有效偏移的逻辑地址设置为参考值,以便计算有效页面中包括的多个偏移的期望值。参考值的默认值可被设置为多个有效偏移之中的第一有效偏移的逻辑地址,或者可以是在多个有效偏移之中顺序排列的有效偏移之中的第一有效偏移的逻辑地址。为了便于说明本公开起见,将参考值的默认值设置为多个有效偏移之中的第一有效偏移的逻辑地址。在随后计算的预测的顺序比率不包括在预定的阈值范围内的情况下,可将参考值改变为另一有效偏移的逻辑地址。在本公开中,当有必要改变参考值时,根据多个有效偏移的排列顺序,可将参考值改变为所选择的另一有效偏移的逻辑地址。也即,在当前设置的参考值,即当前参考值,是多个有效偏移之中的第一有效偏移的逻辑地址的情况下,可将多个有效偏移之中的第二有效偏移的逻辑地址设置为下一参考值。
在设置参考值之后,映射数据管理器198可基于参考值来设置与多个偏移相对应的期望值。与多个偏移相对应的期望值可以是基于参考值而被顺序地分配到多个偏移的逻辑地址序列。
接下来,映射数据管理器198通过检查多个有效偏移的期望值是否与对应于多个有效偏移中存储的有效数据的逻辑地址(以下为实际逻辑地址)一致来计算有效页面的预测的顺序比率。映射数据管理器198通过检查每个有效偏移的期望值和实际逻辑地址是否彼此一致来确定一致性。例如,当每个有效偏移的期望值和实际逻辑地址彼此一致时,映射数据管理器198可将一致性表示为“0”,并且当每个有效偏移的期望值和实际逻辑地址彼此不一致时,映射数据管理器198可将一致性表示为“1”。映射数据管理器198使用各自的有效偏移的一致性来计算有效页面的预测的顺序比率。可将预测的顺序比率确定为具有“0”的一致性的数量与有效页面中的偏移的数量的比率。
映射数据管理器198检查所计算的预测的顺序比率是否等于或高于预定的第四阈值TH4。作为检查的结果,在预测的顺序比率等于或高于预定的第四阈值TH4的情况下,映射数据管理器198确定有效页面中存储的有效数据很可能是顺序数据,因此,将预测的顺序比率设置为有效页面的顺序比率。另一方面,在预测的顺序比率低于预定的第四阈值TH4的情况下,映射数据管理器198确定有效页面中存储的有效数据不太可能是顺序数据,因此,通过重新设置参考值,再次计算有效页面的预测的顺序比率。在参考值被设置为最后一个有效偏移的逻辑地址的情况下,最后计算的预测的顺序比率被设置为有效页面的顺序比率。
图9A和图9B示出根据本公开实施例的图5的映射数据管理器198的操作。图9A示出有效页面的预测的顺序比率等于或高于预定的第四阈值TH4的情况,并且图9B示出有效页面的预测的顺序比率低于预定的第四阈值TH4,因此通过重新设置参考值来重新计算预测的顺序比率的情况。
首先,参照图9A,作为有效页面的第一页面PAGE 1中包括的多个有效偏移可包括第一偏移Offset 1、第二偏移Offset 2和第三偏移Offset 3。映射数据管理器198可将作为第一偏移Offset 1的逻辑地址的“LBA5”设置为参考值,第一偏移Offset 1是多个有效偏移中的第一个。当映射数据管理器198基于参考值,即第一偏移Offset 1的“LBA 5”,设置对应于第零偏移Offset 0至第三偏移Offset 3的期望值时,第零偏移Offset 0的期望值可变为“LBA 4”,第一偏移Offset 1的期望值可变为“LBA 5”(参考值),第二偏移Offset 2的期望值可变为“LBA 6”,第三偏移Offset 3的期望值可变为“LBA 7”。
接下来,为了确定第一偏移Offset 1的一致性,将第一偏移Offset 1的期望值和实际逻辑地址彼此比较。参照图9A,由于第一偏移Offset 1的期望值是“LBA 5”,并且第一偏移Offset 1的实际逻辑地址是“LBA 5”,因此它们彼此一致。因此,第一偏移Offset 1的一致性可以是“0”。而且,由于第二偏移Offset 2的期望值是“LBA 6”,并且第二偏移Offset2的实际逻辑地址是“LBA 6”,因此它们彼此一致。因此,第二偏移Offset 2的一致性可以是“0”。进一步地,由于第三偏移Offset 3的期望值是“LBA 7”,并且第三偏移Offset 3的实际逻辑地址是“LBA 7”,因此它们彼此一致。因此,第三偏移Offset 3的一致性可以是“0”。因为四个偏移之中的三个有效偏移的期望值和实际逻辑地址彼此一致,所以有效页面的预测的顺序比率变为75%。
接下来,检查第一页面PAGE 1的预测的顺序比率是否等于或高于第四阈值TH4。例如,将通过将预定的第四阈值TH4设置为50%来进行描述。由于第一页面PAGE 1的预测的顺序比率为75%,因此第一页面PAGE 1的预测的顺序比率高于为50%的第四阈值TH4。因此,可将第一页面PAGE 1的预测的顺序比率设置为第一页面PAGE 1的顺序比率。映射数据管理器198将所计算的第一页面PAGE 1的顺序比率传输到垃圾收集模块196。
参照图9B,在第三页面PAGE 3是有效页面的情况下,第三页面PAGE 3中包括的多个有效偏移可包括第零偏移Offset 0、第二偏移Offset 2和第三偏移Offset 3。映射数据管理器198可将作为第零偏移Offset 0的逻辑地址的“LBA28”设置为参考值,第零偏移Offset 0是多个有效偏移中的第一个。当映射数据管理器198基于参考值,即第零偏移Offset 0的“LBA 28”,设置对应于第零偏移Offset 0至第三偏移Offset 3的期望值时,第零偏移Offset 0的期望值可变为“LBA 28”(参考值),第一偏移Offset 1的期望值可变为“LBA 29”,第二偏移Offset 2的期望值可变为“LBA 30”,并且第三偏移Offset 3的期望值可变为“LBA 31”。
接下来,为了确定多个偏移的一致性,将第零偏移Offset 0的期望值和实际逻辑地址彼此进行比较。参照图9B,由于第零偏移Offset 0的期望值是“LBA 28”,并且第零偏移的实际逻辑地址是“LBA 28”,所以它们彼此一致。因此,第零偏移Offset 0的一致性可以是“0”。由于第二偏移Offset 2的期望值是“LBA 30”,而第二偏移Offset 2的实际逻辑地址是“LBA 20”,因此它们彼此不一致。因此,第二偏移Offset 2的一致性可以是“1”。由于第三偏移Offset 3的期望值是“LBA 31”,而第三偏移Offset 3的实际逻辑地址是“LBA 21”,因此它们彼此不一致。因此,第三偏移Offset 3的一致性可以是“1”。因为四个偏移之中的一个有效偏移的期望值和实际逻辑地址彼此一致,所以有效页面PAGE 3的预测的顺序比率变为25%。
接下来,检查第三页面PAGE 3的预测的顺序比率是否等于或高于第四阈值TH4。如上文参照图9A所述,当预定的第四阈值TH4被设置为50%时,由于第三页面PAGE 3的预测的顺序比率,即25%,低于第四阈值TH4,则检查设置为第三页面PAGE 3的参考值的第零偏移Offset 0是否是多个有效偏移之中的最末有效偏移,以便重新设置第三页面PAGE 3的参考值。因为第零偏移Offset 0不是最末有效偏移,所以参考值被改变为作为多个有效偏移之中的第二有效偏移的第二偏移Offset 2的逻辑地址。
映射数据管理器198基于新的参考值,即第二偏移Offset 2的“LBA 20”,设置对应于第零偏移Offset 0至第三偏移Offset 3的期望值。结果,第零偏移Offset 0的期望值可变为“LBA 18”,第一偏移Offset 1的期望值可变为“LBA 19”,第二偏移Offset 2的期望值可变为“LBA 20”(参考值),并且第三偏移Offset 3的期望值可变为“LBA 21”。
接下来,为了确定多个偏移的一致性,将第零偏移Offset 0的期望值和实际逻辑地址彼此进行比较。由于第零偏移Offset 0的期望值为“LBA 18”,而第零偏移的实际逻辑地址为“LBA 28”,因此它们彼此不一致。因此,第零偏移的一致性可以是“1”。由于第二偏移Offset 2的期望值是“LBA 20”,并且第二偏移Offset 2的实际逻辑地址是“LBA 20”,因此它们彼此一致。因此,第二偏移Offset 2的一致性可以是“0”。进一步地,由于第三偏移Offset 3的期望值是“LBA 21”,并且第三偏移Offset 3的实际逻辑地址是“LBA 21”,因此它们彼此一致。因此,第三偏移Offset 3的一致性可以是“0”。因为四个偏移之中的两个有效偏移的期望值和实际逻辑地址彼此一致,所以有效页面PAGE 3的预测的顺序比率为50%。
接下来,检查第三页面PAGE 3的预测的顺序比率是否等于或高于第四阈值TH4。作为将第三页面PAGE 3的预测的顺序比率与预定的第四阈值TH4进行比较的结果,由于第三页面PAGE 3的预测的顺序比率等于第四阈值TH4,因此将第三页面PAGE 3的预测的顺序比率设置为第三页面PAGE 3的顺序比率。映射数据管理器198将第三页面PAGE 3的设置的顺序比率传输到垃圾收集模块196。
图10是描述根据本公开实施例的操作存储器系统的方法的流程图。将参照图1至图5所示的存储器系统来描述图10所示的方法。
参照图10,在S1001,控制器130的垃圾收集模块196基于每个预定时段的空闲块计数(FBC)来决定是否进入垃圾收集模式。也即,垃圾收集模块196可通过检查空闲块计数(FBC)是否等于或小于预定的第一阈值TH1来决定是否进入垃圾收集模式。预定的第一阈值TH1是用于控制器130确定当控制器130确保至少一个空闲块时的时间点的最小空闲块计数。预定的第一阈值TH1可以是预先确定的值,并且可根据存储器系统110的操作状况来改变最小空闲块计数。
作为检查的结果,当空闲块计数(FBC)超过第一阈值TH1(FBC>TH1)时,控制器130不进入垃圾收集模式,并且垃圾收集模块196可决定是否在另一预定的时段再次进入垃圾收集模式。
另一方面,当空闲块计数(FBC)等于或小于第一阈值TH1(FBC<=TH1)时,发生用于执行垃圾收集操作的事件,因此在S1003,垃圾收集模块196可从多个源块之中选择牺牲块。
在S1003,如果发生进入垃圾收集模式的事件,则垃圾收集模块196可从至少一个管芯中包括的多个源块之中选择至少一个牺牲块。在多个源块之中,可选择有效页面计数等于或小于预定的第二阈值TH2的源块作为牺牲块。有两种方法来选择牺牲块。第一种方法可对应于第二阈值TH2被设置为有效页面计数的情况,第二种方法可对应于第二阈值TH2被设置为多个源块的平均有效页面计数的情况。
首先,控制器130可从多个源块之中选择有效页面计数等于或小于预定的有效页面计数的源块作为牺牲块。接下来,在第二阈值TH2被设置为平均有效页面计数的情况下,控制器130可使用多个源块中的每一个的有效页面计数来计算平均有效页面计数。控制器130可将所计算的平均有效页面计数设置为第二阈值TH2,从而可选择有效页面计数等于或小于平均有效页面计数的源块作为牺牲块。在图10中,基于根据第一种方法的有效页面计数来选择牺牲块。
在S1005,在选择牺牲块之后,垃圾收集模块196顺序地检查被选择为牺牲块的源块中包括的多个页面PAGE 0至PAGE N(N是整数)中的每一个是否是有效页面。为了检查多个页面PAGE 0至PAGE N中的每一个是否是有效页面,可使用指示每个页面的有效性的标志信息。也就是说,指示多个页面PAGE 0至PAGE N中的每一个的有效性的标志信息可由单个位来表示,也可由“0”或“1”来表示。例如,包括至少一个有效偏移的页面可由“0”表示为有效页面,而不包括有效偏移的页面可由“1”表示为无效页面。以这种方式,通过使用标志信息管理每个页面的有效性,当垃圾收集期间有必要检查每个页面的有效性时,可快速检查每个页面的有效性。指示多个页面PAGE 0至PAGE N中的每一个的有效性的标志信息可存储在每个页面的保留区域中或存储器144中。
作为在S1005的检查的结果,在第n页面不是有效页面(否)的情况下,在S1021,垃圾收集模块196检查第n页面是否是牺牲块中的最末页面。如果在S1021确定第n页面不是最末页面,则垃圾收集模块196在S1023将页面数量增加1(n++),并且在S1005检查下一页面的有效性。
另一方面,作为在S1005的检查的结果,在第n页面是有效页面(是)的情况下,在S1007,垃圾收集模块196计算或确定有效页面的无效偏移比率IVOR。可使用有效页面中包括的多个偏移之中的无效偏移计数来计算无效偏移比率IVOR。
之后,在S1009,垃圾收集模块196确定无效偏移比率IVOR是否超过“0”并且等于或小于第三阈值TH3(即,0<IVOR<=TH3)。作为在S1009的确定的结果,如果有效页面的无效偏移比率IVOR为“0”或超过第三阈值TH3(否),则垃圾收集模块196将有效页面中包括的多个有效偏移中存储的有效数据存储在存储器144中。
另一方面,在S1009,如果确定有效页面的无效偏移比率IVOR超过“0”并且等于或小于第三阈值TH3(是),则在S1011,垃圾收集模块196请求映射数据管理器198使用与有效页面的多个偏移相对应的期望值来计算有效页面的顺序比率SR。稍后将参照图11对此进行详细描述。
在S1013,垃圾收集模块196确定有效页面的顺序比率SR是否等于或高于预定的第五阈值TH5(即,SR>=TH5)。作为在S1013的确定的结果,在有效页面的顺序比率SR小于预定的第五阈值TH5(否)的情况下,仅有效页面的多个有效偏移中存储的有效数据存储在存储器144中。另一方面,作为在S1013的确定的结果,在有效页面的顺序比率SR等于或高于预定的第五阈值TH5(是)的情况下,在S1015,生成与有效页面的无效偏移相对应的期望值作为无效偏移的预测的逻辑地址。预测的逻辑地址意味着与目前存储碎片化数据的存储器区域相对应的逻辑地址,碎片化数据表示已经存储在无效偏移中的数据。有效页面的顺序比率SR高的事实可能意味着有效页面的多个有效偏移中存储的有效数据很可能是顺序数据。因此,已经存储在与多个有效偏移相邻的无效偏移中的数据可被确定为与有效数据一起存储在有效偏移中的顺序数据。换言之,无效偏移的期望值可以是对应于存储器区域的逻辑地址,该存储器区域是在设置无效偏移之前已经存储在无效偏移中的数据目前被存储的区域。
在S1017,垃圾收集模块196识别映射表中与有效页面的预测的逻辑地址相对应的物理地址,然后将与该物理地址相对应的存储器区域中存储的数据存储在存储器144中。
在S1019,垃圾收集模块196将有效页面的多个有效偏移中存储的有效数据复制到并存储在存储器144中。
在S1021,垃圾收集模块196检查有效页面是否是牺牲块的最末页面。作为在S1021的检查的结果,在有效页面不是最末页面(否)的情况下,在S1023,垃圾收集模块196将页面数量增加1,并在S1005,检查下一页面的有效性。另一方面,作为在S1021的检查的结果,在有效页面是最末页面(是)的情况下,在S1025,垃圾收集模块196按照与有效数据相对应的逻辑地址的顺序(升序或降序)将存储器144中存储的有效数据进行排序,将经排序的有效数据复制到并存储在目标块中。当数据存储操作完成时,垃圾收集模块196结束垃圾收集模式。目标块可以是多个空闲块中的任意一个。垃圾收集模块196可从多个空闲块之中选择具有最小写入/擦除(P/E)周期计数的空闲块作为目标块。
图11是描述根据本公开实施例的计算有效页面的顺序比率的方法的流程图。图11详细描述了图10的S1011。
参照图11,在S1101,控制器130的映射数据管理器198将有效页面中包括的多个有效偏移之一的逻辑地址设置为参考值。有效页面的参考值可被设置为计算分别对应于有效页面中的多个偏移的期望值。参考值的默认值可被设置为多个有效偏移之中的第一有效偏移的逻辑地址,或者可以是多个有效偏移之中顺序排列的有效偏移之中的第一有效偏移的逻辑地址。
为了便于说明本公开起见,将参考值的默认值设置为多个有效偏移之中的第一有效偏移的逻辑地址。当使用参考值计算的预测的顺序比率不包括在预定的阈值范围内时,参考值可被改变为另一有效偏移的逻辑地址。在本公开中,当有必要改变参考值时,可按照多个有效偏移的排列顺序来改变参考值。也即,在当前设置的参考值是有效偏移之中的第一有效偏移的逻辑地址时,存在于第一有效偏移旁边的第二有效偏移的逻辑地址可被设置为下一参考值。
在S1103,映射数据管理器198可基于参考值设置分别对应于多个偏移的期望值。分别对应于多个偏移的期望值表示基于参考值分别分配到多个偏移的顺序逻辑地址。
在S1105,映射数据管理器198通过检查多个有效偏移的期望值是否与对应于多个有效偏移中存储的有效数据的实际逻辑地址一致来计算有效页面的预测的顺序比率。例如,当每个有效偏移的期望值和逻辑地址彼此一致时,映射数据管理器198可将一致性表示为“0”;当每个有效偏移的期望值和逻辑地址彼此不一致时,映射数据管理器198可将一致性表示为“1”。映射数据管理器198使用各自的有效偏移的一致性来计算有效页面的预测的顺序比率。
在S1107,控制器130检查所计算的预测的顺序比率是否等于或高于预定的第四阈值TH4。作为在S1107的检查的结果,在预测的顺序比率等于或高于预定的第四阈值TH4(是)的情况下,在S1109,映射数据管理器198确定有效页面中存储的有效数据很可能是顺序数据,并因此将预测的顺序比率设置为有效页面的顺序比率。
另一方面,作为在S1107的检查的结果,在预测的顺序比率低于预定的第四阈值TH4(否)的情况下,映射数据管理器198确定有效页面中存储的有效数据不太可能是顺序数据,并且在S1111,检查有效页面的当前参考值的有效偏移是否是最末有效偏移。作为在S1111的检查的结果,如果当前参考值的有效偏移不是最末有效偏移(否),则在S1113,将当前参考值的有效偏移旁边的有效偏移进行移动。然后,在S1101,映射数据管理器198将下一有效偏移的逻辑地址设置为下一参考值,以再次计算有效页面的预测的顺序比率。另一方面,作为在S1111的检查的结果,如果当前参考值的有效偏移是最末有效偏移(是),则在S1109,最后计算的预测的顺序比率被设置为有效页面的顺序比率,并且进程进行到图10的S1013。
尽管已出于说明性目的描述了各个实施例,但是对本领域技术人员将显而易见的是,在不脱离如所附权利要求中限定的本公开的精神和范围的情况下,可进行各种改变和修改。

Claims (20)

1.一种存储器系统,包括:
多个存储块,每个存储块包括多个页面,所述多个页面中的每个页面包括多个偏移;以及
控制器,包括存储器,并且使用所述存储器对牺牲块执行垃圾收集操作,
其中所述控制器从所述多个存储块之中选择所述牺牲块,通过检查所述牺牲块中包括的有效页面中的多个偏移之中是否存在无效偏移来计算无效偏移比率,并且,当所述无效偏移比率包括在预定的阈值范围内时,计算所述有效页面的顺序比率,根据顺序比率来预测所述无效偏移的逻辑地址,将所述有效页面中的多个有效偏移中存储的有效数据和对应于预测的逻辑地址的存储器区域中存储的有效数据存储在所述存储器中,使用与所述有效页面中的所述多个偏移相对应的期望值来计算所述有效页面的顺序比率。
2.根据权利要求1所述的存储器系统,其中在所述有效页面的所述无效偏移比率超出预定的阈值范围的情况下,所述控制器仅将所述有效页面中包括的所述多个有效偏移中存储的有效数据存储在所述存储器中。
3.根据权利要求1所述的存储器系统,其中所述控制器将与所述有效页面中的所述多个有效偏移之一相对应的逻辑地址设置为参考值,并且使用所述参考值,通过将顺序逻辑地址分别分配到所述多个偏移来设置所述有效页面中的所述多个偏移的期望值。
4.根据权利要求3所述的存储器系统,
其中所述控制器检查与所述多个有效偏移中的每个有效偏移相对应的逻辑地址是否与所述多个有效偏移中的所述每个有效偏移的期望值一致,并且
其中所述控制器基于逻辑地址和期望值彼此一致的有效偏移的数量来计算所述有效页面的预测的顺序比率。
5.根据权利要求4所述的存储器系统,
其中所述控制器确定所述预测的顺序比率是否等于或高于预定的阈值,
其中在所述预测的顺序比率等于或高于预定的阈值的情况下,所述控制器将所述预测的顺序比率设置为所述有效页面的顺序比率,并且
其中在所述预测的顺序比率小于预定的阈值的情况下,所述控制器检查所述参考值是否被设置为所述多个有效偏移之中的最末有效偏移的逻辑地址,并且在所述参考值被设置为所述最末有效偏移的逻辑地址的情况下,所述控制器将所述预测的顺序比率设置为所述有效页面的顺序比率。
6.根据权利要求5所述的存储器系统,其中在所述参考值未被设置为所述多个有效偏移之中的所述最末有效偏移的逻辑地址的情况下,所述控制器通过使用与设置先前参考值的有效偏移不同的有效偏移的逻辑地址来重新设置所述参考值,重新计算所述有效页面的所述预测的顺序比率。
7.根据权利要求1所述的存储器系统,其中所述控制器确定所述有效页面的顺序比率是否等于或高于预定的阈值。
8.根据权利要求7所述的存储器系统,
其中在所述有效页面的顺序比率等于或高于预定的阈值的情况下,所述控制器预测与所述有效页面的所述无效偏移相对应的期望值作为所述无效偏移的逻辑地址,并且
其中在所述有效页面的顺序比率小于预定的阈值的情况下,所述控制器仅将所述有效页面的所述多个有效偏移中存储的有效数据存储在所述存储器中。
9.根据权利要求1所述的存储器系统,其中基于所述无效偏移的预测的逻辑地址,所述控制器从映射表中识别关于与所述预测的逻辑地址相对应的有效数据存储的位置的信息,并将与所述预测的逻辑地址相对应的有效数据存储在所述存储器中。
10.根据权利要求9所述的存储器系统,其中与所述预测的逻辑地址相对应的有效数据存储在与所述牺牲块的多个有效页面之中包括无效偏移的有效页面不同的另一有效页面中,或者存储在除所述牺牲块之外的多个存储块之中的源块或开放块中。
11.根据权利要求1所述的存储器系统,其中所述控制器基于与所述存储器中存储的有效数据相对应的逻辑地址,对该有效数据顺序地进行排序,并将经排序的有效数据存储在目标块中。
12.一种操作存储器系统的方法,所述存储器系统包括多个存储块和控制对所述多个存储块的垃圾收集操作的控制器,所述方法包括:
从所述多个存储块之中选择牺牲块;
通过检查在配置所述牺牲块中包括的有效页面的多个偏移中是否包括无效偏移来计算无效偏移比率;
当所述无效偏移比率包括在预定的阈值范围内时,设置与所述多个偏移相对应的期望值;
使用所述多个偏移之中的多个有效偏移的期望值来计算所述有效页面的顺序比率;
在所述有效页面的顺序比率等于或高于预定的阈值的情况下,预测与对应于所述多个偏移的期望值之中的无效偏移相对应的期望值,作为所述无效偏移的逻辑地址;并且
将与预测的逻辑地址相对应的存储器区域中存储的有效数据和所述多个有效偏移中存储的有效数据存储在目标块中。
13.根据权利要求12所述的方法,进一步包括:
在所述有效页面的所述无效偏移比率超出预定的阈值范围的情况下,仅将所述多个有效偏移中存储的有效数据存储在所述目标块中。
14.根据权利要求12所述的方法,其中使用所述有效页面中包括的所述多个偏移之中的无效偏移计数来计算所述无效偏移比率。
15.根据权利要求12所述的方法,其中设置与所述多个偏移相对应的期望值包括:
将所述多个有效偏移中的一个的逻辑地址设置为参考值;并且
基于所述参考值,通过将顺序逻辑地址分别分配到所述多个偏移来设置所述多个偏移的期望值。
16.根据权利要求12所述的方法,其中计算所述有效页面的顺序比率包括:
检查与所述多个有效偏移中的每个有效偏移相对应的逻辑地址是否与所述多个有效偏移中的所述每个有效偏移的期望值一致;
基于逻辑地址和期望值彼此一致的有效偏移的数量来计算预测的顺序比率;
确定所述预测的顺序比率是否等于或高于预定的阈值;并且
在所述预测的顺序比率等于或高于预定的阈值的情况下,将所述预测的顺序比率设置为所述有效页面的顺序比率。
17.根据权利要求16所述的方法,进一步包括:
在所述预测的顺序比率小于所述预定的阈值的情况下,检查所述参考值是否被设置为所述多个有效偏移之中的最末有效偏移的逻辑地址;
在所述参考值被设置为所述多个有效偏移之中的所述最末有效偏移的逻辑地址的情况下,将所述预测的顺序比率设置为所述有效页面的顺序比率;并且
在所述参考值未被设置为所述多个有效偏移之中的所述最末有效偏移的逻辑地址的情况下,通过使用与设置先前参考值的有效偏移不同的有效偏移的逻辑地址来重新设置所述参考值,重新计算所述有效页面的预测的顺序比率。
18.根据权利要求12所述的方法,其中,在所述有效页面的顺序比率小于所述预定的阈值的情况下,仅将所述有效页面的所述多个有效偏移中存储的有效数据存储在所述控制器的存储器中。
19.根据权利要求12所述的方法,其中与针对所述无效偏移而预测的逻辑地址相对应的有效数据存储在与所述牺牲块的多个有效页面之中包括所述无效偏移的有效页面不同的另一有效页面中,或者存储在除所述牺牲块之外的多个存储块之中的源块或开放块中。
20.根据权利要求12所述的方法,其中存储与所述预测的逻辑地址相对应的有效数据和所述有效页面的所述多个有效偏移中存储的有效数据包括:
将与所述预测的逻辑地址相对应的有效数据和所述有效页面的所述多个有效偏移中存储的有效数据存储在所述控制器的存储器中;
基于与所述存储器中存储的有效数据相对应的逻辑地址,对该有效数据顺序地进行排序;并且
将经排序的有效数据存储在从所述多个存储块中包括的空闲块之中选择的所述目标块中。
CN202010889203.6A 2020-01-17 2020-08-28 用于垃圾收集的存储器系统及其操作方法 Withdrawn CN113138939A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2020-0006576 2020-01-17
KR1020200006576A KR20210092988A (ko) 2020-01-17 2020-01-17 가비지 콜렉션 동작을 위한 메모리 시스템 및 메모리 시스템의 동작방법

Publications (1)

Publication Number Publication Date
CN113138939A true CN113138939A (zh) 2021-07-20

Family

ID=76809316

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010889203.6A Withdrawn CN113138939A (zh) 2020-01-17 2020-08-28 用于垃圾收集的存储器系统及其操作方法

Country Status (3)

Country Link
US (1) US11216368B2 (zh)
KR (1) KR20210092988A (zh)
CN (1) CN113138939A (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102495910B1 (ko) * 2020-04-13 2023-02-06 에스케이하이닉스 주식회사 스토리지 장치 및 그 동작 방법
US11755476B2 (en) 2020-04-13 2023-09-12 SK Hynix Inc. Memory controller, storage device including the memory controller, and method of operating the memory controller and the storage device
KR102435253B1 (ko) 2020-06-30 2022-08-24 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
KR102406449B1 (ko) 2020-06-25 2022-06-08 에스케이하이닉스 주식회사 스토리지 장치 및 그 동작 방법
KR20220093982A (ko) * 2020-12-28 2022-07-05 삼성전자주식회사 파편화율을 이용하는 메모리 컨트롤러, 및 스토리지 장치 및 이의 동작 방법
US11494299B2 (en) 2021-02-18 2022-11-08 Silicon Motion, Inc. Garbage collection operation management with early garbage collection starting point
KR20220122064A (ko) 2021-02-26 2022-09-02 에스케이하이닉스 주식회사 데이터 저장 장치 및 그 동작 방법
US11404133B1 (en) * 2021-03-09 2022-08-02 Micron Technology, Inc. Valid translation unit count-based memory management

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090116505A (ko) 2008-05-07 2009-11-11 삼성전자주식회사 불휘발성 메모리 장치를 위한 파일 시스템 및 그것을포함하는 컴퓨팅 시스템
US8463826B2 (en) * 2009-09-03 2013-06-11 Apple Inc. Incremental garbage collection for non-volatile memories
US8856475B1 (en) * 2010-08-01 2014-10-07 Apple Inc. Efficient selection of memory blocks for compaction
US9158670B1 (en) * 2011-06-30 2015-10-13 Western Digital Technologies, Inc. System and method for dynamically adjusting garbage collection policies in solid-state memory
US8762627B2 (en) 2011-12-21 2014-06-24 Sandisk Technologies Inc. Memory logical defragmentation during garbage collection
US8799561B2 (en) * 2012-07-27 2014-08-05 International Business Machines Corporation Valid page threshold based garbage collection for solid state drive
TWI516922B (zh) * 2014-03-12 2016-01-11 慧榮科技股份有限公司 資料儲存裝置及快閃記憶體零散資料收集方法
US10318414B2 (en) * 2014-10-29 2019-06-11 SK Hynix Inc. Memory system and memory management method thereof
KR102602694B1 (ko) * 2015-12-15 2023-11-15 삼성전자주식회사 스토리지 컨트롤러의 작동 방법과 이를 포함하는 스토리지 장치의 작동 방법
KR102340094B1 (ko) * 2017-03-31 2021-12-17 에스케이하이닉스 주식회사 메모리 시스템 및 그의 동작 방법

Also Published As

Publication number Publication date
KR20210092988A (ko) 2021-07-27
US20210224187A1 (en) 2021-07-22
US11216368B2 (en) 2022-01-04

Similar Documents

Publication Publication Date Title
CN113138939A (zh) 用于垃圾收集的存储器系统及其操作方法
US10871900B2 (en) Memory system and method of controlling memory system
CN110781096B (zh) 用于通过预测需求时间来执行垃圾收集的设备和方法
CN106874217B (zh) 存储器系统及控制方法
US9135167B2 (en) Controller, data storage device and data storage system having the controller, and data processing method
JP5728672B2 (ja) ハイブリッドメモリ管理
KR101735142B1 (ko) 비휘발성 메모리 어레이에서 동시적 백그라운 및 포그라운드 동작들을 위한 방법 및 시스템
KR101465789B1 (ko) 페이지 복사 횟수를 줄일 수 있는 메모리 카드 시스템의쓰기 및 병합 방법
JP2021114038A (ja) メモリシステムおよび制御方法
CN110928807B (zh) 用于检查存储器系统中的有效数据的设备和方法
US20160062885A1 (en) Garbage collection method for nonvolatile memory device
CN110806984B (zh) 在存储器系统中搜索有效数据的设备和方法
CN111831583A (zh) 用于传送存储器系统中的映射段的设备和方法
US11249903B2 (en) Memory system for garbage collection operation and operating method thereof
US20170168928A9 (en) System and method for efficient address translation of flash memory device
KR20140043329A (ko) 셀 저장 용량당 서로 다른 비트를 갖는 세 개의 메모리 층을 구비한 메모리 시스템
CN110825659B (zh) 用于检查存储器系统中的块中的有效数据的设备和方法
WO2015054338A1 (en) System and method of storing data in a data storage device with a selection of two writing orders in order to improve the reading speed of a differential look ahead reading mode.
US10083181B2 (en) Method and system for storing metadata of log-structured file system
US11487658B2 (en) Memory system including plural regions storing data and operating method thereof
CN110895449A (zh) 用于在存储器系统中管理有效数据的装置和方法
CN111666223B (zh) 控制器、包括控制器的存储器系统和操作该系统的方法
US20100042798A1 (en) Methods and Apparatus for Passing Information to a Host System to Suggest Logical Locations to Allocate to a File
KR20200014175A (ko) 소요시간을 예측하여 가비지 컬렉션을 수행하는 방법 및 장치
JP2019160347A (ja) メモリシステムおよび制御方法

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
WW01 Invention patent application withdrawn after publication

Application publication date: 20210720