CN115905033A - 用于固态驱动器的有效性表 - Google Patents

用于固态驱动器的有效性表 Download PDF

Info

Publication number
CN115905033A
CN115905033A CN202211209659.9A CN202211209659A CN115905033A CN 115905033 A CN115905033 A CN 115905033A CN 202211209659 A CN202211209659 A CN 202211209659A CN 115905033 A CN115905033 A CN 115905033A
Authority
CN
China
Prior art keywords
region
validity
mapping table
address
ssd
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202211209659.9A
Other languages
English (en)
Inventor
S·达斯
M·卡达姆
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.)
Kioxia Corp
Original Assignee
Kioxia Corp
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 Kioxia Corp filed Critical Kioxia Corp
Publication of CN115905033A publication Critical patent/CN115905033A/zh
Pending legal-status Critical Current

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/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
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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
    • 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
    • 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
    • G06F3/0611Improving I/O performance in relation to response time
    • 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/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • 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
    • G06F2212/1024Latency reduction
    • 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/1032Reliability improvement, data loss prevention, degraded operation etc
    • 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/7204Capacity control, e.g. partitioning, end-of-life degradation
    • 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/7208Multiple device management, e.g. distributing data over multiple flash devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本公开涉及用于固态驱动器的有效性表。一种由固态驱动器SSD的控制器执行的方法包括:将SSD的非易失性半导体存储器装置中的逻辑到物理映射表分成多个区域,每个区域与多个逻辑簇地址(LCA)相关联;确定每个区域的映射表是否包含具有有效地址的条目;如果多个区域中的一区域的映射表包含任何映射地址,则在该区域的有效性位中设置有效性状态;以及将每个区域的有效性位存储在有效性位图表VBT中。

Description

用于固态驱动器的有效性表
技术领域
本公开涉及固态驱动器(SSD)和方法,其使用有效性表在涉及包含解除分配或格式化命令的工作负载的操作期间减小SSD的写入放大率。
背景技术
与传统磁盘驱动器相比,固态驱动器(SSD)通常具有更快的性能、更紧凑且对振动或物理冲击不太敏感。鉴于这些优势,尽管SSD的每GB存储容量成本明显高于磁盘驱动器,SSD正在越来越多的计算装置和其他消费产品中用于替代磁盘驱动器或作为磁盘驱动器的补充。SSD利用包括非易失性半导体存储装置(例如NAND存储器装置)的物理存储器基元来存储数据。在SSD中使用控制器来管理主机与SSD的存储器基元之间的数据传输。向SSD的物理存储器基元写入数据和从SSD的物理存储器基元读取数据通常涉及在SSD外部的主机和非易失性半导体存储装置之间传输数据。
SSD在从主机接收多个读写请求时受到大量数据业务(data traffic)的影响。SSD将数据存储在非易失性存储器中的物理地址处,由主机和SSD控制器按照一个或多个逻辑地址(例如LBA)引用。SSD控制器将特定大小的数据的分组识别为数据簇(例如,多个逻辑块)。从主机接收到的LBA可以由控制器转换为逻辑簇地址(LCA),逻辑簇地址涉及非易失性存储器中的数据簇,该数据簇又对应于存储器装置上的物理媒体簇地址(MCA)。通常,SSD控制器将MCA-LCA映射表划分为多个区域以便更好地管理,其中每个区域寻址用户数据区块(chunk)(例如256KB或64LCA,其中每个LCA寻址4KB用户数据)。SSD的映射表非常大,大约是SSD容量的1/1000,并且被存储在非易失性半导体存储装置中。例如,管理TB驱动器需要1GB映射表,管理2TB驱动器需要2GB映射表,管理4TB驱动器需要4GB映射表,以及管理16TB驱动器需要16GB映射表。为了让SSD在处理主机请求时将逻辑地址转换为物理地址,映射表被加载到SSD内的易失性存储器中以进行快速访问。
来自主机的读写命令以及SSD内的内部处理(例如,垃圾回收、断电保护(PLP)活动)可能会导致映射表中存储的地址发生变化。SSD高速缓冲存储器在处理主机请求期间更新易失性存储器中的映射表。然后将整个更新后的映射表周期性地写入非易失性半导体存储装置,以便在易失性存储器断电之前保存映射表中的变化。然而,由于映射表的大小较大,这种更新可能会由于将大量数据从易失性半导体存储装置写入非易失性半导体存储装置而导致SSD的延迟增加。此外,映射表中条目的反复解除分配(repeated deallocation)将导致取消映射的(unmapped)数据反复写入非易失性半导体存储装置,从而导致SSD的写入放大率增加。SSD中经常发生的其他进程(例如垃圾回收、日志记录(journaling)和清仓(flushing))也需要更新到映射表。如果这些更新在断电之前没有存储在非易失性半导体存储装置中,则更新的地址信息可能会丢失,从而导致错误并可能导致SSD的故障。这对如何有效管理非易失性半导体存储装置中的逻辑到物理映射表的更新提出了挑战。
发明内容
根据本公开的一个实施例,提供了一种由固态驱动器(SSD)的控制器执行的方法,包括:将所述SSD的非易失性半导体存储器装置中的逻辑到物理映射表分成多个区域,每个所述区域与多个逻辑簇地址(LCA)相关联;确定每个区域的所述映射表是否包含具有有效地址的条目;如果所述多个区域中的一区域的所述映射表包含任何映射地址,则在该区域的有效性位中设置有效性状态;以及将每个区域的所述有效性位存储在所述SSD的易失性半导体存储器装置中的有效性位图表(VBT)中。VBT可以最终在用相关元数据周期清仓映射表期间被存储在非易失性存储器中。
根据本公开的另一实施例,提供了一种固态驱动器(SSD),其包括:非易失性半导体存储器装置,其被配置为存储逻辑到物理映射表;易失性半导体存储器装置,其被配置为存储有效性位图表(VBT);以及控制器,其耦接(couple)到所述非易失性半导体存储器装置和所述易失性半导体存储器装置。所述控制器被配置为:将所述逻辑到物理映射表分成多个区域,每个所述区域与多个逻辑簇地址(LCA)相关联;确定每个区域的所述映射表是否包含具有有效地址的条目;如果所述多个区域中的一区域的所述映射表包含任何映射地址,则在该区域的有效性位中设置有效性状态;以及将每个区域的所述有效性位存储在所述SSD的易失性半导体存储器装置中的所述VBT中。VBT可以最终在用相关元数据周期清仓映射表期间被存储在非易失性存储器中。
在一些实施方式中,所述方法还包括:针对每个区域将物理地址与所述映射表进行关联;将每个区域的所述物理地址存储在映射区域地址表(MRAT)中;以及将所述MRAT存储在所述非易失性半导体存储器装置中。在某些实施方式中,所述方法还包括:将每个区域的所述有效性位的物理地址存储在有效性位图地址表(VBAT)中;以及将所述VBAT存储在所述非易失性半导体存储器装置中。在其他实施方式中,所述有效性位的所述有效性状态是单个位状态。在一些实施方式中,设置所述有效性状态包括:如果一区域被完全取消映射,则将所述位清除为“0”,或者如果一区域包含至少一个有效地址,则将所述位设置为“1”。在某些实施方式中,所述取消映射的地址被分配预定值。
在其他实施方式中,所述方法还包括:确定来自所述VBT的一区域的所述有效性状态;以及如果所述区域包含有效地址,则将所述区域的所述映射表存储在所述非易失性半导体存储器装置中。在一些实施方式中,所述方法还包括:响应于写入命令、解除分配命令、垃圾回收命令中的任一者,更新所述非易失性半导体存储器装置中的所述多个区域的所述有效性状态;以及更新所述VBT中每个区域的对应有效性状态。在某些实施方式中,所述方法还包括:响应于启动(boot up)命令,从所述非易失性半导体装置加载所述VBAT和所述MRAT;确定来自所述VBT的所述多个区域的所述有效性状态;以及使用所述MRAT将包含有效地址的所述区域的所述映射表加载到所述易失性存储器。
在某些实施方式中,所述方法还包括:响应于不安全的关闭(shutdown)或断电(loss of power),从所述非易失性半导体存储器装置加载所述MRAT的最后保存版本;从所述易失性半导体存储器装置加载所述VBT的当前版本;将所述VBT的所述当前版本中的所述多个区域的所述有效性状态与来自所述MRAT的所述映射表的所述最后保存版本中的所述多个区域的所述有效性状态进行比较;以及更新所述MRAT中的有效区域地址以与来自所述VBT的所述当前版本的所述多个区域的所述有效性状态相对应。在一些实施方式中,所述非易失性半导体存储器装置是NAND半导体存储器。在某些实施方式中,所述易失性半导体存储器装置是动态随机存取存储器(DRAM)。
附图说明
当结合附图考虑以下详细描述时,上述和其他目的和优点将变得显而易见,其中相同的参考标号自始至终指代相同的部分,并且其中:
图1示出了根据本公开的一个或多个实施例配置的SSD的示意表示;
图2示出了根据本公开的一个或多个实施例的图1的SSD中的映射表数据结构和它们之间的数据流;
图3A示出了根据本公开的一个或多个实施例的在图1的SSD的初始化期间,图2的映射表数据结构的内容;
图3B示出了根据本公开的一个或多个实施例的在处理若干个主机写入和解除分配命令之后,图2的映射表数据结构的内容;
图4是示出根据本公开的一个或多个实施例的使用有效性位图表来更新存储在非易失性半导体存储装置中的LCA-MCA映射表的方法的流程图;
图5是在安全关闭之后的SSD启动后恢复(restore)映射表的方法的流程图;以及
图6是在非安全关闭之后的SSD启动后恢复映射表的方法的流程图。
具体实施方式
为了提供对本文所述装置的全面理解,将描述某些说明性实施例。尽管本文描述的实施例和特征被具体描述为结合具有控制器的SSD使用,但是应当理解,下面概述的所有部件和其他特征可以以任何合适的方式彼此组合,并且可以被调整和应用于包括具有类似需求的存储器的其他类型的SSD架构,以在处理来自主机的命令时有效地更新存储在SSD的半导体存储装置中的查找表。
迄今为止,SSD的非易失性存储器(例如NAND闪速存储器装置)在区域中存储逻辑簇地址(LCA)到媒体簇地址(MCA)映射表。映射表中的每个条目包括MCA,MCA对应于LCA和MCA之间的转换,当LCA上的数据通过主机用新数据覆盖时,新数据被写入新的MCA,从而需要更新对应的映射表条目。另外,当非易失性存储器中不再需要数据时,主机向对应的LBA范围发出解除分配命令。作为响应,控制器解除分配映射表中存储无效签名地址的相关条目。在主机命令的处理期间,如果对应的映射表区域尚未作为后台表加载的一部分被加载,则SSD控制器将存储在SSD的非易失性存储器中的LCA-MCA映射表加载到SSD中的易失性存储器(例如,动态随机存取存储器(DRAM))中,以便高速缓冲存储器(例如,静态随机存取存储器(SRAM))进行快速访问。对易失性存储器中的LCA-MCA映射表的每次读取访问都包括暂时存储在高速缓冲存储器中的数据的DRAM突发(burst)。
在被控制器更新之后,对DRAM中LCA-MCA映射表中的条目的任何更新随后被清仓回到NAND存储器,以便在SSD断电时(其中DRAM和SRAM将丢失数据)更新的LCA-MCA映射表将是可用的。为了限制每次更新的数据清仓量,清仓按区域进行,其中由一组32、64或128个LCA-MCA条目(其是可配置的,具体取决于SSD的总存储大小)组成的区域在任何时候被清仓。在将数据从DRAM清仓到NAND存储器期间,包含更新的整个区域被复制到NAND存储器以进行更新。此类操作涉及在DRAM和NAND存储器之间传输包含有效和无效条目的大型映射表,这将导致写入放大、延迟增加、涉及解除分配或格式化过程的工作负载中的顺序和随机写入性能的下降。此外,由于无效或取消映射的条目被保存到NAND存储器,因此每次启动(或PLP启动,视情况而定)期间都必须恢复整个映射表,从而导致准备时间增加和实现全吞吐量的时间增加。
本公开通过在SSD的操作中使用有效性位图表(VBT)来解决上述问题。VBT的目的是指示映射表区域的取消映射状态。映射表在启动期间被初始化为无效的MCA,随后从NAND加载实际区域,作为后台表加载的一部分。根据本公开,映射表被划分为每个256字节的区域,其中为VBT中的每个区域分配有效性位。有效性位图包括被清除为“0”的单个位,以指示映射表区域被完全取消映射并且不包含有效的MCA。该位被设置为“1”,以指示映射表区域包含至少一个有效的MCA,即,当映射表区域中有至少一个MCA指向包含用户数据的NAND装置位置时,设置该位。在常规的映射表保存和清仓期间,只有与脏或设定的VBT条目对应的映射表区域被保存到NAND存储器。这显著减少了写入放大,因为与LCA-MCA映射表的大小相比,VBT是非常小的表(1位对(versus)用于表示映射表的区域的256字节)。
图1是根据本公开的实施例的包括与固态装置(SSD)120通信的至少一个主机110的计算系统100的框图。主机110是计算系统,其包括处理器或核、控制器、存储器和本领域公知的其他部件,为简洁起见,这些部件未在图1中示出。SSD 120提供由主机110使用的非易失性存储功能。SSD 120可以包括包含控制器的集成电路。这样的集成电路也可以称为片上系统(SoC)控制器130。SoC在SSD中是有利的,因为它们提供了单个集成电路,该单个集成电路包含SSD发挥作用所需的电子系统的所有必需电路和部件。因此,SoC消除了对通过多条总线和多个缓冲器连接的模块化的分立部件架构的需求。
SoC控制器130通信地耦接到作为存储介质的基于非易失性半导体的存储装置140(例如基于NAND的闪速存储器装置)的存储阵列。存储介质可以包括多个NAND装置,例如32、64、128、256个单独的NAND装置,并且每个NAND装置可以在装置内的个体管芯(未示出)上运行单独的命令。作为示例,包括n个NAND装置(每个NAND装置具有d个管芯)的存储阵列140可以在任何时间为来自SoC控制器130的多达(n×d)个命令提供服务,其中n和d是大于零的整数。SSD 120还包括位于SoC控制器130外部的易失性存储器,例如动态随机存取存储器(“DRAM”)150。DRAM 150包括若干个缓冲器(未示出),用于在接收到来自主机110的命令时,在主机110和存储装置140之间的读取和写入操作期间缓冲数据。
易失性存储器与控制器结合使用,因为它们是快速的且响应迅速(responsive)。然而,当移除电力时,存储在易失性存储器中的内容会丢失。易失性存储器也很昂贵,因此会增加SSD的总体成本。在一些实施方式中,外部存储器DRAM 150的全部或一部分可以位于SoC控制器130内。当位于SoC控制器130内时,外部存储器的至少一部分可以使用快速存储器技术来实现,例如静态随机存取存储器(SRAM)。在一些实施方式中,位于SoC 130内的DRAM的部分可以实现为高速缓冲存储器135。在某些实施方式中,外部存储器的全部或一部分可以使用快速非易失性存储器技术来实现,包括但不限于磁随机存取存储器(MRAM)、电阻式随机存取存储器(ReRAM)或相变存储器(PCM)。
SoC控制器130包括主机接口122,其允许与主机110通信以接收命令,例如读取、写入和解除分配请求。SoC控制器130还包括用于与存储元件140通信的NAND接口124(通过多个信道,例如图1所示的NAND信道CH1、CH2……CHn,其中n是整数),以及用于与位于SoC外部的存储器150通信的存储器接口126。SoC 130上的主机接口122可以包括串行高级技术附件(SATA)连接器或NVMeTM连接器(NVMeTM是“NVM express”的首字母缩写词,其中“NVM”代表非易失性存储器,下文称为NVMe),其通过
Figure BDA0003874694910000081
(“外围部件快速接口(PeripheralComponent Interface Express)”,下文中PCIe)总线操作。例如,NAND接口124可以包括开放式NAND闪速存储器接口(ONFI)、切换式(toggle)NAND接口或制造商的专有接口。存储器接口126例如可以包括根据但不限于以下标准的接口:双倍数据速率(DDR)存储器总线标准,例如DDR3、DDR4或DDR5;低功率双倍数据速率(LPDDR)存储器总线标准,例如LPDDR3、LPDDR4或LPDDR5;混合存储器立方体(HMC)存储器总线标准。
SoC控制器130可以包括各种内部子控制器,例如耦接到主机接口122的NVMe控制器132、经由高速缓冲存储器135耦接到存储器接口126的存储器控制器136、以及耦接到NAND接口124的NAND控制器138。NVMe控制器132可被配置为根据2019年6月10日的NVMExpressTM基本规范(版本1.4)(以下称为“NVMe 1.4”)工作。NVMe控制器132、L2P引擎134、NAND控制器138和存储器控制器136通过公共总线互连并且由SoC控制器130的控制和配置功能(未示出)控制,SoC控制器130配置和控制操作以及数据在这些控制器132、136、138之间的传递。存储器控制器136通过存储器接口126连接到DRAM 150。存储器控制器136还耦接到NVMe控制器132、NAND控制器138以及经由高速缓冲存储器135耦接到L2P引擎。NAND控制器138连接到NAND接口124,以与存储元件140通信,如图1所示。因此,DRAM 150和NAND存储元件140之间的任何交互经由存储器接口126、高速缓冲存储器135、存储器控制器136、NAND控制器138和NAND接口124发生。另外,存储器控制器136与NVMe控制器132和逻辑到物理(L2P)引擎134通信,如图1所示,以及如下所述。在一些实施方式中,L2P引擎134也在SoC控制器130的控制和配置功能中实现。
控制和配置功能可以包括可编程的专用集成电路(ASIC)逻辑、在一个或多个处理器上运行的可编程固件或两者的组合。控制和配置功能可以包括逻辑到物理(L2P)引擎134,其将从主机110接收的命令中指定的逻辑地址信息转换成与NAND存储器140相关的物理地址信息。控制和配置功能可以包括闪速转换层,其使SoC控制器130能够执行有助于处理从主机110接收到的读写命令的各种活动。一个这样的活动可以包括为NVMe控制器132和NAND控制器138之间的命令编排数据流。
例如,一旦NVMe控制器132从主机110接收到命令,例如读取命令或写入命令,控制和配置功能中的L2P引擎134将包含在主机命令中的逻辑块地址映射到物理NAND地址。L2P引擎134可以利用包含在高速缓冲存储器135和/或DRAM 150中的查找表来获得所需的NAND地址。然后,这些NAND地址在NAND命令中使用,其或者是基于接收到的主机命令,或者由固件在内部生成,被发送到NAND控制器138。NAND控制器138使用NAND地址,以然后对存储器装置140执行由主机或内部命令定义的动作或功能。例如,如果主机命令是读取命令,则NAND控制器138从存储器140中的指定NAND地址检索数据,其中可以向NAND控制器138发出多个NAND读取命令以检索数据。作为另一示例,如果主机命令是写入命令,则作为接收基于主机写入命令的NAND写入命令的结果,NAND控制器138将来自主机110和/或DRAM 150的主机数据写入存储器140中的指定NAND地址。在又一示例中,垃圾回收活动可以由SoC控制器130内的控制和配置功能在内部执行,从而导致向NAND控制器138发出多个读取、写入和擦除NAND命令以执行垃圾回收功能。
在主机110上运行的应用程序为SSD 120生成命令以访问存储在NAND存储器140中的数据。这样的命令可以是读取、写入和/或解除分配命令。为了访问NAND存储器140的特定部分,主机命令包含寻址信息,SSD 120使用该寻址信息完成来自主机110的请求。主机110提供的寻址信息是关于SSD内的逻辑块地址(LBA)。主机110经由主机提交队列将逻辑寻址信息发送到SSD 120。当SSD 120接收到主机命令时,SoC控制器130将LBA映射到线性逻辑簇地址(LCA)。这种映射由图1所示的L2P引擎134执行。在一些实施方式中,从LBA到LCA的映射是使用预定公式和/或查找表,通过算法执行的。
在确定LCA之后,L2P引擎134将LCA映射到NAND存储器140中的物理位置。NAND存储器140中的每个物理位置由媒体簇地址(MCA)限定。MCA的长度取决于SSD 120的容量(例如对于16TB的SSD,33位)。NAND存储器阵列140中的数据存储可以没有任何特定的顺序,因此在SSD 120中的MCA和LCA之间可能没有任何预定关系或算法关系。LCA到MCA的映射因此通过访问存储在DRAM 150中的映射表来完成,但是映射不是固定的,可以通过更新映射表中的条目来改变。存储在DRAM 150中的映射表是存储在NAND存储器阵列140中的主映射表的工作副本。LCA用于在映射表中建立索引(index)以查找MCA条目,并且为了高效,有一种固定的算法途径可以从LCA中快速导出映射表中条目的索引,这意味着这些条目优选地具有共同的大小。然而,共同大小的值可能根据NAND存储器阵列140的存储大小而变化。在一些实施方式中,映射表非常大并且可能占NAND存储器140大小的约1/1000。
DRAM 150中的每个映射表区域的条目是按照根据LCA的顺序排列的,但是映射表区域本身不需要按顺序排列。来自主机110的写入命令的处理(这可能会覆盖现有数据)以及内部过程(例如SSD 120内的垃圾回收)可能导致需要重新分配存储在NAND存储器140中的数据。这样的过程可能导致与主机命令中的LCA相关联的MCA地址的变化,从而导致在SSD120操作期间频繁更新DRAM 150中的映射表。映射表条目也在主机针对一系列LBA发送解除分配命令时更新。响应于解除分配命令,控制器对映射表的相应LCA或区域取消映射或使其无效。因此,当SSD 120处理主机命令或诸如垃圾回收的活动时,映射表会不断更新。
然而,由于DRAM 150是易失性存储器,因此当提供给SSD 120的电力被移除时,例如当SSD 120关闭时,DRAM 150的内容会丢失。这是不利的,因为映射表将不再可用于将从主机接收的LCA地址映射到NAND存储器140内的物理MCA地址,从而在处理主机命令时导致错误。此外,由于DRAM 150中的映射表的大小很大,因此无法在从移除SSD120的电力到数据从DRAM 150丢失的短时间内将整个LUT复制到SSD 120的另一部分,例如复制到NAND存储器140的一部分。
图2示出了根据本公开的一个实施例的在SSD操作期间使用的映射表数据结构200。NAND存储器140的物理地址(MCA)在图2中示出,其中NAND存储器140被分组为NAND页。有效的用户数据以阴影基元为例,并非所有的NAND存储器基元(memory cell)都包含有效的用户数据。映射表210是先前关于图1描述的LCA-MCA映射表。映射表210可以划分为LCA的多个区域,例如64个LCA。每个区域填充有指向NAND装置中的NAND存储器基元的物理地址(MCA)的指针。每个MCA地址的大小为4字节,因此每个区域的大小为256字节。由于每个MCA指向4KB的用户数据,因此每个区域代表256KB的用户数据。NAND基元到映射表210的不同LCA的分配可以由控制器分配。
当映射表区域中的所有LCA都包含指向存储在NAND存储器140中的用户数据的指针时,该区域中的所有LCA将包含含有所述用户数据的相应NAND存储器基元的有效物理地址。然而,已被解除分配或最近被擦除的NAND存储器基元将不包含任何用户数据。这样的NAND存储器基元在映射表210中被取消映射,并且用于这些取消映射的NAND存储器基元的存储在映射表210中的LCA指针将指向无效签名地址。无效签名地址由控制器固件预先确定,并且可以在整个SSD 120中相同。因此,映射表210中的指针可以指向NAND存储器140中的有效地址或指向无效签名地址。因此,映射表210中的各个区域可以(i)完全填充有有效的NAND地址(在指针指向存储在NAND存储器140中的用户数据的情况下),(ii)完全填充有无效签名地址(在NAND存储器基元被取消映射且不包含用户数据的情况下),或(iii)是(i)和(ii)的混合。
应指出,当从主机接收到解除分配命令时,控制器可以向主机发送解除分配状态完成,同时在SSD内的后台利用解除分配标志位图(DFB)来管理映射表条目的解除分配的处理。DFB的使用在2021年9月30日提交的名称为“SSD Supporting Deallocate Summary BitTable and Associated SSD Operations(支持解除分配摘要位表及关联的SSD操作)”的美国专利申请17/491,123中有详细描述,该申请的全部内容通过引用并入本文中。
LCA-MCA映射表210的每个区域都被分配了NAND存储器中的物理地址,称为媒体区域地址(MRA),其中这些区域在映射表清仓期间被最后保存在NAND中。如图2所示,SSD控制器130维持映射区域地址表(MRAT)220,MRAT 220包含映射表210的每个区域的MRA。因此,MRAT 220是映射表,其填充有指向LCA-MCA映射表210的每个区域的物理地址的指针。为了区分映射表210中被无效签名地址完全填充的区域和被至少一个有效的映射NAND地址填充的区域,控制器130维持用于映射表210的每个区域的有效性位。
有效性位图表包括用于每个区域的单个有效性位,其状态表示映射表210中区域的映射内容。这里,控制器将单个有效性位分配给MRAT 220中的每个MRA。位值指示映射表210中的相应区域是否包含至少一个指向NAND装置140中的用户数据的有效MCA。如果该区域包含至少一个有效MCA,则该位被设置为脏的,即,被设置为“1”,如果该区域被完全取消映射并且不包含存储在NAND存储器140中的用户数据,则该位被清除,即,被设置为“0”。控制器130将有效性位图存储在有效性位表(VBT)230中,有效性位表(VBT)230被存储在DRAM150中以供快速访问。由于VBT中的每个位表示256KB(即,每个区域64个LCA),因此VBT 230的大小小于驱动器的大小,比例为1位比256KB,即,1:(2048×1024)。例如,对于1TB的SSD,0.5MB VBT 230就足够了;对于2TB的SSD,1MB VBT 230就足够了;对于4TB的SSD,2MB VBT230就足够了;对于8TB的SSD,4MB VBT 230就足够了;对于16TB的SSD,8MB VBT 230就足够了。
由于VBT 230针对每个区域使用一位来指示该区域是映射的还是取消映射的,因此写入放大率也以1:(256×8)的比率显著降低,即,对于取消映射的区域,为1:2048倍。因此,将LCA-MCA映射表210从NAND存储器装置140加载到DRAM 150的时间也将按该比例减少。此外,取消映射的区域的写入放大率也将通过以下方式按该比例减少:即,在将映射表清仓到NAND时,仅将映射的脏区域保存到NAND,如VBT 230所指示的,而不是将大小分别为256字节的所有脏表都保存到NAND。这将在解除分配密集的工作负载期间显著减小写入放大率和启动时间。通过在常规元数据日志记录期间不写入NAND装置140的取消映射的区域,VBT230还将在接收到格式化命令之后以及在写入和解除分配操作期间显著增加顺序和随机写入的每秒I/O(IOPS)。
在一些实施例中,当映射表210的更新的映射区域被清仓到NAND装置140时,控制器130将VBT划分为要被存储在NAND装置140中的各个部分(section)。为了促进这一点,控制器130创建有效性位地址表(VBAT),该表包含其中VBT部分在被清仓到NAND装置140之后被写入的物理地址。通过周期性地将VBT写入非易失性存储器140,LCA-MCA映射表210的区域的有效性状态被保存并且可以在断电事件和/或不安全关闭之后快速恢复到DRAM 150。
图3A示出了在加电后SSD 120的初始化期间,LCA-MCA映射表210、MRAT 220和VBT230的内容。这里,映射表210中的条目都被设置为无效签名地址,如图3A所示例的0xFFFFFFFF。无效签名地址是预先确定的,并且例如可以通过写入控制器固件而被编程。类似地,MRAT 220中的条目也被设置为无效签名地址,并且VBT 230的所有位都被清除为“0”。此外,根据本公开的实施例,当映射表210的对应区域仅包含取消映射的MCA,指示映射表的对应LCA不包含用户数据时(这在处理解除分配命令时发生),在MRAT的条目中也使用无效签名地址。这确保了在垃圾回收期间,取消映射的区域不会移动到新的映射表块。无效签名地址以这种方式的使用还通过向控制器通知映射表中区域的有效性状态以及在常规元数据日志记录期间不将无效区域写入NAND而减小写入放大率并提高写入性能。
图3B示出了在处理来自主机的一些写入命令和解除分配命令之后,LCA-MCA映射表210、MRAT 220和VBT 230的内容。在这种情况下,映射表的某区域中的一些或全部LCA可能包含用户数据,相应地,该区域中的LCA存储有效MCA,用户数据被存储在有效MAC处。因此,MRAT 220存储包含用户数据的区域的物理地址,而剩余的MRAT条目默认为签名无效地址以反映映射表的取消映射的区域。此外,对于包含指向含有用户数据的有效MCA的指针的区域,控制器130将VBT条目设置为“1”,而对于被完全取消映射或无效的区域(例如,通过解除分配命令取消映射的区域或从未被写入的区域),将VBT条目设置为“0”。这里,MRAT 220包含用于NAND装置140中被取消映射的区域的无效地址,因此这些被取消映射的区域在安全关闭之后的正常启动期间以及在后台或按需加载期间将不会被加载到DRAM 150。
图4示出了根据本公开的一个或多个实施例的使用有效性位图表来更新存储在非易失性半导体存储装置中的LCA-MCA映射表的方法400的示例性流程图。方法400可以用如前所述的SSD 120来执行。首先,LCA-MCA映射表210被加载到SSD 120的DRAM 150中以供控制器120在后台表加载期间或在处理来自主机的命令时访问。在步骤410,当处理主机写入命令、解除分配命令或垃圾回收时,控制器130应确定已改变或需要被无效的LCA和相关联的MCA。在步骤420,控制器130更新映射表以将NAND装置140中的MCA映射到逻辑空间中的LCA,并且还为解除分配的LCA插入无效签名地址。
在步骤430,控制器130然后确定是否存在已在映射表210中映射的任何无效地址。这里,无效地址例如是已经被先前的解除分配命令取消映射的LCA,或者是从未被写入的LCA。如果LCA从未被写入,它将包含在启动期间被初始化的无效MCA地址。如果LCA被解除分配,它将包含这些MCA的无效签名地址。如果某区域仅由所有无效地址填充,则控制器然后确定该区域是无效的,否则该区域是有效的。
在步骤440,控制器130然后在有效位图表(VBT)230中针对每个区域在有效性位中设置有效性状态,其中为映射表210的有效区域指定“1”,并且为映射表210的无效区域指定“0”。控制器可以将VBT 230存储在诸如DRAM 150的易失性存储器中(步骤450)。在一些实施方式中,VBT 230中的条目经由有效性位图地址表(VBAT)被周期性地清仓到NAND存储器装置140,以帮助在突然断电之后恢复VBT。在步骤460,控制器130针对映射表210的区域从VBT230读取有效性位,并且仅将脏区域(即,其中位为“1”的区域)清仓到NAND装置140。清仓到NAND装置140在SSD 120的操作期间周期性地发生。
图5示出了用于在安全关闭之后的SSD 120启动后恢复LCA-MCA映射表210的方法500的示例性流程图。方法500假设控制器130已经经由有效性位图地址表(VBAT)将VBT 230的部分保存在NAND存储器装置140中,并且SSD 120之前已经被安全地关闭。该方法开始于步骤510,在步骤510,控制器130从NAND存储器装置140加载VBAT。VBAT包含指向含有VBT230的部分的NAND存储器内的物理地址的指针。控制器130然后在步骤520从物理地址加载有效性位图表的部分,并且在步骤530从NAND存储器装置140加载MRAT 220。对于具有脏位(即,被设置为“1”的位)的VBT 230中的条目,控制器从存储在MRAT中的相关物理地址检索对应于有效区域的映射表。以这种方式,映射表的有效区域被恢复并被加载到DRAM 150。
图6示出了用于在不安全关闭之后的SSD 120启动后恢复LCA-MCA映射表210的方法600的示例性流程图。方法600假设SSD 120已经被意外关闭并且控制器现在正尝试使用在上一次清仓期间存储在NAND中的VBT 230中所存储的最近有效性状态,从保存在NAND存储器装置140中的先前版本恢复LCA-MCA映射表210。方法600开始于步骤610,在步骤610,控制器将最后保存的映射表210从NAND存储器装置140加载到DRAM 150。控制器130然后从最后保存的映射表210恢复MRAT 220。然后,控制器从NAND存储器装置140加载VBT 230,并将最近的VBT与来自最后保存的MRAT 220的区域的有效性状态进行比较(步骤620)。接下来在步骤630,控制器130使映射表210的其中VBT 230的当前版本被识别为无效的区域无效。这里,控制器用与被VBT 230识别为无效的区域对应的条目处的无效签名地址更新现在位于DRAM 150中的MRAT 220。在恢复所有表之后,控制器130然后在步骤640发出清仓以将更新的表保存回NAND存储器装置140。
在上文中,所有对“层”和“引擎”的引用都应该被理解为是指控制器内促进所述功能的多个电路。这样的电路可以包括形成在半导体芯片上的电子部件,例如晶体管和电阻器。应当注意,上述术语“大约”或“约”指示所述值的±20%的范围。此外,在上文中,所有对“命令”、“动作”或“功能”的引用都应视为基于存储在非暂时性计算机可读介质上的算法和指令,当由处理器执行时,这些算法和指令使固态驱动器(SSD)的集成电路的控制器执行命令、动作或功能。
本发明的各个方面的其他目的、优点和实施例对于本发明领域的技术人员来说将是显而易见的并且在说明书和附图的范围内。例如但非限制地,结构或功能元件可以根据本发明重新排列。类似地,根据本发明的原理可以应用于其他示例,即使这里没有详细地具体描述,但其他示例仍然在本发明的范围内。

Claims (24)

1.一种由固态驱动器SSD的控制器执行的方法,包括:
将所述SSD的非易失性半导体存储器装置中的逻辑到物理映射表分成多个区域,每个所述区域与多个逻辑簇地址LCA相关联;
确定每个区域的所述映射表是否包含具有有效地址的条目;
如果所述多个区域中的一区域的所述映射表包含任何映射地址,则在该区域的有效性位中设置有效性状态;以及
将每个区域的所述有效性位存储在有效性位图表VBT中。
2.根据权利要求1所述的方法,还包括:
针对每个区域将物理地址与所述映射表进行关联;
将每个区域的所述物理地址存储在映射区域地址表MRAT中;以及
将所述MRAT存储在所述非易失性半导体存储器装置中。
3.根据权利要求2所述的方法,还包括:
将每个区域的所述有效性位的物理地址存储在有效性位图地址表VBAT中;以及
将所述VBAT存储在所述非易失性半导体存储器装置中。
4.根据权利要求1所述的方法,其中,所述有效性位的所述有效性状态是单个位状态。
5.根据权利要求4所述的方法,其中,设置所述有效性状态包括:如果一区域被完全取消映射,则将所述位清除为“0”,或者如果一区域包含至少一个有效地址,则将所述位设置为“1”。
6.根据权利要求1所述的方法,其中,所述取消映射的地址被分配预定值。
7.根据权利要求1所述的方法,还包括:
确定来自所述VBT的一区域的所述有效性状态;以及
如果所述区域包含有效地址,则将所述区域的所述映射表存储在所述非易失性半导体存储器装置中。
8.根据权利要求1所述的方法,还包括:
响应于写入命令、解除分配命令、垃圾回收命令中的任一者,更新所述非易失性半导体存储器装置中的所述多个区域的所述有效性状态;以及
更新所述VBT中每个区域的对应有效性状态。
9.根据权利要求3所述的方法,还包括:
响应于启动命令,从所述非易失性半导体装置加载所述VBAT和所述MRAT;
确定来自所述VBT的所述多个区域的所述有效性状态;以及
使用所述MRAT将包含有效地址的所述区域的所述映射表加载到所述易失性存储器。
10.根据权利要求3所述的方法,还包括:
响应于不安全的关闭或断电,从所述非易失性半导体存储器装置加载所述MRAT的最后保存版本;
从所述易失性半导体存储器装置加载所述VBT的当前版本;
将所述VBT的所述当前版本中的所述多个区域的所述有效性状态与来自所述MRAT的所述映射表的所述最后保存版本中的所述多个区域的所述有效性状态进行比较;以及
更新所述MRAT中的无效区域地址以与来自所述VBT的所述当前版本的所述多个区域的所述有效性状态相对应。
11.根据权利要求1所述的方法,其中,所述非易失性半导体存储器装置是NAND半导体存储器。
12.根据权利要求1所述的方法,其中,所述易失性半导体存储器装置是动态随机存取存储器DRAM。
13.一种固态驱动器SSD,包括:
非易失性半导体存储器装置,其被配置为存储逻辑到物理映射表;
易失性半导体存储器装置,其被配置为存储有效性位图表VBT;以及
控制器,其耦接到所述非易失性半导体存储器装置和所述易失性半导体存储器装置,所述控制器被配置为:
将所述逻辑到物理映射表分成多个区域,每个所述区域与多个逻辑簇地址LCA相关联;
确定每个区域的所述映射表是否包含具有有效地址的条目;
如果所述多个区域中的一区域的所述映射表包含任何映射地址,则在该区域的有效性位中设置有效性状态;以及
将每个区域的所述有效性位存储在所述VBT中。
14.根据权利要求13所述的SSD,其中,所述控制器还被配置为:
针对每个区域将物理地址与所述映射表进行关联;
将每个区域的所述物理地址存储在映射区域地址表MRAT中;以及
将所述MRAT存储在所述非易失性半导体存储器装置中。
15.根据权利要求14所述的SSD,其中,所述控制器还被配置为:
将每个区域的所述有效性位的物理地址存储在有效性位图地址表VBAT中;以及
将所述VBAT存储在所述非易失性半导体存储器装置中。
16.根据权利要求13所述的SSD,其中,所述有效性位的所述有效性状态是单个位状态。
17.根据权利要求16所述的SSD,其中,如果一区域被完全取消映射,则通过将所述位清除为“0”来设置所述有效性状态,或者如果一区域包含至少一个有效地址,则通过将所述位设置为“1”来设置所述有效性状态。
18.根据权利要求13所述的SSD,其中,所述取消映射的地址被分配预定值。
19.根据权利要求13所述的SSD,其中,所述控制器还被配置为:
确定来自所述VBT的一区域的所述有效性状态;以及
如果所述区域包含有效地址,则将所述区域的所述映射表存储在所述非易失性半导体存储器装置中。
20.根据权利要求13所述的SSD,其中,所述控制器还被配置为:
响应于写入命令、解除分配命令、垃圾回收命令中的任一者,更新所述非易失性半导体存储器装置中的所述多个区域的所述有效性状态;以及
更新所述VBT中每个区域的对应有效性状态。
21.根据权利要求15所述的SSD,其中,响应于启动命令,所述控制器还被配置为:
从所述非易失性半导体装置加载所述VBAT和所述MRAT;
确定来自所述VBT的所述多个区域的所述有效性状态;以及
使用所述MRAT将包含有效地址的所述区域的所述映射表加载到所述易失性存储器。
22.根据权利要求15所述的SSD,其中,响应于不安全的关闭或断电,所述控制器还被配置为:
从所述非易失性半导体存储器装置加载所述MRAT的最后保存版本;
从所述易失性半导体存储器装置加载所述VBT的当前版本;
将所述VBT的所述当前版本中的所述多个区域的所述有效性状态与来自所述MRAT的所述映射表的所述最后保存版本中的所述多个区域的所述有效性状态进行比较;以及
更新所述MRAT中的无效区域地址以与来自所述VBT的所述当前版本的所述多个区域的所述有效性状态相对应。
23.根据权利要求13所述的SSD,其中,所述非易失性半导体存储器装置是NAND半导体存储器。
24.根据权利要求13所述的SSD,其中,所述易失性半导体存储器装置是动态随机存取存储器DRAM。
CN202211209659.9A 2021-09-30 2022-09-30 用于固态驱动器的有效性表 Pending CN115905033A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/491,156 US11977773B2 (en) 2021-09-30 2021-09-30 Validity table for solid state drives
US17/491156 2021-09-30

Publications (1)

Publication Number Publication Date
CN115905033A true CN115905033A (zh) 2023-04-04

Family

ID=85706606

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211209659.9A Pending CN115905033A (zh) 2021-09-30 2022-09-30 用于固态驱动器的有效性表

Country Status (3)

Country Link
US (1) US11977773B2 (zh)
CN (1) CN115905033A (zh)
TW (1) TW202333058A (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2023045867A (ja) * 2021-09-22 2023-04-03 キオクシア株式会社 メモリシステム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9304906B2 (en) * 2013-09-10 2016-04-05 Kabushiki Kaisha Toshiba Memory system, controller and control method of memory
JP2018116329A (ja) 2017-01-16 2018-07-26 富士通株式会社 ストレージ制御装置、およびストレージ制御プログラム
WO2019105029A1 (zh) 2017-11-29 2019-06-06 北京忆恒创源科技有限公司 去分配命令处理方法及其存储设备
JP2021114264A (ja) 2020-01-21 2021-08-05 富士通株式会社 ストレージ制御装置およびストレージ制御プログラム
TWI766582B (zh) * 2021-02-17 2022-06-01 群聯電子股份有限公司 有效資料合併方法、記憶體儲存裝置及記憶體控制電路單元

Also Published As

Publication number Publication date
TW202333058A (zh) 2023-08-16
US20230096420A1 (en) 2023-03-30
US11977773B2 (en) 2024-05-07

Similar Documents

Publication Publication Date Title
US10915475B2 (en) Methods and apparatus for variable size logical page management based on hot and cold data
CN109240938B (zh) 存储系统以及控制非易失性存储器的控制方法
US10884630B2 (en) Storage system
US8711631B1 (en) Management of memory array with magnetic random access memory (MRAM)
US10061710B2 (en) Storage device
CN105718530B (zh) 文件存储系统及其文件存储控制方法
US9213495B2 (en) Controller management of memory array of storage device using magnetic random access memory (MRAM) in a mobile device
US8724392B1 (en) Controller management of memory array of storage device using magnetic random access memory (MRAM)
US20150378948A1 (en) Auxiliary Interface for Non-Volatile Memory System
US11954031B2 (en) Enhancing cache dirty information
US11520696B2 (en) Segregating map data among different die sets in a non-volatile memory
EP3627328A1 (en) Storage device and operating method of storage device
JP2024511385A (ja) コピーオンライトを使用するon-SSDコピー技法
TWI790628B (zh) 記憶體系統及控制方法
CN112015341A (zh) 一种数据存储方法、存储系统及存储介质
TW202101223A (zh) 資料儲存裝置以及非揮發式記憶體控制方法
CN110047537B (zh) 一种半导体存储装置及计算机系统
CN115905033A (zh) 用于固态驱动器的有效性表
KR102589609B1 (ko) 분할된 저장장치에서의 스냅샷 관리
US11947816B1 (en) Solid state drives with improved format handling
CN111858401A (zh) 提供异构命名空间的存储设备及其在数据库中的应用
TWI724550B (zh) 資料儲存裝置以及非揮發式記憶體控制方法
CN118302740A (zh) 使用写时复制的固态驱动器上复制技术
CN114968067A (zh) 使用持久性存储器的资料整理方法与存储器储存系统
KR20200034560A (ko) 스토리지 장치 및 스토리지 장치의 동작 방법

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication