CN104346287A - 在固态介质中使用多级别映射的修整机制 - Google Patents

在固态介质中使用多级别映射的修整机制 Download PDF

Info

Publication number
CN104346287A
CN104346287A CN201410056341.0A CN201410056341A CN104346287A CN 104346287 A CN104346287 A CN 104346287A CN 201410056341 A CN201410056341 A CN 201410056341A CN 104346287 A CN104346287 A CN 104346287A
Authority
CN
China
Prior art keywords
level
request
entry
page
media controller
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201410056341.0A
Other languages
English (en)
Other versions
CN104346287B (zh
Inventor
E·T·科恩
L·巴瑞乌丁
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.)
LSI Corp
Infineon Technologies North America Corp
Original Assignee
Infineon Technologies North America 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
Priority claimed from US13/963,074 external-priority patent/US20140047210A1/en
Application filed by Infineon Technologies North America Corp filed Critical Infineon Technologies North America Corp
Publication of CN104346287A publication Critical patent/CN104346287A/zh
Application granted granted Critical
Publication of CN104346287B publication Critical patent/CN104346287B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/021Detection or location of defective auxiliary circuits, e.g. defective refresh counters in voltage or current generators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0409Online test
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction

Abstract

公开了在固态介质中使用多级别映射的修整机制。所描述的实施例提供用于接收包括逻辑地址和地址范围的请求的介质控制器。响应于该请求,介质控制器判断接收到的请求是否是作废请求。如果接收到的请求类型是作废请求,则介质控制器使用映射来确定与逻辑地址和范围相关联的映射的一个或多个条目。与每一个映射条目相关联的映射中的指示符被设置为表示这些映射条目将被作废。介质控制器向主机设备确认该作废请求完成,并在介质控制器的空闲模式下基于将被作废的映射条目更新空闲空间计数。使与作废的映射条目相关联的物理地址可用,以便重复用于来自主机设备的随后的请求。

Description

在固态介质中使用多级别映射的修整机制
相关申请的交叉引用
本申请是2012年8月8日提交的国际专利申请PCT/US2012/049905的部份继续申请,并要求申请日期的权益,在此引用该申请的全部内容作为参考。
本申请要求2013年3月14日提出的美国临时专利申请61/783,555的申请日期的权益,在此引用该申请的全部内容作为参考。
本申请的主题涉及下列美国专利申请:2012年5月4日提交的13/464,433、2012年8月4日提交的13/567,025、2012年8月31日提交的13/600,464、2012年12月28日提交的13/729,966以及2013年1月23日提交的13/748,260,在此引用这些申请的全部内容作为参考。
背景
闪存是非易失性存储器(NVM),这是特定类型的电可擦可编程只读存储器(EEPROM)。一种通常使用的类型的闪存技术是NAND闪存。NAND闪存每个单元需要小的芯片面积,通常被分成一个或多个存储体或平面。每一个存储体都被分成块;每一个块都被分成页面。每一个页面都包括用于存储用户数据、纠错码(ECC)信息或两者的若干个字节。
对于NAND设备,有三个基本操作:读取、写入和擦除。一页一页地执行读和写操作。页面大小一般是2N字节的用户数据(加上ECC信息的额外的字节),其中,N是整数,每个页面,有典型的用户数据页面大小,例如,2,048字节(2KB),4,096字节(4KB),8,192字节(8KB)或更多。“读取单位”是可以从NVM中读取的并由ECC校正的数据以及对应的ECC信息的最小的量,并通常可以在4K比特和32K比特之间(例如,每个页面,一般有整数个读取单位)。页面通常以块排列,逐块地执行擦除操作。典型的块大小是,例如,每块有64、128或更多个页面。页面必须按顺序写入,通常从块内的低位地址到高位地址。直到块被擦除之前,不能重写较低的地址。与每一个页面相关联的还有备用区(通常,100–640字节),一般用于存储ECC信息和/或用于存储器管理的其他元数据。ECC信息一般用于检测并纠正存储在页面中的用户数据中的错误,元数据可以用于在逻辑地址和物理地址之间进行映射。在带有多个存储体的NAND闪存芯片中,可以支持允许来自每一个存储体的页面被基本上并行地访问的多存储体操作。
NAND闪存在由浮动栅晶体管制成的存储器单元的阵列中存储信息。在没有外部电源的情况下,这些晶体管能在大约几个月或几年的长的时间段内保留它们的电压电平,也简称为电荷。在单级别单元(SLC)闪存中,每一个单元都存储一个比特的信息。在多级别单元(MLC)闪存中,通过在施加于其单元的浮动栅的电荷的多个级别之间选择,每一个单元都可以存储一个以上的比特。MLC NAND闪存使用多个电压电平/单元,带有串行链接的晶体管布局,以使用相同数量的晶体管存储更多比特。如此,分别地考虑,每一个单元都具有对应于被存储在单元中的逻辑比特值的特定编程的电荷(例如,对于SLC闪存,0或1;对于MLC闪存,00,01,10,11),基于每一个单元的一个或多个阈值电压,读取这些单元。然而,增大每个单元的比特数量会增大单元与单元干扰以及保留噪声,从而增大读取错误的可能性,如此,增大该系统的错码率(BER)。进一步地,每一个单元的读取的阈值电压分布会在NVM的操作时间内变化,例如,由于读取干扰、写入干扰、保留丢失、单元老化以及过程、电压以及温度(PVT)变化,也会增大BER。
如上文所描述的,典型的NVM要求先擦除块然后才能将新的数据写入到块中。如此,诸如使用一个或多个NVM芯片的固态磁盘(SSD)之类的NVM系统,通常周期性地启动“垃圾回收”过程,以擦除“陈旧的”或过时的数据,以防止闪存被主要是过时的数据填充,这将缩小实现的闪存容量。然而,在设备故障之前,NVM块只能被擦除有限的次数。例如,SLC闪存只能被擦除大约100,000次,而MLC闪存只能被擦除大约10,000次。因此,在NVM的使用寿命(例如,在NAND闪存的额定的数量的编程/擦除(P/E)周期内),NVM磨损,闪存块将发生故障,并变得无法使用。NVM中的块故障类似于硬盘驱动器(HDD)中的扇区故障。典型的NVM系统还可以执行磨损平衡,以尽可能均匀地在NVM的所有块上分布P/E周期。如此,在NVM系统的寿命内,随着不好的块的数量增大和/或用于系统数据要求(例如,逻辑到物理转换表、日志、元数据、ECC,等等)的存储量增大,总的存储容量缩小。如此,在垃圾回收过程中,减少被写入到NVM的数据量是重要的。
在垃圾回收过程中,块中的仍有效的用户数据在后台进程中被移动到存储介质上的新位置。“有效”用户数据可以是被写入了至少一次的任何地址,即使主机设备不再使用此数据。为减少在垃圾回收过程中重写的“有效的”但不再需要的数据的量,某些存储协议支持使NVM能将以前保存的数据的块指定为不需要的或无效以便块在垃圾回收过程中不移动并且可以使块可用于存储新的数据的命令。这样的命令的示例有SATA“修整”(数据集管理)命令、SCSI UNMAP命令、MultiMediaCard(MMC)“擦除”命令,以及安全数字(SD)卡“擦除”命令。一般而言,这样的命令会改善NVM性能,以便完全修整的NVM具有接近于相同类型的新制造的(即,空的)NVM的性能的性能。然而,同时对于大量的块执行这些命令可能很费时,并降低NVM的操作效率。
发明内容
提供本发明内容是为了以精简的形式介绍将在以下详细描述中进一步描述的一些概念。本发明内容并不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。
所描述的实施例为固态介质提供介质控制器。介质控制器包括控制处理器,其接收来自主机设备的包括至少一个逻辑地址和地址范围的请求。响应于请求,控制处理器判断接收到的请求是否是作废请求。如果接收到的请求类型是作废请求,则控制处理器使用介质控制器的映射来确定与逻辑地址和范围相关联的映射的一个或多个条目。与每一个映射条目相关联的映射中的指示符被设置成表示这些映射条目将被作废。控制处理器向主机设备确认该作废请求完成,并在介质控制器的空闲模式下基于将被作废的映射条目更新空闲空间计数。使与作废的映射条目相关联的物理地址可用,以便重复用于来自主机设备的随后的请求。
附图说明
通过下面的详细描述,所附的权利要求,以及附图,所描述的实施例的其他方面、特点、以及优点将变得更加完全显而易见,在附图中,类似的参考编号标识类似或相同的元素。
图1示出了根据示例性实施例的闪存存储系统的框图;
图2示出了单个标准闪存单元的示例性功能框图;
图3示出了根据示例性实施例的示例性NAND MLC闪存单元;
图4示出了图1的闪存存储系统的闪存的示例性布局的框图;
图4示出了图1的闪存存储系统的固态介质的示例性布局的框图;
图5示出了图1的闪存存储系统的逻辑块号(LBN)的逻辑页号(LPN)部分的示例性映射的框图;
图6示出了图1的闪存存储系统的示例性两级别映射结构的框图;
图7示出了图1的闪存存储系统所使用的示例性映射页眉的框图;以及
图8示出了图1的闪存存储系统所使用的兆-修整(Mega-TRIM)操作的示例性流程图。
具体实施方式
所描述的实施例为固态介质提供介质控制器。介质控制器包括控制处理器,其接收来自主机设备的包括至少一个逻辑地址和地址范围的请求。响应于该请求,控制处理器判断接收到的请求是否是作废请求。如果接收到的请求类型是作废请求,则控制处理器使用介质控制器的映射来确定与逻辑地址和范围相关联的映射的一个或多个条目。与每一个映射条目相关联的映射中的指示符被设置成表示这些映射条目将被作废。控制处理器向主机设备确认该作废请求完成,并在介质控制器的空闲模式下基于将被作废的映射条目更新空闲空间计数。使与作废的映射条目相关联的物理地址可用,以便重复用于来自主机设备的随后的请求。
表1定义了为有助于理解所描述的实施例在整个说明书中使用的缩写词列表:
图1示出了非易失性存储器(NVM)存储系统100的框图。NVM存储系统100包括耦合到介质控制器120的介质110。介质110可以实现为NAND闪存固态磁盘(SSD)、诸如硬盘驱动器(HDD)之类的磁存储介质,或实现为混合型固态和磁系统。虽然在图1中未示出,但是,介质110通常可以包括一个或多个物理存储器(例如,非易失性存储器,NVM),诸如多个闪存芯片。如图1所示,介质110和介质控制器120总起来说是SSD101。介质控制器120包括固态控制器130、控制处理器140、缓冲器150和I/O接口160。介质控制器120控制在介质110和耦合到通信链路170的主机设备180之间的数据的传输。介质控制器120可以实现为芯片上的系统(SoC)或其他集成电路(IC)。可以使用固态控制器130来访问介质110中的存储器位置,并可以通常实现低级别的、设备特定的操作以与介质110相接。缓冲器150可以是用来充当控制处理器140的缓存的RAM缓冲器和/或作为固态介质110和主机设备180之间的操作的读/写缓冲器。例如,在通过I/O接口160和链路170在固态介质110和主机设备180之间传输过程中,数据可以一般临时存储在缓冲器150中。缓冲器150可以用于使数据分组或分开,以解决通信链路170的数据传输大小和介质110的存储单元大小(例如,读取单元大小、页面大小、扇区大小,或映射的单元大小)之间的差异。缓冲器150可以实现为介质控制器120内部的静态随机存取存储器(SRAM)或嵌入式动态随机存取存储器(eDRAM),虽然缓冲器150也可以包括介质控制器120外部的存储器(未示出),外部存储器通常可以实现为双倍数据速率(例如,DDR-3)DRAM。
控制处理器140与固态控制器130进行通信,以控制对介质110中的数据进行数据访问(例如,读取或写入操作)。控制处理器140可以实现为一个或多个或ARM处理器,或不同的处理器类型的组合(是Intel公司的注册商标,是Tensilica公司的商标,ARM处理器是ARM Holdings公司拥有,而Power是IBM的注册商标)。虽然在图1中被示为单处理器,但是,控制处理器140可以通过多个处理器(未示出)来实现,并根据操作的需要,包括软件/固件,包括执行根据所描述的实施例的阈值优化操作。控制处理器140与低密度奇偶性检验(LDPC)编码器/解码器(编解码器)142进行通信,编解码器142为写入到介质110的数据执行LDPC编码,为从介质110中读取的数据执行解码。控制处理器140也与映射144进行通信,该映射144被用来在主机操作的逻辑地址(例如,用于读/写操作的逻辑块地址(LBA)等等)和介质110上的物理地址之间进行转换。如此处所使用的,术语LBA和HPA(主机页面地址)同义。
使用通信链路170来与主机设备180进行通信,主机设备180可以是与NVM系统100连接的计算机系统。通信链路170可以是自定义通信链路,或者可以是根据标准通信协议来操作的总线,诸如,例如,小型计算机系统接口(“SCSI”)协议总线、串行外接SCSI(“SAS”)协议总线、串行高级技术附件(“SATA”)协议总线、通用串行总线(“USB”)、以太网链路、IEEE802.11链路、IEEE802.15链路、IEEE802.16链路、外围组件高速互连(“PCI-E”)链路、串行快速的I/O(“SRIO”)链路,或用于将外围设备连接到计算机的任何其他类似的接口链路。
图2示出了可以在固态介质110中发现的单个闪存单元的示例性功能框图。闪存单元200是带有两个栅极的MOSFET。字线控制栅230位于浮动栅240的顶部。浮动栅240通过绝缘层与字线控制栅230和MOSFET沟道(包括N型沟道250和260,以及P型沟道270)隔离。由于浮动栅240被电隔离,因此,置于浮动栅240上的任何电荷将保留,将不会显著放电,通常持续许多月。当浮动栅240保留电荷时,它部分地取消来自字线控制栅230的修改单元的阈值电压的电场。阈值电压是施加于控制栅230的使沟道导电的电压量。沟道导电率确定存储在单元中的值,例如,通过感应浮动栅240上的电荷。
图3示出了可以在固态介质110中发现的示例性NAND MLC闪存串300。如图3所示,闪存串300可以包括一个或多个字线晶体管200(2)、200(4)、200(6)、200(8)、200(10)、200(12)、200(14)以及200(16)(例如,8个闪存单元),以及串联的位线选择晶体管304、漏极到源极。此串行连接是这样的,以便接地选择晶体管302、字线晶体管200(2)、200(4)、200(6)、200(8)、200(10)、200(12)、200(14)和200(16),以及位线选择晶体管304都通过将对应的栅极驱动为高,以便位线322被完全拉低,来“打开”(例如,在线性模式或者饱和度模式下)。被打开的不同数量的字线晶体管200(2)、200(4)、200(6)、200(8)、200(10)、200(12)、200(14)以及200(16)(或在晶体管在线性的或饱和区操作的情况下)可以使MLC串300能实现多个电压电平。典型的MLC NAND闪存可以使用带有浮动栅的64个晶体管的“NAND串”(例如,如图3所示)。在写入操作过程中,向字线位置中的要被写入的NAND串施加高电压。在读取操作过程中,向NAND串中的所有晶体管的栅极施加电压,对应于所需的读取位置的晶体管除外。所需的读取位置具有浮动栅。
如此处所描述的,在SLC和MLC NAND闪存中,每一个单元都具有可以被感应的电压电量水平(例如,模拟信号),诸如通过和读取阈值电压电平比较。介质控制器可以具有用来读取电压电量水平并检测单元的对应的二进制值的给定数量的预定的电压阈值。例如,对于MLC NAND闪存,如果有3个阈值(0.1,0.2,0.3),当单元电压电平是0.0≤单元电压<0.1时,单元可以被检测为具有[00]值。如果单元电压电平是0.1≤单元电压<0.2,则值可以是[10],依次类推。如此,通常可以一个一个地将测量到的单元电平与阈值进行比较,直到单元电平被判断为处于两个阈值之间并可以被检测。如此,将检测到的数据值提供到存储器控制器120的解码器,以将检测到的值(例如,利用纠错码)解码为要提供到主机设备180的数据。
图4示出了图1的固态介质110的示例性布局的框图。如图4所示,介质110可以被过度供应(OP),以防止“缺少空间”(OOS)的情况发生。如图4所示,OP可以以三种方式来实现。首先,SSD制造商通常使用术语“GB”来表示十进制千兆字节,但是十进制千兆字节(1,000,000,000或109字节)和二进制如此,由于SSD的物理容量基于二进制GB,因此,如果SSD的逻辑容量基于十进制GB,则SSD可能具有7.37%的内嵌的OP(例如,[(230-109)/109])。这在图4中被示为“7.37%”OP402。然而,某些OP,例如,2-4%的总容量可能会由于NAND闪存的不好的块(例如,缺陷)而丢失。其次,OP可以通过留出供系统使用但对主机设备180不可用的特定量的物理存储器来实现。例如,制造商可以基于128GB的总的物理容量,发布它们的具有100GB、120GB或128GB的逻辑容量的SSD的规格,如此,可能分别实现28%、7%或0%的示例性OP。这在图4中被示为静态OP(“0到28+%”)404。
第三,某些存储协议(例如,SATA)支持“修整(TRIM)”命令,该命令使主机设备180能将以前保存的数据的块指定为不需要或无效,以便在垃圾回收过程中NVM系统100将不保存那些块。在“修整”命令之前,如果主机设备180擦除了一个文件,该文件被从主机设备记录中删除,但是,NVM系统100的实际内容没有实际上被擦除,这使得NVM系统100在垃圾回收过程中不必维护无效数据,如此,降低NVM容量。在图4中通过使用“修整”命令由于有效率的垃圾回收的OP被示为动态OP406。动态OP406以及用户数据408构成介质110的包含主机设备180的当前数据的区域,而OP区域402和404不包含主机设备180的当前数据。“修整”命令使操作系统能通知SSD,数据的哪些页面现在由于用户或操作系统本身的擦除而无效。在删除操作过程中,OS将已删除的扇区标记为空闲,可用于新的数据,并发送“修整”命令,该“修整”命令指定与已删除的扇区相关联的SSD的逻辑块地址(LBA)的一个或多个范围被标记为不再有效。
在执行“修整”命令之后,介质控制器在垃圾回收过程中不重新定位来自已修整的LBA的数据,降低了对介质的写入操作的数量,如此,缩小写入放大,并延长驱动器寿命。“修整”命令一般不可逆地删除它影响的数据。“修整”命令的示例有SATA“修整”(数据集管理)命令、SCSIUNMAP命令、MultiMediaCard(MMC)“擦除”命令以及安全数字(SD)卡“擦除”命令。一般而言,“修整”会改善SSD性能,以便完全修整的SSD具有接近于相同类型的新制造的(即,空的)SSD的性能的性能。
一般而言,介质控制器120执行从主机设备180接收到的命令。至少某些命令利用从主机设备180发送的数据向介质110写入数据,或从介质110读取数据,并将读取的数据发送到主机设备180。介质控制器120使用一个或多个数据结构来将逻辑存储器地址(例如,主机操作中所包括的LBA)映射到介质的物理地址。当在SSD中写入LBA时,LBA一般每一次都被写入到不同的物理位置,而每一次写入都更新映射,以记录LBA的数据驻留在非易失性存储器(例如,介质110)中的哪里。例如,在诸如2012年8月8日提交的国际专利申请PCT/US2012/049905中所描述的之类的系统中,介质控制器120使用包括叶级别和一个或多个较高级别的多级别映射结构(例如,映射144)。叶级别包括映射页面,每一个页面都具有一个或多个条目。在多级别映射结构中查询诸如附接的介质(例如,介质110)的LBA之类的逻辑地址,以确定叶级别页面中的特定页面中的条目中的对应的条目。LBA的对应的条目包含与LBA相关联的信息,诸如与LBA相关联的介质110的物理地址。在某些实现中,对应的条目还包括关于对应的条目是否有效或无效的指示,可任选地,LBA是否在其上被运行了“修整”命令(“已修整”)或根本没有被写入。例如,无效条目能够在无效条目的物理位置部分编码信息,诸如相关联的LBA是否被修整。
为加速LBA的查询,可以维护至少某些叶级别页面的缓存(未示出)。在某些实施例中,映射数据结构的至少一部分用于对主机设备180不可见的专用存储器(例如,存储日志、统计信息、映射数据,或介质控制器120的其他私有的/控制数据)。
如此处所描述的,映射144在主机设备180所使用的逻辑数据寻址和介质110所使用的物理数据寻址之间进行转换。例如,映射144在主机设备180所使用的LBA和介质110的一个或多个闪存晶片的块和/或页面地址之间进行转换。例如,映射144可以包括一个或多个表以在逻辑地址和物理地址之间执行或查找转换。
与每一个LBA相关联的数据存储在介质110的对应的物理地址处,以固定的非压缩的大小,或以相应的压缩的大小。如此处所描述的,读取单位是介质110的独立地可读取的最细微的粒度,诸如介质110的页面的一部分。读取单位可以包括(或对应于)纠错码(ECC)的校验比特和/或冗余数据以及由ECC保护的所有数据。图5示出了由映射144映射LBA的LPN部分的实施例的选择的细节。如图5所示,LBA506包括逻辑页号(LPN)502和逻辑偏移504。映射144将LPN502转换为映射数据512,该映射数据512包括读取单位地址508和读取单位510的长度(或许,其他映射数据,如由省略号所指示的)。映射数据512通常可以作为映射条目存储到映射144的映射表中。映射144通常可以为由系统100积极地使用的每一个LPN维护一个映射条目。如图所示,映射数据512包括读取单位地址508和读取单位510的长度。在某些实施例中,长度和/或跨度被存储为编码的,诸如通过将与LPN相关联的数据的长度存储为与读取单位510的全部长度(或一部分)中的跨度的偏移。跨度(或读取单位的长度)指定读取以检索与LPN相关联的数据的读取单位的数量,而(与LPN相关联的数据的)长度用于统计信息,诸如块已用空间(BUS),以跟踪SSD的每一个块中的已用空间的量。通常,长度比跨度具有更细的粒度。
在某些实施例中,第一LPN与第一映射条目相关联,第二LPN(不同于第一LPN,但是,与由第一LPN引用的逻辑页面引用相同大小的逻辑页面)与第二映射条目相关联,第一映射条目的读取单位的相应的长度不同于第二映射条目的读取单位的相应的长度。在这样的实施例中,在相同时间点,第一LPN与第一映射条目相关联,第二LPN与第二映射条目相关联,第一映射条目的相应的读取单位地址与第二映射条目的相应的读取单位地址相同,以便与第一LPN相关联的数据和与第二LPN相关联的数据两者都存储在介质110的相同物理读取单位。
在各种实施例中,映射144是下列各项中的一项:一级别映射;包括第一级别映射(FLM)和一个或多个第二级别(或较低级别)映射(SLM)以将主机协议的LBA与介质110中的物理存储器地址相关联的两级别映射。例如,如图6所示,在介质控制器120中,FLM610被维持在芯片上,例如,在映射144中。在某些实施例中,FLM610的非易失性(但是,稍微旧一些)的副本也存储在介质110上。FLM610中的每一个条目都有效地是指向SLM页面的指针(例如,SLM616中的一个)。SLM616存储在介质110中,在某些实施例中,SLM中的某些被缓存在映射144的芯片上的SLM缓存中(例如,SLM缓存608)。FLM610中的条目包含对应的第二级别映射页面(例如,在SLM缓存608或介质110中)的地址(或许,数据长度/地址的范围或其他信息)。如图6所示,映射模块144可以包括两级别映射,带有第一级别映射(FLM)610,该第一级别映射610将给定LBA(例如,LBA602)的第一函数(例如,当将LBA除以每一个第二级别映射页面中所包括的固定数量的条目时获得的商)与示为SLM616的多个第二级别映射(SLM)中的一个中的相应的地址相关联,每一个SLM都将LBA的第二函数(例如,当将LBA除以第二级别映射页面中的每一个中所包括的固定数量的条目时获得的余数)与介质110中的对应于LBA的相应的地址相关联。
例如,如图6所示,转换器604接收到对应于主机操作(例如,来自主机180的读取或写入到介质110上的对应的LBA的请求)的LBA(LBA602)。转换器604将LBA602转换为FLM索引606和SLM页面索引614,例如,通过将LBA602除以每一个对应的SLM页面616中的条目的整数。在所描述的实施例中,FLM索引606是除法运算的商,而SLM页面索引614是除法运算的余数。使用除法运算可使SLM页面616包括不是2的幂的数量的条目,这可使SLM页面616的大小缩小,由于写入操作,缩小介质110的写入放大,以更新SLM页面616。FLM索引606被用来唯一地标识FLM610中的条目,条目包括对应于SLM页面616中的一个SLM页面616的SLM页面索引(614)。如由612所指示的,在对应于FLM条目的SLM页面索引的的SLM页面存储在SLM缓存608中的情况下,FLM610可以返回介质110的对应于LBA602的物理地址。SLM页面索引614被用来唯一地标识SLM616中的条目,对应于介质110的物理地址的条目对应于LBA602,如由618所指示的。SLM616的条目可以被编码为读取单位地址(例如,闪存页面的ECC可校正的子单元的地址)和读取单位的长度。
SLM页面616(或多级别映射(MLM)结构的较低的级别)可以都包括相同数量的条目,或SLM页面616中的每一个(或MLM结构的较低的级别)都可以包括不同数量的条目。进一步地,SLM页面616的条目(或MLM结构的较低的级别)可以是相同粒度,或可以为SLM页面616中的每一个(或MLM结构的较低级别)设置粒度。在各示例性实施例中,FLM610具有每个条目4KB的粒度,而SLM页面616中的每一个(或MLM结构的较低级别)具有每个条目8KB的粒度。如此,例如,FLM610中的每一个条目都与512B LBA的对齐的八扇区(4KB)区域相关联,SLM页面616中的一个中的每一个条目都与512B LBA的对齐的十六扇区(8KB)区域相关联。
在某些实施例中,FLM610的条目(或MLM结构的较高级别的映射)包括对应的较低级别的映射页面的格式信息。图7示出了示例性FLM700的框图。如图所示,FLM700的N个条目701中的每一个都包括对应的较低级别的映射页面的格式信息。如图所示,FLM700可以包括SLM页面粒度702,读取单位物理地址范围704,每一个LBA706的数据大小、数据作废指示符708,“修整”操作正在进行中指示符710,“修整”LBA范围712和待处理(TBP)指示符714。还可以包括其他元数据(未示出)。映射页面粒度702表示对应于FLM700的条目的SLM页面的粒度。读取单位物理地址范围704表示对应于FLM700的条目的SLM页面的读取单位的物理地址范围,例如,作为起始读取单位地址和跨度。每一个LBA706的数据大小都表示要读取以获取相关联的LBA的数据的读取单位的数量,或对应于FLM700的条目的SLM页面的存储在介质110中的相关联的LBA的数据的大小。数据作废指示符708表示,相关联的LBA的数据在介质110中不存在,诸如由于相关联的LBA的数据已经被修整或以别的方式使其作废。在替换实施例中,数据作废指示符可以被编码为读取单位物理地址范围704的一部分。如下文所比较详细地描述的,“修整”操作正在进行中指示符710表示,在由“修整”LBA范围712所表示的LBA,“修整”操作正在进行中。在某些实施例中,“修整”操作正在进行中指示符710可以被编码为“修整”LBA范围712的一部分。TBP指示符714表示与映射页面相关联的LBA已经作废(例如,对主机180而言,显得已修整),但是,LBA还不可用于利用新的数据写入。与将较高级别的映射条目标记为作废对比,设置较高级别的映射条目的TBP比特并不意味着,存储在较高级别的映射条目中的较低级别的映射页面的物理地址也作废——物理地址是需要的,较低级别的映射页面本身不能被取消分配,直到为BUS更新而处理了较低级别的映射页面。如此,较低级别的映射页面可以处于三种状态之一:作废、有效或TBP。
诸如此处所描述的使用多级别映射(MLM)结构的SSD能实现横跨多个叶子级别的映射单位的改善的“修整”操作。如此,代替就标准“修整”操作而论,使单个LBA条目作废,改善的“修整”操作可以使MLM结构的较高映射级别的整个叶单位作废。从耦合到介质控制器120的主机设备的角度来看,这缩短了“修整”操作的延迟,有利地提高了系统性能。然而,简单地丢弃叶级别映射中的单个修整的LBA条目会在块已用空间(BUS)帐户中产生不准确性,因为已修整的LBA仍显得有助于BUS。由介质控制器120在介质110中为SSD的非易失性存储器的每一个区域维护了BUS计数,诸如每个闪存块或闪存块组,作为作为一种确定何时对给定块或块的组(例如,带有最小的BUS的那一个)执行垃圾回收,如此缩小了垃圾回收写入放大。如此,BUS中的不准确性可能会导致不准确的垃圾回收和/或向介质110的写入的数量增大,如此,增大写入放大和缩短SSD寿命。通过在向主机设备确认“修整”操作之后,在后台更新BUS计数,改善的“修整”操作能够对LBA执行快速修整,同时还维护BUS精度。
在所描述的实施例中,“修整”操作更新MLM结构,以将所有修整的LBA标记为作废。进一步地,“修整”操作从介质110的对应的区域的BUS计数中减去已修整的LBA以前所使用的闪存空间,以提供准确的垃圾回收。如此,为适当地修整特定LBA,执行两个操作,在MLM结构中使特定LBA作废,更新BUS计数,反映特定LBA不再消费闪存空间。然而,对于大的修整区域(例如,整个SSD)或多个大的修整区域,执行作废和BUS更新所需的时间会变长,对系统性能造成负面影响。
如此处所描述的,存储在FLM中的SLM页面信息可以包括表示对应的SLM页面内的LBA已经作废(例如,对主机180而言,显得已修整),但是,“修整”操作的BUS更新部分还没有完成的指示(例如,待处理(TBP)指示符714)。与将较高级别的映射条目标记为作废对比,设置较高级别的映射条目的TBP指示符并不意味着,存储在较高级别的映射条目中的较低级别的映射页面的物理地址也作废——物理地址是需要的,较低级别的映射页面本身不能被取消分配,直到为BUS更新处理了较低级别的映射页面。然而,与较高级别的映射条目相关联的所有用户数据都相对于主机读取操作作废,与较高级别的映射条目被标记为作废相同。
当SSD101执行“修整”操作时,存储在介质110中的相关联的LBA的数据的大小(例如,706)被用来更新对应的区域的BUS值。例如,从对应的区域的BUS计数中减去大小值。在使用MLM结构的各实施例中,更新BUS计数会是费时的,因为更新BUS计数需要一个一个地处理叶级别的映射条目。为改善处理时间,所描述的实施例使用兆-修整操作,该操作在SSD101的后台操作模式下更新介质110的对应的区域的BUS计数。
例如,当SSD101从主机180接收到“修整”命令时,介质控制器120执行兆-修整操作,该操作设置对应于与“修整”命令相关联的SLM页面的FLM条目(例如,701)的相应的TBP指示符(例如,714)。如果“修整”操作只影响SLM页面中的SLM条目的一部分,则一些实施例可以通过通过将已修整的SLM条目标记为作废,并更新BUS计数,以反映SLM页面的已修整的部分,更新每一个部分SLM页面,处理部分SLM页面的单个条目,来处理部分SLM页面的单个条目。其他实施例可以通过使用TBP指示符(例如,714),“修整”操作正在进行中指示符(例如,710)和“修整”LBA范围(例如,712),允许延迟将已修整的SLM条目标记为作废并更新BUS计数,来推迟更新部分SLM页面。然后,部分地修整的SLM页面的随后的部分“修整”操作可任选地和/或有选择地立即执行对部分地修整的SLM页面的某些或全部更新操作,以避免需要跟踪给定“修整”LBA范围(例如,712)中的多个子范围。然而,替换实施例可以跟踪“修整”LBA范围(例如,712)中的多个子范围,允许比较长的延迟将已修整的SLM条目标记为作废和更新BUS计数。
当执行兆-修整操作时,在使相关联的LBA作废之后,SSD101可以在更新BUS计数之前向主机180确认“修整”命令。然后,在SSD101的后台进程中更新BUS计数(通常在几秒钟到几分钟的范围内完成,取决于“修整”范围以及由主机180启动的活动的量)。每当完全处理了相关联的FLM条目中的设置了TBP指示符的SLM页面中的一个时(例如,将已修整的SLM条目标记为作废,更新已修整的SLM页面中的所有SLM条目的BUS计数),都清除相关联的FLM条目中的TBP指示符。如果修整了SLM页面中的一个的全部SLM条目,则将相关联的FLM条目标记为已修整,消除了进一步处理SLM页面的必要性,直到新写入使SLM页面内的至少一个条目生效。
图8示出了兆-修整操作800的流程图。如图8所示,在步骤802中,由SSD101从主机180接收“修整”操作请求。在步骤804中,SSD101确定“修整”操作的范围(例如,一个或多个起始LBA和结束LBA)。SSD101可以维护FLM的起始TBP索引(min_flm_index_tbt)和结束TBP索引(max_flm_index_tbt),指出FLM的为其设置了TBP指示符的部分,指出FLM的需要后台操作以更新BUS计数并使介质110的存储块重新对主机180可用的部分。在后台(例如,在SSD101的空闲时间),SSD101可以检查起始TBP索引中的FLM条目,如果在该FLM条目上设置了TBP,则读取相关联的SLM页面,通过根据相关联的SLM页面中的每一个条目,更新BUS计数,清除FLM条目中的TBP指示符,并将FLM条目标记为已修整,指出,整个SLM页面已被修整,来修整该整个SLM页面。起始TBP索引(min_flm_index_tbt)被更新以指出,已经处理完该条目。
如图8所示,当处理具有修整范围(例如,对于SATA,每扇区64NCQ修整范围之一)的“修整”命令时,在步骤806中,SSD101判断是否“修整”范围的第一SLM页面和“修整”范围的最后一个SLM页面中的至少一项是部分SLM页面(例如,“修整”范围只适用于SLM页面的一部分)。如果在步骤806中,在范围的开始处或结尾处有部分SLM页面,那么,在步骤808中,SSD101判断该部分SLM页面是否存储在缓存608中。如果在步骤808中“修整”范围的开始处或结尾处的部分SLM页面存储在缓存608中,那么,过程800前进到步骤812。如果在步骤808中,“修整”范围的开始处或结尾处的部分SLM页面不存储在缓存608中,那么,在步骤810中,SSD101从介质110中将部分SLM页面获取到缓存608中,过程800前进到步骤812。在步骤812中,对于部分SLM页面的在“修整”操作范围内的条目执行“修整”操作。例如,更新“修整”范围内的对应于部分SLM页面中的“修整”范围内的任何LBA的SLM页面条目。更新SLM页面中的条目包括设置数据作废指示符并更新BUS计数。过程800前进到步骤820。
如果在步骤806中SLM页面不是部分SLM页面,则在步骤814中SSD101判断完全SLM页面是否存储在缓存608中。如果在步骤814中完全SLM页面存储在缓存608中,那么过程800前进到步骤816。如果在步骤814中完全SLM页面不存储在缓存608中,那么,在步骤818中,SSD101在对应于SLM页面(例如,714)的FLM中设置TBP指示符。过程800前进到步骤820。
当需要从介质101中获取SLM页面时,如果在相关联的FLM条目中设置了TBP,那么,使SLM页面完全作废(相对于主机访问,SLM页面内的所有条目都被视为作废),但是,对于BUS更新目的,还没有处理SLM页面。对于读取,不需要SLM页面(被该SLM页面引用的所有数据都被修整),不需要获取SLM页面。对于写入,对于SLM页面中的所有LBA,更新BUS计数,使SLM页面中的所有条目都作废,然后,更新SLM页面内的正在被写入的SLM条目。在步骤816中,执行对于写入的操作的子集:对于SLM页面中的所有LBA,更新BUS计数,使SLM页面中的所有条目作废。
在步骤822中,SSD101确定设置了TBP指示符(例如,min_flm_index_tbt和max_flm_index_tbt)的FLM的条目的范围,指出FLM的需要后台操作以更新BUS计数并使介质110的存储块重新对主机180可用的部分。在步骤824中,“修整”操作的其余部分(例如,更新BUS计数和释放存储块,可供主机180使用)在后台进行(例如,在SSD101的空闲时间)。SSD101可以维护随着在步骤816中修整存储块而更新的一个或多个指针(例如,随着它们的BUS计数更新),以确保对块的处理而记住新的“修整”范围。例如,SSD101可以检查在起始TBP索引中的FLM条目,如果在该FLM条目上设置了TBP,则读取相关联的SLM页面,并且通过更新BUS计数、清除FLM条目中的TBP指示符、并将FLM条目标记为已修整从而指出整个SLM页面已被修整,来修整该整个SLM页面。该起始TBP索引(min_flm_index_tbt)被更新以指出已经处理完该条目。当在步骤824中后台“修整”操作完成时,向主机180确认该“修整”操作。在步骤826中,过程800完成。
如此,如此处所描述的,所描述的实施例为固态介质提供介质控制器。介质控制器包括控制处理器接收来自主机设备的包括至少一个逻辑地址和地址范围的请求。响应于请求,控制处理器判断接收到的请求是否是作废请求。如果接收到的请求类型是作废请求,则控制处理器使用介质控制器的映射来确定与逻辑地址和范围相关联的映射的一个或多个条目。与映射条目中的每一个相关联的映射中的指示符被设置为表示映射条目将被作废。控制处理器向主机设备确认该作废请求完成,并在介质控制器的空闲模式下基于将被作废的映射条目更新空闲空间计数。使与作废的映射条目相关联的物理地址可用,以便重复用于来自主机设备的随后的请求。
此处所提及的“一个实施例”是指,参考实施例所描述的特定功能、结构或特征可以包括在至少一个实施例中。在本说明书中的不同位置出现短语“在一个实施例中”不一定都是指同一个实施例,也不是指与其他实施例互相排斥的单独的或备选实施例。同理也适用于术语“实现”。
如本申请中所使用的,在此使用词语“示例性”意指用作示例、实例或说明。本文中被描述为“示例性”的任何方面或设计不一定被解释为优选于或更优于其他方面或设计。相反,使用词语“示例性”旨在以具体的方式呈现各个概念。
尽管参考软件程序中的处理框,包括作为数字信号处理器、微控制器,或通用计算机的可能的实现描述了示例性实施例,但是,所描述的实施例不仅限于此。对那些精通本技术的人显而易见的是,软件的各种功能也可以电路的进程来实现。这样的电路可以用于,例如,单一集成电路、多芯片模块、单一卡,或多卡电路封装。
所描述的实施例还可以以方法的形式以及用于实施那些方法的设备来实现。所描述的实施例还可以以在非瞬时的有形的介质(如磁记录介质、光学记录介质、固态存储器、软盘、CD-ROM、硬盘驱动器或任何其他非瞬时的机器可读的存储介质)中实现的程序代码的形式来实现,其中,当程序代码被加载到诸如计算机之类的机器并由它们执行时,机器变为用于实施所描述的实施例的设备。所描述的实施例也可以以程序代码的形式实现,例如,无论存储在非瞬时的机器可读的存储介质中,加载到机器中和/或由机器执行,或通过某些传输介质或载体传输,如通过电线或电缆、通过光纤,或通过电磁辐射,其中,当程序代码被加载到中并由诸如计算机之类的机器执行时,机器变为用于实施所描述的实施例的设备。当在通用处理器上实现时,程序代码段与处理器结合,以提供与特定逻辑电路类似地工作的唯一设备。所描述的实施例还可以以比特流或通过介质以电的方式或以光学方式传输的,在磁记录介质等等中存储的磁场变体、使用所描述的实施例的方法和/或设备生成的信号值的其他序列的形式来实现。
应该理解,此处阐述的示例性方法的步骤不一定按所描述的顺序执行,这样的方法的步骤的顺序应该被理解为只是示例性的。同样,在这样的方法中也可以包括额外的步骤,在根据所描述的实施例的方法中,也可以省略或组合某些步骤。
如此处参考元件和标准所使用的,术语“兼容的”是指,元件以完全或部分地由标准所指定的方式与其他元件进行通信,将被其他元件识别为充分能够以由标准所指定的方式与其他元件进行通信。兼容的元件不需要以由标准所指定的方式在内部操作。除非明确地声明,每一个数字值和范围都应该被解释为与值或范围前面的单词“大约”或“差不多”近似。
此外,对于本说明书,术语“耦合”、“连接”是指当前技术已知的或以后开发的允许在两个或更多元件之间传输能量的任何方式,预期可以插入一个或多个额外的元件,虽然不是必需的。相反,术语“直接耦合”、“直接连接”等等,意味着不存在这样的额外元件。信号和对应的节点或端口可以通过相同名称来引用,并为这里的目的而可互换。
应该进一步地理解,在不偏离如下面的权利要求书所表达的本发明的范围的情况下,本领域的技术人员可以对这里所描述的以便说明所描述的实施例的本质的那些部分的细节、材料、布局进行各种更改。

Claims (10)

1.一种处理由与固态介质和主机设备进行通信的介质控制器接收到的主机请求的方法,所述方法包括:
由所述介质控制器,接收来自所述主机设备的请求,所述请求包括至少一个逻辑地址和地址范围;
响应于接收所述请求:
判断所接收到的请求是否是作废请求,如果所接收到的请求类型是作废请求:
使用所述介质控制器的映射,来确定与所述固态介质的所述至少一个逻辑地址和地址范围相关联的所述映射的一个或多个条目;
在所述映射中标记与所述映射条目中的每一个相关联的指示符,所述指示符表示所述一个或多个映射条目将被作废;
向所述主机设备确认所述作废请求完成;
在所述介质控制器的空闲模式中,基于将被作废的所述一个或多个映射条目来更新所述介质控制器的空闲空间计数;以及
使与被作废的映射条目相关联的所述物理地址可用,以便重复用于来自所述主机设备的随后的请求。
2.如权利要求1所述的方法,其特征在于,所述映射是包括第一级别映射和第二级别映射的多级别映射,所述方法还包括:
将多个第二级别的映射页面的多个条目中的每一个与所述固态介质的物理地址相关联;以及
将所述第一级别映射的多个条目中的每一个与第二级别映射页面相关联,由此,将所述至少一个逻辑地址和地址范围与所述第二级别映射条目中的至少一个相关联。
3.如权利要求2所述的方法,其特征在于:
每一个第二级别映射条目都包括有效指示;以及
每一个第一级别的映射条目都包括所述第二级别映射页面的对应的一个的地址、对应于与所述第一级别映射条目相关联的所述第二级别映射的一个或多个条目的有效指示、以及被配置成指出所述第二级别映射的条目何时作废但不可用于被写入的待处理(TBP)指示符;所述方法还包括:
所述方法还包括:
通过设置与所述第二级别映射页面的完全在所述请求的所述地址范围内的那些页面相关联的所述第一级别映射中的所述TBP指示符的特定指示符,使所述第二级别映射的条目作废。
4.如权利要求3所述的方法,所述方法还包括:
通过直接修整所述第二级别映射页面的只部分地在所述请求的所述地址范围内的那些页面的条目,来使所述第二级别映射的条目作废。
5.如权利要求3所述的方法,其特征在于,如果为给定的第二级别映射设置了所述TBP指示符,则所述方法还包括:
推迟处理对所述给定第二级别映射的所述作废请求,直到对于所述给定第二级别映射接收到随后的作废请求,由此,缩短所述作废请求的处理时间并减少对所述固态介质的写入操作以更新所述给定第二级别映射。
6.如权利要求3所述的方法,其特征在于,使所述第二级别映射的被作废的条目中的每一个可用以便重复用于来自所述主机设备的随后的请求的步骤包括:
如果设置,则清除所述相关联的TBP指示符;以及
如果设置,则清除所述相关联的有效指示符。
7.如权利要求3所述的方法,其特征在于,还包括:
将所述第一级别映射存储在所述介质控制器的映射存储器中;
将全部所述第二级别映射页面存储在所述固态介质中;以及
将至少所述第二级别映射页面的子集临时地存储在耦合到所述介质控制器的控制处理器的映射缓存中。
8.如权利要求1所述的方法,其特征在于,所述介质控制器的所述空闲空间计数包括具有多个条目的块已用空间表,所述方法还包括:
将所述块已用空间表的每一个条目与所述固态介质的多个物理区域中的一个相关联。
9.如权利要求1所述的方法,其特征在于,所述作废请求是下列各项中的一项:串行高级技术附件(SATA)“修整”命令、小型计算机系统接口(SCSI)UNMAP命令、MultiMediaCard(MMC)“擦除”命令、以及安全数字(SD)卡“擦除”命令。
10.如权利要求3所述的方法,其特征在于,每一个第一级别映射条目包括至少一个“修整”地址范围指示符,被配置成跟踪相关联的第二级别映射的在所述请求的范围内的部分。
CN201410056341.0A 2013-08-09 2014-02-19 在固态介质中使用多级别映射的修整机制 Active CN104346287B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/963,074 US20140047210A1 (en) 2012-08-08 2013-08-09 Trim mechanism using multi-level mapping in a solid-state media
US13/963,074 2013-08-09

Publications (2)

Publication Number Publication Date
CN104346287A true CN104346287A (zh) 2015-02-11
CN104346287B CN104346287B (zh) 2019-04-16

Family

ID=51417137

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410056341.0A Active CN104346287B (zh) 2013-08-09 2014-02-19 在固态介质中使用多级别映射的修整机制

Country Status (3)

Country Link
EP (1) EP2838026A3 (zh)
KR (1) KR102217048B1 (zh)
CN (1) CN104346287B (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018041258A1 (zh) * 2016-09-05 2018-03-08 北京忆恒创源科技有限公司 去分配命令处理的方法与存储设备
CN108776576A (zh) * 2017-03-31 2018-11-09 三星电子株式会社 用于聚合的网上NVMe装置的聚合存储方法
CN110333826A (zh) * 2019-07-04 2019-10-15 深圳忆联信息系统有限公司 Ssd读写性能提升方法、装置、计算机设备及存储介质
CN110413233A (zh) * 2019-07-26 2019-11-05 杭州电子科技大学 一种固态硬盘控制器
CN110413211A (zh) * 2018-04-28 2019-11-05 伊姆西Ip控股有限责任公司 存储管理方法、电子设备以及计算机可读介质
US10509742B2 (en) 2016-05-16 2019-12-17 Hewlett Packard Enterprise Development Lp Logical memory buffers for a media controller
CN110780809A (zh) * 2018-07-31 2020-02-11 爱思开海力士有限公司 针对多个存储器系统的接合管理元数据的设备和方法
WO2020052321A1 (zh) * 2018-09-12 2020-03-19 华为技术有限公司 数据处理方法和系统
CN111414312A (zh) * 2019-01-07 2020-07-14 爱思开海力士有限公司 数据存储装置及其操作方法
CN112470132A (zh) * 2018-06-29 2021-03-09 美光科技公司 控制nand操作延时
CN112882650A (zh) * 2019-11-29 2021-06-01 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
US11199983B2 (en) 2019-08-12 2021-12-14 Western Digital Technologies, Inc. Apparatus for obsolete mapping counting in NAND-based storage devices
CN115079957A (zh) * 2022-07-20 2022-09-20 阿里巴巴(中国)有限公司 请求处理方法、装置、控制器、设备及存储介质

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9927999B1 (en) 2016-09-09 2018-03-27 Western Digital Technologies, Inc. Trim management in solid state drives
CN110568998B (zh) * 2019-09-16 2023-06-06 深圳忆联信息系统有限公司 基于固态硬盘的Trim命令实现方法、装置和计算机设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101187860A (zh) * 2006-11-21 2008-05-28 国际商业机器公司 用于指令高速缓存踪迹生成的设备和方法
US20090222629A1 (en) * 2008-03-01 2009-09-03 Kabushiki Kaisha Toshiba Memory system
CN102096639A (zh) * 2009-12-15 2011-06-15 英特尔公司 用于修剪在非易失性闪速介质上的数据的方法
US20120059976A1 (en) * 2010-09-07 2012-03-08 Daniel L. Rosenband Storage array controller for solid-state storage devices

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101187860A (zh) * 2006-11-21 2008-05-28 国际商业机器公司 用于指令高速缓存踪迹生成的设备和方法
US20090222629A1 (en) * 2008-03-01 2009-09-03 Kabushiki Kaisha Toshiba Memory system
CN102096639A (zh) * 2009-12-15 2011-06-15 英特尔公司 用于修剪在非易失性闪速介质上的数据的方法
US20120059976A1 (en) * 2010-09-07 2012-03-08 Daniel L. Rosenband Storage array controller for solid-state storage devices

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10509742B2 (en) 2016-05-16 2019-12-17 Hewlett Packard Enterprise Development Lp Logical memory buffers for a media controller
WO2018041258A1 (zh) * 2016-09-05 2018-03-08 北京忆恒创源科技有限公司 去分配命令处理的方法与存储设备
CN108776576A (zh) * 2017-03-31 2018-11-09 三星电子株式会社 用于聚合的网上NVMe装置的聚合存储方法
CN108776576B (zh) * 2017-03-31 2023-08-15 三星电子株式会社 用于聚合的网上NVMe装置的聚合存储方法
CN110413211B (zh) * 2018-04-28 2023-07-07 伊姆西Ip控股有限责任公司 存储管理方法、电子设备以及计算机可读介质
CN110413211A (zh) * 2018-04-28 2019-11-05 伊姆西Ip控股有限责任公司 存储管理方法、电子设备以及计算机可读介质
CN112470132B (zh) * 2018-06-29 2024-05-07 美光科技公司 控制nand操作延时
CN112470132A (zh) * 2018-06-29 2021-03-09 美光科技公司 控制nand操作延时
CN110780809A (zh) * 2018-07-31 2020-02-11 爱思开海力士有限公司 针对多个存储器系统的接合管理元数据的设备和方法
WO2020052321A1 (zh) * 2018-09-12 2020-03-19 华为技术有限公司 数据处理方法和系统
CN111414312A (zh) * 2019-01-07 2020-07-14 爱思开海力士有限公司 数据存储装置及其操作方法
CN111414312B (zh) * 2019-01-07 2023-03-14 爱思开海力士有限公司 数据存储装置及其操作方法
CN110333826A (zh) * 2019-07-04 2019-10-15 深圳忆联信息系统有限公司 Ssd读写性能提升方法、装置、计算机设备及存储介质
CN110413233A (zh) * 2019-07-26 2019-11-05 杭州电子科技大学 一种固态硬盘控制器
US11199983B2 (en) 2019-08-12 2021-12-14 Western Digital Technologies, Inc. Apparatus for obsolete mapping counting in NAND-based storage devices
CN112882650A (zh) * 2019-11-29 2021-06-01 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
CN112882650B (zh) * 2019-11-29 2024-04-30 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
CN115079957A (zh) * 2022-07-20 2022-09-20 阿里巴巴(中国)有限公司 请求处理方法、装置、控制器、设备及存储介质

Also Published As

Publication number Publication date
EP2838026A2 (en) 2015-02-18
KR102217048B1 (ko) 2021-02-17
CN104346287B (zh) 2019-04-16
KR20150018654A (ko) 2015-02-23
EP2838026A3 (en) 2015-03-18

Similar Documents

Publication Publication Date Title
CN104346287A (zh) 在固态介质中使用多级别映射的修整机制
TWI637315B (zh) 使用在一固態媒體中之多層次映射之修整機制
US9218281B2 (en) Maintaining ordering via a multi-level map of a solid-state media
TWI592800B (zh) 記憶體管理方法及使用所述方法的儲存控制器
JP5317689B2 (ja) メモリシステム
TWI537728B (zh) 緩衝記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置
US8667234B2 (en) Data writing method, memory controller, and memory storage apparatus
TW201437807A (zh) 映射資訊記錄方法、記憶體控制器與記憶體儲存裝置
JPWO2007119267A1 (ja) フラッシュメモリ用のメモリコントローラ
WO2020164064A1 (en) Partial caching of media address mapping data
US11775389B2 (en) Deferred error-correction parity calculations
CN113031856A (zh) 存储器子系统中的断电数据保护
WO2022204061A1 (en) Supporting multiple active regions in memory devices
US20240143511A1 (en) Dynamically sized redundant write buffer with sector-based tracking
TWI693520B (zh) 用來於一記憶裝置中進行系統備份的方法、相關記憶裝置及其控制器、以及相關電子裝置
US20120079231A1 (en) Data writing method, memory controller, and memory storage apparatus
TW201935232A (zh) 記憶體管理方法及使用所述方法的儲存控制器
US11599466B2 (en) Sector-based tracking for a page cache
WO2023201462A1 (en) Namespace level valid translation unit count
US11698856B2 (en) Maintaining sequentiality for media management of a memory sub-system
US11204719B2 (en) Snap read optimization for media management for a memory sub-system
US20230396270A1 (en) Dynamic decoding for memory systems
CN110633224A (zh) 逻辑转实体表更新方法及存储控制器

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant