CN118302740A - 使用写时复制的固态驱动器上复制技术 - Google Patents
使用写时复制的固态驱动器上复制技术 Download PDFInfo
- Publication number
- CN118302740A CN118302740A CN202280035552.9A CN202280035552A CN118302740A CN 118302740 A CN118302740 A CN 118302740A CN 202280035552 A CN202280035552 A CN 202280035552A CN 118302740 A CN118302740 A CN 118302740A
- Authority
- CN
- China
- Prior art keywords
- lba
- destination
- copy
- source
- physical address
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 49
- 239000007787 solid Substances 0.000 title description 7
- 238000012005 ligant binding assay Methods 0.000 claims abstract 12
- 230000015654 memory Effects 0.000 claims description 66
- 238000004519 manufacturing process Methods 0.000 claims description 4
- 230000004044 response Effects 0.000 claims description 4
- 230000003111 delayed effect Effects 0.000 claims description 3
- 238000013403 standard screening design Methods 0.000 abstract description 22
- 230000010076 replication Effects 0.000 abstract description 19
- 238000005516 engineering process Methods 0.000 abstract description 5
- 230000003362 replicative effect Effects 0.000 abstract description 2
- 238000004891 communication Methods 0.000 description 20
- 230000006870 function Effects 0.000 description 11
- 238000013507 mapping Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 3
- 238000009966 trimming Methods 0.000 description 3
- 230000009977 dual effect Effects 0.000 description 2
- 230000003370 grooming effect Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000004549 pulsed laser deposition Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Abstract
使用写时复制(COW)技术的SSD上复制跟踪了对所复制的数据的间接更新而不复制该数据。在一个示例中,一种方法涉及接收将数据从源LBA复制到目的地LBA的复制命令。更新逻辑到物理(L2P)表中对应于目的地LBA的条目,以引用与L2P表中源LBA的条目相同的物理地址。L2P表中的标志被更新以指示多个LBA引用了同一物理地址。在更新L2P表之后和在复制数据之前,将令牌存储到存储设备中。在存储令牌之后,但在复制数据之前,可以向主机发送确认以指示复制命令完成。随后对源LBA或目的LBA的写入触发数据的复制。
Description
技术领域
本描述一般涉及诸如NAND闪存等非易失性存储介质,尤其涉及SSD(固态驱动器)上复制技术。
背景技术
在诸如固态驱动器、硬盘驱动器和存储器设备的存储设备中的数据复制操作是计算机系统中的常见操作。数据复制操作可以是用户启动的或系统启动的,并且用于将数据从源位置复制到目的地位置。数据复制操作的过度使用会影响计算机系统的性能,因为在执行后续任务之前主机需要等待数据复制操作完成。
附图说明
以下描述包括对具有通过本发明实施例实现的示例给出的图示的附图的讨论。附图应当通过示例而不是限制来理解。如本文所使用的,对一个或多个“实施例”或“示例”的引用应被理解为描述了包括在本发明的至少一个实现中的特定特征、结构和/或特性。因此,这里出现的诸如“在一个实施例中”或“在一个示例中”的短语描述了本发明的各种实施例和实现方式,并且并非一定全部指代同一实施例。然而,它们也不一定是相互排斥的。
图1是包括非易失性存储器(NVM)设备的一个示例性系统的框图。
图2是NVM设备的一个示例的框图。
图3A示出能够执行SSD上写时复制操作的NVM设备的逻辑到物理(L2P)表的一个示例。
图3B示出能够执行SSD上写时复制操作的NVM设备的一个子集的物理到逻辑(P2L)表的一个示例。
图3C是存储NAND介质上的P2L表的至少一部分和DRAM中的P2L表的至少一部分的一个示例的框图。
图4是执行SSD上写时复制操作的方法的一个流程图。
图5-8是执行SSD上复制命令的功能的伪码的示例。
图9是去碎片化(碎片整理)方法的一个示例的流程图。
图10是用于碎片整理操作的伪码的一个示例。
图11提供其中可以实现数据复制技术的一个计算系统的一个示例性描绘。
下面是对某些细节和实施方式的描述,包括对附图的描述,附图可以描述下面描述的一些或所有实施例,以及讨论这里给出的发明构思的其他潜在实施例或实施方式。
详细描述
使用写时复制的SSD上复制技术可以实现改进的复制性能、介质耐用度、逻辑/物理容量、功耗和内部读/写带宽。
数据复制操作在真实世界应用中是常见的。“SSD上复制”是一种在SSD(固态驱动器)内复制数据而不将数据移动到主机存储器的技术。SSD上复制对于具有大数据有效载荷的复制命令来说可以显著地提高主机性能。
然而,SSD上复制操作可能会消耗相当大的介质耐用度、功率和内部读/写带宽。另外,常规的SSD上复制操作不节省SSD的物理和逻辑容量。
相比之下,使用写时复制(COW)技术的SSD上复制跟踪了对所复制的数据的间接更新而不复制该数据。因此,使用写时复制的SSD上复制可以显著地提高复制性能、节省介质耐用度和逻辑/物理容量、降低功耗、并改善内部读/写带宽。
在一个示例中,一个执行SSD上复制的方法涉及在非易失性存储设备处从一个主机接收复制命令以将数据从源逻辑块地址(LBA)复制到目的逻辑块地址(LBA)。更新逻辑到物理(L2P)表中对应于目的地LBA的条目,以引用与L2P表中源LBA的条目相同的物理地址。L2P表中的标志被更新以指示多个LBA引用了同一物理地址。在更新L2P表之后和在复制数据之前,将令牌存储到非易失性存储设备中以指示复制命令完成。在存储令牌之后,但在复制数据之前,可以向主机发送确认以指示复制命令完成。随后,对源LBA或目的LBA的写入会触发数据的复制。
图1是包括非易失性存储器(NVM)或存储设备的一个示例性系统的框图。系统100是可以实现本文描述的SSD上复制技术的系统的一个示例。
系统100包括一个主机150和非易失性存储装置或非易失性存储器(NVM)设备120。NVM设备120可以是固态驱动器(SSD)或其他非易失性存储器设备或驱动器。主机150和NVM设备120可以是存在于计算机封装范围内(例如,在膝上型计算机/笔记本计算机、服务器或其他计算机内)的系统的一个示例。在其他示例中,NVM 120可以经由诸如局域网(例如,以太网)或广域网(例如,无线蜂窝网络、因特网等)的更大的网络来访问。这样的示例可以符合诸如NVMe-oF(非易失性存储器高速结构)之类的标准。主机150包括一个或多个处理器152、存储器154、存储控制器114和为了清楚起见从附图中省略的其它组件。
NVM设备120包括用于存储数据的一个或多个存储器阵列132。阵列132可以是能够在存储器单元中存储一个或多个比特的存储器或存储介质。在一个示例中,所述阵列包含存储器单元串,例如下文所论述的图2中所说明的NAND串。在一个示例中,NVM设备120包括一个或多个非易失性存储器管芯,每个非易失性存储器管芯被分成多个平面或组。NAND快闪存储器通常是可块寻址的。典型的NAND管芯每管芯具有多个平面。一个平面包括可被分组成块的多个存储器单元。一个块通常是NAND快闪管芯中的最小可擦除实体。在一个示例中,一个块包括耦合到同一位线的多个单元。一个块包括单元的一个页面或多个页面。页面的大小可以根据实施方式而变化。在一个示例中,页面具有16kB的大小。小于或大于16kB的页面大小也是可能的(例如,512B、2kB、4kB等)。在一个示例中,NVM设备120可以包括使用多阈值级NAND闪存的存储器设备。阵列132可以包括单级单元(SLC)NAND存储设备、多级单元(MLC)NAND存储设备、三级单元(TLC)NAND存储设备、四级单元(QLC)存储设备、五级单元(PLC)和/或一些其他NAND。
NVM设备120使用相应的接口121和156与主机系统150通信。在一个示例中,接口156是外围控制集线器(PCH)的一部分。在图1中所示的示例中,主机包括一个控制器114,其经由接口156与NVM设备120耦合以与NVM设备120通信并控制该NVM设备。在所示的示例中,NVM设备120包括了一个控制器104,其经由接口121与诸如主机150的计算平台耦合。在一个示例中,控制器104是一个ASIC(专用集成电路)。在一个示例中,接口与诸如PCI Express(PCIe)、串行高级技术附件(ATA)、并行ATA、通用串行总线(USB)和/或其它接口协议的标准兼容。控制器104可以与计算平台的元件通信以从NAND管芯130读取数据或向NAND管芯130写入数据。尽管在本公开中,术语“主机”是指具有处理器(或发送访问存储在非易失性存储器中的数据的请求的其他设备)和用于与NAND(例如,主机150)通信的接口的系统,但是一些实施方式也可以将控制器104称为相对于NAND管芯130的“主机”。
控制器104可被配置成从主机150接收请求,且产生并执行关于阵列132的存取的命令(例如,读取数据、写入或擦除数据)。其它命令可以包括例如读取状态的命令、改变配置设置的命令、复位命令等。控制器包括控制逻辑,其可以用硬件(例如,电路)、软件、固件或硬件、软件和固件的组合来实现。逻辑电路的示例包括专用硬布线逻辑电路(包括例如一个或多个状态机逻辑电路)、可编程逻辑电路(例如现场可编程门阵列(FPGA)和可编程逻辑阵列(PLA)。在一个示例中,逻辑电路被设计成执行某种形式的程序代码,例如SSD固件(例如嵌入式处理器、嵌入式控制器等)。
NVM设备120可以包括与控制器104耦合的存储器117,其可以用于高速缓存来自非易失性介质的数据并且存储由控制器104执行的固件115。在一个示例中,存储器117是易失性存储器。易失性存储器是如果设备的电源中断则其状态(以及因此存储在其中的数据)不确定的存储器。动态易失性存储器需要刷新存储在设备中的数据以维持状态。动态易失性存储器的一个示例包括DRAM(动态随机存取存储器),或一些变体,例如同步DRAM(SDRAM)。如本文所述的存储器子系统可与多种存储器技术兼容,例如DDR3(双倍数据速率版本3,JEDEC(联合电子设备工程委员会)在2007年6月27日最初发布。DDR4(DDR版本4,最初由JEDEC在2012年9月发布)、DDR5(DDR版本5,最初在2020年发布)、LPDDR3(低功率DDR版本3,JESD209-3B,由JEDEC在2013年8月发布)、LPDDR4(LPDDR版本4,JESD209-4,最初由JEDEC在2014年8月发布)、LPDDR5(LPDDR版本5,JESD209-5A,最初由JEDEC在2020年1月发布)、WI02(宽输入/输出版本2,JESD229-2,最初由JEDEC在2014年8月发布)、HBM(高带宽存储器,JESD235,最初由JEDEC在2013年10月发布)、HBM2(HBM版本2,JESD235C,最初由JEDEC在2020年1月发布),或HBM3(目前由JEDEC讨论的HBM版本3),或基于这些技术的衍生技术或扩展的组合。JEDEC标准在www.jedec.org处可以找到。
控制器104与NAND管芯130耦合以控制或命令管芯上的电路以致使操作发生(例如,读取、编程、擦除、暂停、恢复和其它操作)。NAND管芯130与控制器104之间的通信可以包括对特定寄存器的写入及/或从特定寄存器上的读取。此类寄存器可以驻留在控制器104中、在NAND管芯130上或控制器104及NAND管芯130外部。管芯130内的寄存器或存储器可以由控制器104通过(例如)控制器104与NAND管芯130之间的内部接口(例如,开放NAND快闪接口(ONFI)接口、专有接口或其它接口)来连通以通信地耦合控制器104和阵列132。输入/输出(I/O)引脚和信号线将控制器104与NAND管芯130通信地耦合,以使得能够在控制器104与NAND管芯130之间传输读取和写入数据。I/O引脚还可以用于传输例如NAND管芯130的管芯或平面的状态信息的其它数据。NAND管芯还可以包括其它引脚,例如命令引脚(例如,命令锁存启用(CLE)、地址锁存启用(ALE)、芯片启用(CE#)、读取启用(RE#)及写入启用(WE#))以及电力及接地引脚(例如,Vcc、Vss等)。电压调节器140表示用于向存取电路135、感测电路134和/或阵列132提供一个或多个电压的电路。
NAND管芯130包括存取电路135以控制对阵列132的存取。举例来说,存取电路135将基于从控制器104接收的命令而产生电压或将电压施加到阵列132以执行存取操作(例如,读取操作、编程操作等)。NAND管芯130上的存取电路被耦合到阵列132的字线上以选择字线中的一个、施加读取电压、施加与位线电位电平组合的编程电压、施加验证电压或施加擦除电压。感测电路134和存取电路135耦合到阵列132的位线上以读取存储在存储器单元中的数据,在编程操作期间确定存储器单元的状态,且控制位线的电位电平以促进或抑制编程和擦除。
尽管图1中的示例涉及了NAND设备,但是其他非易失性存储器设备也可以实现本文描述的SSD上复制技术。此外,尽管为了便于参考,该技术被称为“SSD上”复制,但是这里描述的技术也可以在除了SSD之外的NVM设备(例如,诸如具有非易失性存储器的双列直插式DIMM之类的存储器模块,或其他NVM设备)上实现。
图2是图1的NVM设备120的框图。如上文针对图1所提及的,NAND控制器104执行存储在存储器117中的固件115以与NAND管芯130通信且控制所述NAND管芯。在一个示例中,在固件115中实现SSD上写时复制160技术。在图2所示的示例中,用于执行SSD上写时复制的固件包括SSD上的复制功能161、修整功能163、写入功能165和碎片整理功能167。用于实现SSD上写时复制的固件指的是修改也存储在存储器117中的逻辑到物理(L2P)表151和物理到逻辑(P2L)表153。虽然表151和153被示为存储在与固件115相同的存储器中,但NVM设备120也可以包括用于存储固件和映射表的多个存储器或存储设备。NAND介质(例如,阵列132)存储数据169。NAND介质还可以存储在存储器中的L2P和P2L表的备份155、157。在执行SSD上写时复制操作时,固件115将令牌159存储在NAND介质上以指示SSD上复制命令何时完成。
图3A示出了一个能够执行SSD上写时复制操作的NVM设备的逻辑到物理(L2P)表的示例。L2P表151是一个将逻辑块地址(LBA)映射到物理块地址(PBA、物理地址或NAND地址)的映射表。与传统的L2P表不同,L2P表151包括了对应于每个条目或LBA的附加引用标志。该引用标志包括一个或多个位,以指示由LBA指向的物理地址是否是被多个LBA引用了。在所示示例中,引用标志包括每条目一位,其指示NAND地址是否被多个L2P条目引用了。在图3A所示的示例中,LBA A和B引用了同一NAND地址X。因此,为对应于LBA A和LBA B的L2P条目设置了引用标志,该引用标志被设置成一个值以指示多个LBA引用了物理地址。
在图3A中所说明的示例中,将引用标志设定为“1”以指示多个LB A指向同一物理地址,将引用标志设定为“0”以指示没有多个LBA指向同一物理地址(例如,仅一个LBA指向该物理地址)。然而,也可以使用用于引用标志的不同约定。举例来说,其它约定可以将标志设定为“0”以指示多个LBA指向同一物理地址。在另一示例中,使用多个位来指示多个LBA指向同一物理地址。举例来说,引用标志可以包括多少LBA指向了同一物理地址的计数。
图3B示出了一个能够执行SSD上写时复制操作的NVM设备的子集物理到逻辑(P2L)表的示例。子集P2L表153将给定物理NAND地址映射到引用该物理地址的所有L2P条目上。不是映射所有的NAND地址,而是仅映射由多个L2P条目(例如,多个LBA)引用的地址。在一个示例中,子集P2L表是使用具有链接的一个散列表来实现的。任何一组标准插入、查找和/或删除算法都可以被用于更新P2L表153。在一个示例中,子集P2L表153可以被存储在DRAM中作为L2P表151的一个扩展区域,并周期性地放到NAND介质上以用于备份或重放目的。
因此,在所示示例中,P2L表153仅存储由多个逻辑地址指向的物理地址,因此通常存储了所有物理地址的子集。在图3B所示的示例中,物理地址X在P2L表153中具有两个条目,因为两个逻辑地址(A和B)引用了该物理地址X。物理地址Y不在子集P2L表153中,因为只有一个逻辑地址(C)引用了该物理地址Y。
子集P2L表先前被示为存储在DRAM中并备份在NAND介质上(例如参见图2)。然而,在另一示例中,子集P2L表的至少一部分存储在NAND介质上,并且P2L表的至少一部分存储在DRAM中。例如,考虑主机发出许多复制命令的情况。如果接收的复制命令的数量足够大,则子集P2L表的大小可以扩展到与L2P表的大小一样大或甚至更大。在一个示例中,子集P2L表的大小可以通过将其写回高速缓存在SSD内部DRAM中、以NAND介质作为备份介质、并使用PLI能量在电源故障时节省脏条目来加以界定。图3C是存储NAND介质上的P2L表的至少一部分和DRAM中的P2L表的至少一部分的一个示例的框图。如图3C所示,子集P2L表153A的全部的一部分被存储在NAND阵列132中,子集P2L表的一部分存储在存储器117中。在一个示例中,整个子集P2L表153A存储在NAND介质上,并且它高速缓存在DRAM中。在一个这样的示例中,存储在存储器117中的子集P2L表153B的部分存储子集P2L表153A中的最近和/或频繁访问的条目,在另一示例中,实现了子集P2L表的分层方法,其中,子集P2L表153B的一部分存储在存储器117中,而子集P2L表153A的剩余部分存储在NAND介质上。
因此,子集P2L表可仅存储在DRAM中并备份到NAND介质上(如图2所示),或者可存储在DRAM和NAND介质两者上(如图3C所示)。在子集P2L表跨DRAM和NAND介质两者存储的一个示例中,使用了分层方法,其中,子集P2L表的条目在DRAM和NAND介质之间拆分,在子集P2L表跨DRAM和NAND介质两者存储的另一示例中,使用了一个高速缓存方法,其中,整个子集P2L表存储在NAND介质上,并且这些条目的一个子集存储(或高速缓存)在DRAM中。
图4是执行SSD上写时复制操作的方法的流程图。方法400可以由诸如NVM设备中的控制器、固件或硬件和固件的组合之类的硬件(例如,电路)来执行。在一个示例中,方法400是由NVM设备中的ASIC控制器来执行的,该ASIC控制器执行存储在NVM设备中的存储器中的固件。举例来说,参看图2,NAND控制器104可以执行固件115中的指令以执行方法400。
图4的方法400开始于在402在非易失性存储设备处从主机接收复制命令。例如,参看图1,NVM设备120从主机150接收复制命令以将数据从源逻辑块地址(LBA)复制到目的地逻辑块地址(LBA)。该命令是通过接口(例如,经由接口156和121)来发送的。因此,主机包括输入/输出(I/O)电路以将复制命令发送到NVM设备,并且NVM设备120包括输入/输出(I/O)电路以根据一个或多个协议从主机接收命令。除了源地址和目的地地址之外,命令还可以包括或指定要复制的块的数目(或存储器单元的其它粒度)。
在接收到复制命令之后,NVM设备中的控制器在404处修改逻辑到物理(L2P)表以将目的地LBA映射到与源LBA相同的物理地址上。例如,参看图3A,考虑其中复制命令指示LBAA处的数据应该被复制到LBA C的情况,由LBA C指向的物理地址将被更新为与LBA C指向相同的物理地址(X)。在一个这样的示例中,在修改L2P表以将目的地LBA指向与源LBA相同的物理地址之前,可以移除P2L表中将不同的物理地址与目的地LBA相关联的条目(如果存在)。同样,在修改L2P表以将目的地址映射到与源地址相同的物理地址之前,L2P表中的目的地址的条目可被“清零”或清除。举例来说,参看图3A,考虑其中LBA A处的数据将被复制到LBA C的情形,将首先清除对应于LBA C的物理地址和引用标志(例如,设定为零)。
再次参看图4的方法400,在406,更新L2P表中对应于源LBA和目标LBA的标志,以指示多个LBA引用了同一物理地址。例如,参看图3A,考虑到存储在LBA A的数据将被复制到LBA C的情况,对应于LBA A和LBA C的引用标志被设置为“1”以指示多个LBA指向了该物理地址X。在该示例中,用于LBA A的标志已经被设置为“1”,因此与LBA相关联的标志没有实际改变。然而,用于LBA C的标志先前被设置为“0”以指示没有多个LBA引用该物理地址Y,因此,与LBA C相关联的标志从“0”变为“1”。
再次参看图4,在407,还更新物理到逻辑(P2L)表以将物理地址与目的地LBA和源LBA相关联。在一个示例中,P2L表是一个子集P2L表,其映射了由多个LBA引用的物理地址的子集。例如,参看图3B,考虑LBA A处的数据被复制到LBA C的情况,将物理地址X与LBA C相关联的条目加到子集P2L表153中。
在修改L2P表之后和在复制数据之前,在408处,将令牌存储到非易失性存储设备中以指示复制命令完成。令牌可以是一个包括关于SSD上复制命令的信息的数据结构。在一个示例中,令牌包括一个唯一签名,诸如一个唯一数字,以指示该令牌是一个复制命令令牌。除了签名之外,令牌还可以包括用于复制操作的源LBA、用于复制操作的目的LBA、以及要复制的块的数量。令牌还可以包括一个校验和,以指示令牌是损坏的还是有效的。在一个示例中,令牌被存储在非易失性介质上,并且消耗了整个页面或块。例如,参看图2,将SSD上的复制命令令牌159存储在阵列132中。即使令牌可以包括具有小于NVM设备中的数据粒度(例如,块或页面)的大小的数据,令牌也可以消耗整个数据块或页面。例如,考虑一个NVM设备,其中,数据的粒度是4KB AND页面。在一个这样的示例中,令牌可能会用完或消耗整个4kB NAND页面,尽管NAND页面仅有一小部分(例如,若干字节或数十字节)存储了令牌。
令牌可被用于在意外掉电的情况下使NVM设备能够重建或重放L2P表和子集P2L表。在一个示例中,在重放期间,控制器从第一页面开始扫描所有NAND页面,以查看在该页面中有什么数据。每个NAND页面都可以包括关于存储在NAND页面中的内容的报头信息。例如,NAND页面报头可以指示一个LBA,控制器读取该LBA并使用该LBA来重建L2P表。在重放期间,如果控制器遇到SSD上的复制令牌,则其向控制器指示主机发送复制命令和复制命令的细节(例如,源LBA和目的LBA以及要复制的块的数量)。
因此,令牌可以使控制器能够重建L2P表或P2L表。由于L2P表和子集P2L表检查点可周期性地丢弃(例如存储)到NAND介质上,所以可以在电源意外丢失的情况下,L2P表和子集P2L表的最后检查点可以在随后通电时加载回来。然后,控制器可以使用最新的L2P和子集P2L表备份,并通过重放检查点之后的所有NAND页面,使用令牌来进行重建。令牌可以在执行复制操作时(但是在实际数据复制之前)或者在稍后的时间被存储起来。例如,令牌的存储可以被延迟,直到要存储的令牌的数量大于了一个预定数量。例如,可以累积要写入NAND介质上的令牌,以便不引起每个复制操作的NAND写入惩罚。在写入令牌之前累积令牌可能对于小复制(例如,单个间接单元粒度长度复制)是有益的,因为如果在复制操作时存储每个小复制的令牌,则由于每个复制写入令牌并保持子集P2L更新,对介质的写入次数可能不会减少,甚至可能会稍微增加。
再次转到图4,方法400还包括在410处向主机发送确认以指示复制命令完成。在L2P表被更新之后,但在执行实际数据复制之前发送确认。取而代之的是,在412处,可以响应于接收到写入命令而复制数据,以写入源LBA或目的地LBA。在一个示例中,复制数据涉及分配一个新页面、将数据复制到新页面,以及更新L2P表的标志以指示仅一个LBA引用同一物理地址。
图5-8是用于在NAND SSD上执行SSD上复制命令功能的伪码的示例。图5-8中的示例示出了具有特定参数的功能,然而,参数也可能是更少的、有附加的或不同的。图5是L2P表条目的伪码500的一个示例。行502-510定义了L2P表中的条目(L2P_条目)的数据结构。L2P条目包括了一个NAND_Address和一个一位Reference_Flag。参看图3A,NAND地址是物理块地址PBA的一个示例,Reference_Flag是L2P151的引用标志151的一个示例。再次参看图5,在行512,用NUM_OF_ENTRIES条目示例化一个表(L2P)。在LBA A和B指向同一NAND地址X的一个示例中,会出现:
L2P[A].NAND_Address=x;
L2P[A].Reference_Flag=1;
L2P[B].NAND_Address=x;
L2P[B].Reference_Flag=1;
因此,L2P表将LBA映射到NAND地址上。除了NAND地址之外,每个条目有一位,Reference_Flag,其指示了NAND地址是否被多个L2P条目引用了。
图6是用于SSD上复制命令的伪码600的一个示例。在图6所示的示例中,在行602处,复制命令具有三个参数:起始源LBA(src)、起始目的地LBA(dest)和LBA的数量(num)。在行606处,复制命令执行目标LBA的修整命令。在一个示例中,该修整指令类似于一个删除指令,不从物理介质上删除数据。相反,移除了映射信息(例如,通过将L2P表中的映射信息清零或清除)。下文参考图7更详细地解释用于修整命令的伪码的一个示例。
再次参看图6,在行608-618处,更新在L2P表中目标LBA的映射信息,并且更新源和目标LBA的引用标志。在行612处,将目的地LBA的NAND_Address设定为源LBA的NAND_Address。在行614处,将L2P表中与目的地LBA相关联的条目的Reference_Flag设置为1。在行616处,将L2P表中与源LBA相关联的条目的Reference_Flag设置为1。引用标志指示了由源和目的地LBA指向的NAND_Address被多个LBA引用了。
在行620和622处,更新子集P2L表。例如,在子集P2L表中加入(插入)条目以将物理地址映射到源LBA和目的地LBA两者上。在行624处,将令牌丢弃(例如,将其存储到NAND介质上)以指示复制操作完成。在一个示例中,令牌被丢弃到NAND介质上以支持PLI(即将发生的功率丢失)/重放。在行624处,ackHostCompletion是用于向主机确认命令完成的一个回调功能。
因此,一旦SSD接收到复制命令,控制器就更新L2P表而不复制数据。控制器还更新P2L表以跟踪最新的P2L映射信息。然后,控制器将令牌丢弃到NAND介质上,使SSD可以在电源故障的情况下重建最新的L2P和P2L表。一旦令牌被丢弃,SSD就向主机确认命令完成。
图7示出了基于写入命令的SSD上复制的伪码的一个示例,然而,在一个示例中,是否执行正常复制与基于写入命令的SSD上复制取决于复制的大小。例如,小的数据复制(单个IU(间接单元)或子IU)请求可以被执行为读加写操作,而更大的数据复制(例如,具有多个或多于预定数量的IU的数据复制)被执行为写入的SSD上复制。在一个这样的示例中,参看图6的伪码600,检查要复制的LBA的数目(num),并且如果LBA的数目大于一个预定数目,则执行写入的SSD上复制操作(例如,行606-624)。如果要复制的LBA的数目小于或等于预定数目,则执行读和写操作而不是写入的SSD上复制。
图7是用于一个修整命令的伪码700的一个示例。在图7中所说明的示例中,修整命令具有两个参数:如行702所示,起始源LBA(src)和要被修整的LBA的数目(num)。
在一个示例中,如果一个L2P条目是先前的SSD上复制命令的一部分,其可以由引用标志标识(例如,如果引用标志指示了多个LBA指向该物理地址),则子集P2L表就移除对应物理地址的该L2P条目。例如,参看图7的行706-716,如果引用标志等于1,则从P2L表中移除条目。在一个这样的示例中,对于每个子集P2L移除操作来说,如果一个物理地址仅具有一个或零个引用它的L2P条目,则将从子集P2L表中移除该物理地址。除了子集P2L更新(如果需要)之外,L2P条目将被清空,并且受影响的L2P条目的引用标志(如果有)也将被清除。例如,在行718和720处,从L2P条目中清除物理地址,并且清除引用标志。在图7的示例中,在更新P2L和L2P表之后,在行724处,在将命令完成发送到主机之前,将令牌丢弃到NAND介质上。修整命令令牌可以是一个包括关于SSD上复制命令的信息的数据结构。在一个示例中,令牌包括一个唯一签名,例如一个唯一数字,以指示令牌是一个修整指令令牌。修整命令令牌可以支持PLI和重放。例如,可以在控制器更新L2P表的同时向主机发送确认。如果在L2P表更新完成之前电源丢失,则可以使用修整令牌正确地重建L2P表。
图8是用于写入命令的伪码800的一个示例。在图8所示的示例中,写入命令具有两个参数:如行802所示,起始源LBA(src)和要被修整的LBA的数目(num)。类似于修整命令,如果一个L2P条目是先前的SSD上复制命令的一部分(例如,如果引用标志指示了多个LBA指向同一物理地址),则更新P2L表。举例来说,可以移除将LBA与物理地址相关联的条目,因为多个LBA不再引用该物理地址(例如,仅一个LBA引用该物理地址)。参看图8,在行806-814处,针对每个LBA,清除L2P表中用于源LBA的条目的引用标志,以指示没有多个LBA引用该物理地址。在行816处,从子集P2L中移除将源LBA与该物理地址相关联的条目。伪码的行820-824处理了NAND页面分配和DMA(直接存储器存取)传输,使得主机数据可以被写入到NAND介质上。例如,在行820处,为源LBA分配一个新页面。在824行处,建立DMA传输以将数据写入到该新分配的页面中。
图9是去碎片化(碎片整理)方法900的一个示例的流程图。在碎片整理期间,所选区带(例如,源区带)的有效页面被重新定位到一个新的区带(例如,目的地区带)上。在一个示例中,NAND页面被组织成区带,其中,每个区带都可以包括多个块,并且每个块都可以包括多个页面。在一个这样的示例中,每个区带都可以包括一个区带日志,该区带日志可以包括关于该区带中的页面的物理页面到LBA映射信息的信息。因此,区带日志可以是或包括一个本地P2L表,其独立于本文所述的子集P2L。在一个示例中,区带日志是一个NAND SSD数据结构,其在每个NAND页面被写入时记录L2P条目。如果发生电源丢失,则区带日志可被用于重建L2P表。还可以在执行碎片整理操作时使用区带日志。例如,为了执行碎片整理操作,可以将源区带日志加载到存储器中。
参看图9,在加载了区带日志之后,在902处,针对源区带中的每个页面,控制器检查子集P2L以确定该页面的当前物理地址是否被多个LBA引用了。在904处,更新引用了当前物理地址的L2P条目以去引用新的物理地址。如果多个的LBA引用了同一物理地址,则L2P表中的多个条目就被更新以指向新的物理地址。然后在906处,数据从当前物理地址被重定位到新的物理地址。
因此,执行碎片整理操作以将源区带的有效页面移动到目的地区带涉及了针对源区带中具有P2L表中的条目的每个物理地址,将L2P表中对应于该物理地址的所有条目都更新到目的地区带中的新物理地址上。在一个示例中,在子集P2L表中搜索源区带的每个NAND页面地址。如果找到了NAND页面地址,则该页面就是有效的并可以由多个L2P条目引用。因此,页面将被重新定位,并且更新相应的L2P和P2L条目。如果在子集P2L表中没有找到NAND页面地址,则SSD就检查存储在区带日志中的其L2P条目。如果存储在区带日志中的L2P条目仍指向该NAND地址,则该页面就是有效的并将被重定位。
图10是用于碎片整理操作的伪码1000的一个示例。在图10所说明的示例中,碎片整理命令具有两个参数:源区带索引(source)和目的区带索引(dest),如行1002所示。在行1006处,加载用于源区带的区带日志。针对区带中的每个页面(行1008),当前NAND地址(CurrNandAddress)被设置为源区带的当前地址(行1012),并且新的NAND页面地址(NewNandAddress)被设置为目的区带中的可用页面(行1014)。在行1016处,针对每个当前NAND地址检查子集P2L表。如果当前NAND地址在子集P2L表中,则指示出NAND页面具有多个引用。在行1020处,指向当前NAND地址的所有L2P条目都被更新为指向新NAND地址。然后,在行1022处,可以将数据从当前NAND页面重定位到新NAND页面。
如果当前NAND页面不在子集P2L中(行1026),那么其指示出没有多个LBA指向当前NAND页面。如果L2P表中的条目是有效的(行1030和1032),则在行1038处更新L2P条目以指向新NAND页面地址(行1036)并将数据从当前NAND页面重定位到新NAND页面。
因此,SSD上写时复制操作可以提高系统性能。在一个示例中,当主机发出一个复制命令时,SSD更新L2P条目而不移动数据。数据移动被推迟,直到主机修改了任何一个复制。为了支持PLI和重放,在SSD向主机发送命令完成之前,针对每个复制命令将令牌丢弃到NAND介质上。为了支持碎片整理,子集P2L表被维持在DRAM中,并与L2P表一起被周期性地丢弃到NAND介质上。
图11提供了计算系统1100(例如,智能电话、平板计算机、膝上型计算机、台式计算机、服务器计算机等)的一个示例性描绘。如图11所示,系统1100可以包括一个或多个处理器或处理单元1101。处理器1101可以包括一个或多个中央处理单元(CPU),其中的每一个都可以包括例如多个通用处理核。处理器1101还可以或替选地包括一个或多个图形处理单元(GPU)或其他处理单元。处理器1101可以包括存储器管理逻辑(例如,存储器控制器)和I/O控制逻辑。处理器1101可以与图1的处理器152类似或相同。
系统1100还包括存储器1102(例如,系统存储器)、非易失性存储装置1104、通信接口1106和其它组件1108,其也可以类似于或相同于图1的主机150的组件。其他组件可以包括例如显示器(例如,触摸屏、平板)、电源(例如,电池或/或其他电源)、传感器、电源管理逻辑或其他组件。通信接口1106可以包括支持通信接口的逻辑和/或特征。针对这些示例,通信接口1106可以包括根据各种通信协议或标准操作以通过直接或网络通信链路或信道进行通信的一个或多个通信接口。直接通信可以通过使用在诸如与PCIe规范相关联的那些标准的一个或多个工业标准(包括后代和变体)中描述的通信协议或标准来进行。网络通信可以通过使用通信协议或标准来进行,例如在IEEE发布的一个或多个标准中描述的那些协议或标准。例如,一个这样的以太网标准可以包括IEEE 802.3。网络通信还可以根据一个或多个OpenFlow规范,例如OpenFlow交换机规范来进行。通信接口的其它示例包括例如本地有线点对点链路(例如USB)接口、无线局域网(例如WiFi)接口、无线点对点链路(例如蓝牙)接口、全球定位系统接口和/或其它接口。
计算系统还包括非易失性存储装置1104,其可以是系统的大容量存储组件。非易失性存储装置1104可以与上述图1的NVM设备120类似或相同。非易失性存储装置1104可以包括固态驱动器(SSD)、双列直插存储器模块(DIMM)或其他非易失性存储装置。非易失性类型的存储器可以包括非易失性存储器,诸如但不限于多阈值级NAND闪存(例如,3D NAND闪存)。在一个示例中,非易失性存储装置1104可以包括由一个或多个SSD组成的大容量存储装置。SSD可以由能够实现上述复制技术的闪存芯片组成。
接下来是SSD上写时复制的示例。
示例1:一种方法,包括:在非易失性存储设备处从主机接收将数据从源逻辑块地址(LBA)复制到目的地逻辑块地址(LBA)的复制命令;修改逻辑到物理(L2P)表以将所述目的地LBA映射到与所述源LBA相同的物理地址上;更新所述L2P表中对应于所述源LBA和所述目的地LBA的标志以指示多个LBA引用了同一物理地址;在修改L2P表并设置标志之后并在复制数据之前,将令牌存储到非易失性存储设备中以指示复制命令完成;以及,向主机发送确认以指示复制命令完成。
示例2:根据示例1的方法,其中,所述令牌包括一个签名,所述签名包括用于指示所述令牌是一个复制命令令牌的一个数字。
示例3:根据示例1或2的方法,其中,所述令牌包括:源LBA、目的地LBA、以及,要复制的块的数目。
示例4:根据示例1-3中任一项的方法,其中,所述令牌包括:指示令牌是否被破坏的校验和。
示例5:根据示例1-4中任一项的方法,还包括更新物理到逻辑(P2L)表以将所述物理地址与所述目的地LBA和所述源LBA两者相关联。
示例6:根据示例1-5中任一项的方法,其中,P2L表映射了由多个LBA引用的物理地址的子集。
示例7:根据示例1-6中任一项的方法,还包括在修改L2P表以将目的地LBA指向与源LBA相同的物理地址之前,移除P2L表中将第二物理地址与目的地LBA相关联的条目。
示例8:根据示例1-7中任一项的方法,还包括响应于接收到用于向源LBA或目的地LBA写入的写入命令:分配一个新页面,将所述数据复制到所述新页面,以及,更新所述标志以指示仅一个LBA引用了同一物理地址。
示例9:根据示例1-8中任一项的方法,还包括:执行去碎片化(碎片整理)操作以将源区带的有效页面移动到目的区带,所述碎片整理操作包括:针对在P2L表中具有条目的所述源区带中的每个物理地址,将所述L2P表中对应于所述物理地址的所有条目都更新为所述目的区带中的新物理地址。
示例10:根据示例1-9中任一项的方法,其中:延迟存储令牌,直到要存储的令牌的数量大于一个预定数量。
示例11:一种制品,包括其上存储有内容的计算机可读存储介质,所述内容在被访问时可以执行根据示例1-10中任一项的方法。
示例12:一种NAND控制器,其用于执行固件以执行根据示例1-10中任一项的方法。
示例13:一种存储设备,包括NAND存储器阵列和与所述NAND存储器阵列耦合的控制逻辑,所述控制逻辑用于:从主机接收将数据从源逻辑块地址(LBA)复制到目的地逻辑块地址(LBA)的复制命令;更新逻辑到物理(L2P)表中对应于所述目的地LBA的条目以引用与所述L2P表中对应于所述源LBA的第二条目相同的物理地址;更新与所述目的地LBA相对应的条目和与所述源LBA相对应的条目的标志,以指示多个LBA引用了同一物理地址;在更新L2P表中的条目和第二条目之后并且在复制数据之前,将令牌存储到NAND存储器阵列以指示复制命令完成;以及,向主机发送确认以指示复制命令完成。
示例14:根据示例13的存储设备,其中,所述控制逻辑用于执行根据示例1-10中任一项的方法。
示例15:一种系统,包括:处理器,以及与所述处理器耦合的NAND存储设备,所述NAND存储设备包括:NAND存储器阵列和与所述NAND存储器阵列耦合的控制逻辑,所述控制逻辑用于:从主机接收将数据从源逻辑块地址(LBA)复制到目的地逻辑块地址(LBA)的复制命令;更新逻辑到物理(L2P)表中对应于所述目的地LBA的条目以引用与所述L2P表中对应于所述源LBA的第二条目相同的物理地址;更新与所述目的地LBA相对应的条目和与所述源LBA相对应的条目的标志,以指示多个LBA引用了同一物理地址;在更新L2P表中的条目和第二条目之后并且在复制数据之前,将令牌存储到NAND存储器阵列以指示复制命令完成;以及,向主机发送确认以指示复制命令完成。
示例16:根据示例15的系统,包括以下中的一个或多个:与处理器耦合的显示器、与处理器耦合的网络接口、以及,用于为系统供电的电池。
示例17:根据示例15或16的系统,其中,所述控制逻辑用于执行根据示例1-10中任一项的方法。
本发明的实施例可以包括如上所述的各种处理过程。这些处理过程可以以机器可执行指令来实现。这些指令可以用于使通用或专用处理器执行某些处理过程。或者,这些处理过程也可以由包含用于执行这些处理过程的硬连线逻辑电路或可编程逻辑电路(例如,FPGA、PLD)的特定/定制硬件组件来执行,或由编程计算机组件和定制硬件组件的任何组合来执行。
本发明的要素还可以被提供为用于存储机器可执行指令的机器可读介质。机器可读介质可以包括但不限于软盘、光盘、CD-ROM和磁光盘、FLASH存储器、ROM、RAM、EPROM、EEPROM、磁卡或光卡、传播介质或适于存储电子指令的其他类型的介质/机器可读介质。例如,本发明可以作为计算机程序而被下载,该计算机程序可以经由通信链路(例如,调制解调器或网络连接)通过包含在载波或其他传播介质上的数据信号从远程计算机(例如,服务器)传输到请求方计算机(例如,客户端)。
如本文所说明的流程图提供了各种序列的过程动作的示例。流程图可以指示要由软件或固件例程执行的操作以及物理操作。在一个示例中,流程图可以示出有限状态机(FSM)的状态,该有限状态机可以以硬件、软件或其组合来实现。尽管以特定顺序或次序示出了,但是除非另有说明,否则动作的次序也可以被修改。因此,所说明的实施例应仅被理解为示例,且所述处理过程可以以不同的次序来执行,且一些动作可以并行执行。另外,在各种示例中可以省略一个或多个动作。因此,并非所有动作都是每个实施例中所需要的。其它处理流程也是可能的。
在本文描述各种操作或功能的维度上,它们可被描述或定义为软件代码、指令、配置、数据或组合。内容可以是直接可执行的(“对象”或“可执行”形式的)、源代码或差异代码(“增量”或“补丁”代码)。这里描述的实施例的软件内容可以经由其上存储有内容的制品来提供,或者经由操作通信接口以经由通信接口发送数据的方法来提供。机器可读存储介质可以使机器执行所描述的功能或操作,并且包括以机器(例如,计算设备、电子系统等)可访问的形式存储信息的任何机制,诸如可记录/不可记录介质(例如,只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储介质、光存储介质、闪存设备等)。通信接口包括任何机制,该机制接口到硬连线、无线、光等介质中的任何一个以与诸如存储器总线接口、处理器总线接口、因特网连接、盘控制器等的其他设备通信。通信接口可以经由发送到通信接口的一个或多个命令或信号来访问。
本文描述的各种组件可以是用于执行所描述的操作或功能的装置。这里描述的每个组件包括了软件、硬件或其组合。这些组件可以以软件模块、硬件模块、专用硬件(例如,专用硬件、专用集成电路(ASIC)、数字信号处理器(DSP)等)、嵌入式控制器、硬连线电路等来实现。
除了本文所述的内容之外,在不背离本发明范围的情况下,可以对本发明的公开实施例和实施方式进行各种修改。因此,本文的说明和示例应当以说明性而非限制性的意义来解释。本发明的范围应当仅通过参考所附权利要求来衡量。
Claims (20)
1.一种包括其上存储有内容的计算机可读存储介质的制品,所述内容在被访问时使得可以执行一种方法,所述方法包括:
在非易失性存储设备处从主机接收将数据从源逻辑块地址(LBA)复制到目的地逻辑块地址(LBA)的复制命令;
修改逻辑到物理(L2P)表以将所述目的地LBA映射到与所述源LBA相同的物理地址上;
更新所述L2P表中对应于所述源LBA和所述目的地LBA的标志以指示多个LBA引用了同一物理地址;
在修改L2P表并设置标志之后并在复制数据之前,将令牌存储到非易失性存储设备中以指示复制命令完成;以及,
向主机发送确认以指示复制命令完成。
2.根据权利要求1所述的制品,其中:
所述令牌包括一个签名,所述签名包括指示所述令牌是一个复制命令令牌的数字。
3.根据权利要求2所述的制品,其中:
所述令牌包括:源LBA、目的地LBA、以及,要复制的块的数目。
4.根据权利要求2所述的制品,其中:
所述令牌包括:指示令牌是否被破坏的校验和。
5.根据权利要求1所述的制品,还包括:
更新物理到逻辑(P2L)表以将所述物理地址与所述目的地LBA和所述源LBA两者相关联。
6.根据权利要求5所述的制品,其中:
P2L表映射了由多个LBA引用的物理地址的子集。
7.根据权利要求5所述的制品,还包括:
在修改L2P表以将目的地LBA指向与源LBA相同的物理地址之前,移除P2L表中将第二物理地址与目的地LBA相关联的条目。
8.根据权利要求1所述的制品,还包括:
响应于接收到写入到所述源LBA或所述目的地LBA的写入命令:
分配一个新的页面,
将数据复制到所述新的页面,以及
更新所述标志以指示仅一个LBA引用了同一物理地址。
9.根据权利要求1所述的制品,还包括:
执行去碎片化(碎片整理)操作以将源区带的有效页面移动到目的区带,所述碎片整理操作包括:
针对在P2L表中具有条目的所述源区带中的每个物理地址,将所述L2P表中对应于所述物理地址的所有条目更新为所述目的区带中的新的物理地址。
10.根据权利要求1所述的制品,其中:
延迟存储令牌,直到要存储的令牌的数量大于一个预定数量。
11.一种存储设备,包括:
NAND存储器阵列;以及
控制逻辑,所述控制逻辑与所述NAND存储器阵列耦合,所述控制逻辑用于:
从主机接收将数据从源逻辑块地址(LBA)复制到目的地逻辑块地址(LBA)的复制命令;
更新逻辑到物理(L2P)表中对应于所述目的地LBA的条目以引用与所述L2P表中对应于所述源LBA的第二条目相同的物理地址;
更新与所述目的地LBA相对应的条目和与所述源LBA相对应的条目的标志,以指示多个LBA引用了同一物理地址;
在L2P表中的条目和第二条目更新之后并且在复制数据之前,将令牌存储到ND存储器阵列中以指示复制命令完成;以及
向主机发送确认以指示复制命令完成。
12.根据权利要求11所述的存储设备,其中:
所述令牌包括一个签名,所述签名包括指示所述令牌是一个复制命令令牌的数字。
13.根据权利要求12所述的存储设备,其中:
所述令牌包括:源LBA、目的地LBA、以及要复制的块的数目。
14.根据权利要求12所述的存储设备,其中:
所述令牌包括:指示令牌是否被破坏的校验和。
15.根据权利要求11所述的存储设备,其中:
控制逻辑用于:
更新物理到逻辑(P2L)表以将所述物理地址与所述目的地LBA和所述源LBA两者相关联。
16.根据权利要求15所述的存储设备,其中:
所述P2L表映射由多个LBA引用的物理地址的子集。
17.根据权利要求15所述的存储设备,其中:
控制逻辑用于:在修改L2P表以将目的地LBA指向与源LBA相同的物理地址之前,移除P2L表中将第二物理地址与目的地LBA相关联的条目。
18.根据权利要求11所述的存储设备,其中:
控制逻辑用于:
响应于接收到写入到所述源LBA或所述目的地LBA的写入命令:
分配新的页面,
将数据复制到所述新的页面,以及
更新所述标志以指示仅一个LBA引用了同一物理地址。
19.一种系统,包括:
处理器;以及
与所述处理器耦合的NAND存储设备,所述NAND存储设备包括:
NAND存储器阵列;以及
控制逻辑,所述控制逻辑与所述NAND存储器阵列耦合,所述控制逻辑用于:
从主机接收将数据从源逻辑块地址(LBA)复制到目的地逻辑块地址(LBA)的复制命令;
更新逻辑到物理(L2P)表中对应于所述目的地LBA的条目以引用与所述L2P表中对应于所述源LBA的第二条目相同的物理地址;
更新与所述目的地LBA相对应的条目和与所述源LBA相对应的条目的标志,以指示多个LBA引用了同一物理地址;
在更新L2P表中的条目和第二条目之后并且在复制数据之前,将令牌存储到NAND存储器阵列中以指示复制命令完成;以及
向主机发送确认以指示复制命令完成。
20.根据权利要求19所述的系统,包括以下中的一个或多个:
与处理器耦合的显示器、与处理器耦合的网络接口、以及用于为系统供电的电池。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/203,174 | 2021-03-16 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118302740A true CN118302740A (zh) | 2024-07-05 |
Family
ID=
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11048589B2 (en) | Preserving data upon a power shutdown | |
US20210223979A1 (en) | On-ssd-copy techniques using copy-on-write | |
US9720616B2 (en) | Data-retention controller/driver for stand-alone or hosted card reader, solid-state-drive (SSD), or super-enhanced-endurance SSD (SEED) | |
US20150106557A1 (en) | Virtual Memory Device (VMD) Application/Driver for Enhanced Flash Endurance | |
CN114730300B (zh) | 对区命名空间存储器的增强型文件系统支持 | |
US20130145085A1 (en) | Virtual Memory Device (VMD) Application/Driver with Dual-Level Interception for Data-Type Splitting, Meta-Page Grouping, and Diversion of Temp Files to Ramdisks for Enhanced Flash Endurance | |
US11537512B2 (en) | Asynchronous power loss recovery for memory devices | |
US11775389B2 (en) | Deferred error-correction parity calculations | |
CN113031856A (zh) | 存储器子系统中的断电数据保护 | |
US20220300195A1 (en) | Supporting multiple active regions in memory devices | |
KR20220085708A (ko) | 고체 상태 드라이브 내의 영구적 메모리 내의 논리 대 물리 어드레스 인디렉션 테이블 | |
US20240069771A1 (en) | Read operations for mixed data | |
US11714722B2 (en) | Power loss recovery for memory devices | |
US20230069122A1 (en) | Metadata management for ungraceful shutdown of a memory sub-system | |
CN113012741B (zh) | 用于存储器子系统的媒体管理的弹性缓冲器 | |
CN118302740A (zh) | 使用写时复制的固态驱动器上复制技术 | |
CN109002265B (zh) | 一种数据处理的方法以及相关装置 | |
US20210157727A1 (en) | Bit masking valid sectors for write-back coalescing | |
CN111309642A (zh) | 一种存储器及其控制方法与存储系统 | |
US11714577B2 (en) | Snap read optimization for media management for a memory sub-system | |
US11698856B2 (en) | Maintaining sequentiality for media management of a memory sub-system | |
WO2021142334A1 (en) | Cache media management | |
CN112015339A (zh) | 一种存储器的数据保存系统,保存方法及存储系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication |