CN112513823A - 逻辑到物理表片段 - Google Patents
逻辑到物理表片段 Download PDFInfo
- Publication number
- CN112513823A CN112513823A CN201980050385.3A CN201980050385A CN112513823A CN 112513823 A CN112513823 A CN 112513823A CN 201980050385 A CN201980050385 A CN 201980050385A CN 112513823 A CN112513823 A CN 112513823A
- Authority
- CN
- China
- Prior art keywords
- logical
- address
- physical
- level index
- segment
- 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
- 239000012634 fragment Substances 0.000 title claims description 72
- 238000013519 translation Methods 0.000 claims abstract description 14
- 238000003860 storage Methods 0.000 claims description 104
- 238000000034 method Methods 0.000 claims description 19
- 230000004044 response Effects 0.000 claims description 19
- 238000005259 measurement Methods 0.000 claims description 17
- 230000014616 translation Effects 0.000 claims description 12
- 230000000977 initiatory effect Effects 0.000 claims 1
- 238000012005 ligant binding assay Methods 0.000 description 87
- 230000015654 memory Effects 0.000 description 65
- 238000010586 diagram Methods 0.000 description 20
- 229920001485 poly(butyl acrylate) polymer Polymers 0.000 description 11
- 230000008859 change Effects 0.000 description 10
- 230000002093 peripheral effect Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 238000007726 management method Methods 0.000 description 4
- 230000010076 replication Effects 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 238000011066 ex-situ storage Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 101150060820 Pfas gene Proteins 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000001351 cycling effect Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000011065 in-situ storage Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 229920011301 perfluoro alkoxyl alkane Polymers 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000009255 platelet function activity Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000007480 spreading Effects 0.000 description 1
Images
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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- 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
-
- 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- 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/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- 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/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- 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/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
- G06F2212/1036—Life time enhancement
-
- 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/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- 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/31—Providing disk cache in a specific location of a storage system
- G06F2212/312—In storage controller
-
- 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/46—Caching storage objects of specific type in disk cache
- G06F2212/466—Metadata, control data
-
- 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
-
- 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/7205—Cleaning, compaction, garbage collection, erase control
-
- 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/7207—Details relating to flash memory management management of metadata or control data
-
- 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/7211—Wear leveling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
可存储各自包含第一逻辑地址的逻辑地址到物理地址转译的逻辑到物理表。可存储各自包含第二逻辑地址的逻辑地址到物理地址转译的逻辑到物理表片段。可存储第一级索引。所述第一级索引可包含针对所述第一逻辑地址中的每一者的所述逻辑到物理表中的相应者的物理表地址及指向针对所述第二逻辑地址中的每一者的第二级索引中的相应指针。所述第二级索引可被存储且可包含针对所述第二逻辑地址中的每一者的相应逻辑到物理表片段的物理片段地址。
Description
技术领域
本发明大体上涉及半导体存储器及方法,且更特定来说,涉及逻辑到物理表片段。
背景技术
存储器装置通常被提供作为计算机或其它电子装置中的内部半导体集成电路。存在许多不同类型的存储器,其包含易失性及非易失性存储器。易失性存储器可能需要电力来维持其数据(例如主机数据、错误数据等),且尤其包含随机存取存储器(RAM)、动态随机存取存储器(DRAM)及静态随机存取存储器(SRAM)等。非易失性存储器可在未被供电时通过保持所存储数据提供永久数据,且可尤其包含NAND快闪存储器、NOR快闪存储器、只读存储器(ROM)、电可擦除可编程ROM(EEPROM)、可擦除可编程ROM(EPROM)及电阻可变存储器(例如相变随机存取存储器(PCRAM))、电阻性随机存取存储器(RRAM)及磁阻性随机存取存储器(MRAM)。
“主存储器”是所属领域中描述存储可被处理器直接存取及操纵的数据的存储器的术语。主存储器的实例是DRAM。主存储器提供数据的初级存储且可为易失性存储器或非易失性存储器(例如,在管理为主存储器(例如非易失性双列直插式存储器模块(DIMM))的非易失性RAM的情况中)。次级存储装置可用于提供数据的次级存储且不能被处理器直接存取。然而,如本文中使用,“主存储器”不一定必须是易失性存储器且在一些实施例中可为非易失性存储器。
存储器装置可经组合在一起以形成例如固态驱动器(SSD)的存储器系统的存储卷。固态驱动器可包含非易失性存储器(例如NAND快闪存储器及NOR快闪存储器),且/或可包含易失性存储器(例如DRAM及SRAM)以及其它类型的非易失性及易失性存储器。SSD可具有控制器,其具有稳健量的局部初级存储装置以使SSD能执行相较于可由不太稳健的装置(例如移动装置)执行的那些存储器管理操作相对复杂的对次级存储装置的存储器管理操作。
控制器的局部初级存储装置相较于多数次级存储装置来说是有限且相对昂贵的资源。控制器的局部初级存储装置的重要部分可专用于存储逻辑到物理表,所述逻辑到物理表存储针对逻辑地址的逻辑地址到物理地址转译。逻辑地址是从执行的应用程序的角度来看存储器单元(例如存储器单元、数据扇区、数据块等)看起来驻留在其处的地址且可为由主机或处理器产生的地址。物理地址是使数据总线能存取物理存储器的特定单元(例如存储器单元、数据扇区、数据块等)的存储器地址。
附图说明
图1是根据本发明的数个实施例的呈包含至少一个存储器系统的计算系统的形式的设备的框图。
图2是根据本发明的数个实施例的逻辑到物理表区及逻辑到物理表片段区的框图。
图3是根据本发明的数个实施例的逻辑到物理表区及逻辑到物理表片段区的布局的框图。
图4A是根据本发明的数个实施例的第一级索引的框图。
图4B是根据本发明的数个实施例的第二级索引的框图。
图5是说明根据本发明的数个实施例的第一级索引寻址的框图。
图6是说明根据本发明的数个实施例的第一类型的第二级索引寻址的框图。
图7是说明根据本发明的数个实施例的第二类型的第二级索引寻址的框图。
图8是说明根据本发明的数个实施例的第三类型的第二级索引寻址的框图。
图9是说明根据本发明的数个实施例的热及冷逻辑到物理表片段的测量间隔的时间线。
图10是根据本发明的数个实施例的冗余逻辑到物理表片段的框图。
具体实施方式
本发明涉及逻辑到物理表片段。甚至在大容量存储器装置的情况中,本发明的数个实施例也可减少控制器原本需要的初级存储装置的量。甚至针对大容量存储器装置,本发明的数个实施例也可在仅单次读取次级存储装置的情况下提供逻辑地址到物理地址转译。
在本发明的以下详细描述中,参考形成详细描述的一部分且通过说明展示可如何实践本发明的数个实施例的附图。足够详细地描述这些实施例以使所属领域的一般技术人员能够实践本发明的实施例,且应理解,可利用其它实施例且可在不背离本发明的范围的情况下做出过程改变、电改变及/或结构改变。如本文中使用,“数个”特定事物可指代此类事物中的一或多者(例如,数个存储器装置可指代一或多个存储器装置)。如本文中使用,术语“第一”及“第二”用以在一个特征与另一特征之间作出区分且不一定暗含如此标示的特征之间的顺序。举例来说,“第一物理地址”不一定暗含第一物理地址在“第二物理地址”之前。
如本文使用,单数形式“一(a/an)”及“所述”包含单数及复数参照物,除非内容另外明确指示。此外,词“可”贯穿此申请案以准许意义(即,有可能、能够)而非以强制意义(即,必须)使用。术语“包含”及其派生词意味着“包含(但不限于)”。术语“耦合”意味着直接或间接连接。
本文的图遵循编号惯例,其中第一数字或前几个数字对应于图号且剩余数字识别图式中的元件或组件。不同图之间的类似元件或组件可通过使用类似数字来识别。举例来说,108可引用图1中的元件“08”,且类似元件可在图2中被引用为208。如应了解,本文各种实施例中展示的元件可经添加、交换及/或消除以便提供本发明的数个额外实施例。另外,如应了解,图中提供的元件的比例及相对尺度意在说明本发明的某些实施例,且不应以限制意义来理解。
图1是根据本发明的数个实施例的呈包含至少一个存储器系统的计算系统100的形式的设备的框图。如本文中使用,计算系统100、存储器系统(通常包含初级存储装置106及次级存储装置112)、控制器102或次级存储装置112也可单独被认为是“设备”。计算系统100可为个人膝上型计算机、桌面计算机、数码相机、移动电话或其它移动装置、存储器卡读取器、存储装置或存储器控制器以及各种其它类型的计算系统100。计算系统100可包含控制器102,其可包含处理器104及/或其它控制电路系统及提供初级存储装置106的数个存储器装置。举例来说,初级存储装置可为SRAM。控制器102可耦合到初级存储装置106及次级存储装置112。
处理器104可为基于高速缓存的处理器且可包含例如处理单元(例如中央处理单元“CPU”)、耦合到处理单元的第一级高速缓存、耦合到第一级高速缓存的第二级高速缓存及耦合到第二级高速缓存的数个额外级的高速缓存。尽管未明确说明,但第一级高速缓存、第二级高速缓存及额外级的高速缓存在本文中可统称为高速缓存。高速缓存也可称为初级存储装置,其可与图1中明确说明的初级存储装置106相同或不同。实施例不限于特定数目个高速缓存级且可包含比上文提及的高速缓存更多或更少的高速缓存。高速缓存可由处理单元用于通过存储频繁使用的数据减少存取初级存储装置106及/或次级存储装置112的平均时间。用于由处理单元存取高速缓存的延时小于用于存取初级存储装置106及/或次级存储装置112的延时。
如图1中说明,控制器102可经由数个通道耦合到次级存储装置112且可用于在其间发送数据。接口可呈标准化接口的形式。举例来说,当存储器系统用于计算系统100中的数据存储时,接口可为实施相对简单协议的接口,例如开放NAND快闪接口(ONFI)或双倍数据速率(DDR)接口。然而,一般来说,接口可提供用于在存储器系统与具有接口可兼容的接受器的次级存储装置112之间传递控制、地址、数据及其它信号的接口。控制器102可与次级存储装置112通信以控制读取、写入、擦除、移动、及损耗均衡、以及其它操作。次级存储装置112可为单个裸片上的多个存储器阵列、多个裸片上的多个存储器阵列、或单个裸片上的单个存储器阵列。控制器102可经嵌入在与次级存储装置112中的任一者或全部相同或不同的裸片上。同样地,控制器102可经嵌入在与初级存储装置106中的任一者或全部相同或不同的裸片上。
举例来说,次级存储装置112可为具有NAND架构或NOR架构的快闪阵列。然而,实施例不限于特定类型的存储器阵列或阵列架构。尽管在本文中大体上涉及NAND架构中的浮动门类型快闪存储器单元,但实施例不限于此。其它实例尤其包含电可擦除可编程ROM(EEPROM)、可擦除可编程ROM(EPROM)、铁电RAM(FRAM)、及电阻可变存储器,例如相变随机存取存储器(PCRAM)、电阻随机存取存储器(RRAM)、磁阻随机存取存储器(MRAM)、及3DXPoint。
次级存储装置112可包含数个存储器单元(例如非易失性存储器单元)阵列。存储器单元可经分组例如成包含多个物理页的数个块。数个块可包含于存储器单元的平面中,且阵列可包含数个平面。
如图1中说明,控制器102可经由数个通道耦合到主机或外围设备(大体上由图1中的参考元件118识别)且可用于在其间发送数据。接口可呈标准化接口的形式。举例来说,当存储器系统用于计算系统100中的数据存储时,接口可为实施相对复杂协议的接口,例如串行高级技术附件(SATA)、外围组件互连高速(PCIe)、或通用串行总线(USB)以及其它。然而,一般来说,接口可提供用于在存储器系统与具有接口可兼容的接受器的主机或外围设备118之间传递控制、地址、数据及其它信号的接口。
在操作中,例如,数据可作为数据页写入到次级存储装置112及/或从次级存储装置112读取。因而,数据页可称为次级存储装置112的数据传送大小。数据可以称为扇区(例如主机扇区)的数据段发送到主机或外围设备118/从主机或外围设备118发送。因而,数据扇区可称为主机或外围设备的数据传送大小。扇区大小可由格式化到次级存储装置112的文件系统定义。
读取请求可来源于主机118及/或存储器系统、以及其它来源(例如,来源于直接存储器存取(DMA)装置,其还可被识别为外围设备118)。举例来说,作为损耗均衡操作的部分,读取请求可来源于存储器系统。存储器系统可实施损耗均衡(例如垃圾收集及/或回收)以控制次级存储装置112上的损耗率。存储器阵列可能在数个程序及/或擦除循环之后经历错误(例如故障)。损耗均衡可通过在整个阵列上更平均地扩散循环减少对特定群组执行的程序及/或擦除循环的数目。针对位可变的存储器,静态及/或动态损耗均衡可用于跨整个阵列分布写入操作以避免使一些地址比其它地址更频繁地循环。针对不是位可变的存储器,动态损耗均衡可用于最小化经移动以回收块的有效块的量。动态损耗均衡可包含称为针对不是位可变的存储器的垃圾收集的技术。垃圾收集可包含回收(例如擦除及使其可用于写入)具有最多无效页的块(例如,根据“贪婪算法”)。替代地,垃圾收集可包含回收具有超过阈值量的无效页的块。如果针对写入操作存在充足的自由块,那么可不发生垃圾收集操作。无效页例如可为已经更新到不同页的信息页。静态损耗均衡可包含将静态信息写入到具有高擦除计数的块以延长所述块的寿命。
在存储器装置中,逻辑到物理“L2P”表114提供针对每一逻辑地址(例如,逻辑块地址“LBA”)的物理地址(例如,物理块地址“PBA”)。L2P表114可按照级编索引,且出于损耗均衡目的定期移动。举例来说,在NAND技术下,需要复制整个L2P表以更新单个PBA,这是因为NAND媒体不是位可变的。在一些方法中,L2P表可按照级编索引,使得第一级索引108提供第二级索引110的物理地址。因为存在多个L2P表,所以为了将LBA转译成PBA,首先必须定位存储转译的正确L2P表。第一级索引108可从次级存储装置112(例如NAND)复制到初级存储装置106(例如SRAM)使得PBA检索仅使用单次媒体读取。
表1展示将使用512千字节(KB)初级存储装置106高速缓存第一级索引108的512千兆字节(GB)存储器装置的实例,然而,实施例不限于特定容量:
表1
描述 | 值 |
装置容量 | 512GB |
4-KB逻辑块的# | 128Mi(1Mi=1024<sup>2</sup>) |
每一L2P表中的LBA的# | 1024 |
L2P表的# | 128Ki(1Ki=1024) |
L2P表物理地址的大小 | 4字节 |
第一级表的大小 | 512KB |
假设4KB块大小,完整L2P表具有128个Mi条目。一些先前方法可使用直接指向含有各个LBA的PBA的各个L2P表的单级索引。然而,本发明的实施例包含第一级索引及第二级索引两者。存在16个Ki第二级索引。
512KB第一级索引是许多控制器能够在初级存储装置106中本地存储的大量数据。仅一小部分LBA被频繁写入,此也可称为更新与LBA相关联的数据。这些可称为热LBA。根据本发明的至少一个实施例,L2P表管理可通过将较小表用于热LBA且将较大表用于冷LBA(不太频繁地被写入的逻辑地址)来改进。通常出于损耗均衡目的移动具有热LBA的表。针对热LBA具有较小表是有益的,这是因为复制较小表花费较少时间。对L2P表进行分段可允许将热LBA存储于热L2P表片段中。L2P表片段116可经存储于L2P表片段区中,其可具有比用于其它L2P表114的L2P表区更高的过量提供以增加装置寿命。初级存储装置106通常是比次级存储装置112更昂贵且更有限的资源。可将整个第一级索引108复制到初级存储装置106。另外,一些L2P表114可经高速缓存于初级存储装置106中以增加性能。可将第二级索引110完全或部分复制到初级存储装置106。在随机存取中,第一级索引108及第二级索引110两者中的高速缓存未命中是频繁的。因此,对次级存储装置112的两次读取将用于检索LBA的PBA(一者用于第二级索引110且一者用于L2P表114以检索PBA)。然而,根据本发明的至少一个实施例,甚至是针对大容量存储器装置,初级存储装置106的大小也可减小同时仅执行次级存储装置112的单次读取以检索PBA及LBA。
与表1相比,根据包含L2P表片段的本发明的数个实施例,每一L2P表可包含8192个条目,其可由LBA[12:0]寻址。存在16个Ki第二级索引。L2P表物理地址可称为物理表地址(PTA[14:0])。每一第一级索引条目含有物理表地址或指向第二级索引的指针。在第一级索引中存在16,384个条目,其由LBA[26:13]寻址。如果次级存储装置112不是位可变的,那么每当L2P表条目被写入,整个L2P表都会被复制到不同物理位置。经常被写入的LBA可导致频繁L2P表复制。如果次级存储装置112是位可变的(例如3D XPoint或相变存储器),那么可代替地更新L2P表条目而无需复制L2P表。然而,甚至是针对是位可变的次级存储装置112,本发明的至少一个实施例也包含“非原位”更新L2P表条目(例如,通过将更新数据存储在不同物理地址处,如本文中更详细描述)。此类实施例可有利地提供更好的损耗均衡。因为LBA的一小部分被频繁地更新,管理较小表中的相关L2P条目是有用的。此可减少L2P表复制操作的量,这会增加性能且减少循环。因此,根据本发明的数个实施例,每一L2P表可分成片段(例如,每L2P表具有16个片段,其中每一片段含有512个条目)。L2P表114及L2P表片段116可经存储于专用区中。
作为PBA的对象且可用于存储用户数据或系统数据的物理块本身可为图1中说明的次级存储装置112的部分及/或也耦合到控制器102的不同次级存储装置(未明确说明)的部分。在一些实施例中,一些物理块可为次级存储装置112的部分,且一些物理块可为不同次级存储装置(未明确说明)的部分。举例来说,次级存储装置112可包括3D XPoint存储器,且不同次级存储装置包括快闪存储器。在此类实施例中,快闪存储器可不存储L2P表114。仅将L2P表存储于3D XPoint中而非快闪存储器中可产生两个优点。首先,可改进性能,这是因为如果对存储器的小部分的读取及写入存取由3D XPoint执行,那么其会更快。其次,可改进耐久性。因为3D XPoint是位可变的,所以可原位执行单个L2P指针的更新,从而避免复制整个L2P表片段。
图2是根据本发明的数个实施例的逻辑到物理表区220及逻辑到物理表片段区222的框图。(未分段)L2P表214及L2P表片段216各自存储对应LBA 221的相应PBA 219(逻辑地址到物理地址转译)。举例来说,L2P表214可存储8192个逻辑地址到物理地址转译(“条目”)。当LBA被写入或未映射时,可更新条目。L2P表214可经存储于L2P表区220中。可使用第一级索引208实现对L2P表214的存取。
每一L2P表可经分段例如成16个片段,例如L2P表片段216。每一L2P表片段216可存储512个条目。L2P表片段216可经存储于L2P表片段区222中。可使用第一级索引208及第二级索引210实现对L2P表片段216的存取。第一级索引208及/或第二级索引210可经存储于次级存储装置中且被复制到初级存储装置,例如,在加电时。
L2P表片段区222可用于存储包含热(频繁写入的)LBA 221的L2P表的一部分。一些L2P表可完全存储于L2P表区220中,而其它L2P表被分段。针对完全存储于L2P表区220中的L2P表,第一级索引208中的条目提供L2P表的物理表地址223-1,如由箭头224展示(针对LBA[26:13]“j”,条目是“PTA=b”,其指向L2P表区220)。针对分段L2P表,第一级索引208中的条目是指向第二级索引210的指针225,如由箭头226展示(针对LBA[26:13]“m”,条目是“SLA=r”,其指向第二级索引210中的第二级地址(SLA)“r”)。第二级索引210可指示相应逻辑到物理表片段216的物理片段地址。第二级索引210可存储指示在L2P表区220(如由实例物理表地址223-2“PTA[14:0]=p”指示且如由箭头228展示)中或在L2P表片段区222(如由实例物理片段地址227“PFA[14:0]=v”指示且如由箭头230展示)中的位置的物理片段地址。
如本文中描述,LBA可取决于在测量间隔(例如一定量的L2P表片段被移动的时间段)或另一测量间隔内LBA的写入数量为热或冷。在第二级索引210中,LBA[12:9]“w”具有相关联物理片段地址227“V”,其是L2P表片段区222中的物理片段地址,如由箭头230指示。箭头232指示LBA[12:9]“w”先前是冷的且经存储于L2P表区220中。此是L2P表片段响应于与L2P表片段相关联的LBA从冷变成热(例如,响应于超过测量间隔内与LBA相关联的数据的写入的热阈值数量)而从L2P表区220移动到L2P表片段区222的实例。与LBA相关联的数据可经复制到L2P表片段区222,且可将指向第二级索引210的指针添加到LBA的第一级索引208,且可移除存储于LBA的第一级索引208中的L2P表的PTA。尽管未明确说明,但L2P表片段可例如响应于小于测量间隔内与LBA相关联的数据的写入的冷阈值数量从热变成冷且从L2P表片段区222移动到L2P表区220。与LBA相关联的数据可从L2P表片段区222复制到L2P表区220中的不同物理地址,可从第一级索引208移除指向LBA的第二级索引210的指针,且可将LBA的L2P表的PTA添加到第一级索引208。
控制器(例如图1中说明的控制器102)可经配置以响应于接收到逻辑地址221(例如逻辑块地址)使用逻辑地址221搜索逻辑到物理表214的第一级索引208(在初级存储装置中)。控制器可经配置以响应于找出存储于逻辑地址221的第一级索引208中的逻辑到物理表214的物理表地址223-1从逻辑到物理表214检索对应于逻辑地址221的第一物理地址219-1(例如物理块地址)。控制器可经配置以响应于找出指向存储于逻辑地址221的第一级索引208中的第二级索引210的指针225搜索逻辑到物理表片段216的第二级索引210。控制器可经配置以响应于找出存储于逻辑地址221的第二级索引的逻辑到物理表片段216的物理片段地址227从逻辑到物理表片段216检索对应于逻辑地址221的次级存储装置的第二物理地址219-2。
控制器可经配置以通过将更新数据存储在不同物理地址219处更新与逻辑地址221相关联且存储在第一物理地址219-1处的数据。举例来说,更新数据可经存储于含有逻辑到物理表214(例如次级存储装置)的媒体或不同媒体中。逻辑到物理表214或逻辑到物理表片段216可用不同物理地址219更新。控制器还可经配置以将逻辑到物理表214复制到具有不同物理表地址223的不同物理位置且用不同物理表地址更新第一级索引208。第一级索引208可具有两个副本(一个在初级存储装置中且一个在次级存储装置中),这两者都可被更新。
控制器可经配置以通过将更新数据存储在不同物理地址219处更新与逻辑地址221相关联且存储在第二物理地址219-2处的数据。控制器还可经配置以将逻辑到物理表片段216复制具有不同物理片段地址的不同物理位置且用不同物理片段地址更新第二级索引210。第二级索引210可具有两个副本(一个在初级存储装置中且一个在次级存储装置中),这两者都可被更新。
在一些实施例中,与逻辑地址相关联的数据的更新可“非原位”执行(例如,通过写入于不同物理块),无论用于存储数据的次级存储装置的位可变性如何。如果次级存储装置是位可变的(例如,3D XPoint),用新的物理地址对L2P表片段进行更新可“原位”执行(重写相同物理块)。如果次级存储装置不是位可变的(例如,NAND快闪),用新的物理地址对L2P表片段进行更新可“非原位”执行(将L2P表片段复制到不同物理位置)。在是位可变的次级存储装置的情况中,出于损耗均衡目的,在一定量的重写之后,可将L2P表片段复制到不同物理位置。
图3是根据本发明的数个实施例的逻辑到物理表区320及逻辑到物理表片段区322的布局的框图。L2P表的物理地址称为物理表地址(PTA)。在此实例中,在L2P表区320中存在16,512个PTA。L2P表片段的物理地址称为物理片段地址(PFA)。在此实例中,在L2P表片段区322中存在32,768个PFA,每一者由PFA[14:0]值识别。PFA经提供于第二级索引中。针对经分段的L2P表,第一级索引包含指向第二级索引的指针,其含有PFA。其粒度及L2P表可经分段受存储于或可存储于第二级索引中的条目的最大数目限制。
除了存储于L2P表片段区322中的任何L2P地址转译之外,第一级索引及/或第二级索引的非易失性副本也可经存储于L2P表片段区322中。这些表可经高速缓存于初级存储装置中使得仅需要次级存储装置的一次读取来检索PBA。第一级索引及第二级索引比L2P表少得多地被写入,这是因为仅在表被移动时才更新其条目。
当测量间隔内的写入数量达到分段阈值时,可对L2P表进行分段。箭头332指示特定L2P表片段先前是冷的且经存储于L2P表区320中。此是L2P表片段响应于与L2P表片段相关联的LBA从冷变成热而从L2P表区320移动到L2P表片段区322的实例。尽管未明确说明,L2P表片段可在其从热变成冷时从L2P表片段区322移动到L2P表区320。热LBA或L2P表片段与冷LBA或L2P表片段之间的差异可通过对测量间隔内的写入的数量进行计数来确定。如果写入的数量小于冷阈值,那么热L2P表片段可从L2P表片段区322移动到L2P表区320。如果写入的数量大于热阈值,那么冷L2P表片段可从L2P表区320移动到L2P表片段区322。
表2展示可用于第一级索引的格式的实例:
表2
由第一级索引使用的寻址的类型由第一表寻址(FTA)位指示(例如,针对表寻址,FTA=1,或针对片段寻址,FTA=0)。FTA位可称为分段指示符。设置到1的FTA位指定L2P表未被分段且第一级条目含有其PTA。设置到0的FTA位指定L2P表被分段且其物理表地址在第二级索引中指定。第一级条目提供第二级索引(SLI)类型指示符及第二级地址(SLA)。第二级索引中的条目称为第二级条目(SLE)。为了减小第二级索引大小且因此减小初级存储装置的大小,定义具有可变大小的三个第二级索引类型,如表3中展示:
表3
SLI_TYPE[1:0] | 描述 | SLE大小 |
00 | 保留 | - |
01 | 类型-1 | 5字节 |
10 | 类型-2 | 8字节 |
11 | 类型-3 | 32字节 |
表4展示SLI类型-1格式,其可用于仅具有存储于L2P表片段区322中的一个片段的L2P表:
表4
FRAG[3:0]字段指定存储于L2P表片段区322中的片段的索引,而PFA字段指定其物理地址。另外15个表片段在由PTA字段指示的PTA处存储于L2P表区320中。
表5展示SLI类型-2格式,其用于仅具有存储于L2P表片段区中的两个片段的L2P表:
表5
在此情况中,存储于L2P表片段区322中的两个L2P表片段的索引由FRAG_A[3:0]字段及FRAG_B[3:0]字段提供。相关PFA字段指定其物理地址。另外14个表片段在由PTA字段指示的PTA处存储于L2P表区320中。
表6展示SLI类型-3格式,其用于具有存储于L2P表片段区322中的多于两个片段的L2P表:
表6
针对每一L2P表片段,SLI含有2字节条目。第二表寻址(STA)位指示L2P片段是存储于L2P表区320中还是存储于L2P表片段区322中。设置到0的STA位指定L2P表片段经存储于L2P表片段区322中,且剩余条目位提供PFA。
图4A是根据本发明的数个实施例的第一级索引408的框图。例如,第一级索引408的大小是32KB,且含有16,384个2字节条目。
图4B是根据本发明的数个实施例的第二级索引410的框图。第二级索引410分成三个不同第二级索引类型的三个区。第二级索引410的大小是16KB:针对819个第二级索引类型-1条目434的4KB,针对512个第二级索引类型-2条目436的4KB,以及针对256个第二级索引类型-3条目438的8KB。第二级索引类型-3条目438在功能性方面可为优选的,而且其也占用最多空间。控制器上的固件可重新格式化初级存储装置以改变不同第二级索引类型条目之间的击穿。
图5是说明根据本发明的数个实施例的第一级索引寻址的框图。PTA 523“PTAj”及LBA 521“j”从第一级索引508检索。PTA 523指示L2P表514存储于媒体中的物理位置,如由箭头524展示。
图6是说明根据本发明的数个实施例的第一类型的第二级索引寻址的框图。可在L2P被分段时使用片段寻址。如本文中描述,一些L2P表片段可经存储于L2P表区中,且一些L2P表可经存储于L2P表片段区中。对第一级索引608及第二级索引610两者的存取用于检索物理片段地址627。物理片段地址627经存储于第二级索引610中。
通过实例,考虑LBA 621“LBA[26:13]=m”。第一级条目“FLEm”从与LBA 621相关联的第一级索引608检索。在此情况中,第一级条目是指向第二级索引610的指针,如由箭头626展示。FLEm中的FTA位640被设置到0,因此,需要对第二级索引610进行存取。第二级索引类型位642(FLEm[14:13])指定第二级索引类型-1“01b”,且SLA位644(FLEm[9:0])识别第二级索引610的类型-1区中的条目“r”。L2P表片段的索引646是FRAG=w,因此,对应于LBA[12:9]=w的L2P表片段616-2在PFAr 627处存储于L2P表片段区中,如由箭头630指示,而其它L2P表片段616-1在PTAr 623处处于L2P表区中,如由箭头628指示。
图7是说明根据本发明的数个实施例的第二类型的第二级索引寻址的框图。作为实例,考虑LBA 721“LBA[26:13]=m”。第一级条目“FLEm”从与LBA 721相关联的第一级索引708检索。在此情况中,第一级条目是指向第二级索引710的指针,如由箭头726展示。FLEm中的FTA位740被设置到0,因此,需要对第二级索引710进行存取。第二级索引类型位742(FLEm[14:13])指定第二级索引类型-2“10b”,且SLA位744(FLEm[9:0])识别第二级索引710的类型-2区中的条目“r”。存在存储于L2P表片段区中的两个L2P表片段716-2。第一L2P表片段的索引746-1是FRAG_Ar=w,且第二L2P表片段的索引746-2是FRAG_Br=z。如果LBA[12:9]=w,那么物理片段地址是PFA_Ar 727,如由箭头730指示。如果LBA[12:9]=z,那么物理片段地址是PFA Br(未明确说明)。另外14个L2P表片段716-1在PTAr 723处存储于L2P表区中,如箭头728指示。
图8是说明根据本发明的数个实施例的第三类型的第二级索引寻址的框图。作为实例,考虑LBA 821“LBA[26:13]=m”。第一级条目“FLEm”从与LBA 821相关联的第一级索引808检索。在此情况中,第一级条目是指向第二级索引810的指针,如由箭头826展示。FLEm中的FTA位840被设置到0,因此,需要对第二级索引810进行存取。第二级索引类型位842(FLEm[14:13])指定第二级索引类型-3“11b”,且SLA位844(FLEm[9:0])识别第二级索引810的类型-3区中的条目“r”。针对每一LBA[12:9]值,第二级索引810包含物理地址。如果STA位848被设置到1,那么L2P表片段816-1经存储于L2P表区中,如由箭头828指示,且SLEm,n[14:0]指定PTA 823。如果STA位848被设置到0,那么L2P表片段816-2经存储于L2P表片段区中,如由箭头830指示,且SLEm,n[14:0]指定PFA 827。
图9是说明根据本发明的数个实施例的热及冷逻辑到物理表片段的测量间隔的时间线950。热L2P表片段是包含至少一个热LBA或一群组连续LBA的L2P表片段。每一LBA或每一群组的连续LBA可具有针对每一LBA写入递增的损耗均衡计数器954。对特定LBA的后续写入在本文中还称为更新。当损耗均衡计数器954达到阈值952时,L2P表或L2P表片段移动到不同物理位置,且与L2P表或L2P表片段相关联的LBA的损耗均衡计数器被复位为零。前一移动发生的时间的指示可经存储于L2P表或L2P表片段元数据中。计数器可为在每一次移动时递增的单调计数器。
在L2P表移动的情况中,片段标志956按包括L2P表的L2P表片段的量递增。当L2P表或及L2P表片段移动时,当前片段标志956值被复制到元数据中。此值指示何时移动了L2P表或L2P表片段。当具有热L2P表片段的L2P表被移动时,控制器可检查L2P表片段是否仍是热的且如果其已变冷那么将其合并回到L2P表中,此意味着在先前是热的L2P表片段可经存储于具有L2P表的表区中而非被存储于L2P表片段区中。
图9包含针对热LBA 958及冷LBA 960的损耗均衡计数器954及片段标志956的曲线图。针对热LBA 958的损耗均衡计数器954在时间t1达到损耗均衡阈值952,如由958-1所指示。针对热LBA 958的损耗均衡计数器时间t3达到损耗均衡阈值952,如由958-2所指示,其对应于片段标志A1与A2之间的范围。因为时间段t3-t1较短,所以表被认为是热,且如果热LBA所属的片段先前在L2P表区中,那么将其移动到L2P表片段区中。针对热LBA 958的损耗均衡计数器在时间t4达到损耗均衡阈值952,如由958-3所指示,其对应于片段标志A2与A3之间的范围。针对热LBA 958的损耗均衡计数器在时间t6达到损耗均衡阈值952,如由958-4所指示,其对应于片段标志A3与A4之间的范围。
被认为是热的LBA可与冷阈值进行比较以确定其是否已经变冷。被认为是冷的LBA可与热阈值进行比较以确定其是否已经变热。在任一情形中,如果超过了阈值,那么其指示LBA的状态已经改变(从冷到热,或反之亦然)。超过阈值意味着所述值取决于测量间隔正测量的内容、与阈值进行比较的内容及考虑是从热到冷还是从冷到热大于阈值或小于阈值。举例来说,如果测量间隔是时间且阈值是一时间段内的写入数量,那么在正方向上超过阈值(在一时间段内具有“过多”写入)将指示LBA是热的,且在负方向上超过阈值(在一时间段内具有“过少”写入)将指示LBA是冷的。作为另一实例,如果测量间隔是损耗均衡移动之间的间隔,且阈值是L2P表片段移动的数量,那么在正方向上超过阈值(在损耗均衡移动之间的间隔内移动了“过多”L2P表片段)将指示LBA是冷的,且在负方向上超过阈值(在损耗均衡移动之间的间隔内移动了“过少”L2P表片段)将指示LBA是热的。此第二实例在图9中说明。
在一些实施例中,片段标志值可代替时间使用,这是因为绝对时间并非一直是可用的。如在962-1处指示,片段标志A1与A2之间的片段标志值中的变化小于热LBA的阈值,使得LBA仍被认为是热的。如在962-2处指示,片段标志A2与A3之间的片段标志值中的变化小于热LBA的阈值,使得LBA仍被认为是热的。如在962-3处指示,片段标志A3与A4之间的片段标志值中的变化小于热LBA的阈值,使得LBA仍被认为是热的。然而,如果“A”片段标志之间的片段标志值中的任何变化大于阈值,那么LBA将被认为是冷的。此冷LBA的实例在964处说明。
针对冷LBA 960的损耗均衡计数器在时间t5达到损耗均衡阈值952。如在964处指示,片段标志值的变化大于阈值,因此与冷LBA 960相关联的L2P表仍被认为是冷的且仍保持在L2P表区中。在一些实施例中,热阈值的值可与冷阈值的值相同。在一些实施例中,热阈值的值可与冷阈值的值不同。在一些实施例中,热阈值及冷阈值的值可基于工作负载进行调整。举例来说,如果希望增加或减少L2P表片段的相对量,那么可调整阈值中的一者或两者。
本发明包含用于通过将较小L2P表用于被频繁写入的LBA范围且将较大表用于其它LBA范围来改进L2P表管理的方法及设备。尽管具有热LBA的L2P表经常出于损耗均衡目的而移动,但如果表较小那么其副本更快。热L2P表片段可经存储于L2P表片段区中且可被过量提供。本发明的实施例还可用于改进大表的复制及/或提供大表的冗余。
损耗均衡技术可移动L2P表以使物理空间均等地老化。如果L2P表较大,那么用于复制的时间可能较长(tTableCopy)。针对许多装置,一旦表复制已经启动,其就无法被中止。然而,L2P表可分成L2P表片段且每一L2P表片段可个别地进行移动。用于复制L2P表片段的时间是tFragmentCopy=tTableCopy/(片段的#)。L2P表复制可在任何L2P表片段已经复制之后中止。可在仅复制对应于整数数量的L2P表片段的L2P地址转译的一部分之后中止L2P表复制。
图10是根据本发明的数个实施例的冗余逻辑到物理表片段的框图。如果大L2P表1014的一部分不再可靠,那么含有不可靠部分的L2P表片段1066可用来自L2P表片段区1022的L2P表片段1016代替。写入计数器可跟踪L2P表1014的每一部分的写入数量。L2P表1014的一部分可在计数器达到预定义极限时经引退且用L2P表片段1016代替。
尽管本文已说明及描述特定实施例,所属领域的一般技术人员应了解,经计算以实现相同结果的布置可代替展示的特定实施例。本发明希望涵盖本发明的数个实施例的调试或变化。应理解,以说明性方式且非限制性方式进行上文描述。所属领域的技术人员在检阅上文描述之后应明白上文实施例的组合及本文未明确描述的其它实施例。本发明的数个实施例的范围包含其中使用上文结构及方法的其它应用。因此,应参考所附权利要求书以及此类权利要求有权获得的等效物完整范围确定本发明的数个实施例的范围。
在前述具体实施方式中,出于简化本发明的目的,一些特征被一起分组在单个实施例中。本发明的此方法不应被解释为反映本发明的所揭示实施例必须使用比每一权利要求中明确所述的更多的特征的意图。而是,如所附权利要求书反映,本发明标的物在于少于所揭示单个实施例的所有特征。因此,所附权利要求特此并入到具体实施方式中,其中每个权利要求独立地作为单独的实施例。
Claims (20)
1.一种方法,其包括:
存储各自包含第一逻辑地址的逻辑地址到物理地址转译的多个逻辑到物理表;
存储各自包含第二逻辑地址的逻辑地址到物理地址转译的多个逻辑到物理表片段;
存储第一级索引,其包含:
针对所述第一逻辑地址中的每一者的所述多个逻辑到物理表中的相应者的物理表地址;及
指向针对所述第二逻辑地址中的每一者的第二级索引的相应指针;及
存储所述第二级索引,所述第二级索引包含针对所述第二逻辑地址中的每一者的相应逻辑到物理表片段的物理片段地址。
2.根据权利要求1所述的方法,其中所述第一逻辑地址包括冷逻辑地址;且
其中所述第二逻辑地址包含热逻辑地址及冷逻辑地址。
3.根据权利要求1所述的方法,其中存储所述多个逻辑到物理表、所述多个逻辑到物理表片段、所述第一级索引及所述第二级索引包括存储于次级存储装置中;且
其中所述方法进一步包含将所述第一级索引及所述第二级索引高速缓存于初级存储装置中。
4.根据权利要求3所述的方法,其进一步包括:
响应于所述表的物理媒体变得不可靠对所述多个逻辑到物理表中的一者进行分段;
更新所述第一级索引以包含指向针对所述多个逻辑到物理表中的所述一者的所述第二级索引的特定指针;
更新所述第二级索引以包含来自所述特定指针的所述第二专用区的片段的物理片段地址。
5.根据权利要求3所述的方法,其中存储所述多个逻辑到物理表片段包括存储于所述次级存储装置的第一专用区中;且
其中存储所述多个逻辑到物理表片段包括:
将所述多个逻辑到物理表片段中的每一者的相应第一部分存储于所述次级存储装置的所述第一专用区中;及
将所述多个逻辑到物理表片段中的每一者的相应第二部分存储于所述次级存储装置的第二专用区中。
6.根据权利要求5所述的方法,其中存储所述第一级索引及所述第二级索引包括将所述第一级索引及所述第二级索引存储于所述次级存储装置的所述第二专用区中。
7.根据权利要求5所述的方法,其进一步包括:
对在测量间隔内到所述逻辑地址中的每一者的写入的相应数量进行计数;
响应于在所述测量间隔内与特定逻辑到物理表片段相关联的那些写入数量超过写入的冷阈值数量将所述特定逻辑到物理表片段从所述第二专用区移动到所述第一专用区。
8.根据权利要求5所述的方法,其进一步包括:
对在测量间隔内到所述逻辑地址中的每一者的写入的相应数量进行计数;
响应于在所述测量间隔内与特定逻辑到物理表片段相关联的那些写入数量超过写入的热阈值数量将所述特定逻辑到物理表片段从所述第一专用区移动到所述第二专用区。
9.根据权利要求1所述的方法,其中存储所述第一级索引进一步包含:
存储与所述第一逻辑地址相关联的第一片段指示符;
存储与所述第二逻辑地址相关联的第二片段指示符及相应第二级索引类型指示符。
10.根据权利要求9所述的方法,其进一步包含:
通过存储第一相应第二级索引类型指示符指示仅具有一个热片段的第二级索引类型;
通过存储第二相应第二级索引类型指示符指示仅具有两个热片段的第二级索引类型;及
通过存储第三相应第二级索引类型指示符指示具有多于两个热片段的第二级索引类型。
11.根据权利要求1所述的方法,其进一步包括:
起始表复制操作以复制所述多个逻辑到物理表中的一者;及
在仅复制对应于整数数量的逻辑到物理表片段的所述逻辑地址到物理地址转译的一部分之后中止所述表复制操作。
12.一种设备,其包括:
初级存储装置;
次级存储装置;及
控制器,其耦合到所述初级存储装置及所述次级存储装置,其中所述控制器经配置以响应于接收逻辑地址:
使用所述逻辑地址搜索逻辑到物理表的所述初级存储装置中的第一级索引;
响应于找出存储于所述逻辑地址的所述第一级索引中的逻辑到物理表的物理表地址从所述逻辑到物理表检索对应于所述逻辑地址的所述次级存储装置的第一物理地址;
响应于找出指向存储于所述逻辑地址的所述第一级索引中的所述第二级索引的指针搜索逻辑到物理表片段的第二级索引;及
响应于找出存储于所述逻辑地址的所述第二级索引中的逻辑到物理表片段的物理片段地址从所述逻辑到物理表片段检索对应于所述逻辑地址的所述次级存储装置的第二物理地址。
13.根据权利要求12所述的设备,其中所述控制器进一步经配置以:
将所述第一级索引及所述第二级索引存储于所述次级存储装置中且将所述第一级索引及所述第二级索引的副本存储于所述次级存储装置中。
14.根据权利要求12到13中任一权利要求所述的设备,其中所述控制器进一步经配置以:
通过将更新数据存储在所述次级存储装置中的不同物理地址处更新与所述逻辑地址相关联且存储在所述次级存储装置的所述第二物理地址处的数据;
用新物理地址更新所述逻辑到物理表片段;及
将所述逻辑到物理表片段复制到具有不同物理片段地址的不同物理位置且用所述不同物理片段地址更新所述逻辑到物理表片段。
15.根据权利要求12到13中任一权利要求所述的设备,其中所述控制器进一步经配置以:
通过将更新数据存储在所述次级存储装置中的不同物理地址处更新与所述逻辑地址相关联且存储在所述次级存储装置的所述第一物理地址处的数据;
用所述新物理地址更新所述逻辑到物理表片段;及
将所述逻辑到物理表复制到具有不同物理表地址的不同物理位置且用所述不同物理表地址更新所述逻辑到物理表。
16.根据权利要求12到13中任一权利要求所述的设备,其中所述控制器进一步经配置以:
响应于所述逻辑到物理表的所述物理表地址存储于所述逻辑地址的所述第一级索引中;且
响应于在测量间隔内超过与所述逻辑地址相关联的数据的写入的热阈值数量:
将与所述逻辑地址相关联的所述数据复制到所述次级存储装置的所述第二物理地址;
向所述第一级索引添加指向所述逻辑地址的所述第二级索引的所述指针;及
移除存储于所述逻辑地址的所述第一级索引中的所述逻辑到物理表的所述物理表地址。
17.根据权利要求12到13中任一权利要求所述的设备,其中所述控制器进一步经配置以:
响应于指向所述第二级索引的所述指针存储于所述逻辑地址的所述第一级索引中;且
响应于在测量间隔内小于与所述逻辑地址相关联的数据的写入的冷阈值数量:
将与所述逻辑地址相关联的所述数据复制到所述次级存储装置的第三物理地址;
从所述第一级索引移除指向所述逻辑地址的所述第二级索引的所述指针;
向所述第一级索引添加所述逻辑地址的所述逻辑到物理表的所述物理表地址;及
用对应于所述逻辑地址的所述次级存储装置的所述第三物理地址更新所述逻辑到物理表。
18.根据权利要求12到13中任一权利要求所述的设备,其中所述次级存储装置不是位可变的。
19.根据权利要求12到13中任一权利要求所述的设备,其中所述次级存储装置是位可变的。
20.一种设备,其包括:
存储装置;及
控制器,其耦合到所述存储装置且经配置以:
存储各自包含第一逻辑地址的逻辑地址到物理地址转译的多个逻辑到物理表;
存储各自包含第二逻辑地址的逻辑地址到物理地址转译的多个逻辑到物理表片段;
存储第一级索引,其包含:
针对所述第一逻辑地址中的每一者的所述多个逻辑到物理表中的相应者的物理表地址;及
指向针对所述第二逻辑地址中的每一者的第二级索引的相应指针;及
存储所述第二级索引,所述第二级索引包含针对所述第二逻辑地址中的每一者的相应逻辑到物理表片段的物理片段地址。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/052,921 | 2018-08-02 | ||
US16/052,921 US10592427B2 (en) | 2018-08-02 | 2018-08-02 | Logical to physical table fragments |
PCT/US2019/041101 WO2020027995A1 (en) | 2018-08-02 | 2019-07-10 | Logical to physical table fragments |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112513823A true CN112513823A (zh) | 2021-03-16 |
Family
ID=69228726
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980050385.3A Pending CN112513823A (zh) | 2018-08-02 | 2019-07-10 | 逻辑到物理表片段 |
Country Status (6)
Country | Link |
---|---|
US (3) | US10592427B2 (zh) |
EP (1) | EP3830698A4 (zh) |
JP (1) | JP2021533467A (zh) |
KR (1) | KR20210028729A (zh) |
CN (1) | CN112513823A (zh) |
WO (1) | WO2020027995A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116383098A (zh) * | 2023-06-05 | 2023-07-04 | 成都佰维存储科技有限公司 | 地址索引方法、装置、可读存储介质及电子设备 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10592427B2 (en) * | 2018-08-02 | 2020-03-17 | Micron Technology, Inc. | Logical to physical table fragments |
KR20230060569A (ko) * | 2021-10-27 | 2023-05-08 | 삼성전자주식회사 | 컨트롤러, 스토리지 장치 및 스토리지 장치의 동작 방법 |
US11960397B2 (en) | 2022-06-16 | 2024-04-16 | Western Digital Technologies, Inc. | Data mapping comparison for improved synchronization in data storage devices |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5428759A (en) * | 1992-03-30 | 1995-06-27 | Unisys Corporation | Associative memory system having segment and page descriptor content-addressable memories |
WO2010078222A1 (en) * | 2009-01-05 | 2010-07-08 | Sandisk Corporation | Non-volatile memory and method with write cache partitioning |
US20120023282A1 (en) * | 2010-07-21 | 2012-01-26 | Seagate Technology Llc | Multi-Tier Address Mapping in Flash Memory |
US20130326121A1 (en) * | 2012-05-30 | 2013-12-05 | Silicon Motion, Inc. | Data-storage device and flash memory control method |
US20140281132A1 (en) * | 2013-03-15 | 2014-09-18 | Marielle Bundukin | Method and system for ram cache coalescing |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4439096B2 (ja) * | 2000-08-28 | 2010-03-24 | 株式会社東芝 | メモリカード及び同カードに適用されるアドレス変換方法 |
US20090193184A1 (en) * | 2003-12-02 | 2009-07-30 | Super Talent Electronics Inc. | Hybrid 2-Level Mapping Tables for Hybrid Block- and Page-Mode Flash-Memory System |
US9547589B2 (en) | 2008-06-18 | 2017-01-17 | Super Talent Technology, Corp. | Endurance translation layer (ETL) and diversion of temp files for reduced flash wear of a super-endurance solid-state drive |
US8725927B2 (en) * | 2008-10-15 | 2014-05-13 | Micron Technology, Inc. | Hot memory block table in a solid state storage device |
US8612666B2 (en) * | 2009-06-30 | 2013-12-17 | Intel Corporation | Method and system for managing a NAND flash memory by paging segments of a logical to physical address map to a non-volatile memory |
JP2011203916A (ja) * | 2010-03-25 | 2011-10-13 | Toshiba Corp | メモリコントローラ、および半導体記憶装置 |
US8924632B2 (en) * | 2011-09-16 | 2014-12-30 | Apple Inc. | Faster tree flattening for a system having non-volatile memory |
JP5907739B2 (ja) * | 2012-01-26 | 2016-04-26 | 株式会社日立製作所 | 不揮発性記憶装置 |
TWI486767B (zh) * | 2012-06-22 | 2015-06-01 | Phison Electronics Corp | 資料儲存方法、記憶體控制器與記憶體儲存裝置 |
US9032137B2 (en) | 2012-11-21 | 2015-05-12 | Intel Corporation | Flexible wear management for non-volatile memory |
KR20150006614A (ko) * | 2013-07-09 | 2015-01-19 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
US9645741B2 (en) | 2014-02-05 | 2017-05-09 | Sandisk Technologies Llc | Storage module and host device for storage module defragmentation |
US9779021B2 (en) | 2014-12-19 | 2017-10-03 | International Business Machines Corporation | Non-volatile memory controller cache architecture with support for separation of data streams |
US10915256B2 (en) * | 2015-02-25 | 2021-02-09 | SK Hynix Inc. | Efficient mapping scheme with deterministic power transition times for flash storage devices |
US9507711B1 (en) * | 2015-05-22 | 2016-11-29 | Sandisk Technologies Llc | Hierarchical FTL mapping optimized for workload |
US10459635B2 (en) * | 2016-02-11 | 2019-10-29 | SK Hynix Inc. | Window based mapping |
US10162561B2 (en) | 2016-03-21 | 2018-12-25 | Apple Inc. | Managing backup of logical-to-physical translation information to control boot-time and write amplification |
US10592427B2 (en) * | 2018-08-02 | 2020-03-17 | Micron Technology, Inc. | Logical to physical table fragments |
-
2018
- 2018-08-02 US US16/052,921 patent/US10592427B2/en active Active
-
2019
- 2019-07-10 EP EP19844760.9A patent/EP3830698A4/en not_active Withdrawn
- 2019-07-10 KR KR1020217006041A patent/KR20210028729A/ko not_active Application Discontinuation
- 2019-07-10 JP JP2021505696A patent/JP2021533467A/ja not_active Ceased
- 2019-07-10 CN CN201980050385.3A patent/CN112513823A/zh active Pending
- 2019-07-10 WO PCT/US2019/041101 patent/WO2020027995A1/en unknown
- 2019-10-17 US US16/655,769 patent/US11074192B2/en active Active
-
2021
- 2021-07-26 US US17/385,380 patent/US11669461B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5428759A (en) * | 1992-03-30 | 1995-06-27 | Unisys Corporation | Associative memory system having segment and page descriptor content-addressable memories |
WO2010078222A1 (en) * | 2009-01-05 | 2010-07-08 | Sandisk Corporation | Non-volatile memory and method with write cache partitioning |
US20120023282A1 (en) * | 2010-07-21 | 2012-01-26 | Seagate Technology Llc | Multi-Tier Address Mapping in Flash Memory |
US20130326121A1 (en) * | 2012-05-30 | 2013-12-05 | Silicon Motion, Inc. | Data-storage device and flash memory control method |
US20140281132A1 (en) * | 2013-03-15 | 2014-09-18 | Marielle Bundukin | Method and system for ram cache coalescing |
Non-Patent Citations (1)
Title |
---|
王江涛等: "闪存数据库:现状、技术与展望", 《计算机学报》, vol. 36, no. 8, 15 August 2013 (2013-08-15), pages 1549 - 1567 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116383098A (zh) * | 2023-06-05 | 2023-07-04 | 成都佰维存储科技有限公司 | 地址索引方法、装置、可读存储介质及电子设备 |
CN116383098B (zh) * | 2023-06-05 | 2023-09-12 | 成都佰维存储科技有限公司 | 地址索引方法、装置、可读存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
US11074192B2 (en) | 2021-07-27 |
US20200050554A1 (en) | 2020-02-13 |
WO2020027995A1 (en) | 2020-02-06 |
US20200042458A1 (en) | 2020-02-06 |
US20210349830A1 (en) | 2021-11-11 |
EP3830698A1 (en) | 2021-06-09 |
US11669461B2 (en) | 2023-06-06 |
KR20210028729A (ko) | 2021-03-12 |
JP2021533467A (ja) | 2021-12-02 |
EP3830698A4 (en) | 2022-05-18 |
US10592427B2 (en) | 2020-03-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10564690B2 (en) | Power interrupt management | |
US9507711B1 (en) | Hierarchical FTL mapping optimized for workload | |
US9753649B2 (en) | Tracking intermix of writes and un-map commands across power cycles | |
US8448018B2 (en) | Stripe-based memory operation | |
KR101528714B1 (ko) | 메모리 유닛 동작 방법 및 메모리 제어기 | |
US11669461B2 (en) | Logical to physical table fragments | |
US20100185802A1 (en) | Solid state memory formatting | |
US11983107B2 (en) | Enhanced filesystem support for zone namespace memory | |
KR20150018654A (ko) | 솔리드-스테이트 미디어에서 다단계 맵핑을 이용한 트림 메카니즘 | |
KR20190061426A (ko) | 플래시 메모리 시스템 및 그 제어 방법 | |
US20240143511A1 (en) | Dynamically sized redundant write buffer with sector-based tracking | |
CN112805692A (zh) | 混合式双列直插式存储器模块中的高速缓存操作 | |
US11599466B2 (en) | Sector-based tracking for a page cache | |
WO2023201462A1 (en) | Namespace level valid translation unit count | |
CN112286445A (zh) | 存储器系统及控制其温度的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |