CN104641356B - 地址映射 - Google Patents
地址映射 Download PDFInfo
- Publication number
- CN104641356B CN104641356B CN201380048147.1A CN201380048147A CN104641356B CN 104641356 B CN104641356 B CN 104641356B CN 201380048147 A CN201380048147 A CN 201380048147A CN 104641356 B CN104641356 B CN 104641356B
- Authority
- CN
- China
- Prior art keywords
- data
- unit
- mapping
- memory
- physical
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明包含用于地址映射的方法、存储器单位及设备。一种方法包含提供具有对应于一定数目个逻辑地址的逻辑到物理映射数据的映射单位。所述映射单位具有与其相关联的可变数据单位类型,且包括:第一部分,其包括指示具有由所述可变数据单位类型界定的大小的一定数目个物理数据单位在存储器上的位置的映射数据;及第二部分,其包括指示所述映射单位所属的映射单位群组的一定数目个其它映射单位在所述存储器上的位置的映射数据。
Description
技术领域
本发明大体来说涉及半导体存储器及方法,且更特定来说,涉及地址映射。
背景技术
存储器装置通常经提供作为计算机或其它电子装置中的内部半导体集成电路。存在包含易失性及非易失性存储器的许多不同类型存储器。易失性存储器可需要电力来维持其数据(例如,信息)且包含随机存取存储器(RAM)、动态随机存取存储器(DRAM)及同步动态随机存取存储器(SDRAM)以及其它存储器。非易失性存储器可通过在未被供电时存留所存储数据而提供持久数据且可包含NAND快闪存储器、NOR快闪存储器、静态随机存取存储器(SRAM)、电阻可变存储器(例如相变随机存取存储器(PCRAM)及电阻性随机存取存储器(RRAM))及磁性随机存取存储器(MRAM)(例如自旋扭矩转移随机存取存储器(STT RAM))以及其它存储器。
可将存储器装置组合在一起以形成固态驱动器(SSD)。固态驱动器可包含非易失性存储器,例如NAND快闪存储器及/或NOR快闪存储器,及/或可包含易失性存储器,例如DRAM以及各种其它类型的非易失性及易失性存储器。快闪存储器装置(包含浮动栅极快闪装置及电荷陷阱快闪(CTF)装置)可包括具有用于存储电荷的存储结构(例如,浮动栅极或电荷陷获结构)的存储器单元且可用作用于广泛电子应用的非易失性存储器。
各种设备(例如,计算系统)可包括耦合到主机(例如,个人膝上型计算机、桌上型计算机、数码相机、移动电话或存储卡读取器以及各种其它类型的主机)的SSD。举例来说,与SSD操作相关联的存储器管理过程可由于子页写入、未对准写入及/或不可预测的时间及空间局部性而遭受低效性的缺点。此类低效性可归因于若干因素,例如与从主机接收的命令(例如,写入、读取、擦除等)相关联的输入/输出(I/O)工作负载模式不规则性,这可增加写入放大及/或降低无用单元收集效率以及其它缺点。存储器管理过程通常采用逻辑到物理(L2P)映射数据结构(例如,表)来在逻辑地址空间与物理地址空间之间进行映射(例如,以确定存储于存储器上的物理数据的位置)。然而,许多当前的L2P映射方法不能够有效地考虑到主机I/O工作负载模式不规则性。
附图说明
图1是根据本发明的一定数目个实施例呈包含至少一个存储器系统的计算系统的形式的设备的框图。
图2是根据先前地址映射方法的逻辑到物理地址映射。
图3是根据本发明的一定数目个实施例的逻辑到物理地址映射。
图4图解说明根据本发明的一定数目个实施例的一定数目个映射单位群组。
图5图解说明根据本发明的一定数目个实施例与地址映射相关联的一定数目个映射单位。
图6A-6B图解说明根据本发明的一定数目个实施例与地址映射相关联的一定数目个映射单位。
图7图解说明根据本发明的一定数目个实施例与地址映射相关联的一定数目个映射单位。
图8图解说明根据本发明的一定数目个实施例与地址映射相关联的一定数目个映射单位。
图9图解说明根据本发明的一定数目个实施例与地址映射相关联的一定数目个映射单位。
图10图解说明根据本发明的一定数目个实施例与更新映射单位相关联的功能流程图。
具体实施方式
本发明包含用于地址映射的方法、存储器单位及设备。一种方法包含提供具有对应于一定数目个逻辑地址的逻辑到物理映射数据的映射单位。所述映射单位具有与其相关联的可变数据单位类型,且包括:第一部分,其包括指示具有由所述可变数据单位类型界定的大小的一定数目个物理数据单位在存储器上的位置的映射数据;及第二部分,其包括指示所述映射单位所属的映射单位群组的一定数目个其它映射单位在所述存储器上的位置的映射数据。
举例来说,本发明的一定数目个实施例可提供一种可基于主机的I/O工作负载而加以调整的逻辑到物理地址映射方法。如此,一定数目个实施例可提供若干益处,例如与先前地址映射技术相比,无用单元收集效率得以改进及/或写入放大得以减小。
在本发明的以下详细描述中,参考形成本发明的一部分且其中以图解说明方式展示可如何实践本发明的一定数目个实施例的附图。充分详细地描述这些实施例旨在使所属领域的技术人员能够实践本发明的实施例,且应理解,可利用其它实施例且可做出过程、电及/或结构改变,而不背离本发明的范围。如本文中所使用,标示符“D”及“m”(尤其是关于图式中的参考编号)指示如此标示的一定数目个特定特征可与本发明的一定数目个实施例包含在一起。如本文中所使用,“一定数目个”某物可指代一或多个此种事物。
本文中的图遵循其中第一个数字或前几个数字对应于图式的图编号且剩余数字识别图式中的元件或组件的编号惯例。不同图之间的类似元件或组件可通过使用类似数字来识别。举例来说,在图3中301可指代元件“01”,且在图4中类似元件可指代为401。如将了解,可添加、交换及/或消除本文中各种实施例中所展示的元件以便提供本发明的一定数目个额外实施例。另外,将了解,各图中所提供的元件的比例及相对标度打算图解说明本发明的实施例且不应视为具限制意义。
图1是根据本发明的一定数目个实施例呈包含至少一个存储器系统104的计算系统 100的形式的设备的框图。如本文中所使用,还可将存储器系统104、控制器108或存储器装置110单独地视为“设备”。存储器系统104可以是例如固态驱动器(SSD)且可包含主机接口106、控制器108(例如,处理器及/或其它控制电路)及可为存储器系统104 提供存储卷的一定数目个存储器装置110-1、...、110-D(例如,固态存储器装置,例如 NAND快闪装置)。在一定数目个实施例中,控制器108、存储器装置110-1到110-D及 /或主机接口106可在物理上位于单个裸片上或位于单个封装内(例如,受管理NAND应用)。此外,在一定数目个实施例中,存储器(例如,存储器装置110-1到110-D)可包含单个存储器装置。在此实例中,存储器装置110-1到110-D中的每一者对应于相应存储器通道,所述存储器通道可包括存储器装置(例如,裸片或芯片)群组;然而,实施例并不受此限制。另外,在一定数目个实施例中,存储器装置110可包括不同类型的存储器。例如,存储器装置110-1到110-D可包括相变存储器装置、DRAM装置、多电平(MLC) NAND快闪装置、单电平(SLC)NAND快闪装置及/或其组合。
主机接口106可用于在存储器系统104与主机102之间传送数据。接口106可呈标准化接口的形式。举例来说,当存储器系统104在计算系统101中用于数据存储时,接口106可为串行高级技术附件(SATA)、串行附接SCSI(SAS)、高速外围组件互连(PCIe) 或通用串行总线(USB)以及其它连接器及接口。然而,一股来说,接口106可提供用于在存储器系统104与主机102之间传递控制、地址、数据及其它信号的接口,主机102 具有用于接口106的兼容接受器。主机102可为主机系统,例如个人膝上型计算机、桌上型计算机、数码相机、移动电话或存储卡读取器以及各种其它类型的主机。主机102 可包含系统主板及/或底板且可包含一定数目个存储器存取装置(例如,一定数目个处理器)。
控制器108可与存储器(例如,存储器装置110-1到110-D)进行通信以控制数据读取、写入及擦除操作以及其它操作。举例来说,控制器108可包含呈硬件及/或固件(例如,一或多个集成电路)及/或软件的形式的一定数目个组件,其用于控制对存储器的存取及/ 或用于促进主机102与存储器之间的数据传送。
在图1中所图解说明的实例中,控制器108包含主机I/O管理组件112、快闪转换层(FTL)114及存储器单位管理组件116。然而,控制器108可包含为不使本发明的实施例模糊而未图解说明的各种其它组件。此外,虽然将组件112、114及116图解说明为驻存于控制器108上,但在一些实施例中,组件112、114及/或116可驻存于系统100 中的别处(例如,作为独立组件或驻存于系统的不同组件上)。
举例来说,在其中存储器(例如,存储器装置110-1到110-D)包含一定数目个存储器单元阵列的实施例中,所述阵列可为具有NAND架构的快闪阵列。然而,实施例并不限于特定类型的存储器阵列或阵列架构。例如,所述存储器单元可被分组成一定数目个块,其被作为一群组一起擦除且可每块存储一定数目个数据页。一定数目个块可包含于存储器单元平面中且一阵列可包含一定数目个平面。如本文中所使用,“数据页”指代控制器108经配置以作为单个写入/读取操作的一部分而向存储器110写入/从存储器110读取的数据量且可称为“快闪页”。作为一实例,存储器装置可具有8KB(千字节)的页大小且可经配置以存储每块128个数据页、每平面2048个块及每装置16个平面。
不同于传统的硬盘驱动器,存储于快闪存储器中的数据无法被直接改写。也就是说,在向快闪单元块重写数据之间必须将其擦除(例如,一次一页)。在其中存储器装置110-1 到110-D中的至少一者包括快闪存储器单元的实施例中,控制器108可经由逻辑到物理映射方案来管理在主机102与存储器110之间传送的数据。例如,快闪转换层114可采用逻辑寻址方案(例如,逻辑块寻址(LBA))。作为一实例,当从主机102接收的新数据将替换已写入到存储器110的较旧数据时,控制器108可将所述新数据写入在存储器110 上的新位置中,且FTL 114的逻辑到物理映射可经更新使得与正写入的新数据相关联的对应逻辑地址指示(例如,指向)新物理位置。不再存储有效数据的旧位置在被再次写入之前将被擦除。
快闪存储器单元在被循环(例如,编程/擦除)有限次数之后,其即可变得不可靠。控制器108可实施磨损均衡来控制对存储器110的磨损速率,这可通过使对特定群组(例如,块)执行的编程/擦除循环较均匀地散布在整个阵列上而减少所述循环的数目。磨损均衡可包含一种称为无用单元收集的技术,其可包含对具有最无效页的块进行回收(例如,擦除并使得可用于写入)。无效页可指代含有无效数据的页(例如,不再具有与其相关联的最新映射的页)。或者,无用单元收集可包含回收具有多于阈值量的无效页的块。如果针对写入操作存在足够自由块,那么可不发生无用单元收集操作。
写入放大可在向快闪存储器装置110写入数据时发生。当随机地向存储器阵列写入数据时,控制器108扫描所述阵列中的可用空间。存储器阵列中的可用空间可为未存储数据及/或已被擦除的个别单元、存储器单元页及/或存储器单元块。如果在选定位置中存在足够可用空间来写入数据,那么将数据写入到存储器阵列的所述选定位置。如果在选定位置中不存在足够可用空间,那么通过将已存在于所述选定位置中的数据读取、拷贝、移动或以其它方式重写及擦除到新位置来重新布置存储器阵列中的数据,从而为待写入于所述选定位置中的新数据留出可用空间。有效数据在存储器阵列中的重新定位称为写入放大,因为写入到存储器的数据量大于在于选定位置中存在充足可用空间的情况下将出现的数据量(例如,物理数据量大于既定被写入的逻辑量)。写入放大是不合意的,因为其可消耗带宽(这会降低性能)且可减少SSD的有用寿命。写入放大量可受各种因素影响,例如无用单元收集效率、磨损均衡效率、随机写入量(例如,对非循序逻辑地址的写入)及/或过度布建(例如,快闪存储器的物理容量与通过操作系统呈现的如可用于用户的逻辑容量之间的差异)以及其它因素。
根据本文中所描述的一定数目个实施例,快闪转换层114可与主机I/O管理组件112 及映射单位管理组件116协作地执行地址映射。在一定数目个实施例中,主机I/O管理组件112管理结合来自主机102的写入命令接收的数据(例如,在经由FTL 114进行映射之前)。主机102的I/O工作负载可为不规则的及/或可变的。例如,通常可将大文件写入(例如,对应于大数据量的写入)与小写入(例如,对应于小数据量的写入)混合。在此上下文中,“大”及“小”仅指代相对大小差异。作为一实例,小写入可指代对应于较大文件的4KB元数据的写入。例如,大文件写入可包含128K数据的写入。大文件写入可包括一定数目个连续大文件写入。例如,2GB视频文件的写入可包括来自主机102的一定数目个连续128KB写入命令。
主机I/O管理112可经配置以依特定大小为单位来管理所接收数据。由主机I/O管理组件112管理的数据单位的特定大小可对应于可用缓冲器的大小且例如可为4KB。如此,主机I/O管理112可将从主机102接收的数据组织为4KB单位以经由FTL 114进行映射。如本文中所使用,由主机I/O管理112管理的数据单位大小可称为“系统页大小”。
如本文中所进一步描述,在一定数目个实施例中,映射单位(MU)管理116可监视主机102的I/O工作负载。例如,MU管理116可针对多个存储器单位及/或存储器单位群组(MUG)追踪与来自主机102的传入写入命令相关联的逻辑地址及与所述传入写入命令相关联的对应大小(例如,数据量),例如,所述大小可用于确定相应MU及/或MUG的数据单位大小。
图2是根据先前地址映射方法的逻辑到物理(L2P)地址映射201。例如,L2P映射201可呈例如表等数据结构的形式。L2P映射201包含一定数目个MU 203-0、203-1、 203-2、...、203-i等,其将统称为MU 203。MU 203中的每一者可存储用于在逻辑地址与物理地址之间进行映射的固定映射数据量。所述固定数据量可等于与数据将被写入到的存储器相关联的页大小。例如,如果存储器(例如,图1中所展示的存储器装置110) 具有8KB的相关联页大小,那么每一MU 203可存储8KB的映射数据。每一MU 203 包括物理地址(PA)数据结构(例如,表),所述数据结构包括各自将逻辑页映射到物理页的固定数目个条目。例如,如图2中所展示,PA表205包括一定数目个条目(例如,PA[0]、 PA[1]、PA[2]、...、PA[PA_PER_MU-1]),其中举例来说,“PA_PER_MU”可为2,048。如此,如果每一MU 203包括2,048个条目且每一条目映射到8KB页,那么每一MU 203 可映射16MB的存储器(例如,每条目8KB乘以2,048个条目)。
由于地址映射201的大小相对较大,因此MU 203可存储于存储器(例如,存储器110)上且可在适当时基于将结合来自主机(例如,主机102)的写入操作而写入的逻辑地址加以存取。例如,可将MU 203中的一或多者从存储器110传送到(例如)控制器的存储器(例如,DRAM、SRAM等)。可接着更新所存取MU 203的映射数据使得其映射到存储器上的适当物理位置且可将经更新MU 203写回到存储器210。
然而,现有技术的地址映射方法(例如图2中所描述的地址映射方法)可具有各种缺点,例如,其可导致增加的写入放大。举例来说,PA表205的条目中与相应MU 203 中的每一者对应的每一条目映射到相同的物理数据量(例如,在此实例中为8KB页大小)。例如,由于主机I/O工作负载可为不规则的及/或可变的,因此关于由MU 203映射的物理数据单位的大小缺乏灵活性可导致MU管理额外开销量的增加,例如由于较长连续数据写入所致的大量更新(例如,对映射表条目)、子页写入(例如,小于页大小的数据量的写入)及/或由于对随机存储器位置的小数据写入所致的未对准写入(例如,与物理页边界不对准的数据单位写入)。可变及/或不规则的主机I/O工作负载还可导致不可预测的时间及/或空间局部性,这也可由于关于由地址映射201的MU 203映射的物理数据单位的大小缺乏灵活性(例如,适应性)而导致增加的写入放大。如下文结合图3到10所进一步描述,本发明的一定数目个实施例提供与结合图2所描述的方法等方法相比更灵活的地址映射方法,其可提供改进的写入放大以及其它益处。
图3是根据本发明的一定数目个实施例的L2P映射301。例如,L2P映射301可呈例如表等数据结构的形式。L2P映射301包含一定数目个MU 303-0、303-1、303-2、...、 303-i等,其统称为MU 303。在一定数目个实施例中,且与图2中所描述的MU 203类似,MU 303中的每一者可存储用于在逻辑地址与物理地址之间进行映射的固定映射数据量。所述固定数据量可等于与数据将被写入到的存储器(例如,图1中所展示的存储器 110)相关联的页大小。例如,如果存储器具有8KB的相关联页大小,那么每一MU 303 可包括8KB的可用映射数据空间。
每一MU 303对应于一定数目个逻辑地址。在一定数目个实施例中,每一MU 303 对应于固定的非重叠逻辑地址范围。例如,MU 303-0可对应于逻辑地址0-1,024,MU 303-1可对应于逻辑地址1,025-2,048,等等。此外,如本文中所进一步描述,每一MU 303 可具有可界定由特定MU 303映射的物理数据单位的大小的相关联可变数据单位类型。
如图3的MU 303-i所图解说明,每一MU 303可包括第一映射数据部分305及第二映射数据部分307。第一部分305可包括指示具有由可变数据单位类型界定的大小的一定数目个物理数据单位在存储器(例如,存储器110)上的位置的映射数据。作为一实例,第一部分305可包括物理地址(PA)表(例如,数据单位映射表)。然而,不同于使用具有各自映射到物理页的条目的PA表(例如图2中所展示的PA表205)的先前方法,PA表 305的条目各自映射到具有特定大小(其可等于或可不等于页大小)的物理数据单位。例如,在一定数目个实施例中,L2P映射301具有与其相关联的基本数据单位大小。如本文中所使用,基本数据单位大小可指代经由L2P映射301映射的最小数据单位大小。例如,基本数据单位大小可小于、等于或大于存储器的页大小。作为一实例,如果存储器的页大小为8KB,那么基本数据单位大小可为4KB、8KB、16KB等。在一定数目个实施例中,基本数据单位大小可等于系统页大小(例如,由图1中所展示的主机I/O管理 112管理的数据大小)。
在各种实例中,系统页大小可不与存储器的页大小(例如,快闪页大小)相同。举例来说,系统页大小可为4KB且存储器的页大小可为8KB,这可导致与I/O请求相关联的数据分裂及/或未对准(例如,在逻辑到物理映射仅映射到8KB页大小的情况下,例如在先前方法中)。如此,在本发明的一定数目个实施例中,基本数据单位大小与系统页大小相同;然而,实施例并不受此限制。
在图3中所展示的实例中,MU 303-i的PA表305包括条目PA[0]到PA[PA_PER_MU -1],其中例如,“PA_PER_MU”可为1,024。如下文所进一步描述,映射表305中的条目的数目可取决于若干因素,例如用于表305的可用映射数据空间及由条目PA[0]到 PA[PA_PER_MU-1]映射的数据单位的大小以及其它因素。作为一实例,映射表305的条目中的每一者可指示具有基本数据单位大小的物理数据单位在存储器上的位置。然而,如下文所进一步描述,在一定数目个实施例中,映射表的条目可指示具有除基本数据单位大小之外的大小(举例来说,其可为基本数据单位大小的倍数)的物理数据单位在存储器上的位置。
映射单位303的第二部分307可包括指示映射单位303所属的映射单位群组的一定数目个其它映射单位在存储器上的位置的映射数据。作为一实例,第二部分307可为包括指向MU 303-i所属的特定映射单位群组的映射单位中的每一者(例如,在例如存储器 110等的存储器上)的位置的条目的映射表(例如,MU映射表)。如此,MU映射表307 条目包括物理映射单位地址PMUA[0]、PMUA[1]、PMUA[2]、...、PMUA[m-1],其中“m”可为128、256、512、2,048等。如下文所进一步描述,L2P映射301可包括各自为固定非重叠MU 303范围的一定数目个映射单位群组(MUG)。例如,如果每一MUG 包括512个MU 303,那么第一MUG可包括MU[0]-MU[511]且下一MUG可包括MU[512] -MU[1023],等等。
如本文中所进一步描述,在一定数目个实施例中,第二部分307可包含指示对应于MUG的相应MU的可变数据单位类型的数据。例如,表307的每一条目(例如,PMUA[0]、 PMUA[1]、PMUA[2]、...、PMUA[m-1])可包含指示对应于相应条目所映射到的特定MU 的可变数据单位类型的数据。
在一定数目个实施例中,可在维持由MUG映射的特定总空间量的同时以各种方式(例如,在第一部分305与第二部分307之间)分配对应于MU(例如,303)的总可用映射数据空间量。也就是说,可调整所述表大小使得表大小在MUG之间为不同的。作为一个实例,MU303-i可为映射2GB空间的特定MUG中的“m”个MU中的一者。对于此实例,假设表305的每一条目映射到等于基本数据单位大小4KB的物理数据单位。因此,如果表305中的条目的数目(例如,PA_PER_MU)为1024,那么MU 303-i映射4MB的空间(1024x 4KB)。如此,为了使MU 303-i所属的MUG映射2GB的空间,表307中的条目的数目(例如,“m”)必须为512(4MB x 512=2GB)。或者,PA_PER_MU可为128 使得MU 303-i映射512KB(128x 4KB)且“m”可为4096(512KBx 4096=2GB)。然而,实施例并不限于此实例。
图4图解说明根据本发明的一定数目个实施例的一定数目个映射单位群组。在一定数目个实施例中,可将L2P映射的MU组织成一定数目个MUG。图4图解说明包括一定数目个MUG 409-0(MUG[0])及409-1(MUG[1])的L2P映射401;然而,一定数目个实施例可包含两个以上MUG。图4的MU可类似于图3中所描述的MU 303。MUG 409 中的每一者包括一定数目个MU(例如,MU[0]、MU[1]、MU[2]、...、MU[i]...)。在一定数目个实施例中,所述MU中的每一者映射相同存储器空间量(例如,4MB、16MB、 128MB等)。然而,特定MUG(例如,409-0)的MU可映射与不同MUG(例如,409-1) 的MU不同的存储器空间量。在一定数目个实施例中,MUG 409中的每一者映射相同存储器空间量(例如,256MB、2GB、4GB等);然而,实施例并不受此限制。在一定数目个实施例中,每一MUG 409对应于特定逻辑地址范围,且对应于相应MUG 409的逻辑地址不重叠。如此,由MUG 409-0映射的逻辑地址空间不同于由MUG 409-1映射的逻辑地址空间。
如上文结合图3所描述,每一MUG 409的MU可在包括第一部分405及第二部分 407的映射数据空间中存储固定映射数据量。如图4中所展示,MUG 409-0的MU[2]包括第一部分405-0及第二部分407-0。类似地,MUG 409-1的MU[i]包括第一部分405-1 及第二部分407-1。第二部分407可为包括指向MUG 409的MU中的每一者在存储器上的位置的条目的MU映射表。表407还可指示对应于MUG 409的MU的可变数据单位类型。
在操作中,主机(例如,102)可发布与一定数目个逻辑地址相关联的写入命令。控制器(例如,108)可接收写入命令且可存取(例如,经由例如FTL 114等的FTL)对应于所述数目个逻辑地址的特定MU(其可存储于例如存储器110等的存储器上)。可将对应于写入命令的数据写入到存储器,且可更新MU的部分405的映射数据使得逻辑地址映射到新写入的数据在存储器上的位置。在一定数目个实施例中,还可更新MU的第二部分407 的映射数据(例如,在将MU写回到存储器之前)。如结合图10所进一步描述,维持第二部分407的最新映射数据可包含:确定MUG 409的MU中的当前最新一者(例如,最近写入到存储器的MU),及用对应于MUG的当前最新MU的第二部分407的最新指示符替换对应于正更新的MU的第二部分407的无效指示符。
图5图解说明根据本发明的一定数目个实施例与地址映射相关联的一定数目个映射单位(503-0、503-1、503-2、...、503-i、...)。如上文所描述,可在L2P映射501中将 MU503组织为一定数目个MUG,例如MUG 509。例如,图5的MU 503及MUG 509 可类似于结合先前各图所描述的MU及MUG。在此实例中,MUG 509包括MU 503-i (MU[i])以及一定数目个其它“相邻”MU 503。如图5中所展示,MU[i]包括:第一部分 505,其包括指示一定数目个物理数据单位在存储器510上的位置的映射数据;及第二部分507,其包括指示MU[i]所属的MUG509的一定数目个其它MU在存储器510上的位置的映射数据。在一定数目个实施例中,部分507的映射数据可指示在除存储器510 之外的存储器上(例如,在不同存储器装置及/或不同类型的存储器上)的位置。
例如,存储器510可包括一定数目个存储器装置,例如图1中所展示的存储器装置110-1到110-D。在图5中所展示的实例中,存储器510包括第一裸片(裸片0)及第二裸片(裸片1),每一裸片包括第一存储器单元平面(平面0)及第二存储器单元平面(平面1);然而,实施例并不限于与存储器510相关联的特定数目个裸片及/或平面。
例如,MU[i]的部分505可包括数据单位映射表。在图5中所展示的实例中,部分505包括具有条目PA[0]到[PA_PER_MU-1]的表,其中每一条目指示物理数据单位在存储器510上的位置(例如,指向所述物理数据单位)。例如,在此实例中,对应于相应表条目PA[0]、PA[1]及PA[2]的箭头511-0、511-1及511-2指向存储器510上的4KB物理数据单位。也就是说,部分505的每一表条目可指示数据单位在存储器510上的物理地址(PA)。如本文中所描述,部分505的表条目所指向的数据单位的大小由对应于MU[i] 的可变数据单位类型界定。
例如,MU[i]的部分507还可包括MU映射表。在图5中所展示的实例中,部分507 包括包含对应于MUG 509的每一相应MU的条目的表。在此实例中,对应于MUG 509 的MU的数目由索引“m”指示。如此,部分507的每一表条目指示MUG 509的“m”个MU中的特定一者在存储器510上的位置(例如,如由物理映射单位地址PMUA[0]到 PMUA[m-1]所指示)。
部分507的每一表条目还包含对应于其的属性数据,其指示所述条目所对应的MU的可变单位数据类型(TP)。例如,可变数据单位类型可界定对应MU的数据单位大小。作为一实例,TP=0可指示对应MU的数据单位大小等于基本数据单位大小(例如,一定数目个可变数据单位大小中的最小数据单位大小)。TP=1可指示对应MU的数据单位大小等于基本单位大小的两倍,且TP=2可指示对应MU的数据单位大小等于基本单位大小的四倍。在此实例中,基本数据单位大小为4KB。如上文所描述,在一定数目个实施例中,基本数据单位大小可小于对应于存储器(例如,510)的页大小(例如,其可为8KB)。如由表条目513-i所指示,MU[i]具有为0的对应可变数据单位类型(例如,TP=0),这由如下事实反映:部分505的表条目指向存储器510上的4KB数据单位(例如,如箭头 511-0、511-1及511-2所指示)。实施例并不限于此实例。
图6A-6B图解说明根据本发明的一定数目个实施例与地址映射相关联的一定数目个映射单位(603-0、603-1、603-2、...、603-i、...)。如上文所描述,可在L2P映射601中将MU 603组织为一定数目个MUG,例如MUG 609。例如,图6A-6B的MU 603及MUG 609 可类似于结合先前各图所描述的MU及MUG。在此实例中,MUG 609包括MU 603-i (MU[i])以及一定数目个其它“相邻”MU 603(例如,MU 603-i所属的MUG 609的其它 MU 603)。如图6A-6B中所展示,MU[i]包括:第一部分605-i,其包括指示一定数目个物理数据单位在存储器610上的位置的映射数据;及第二部分607-i,其包括指示MU[i]所属的MUG 609的一定数目个其它MU在存储器610上的位置的映射数据。在一定数目个实施例中,部分607-i的映射数据可指示在除存储器610之外的存储器上(例如,在不同存储器装置及/或不同类型的存储器上)的位置。
例如,存储器610可包括一定数目个存储器装置,例如图1中所展示的存储器装置610-1到610-D。在图6A-6B中所展示的实例中,存储器610包括第一裸片(裸片0)及第二裸片(裸片1),每一裸片包括第一存储器单元平面(平面0)及第二存储器单元平面(平面1);然而,实施例并不限于与存储器610相关联的特定数目个裸片及/或平面。
MU[i]的部分605-i可包括固定空间量。在一定数目个实施例中,用于指示对应于MU的数据单位的位置(例如,物理地址)的空间605-i的量(例如,数据单位映射表的大小)可小于对应于部分605-i的可用空间量。在图6A-6B中所展示的实例中,可用空间605-i 的一部分包括指示对应于MU[i]的具有由对应于MU[i]的可变数据单位类型界定的大小的数据单位的物理位置的数据单位映射表615-i。空间615-i的量可取决于对应于MU[i] 的可变数据单位类型。如下文所进一步描述,在此实例中,对应于MU[i]的可变数据单位类型为TP=1,其可指示对应于MU[i]的数据单位大小(例如,8KB)是基本数据单位大小(例如,4KB)的两倍。如此,表615-i中存在多达在对应于MU[i]的可变数据单位类型为TP=0的情况下的一半的条目。也就是说,由于对应于MU[i]的数据单位的大小是基本数据单位大小的两倍大,因此使用多达一半的对应于部分615-i的表条目便能映射相同逻辑空间量。因此,如果PA_PER_MU指示在假定基本数据单位大小的情况下表615-i 中的条目的数目,那么PA_PER_MU/2则是在假定对应于MU[i]的数据单位大小为基本数据单位大小两倍的情况下表615-i中的表条目的数目。如此,图6A-6B中所展示的表615-i 包含条目PA[0]到PA[PA_PER_MU/2],且所述条目中的每一者指向存储器610上的8KB 数据单位(例如,如箭头611-i所指示)。
如图6A-6B中所展示,在一定数目个实施例中,对应于MU(例如,MU[i])的可变数据单位类型可使得用于对应于具有由可变数据单位类型界定的大小的数据单位的映射数据的空间(例如,615-i)量小于可用空间(例如,605-i)量。在此类实施例中,可用空间(605-i)的至少一部分(例如,625-i)可提供指向对应于MU的具有除由可变数据单位类型界定的大小之外的大小的数据单位的指示符。例如,部分625-i可包括例如树(例如,散列树、 b树等)的数据结构,举例来说,所述数据结构维持与对由MU[i]映射的逻辑空间的改写相关联的映射更新(例如,由于可变/不规则的主机I/O工作负载)。例如,可给由主机起始且与对应于MU[i]的逻辑地址范围相关联的一或多个4KB写入操作穿插对对应于 MU[i]的相同逻辑地址范围的数个8KB写入操作。并非由于4KB写入而调整对应于MU[i] 的当前8KB数据单位大小,而是可使用部分625-i来指示较小4KB数据单位在存储器 610上的位置(例如,如图6A-6B中的箭头619-i所指示)。由于与部分625-i相关联的有限空间量,在一定数目个实施例中,可响应于主机I/O工作负载而调整可变数据单位类型。例如,如果与对对应于MU[i]的逻辑地址范围的改写相关联的更新的数目使得可用更新空间625-i变得被填满,那么可调整可变数据单位类型(例如,从TP=1改变为TP=0)。
MU[i]的部分607-i可包括例如具有指示对应于MUG 609的相应MU 603的位置的条目的MU映射表。MU映射表607-i的条目还可指示对应于相应MU的可变数据单位类型(TP)。在此实例中,对应于MUG 609的MU的数目由索引“m”指示。如此,部分 607-i的每一表条目指示MUG 609的“m”个MU中的特定一者在存储器610上的位置(例如,如物理映射单位地址PMUA[0]到PMUA[m-1]所指示)。
如图6A-6B中所展示,对应于MU[i]的条目613-i指示可变数据单位类型TP=1,在此实例中,其指示由部分615-i映射的数据单位大小是基本数据单位大小4KB的两倍。如此,在此实例中,可变数据单位类型TP=1还指示使用空间605-i的一半(例如,615-i)来映射8KB数据单位,且使用空间605-i的一半(例如,625-i)来映射与对对应MU[i]的逻辑地址的改写相关联的数据单位(例如,4KB数据单位)。
图6A-6B中所展示的MU[j]603-j与MU[i]603-i在同一MUG 609内。如此,MU[i]的部分607-i包括条目613-j,其指示(经由箭头617-j所表示的PMUA[j])MU[j]在存储器610 上的物理位置以及对应于MU[j]的可变数据单位类型(例如,TP=3)。在此实例中,TP=3 指示对应于MU[j]的数据单位大小为32KB(例如,是基本数据单位大小4KB的八倍)。由于对应于MU[j]的数据单位大是基本数据单位大小的八倍,因此映射由MU[j]映射的逻辑空间量所需的MU映射表615-j中的条目少至在对应于MU[j]的数据大小为基本数据单位大小的情况下的八分之一。如此,部分615-j包括条目PA[0]到 PA[PA_PER_MU/8],其提供指向32KB数据单位在存储器610上的位置的指示符(例如,如箭头611-j所指示)。因此,可用于映射到具有由对应于MU[j]的可变数据单位类型界定的大小的数据单位的空间605-j的7/8是未用的。
如上文所描述,部分625-j可包括例如散列树及/或b树的数据结构,例如,其可提供指向对应于MU[j]的具有除由可变数据单位类型界定的大小之外的大小(例如,小于32KB的大小,例如等于基本数据单位大小的大小)的数据单位的指示符。在此实例中,部分625-j提供到存储器610上的4KB数据单位的指示符(例如,如箭头619-j所表示)。部分625-j的映射数据(例如,树条目)可对应于对由MU[j]映射的逻辑地址空间的改写(例如,在此实例中,为对应于小于数据单位大小32KB的逻辑空间量的主机起始的改写)。
出于一定数目个原因,调整MUG的一或多个MU(例如,603)的特定可变数据单位类型(例如,以降低经分裂及/或未对准写入的可能性、维持准确映射数据等)是有用的。例如,如果主机发布一定数目个相对小的写入命令(例如对特定MU的逻辑地址空间的一定数目个4KB元数据写入),且由MU的特定可变数据单位类型界定的数据单位大小大于4KB写入大小,那么可用于维持更新的空间(例如,625-i)可达到及/或超过容量。如此,可将MU的特定可变数据单位类型调整到不同数据单位类型(例如,界定较小数据单位大小的数据单位类型)。在一定数目个实施例中,特定可变数据单位类型可经调整使得特定MU的经界定数据单位大小被增加。例如,如果主机发布对具有经界定数据单位大小4KB(例如,TP=0)的特定MU的逻辑地址空间的一定数目个32KB写入,那么将 MU的经界定数据单位大小增加到例如32KB(例如,TP=3)可为有益的。增加MU的数据单位大小可提供若干益处,例如减少数据单位映射表(例如,615-i)的映射数据空间(例如,605-i)量,这会增加可用于对MU的逻辑地址空间的映射改写的空间(例如,625-i)。
在一定数目个实施例中,映射单位管理组件(例如,图1中所展示的MU管理116) 可监视(例如,追踪)主机(例如,主机102)的I/O工作负载。例如,MU管理组件可追踪传入写入命令以及其所对应的MU及/或MUG的大小(例如,基于对应于写入命令的逻辑地址)。举例来说,MU管理组件可使用所监视信息来确定各种MU的可变数据单位类型及/或是否将调整对应于其的可变数据单位类型。
如此,本发明的一定数目个实施例提供调整MU的可变数据单位类型的能力。调整可变数据单位类型可通过提供可由例如FTL(例如,图1中所展示的FTL 114)实施且可适于考虑到主机I/O工作负载可变性及/或不规则性的灵活地址映射方案而提供各种益处,以及其它益处。
图7图解说明根据本发明的一定数目个实施例与地址映射相关联的一定数目个映射单位(703-0、703-1、703-2、...、703-i、...)。如上文所描述,可在L2P映射701中将 MU703组织为一定数目个MUG,例如MUG 709。例如,图7的MU 703及MUG 709 可类似于结合先前各图所描述的MU及MUG。在此实例中,MUG 709包括MU 703-i (MU[i])以及一定数目个其它“相邻”MU 703(例如,MU 703-i所属的MUG 709的其它 MU 703)。如图7中所展示,MU[i]包括:第一部分705-i,其包括指示一定数目个物理数据单位在存储器710上的位置的数据单位映射表715-i;及第二部分707,其包括指示 MU[i]所属的MUG 709的一定数目个其它MU在存储器710上的位置的MU映射表。
如上文所描述,MU[i]的部分705-i可包括固定空间量。在一定数目个实施例中,映射表705-i的一定量用于指示具有由对应于MU[i]的可变数据单位类型界定的大小的数据单位的位置(例如,物理地址)。空间715-i的量可取决于对应于MU[i]的可变数据单位类型。
在此实例中,如MU表707的条目713-i所指示,对应于MU[i]的可变数据单位类型为TP=1,这可指示对应于MU[i]的数据单位大小是基本数据单位大小(例如,4KB)的两倍。也就是说,由TP=1界定的数据单位大小是8KB。如此,数据单位映射表715-i 中存在多达在对应于MU[i]的可变数据单位类型为TP=0(其中TP=0对应于等于基本数据单位大小(例如,在此实例中,为4KB)的经界定可变数据单位大小)的情况下的一半的条目。也就是说,由于对应于MU[i]的数据单位的大小是基本数据单位大小的两倍多,因此使用多达一半的对应于部分715-i的表条目便能映射由MU[i](在此实例中,为4MB) 映射的相同逻辑空间量。因此,如果PA_PER_MU指示在假定基本数据单位大小的情况下表715-i中的条目的数目,那么PA_PER_MU/2则是在假定对应于MU[i]的数据单位大小为基本数据单位大小的两倍的情况下表715-i中的表条目的数目。如此,图7中所展示的表715-i包含条目PA[0]到PA[PA_PER_MU/2]且虽然图7中未展示,但条目中的每一者指向存储器(例如,存储器710)上的8KB数据单位。
由于对应于MU[i]的可变数据单位类型(例如,TP=1)使得数据单位映射表715-i的大小小于可用空间705-i的量,因此可用空间705-i的一部分725-i可包括例如树(例如,散列树、b树等)的数据结构,举例来说,所述数据结构维持与对由MU[i]映射的逻辑空间的改写相关联的映射更新(例如,由于主机I/O工作负载可变性/不规则性)。
MU[i]的部分707可包括例如具有指示对应于MUG 709的相应MU 703的位置的条目的MU映射表。MU映射表707的条目还可指示对应于相应MU的可变数据单位类型 (TP)。在此实例中,对应于MUG 709的MU 703的数目由索引“m”指示。在一定数目个实施例中,对应于MUG 709的一定数目个MU 703可为直接数据单位(DDU)MU。如本文中所使用,DDU MU可指代其对应数据单位大小等于由特定MU(例如,703-j)所属的MUG(例如,709)的相应MU(例如,703)中的每一者映射的数据量的MU(例如,703-j)。
例如,如果MU 703中的每一者映射4MB的数据,那么DDU MU(例如,703-j)映射到存储器上的单个4MB物理数据单位,其称为DDU。在图7中,对应于MU[j]的映射条目713-j提供直接指向由MU[j]映射的4MB数据单位在存储器710上的位置的指示符(由箭头721-j表示)。也就是说,PMUA[j]直接指向对应于DDU MU[j]的DDU。在一定数目个实施例中,对应于DDUMU的可变数据单位类型为TP=A(其中“A”可为十六进制数)。如此,条目713-j包含包括TP=A的属性数据,如图7中所展示。由于PMUA[j] 直接指向对应于MU[j]的DDU而非指向MU[j]703-j在存储器710上的位置,因此为了确定对应于MU[j]的数据单位的位置并不需要将MU[j]存储于存储器710上及进行存取。如此,例如,一或多个DDU MU的存在可减少所存储MU的总数目。
图8图解说明根据本发明的一定数目个实施例与地址映射相关联的一定数目个映射单位(803-0、803-1、803-2、...、803-i、...)。在L2P映射801中将MU 803组织为包含 MUG809的一定数目个MUG。例如,图8的MU 803及MUG 809可类似于结合先前各图所描述的MU及MUG。在此实例中,MUG 809包括MU 803-i(MU[i])以及MU 803-i 所属的MUG 809的其它MU803(包含MU[j])。
在一定数目个实施例中,且如8图中所展示,MUG(例如,MUG 809)可包括所有 DDUMU,例如结合图7所描述的DDU MU[j]。例如,MUG 809的MU 803中的每一者为DDU MU。在本文中所描述的实例中,对应于DDU MU的可变数据单位类型为TP=A。在此类实例中,TP=A将数据单位大小界定为等于由MUG的MU映射的数据量,在此实例中,其为4MB。由于MUG 809的MU803中的每一者均为DDU MU,因此MU映射表807中的条目(例如,813-i、813-j等)中的每一者包含指示对应于相应MU 803的4MB 数据单位在存储器810上的位置的物理映射单位地址(例如,PMUA[0]到PMUA[m-1])。例如,如箭头821-i所指示,PMUA[i]指向对应于MU[i]的4MB数据单位,且如箭头821-j 所指示,PMUA[j]指向对应于MU[j]的4MB数据单位。
在其中MUG仅包含DDU MU的实施例中,可省略为数据单位映射表(例如,图7 中所展示的映射表715-i)分配的空间量。如此,原本将为数据单位映射表分配的空间可用于其它目的。例如,在图8中所图解说明的实施例中,MU[i]的部分805-i用于维持与对由MUG 809映射的逻辑空间的改写相关联的映射更新。举例来说,部分805-i可包括例如树(例如,散列树、b树等)的数据结构以维持对应于MUG 809的映射更新。如图8 中所展示,部分805-i的数据结构的条目提供到存储器810上的数据单位的指示符(例如,如箭头819所指示)。在此实例中,箭头819指向具有等于基本数据单位大小(例如,4KB) 的大小的数据单位;然而,实施例并不受此限制。
例如,与部分805-i相关联的数据结构可类似于与图7中所描述的部分725-i及图6A-6B中所描述的625-i相关联的数据结构。然而,部分805-i的数据结构可用于维持对应于跨越由MUG映射的整个逻辑地址空间的逻辑地址的更新(例如,而非维持对应于跨越由 MUG内的特定MU映射的地址空间的逻辑地址的更新)。
图9图解说明根据本发明的一定数目个实施例与地址映射相关联的一定数目个映射单位(903-0、903-1、903-2、...、903-i、...)。在L2P映射901中将MU 903组织为包含 MUG909的一定数目个MUG。例如,图9的MU 903及MUG 909可类似于结合先前各图所描述的MU及MUG。在此实例中,MUG 909包括MU 903-i(MU[i])以及MU 903-i 所属的MUG 909的其它MU903。
MU 903-i为DDU MU,例如结合图8所描述的DDU MU 803-i。例如,由MU 903-i 的可变数据单位类型界定的数据单位大小等于由MU 903-i映射的总数据量(例如, 4MB)。然而,MU 903-i具有不同于MU 803-i的可变数据单位类型。在图9中所展示的实例中,对应于MU903-i的可变数据单位类型为TP=F(而非TP=A)。如本文中所使用,具有可变数据单位类型TP=F的MU将称为“包DDU”MU。
包DDU MU 903-i包含包括第一部分905-i及第二部分907的映射数据。第二部分907可类似于MU 803-i的第二部分807。也就是说,部分907可包括对应于MUG 909 的MU 903的MU映射表。然而,第一部分905-i包括与包DDU MU 903-i相关联的管理信息(例如,而非如上文所描述用于维持更新的数据单位映射表及/或树状数据结构)。所述管理信息可包含各种信息,在此实例中,其包含媒体类型信息及位置信息(例如,如图9中所展示的PA[n][m])。例如,所述媒体类型信息可指示对应于MU 903-i的物理数据单位所映射到的特定类型的媒体,且所述位置信息可指示物理数据单位在所述特定类型的媒体上的物理地址。
作为一实例,可向各种类型的媒体写入及/或从其检索例如MU 903-i等的包DDUMU,所述媒体例如为快闪存储器(例如,MLC、SLC等)、DRAM、电阻可变存储器(例如,相变存储器、RRAM等)、存储区域网络(SAN)及/或网络附接存储(NAS)以及其它媒体类型。如此,虽然本文中所提供的各种实例是根据基于快闪页的框架,但在各种实施例中,可在基于快闪页的框架之外管理L2P映射(例如,901)的MU。作为一实例,可使用与一或多个不同媒体类型933、935、937、939及/或931相关联的代理组件931(例如,代理处理器)来管理MU。
图10图解说明根据本发明的一定数目个实施例与更新映射单位相关联的功能流程图。在一定数目个实施例中,可将例如本文中所描述的MU等的MU存储于存储器中且视情况对其进行无用单元收集。例如,可将MU存储于存储器的专用区中。如本文中所描述,MU可包括可指示特定MUG的MU在存储器上的位置的映射单位表(例如,307、 407、507、607、707、807、907)。在一定数目个实施例中,MUG的MU中的最近经写入的一者包含群组的当前最新MU表。如此,最近经写入的MU(例如,最后一个接收到对其L2P映射的更新的MU)是当前最新MU且包含指向MUG的MU的物理位置的最新指示符。例如,MUG的当前最新MU的指示可由控制器维持。
在图10中,MU[i]1003-i表示当前最新MU。如此,MU 1003-i包含当前最新映射表1007-i。MU[j]1003-j表示将要更新且随后写入到存储器的MU。例如,可需要响应于主机起始的写入操作而更新与MU 1003-j的数据单位表1005-j相关联的条目。由于 MU 1003-j并非当前最新MU,因此其MU表1007-j含有无效指示符(例如,MU表1007-j 为过时的)。在更新MU 1003-j的数据单位表1005-j之后,其将被写回到存储器且将变为新的当前最新MU(例如,具有当前最新MU映射表的MU)。
如此,在将MU 1003-j写回到存储器之前,用当前最新MU映射表1007-i替换其 MU映射表1007-j。如在图10的右侧上所展示,新MU[j]1003-j包含经更新数据单位映射表(例如,PA[])及当前最新存储器单位映射表(例如,PMUA[])。新MU[j]1003-j现在含有当前最新MU映射表1007-j,其可用于替换将更新及重写到存储器的下一MU的过时MU表。
结论
本发明包含用于地址映射的方法、存储器单位及设备。一种方法包含提供具有对应于一定数目个逻辑地址的逻辑到物理映射数据的映射单位。所述映射单位具有与其相关联的可变数据单位类型,且包括:第一部分,其包括指示具有由所述可变数据单位类型界定的大小的一定数目个物理数据单位在存储器上的位置的映射数据;及第二部分,其包括至少所述映射单位所属的映射单位群组的一定数目个其它映射单位在所述存储器上的位置的映射数据。
如本文中所使用,术语“及/或”包含相关联所列举物项中的一定数目个物项的任何及所有组合。如本文中所使用,除非另有说明,否则术语“或(or)”意指在逻辑上包含或。也就是说,“A或B”可包含(仅A)、(仅B)或(A及B两者)。换句话说,“A或B”可意指“A及/或B”或“一定数目个A及B”。
虽然本文中已图解说明及描述了特定实施例,但所属领域的技术人员将了解,旨在实现相同结果的布置可替代所展示的特定实施例。本发明打算涵盖本发明的一定数目个实施例的改动或变化形式。应理解,以上描述是以说明性方式而非限定性方式做出的。在审阅以上描述后,所属领域的技术人员将明了以上实施例的组合及本文中未具体描述的其它实施例。本发明的一定数目个实施例的范围包含其中使用上文结构及方法的其它应用。因此,应参考所附权利要求书连同授权此权利要求书的等效内容的全部范围来确定本发明的一定数目个实施例的范围。
在前述具体实施方式中,出于简化本发明的目的,将一些特征一起集合于单个实施例中。本发明的此方法不应解释为反映本发明的所揭示实施例必须使用比明确陈述于每一权利要求中更多的特征的意图。而是,如随附权利要求书反映:发明性标的物在于少于单个所揭示实施例的所有特征。因此,特此将所附权利要求书并入到具体实施方式中,其中每一权利要求独立地作为单独实施例。
Claims (22)
1.一种用于地址映射的方法,其包括:
提供具有对应于一定数目个逻辑地址的逻辑到物理映射数据的映射单位(303;503;603;703;803;903;1003),所述映射单位具有与其相关联的数据单位类型,且包括:
第一部分(305;405;505;605;705;805;905;1005),其包括映射数据,所述映射数据包括各自对应于存储于存储器(110;510;610;710;810)上的特定物理数据量的一定数目个逻辑到物理映射条目,其中逻辑到物理映射条目的所述数目取决于由所述数据单位类型界定的数据单位大小;
其中至少一个数据单位类型对应于小于对应于所述映射数据所映射的存储器装置的物理页大小的第一特定物理数据量;及
其中至少一个数据单位类型对应于大于对应于所述映射数据所映射的存储器装置的物理页大小的第二特定物理数据量;及
第二部分(307;407;507;607;707;807;907;1007),其包括指示所述映射单位所属的映射单位群组(409;509;609;709;809;909)的一定数目个其它映射单位(303;503;603;703;803;903;1003)在所述存储器(110;510;610;710;810)上的位置的映射数据;
其中所述数据单位类型界定所述数目个逻辑到物理映射条目所对应的所述特定物理数据量,且其中所述数据单位类型是可变的使得所述数目个逻辑到物理映射条目所对应的所述特定物理数据量是可变的;以及
其中所述映射单位不包括所述数目个逻辑到物理映射条目所对应的用户数据。
2.根据权利要求1所述的方法,其中所述方法包含响应于对应于所述数目个逻辑地址中的一或多者的所述逻辑到物理映射数据的改变而更新所述映射单位(303;503;603;703;803;903;1003)。
3.根据权利要求1所述的方法,其中所述方法包含监视主机(102)输入/输出I/O工作负载并至少部分地基于所述主机(102)I/O工作负载而调整与所述映射单位(303;503;603;703;803;903;1003)相关联的所述数据单位大小。
4.根据权利要求3所述的方法,其中调整与所述映射单位相关联的所述数据单位大小包含调整对应于所述第一部分(305;405;505;605;705;805;905;1005)的所述数目个逻辑到物理映射条目的数量。
5.根据权利要求1所述的方法,其中所述方法包含提供一定数目个映射单位群组(409;509;609;709;809;909),其中所述数目个映射单位群组(409;509;609;709;809;909)中的每一者包括相同数目个映射单位(303;503;603;703;803;903;1003)。
6.根据权利要求5所述的方法,其包含提供所述数目个映射单位群组(409;509;609;709;809;909),使得各个映射单位对应于相同数目个非重叠逻辑地址。
7.根据权利要求1所述的方法,其中所述方法进一步包括给所述第二部分(307;407;507;607;707;807;907;1007)提供指示与所述映射单位群组(409;509;609;709;809;909)的所述映射单位(303;503;603;703;803;903;1003)相关联的所述数据单位类型的属性数据。
8.根据权利要求1所述的方法,其中所述方法包含:
如果所述数据单位类型使得用于对应于所述第一部分(305;405;505;605;705;805;905;1005)的所述映射数据的空间量小于固定空间量,那么使用所述固定空间量的至少一部分(625;725)来提供指向具有除由所述数据单位类型界定的所述大小之外的大小的物理数据量的指示符(619)。
9.一种用于地址映射的方法,其包括:
在存储器(110;510;610;710;810)上存储一定数目个映射单位(303;503;603;703;803;903;1003),其中所述数目个映射单位各自包含对应于一定数目个逻辑地址的逻辑到物理映射数据及与其相关联的数据单位类型,且其中所述数目个映射单位(303;503;603;703;803;903;1003)中的每一相应者包括:
第一部分(305;405;505;605;705;805;905;1005),其包括映射数据,所述映射数据包括各自对应于存储于所述存储器(110;510;610;710;810)上的特定物理数据量的一定数目个逻辑到物理映射条目,其中逻辑到物理映射条目的所述数目取决于由所述数据单位类型界定的数据单位大小;
其中至少一个数据单位类型对应于小于对应于所述映射数据所映射的存储器装置的物理页大小的第一特定物理数据量;及
其中至少一个数据单位类型对应于大于对应于所述映射数据所映射的存储器装置的物理页大小的第二特定物理数据量;及
第二部分(307;407;507;607;707;807;907;1007),其包括指示所述数目个映射单位中的所述相应一者所属的映射单位群组(409;509;609;709;809;909)的一定数目个其它映射单位(303;503;603;703;803;903;1003)在所述存储器上的位置的映射数据;及
基于与写入命令相关联且对应于存储于所述存储器(110;510;610;710;810)上的所述数目个映射单位(303;503;603;703;803;903;1003)中的特定一者的逻辑地址而存取所述数目个映射单位中的所述特定一者;
其中所述数据单位类型界定所述数目个逻辑到物理映射条目所对应的所述特定物理数据量,且其中所述数据单位类型是可变的使得所述数目个逻辑到物理映射条目所对应的所述特定物理数据量是可变的。
10.根据权利要求9所述的方法,其中所述方法包含确定对应于所述数目个映射单位(303;503;603;703;803;903;1003)中的所述特定一者的当前数据单位类型,其中所述当前数据单位类型指示由所述数目个映射单位中的所述特定一者映射的所述特定物理数据量。
11.根据权利要求10所述的方法,其中所述方法包含在以下操作之前更新所述数目个映射单位(303;503;603;703;803;903;1003)中的所存取特定一者:将经更新特定映射单位(303;503;603;703;803;903;1003)写入到所述存储器(110;510;610;710;810),且其中更新所述数目个映射单位中的所述所存取特定一者包括:
确定所述映射单位中的所述所存取特定一者所属的映射单位群组(409;509;609;709;809;909)的最近经更新映射单位(303;503;603;703;803;903;1003);及
用对应于所述最近经更新映射单位的所述第二部分(307;407;507;607;707;807;907;1007)的所述映射数据来替换对应于所述映射单位(303;503;603;703;803;903;1003)中的所述所存取特定一者的所述第二部分(307;407;507;607;707;807;907;1007)的所述映射数据,使得所述经更新特定映射单位(303;503;603;703;803;903;1003)变为所述映射单位群组(409;509;609;709;809;909)的所述最近经更新映射单位。
12.根据权利要求9所述的方法,其中每一映射单位(303;503;603;703;803;903;1003)的所述第一部分(305;405;505;605;705;805;905;1005)包括固定空间量,且其中所述方法包含分配所述固定空间量的至少一部分(625;725)来用于指示小于或大于由所述数据单位类型界定的所述特定物理数据量的物理数据量的位置。
13.根据权利要求9所述的方法,其中所述第二部分(307;407;507;607;707;807;907;1007)包括具有一定数目个条目的映射表,每一条目对应于所述映射单位群组(409;509;609;709;809;909)的所述数目个映射单位(303;503;603;703;803;903;1003)中的相应一者,且其中所述数目个条目(713;813)中的至少一者提供直接指向物理数据量在所述存储器(110;510;610;710;810)上的位置而非指示映射单位(303;503;603;703;803;903;1003)在所述存储器(110;510;610;710;810)上的位置的指示符(721;821)。
14.一种用于地址映射的设备,其包括:
存储器(110;510;610;710;810),其存储一定数目个映射单位(303;503;603;703;803;903;1003),每一映射单位具有一定数目个不同数据单位类型中与其相关联的数据单位类型,所述数据单位类型界定由相应映射单位(303;503;603;703;803;903;1003)映射的数据单位大小;及
控制器(108),其耦合到所述存储器(110;510;610;710;810)且经配置以:
基于与从主机(102)接收的写入命令相关联的逻辑地址而存取特定映射单位(303;503;603;703;803;903;1003);及
更新所述特定映射单位(303;503;603;703;803;903;1003)的一部分(305;405;505;605;705;805;905;1005),所述部分(305;405;505;605;705;805;905;1005)包括映射数据,所述映射数据包括各自对应于存储于所述存储器(110;510;610;710;810)上的特定物理数据量的一定数目个逻辑到物理映射条目,其中逻辑到物理映射条目的所述数目取决于由所述特定映射单位(303;503;603;703;803;903;1003)的所述数据单位类型界定的所述大小;
其中至少一个数据单位类型对应于小于对应于所述映射数据所映射的存储器装置的物理页大小的第一特定物理数据量;及
其中至少一个数据单位类型对应于大于对应于所述映射数据所映射的存储器装置的物理页大小的第二特定物理数据量;
其中所述数据单位类型界定所述数目个逻辑到物理映射条目所对应的所述特定物理数据量,且其中所述数据单位类型是可变的使得所述数目个逻辑到物理映射条目所对应的所述特定物理数据量是可变的;以及
其中所述特定映射单位不包括所述数目个逻辑到物理映射条目所对应的用户数据。
15.根据权利要求14所述的设备,其中所述特定映射单位(303;503;603;703;803;903;1003)包括另一部分(307;407;507;607;707;807;907;1007),所述另一部分包括指示所述特定映射单位(303;503;603;703;803;903;1003)所属的映射单位群组(409;509;609;709;809;909)的一定数目个映射单位中的每一者在所述存储器(110;510;610;710;810)上的位置的映射数据。
16.根据权利要求15所述的设备,其中所述另一部分(307;407;507;607;707;807;907;1007)的所述映射数据包括映射单位表,且其中所述控制器经配置以通过用所述映射单位群组(409;509;609;709;809;909)的另一映射单位(303;503;603;703;803;903;1003)的当前最新映射单位表替换所述映射单位表来更新所述映射单位表。
17.根据权利要求16所述的设备,其中所述控制器经配置以:
在用所述另一映射单位(303;503;603;703;803;903;1003)的所述当前最新映射单位表替换所述映射单位表之后,将所述特定映射单位(303;503;603;703;803;903;1003)写入到存储器(110;510;610;710;810);及
随后通过存取所述特定映射单位(303;503;603;703;803;903;1003)的经替换映射单位表来确定所述映射单位群组(409;509;609;709;809;909)的不同映射单位(303;503;603;703;803;903;1003)在所述存储器(110;510;610;710;810)上的位置。
18.根据权利要求14所述的设备,其中:
所述数目个映射单位(303;503;603;703;803;903;1003)被组织成一定数目个映射单位群组(409;509;609;709;809;909);且
所述映射单位群组(409;509;609;709;809;909)中的至少一者的映射单位(303;503;603;703;803;903;1003)的至少一部分(805)用于维持与对由所述映射单位群组(409;509;609;709;809;909)中的所述至少一者映射的逻辑空间的改写相关联的映射更新。
19.一种用于地址映射的设备,其包括:
存储器(110;510;610;710;810),其存储各自具有相关联数据单位类型的一定数目个映射单位(303;503;603;703;803;903;1003);及
存储器单位管理组件(116),其经配置以:
监视主机(102)的输入/输出I/O工作负载;及
基于所述主机(102)的所述I/O工作负载而确定是否将调整所述数目个映射单位(303;503;603;703;803;903;1003)中的至少一者的所述数据单位类型;
其中每一相应映射单位(303;503;603;703;803;903;1003)包括一部分(305;405;505;605;705;805;905;1005),所述部分包括映射数据,所述映射数据包括各自对应于存储于所述存储器(110;510;610;710;810)上的特定物理数据量的一定数目个逻辑到物理映射条目,其中逻辑到物理映射条目的所述数目取决于由所述数据单位类型界定的数据单位大小;
其中所述数据单位类型界定所述数目个逻辑到物理映射条目所对应的所述特定物理数据量,且其中所述数据单位类型是可变的使得所述数目个逻辑到物理映射条目所对应的所述特定物理数据量是可变的;
其中至少一个数据单位类型对应于小于对应于所述映射数据所映射的存储器装置的物理页大小的第一特定物理数据量;及
其中至少一个数据单位类型对应于大于对应于所述映射数据所映射的存储器装置的物理页大小的第二特定物理数据量。
20.根据权利要求19所述的设备,其中存储器单位管理组件经配置以监视主机(102)的输入/输出I/O工作负载包括存储器单位管理组件(116)经配置以追踪对应于由所述数目个映射单位(303;503;603;703;803;903;1003)中的每一者映射的逻辑地址的写入命令的大小。
21.根据权利要求19所述的设备,其进一步包括控制器(108),所述控制器(108)经配置以:
从所述存储器(110;510;610;710;810)检索所述数目个映射单位(303;503;603;703;803;903;1003)中的特定一者;
更新所述数目个映射单位(303;503;603;703;803;903;1003)中的所述特定一者的数据单位映射表(305;405;505;605;705;805;905;1005);及
在将所述数目个映射单位(303;503;603;703;803;903;1003)中的所述特定一者写回到所述存储器(110;510;610;710;810)之前,更新所述数目个映射单位(303;503;603;703;803;903;1003)中的所述特定一者的存储器单位映射表(307;407;507;607;707;807;907;1007)。
22.一种用于地址映射的设备,其包括:
存储器(110;510;610;710;810);及
映射单位(303;503;603;703;803;903;1003),其存储于所述存储器(110;510;610;710;810)中,所述映射单位具有与其相关联的数据单位类型且包括固定可用存储空间量,其中所述固定可用存储空间量包括:
第一部分(305;405;505;605;705;805;905;1005),其包括映射数据,所述映射数据包括各自对应于存储于所述存储器(110;510;610;710;810)上的特定物理数据量的一定数目个逻辑到物理映射条目,其中逻辑到物理映射条目的所述数目取决于由所述数据单位类型界定的数据单位大小;
其中至少一个数据单位类型对应于小于对应于所述映射数据所映射的存储器装置的物理页大小的第一特定物理数据量;及
其中至少一个数据单位类型对应于大于对应于所述映射数据所映射的存储器装置的物理页大小的第二特定物理数据量;及
第二部分(307;407;507;607;707;807;907;1007),其包括对应于所述映射单位(303;503;603;703;803;903;1003)且对应于所述映射单位所属的映射单位群组(409;509;609;709;809;909)的一定数目个其它映射单位(303;503;603;703;803;903;1003)中的每一者的映射数据,所述映射数据包括:
对应于所述映射单位(303;503;603;703;803;903;1003)及所述映射单位群组(409;509;609;709;809;909)的所述数目个其它映射单位(303;503;603;703;803;903;1003)中的每一者在所述存储器(110;510;610;710;810)上的位置的地址;及
指示所述映射单位(303;503;603;703;803;903;1003)及所述映射单位群组(409;509;609;709;809;909)的所述其它映射单位(303;503;603;703;803;903;1003)中的每一者的所述数据单位类型的属性数据;
其中所述数据单位类型界定所述数目个逻辑到物理映射条目所对应的所述特定物理数据量,且其中所述数据单位类型是可变的使得所述数目个逻辑到物理映射条目所对应的所述特定物理数据量是可变的;以及
其中所述映射单位不包括所述数目个逻辑到物理映射条目所对应的用户数据。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/616,175 US10282286B2 (en) | 2012-09-14 | 2012-09-14 | Address mapping using a data unit type that is variable |
US13/616,175 | 2012-09-14 | ||
PCT/US2013/059645 WO2014043459A1 (en) | 2012-09-14 | 2013-09-13 | Address mapping |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104641356A CN104641356A (zh) | 2015-05-20 |
CN104641356B true CN104641356B (zh) | 2018-07-13 |
Family
ID=50275726
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380048147.1A Active CN104641356B (zh) | 2012-09-14 | 2013-09-13 | 地址映射 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10282286B2 (zh) |
EP (1) | EP2895958B1 (zh) |
JP (1) | JP6109316B2 (zh) |
KR (1) | KR101852668B1 (zh) |
CN (1) | CN104641356B (zh) |
WO (1) | WO2014043459A1 (zh) |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9417803B2 (en) | 2011-09-20 | 2016-08-16 | Apple Inc. | Adaptive mapping of logical addresses to memory devices in solid state drives |
KR101979735B1 (ko) * | 2012-11-02 | 2019-05-17 | 삼성전자 주식회사 | 비휘발성 메모리 시스템 및 이와 통신하는 호스트 |
KR20160070920A (ko) * | 2014-12-10 | 2016-06-21 | 에스케이하이닉스 주식회사 | 맵 테이블을 갖는 컨트롤러 및 반도체 메모리 장치를 포함하는 메모리 시스템 및 그것의 동작 방법 |
TWI575374B (zh) * | 2015-08-04 | 2017-03-21 | 群聯電子股份有限公司 | 映射表格更新方法、記憶體儲存裝置及記憶體控制電路單元 |
US10095413B2 (en) * | 2016-01-28 | 2018-10-09 | Toshiba Memory Corporation | Memory system with address translation between a logical address and a physical address |
KR102532581B1 (ko) * | 2016-03-17 | 2023-05-17 | 에스케이하이닉스 주식회사 | 메모리 장치를 포함하는 메모리 시스템 및 그의 동작 방법 |
US20170315924A1 (en) * | 2016-04-29 | 2017-11-02 | Netapp, Inc. | Dynamically Sizing a Hierarchical Tree Based on Activity |
KR20180019419A (ko) | 2016-08-16 | 2018-02-26 | 삼성전자주식회사 | 메모리 컨트롤러, 메모리 시스템 및 그 동작방법 |
US10459644B2 (en) | 2016-10-28 | 2019-10-29 | Western Digital Techologies, Inc. | Non-volatile storage system with integrated compute engine and optimized use of local fast memory |
US10565123B2 (en) | 2017-04-10 | 2020-02-18 | Western Digital Technologies, Inc. | Hybrid logical to physical address translation for non-volatile storage devices with integrated compute module |
KR20180121733A (ko) * | 2017-04-28 | 2018-11-08 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
US10534718B2 (en) * | 2017-07-31 | 2020-01-14 | Micron Technology, Inc. | Variable-size table for address translation |
JP2019056981A (ja) | 2017-09-19 | 2019-04-11 | 東芝メモリ株式会社 | メモリシステム |
US10877898B2 (en) * | 2017-11-16 | 2020-12-29 | Alibaba Group Holding Limited | Method and system for enhancing flash translation layer mapping flexibility for performance and lifespan improvements |
US10970205B2 (en) * | 2018-05-31 | 2021-04-06 | Micron Technology, Inc. | Logical-to-physical data structures for tracking logical block addresses indicative of a collision |
US10795576B2 (en) * | 2018-11-01 | 2020-10-06 | Micron Technology, Inc. | Data relocation in memory |
US10901912B2 (en) * | 2019-01-28 | 2021-01-26 | Western Digital Technologies, Inc. | Flash translation layer table for unaligned host writes |
US11237953B2 (en) * | 2019-05-21 | 2022-02-01 | Micron Technology, Inc. | Host device physical address encoding |
CN110532201B (zh) * | 2019-08-23 | 2021-08-31 | 北京浪潮数据技术有限公司 | 一种元数据处理方法及装置 |
US11556481B2 (en) | 2019-08-29 | 2023-01-17 | Micron Technology, Inc. | Increased efficiency obfuscated logical-to-physical map management |
US11429531B2 (en) * | 2020-02-03 | 2022-08-30 | EMC IP Holding Company LLC | Changing page size in an address-based data storage system |
US12056045B2 (en) * | 2022-06-15 | 2024-08-06 | Western Digital Technologies, Inc. | Scratchpad cache for gaming and IoT hosts |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101930404A (zh) * | 2010-08-27 | 2010-12-29 | 威盛电子股份有限公司 | 存储装置及其操作方法 |
Family Cites Families (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US537521A (en) | 1895-04-16 | Circular sawing machine | ||
EP0508577A1 (en) | 1991-03-13 | 1992-10-14 | International Business Machines Corporation | Address translation mechanism |
JP3197815B2 (ja) | 1996-04-15 | 2001-08-13 | インターナショナル・ビジネス・マシーンズ・コーポレ−ション | 半導体メモリ装置及びその制御方法 |
US6625081B2 (en) | 2001-08-13 | 2003-09-23 | Micron Technology, Inc. | Synchronous flash memory with virtual segment architecture |
JP4211385B2 (ja) | 2002-12-20 | 2009-01-21 | パナソニック株式会社 | 半導体メモリカードおよび管理情報更新方法 |
US6906961B2 (en) | 2003-06-24 | 2005-06-14 | Micron Technology, Inc. | Erase block data splitting |
US7278008B1 (en) | 2004-01-30 | 2007-10-02 | Nvidia Corporation | Virtual address translation system with caching of variable-range translation clusters |
US7206915B2 (en) | 2004-06-03 | 2007-04-17 | Emc Corp | Virtual space manager for computer having a physical address extension feature |
US20060004941A1 (en) | 2004-06-30 | 2006-01-05 | Shah Hemal V | Method, system, and program for accessesing a virtualized data structure table in cache |
US20060184719A1 (en) * | 2005-02-16 | 2006-08-17 | Sinclair Alan W | Direct data file storage implementation techniques in flash memories |
KR100706242B1 (ko) | 2005-02-07 | 2007-04-11 | 삼성전자주식회사 | 메모리 시스템 및 그것의 런 단위 어드레스 매핑 테이블 구성 방법 |
US7984084B2 (en) * | 2005-08-03 | 2011-07-19 | SanDisk Technologies, Inc. | Non-volatile memory with scheduled reclaim operations |
KR100764750B1 (ko) | 2006-10-16 | 2007-10-08 | 삼성전자주식회사 | 유연한 어드레스 맵핑 스킴을 갖는 플래시 메모리 장치 |
TW200832440A (en) * | 2007-01-25 | 2008-08-01 | Genesys Logic Inc | Flash memory translation layer system |
US9396103B2 (en) * | 2007-06-08 | 2016-07-19 | Sandisk Technologies Llc | Method and system for storage address re-mapping for a memory device |
US7934072B2 (en) | 2007-09-28 | 2011-04-26 | Lenovo (Singapore) Pte. Ltd. | Solid state storage reclamation apparatus and method |
EP2225643B1 (en) | 2007-12-28 | 2020-05-06 | Toshiba Memory Corporation | Semiconductor storage device |
CN101241472B (zh) * | 2008-03-07 | 2010-12-22 | 威盛电子股份有限公司 | 映射管理方法及系统 |
US8321652B2 (en) | 2008-08-01 | 2012-11-27 | Infineon Technologies Ag | Process and method for logical-to-physical address mapping using a volatile memory device in solid state disks |
KR101618634B1 (ko) * | 2009-01-07 | 2016-05-09 | 삼성전자주식회사 | 비휘발성 메모리와, 이의 페이지 동적할당장치 및 페이지 매핑장치와, 이의 페이지 동적할당방법 및 페이지 매핑방법 |
US8255661B2 (en) * | 2009-11-13 | 2012-08-28 | Western Digital Technologies, Inc. | Data storage system comprising a mapping bridge for aligning host block size with physical block size of a data storage device |
WO2011075901A1 (zh) * | 2009-12-24 | 2011-06-30 | 华为技术有限公司 | 通用映射规程gmp映射方法、解映射方法及装置 |
GB2478727B (en) * | 2010-03-15 | 2013-07-17 | Advanced Risc Mach Ltd | Translation table control |
US20110283048A1 (en) * | 2010-05-11 | 2011-11-17 | Seagate Technology Llc | Structured mapping system for a memory device |
US8341340B2 (en) * | 2010-07-21 | 2012-12-25 | Seagate Technology Llc | Multi-tier address mapping in flash memory |
US20120023144A1 (en) | 2010-07-21 | 2012-01-26 | Seagate Technology Llc | Managing Wear in Flash Memory |
JP5535128B2 (ja) | 2010-12-16 | 2014-07-02 | 株式会社東芝 | メモリシステム |
US8417914B2 (en) * | 2011-01-06 | 2013-04-09 | Micron Technology, Inc. | Memory address translation |
JP5295286B2 (ja) | 2011-02-23 | 2013-09-18 | 株式会社日立製作所 | 記憶装置およびそれを搭載した計算機 |
WO2012161659A1 (en) * | 2011-05-24 | 2012-11-29 | Agency For Science, Technology And Research | A memory storage device, and a related zone-based block management and mapping method |
US8694754B2 (en) * | 2011-09-09 | 2014-04-08 | Ocz Technology Group, Inc. | Non-volatile memory-based mass storage devices and methods for writing data thereto |
KR101289931B1 (ko) * | 2011-09-23 | 2013-07-25 | 한양대학교 산학협력단 | 다양한 블록 크기를 지원하는 주소 사상을 사용하여 플래시 메모리 내에 데이터를 저장하는 방법 및 장치 |
US20130103889A1 (en) * | 2011-10-25 | 2013-04-25 | Ocz Technology Group Inc. | Page-buffer management of non-volatile memory-based mass storage devices |
US9069657B2 (en) * | 2011-12-12 | 2015-06-30 | Apple Inc. | LBA bitmap usage |
US9213633B2 (en) * | 2013-04-30 | 2015-12-15 | Seagate Technology Llc | Flash translation layer with lower write amplification |
-
2012
- 2012-09-14 US US13/616,175 patent/US10282286B2/en active Active
-
2013
- 2013-09-13 CN CN201380048147.1A patent/CN104641356B/zh active Active
- 2013-09-13 KR KR1020157009168A patent/KR101852668B1/ko active IP Right Grant
- 2013-09-13 EP EP13836722.2A patent/EP2895958B1/en active Active
- 2013-09-13 JP JP2015532071A patent/JP6109316B2/ja active Active
- 2013-09-13 WO PCT/US2013/059645 patent/WO2014043459A1/en unknown
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101930404A (zh) * | 2010-08-27 | 2010-12-29 | 威盛电子股份有限公司 | 存储装置及其操作方法 |
Also Published As
Publication number | Publication date |
---|---|
EP2895958B1 (en) | 2019-12-25 |
US20140082323A1 (en) | 2014-03-20 |
WO2014043459A1 (en) | 2014-03-20 |
CN104641356A (zh) | 2015-05-20 |
US10282286B2 (en) | 2019-05-07 |
JP2015534178A (ja) | 2015-11-26 |
EP2895958A1 (en) | 2015-07-22 |
KR20150054964A (ko) | 2015-05-20 |
JP6109316B2 (ja) | 2017-04-05 |
KR101852668B1 (ko) | 2018-06-04 |
EP2895958A4 (en) | 2016-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104641356B (zh) | 地址映射 | |
US10430084B2 (en) | Multi-tiered memory with different metadata levels | |
US8239614B2 (en) | Memory super block allocation | |
CN107391391B (zh) | 在固态硬盘的ftl实现数据拷贝的方法、系统及固态硬盘 | |
US20180089074A1 (en) | Techniques to Manage Key-Value Storage at a Memory or Storage Device | |
CN109800180A (zh) | 用于地址映射的方法和存储器系统 | |
CN109923530A (zh) | 混合式存储器中的数据重新定位 | |
US20130073798A1 (en) | Flash memory device and data management method | |
CN111033477A (zh) | 逻辑到物理映射 | |
CN107077427A (zh) | 跨电源周期来跟踪对写入命令和解除映射命令的混合 | |
CN107003942A (zh) | 对用于增强存储设备的性能和持久性的解除映射命令的处理 | |
CN104268095A (zh) | 一种存储器及基于该存储器进行数据读/写操作的方法 | |
US20150186259A1 (en) | Method and apparatus for storing data in non-volatile memory | |
US20120166709A1 (en) | File system of flash memory | |
JPWO2015052833A1 (ja) | ストレージ装置、ストレージシステム、及びストレージ装置制御方法 | |
CN113254358A (zh) | 用于地址表高速缓存管理的方法和系统 | |
CN110442529A (zh) | 可配置的存储器系统及配置和使用该存储器系统的方法 | |
CN110221770A (zh) | 在存储装置当中改进数据分布的方法 | |
CN106802777A (zh) | 一种用于固态存储设备的闪存转换层控制方法 | |
US20240069771A1 (en) | Read operations for mixed data | |
US11269534B2 (en) | Data storage device and non-volatile memory control method | |
Pratibha et al. | Efficient flash translation layer for flash memory | |
Kwon et al. | Fast responsive flash translation layer for smart devices | |
Cheng et al. | Hercules: Intelligent coupling of dual-mode flash memory and hard disk drive | |
Liu et al. | Nvmtfs: A non-volatile memory adaptive file system for tiered storage system |
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 |