CN111033477B - 逻辑到物理映射 - Google Patents
逻辑到物理映射 Download PDFInfo
- Publication number
- CN111033477B CN111033477B CN201880054698.1A CN201880054698A CN111033477B CN 111033477 B CN111033477 B CN 111033477B CN 201880054698 A CN201880054698 A CN 201880054698A CN 111033477 B CN111033477 B CN 111033477B
- Authority
- CN
- China
- Prior art keywords
- cache
- update
- stored
- volatile memory
- updated
- 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
- 238000013507 mapping Methods 0.000 title abstract description 14
- 238000000034 method Methods 0.000 claims abstract description 27
- 230000015654 memory Effects 0.000 claims description 112
- 238000013519 translation Methods 0.000 claims description 23
- 230000004044 response Effects 0.000 claims description 12
- 238000013479 data entry Methods 0.000 claims 2
- 230000005055 memory storage Effects 0.000 claims 1
- 230000008569 process Effects 0.000 description 9
- 230000007246 mechanism Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 241000544061 Cuculus canorus Species 0.000 description 5
- 238000013403 standard screening design Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
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/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/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
-
- 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/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- 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/0875—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
-
- 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
- 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
-
- 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/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
-
- 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/65—Details of virtual memory and virtual 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
-
- 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/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- 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
Abstract
本公开包含用于逻辑到物理映射的设备和方法。数个实施例包含逻辑到物理L2P更新表、L2P表高速缓存和控制器。所述控制器可经配置以使待应用于L2P表的更新列表被存储在所述L2P更新表中。
Description
技术领域
本公开大体上涉及半导体存储器和方法,且更具体地说,涉及逻辑到物理映射。
背景技术
存储器装置通常提供为计算机或其它电子装置中的内部半导体集成电路和/或外部可移除装置。存在许多不同类型的存储器,包含易失性和非易失性存储器。易失性存储器可能需要电力来维持其数据,且可包含随机存取存储器(RAM)、动态随机存取存储器(DRAM)和同步动态随机存取存储器(SDRAM)等。非易失性存储器可在未供电时保留所存储数据,且可包含例如NAND快闪存储器、NOR快闪存储器、相变随机存取存储器(PCRAM)、电阻性随机存取存储器(RRAM)和磁性随机存取存储器(MRAM)等存储存储器。
存储器装置可组合在一起以形成固态驱动器(SSD)。SSD可包含非易失性存储器(例如,NAND快闪存储器和/或NOR快闪存储器),和/或可包含易失性存储器(例如,DRAM和/或SRAM),以及各种其它类型的非易失性和易失性存储器。举例来说,快闪存储器装置可包含将数据存储在例如浮动栅极的电荷存储结构中的存储器单元,且可用作非易失性存储器以用于广泛范围的电子应用。快闪存储器装置通常使用允许高存储器密度、高可靠性和低功耗的单晶体管存储器单元。
SSD可用于替代硬盘驱动器作为计算机的主存储体,因为固态驱动器在性能、大小、重量、耐用性、操作温度范围和功耗方面可具有优于硬盘驱动器的优势。举例来说,当与磁盘驱动器相比时,SSD可因其不含移动部分而具有优异性能,这可避免与磁盘驱动器相关联的寻道时间、时延和其它机电延迟。
附图说明
图1是根据本公开的数个实施例的呈包括存储器系统的计算系统形式的设备的功能框图。
图2说明根据本公开的数个实施例的逻辑到物理映射结构的实例。
图3说明根据本公开的数个实施例的用于执行与逻辑到物理映射相关联的主机读取的流程图。
图4说明根据本公开的数个实施例的用于执行与逻辑到物理映射相关联的主机写入的流程图。
具体实施方式
主机系统将使用逻辑地址对存储在SSD上的数据块进行寻址。数据将被存储在SSD中,在非易失性存储器中的物理地址处。SSD的控制器通常维持从主机所用的逻辑地址映射到其中存储数据的物理地址的表。此表被称为L2P表。当主机希望读取数据时,SSD将在L2P表中查找物理地址,以便提取请求的数据。当主机在SSD中写入或更新数据时,L2P表将被更新。L2P表本身将存储在SSD的非易失性存储器中,但要由SSD控制器使用或更新,则必须首先将其提取到在SSD控制器中的或附接到所述SSD控制器的易失性存储器中。如果L2P表已更新,则必须在某个点将更新写回到非易失性存储器中所存储的表中。在SSD的设计过程中,必须确定是否将指定控制器中或附接到控制器的易失性存储器来保持SSD的整个逻辑地址空间的完整L2P表,或是否将仅指定较少易失性存储器且每次仅可将来自非易失性存储器的L2P表的部分加载到控制器存储器中(即,将控制器非易失性存储器用作L2P表的高速缓存)。
本文提供用于改进逻辑到物理映射的设备和方法。在本公开的一或多个实施例中,一种设备可包含逻辑到物理(L2P)更新表、L2P表高速缓存和控制器。所述控制器可经配置以使待应用于L2P表的更新列表被存储在所述L2P更新表中。
逻辑块寻址是主机可用以识别数据的逻辑区域的方案。来自主机的逻辑地址被转译成转译单元(TU),所述转译单元是L2P表管理的非易失性存储器的最小单元。可将L2P表中的每个TU置于非易失性存储器中的独特位置。另外,TU还可对应于物理地址。数据的逻辑区域可以是数据的字节数目(例如256字节、512字节或1,024字节)。然而,实施例不限于这些实例。
与需要足够易失性存储器同时加载整个表相反,将易失性存储器的一部分用作L2P表的高速缓存允许所需易失性存储器(例如DRAM或SRAM)更少。然而,由于需要将L2P表的部分(称为区域)加载到高速缓存中,且相比于整个表可能同时驻存在易失性存储器中的情况,需要更频繁地将易失性存储器中的已更新部分写回到非易失性存储器中,因此存在整个装置的性能代偿。
取决于易失性存储器与非易失性存储器的确切比例,可因高速缓存命中而修改L2P高速缓存的时间影响,然而,对于大型SSD,高速缓存命中率可能很小。本公开的数个实施例可提供例如增大L2P高速缓存效率的益处(例如,通过有效地增大L2P高速缓存方案的高速缓存命中率)。
本文所描述的各种实施例可提供一种L2P高速缓存方法,其中将可供用于L2P高速缓存的一定量的易失性存储器(例如,DRAM或SRAM)划分成多个部分。举例来说,可将可供用于L2P映射的所述量的易失性存储器划分成L2P表高速缓存部分和L2P更新部分。L2P表高速缓存部分在任何时间点都将整个L2P表的子集保持为高速缓存。L2P表的区域根据需要加载到此高速缓存中以进行读取和更新,且那些区域在更新后将被写回到非易失性存储器中的L2P表中。L2P更新部分含有待应用于L2P表但尚未应用的更新列表(即,它们适用的表的区域尚未被读取到高速缓存中、被修改且接着写出回到非易失性存储器)。
此外,本文中的实施例可允许基于每L2P区域将存储在L2P更新部分中的更新排序到散列表(例如存储桶)中,这可允许基于对L2P条目的更新所在的散列表的内容的读取来确定应用于L2P区域的更新。这可允许更快地处理已更新L2P条目和/或可增大L2P更新过程的效率,因为在至少一个实施例中,与一些可能需要搜索大的数据结构以查找相关已更新L2P条目的方法相反,仅可读取已更新L2P条目所在的散列表。举例来说,L2P更新过程可比一些先前方法更高效。在至少一个实施例中,相比于其中由处理器将整个L2P区域从非易失性存储器读取到易失性存储器、随后从易失性存储器读取的方法,已更新L2P条目可能仅需要进行单次易失性存储器读取。
如本文所使用,“数个”某物可指一或多个此类事物。举例来说,数个存储器单元可指一或多个存储器单元。另外,如本文尤其相对于图中的参考标号所使用,标志符“N”指示如此指定的数个特定特征可被包含在本公开的数个实施例中。
本文中的图式遵循编号惯例,其中前一或多个数字对应于图式图号,且其余的数字识别图中的元件或组件。可通过使用类似数字来识别不同图之间的类似元件或组件。举例来说,114可表示图1中的元件“14”,且类似元件在图2中可表示为214。
图1是根据本公开的数个实施例的呈包括存储器系统104的计算系统101形式的设备的功能框图。如本文所使用,“设备”可指但不限于各种结构或结构的组合中的任一种,例如电路或电路系统、一或多个裸片、一或多个模块、一或多个装置或一或多个系统等。
举例来说,存储器系统104可以是固态驱动器(SSD)。在图1所说明的实施例中,存储器系统104包含主机接口106、充当系统104的存储体的存储器(例如,数个存储器装置110-1、110-2、…、110-N)以及耦合到主机接口106和存储器装置110-1、110-2、…、110-N的控制器108(例如,SSD控制器)。存储器装置110-1、110-2、…、110-N可包含例如数个非易失性存储器阵列。
举例来说,非易失性阵列可以是例如具有NAND架构的快闪阵列、相变阵列等。实施例不限于特定类型的存储器阵列或阵列架构。
举例来说,在操作中,数据可作为数据页写入到存储器系统的存储器装置(例如存储器系统104的存储器装置110-1、…、110-N)和/或从所述存储器装置读取。由此,数据页可称作存储器系统的数据传送大小。被称作扇区(例如,主机扇区)的数据段中的数据可被传送到主机102/从主机传送。由此,数据的扇区可称作主机的数据传送大小。在一些实施例中,NAND块可称作擦除块,其中块是擦除单位,且页是读取和/或写入的量度。
主机接口106可用于在存储器系统104与例如主机102的另一装置之间传达信息。主机102可包含存储器存取装置(例如处理器)。如本文所使用,“处理器”可指数个处理器,例如并行处理系统、数个协处理器等。实例主机可包含个人膝上型计算机、台式计算机、数码相机、数字记录和播放装置、移动(例如智能)电话、PDA、存储卡读取器、接口集线器等。
主机接口106可呈标准化物理接口形式。举例来说,当将存储器系统104用于计算系统101中的信息存储时,主机接口106可以是串行高级技术附件(SATA)物理接口、外围组件互连高速(PCIe)物理接口或通用串行总线(USB)物理接口,以及其它物理连接器和/或接口。然而,一般来说,主机接口106可提供接口以用于在存储器系统104与具有主机接口106的兼容接受器的主机(例如主机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之间提供转译层(例如,快闪转译层)的电路系统。
系统104还包含耦合到控制器108的易失性存储器113。易失性存储器113可在控制器内部或外部附接到所述控制器。尽管被描述为易失性存储器,但在一些实施例中,存储器113还有可能是非易失性的。此易失性存储器113内分配了一部分空间用于L2P表高速缓存114。另外,易失性存储器113的一部分被分配给L2P更新表115。
易失性存储器113的L2P表高速缓存114部分可供控制器用于从存储器装置110-1、…、110-N中的一或多者加载L2P表111-1、…、111-N的区域。如果条目在加载到L2P表高速缓存114中时进行了修改,则经修改条目将以控制器108确定的频率和速率写出回到非易失性存储器110-1..110-N中的L2P表111-1..111-N中。
在一些实施例中,L2P更新表115将分成一组散列表。举例来说,L2P更新表115可维持L2P表111-1、…、111-N的每个区域的散列表。
当控制器108由于主机102写入操作而需要更新L2P表110-1、…、110-3中并未含在当前加载到L2P表高速缓存114中的区域中的条目时,则为了避免加载L2P区域、对其修改且将其立即写回到非易失性存储器110-1、…、110-3中的L2P表的即时开销,所述控制器将仅仅在L2P更新易失性存储器113中将条目插入对应于L2P表的区域的散列表中,且随后由此信息更新L2P表。
通过使用L2P更新易失性存储器散列表保持所需更新,可将非易失性存储器110-1..110-N的实际操作推迟到待处理的L2P表的区域存在多个更新为止。接着,当将此L2P表区域从L2P表110-1..110-N加载到L2P表高速缓存114时,可同时应用所有更新,之后将L2P区域写回到L2P表111-1、…、111-N。这可显著减小更新L2P表110-1、…、110-N所需的对非易失性存储器110-1..110-N读取和写入操作的次数。
图2说明根据本公开的数个实施例的逻辑到物理映射结构的实例。如图2中所展示,驱动器上分配给L2P映射的总空间被划分成多个区域243-1、…、243-N以促进高速缓存。区域数目可基于SSD的总大小。举例来说,具有大存储容量(例如16,000太字节(TB))的SSD可存在数千个此类区域。
全部L2P表243-1、…、243-N存储在NAND 240中。在任何时间点,此表的数个区域可在易失性存储器(例如图1中展示的易失性存储器113)中被高速缓存在L2P表高速缓存214中。基于从主机系统发送的命令和/或SSD控制器的内部操作,存储在高速缓存中的特定L2P区域将随着时间推移而改变。
L2P更新数据结构215也将存储在控制器易失性存储器中,所述L2P更新数据结构可以是散列表245-1、…、245-N。无论每个L2P区域243是否在当前加载到L2P表高速缓存中,将存在用于所述区域的表。L2P更新结构中的散列表可具有固定大小,或可动态分配。
响应于L2P条目已更新,例如响应于对L2P条目的转译单元(TU)更新,可将TU以及其新位置添加到分配给L2P更新部分215的散列表245-1、…、245-N。对L2P条目的更新可通过将TU写入到新物理非易失性存储器位置(例如地址)而产生。在一些实施例中,TU更新可由无用单元收集操作、由主机写入或由可能需要对L2P条目更新的另一操作引起。
在一些实施例中,对应于特定NAND区域243-1、…、243-N的散列表245-1、…、245-N的大小、每个特定散列表245-1、…、245-N中的条目数目可改变。举例来说,由于每个散列表245-1、…、245-N中的仅有条目是对应于通过主机写入或无用单元收集操作而更新的TU的条目,因此每个相应散列表245-1、…、245-N的大小可基于发生多少TU更新而改变。在一些实施例中,这可允许并合写入可能性的增大,因为每次写入使表245-1、…、245-N仅存储对应于与其相关联的相应NAND区域243-1、…、243-N的已更新TU。另外,因为与一些方法相比,TU可以更密集方式存储信息,所以与一些方法相比,更大数目的L2P更新可存储在易失性存储器中。此外,与一些方法相比,通过将更大数目的更新存储在易失性存储器中,可减小数据涌到非易失性的频率。
在一些实施例中,可在散列表245-1、…、245-N中执行大量查找。为了以高效方式促进大量查找,可使用各种散列化机制。例如,可使用布谷鸟散列化(cuckoo hashing)机制,其中针对例如散列表245-1、…、245-N的表中的散列函数的值来解决解决散列冲突。在一些实施例中,结合所公开的L2P映射使用布谷鸟散列化机制可允许利用散列表245-1、…、245-N的大约91%。布谷鸟散列化机制的实例可包含结合单个表使用三个散列。举例来说,对于散列表245-1、…、245-N中的每个条目,可存在三个可能的位置。然而,实施例不限于使用布谷鸟散列化机制,且可使用其它散列化机制,例如乘法散列化机制。
图3说明根据本公开的数个实施例的用于使用逻辑到物理映射执行主机读取的流程图350。在一些实施例中,根据本公开的执行主机读取包含首先检查L2P更新部分以确定其是否含有关于TU的物理位置的信息,所述TU含有主机在请求的数据。如果L2P更新部分中没有存储最近已更新TU,则可检查L2P表高速缓存以确定待读取的数据是否存储在其中。如果待读取的数据不在当前已加载于易失性存储器中的L2P表高速缓存的区域内,则将需要从非易失性存储器L2P表中加载所述数据。
在351处开始根据本公开的执行主机读取的过程,在框352处执行L2P更新表查找。执行更新表查找352可包含在L2P更新部分中搜索条目以确定是否存在对应于待由主机读取的数据的最近更新的TU。在一些实施例中,在L2P更新部分中搜索条目可包含搜索L2P更新部分中包含的散列表以确定是否存在对应于待由主机读取的数据的最近更新的TU。如果被搜索用于主机读取的条目位于L2P更新部分中,例如,如果搜索的条目被“找到”,则在355处执行主机读取操作,且过程在框356处结束。
如果“未找到”被搜索用于主机读取的条目,则可在框353处执行L2P表高速缓存查找。在353处执行L2P表高速缓存查找可包含在L2P表高速缓存中搜索条目以确定待由主机读取的条目是否存储在L2P表高速缓存中。如果找到所述条目,则在框355处在L2P表中指定的物理非易失性位置处执行主机读取操作,且在框356处结束执行主机读取操作的过程。
然而,如果在L2P更新部分或L2P表高速缓存中未找到所述条目,则可在框354处执行加载区域操作。所述加载区域操作可包含加载存储在非易失性存储器上的L2P区域。在加载后,可随后搜索L2P区域以定位被搜索用于主机读取的条目。在加载存储在非易失性存储器上的L2P区域之后,在框355处可在L2P表中指定的物理非易失性位置处执行主机读取操作,且在框356处结束执行主机读取操作的过程。在一些实施例中,如果L2P表高速缓存中需要额外空间,则可在先前已加载的区域没有更新的情况下将其舍弃,或在所述区域已被更新的情况下将其写回到非易失性存储器中,以在L2P区域高速缓存中释放额外空间。
图4说明根据本公开的数个实施例的用于使用逻辑到物理映射执行主机写入的流程图459。应注意,以与图4中描述的主机写入过程类似的方式执行无用单元收集操作。在460处,开始根据本公开的执行主机写入操作的过程,在框461处执行将来自主机的数据写入到非易失性存储器中可用的空位置。应注意,在一些实施方案中,由于将高速缓存用于主机数据,因此可能推迟这种主机数据到非易失性存储器阵列的实际写入。
在框462处,可确定L2P表高速缓存是否含有寻址主机写入数据的逻辑地址的所需区域。举例来说,可在框462处确定L2P表高速缓存是否已具有先前已加载到L2P表高速缓存中的所需区域。如果所述区域已被加载到L2P表高速缓存中(例如,框462的“是”分支),则不必将更新添加到L2P更新表,且流程可继续到框466,这将在下文中更详细地描述。然而,如果L2P表高速缓存不包所需区域(例如,框462的“否”分支),则流程可继续到框463。
在框463处,可确定L2P更新表中是否存在空间。举例来说,在框463处,可确定L2P更新部分是否含有足够的可用空间以接收由主机写入操作产生的已更新TU。如果在L2P更新部分中存在足够空间来接收已更新TU,则在468处,可将条目插入到L2P更新表中,且在框469处,可结束执行主机写入的过程。在一些实施例中,可在框468处将条目插入到L2P映射部分中包含的散列表中。
如果更新表中没有足够空间来存储已更新TU,则可在框464处执行L2P表高速缓存查找以确定当前是否已在高速缓存中加载了适当的区域。执行区域高速缓存查找可包含搜索L2P表高速缓存以确定其中是否存储了对应的条目。如果在框464处未找到对应的条目,则在465处将从非易失性存储器中加载L2P表高速缓存区域。应注意,可能必须在易失性存储器中创建空间,通过将L2P表的另一区域舍弃或写回到非易失性存储器来实现这一点。
在将L2P表的适当区域加载到L2P表高速缓存中后,接着在466处,除了此主机写入操作所需的更新之外,可利用L2P更新表中所述区域的所有相关条目更新所述区域。在更新后,所述区域将接着在467处被写回到存储在非易失性存储器中的L2P表。应注意,这种写回到非易失性存储器可能是即时的,也可能会延迟。在L2P表高速缓存中的区域已更新且任选地写回到非易失性存储器后,可在469处结束主机写入所需的表更新。
尽管已在本文中说明并描述了具体实施例,但所属领域的技术人员应了解,经计算以实现相同结果的布置可取代所展示的具体实施例。本公开意欲涵盖本公开的数个实施例的调适或变化。应理解,以说明方式而非限制方式进行了以上描述。在查阅以上描述后,以上实施例和本文未具体描述的其它实施例的组合对于所属领域的技术人员来说将显而易见。本公开的数个实施例的范围包含其中使用上述结构和方法的其它应用。因此,本公开的数个实施例的范围应参考所附权利要求书以及此类权利要求被赋予的等同物的完整范围而确定。
在前述具体实施方式中,出于简化本公开的目的而将一些特征一起分组在单个实施例中。本公开的这一方法不应被理解为反映本公开的所公开实施例必须使用比每个权利要求中明确陈述的特征多的特征的意图。实际上,如所附权利要求书所反映,本发明主题在于单个公开实施例的不到全部的特征。因此,所附权利要求书特此并入于具体实施方式中,其中每个权利要求就其自身而言作为单独实施例。
Claims (16)
1.一种存储器设备,其包括:
易失性存储器(113),其包括逻辑到物理L2P更新表(115,215)和L2P表高速缓存(114,214);
控制器(108),其中所述控制器(108)经配置以:
使待应用于L2P表(111-1…111-N,243-1,…,243-N)的更新列表被存储在所述L2P更新表(115,215)中;
响应于确定所述L2P更新表(115,215)中存在空间以接收已更新的转译单元,致使所述已更新的转译单元添加到所述L2P更新表(115,215);
响应于确定所述L2P更新表(115,215)中不存在空间以接收所述已更新的转译单元,致使在所述L2P表高速缓存(114,214)中执行区域高速缓存查找以确定所述已更新的转译单元是否存储在所述L2P表高速缓存(114,214)中;以及
响应于确定所述已更新的转译单元未存储在所述L2P表高速缓存(114,214)中,使L2P表(111-1…111-N,243-1,…,243-N)的区域加载到所述L2P表高速缓存(114,214)中,其中所述L2P表存储在耦合到所述易失性存储器的非易失性存储器中,且其中所述已更新的转译单元由主机(102)写入操作产生。
2.根据权利要求1所述的存储器设备,其中所述易失性存储器耦合到所述控制器(108)。
3.根据权利要求1所述的存储器设备,其中所述L2P表高速缓存(114,214)经配置以存储所述L2P表(111-1…111-N,243-1,…,243-N)的一部分。
4.根据权利要求1到3中任一项所述的存储器设备,其中所述控制器(108)经配置以:
使对应于已更新的L2P条目的数据存储在所述L2P更新表(115,215)中;以及
使对应于来自所述非易失性存储器中的所述L2P表(111-1…111-N,243-1,…,243-N)的L2P区域的数据存储在所述L2P表高速缓存(114,214)中以促进由所述控制器(108)对所述L2P表(111-1…111-N,243-1,…,243-N)的查找和更新操作。
5.根据权利要求1到3中任一项所述的存储器设备,其中所述控制器(108)还经配置以使所述L2P表高速缓存(114,214)用作缓冲区以从所述L2P表(111-1…111-N,243-1,…,243-N)的非易失性存储器存储读取L2P区域。
6.根据权利要求1到3中任一项所述的存储器设备,其中所述控制器(108)还经配置以响应于确定由主机(102)请求的数据条目未存储在所述L2P更新表(115,215)中而在所述L2P表高速缓存(114,214)中执行搜索,从而查找所述数据条目的位置。
7.根据权利要求1到3中任一项所述的存储器设备,其中所述L2P更新表(115,215)包括多个散列表(245-1…245-N),其中所述多个散列表(245-1…245-N)当中的每个散列表对应于所述L2P表的特定L2P区域。
8.根据权利要求1到3中任一项所述的存储器设备,其中所述控制器(108)经配置以通过使用单个动态随机存取存储器存取命令以使存储在所述L2P更新表(115,215)中的L2P条目写入到所述L2P表高速缓存(114,214)。
9.一种操作存储器的方法,其包括:
确定逻辑到物理L2P更新表(115,215)中是否存在空间以接收由主机(102)写入操作产生的已更新的转译单元;
响应于对所述L2P更新表(115,215)中存在空间以接收所述已更新的转译单元的所述确定,将所述已更新的转译单元添加到所述L2P更新表(115,215);
响应于确定所述L2P更新表(115,215)中不存在空间以接收所述已更新的转译单元,在L2P表高速缓存(114,214)中执行区域高速缓存查找以确定所述已更新的转译单元是否存储在所述L2P表高速缓存(114,214)中;以及
响应于确定所述已更新的转译单元未存储在所述L2P表高速缓存(114,214)中,使L2P表(111-1…111-N,243-1,…,243-N)的区域加载到所述L2P表高速缓存(114,214)中,其中所述L2P表存储在耦合到易失性存储器的非易失性存储器中,且其中所述易失性存储器包括所述L2P更新表(115,215)和所述L2P表高速缓存(114,214)。
10.根据权利要求9所述的方法,其还包括:
响应于确定所述已更新的转译单元未存储在所述L2P表高速缓存(114,214)中,将所述区域从所述L2P表(111-1…111-N,243-1,…,243-N)加载到所述L2P表高速缓存(114,214)中;以及
利用所述L2P更新表(115,215)中加载的条目来更新所述L2P表高速缓存(114,214)。
11.根据权利要求10所述的方法,其还包括将已更新L2P更新表(115,215)写入到所述L2P表高速缓存(114,214)以更新其中存储的条目。
12.一种操作存储器的方法,其包括:
确定特定条目是否存储在逻辑到物理L2P更新表(115,215)中;
响应于对所述特定条目存储在所述L2P更新表(115,215)中的所述确定,读取与所述特定条目相关联的数据;
响应于确定所述L2P更新表(115,215)中存在空间以接收已更新的转译单元,将所述已更新的转译单元添加到所述L2P更新表(115,215);
响应于确定所述L2P更新表(115,215)中不存在空间以接收所述已更新的转译单元,在L2P表高速缓存(114,214)中执行区域高速缓存查找以确定所述已更新的转译单元是否存储在所述L2P表高速缓存(114,214)中;以及
响应于确定已更新的转译单元未存储在所述L2P表高速缓存(114,214)中,使L2P表的区域加载到所述L2P表高速缓存(114,214)中,其中所述L2P表存储在耦合到易失性存储器的非易失性存储器中,其中所述易失性存储器包括所述L2P更新表(115,215)和所述L2P表高速缓存(114,214),且其中所述已更新的转译单元由主机(102)写入操作产生。
13.根据权利要求12所述的方法,其还包括:
响应于确定所述特定条目未存储在所述L2P更新表(115,215)中,确定所述特定条目是否存储在所述L2P表高速缓存(114,214)中;以及
响应于对所述特定条目存储在所述L2P表高速缓存(114,214)中的所述确定,读取与所述特定条目相关联的数据。
14.根据权利要求12到13中任一项所述的方法,其中所述特定条目已在阈值时间段内更新。
15.根据权利要求12到13中任一项所述的方法,其还包括作为对所述特定条目存储在所述L2P更新表(115,215)中的所述确定的部分,确定所述特定条目是否存储在与所述L2P更新表(115,215)相关联的散列表(245-1…245-N)中。
16.根据权利要求12到13中任一项所述的方法,其中所述特定条目自上次执行无用单元收集操作以来就已被更新。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/681,619 | 2017-08-21 | ||
US15/681,619 US10628326B2 (en) | 2017-08-21 | 2017-08-21 | Logical to physical mapping |
PCT/US2018/046657 WO2019040320A1 (en) | 2017-08-21 | 2018-08-14 | LOGICAL MAPPING TO PHYSICS |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111033477A CN111033477A (zh) | 2020-04-17 |
CN111033477B true CN111033477B (zh) | 2024-02-02 |
Family
ID=65361435
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880054698.1A Active CN111033477B (zh) | 2017-08-21 | 2018-08-14 | 逻辑到物理映射 |
Country Status (5)
Country | Link |
---|---|
US (2) | US10628326B2 (zh) |
EP (1) | EP3673377B1 (zh) |
KR (1) | KR20200033985A (zh) |
CN (1) | CN111033477B (zh) |
WO (1) | WO2019040320A1 (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10628326B2 (en) * | 2017-08-21 | 2020-04-21 | Micron Technology, Inc. | Logical to physical mapping |
JP2019057074A (ja) * | 2017-09-20 | 2019-04-11 | 東芝メモリ株式会社 | メモリシステム |
JP2019057194A (ja) * | 2017-09-22 | 2019-04-11 | 東芝メモリ株式会社 | メモリシステム、及び不揮発性メモリの制御方法 |
US10970226B2 (en) * | 2017-10-06 | 2021-04-06 | Silicon Motion, Inc. | Method for performing access management in a memory device, associated memory device and controller thereof, and associated electronic device |
CN111610930B (zh) | 2019-02-26 | 2023-05-02 | 慧荣科技股份有限公司 | 数据储存装置以及非挥发式存储器控制方法 |
CN111611178B (zh) | 2019-02-26 | 2023-05-26 | 慧荣科技股份有限公司 | 数据储存装置以及非挥发式存储器控制方法 |
CN111610929B (zh) * | 2019-02-26 | 2023-04-14 | 慧荣科技股份有限公司 | 数据储存装置以及非挥发式存储器控制方法 |
CN111610931B (zh) | 2019-02-26 | 2023-05-02 | 慧荣科技股份有限公司 | 数据储存装置以及非挥发式存储器控制方法 |
US11055249B2 (en) * | 2019-06-25 | 2021-07-06 | Micron Technology, Inc. | Access optimization in aggregated and virtualized solid state drives |
US11762798B2 (en) | 2019-06-25 | 2023-09-19 | Micron Technology, Inc. | Aggregated and virtualized solid state drives with multiple host interfaces |
US11768613B2 (en) | 2019-06-25 | 2023-09-26 | Micron Technology, Inc. | Aggregation and virtualization of solid state drives |
KR20220048871A (ko) * | 2020-10-13 | 2022-04-20 | 에스케이하이닉스 주식회사 | 스토리지 장치 및 그 동작 방법 |
US11379367B2 (en) | 2020-11-19 | 2022-07-05 | Micron Technology, Inc. | Enhancement for activation and deactivation of memory address regions |
US11409665B1 (en) * | 2021-05-10 | 2022-08-09 | Innogrit Technologies Co., Ltd. | Partial logical-to-physical (L2P) address translation table for multiple namespaces |
US11921641B1 (en) | 2022-08-31 | 2024-03-05 | Western Digital Technologies, Inc. | Address translation for zoned namespace nonvolatile memory using a compacted logical-to-physical table |
US11934704B1 (en) | 2022-09-27 | 2024-03-19 | Western Digital Technologies, Inc. | Control table set determination in storage devices |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8793429B1 (en) * | 2011-06-03 | 2014-07-29 | Western Digital Technologies, Inc. | Solid-state drive with reduced power up time |
CN106776376A (zh) * | 2015-11-24 | 2017-05-31 | 群联电子股份有限公司 | 缓冲存储器管理方法、存储器控制电路单元及存储装置 |
CN107025178A (zh) * | 2015-09-22 | 2017-08-08 | 三星电子株式会社 | 存储器控制器、非易失性存储器系统及其操作方法 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7251653B2 (en) | 2004-06-30 | 2007-07-31 | Microsoft Corporation | Method and system for mapping between logical data and physical data |
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 |
US20100274961A1 (en) | 2009-04-22 | 2010-10-28 | Golla Robert T | Physically-indexed logical map table |
US9256527B2 (en) * | 2010-07-27 | 2016-02-09 | International Business Machines Corporation | Logical to physical address mapping in storage systems comprising solid state memory devices |
US8909851B2 (en) | 2011-02-08 | 2014-12-09 | SMART Storage Systems, Inc. | Storage control system with change logging mechanism and method of operation thereof |
US9009396B2 (en) | 2011-09-23 | 2015-04-14 | Avalanche Technology, Inc. | Physically addressed solid state disk employing magnetic random access memory (MRAM) |
US9165005B2 (en) | 2012-02-24 | 2015-10-20 | Simplivity Corporation | Method and apparatus utilizing non-uniform hash functions for placing records in non-uniform access memory |
US9268682B2 (en) | 2012-10-05 | 2016-02-23 | Skyera, Llc | Methods, devices and systems for physical-to-logical mapping in solid state drives |
US9575844B2 (en) * | 2013-03-15 | 2017-02-21 | Skyera, Llc | Mass storage device and method of operating the same to back up data stored in volatile memory |
US9229876B2 (en) | 2013-12-17 | 2016-01-05 | Sandisk Technologies Inc. | Method and system for dynamic compression of address tables in a memory |
US10915256B2 (en) * | 2015-02-25 | 2021-02-09 | SK Hynix Inc. | Efficient mapping scheme with deterministic power transition times for flash storage devices |
TWI575374B (zh) * | 2015-08-04 | 2017-03-21 | 群聯電子股份有限公司 | 映射表格更新方法、記憶體儲存裝置及記憶體控制電路單元 |
US9880939B2 (en) * | 2015-09-04 | 2018-01-30 | Toshiba Memory Corporation | Memory system and information processing system |
US10503653B2 (en) * | 2015-09-11 | 2019-12-10 | Toshiba Memory Corporation | Memory system |
US20170235681A1 (en) * | 2016-02-12 | 2017-08-17 | Kabushiki Kaisha Toshiba | Memory system and control method of the same |
US10528463B2 (en) * | 2016-09-28 | 2020-01-07 | Intel Corporation | Technologies for combining logical-to-physical address table updates in a single write operation |
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 |
US10359955B2 (en) * | 2017-02-23 | 2019-07-23 | Western Digital Technologies, Inc. | Data storage device configured to perform a non-blocking control update operation |
US10628326B2 (en) * | 2017-08-21 | 2020-04-21 | Micron Technology, Inc. | Logical to physical mapping |
-
2017
- 2017-08-21 US US15/681,619 patent/US10628326B2/en active Active
-
2018
- 2018-08-14 KR KR1020207007961A patent/KR20200033985A/ko active IP Right Grant
- 2018-08-14 WO PCT/US2018/046657 patent/WO2019040320A1/en unknown
- 2018-08-14 CN CN201880054698.1A patent/CN111033477B/zh active Active
- 2018-08-14 EP EP18847760.8A patent/EP3673377B1/en active Active
-
2020
- 2020-02-12 US US16/788,724 patent/US11055230B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8793429B1 (en) * | 2011-06-03 | 2014-07-29 | Western Digital Technologies, Inc. | Solid-state drive with reduced power up time |
CN107025178A (zh) * | 2015-09-22 | 2017-08-08 | 三星电子株式会社 | 存储器控制器、非易失性存储器系统及其操作方法 |
CN106776376A (zh) * | 2015-11-24 | 2017-05-31 | 群联电子股份有限公司 | 缓冲存储器管理方法、存储器控制电路单元及存储装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111033477A (zh) | 2020-04-17 |
KR20200033985A (ko) | 2020-03-30 |
EP3673377A1 (en) | 2020-07-01 |
WO2019040320A1 (en) | 2019-02-28 |
US20200183855A1 (en) | 2020-06-11 |
US10628326B2 (en) | 2020-04-21 |
EP3673377B1 (en) | 2024-05-01 |
US11055230B2 (en) | 2021-07-06 |
EP3673377A4 (en) | 2021-06-16 |
US20190057038A1 (en) | 2019-02-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111033477B (zh) | 逻辑到物理映射 | |
US10915475B2 (en) | Methods and apparatus for variable size logical page management based on hot and cold data | |
CN110998550B (zh) | 存储器寻址 | |
US20220083236A1 (en) | Cache line data | |
US8938601B2 (en) | Hybrid memory system having a volatile memory with cache and method of managing the same | |
EP2895958B1 (en) | Address mapping | |
US10740251B2 (en) | Hybrid drive translation layer | |
US20110231598A1 (en) | Memory system and controller | |
US10108342B2 (en) | Method for reducing use of DRAM in SSD and the SSD using the same | |
US11210226B2 (en) | Data storage device and method for first processing core to determine that second processing core has completed loading portion of logical-to-physical mapping table thereof | |
KR20200019421A (ko) | 메모리 시스템 내 대용량 데이터 저장이 가능한 블록에서의 유효 데이터 체크 방법 및 장치 | |
TWI475387B (zh) | 記憶體控制方法及記憶體控制電路 | |
US11061598B2 (en) | Optimized handling of multiple copies in storage management | |
US8521946B2 (en) | Semiconductor disk devices and related methods of randomly accessing data | |
US11126624B2 (en) | Trie search engine | |
KR102589609B1 (ko) | 분할된 저장장치에서의 스냅샷 관리 | |
US11409665B1 (en) | Partial logical-to-physical (L2P) address translation table for multiple namespaces | |
US20240143512A1 (en) | Write buffer linking for easy cache reads |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |