CN112204515A - 逻辑到物理数据结构 - Google Patents
逻辑到物理数据结构 Download PDFInfo
- Publication number
- CN112204515A CN112204515A CN201980036672.9A CN201980036672A CN112204515A CN 112204515 A CN112204515 A CN 112204515A CN 201980036672 A CN201980036672 A CN 201980036672A CN 112204515 A CN112204515 A CN 112204515A
- Authority
- CN
- China
- Prior art keywords
- data structure
- location
- lba
- hash function
- 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.)
- Pending
Links
- 230000015654 memory Effects 0.000 claims abstract description 95
- 230000006870 function Effects 0.000 claims description 52
- 238000000034 method Methods 0.000 claims description 28
- 230000004044 response Effects 0.000 claims description 7
- 238000012005 ligant binding assay Methods 0.000 claims 1
- 238000013507 mapping Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 12
- 238000013459 approach Methods 0.000 description 9
- 238000003491 array Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000002085 persistent effect Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 230000008569 process Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012806 monitoring device Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000013519 translation Methods 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/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
- 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/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0605—Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
-
- 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
- G06F12/1018—Address translation using page tables, e.g. page table structures involving hashing techniques, e.g. inverted page tables
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- 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/1048—Scalability
-
- 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/1056—Simplification
-
- 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/7208—Multiple device management, e.g. distributing data over multiple flash devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Abstract
本发明提供一种实例设备,其包括耦合到非易失性存储器NVM装置的控制器。所述控制器可经配置以引起将逻辑块地址LBA存储在所述NVM装置中的第一逻辑到物理L2P数据结构中且将物理块地址PBA存储在所述NVM装置中的第二L2P数据结构中。所述第一L2P数据结构及所述第二L2P数据结构可具有与其相关联的相同大小。
Description
技术领域
本发明大体上涉及半导体存储器及方法,且更特定来说,涉及与逻辑到物理数据结构相关的设备及方法。
背景技术
存储器装置通常被提供为计算系统中的内部半导体集成电路。存在许多不同类型的存储器,包含易失性及非易失性存储器。易失性存储器可能需要电力来维持其数据(例如,主机数据、错误数据等)且包含随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、同步动态随机存取存储器(SDRAM)及晶闸管随机存取存储器(TRAM)等等。非易失性存储器可通过在不被供电时保留经存储数据来提供持久性数据且可包含NAND快闪存储器及NOR快闪存储器等等。
可根据逻辑块地址(LBA)及物理块地址(PBA)存储数据。LBA与PBA之间的映射可被称为逻辑到物理(L2P)映射。LBA与PBA之间的映射可经存储在树结构中。用于存储L2P数据的树结构可包含P层级L2P表,其中P是非零整数。根据一些方法的简单实例可包含2层级L2P表。第一层级表可含有第二层级表的地址,其可被称为“段”。在一些方法中,每一段可包含用于小范围的连续LBA(例如,1024个LBA)的L2P表。
附图说明
图1是根据本发明的数个实施例的呈包括存储器系统的计算系统的形式的设备的功能性框图。
图2是根据本发明的数个实施例的呈存储器系统的形式的设备的框图。
图3A是根据本发明的数个实施例的快闪存储器数据结构的框图。
图3B是根据本发明的数个实施例的实例逻辑到物理数据结构的框图。
图3C是根据本发明的数个实施例的实例逻辑到物理数据结构的另一框图。
图4说明根据本发明的数个实施例的逻辑到物理数据结构的实例流程图。
具体实施方式
本发明包含与逻辑到物理数据结构相关的设备及方法。一种实例设备包括耦合到非易失性存储器(NVM)装置的控制器。所述控制器可经配置以致使逻辑块地址(LBA)被存储在所述NVM装置中的第一逻辑到物理(L2P)数据结构中且物理块地址(PBA)被存储在所述NVM装置中的第二L2P数据结构中。所述第一L2P数据结构及所述第二L2P数据结构可具有与其相关联的相同大小。
例如个人计算机、膝上型计算机、平板计算机、平板手机、智能电话、物联网(IoT)启用装置等的计算系统可包含一或多个存储器装置(例如,存储器资源)以存储与计算系统相关联的数据及/或指令。如本文中所使用,“IoT启用装置”包含物理装置、交通工具、家用电器以及嵌入有电子器件、软件、传感器、致动器及/或网络连接性的其它装置,所述网络连接性使此类物体能够连接及交换数据。IoT启用装置的实例包含可穿戴技术、智能家用装置、智能购物系统及监视装置,以及其它信息物理系统。另外,计算系统可包含一或多个处理资源以执行系统软件、此操作系统以为在计算系统上运行的应用程序提供通用服务。操作系统的实例包含等。
在操作期间,计算系统可将数据(例如,命令、固件、软件、计算机代码、元代码、框架文件等)存储在一或多个存储器装置中。此类存储器装置可为易失性的或非易失性的(例如,持久性的)。非易失性存储器(NVM)装置的实例可包含例如NAND快闪存储器、NOR快闪存储器等的持久性快闪存储器资源以及新兴存储器装置。新兴存储器(EM)技术可包含相变存储器(PCM)、磁阻式随机存取存储器(MRAM)、电阻式随机存取存储器(ReRAM)、铁电RAM(FeRAM)及/或3D XPoint存储器,其与其它存储器技术相比可改善存储器相关延时。易失性存储器装置可包含需要电力来维持经存储信息的存储器装置。易失性存储器装置的实例包含动态随机存取存储器(DRAM)及静态随机存取存储器(SRAM)等等。
由(若干)存储器装置存储的数据可驻留在(若干)存储器装置的物理位置中。其中存储有数据的物理位置(例如,物理块地址)可经映射到逻辑块地址(LBA)。逻辑块地址可经存储在数据结构中且可经调用以存取其中存储有数据的物理块地址(PBA)。例如,为了存取(例如,读取、写入、擦除等)数据,可调用LBA,LBA又将计算系统引导到PBA。如本文中所使用,“数据结构”是指用于组织及/或存储数据的专用格式,其可或可不以行及列来组织。数据结构的实例包含阵列、文件、记录、表、树、链表、哈希表等。
逻辑块寻址是可由主机用于标识数据的逻辑扇区的方案。例如,每一逻辑扇区可对应于唯一逻辑块地址(LBA)。另外,LBA也可对应于物理地址。数据的逻辑扇区可为数据的数个字节(例如,256个字节、512个字节或1,024个字节)。然而,实施例不限于这些实例。
LBA与PBA之间的映射可经存储在逻辑到物理(L2P)数据结构(例如,L2P地址数据结构)中。在一些方法中,L2P数据结构是以树形结构布置。根据一些方法的用于存储L2P数据结构的实例树结构可包含P层级L2P表,其中P是非零整数。根据一些方法的简单实例可包含2层级L2P表。第一层级表可含有第二层级表的地址,其可被称为“段”。在一些方法中,每一段可包含用于小范围的连续LBA(例如,1024个LBA)的L2P表。
在一些方法中,利用如上文所描述的树状结构的L2P数据结构来简化在计算装置的操作期间对给定LBA的搜索。此外,在一些方法中,利用如上文所描述的树状结构的L2P数据结构来最小化与第一层级表相关联的大小。例如,如果与第一层级表相关联的大小保持在某个大小阈值内,那么可将第一层级表存储在计算系统的存储控制器的SRAM及/或DRAM部分中。
然而,其中使用树状结构的L2P数据结构的方法可能遭受各种缺点。例如,随着存储器装置的存储密度增加,使用树状结构的L2P数据结构的方法利用所述树中的额外层级。例如,随着存储器装置的存储密度增加,树状结构的L2P数据结构中的层级的数目可对应地增加。在一些方法中,这可能导致L2P查找及/或转译的较长延迟。此外,随着树的层级的数目增加,管理的复杂度(例如,存储器管理方案的复杂度)也增加。延迟时间的增加及/或管理复杂度的增加可对应于跨树的每一层级传播的L2P表的变化。
相比之下,本文中的实施例描述可在其中提供非易失性存储器装置(例如,新兴NVM装置)及快闪存储器装置(例如,NAND存储器装置)作为存储器装置的部分的应用中使用的L2P表结构。在一些实施例中,本文中所描述的L2P数据结构可包含L2P映射表。第一L2P映射表可包含逻辑块地址且第二L2P映射表可包含物理块地址。在一些实施例中,第一L2P映射表(例如,包含逻辑块地址的L2P映射表)及第二L2P映射表(例如,包含物理块地址的L2P映射表)可为相同大小(例如,其可包含相同数目个行及相同数目个列)。
在一些实施例中,可使用多个哈希函数(例如,两个哈希函数)来存取第一L2P映射表。接着,可使用位于利用哈希函数的第一L2P映射表中的索引来定位第二L2P映射表中的对应物理块地址的物理位置。在一些实施例中,在定位第二L2P映射表中的对应物理块地址的物理位置之后,可将物理块地址写入到第二L2P映射表中的物理位置或从其读取物理块地址。
在本发明的以下详细描述中,参考形成本发明的一部分的附图,且在附图中以说明方式展示可如何实践本发明的一或多个实施例。足够详细地描述这些实施例以使所属领域的一般技术人员能够实践本发明的实施例,且应理解,可利用其它实施例并可在不脱离本发明的范围的情况下进行过程改变、电气改变及/或结构改变。如本文中所使用,尤其是相对于附图中的参考数字的例如“N”等的指定符指示可包含如此指定的数个特定特征。如本文中所使用,“数个”特定事物是指一或多个此类事物(例如,数个存储器阵列可指一或多个存储器阵列)。“多个”意在指多于一个此类事物。
本文中的图遵循编号惯例,其中首位或前几位数字对应于附图图号且其余数字标识附图中的元件或组件。可通过使用类似数字来识别不同图之间的类似元件或组件。例如,110可在图1中指称元件“10”,且类似元件在图2中可被称为210。将明白,可添加、交换及/或消除本文中的各种实施例中所展示的元件以便提供本发明的数个额外实施例。另外,将明白,图中所提供的元件的比例及相对尺度意在说明本发明的某些实施例且不应被认为是限制性的。
图1是根据本发明的数个实施例的呈包括存储器系统104的计算系统100的形式的设备的功能性框图。如本文中所使用,“设备”可指但不限于各种结构中的任一者或结构组合,举例来说例如电路或电路系统、裸片或若干裸片、模块或若干模块、装置或若干装置或系统或若干系统。
存储器系统104可为例如固态驱动器(SSD)。在图1中所说明的实施例中,存储器系统104包含主机接口106、存储器(例如,数个存储器装置110-1、110-2、...、110-N)(例如,固态存储器装置)以及耦合到物理主机接口106及存储器装置110-1、110-2、...、110-N的控制器108(例如,SSD控制器)。
存储器装置110-1、110-2、...、110-N可包含例如数个非易失性存储器阵列(例如,非易失性存储器单元的阵列)。例如,存储器装置110-1、110-2、...、110-N可包含数个非易失性存储器阵列,例如新兴存储器阵列及/或快闪存储器阵列,如本文中结合图2更详细地描述。
在一些实施例中,存储器装置110-1、...、110-N可包含数个存储器单元(例如,非易失性存储器单元)的阵列。例如,所述阵列可为具有NAND架构的快闪存储器阵列。然而,实施例不限于特定类型的存储器阵列或阵列架构。可将存储器单元例如分组成包含存储器单元的数个物理页的数个块。在数个实施例中,块是指作为一个单位一起擦除的存储器单元的群组。数个块可被包含在存储器单元的平面中且阵列可包含数个平面。作为一个实例,存储器装置可经配置以每页存储8KB(千字节)的用户数据,每块存储128个用户数据页,每平面存储2048个块且每装置存储16个平面。
在操作中,例如,可将数据作为数据页写入到存储器系统的存储器装置(例如,存储器系统104的存储器装置110-1、...、110-N)及/或从其读取。因而,数据页可被称为存储器系统的数据传送大小。数据可以被称为扇区(例如,主机扇区)的数据段传送到主机102或从主机102传送。因而,数据的扇区可被称为主机的数据传送大小。在一些实施例中,NAND块可被称为擦除块,其中块是擦除单位且页是读取及/或写入的量度。
主机接口106可用于在存储器系统104与例如主机102的另一装置之间传达信息。主机102可包含存储器存取装置(例如,处理器)。如本文中所使用,“处理器”可意指数个处理器,例如并行处理系统、数个协处理器等。实例主机可包含个人膝上型计算机、台式计算机、数码相机、数字记录及回放装置、移动(例如,智能)电话、PDA、存储卡读取器、接口集线器、IoT启用装置等。主机102可包含系统主板及/或底板且可包含数个处理资源(例如,一或多个处理器、微处理器等)。系统100可包含单独集成电路或主机102及存储器系统104两者可在同一集成电路上。系统100可为例如服务器系统及/或高性能计算(HPC)系统及/或其部分。
为了清楚起见,系统100已被简化为集中于与本发明特别相关的特征。存储器系统104可包含一或多个存储器资源,例如DRAM阵列(例如,2T2C DRAM阵列、3T DRAM阵列等)、FeRAM、SRAM阵列、STT RAM阵列、PCRAM阵列、TRAM阵列、RRAM阵列、NAND快闪存储器阵列、3DXpoint存储器、NOR快闪存储器阵列及/或包含例如控制器、3D Xpoint存储器部分及NAND快闪存储器部分的存储子系统。
主机接口106可呈标准化物理接口的形式。例如,当存储器系统104用于计算系统100中的信息存储时,主机接口106可为串行高级技术附件(SATA)物理接口、外围组件互连快速(PCIe)物理接口或通用串行总线(USB)物理接口,以及其它物理连接器及/或接口。然而,通常,主机接口106可提供用于在存储器系统104与具有和主机接口106兼容的接受器(receptor)的主机(例如,主机102)之间传递控制、地址、信息(例如,数据)及其它信号的接口。
控制器108可包含例如控制电路系统及/或逻辑(例如,硬件及固件)。控制器108可被包含在与存储器110-1、110-2、...、110-N相同的物理装置(例如,相同裸片)上。例如,控制器108可为耦合到包含物理主机接口106及存储器110-1、110-2、...、110-N的印刷电路板的专用集成电路(ASIC)。替代地,控制器108可被包含在通信地耦合到包含存储器110-1、110-2、...、110-N的物理装置的单独物理装置上。在数个实施例中,控制器108的组件可作为分布式控制器而跨多个物理装置(例如,在与存储器相同的裸片上的一些组件,及在不同裸片、模块或板上的一些组件)分布。
控制器108可与存储器装置110-1、110-2、...、110-N进行通信以感测(例如,读取)、编程(例如,写入)及/或擦除信息,以及其它操作。控制器108可具有可为数个集成电路及/或离散组件的电路系统。在数个实施例中,控制器108中的电路系统可包含用于控制跨存储器装置110-1、110-2、...、110-N的存取的控制电路系统及/或用于在主机102与存储器系统104之间提供转译层(例如,快闪存储器转译层)的电路系统。
控制器108可控制每一相应存储器装置110-1、110-2、...、110-N作为L2P数据结构的专用区(例如块寻址部分)的操作(例如,配置每一相应存储器装置110-1、...、110-N的一部分以存储一或多个L2P数据结构,如本文中结合图2更详细地描述)。例如,每一相应存储器装置110-1、110-2、...110-N的第一部分可经配置以存储第一L2P数据结构,且每一相应存储器装置110-1、110-2、...、110-N的第二部分可经配置以存储第二L2P数据结构。
每一相应存储器装置110-1、110-2、...、110-N的第一部分可为例如每一相应存储器中的存储器单元的第一多个块(例如,物理块),如本文中将进一步描述(例如,结合图1),且可在本文中被称为存储器的第一部分。另外,每一相应存储器装置110-1、110-2、...、110-N的部分包含第二多个块、第三多个块等。
每一相应存储器110-1、110-2、...、110-N的第二部分可为例如每一相应存储器中的存储器单元的第二多个块(例如,物理块),如本文中将(例如,结合图2)进一步描述。控制器108可致使一或多个L2P数据结构(例如,图2中所说明的L2P数据结构216-1、...、216-N)被存储在相应存储器装置110-1、...、110-N中。
图1中所说明的实施例可包含未说明以免混淆本发明的实施例的额外电路系统、逻辑及/或组件。例如,存储器装置104可包含地址电路系统以锁存通过I/O电路系统在I/O连接器上提供的地址信号。地址信号可由行解码器及列解码器接收及解码,以存取存储器110-1、110-2、...、110-N。
图2是根据本发明的数个实施例的呈存储器系统的形式的设备的框图。如图2中所说明,控制器208可经耦合到存储器装置210。控制器208可类似于图1中所说明的控制器108,且存储器装置210可类似于图1中所说明的存储器装置110-1、...、110-N中的至少一者。存储器装置210可包含NVM装置212及快闪存储器装置214。控制器208、存储器装置210、NVM装置212及/或快闪存储器装置214可单独地被认为是“设备”。
NVM装置212可包含多个L2P数据结构216-1、...、216-N。尽管在图2中被展示为多个L2P数据结构216-1、...、216-N,但在至少一个实施例中,NVM装置212可包含两个相异L2P数据结构216-1、...、216-N;然而,实施例不限于两个相异L2P数据结构216-1、...、216-N。例如,在至少一个实施例中,NVM装置212可包含第一L2P数据结构(例如,L2P数据结构216-1)及第二L2P数据结构(例如,L2P数据结构216-N)。然而,实施例不限于此,且NVM装置212可包含多于两个相异L2P数据结构216-1、...、216-N(例如,三个或更多个相异L2P数据结构)。
L2P数据结构216-1、...、216-N可为可配置的以存储对应于L2P寻址方案的数据。例如,L2P数据结构216-1、...、216-N可为可配置的以存储L2P寻址表。在一些实施例中,L2P数据结构216-1可为a x b表(例如,a x b张量或多维阵列)且L2P数据结构216-N可为a x b表,其中a及b是非零整数。换句话说,在一些实施例中,L2P数据结构216-1及L2P数据结构216-N可包含相同数量的列及相同数量的行(例如,L2P数据结构216-1及L2P数据结构216-N可为相同大小)。在一些实施例中,控制器208可经配置以控制L2P数据结构216-1、...、216-N中的存储。
L2P数据结构216-1可类似于本文中结合图3B更详细地说明及描述的数据结构Λ,且L2P数据结构216-N可类似于本文中结合图3C更详细地说明及描述的数据结构Π。例如,L2P数据结构216-1可包含逻辑块地址(LBA),而L2P数据结构216-N可包含物理块地址(PBA)。图2中所说明的两个L2P数据结构216-1及216-N可按以下方式相关:如果LBA经存储在L2P数据结构216-1中的第i位置(position)(例如,位置(location)),那么对应PBA可经存储在L2P数据结构216-N的第i位置中。在一些实施例中,可通过执行多个哈希函数来定位、写入及/或读取存储在L2P表216-1中的LBA。在非限制性实例中,可通过执行在本文中被称为h及s的两个哈希函数来定位、写入及/或读取存储在L2P表216-1中的LBA。
哈希函数h及s可为LBA的函数。为了简单起见,LBA在本文中可被称为l。换句话说,第一哈希函数h可被称为h(l),且第二哈希函数可被称为s(l)。在一些实施例中,第一哈希函数h(l)可对应于LBA l的哈希地址,且第二哈希函数s(l)可对应于LBA l的哈希增量,如本文中结合方程式1到7以及表1及2更详细地描述。
在一些实施例中,可选择哈希函数h及s使得其可高效地计算。如本文中所使用,术语“可高效地计算”是指可容易地以硬件实施的函数。此外,可选择哈希函数h及s以具有低冲突概率。此处术语“低冲突概率”是指在接收到不同输入值之后可能输出不同哈希值的函数。例如,当h及s具有“低冲突概率”时,在不同LBA(例如,l的不同值)用作哈希函数的输入时,每一哈希函数h(l)及s(l)在执行之后将输出不同哈希值,如本文中结合表1更详细地描述。
与其中L2P数据经存储在多层级树结构中的一些方法相比,通过使用两个L2P地址表(例如,L2P数据结构216-1及L2P数据结构216-N),即使随着存储器装置210的存储密度增加也可最小化数据结构的数目(例如,在一些先前方法中使用的树的层级)的数目。例如,本文中所描述的其中利用两个离散L2P地址表(例如,第一L2P数据结构216-1及第二L2P数据结构216-N)的实施例可随着存储器装置210的存储密度增加而减少一些方法中使用的数据结构(例如,树)的数目。然而,如上文所描述,实施例不限于两个离散L2P地址表,且本发明意在涵盖其中多于两个离散L2P地址表可结合存储及检索逻辑及物理块地址使用的实例。
通过使用两个离散L2P地址表(例如,L2P数据结构216-1及L2P数据结构216-N),可仅使用两次操作来写入及/或读取LBA。例如,在一些实施例中,通过利用哈希函数h(l)及s(l),可仅使用两次写入操作来写入LBA。作为实例,当快闪存储器装置214含有少于阈值数量的条目时(例如,当部分地填充快闪存储器装置214时),本文中的实施例允许仅使用两次写入操作来将LBA写入到L2P数据结构216-1。在其中快闪存储器装置214含有多于阈值数量的条目的实施例中,本文中的实施例可允许仅使用三次写入操作来将LBA写入到L2P数据结构216-1。实施例不限于此;然而,且在一些实施例中,基于快闪存储器装置214中含有的条目的数量,可使用多于三次写入操作来将LBA写入到L2P数据结构216-1。
在一些实施例中,L2P数据结构216-1可经配置使得对其部分地排序,如本文中结合图3A到3C更详细地描述。如本文中所使用,“部分地排序”是指其中L2P数据结构216-1反映L2P数据结构216-1中的某些元素之间的二进制关系的状况。例如,L2P数据结构216-1中的某些元素可包含在对216-1排序方面先于L2P数据结构中的另一元素的元素。然而,并非L2P数据结构216-1中的每个元素均需要展现一个元素在排序方面先于另一元素的性质,且L2P数据结构216-1可包含数对元素,其中所述对中的任一元素都不在排序方面先于所述对中的其它元素。在一些实施例中,控制器208可经配置以维持L2P数据结构216-1使得对L2P数据结构216-1部分地排序。本文中结合图3A到3C更详细地论述对L2P数据结构216-1部分地排序的状况。
快闪存储器装置214可包含快闪存储器数据结构218。快闪存储器数据结构218可为可配置的以存储对应于存储在L2P数据结构216-1、...、216-N中的PBA及/或LBA的位置的数据,如本文中结合图3A更详细地描述。在一些实施例中,控制器208可经配置以控制对应于快闪存储器数据结构218中的PBA及/或LBA的位置的数据的存储。
如上文所论述,快闪存储器装置214可包含电子(例如,固态)非易失性存储器存储装置的一或多个部分。例如,快闪存储器装置214可包含NAND快闪存储器、NOR快闪存储器、NVRAM快闪存储器等的一或多个部分。快闪存储器装置214可经配置以被成块(或页)写入(或读取),所述块可小于整个快闪存储器装置214可用的存储空间量。然而,在一些实施例中,可逐字节地写入或读取快闪存储器装置214(例如,可独立地写入或读取快闪存储器装置214的位置)。
在一些实施例中,如方程式1中所展示,哈希函数h(l)及s(l)可被定义为对于n个LBAS(其中0≤n≤n-1)且对于m个PBA(其中m>n)
在方程式1中,可选择哈希函数s(l)使得s(l)与m互质。如本文中所使用,术语“互质”(或“互素”)描述两个整数使得不存在大于1的将所述两个整数除尽的整数。例如,整数12及13互质,因为不存在大于1的将12及13两者除尽的整数。相比之下,整数12及14不互质,因为存在大于1的将12及14两者除尽的整数(例如,2)。
在一些实施例中,通过选择s(l)使得其与m互质,可检查LBA结构Λ中的每一个相异位置(例如,本文在图3B中所说明的LBA数据表Λ316-1)。
如方程式2中所展示,L2P数据结构216-1(例如,图3B中所说明的LBA数据表Λ316-1)及L2P数据结构216-N(例如,图3B中所说明的PBA数据表Π316-1)可包含m个元素。例如,L2P数据结构216-1及L2P数据结构216-N可经配置使得针对每一PBA存在一个元素m。
在一些实施例中,L2P数据结构216-1及L2P数据结构216-N可为空。例如,在某个时间段,L2P数据结构216-1及L2P数据结构216-N可能不含有数据(例如,L2P数据结构216-1可能不含有LBA且L2P数据结构216-N可能不含有PBA),如由方程式3所展示:
Λi=Πi=-1针对所有i (方程式3)
主机(例如,本文在图1中所说明的主机102)可将LBA(l)写入到L2P数据结构216-1中的位置。在一些实施例中,在L2P数据结构216-N中可存在其中可写入有PBA(p)的对应空位置。可使用方程式4来确定L2P数据结构216-1中用于写入LBA的位置:
i=h(l) (方程式4)
在一些实施例中,如果如方程式3中所展示那样Λi=-1,那么L2P数据结构216-1中的第i位置为空且L2P数据结构216-1及L2P数据结构216-N的值可被设置为如方程
式5中所展示那样:
相比之下,如果L2P中的第i位置被占用,如方程式6中所展示,那么可能发生冲突。如本文中所使用,“冲突”是其中由哈希函数h(l)确定的L2P数据结构216-1中的位置已含有与l不同的LBA的情景。当检测到冲突时,无法在L2P数据结构216-1中的现存LBA上方写入新LBA。代替地,如果检测到冲突,那么第二哈希函数s(l)可用于确定L2P数据结构216-1中用于写入LBA的不同位置。
Λi=l′≠l (方程式6)
下文结合图3A到3C进一步描述将LBA写入到L2P数据结构216-1及将PBA写入到L2P数据结构216-N。
图3A是根据本发明的数个实施例的快闪存储器数据结构218的框图。快闪存储器装置可类似于图2中所说明的快闪存储器装置214。如图3A中所展示,快闪存储器数据结构318可包含多个位置(例如,例如图2中所说明的快闪存储器装置214的快闪存储器装置的存储位置)。此外,如图3A中所展示,快闪存储器数据结构318展示多个步(例如,步0、...、步4),所述步将在下文以实例方式进行描述。例如,图3A展示快闪存储器装置在多个步处的状态。
在图3A中,一些位置可为空余的、有效的或无效的。这些状态可随着时间增加且将数据写入到快闪存储器装置(例如,随着将数据写入到快闪存储器数据结构318)而改变。如图3A中所说明,空余的位置(例如,其中未存储有对应数据的位置)被指示为白框。含有有效数据的位置(例如,与给定LBA相关联的内容的最新版本)用单个哈希模式指示,且无效的位置(例如,含有对主机不再有效的数据的位置)由交叉影线指示。例如,在步0处,对应于索引0的位置是有效的,因为其含有与LBA 2相关联的数据的最新版本。相比之下,在步3处,对应于索引0的位置是无效的,因为LBA 2已由主机更新,且最新内容现在位于位置3中。
图3B是根据本发明的数个实施例的实例L2P数据结构的框图。图3B中所说明的L2P数据结构316-1可类似于图2中所说明的L2P数据结构216-1。如图3B中所展示,L2P数据结构316-1可包含多个位置(例如,例如图2中所说明的L2P数据结构216-1的LBA表中的位置)。此外,如图3B中所展示,L2P数据结构316-1展示多个步(例如,步0、...、步4),所述步将在下文以实例方式进行描述。例如,图3B展示L2P数据结构316-N针对多个步的演进。
图3C是根据本发明的数个实施例的实例L2P数据结构的另一框图。图3C中所说明的L2P数据结构316-N可类似于图2中所说明的L2P数据结构216-N。如图3C中所展示,L2P数据结构316-N可包含多个位置(例如,例如图2中所说明的L2P数据结构216-N的LBA表中的位置)。此外,如图3C中所展示,L2P数据结构316-N展示多个步(例如,步0、...、步4),所述步将在下文以实例方式进行描述。例如,图3C展示L2P数据结构316-N针对多个步的演进。
在以下非限制性实例中,我们假设存在8个PBA(例如,m=8)及6个LBA(例如,n=6)。方程式7中展示此实例的两个哈希函数h(l)及s(l)的实例:
尽管方程式7中所展示的取模运算展示除数8,但实施例不限于此,且方程式7中所展示的h(l)及s(l)可具有与8不同的除数。例如,除数x,其中x是整数,可取代方程式7中的8来使用。表1中展示由其中m=8且n=6的实例的两个哈希函数h(l)及s(l)生成的值:
LBA l | h(l) | s(l) |
0 | 0 | 3 |
1 | 6 | 5 |
2 | 4 | 7 |
3 | 2 | 1 |
4 | 0 | 3 |
5 | 6 | 5 |
表1
继续这个实例,主机(例如,本文在图1中所说明的主机102)可将LBA序列写入到存储器装置(例如,本文在图2中所说明的存储器装置210)。在一些实施例中,可以步序列(例如,图3A到3C中所展示的步0、...、步4)写入LBA序列。LBA的实例序列可为表2中所展示的以下LBA序列:
步0 | 步1 | 步2 | 步3 | 步4 |
2 | 4 | 5 | 2 | 0 |
表2
在图3A到3C中所展示的步0处,主机可尝试写入具有对应值2的LBA(如表2中所展示)。由于这是主机第一次尝试将LBA写入到存储器装置,因此L2P数据结构318-N中存在对应于0处的空余PBA块的空余块。使用方程式4,i=h(2)=4。由于Λ4为空(例如,在对应于Λ4的位置中不存在先前存储的LBA),因此控制器可致使Λ4=2及Π4=0被设置,如图3B及3C中所展示。另外,由于快闪存储器数据结构318在步0处不含有条目,因此将LBA值2写入到快闪存储器数据结构318中对应于步0处的索引0的位置,如图3A中所展示。
在图3A到3C中所展示的步1处,主机可尝试写入具有对应值4的LBA(如表2中所展示)。如图3C中所展示,在L2P数据结构318-N中存在对应于1处的空余PBA块的空余块。使用方程式4,i=h(4)=0。由于Λ0为空(例如,在对应于Λ0的位置中不存在先前存储的LBA),因此控制器可致使Λ0=4及Π0=1被设置,如图3B及3C中所展示。另外,由于快闪存储器数据结构318在步1中不含有条目,因此将LBA值4写入到快闪存储器数据结构318中对应于步1处的索引1的位置,如图3A中所展示。
在图3A到3C中所展示的步2处,主机可尝试写入具有对应值5的LBA(如表2中所展示)。如图3C中所展示,在L2P数据结构318-N中存在对应于2处的空余PBA块的空余块。使用方程式4,i=h(5)=6。由于Λ6为空(例如,在对应于Λ6的位置中不存在先前存储的LBA),因此控制器可致使Λ6=6及Π6=2被设置,如图3B及3C中所展示。另外,由于快闪存储器数据结构318在步2处不含有条目,因此将LBA值5写入到快闪存储器数据结构318中对应于步2处的索引2的位置,如图3A中所展示。
在图3A到3C中所展示的步3处,主机可尝试更新具有对应值2的LBA的内容(如表2中所展示)。如图3C中所展示,在L2P数据结构318-N中存在对应于3处的空余PBA块的空余块。使用方程式4,i=h(2)=4。由于Λ4=2,因此将正确LBA值(例如,值2)存储在对应于Λ4=2的位置中。在这种情况下,可更新PBA以对应于图3C中的索引4处的空余块。例如,在一些实施例中,控制器可致使Λ4=2及Π4=3被设置,如图3B及3C中所展示。在这个实例中,对应于PBA块3的PBA的内容现在是有效的。另外,由于快闪存储器数据结构318在步3处不含有条目,因此将LBA值2写入到快闪存储器数据结构318中对应于步3处的索引3的位置,如图3A中所展示。
在图3A到3C中所展示的步4处,主机可尝试写入具有对应值0的LBA的内容(如表2中所展示)。如图3C中所展示,在L2P数据结构318-N中存在对应于4处的空余PBA块的空余块。使用方程式4,i=h(0)=0。由于Λ0=4,所以可能发生冲突。在一些实施例中,当发生冲突时,控制器可经配置以按特定顺序维持冲突的LBA(例如,控制器可经配置以维持L2P数据结构318-1使得对其部分地排序)。例如,当发生冲突时,控制器可经配置以按升序维持L2P数据结构318-1中的冲突的LBA。
遵循所述实例,存储在Λ0中的LBA=4,其为大于新LBA 0(来自表2的步4处)的值。因此,控制器可致使Λ0被设置为0且PBA被设置为1。因此,控制器可致使Λ0=0及Π0=0被设置,且致使LBA 4及PBA 1的新位置被定位。在一些实施例中,可使用第二哈希函数s(l)来确定新位置。使用来自方程式7的s(l),s(4)=3,因此i+s(4)=0+3=0。因此,控制器可经配置以致使Λ3=4及Π3=1,如图3B及3C中所展示。
上文结合图3A到3C所描述的实例在下文以伪代码的以下实例进一步更全面地概述。在以下伪代码实例中,一开始,L2P数据结构318-1及318-N为空且通过设置Λi=Πi=-1针对所有i∈{0,...,m-1}进行初始化,如方程式3中所展示。第一实例伪代码说明根据本发明的数个实施例的写入及/或更新LBA l的实例:
在第一实例伪代码的第一操作中,可初始化写入(例如,插入)具有对应的PBA p的LBA l的程序。在一些实施例中,第二操作可包含将第一具有函数h(l)设置为i,如结合方程式4所描述。第三操作可包含将设置尚未完成的指示设置为错误,由此指示所述程序在第四操作处继续进行。
第四操作可包含在设置尚未完成时执行while循环,如第五到第二十一操作中所描述。在一些实施例中,第五操作可包含确定Λi等于-1,如方程式3中所展示。如果Λi等于-1,那么所述程序可继续进行第六操作,其中将Λi设置为l,如方程式5中所展示。在第七操作中,可将Πi设置为p,如方程式5中所展示。如果将Λi设置为l且可将Πi设置为p,那么在第五操作处启动的if循环完成,如第八操作中所展示。
在第九操作处,可响应于Λi等于l的确定而启动else if then循环,如方程式5中所展示。如果Λi等于l,那么在第十操作中可将Πi设置为p,如方程式5中所展示。在一些实施例中,一旦作出Λi等于l且将Πi设置为p的确定,那么在第十一操作处,所述设置可完成。在一些实施例中,第九到第十一操作可对应于对L2P数据结构318-1及318-N的更新,如上文结合图3A到3C中的步3所描述。
在第十二操作处,可响应于Λi>l的确定而启动第二else if then循环。响应于Λi>l的确定,在第十三操作处,控制器可致使Λi被设置为l’,如方程式6中所展示。在一些实施例中,l’可对应于L2P数据结构318-1中的第二位置。在第十四操作处,可将Πi设置为p’,其可对应于L2P数据结构318-N中的第二位置。
由于LBA l具有大于先前存储在L2P数据结构318-1的第一位置中的LBA的值,因此在第十五操作处,可将Λi设置为l。类似地,在第十六操作处,可将Πi设置为p。在第十七操作处,可将l’设置为l,且在第十八操作处,可将p’设置为p。最后,在第十九操作处,if循环可结束。在一些实施例中,第十一到第十九操作可对应于检测在L2P数据结构318-1及318-N中发生的冲突,如上文结合图3A到3C中的步4所描述。
响应于第十九操作的完成,可将i设置为i+s(l)(mod m)以通过使用第二哈希函数来使第一哈希函数递增,如上文结合图3A到3C所描述。随后,while循环可在第二十操作处终止,且所述程序可在第二十一操作处结束。
第二实例伪代码说明根据本发明的数个实施例的读取对应于LBA l的PBA p的实例。在第二实例伪代码中,如果将LBA写入(例如,存储)在L2P数据结构318-1中,那么返回PBA值-1:
在第二实例伪代码的第一操作中,可初始化读取(例如,检索)与对应LBA l相关联的PBA p的程序。在一些实施例中,第二操作可包含将h(l)设置为i,如方程式4中所展示。如果所述设置在第三操作处尚未完成,那么可在第四操作处执行while循环。
while循环可包含第五操作处的if then循环。例如,在第五操作处,如果Λi=l,那么在第六操作处,可将Πi设置为p。这对应于L2P数据结构318-1中含有L2P数据结构318-N中的对应条目的位置。在第七操作处,所述设置可完成且在第五操作处执行的if then循环可终止。
如果在第五操作处执行的if then循环尚未完成,那么在第八操作处,可响应于Λi为-1或是否Λi>l的确定而执行else if then循环。在这种情况下,在第九操作处,可将p设置为-1且在第八操作处执行的if then循环可在第十操作处终止。
在第十一操作处,在第五操作处执行的if循环可终止且在第十二操作处,可将i设置为i+s(l)(mod m)以通过使用第二哈希函数来使第一哈希函数递增,如上文结合图3A到3C所描述。在第十三操作处,在第四操作处执行的while循环可终止且可在第十四操作处传回PBA p。最后,在第十五操作处,所述程序可结束。
图4说明根据本发明的数个实施例的逻辑到物理数据结构的实例流程图。在框422处,方法420可包含确定存储在非易失性存储器装置中的第一逻辑到物理(L2P)数据结构(例如,本文在图2中所说明的L2P数据结构216-1)中用于写入第一逻辑块地址(LBA)的第一位置。在一些实施例中,方法420可包含通过执行第一哈希函数h(1)来确定第一L2P数据结构中用于写入第一LBA的第一位置,如本文中结合图3A到3C所描述。
在框424处,方法420可包含确定第一位置包含第二LBA。在一些实施例中,确定第一位置包含第二LBA可包含确定在第一位置处已发生冲突。第二LBA可能先前已存储在第一位置中(例如,第二LBA可能在尝试将第一LBA存储在第一位置中之前已存储在第一位置中)。在一些实施例中,方法420可包含通过执行第二哈希函数s(1)来确定第一L2P数据结构中用于写入第一LBA的第一位置,如本文中结合图3A到3C所描述。
在框426处,方法420可包含响应于第一位置包含第二LBA的确定而将第一LBA写入到第一L2P数据结构中的第二位置。例如,方法420可包含响应于已发生冲突的确定而将第一LBA写入到第一L2P数据结构中的第二位置。
在框428处,方法420可包含将对应于第一LBA的物理块地址(PBA)写入到存储在NVM装置中的第二L2P数据结构(例如,本文在图2中所说明的L2P数据结构216-N)中的第一位置。在一些实施例中,第一L2P数据结构中的第二位置可对应于第二L2P数据结构中的第一位置。
如上文所描述,第一L2P数据结构及第二L2P数据结构可含有相同数量的行及相同数量的列(例如,第一L2P数据结构可为a x b表且第二L2P数据结构可为a x b表,其中a及b是非零整数)。例如,在一些实施例中,第一L2P数据结构及第二L2P数据结构可具有相同大小。
在一些实施例中,方法420可进一步包含从第一L2P数据结构中的第二位置读取第一LBA。然而,实施例不限于此,且在一些实施例中,例如其中不是检测到的冲突且将第一LBA写入到L2P数据结构中的第一位置的实施例,所述方法可进一步包含从第一L2P数据结构中的第一位置读取LBA。
在一些实施例中,方法420可进一步包含从第二L2P数据结构中的第二位置读取PBA。例如,如果检测到冲突且将PBA写入到第二L2P数据结构中的第二位置,那么方法420可包含从第二L2P数据结构中的第二位置读取PBA。然而,实施例不限于此,且在一些实施例中,例如其中未检测到冲突且将PBA写入到第二L2P数据结构中的第一位置的实施例,所述方法可进一步包含从第二L2P数据结构中的第一位置读取PBA。
尽管已在本文中说明及描述特定实施例,但所属领域的一般技术人员将明白,经计算以实现相同结果的布置可替换所展示的特定实施例。本发明意在涵盖本发明的一或多个实施例的调适或变动。应理解,以上描述已以说明性方式而非限制性方式进行。在审阅以上描述后,以上实施例的组合及本文中未具体地描述的其它实施例对于所属领域的技术人员来说将是显而易见的。本发明的一或多个实施例的范围包含其中使用以上结构及方法的其它应用。因此,本发明的一或多个实施例的范围应参考所附权利要求书连同此权利要求书所享有的等效物的全部范围来确定。
在前文具体实施方式中,出于简化本发明的目的而在单个实施例中将一些特征组合在一起。本发明方法不应被解释为反映本发明的所揭示实施例必须使用多于每一权利要求中明确地叙述的特征的特征的意图。而是,如所附利要求书所反映,发明标的物在于少于单个所揭示实施例的所有特征。因此,所附权利要求书由此并入到具体实施方式中,其中每一权利要求独立地作为单独实施例。
Claims (19)
1.一种设备,其包括:
控制器,其经耦合到非易失性存储器NVM装置,其中所述控制器经配置以致使:
逻辑块地址LBA被存储在所述NVM装置中的第一逻辑到物理L2P数据结构中;且
物理块地址PBA被存储在所述NVM装置中的第二L2P数据结构中,其中所述第一L2P数据结构及所述第二L2P数据结构具有与其相关联的相同大小。
2.根据权利要求1所述的设备,其中所述控制器进一步经配置以致使所述LBA至少部分地基于第一哈希函数的执行而被写入到所述第一L2P数据结构中。
3.根据权利要求1所述的设备,其中所述控制器进一步经配置以致使:
所述LBA至少部分地基于第一哈希函数的执行而被写入到所述第一L2P数据结构的第一位置中;且
所述LBA至少部分地基于所述第一哈希函数的执行产生冲突的确定而被写入到所述第一L2P数据结构的第二位置中。
4.根据权利要求3所述的设备,其中所述控制器进一步经配置以致使至少部分地基于所述第一L2P数据结构的所述第一位置含有与将写入到所述第一位置中的所述LBA不同的LBA的确定来确定所述第一哈希函数的执行产生冲突。
5.根据权利要求3所述的设备,其中所述控制器进一步经配置以致使所述LBA至少部分地基于第二哈希函数的执行而被写入到所述第一L2P数据结构的所述第二位置中。
6.根据权利要求1到3中任一权利要求所述的设备,其中所述控制器进一步经配置以致使:
所述LBA至少部分地基于第一哈希函数的执行而被从所述第一L2P数据结构的第一位置读取;及
所述LBA至少部分地基于所述第一哈希函数的执行产生冲突的确定而被从所述第一L2P数据结构的第二位置读取,其中至少部分地基于第二哈希函数的执行来确定所述第一L2P数据结构的所述第二位置。
7.根据权利要求1到3中任一权利要求所述的设备,其中所述第一L2P数据结构的特定位置对应于所述第二L2P数据结构的对应特定位置。
8.根据权利要求1到3中任一权利要求所述的设备,其中所述控制器进一步经配置以致使所述第一L2P数据结构被部分地排序。
9.一种设备,其包括:
非易失性存储器NVM装置,其包含第一存储器部分及第二存储器部分;及
控制器,其经耦合到所述NVM装置,其中所述控制器经配置以致使:
第一哈希函数被执行以确定在所述第一存储器部分中的第一逻辑到物理L2P地址数据结构中将存储逻辑块地址LBA的第一位置;
作出所述第一位置含有第二LBA的确定;及
第二哈希函数被执行以确定在所述第一存储器部分中的所述第一L2P地址数据结构中将存储所述LBA的第二位置。
10.根据权利要求9所述的设备,其中所述控制器进一步经配置以致使对应于所述第一LBA的物理块地址被存储在所述第二存储器部分中的第二L2P数据结构中。
11.根据权利要求9到10中任一权利要求所述的设备,其中所述第一哈希函数由h(l)=6l(mod x)给出,其中l是所述LBA且所述第二哈希函数由s(l)=3(h(l)+1)(mod x)给出,其中x是非零整数。
13.一种设备,其包括:
非易失性存储器NVM装置;
快闪存储器装置;及
控制器,其经耦合到所述NVM装置及所述快闪存储器装置,其中所述控制器经配置以致使:
第一哈希函数被执行以确定在所述NVM装置中的第一数据结构中将存储逻辑块地址LBA的第一位置;
物理块地址响应于将所述LBA存储在所述第一数据结构中的所述第一位置中的所述确定而被设置到所述NVM装置中的第二数据结构中的对应第一位置;
第二哈希函数被执行以确定所述第一数据结构中将存储所述LBA的第二位置;及
所述物理块地址响应于所述LBA被存储在所述第一数据结构中的所述第二位置中的所述确定而被设置到所述NVM装置中的所述第二数据结构中的对应第二位置。
14.根据权利要求13所述的设备,其中存储在所述第二数据结构中的物理块地址的数量大于存储在所述第一数据结构中的LBA的数量。
15.根据权利要求13到14中任一权利要求所述的设备,其中所述第一数据结构包括第一a x b表,其中a及b是非零整数,且其中所述第二数据结构包括第二a x b表。
16.根据权利要求13到14中任一权利要求所述的设备,其中所述控制器经配置以确定所述第一具有函数的模数及所述第二具有函数的模数作为执行所述具有函数及所述第二哈希函数的操作的部分。
17.一种方法,其包括:
确定存储在非易失性存储器NVM装置中的第一逻辑到物理L2P数据结构中用于写入第一逻辑块地址LBA的第一位置;
确定所述第一位置包含第二LBA;
响应于所述第一位置包含所述第二LBA的所述确定而将所述第一LBA写入到所述第一L2P数据结构中的第二位置;及
将对应于所述第一LBA的物理块地址PBA写入到存储在所述NVM装置中的第二L2P数据结构中的位置,其中所述第一L2P数据结构中的所述第二位置对应于所述第二L2P数据结构中的所述位置。
18.根据权利要求17所述的方法,其中所述第一L2P数据结构及所述第二L2P数据结构具有与其相关联的相同数量的行及相同数量的列。
19.根据权利要求17到18中任一权利要求所述的方法,其中通过执行对应于所述第一LBA的第一哈希函数来确定所述第一L2P数据结构中的所述第一位置,且其中通过执行对应于所述第一LBA的第二哈希函数来确定所述第一L2P数据结构中的第二位置以将所述第一L2P数据结构的所述第一位置递增到所述第一L2P数据结构的所述第二位置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/994,669 | 2018-05-31 | ||
US15/994,669 US10970205B2 (en) | 2018-05-31 | 2018-05-31 | Logical-to-physical data structures for tracking logical block addresses indicative of a collision |
PCT/US2019/024244 WO2019231533A1 (en) | 2018-05-31 | 2019-03-27 | Logical-to-physical data structures |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112204515A true CN112204515A (zh) | 2021-01-08 |
Family
ID=68693068
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980036672.9A Pending CN112204515A (zh) | 2018-05-31 | 2019-03-27 | 逻辑到物理数据结构 |
Country Status (6)
Country | Link |
---|---|
US (2) | US10970205B2 (zh) |
EP (1) | EP3803565A4 (zh) |
JP (1) | JP7079349B2 (zh) |
KR (1) | KR20210003946A (zh) |
CN (1) | CN112204515A (zh) |
WO (1) | WO2019231533A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10754785B2 (en) * | 2018-06-28 | 2020-08-25 | Intel Corporation | Checkpointing for DRAM-less SSD |
KR20210060024A (ko) * | 2019-11-18 | 2021-05-26 | 에스케이하이닉스 주식회사 | 신경망 처리 회로를 포함하는 메모리 장치 |
KR20220009523A (ko) | 2020-07-15 | 2022-01-25 | 삼성전자주식회사 | 스토리지 컨트롤러, 및 스토리지 컨트롤러의 동작 방법 |
US11940908B2 (en) * | 2022-04-19 | 2024-03-26 | Western Digital Technologies, Inc. | Relative size reduction of a logical-to-physical table |
US11934704B1 (en) | 2022-09-27 | 2024-03-19 | Western Digital Technologies, Inc. | Control table set determination in storage devices |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060143168A1 (en) * | 2004-12-29 | 2006-06-29 | Rossmann Albert P | Hash mapping with secondary table having linear probing |
CN104641356A (zh) * | 2012-09-14 | 2015-05-20 | 美光科技公司 | 地址映射 |
US20160364142A1 (en) * | 2015-06-12 | 2016-12-15 | Kabushiki Kaisha Toshiba | Memory system |
US20180136865A1 (en) * | 2016-11-15 | 2018-05-17 | Samsung Electronics Co., Ltd. | Method of operating memory device, memory device using the same and memory system including the device |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4956068B2 (ja) | 2006-06-30 | 2012-06-20 | 株式会社東芝 | 半導体記憶装置およびその制御方法 |
US8024545B2 (en) | 2007-10-19 | 2011-09-20 | Inha-Industry Partnership Institute | Efficient prefetching and asynchronous writing for flash memory |
US8219776B2 (en) | 2009-09-23 | 2012-07-10 | Lsi Corporation | Logical-to-physical address translation for solid state disks |
US9104678B1 (en) | 2011-12-31 | 2015-08-11 | Richard Michael Nemes | Methods and apparatus for information storage and retrieval using a caching technique with probe-limited open-address hashing |
US9075710B2 (en) | 2012-04-17 | 2015-07-07 | SanDisk Technologies, Inc. | Non-volatile key-value store |
US9378135B2 (en) | 2013-01-08 | 2016-06-28 | Violin Memory Inc. | Method and system for data storage |
US9519575B2 (en) * | 2013-04-25 | 2016-12-13 | Sandisk Technologies Llc | Conditional iteration for a non-volatile device |
US9846642B2 (en) * | 2014-10-21 | 2017-12-19 | Samsung Electronics Co., Ltd. | Efficient key collision handling |
KR102343246B1 (ko) | 2014-12-12 | 2021-12-27 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
US10915256B2 (en) | 2015-02-25 | 2021-02-09 | SK Hynix Inc. | Efficient mapping scheme with deterministic power transition times for flash storage devices |
TWI563510B (en) * | 2015-07-24 | 2016-12-21 | Phison Electronics Corp | Mapping table accessing method, memory control circuit unit and memory storage device |
US20170139594A1 (en) | 2015-11-17 | 2017-05-18 | Samsung Electronics Co., Ltd. | Key-value integrated translation layer |
US10175889B2 (en) * | 2016-03-10 | 2019-01-08 | Toshiba Memory Corporation | Memory system capable of accessing memory cell arrays in parallel |
KR20180019419A (ko) | 2016-08-16 | 2018-02-26 | 삼성전자주식회사 | 메모리 컨트롤러, 메모리 시스템 및 그 동작방법 |
KR102559518B1 (ko) | 2016-09-28 | 2023-07-26 | 에스케이하이닉스 주식회사 | 메모리 제어장치 및 방법 |
US10223009B2 (en) * | 2016-10-20 | 2019-03-05 | Avago Technologies International Sales Pte. Limited | Method and system for efficient cache buffering supporting variable stripe sizes to enable hardware acceleration |
US10409726B2 (en) * | 2017-10-30 | 2019-09-10 | Micron Technology, Inc. | Dynamic L2P cache |
-
2018
- 2018-05-31 US US15/994,669 patent/US10970205B2/en active Active
-
2019
- 2019-03-27 WO PCT/US2019/024244 patent/WO2019231533A1/en unknown
- 2019-03-27 KR KR1020207037664A patent/KR20210003946A/ko active IP Right Grant
- 2019-03-27 JP JP2020566796A patent/JP7079349B2/ja active Active
- 2019-03-27 CN CN201980036672.9A patent/CN112204515A/zh active Pending
- 2019-03-27 EP EP19811868.9A patent/EP3803565A4/en active Pending
-
2021
- 2021-03-10 US US17/197,660 patent/US11556466B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060143168A1 (en) * | 2004-12-29 | 2006-06-29 | Rossmann Albert P | Hash mapping with secondary table having linear probing |
CN104641356A (zh) * | 2012-09-14 | 2015-05-20 | 美光科技公司 | 地址映射 |
US20160364142A1 (en) * | 2015-06-12 | 2016-12-15 | Kabushiki Kaisha Toshiba | Memory system |
US20180136865A1 (en) * | 2016-11-15 | 2018-05-17 | Samsung Electronics Co., Ltd. | Method of operating memory device, memory device using the same and memory system including the device |
Also Published As
Publication number | Publication date |
---|---|
US20190370169A1 (en) | 2019-12-05 |
US10970205B2 (en) | 2021-04-06 |
EP3803565A1 (en) | 2021-04-14 |
KR20210003946A (ko) | 2021-01-12 |
US20210191855A1 (en) | 2021-06-24 |
JP2021526260A (ja) | 2021-09-30 |
WO2019231533A1 (en) | 2019-12-05 |
JP7079349B2 (ja) | 2022-06-01 |
EP3803565A4 (en) | 2022-03-02 |
US11556466B2 (en) | 2023-01-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11216362B2 (en) | Data storage device and operating method thereof | |
US11556466B2 (en) | Logical-to-physical data structures | |
CN110083545B (zh) | 数据存储装置及其操作方法 | |
KR20190057887A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
US10769066B2 (en) | Nonvolatile memory device, data storage device including the same and operating method thereof | |
CN110442529B (zh) | 可配置的存储器系统及配置和使用该存储器系统的方法 | |
US20200057725A1 (en) | Data storage device and operating method thereof | |
US10552048B2 (en) | Reduction of maximum latency using dynamic self-tuning for redundant array of independent disks | |
CN107797934B (zh) | 处理去分配命令的方法与存储设备 | |
US11520694B2 (en) | Data storage device and operating method thereof | |
KR20210028729A (ko) | 논리적 대 물리적 테이블 프래그먼트들 | |
US11288183B2 (en) | Operating method of memory system and host recovering data with write error | |
US20200310981A1 (en) | Controller, memory system and operating method thereof | |
US10466938B2 (en) | Non-volatile memory system using a plurality of mapping units and operating method thereof | |
US11782638B2 (en) | Storage device with improved read latency and operating method thereof | |
US11461238B2 (en) | Storage device, memory controller, and method for fetching write commands from submission queues to perform full page writes | |
US20230315646A1 (en) | Method of managing data in storage device based on variable size mapping, method of operating storage device using the same and storage device performing the same | |
CN110968527A (zh) | Ftl提供的缓存 | |
CN113302582A (zh) | 每光标逻辑单元号定序 | |
KR20210001206A (ko) | 컨트롤러, 메모리 시스템 및 그것의 동작 방법 | |
US11409665B1 (en) | Partial logical-to-physical (L2P) address translation table for multiple namespaces | |
KR20230097192A (ko) | 메모리를 위한 데이터 보호 방법 및 그 메모리 디바이스 |
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 |