CN113553099A - 主机常驻转换层写入命令 - Google Patents
主机常驻转换层写入命令 Download PDFInfo
- Publication number
- CN113553099A CN113553099A CN202110440783.5A CN202110440783A CN113553099A CN 113553099 A CN113553099 A CN 113553099A CN 202110440783 A CN202110440783 A CN 202110440783A CN 113553099 A CN113553099 A CN 113553099A
- Authority
- CN
- China
- Prior art keywords
- translation layer
- host
- resident
- memory device
- physical address
- 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
- 238000013519 translation Methods 0.000 title claims abstract description 199
- 238000013507 mapping Methods 0.000 claims abstract description 77
- 230000004044 response Effects 0.000 claims abstract description 67
- 238000012545 processing Methods 0.000 claims abstract description 38
- 238000000034 method Methods 0.000 claims description 27
- 230000015654 memory Effects 0.000 abstract description 166
- 238000010586 diagram Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 6
- 238000003491 array Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 238000004590 computer program Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 230000009977 dual effect Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 239000000203 mixture Substances 0.000 description 2
- 229920001485 poly(butyl acrylate) polymer Polymers 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 150000004770 chalcogenides Chemical class 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000003623 enhancer Substances 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on 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/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/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
- 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/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1045—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
- G06F12/1054—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently physically addressed
-
- 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/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1045—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
- G06F12/1063—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently virtually addressed
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/3017—Runtime instruction translation, e.g. macros
-
- 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/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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Memory System (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请案涉及一种主机常驻转换层写入命令。存储器系统中的处理装置从主机系统接收主机常驻转换层写入命令,所述主机常驻转换层写入命令请求将与逻辑块地址相关联的数据写入到存储器装置,并且作为响应而返回所述数据写入到的物理地址,并且执行写入操作以将与所述逻辑块地址相关联的所述数据写入到所述存储器装置的所述物理地址。所述处理装置更新与所述逻辑块地址对应的转换层条目以包含所述物理地址,且将对所述主机常驻转换层写入命令的响应发送到所述主机系统,所述响应包括具有所述物理地址的经更新转换层条目。所述主机系统可将具有所述物理地址的所述经更新转换层条目存储在主机常驻转换层映射表中。
Description
技术领域
本公开的实施例大体上涉及一种存储器子系统,且更具体地说,涉及用于存储器子系统的主机常驻转换层写入命令。
背景技术
一种存储器子系统可包含存储数据的一或多个存储器装置。存储器装置可为例如非易失性存储器装置和易失性存储器装置。一般来说,主机系统可以利用存储器子系统以在存储器装置处存储数据且从存储器装置检索数据。
发明内容
本公开的一个实施例提供一种系统,其包括:存储器装置;以及处理装置,其与所述存储器装置以操作方式耦合以执行包括以下各项的操作:从主机系统接收主机常驻转换层写入命令,所述主机常驻转换层写入命令请求将与逻辑块地址相关联的数据写入到所述存储器装置,并且作为响应而返回所述数据写入到的物理地址;执行写入操作以将与所述逻辑块地址相关联的所述数据写入到所述存储器装置的所述物理地址;在所述存储器装置上的转换层映射表中更新与所述逻辑块地址对应的转换层条目以包含所述物理地址;以及向所述主机系统发送对所述主机常驻转换层写入命令的响应,所述响应包括具有所述物理地址的经更新转换层条目,其中所述主机系统将具有所述物理地址的所述经更新转换层条目存储在主机常驻转换层映射表中。
本公开的另一实施例提供一种方法,其包括:从主机系统接收主机常驻转换层写入命令,所述主机常驻转换层写入命令请求将与逻辑块地址相关联的数据写入到所述存储器装置,并且作为响应而返回所述数据写入到的物理地址;执行写入操作以将与所述逻辑块地址相关联的所述数据写入到所述存储器装置的所述物理地址;在所述存储器装置上的转换层映射表中更新与所述逻辑块地址对应的转换层条目以包含所述物理地址;以及向所述主机系统发送对所述主机常驻转换层写入命令的响应,所述响应包括具有所述物理地址的经更新转换层条目,其中所述主机系统将具有所述物理地址的所述经更新转换层条目存储在主机常驻转换层映射表中。
本公开的又一实施例提供一种包括指令的非暂时性计算机可读存储媒体,所述指令在由处理装置执行时致使所述处理装置执行包括以下各项的操作:从主机系统接收写入命令,所述写入命令请求将与逻辑块地址相关联的数据写入到所述存储器装置,并且作为响应而返回所述数据写入到的物理地址,其中所述逻辑块地址与所述存储器装置的逻辑地址空间的活动子区相关联;将所述写入命令识别为主机常驻转换层写入命令;执行写入操作以将与所述逻辑块地址相关联的所述数据写入到所述存储器装置的所述物理地址;以及将响应包发送到所述主机系统,所述响应包包括指示存储所述数据的所述物理地址的经更新转换层条目。
附图说明
根据下文给出的详细描述和本公开的各种实施例的附图,将更充分地理解本公开。
图1说明根据本公开的一些实施例的包含存储器子系统的实例计算系统。
图2是说明根据本公开的一些实施例的划分成若干区的存储器装置的逻辑地址空间的框图。
图3是说明根据本公开的一些实施例的使用主机常驻转换层写入命令的存储器子系统的操作的序列图。
图4是说明根据本公开的一些实施例的响应于主机常驻转换层写入命令而发送的响应包的框图。
图5是根据本公开的一些实施例的处理主机常驻转换层写入命令的实例方法的流程图。
图6是本公开的实施例可在其中操作的实例计算机系统的框图。
具体实施方式
本公开的各方面是针对用于存储器子系统的主机常驻转换层写入命令。存储器子系统可为存储装置、存储器模块,或存储装置和存储器模块的混合。下文结合图1描述存储装置和存储器模块的实例。一般来说,主机系统可利用包含一或多个组件(例如存储数据的存储器装置)的存储器子系统。主机系统可提供待存储于存储器子系统处的数据,且可请求从存储器子系统检索数据。
存储器子系统可包含高密度非易失性存储器装置,其中当没有电力被供应到存储器装置时需要数据的保持。非易失性存储器装置的一个实例是与非(NAND)存储器装置。下文结合图1描述非易失性存储器装置的其它实例。非易失性存储器装置是一或多个裸片的封装。每个裸片可由一或多个平面组成。对于一些类型的非易失性存储器装置(例如,NAND存储器装置),每个平面由一组块组成。每个块由一组页组成。每个页由一组存储器单元(“单元”)组成。单元是存储信息的电子电路。取决于单元类型,单元可以存储二进制信息的一或多个位,且具有与所存储的位数相关的各种逻辑状态。逻辑状态可由二进制值(例如“0”和“1”)或这些值的组合表示。
某些非易失性存储器装置使用快闪转换层(FTL)以将存储器存取请求的逻辑地址(通常称作逻辑块地址(LBA))转换成存储在一或多个FTL映射表中的对应物理存储器地址。LBA可以是主机系统用来管理数据的逻辑地址。许多存储器子系统控制器通常缺乏足够的存储器以将整个FTL映射表维持在高速缓存器中。因此,可按需求从存储器装置检索FTL映射表的部分,其可致使随机读取性能下降。在一些情况下,FTL映射表可被称为存储逻辑到物理(L2P)映射信息的L2P映射表。
为了改进随机读取性能,某些主机系统利用主机常驻存储器作为用于FTL映射表的至少一部分的高速缓存器,例如,结合JEDEC标准的主机性能增强器(HPB)特征。由于主机常驻存储器受到限制,因此主机系统仅维持整个FTL映射表的一些子集。此主机常驻FTL映射表可在一些情况下被称作HPB条目表。与从存储器装置读取数据相比,可从此主机常驻存储器更快地读取FTL数据,且主机系统可通过从主机常驻存储器检索存储于存储器装置中的数据的物理块地址(PBA),且在传送到存储器子系统的存储器存取请求中包含PBA来起始存储器操作。主机系统可以使用主机数据的LBA从主机常驻存储器中检索PBA。在接收到存储器存取请求后,存储器子系统可立即从存储器装置检索与物理地址相关联的数据,而无与存取基于快闪存储器的FTL映射表且使用LBA以获得物理地址相关联的延迟。
每当主机系统将数据写入到在高速缓存于主机常驻存储器中的FTL映射信息中表示的LBA时,对应物理地址就会改变。另外,存储器子系统可有规律地执行某些存储器管理操作(例如,垃圾收集),这导致数据重写到新物理地址。因此,高速缓存于主机常驻存储器中的FTL映射表的部分有规律地变为无效。在对同一LBA区执行混合读取和写入操作的任何典型工作负载期间,FTL映射表中的逻辑到物理映射的无效非常频繁。结果,主机系统可发布具有无效PBA的读取命令,或必须请求经更新的FTL映射信息来替换主机常驻FTL映射信息(例如,发布HPB读取缓冲器命令)。任一情形会导致主机系统与存储器子系统之间的增加的数据业务、服务存储器存取请求的增加的等待时间、针对主机系统的降低的服务质量以及由存储器子系统执行的不必要的操作的增加。
本公开的各方面通过实施用于存储器子系统的主机常驻转换层写入命令来解决以上和其它不足。在一个实施例中,当将数据写入到LBA时,主机系统可发布主机常驻转换层写入命令,对于LBA,FTL映射信息当前高速缓存于主机常驻存储器中(即,当将数据写入到存储器装置的逻辑地址空间的“活动”子区时)。存储器子系统控制器接收主机常驻转换层写入命令,且执行写入操作以将与LBA相关联的数据写入到存储器装置的物理地址。存储器子系统控制器进一步更新与LBA对应的转换层条目以包含物理地址,且将对主机常驻转换层写入命令的响应发送到主机系统。响应包含具有经更新物理地址的经更新转换层条目。主机系统可将具有物理地址的经更新转换层条目存储在主机常驻转换层映射表中,所述主机常驻转换层映射表存储在主机常驻存储器中。因此,主机常驻转换层映射表维持用于存储器装置的对应子区的最新FTL映射信息。随后,如果主机系统发布主机常驻转换层读取命令,则主机系统可包含经更新的物理地址,由此允许存储器子系统执行读取操作而不必存取基于快闪存储器的FTL映射表。
使用主机常驻转换层写入命令导致递送存储于主机常驻FTL映射表中的有效物理地址的HPB读取命令的增加。因此,使用与存储于主机常驻FTL映射表中的LBA对应的经更新物理地址来更新主机常驻FTL映射表的HPB读取缓冲器命令的数目减少。这些因素一起促使主机系统与存储器子系统之间的减少的数据业务、服务存储器存取请求的减少的等待时间、针对主机系统的增加的服务质量以及由存储器子系统执行的不必要的操作的减少,从而允许带宽可用于执行其它操作。
图1说明根据本公开的一些实施例的包含存储器子系统110的实例计算系统100。存储器子系统110可包含媒体,例如一或多个易失性存储器装置(例如,存储器装置140)、一或多个非易失性存储器装置(例如,存储器装置130),或此类媒体的组合。
存储器子系统110可为存储装置、存储器模块或存储装置和存储器模块的混合。存储装置的实例包含固态驱动器(SSD)、快闪驱动器、通用串行总线(USB)快闪驱动器、嵌入式多媒体控制器(eMMC)驱动器、通用快闪存储(UFS)驱动器、安全数字(SD)卡以及硬盘驱动器(HDD)。存储器模块的实例包含双列直插式存储器模块(DIMM)、小外形DIMM(SO-DIMM),以及各种类型的非易失性双列直插式存储器模块(NVDIMM)。
计算系统100可以是计算装置,例如台式计算机、膝上型计算机、网络服务器、移动装置、交通工具(例如,飞机、无人机、火车、汽车或其它运输工具)、具有物联网(IoT)功能的装置、嵌入式计算机(例如,交通工具、工业设备或联网商业装置中包含的嵌入式计算机),或包含存储器和处理装置的这类计算装置。
计算系统100可包含耦合到一或多个存储器子系统110的主机系统120。在一些实施例中,主机系统120耦合到不同类型的存储器子系统110。图1说明耦合到一个存储器子系统110的主机系统120的一个实例。如本文中所使用,“耦合到”或“与…耦合”通常是指组件之间的连接,其可以是间接通信连接或直接通信连接(例如,没有中间组件),无论是有线还是无线的,包含例如电连接、光学连接、磁连接等连接。
主机系统120可包含处理器芯片组以及由处理器芯片组执行的软件堆栈。处理器芯片组可包含一或多个核心、一或多个高速缓存器、存储器控制器(例如,NVDIMM控制器),以及存储协议控制器(例如,PCIe控制器、SATA控制器)。主机系统120使用例如存储器子系统110以将数据写入到存储器子系统110且从存储器子系统110读取数据。在一个实施例中,主机系统120包含主机常驻FTL映射表125。
主机系统120可经由物理主机接口耦合到存储器子系统110。物理主机接口的实例包含但不限于串行高级技术附件(SATA)接口、外围组件互连高速(PCIe)接口、通用串行总线(USB)接口、光纤信道、串行连接的SCSI(SAS)、双数据速率(DDR)存储器总线、小型计算机系统接口(SCSI)、双列直插式存储器模块(DIMM)接口(例如,支持双数据速率(DDR)的DIMM套接接口)等。物理主机接口可以用于在主机系统120与存储器子系统110之间传输数据。当存储器子系统110通过物理主机接口(例如,PCIe总线)与主机系统120耦合时,主机系统120可进一步利用NVM快速(NVMe)接口来存取组件(例如存储器装置130)。物理主机接口可提供用于在存储器子系统110与主机系统120之间传送控制、地址、数据和其它信号的接口。图1说明存储器子系统110作为实例。一般来说,主机系统120可经由同一通信连接、多个单独通信连接和/或通信连接的组合来存取多个存储器子系统。
存储器装置130、140可包含不同类型的非易失性存储器装置和/或易失性存储器装置的任何组合。易失性存储器装置(例如,存储器装置140)可为但不限于随机存取存储器(RAM),例如动态随机存取存储器(DRAM)和同步动态随机存取存储器(SDRAM)。
非易失性存储器装置(例如,存储器装置130)的一些实例包含与非(NAND)型快闪存储器和就地写入存储器,例如三维交叉点(“3D交叉点”)存储器装置,其为非易失性存储器单元的交叉点阵列。非易失性存储器的交叉点阵列可以结合可堆叠交叉网格化数据存取阵列基于体电阻的改变来执行位存储。另外,与许多基于闪存的存储器形成对比,交叉点非易失性存储器可进行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。NAND型快闪存储器包含例如二维NAND(2D NAND)和三维NAND(3D NAND)。
存储器装置130中的每一个可包含一或多个存储器单元阵列,例如存储器阵列137。一种类型的存储器单元,例如单层级单元(SLC)可每单元存储一个位。其它类型的存储器单元,例如多层级单元(MLC)、三层级单元(TLC)、四层级单元(QLC)和五层级单元(PLC)可每单元存储多个位。在一些实施例中,存储器装置130中的每一个可包含一或多个存储器单元阵列,例如SLC、MLC、TLC、QLC或此类存储器单元阵列的任何组合。在一些实施例中,特定存储器装置可包含存储器单元的SLC部分、MLC部分、TLC部分、QLC部分或PLC部分。存储器装置130的存储器单元可分组为页,所述页可指用于存储数据的存储器装置的逻辑单元。对于一些类型的存储器(例如,NAND),页可被分组以形成块。另外,在一个实施例中,存储器阵列137可包含FTL映射表135。
尽管描述了非易失性存储器组件,例如3D交叉点非易失性存储器单元阵列及NAND型快闪存储器(例如,2D NAND、3D NAND),但存储器装置130可是基于任何其它类型的非易失性存储器,例如只读存储器(ROM)、相变存储器(PCM)、自选存储器、其它基于硫属化物的存储器、铁电晶体管随机存取存储器(FeTRAM)、铁电随机存取存储器(FeRAM)、磁随机存取存储器(MRAM)、自旋转移力矩(STT)-MRAM、导电桥接RAM(CBRAM)、电阻性随机存取存储器(RRAM)、基于氧化物的RRAM(OxRAM)、或非(NOR)快闪存储器,及电可擦除可编程只读存储器(EEPROM)。
存储器子系统控制器115(或简称为控制器115)可与存储器装置130通信以执行操作,如在存储器装置130处读取数据、写入数据或擦除数据和其它这类操作。存储器子系统控制器115可以包含硬件,例如一或多个集成电路和/或离散组件、缓冲存储器或其组合。硬件可包含具有执行本文中所描述的操作的专用(即,硬译码)逻辑的数字电路系统。存储器子系统控制器115可以是微控制器、专用逻辑电路系统(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)或其它合适的处理器。
存储器子系统控制器115可为处理装置,其包含经配置以执行存储在本地存储器119中的指令的一或多个处理器(例如,处理器117)。在所说明的实例中,存储器子系统控制器115的本地存储器119包含配置成存储指令的嵌入式存储器,所述指令用于执行控制存储器子系统110的操作(包含处理存储器子系统110与主机系统120之间的通信)的各种过程、操作、逻辑流程和例程。
在一些实施例中,本地存储器119可以包含存储存储器指针、所提取数据等的存储器寄存器。本地存储器119还可包含用于存储微码的ROM。虽然图1中的实例存储器子系统110已说明为包含存储器子系统控制器115,但在本公开的另一实施例中,存储器子系统110不包含存储器子系统控制器115,而是可替代地依赖于外部控制(例如,由外部主机或由与存储器子系统分离的处理器或控制器提供)。
一般来说,存储器子系统控制器115可以从主机系统120接收命令或操作,且可将所述命令或操作转换为指令或适当命令以实现对存储器装置130的所需存取。存储器子系统控制器115可负责其它操作,例如耗损均衡操作、垃圾收集操作、错误检测和错误校正码(ECC)操作、加密操作、高速缓存操作和与存储器装置130相关联的逻辑地址(例如,逻辑块地址(LBA)、名字空间)和物理地址(例如,物理块地址)之间的地址转换。存储器子系统控制器115可进一步包含主机接口电路系统以经由物理主机接口与主机系统120通信。主机接口电路系统可以将从主机系统接收到的命令转换成存取存储器装置130的命令指令,以及将与存储器装置130相关联的响应转换成用于主机系统120的信息。
存储器子系统110还可包含未说明的额外电路系统或组件。在一些实施例中,存储器子系统110可包含高速缓存器或缓冲器(例如,DRAM)和地址电路系统(例如,行解码器和列解码器),所述地址电路系统可从存储器子系统控制器115接收地址并解码所述地址以存取存储器装置130。
在一些实施例中,存储器装置130包含本地媒体控制器132,其结合存储器子系统控制器115操作以对存储器装置130的一或多个存储器单元执行操作。外部控制器(例如,存储器子系统控制器115)可在外部管理存储器装置130(例如,对存储器装置130执行媒体管理操作)。在一些实施例中,存储器子系统110为受管理存储器装置,其为具有在裸片上的控制逻辑(例如,本地控制器132)和用于相同存储器装置封装内的媒体管理的控制器(例如,存储器子系统控制器115)的原始存储器装置130。受管理存储器装置的实例是受管理NAND(MNAND)装置。
在一个实施例中,存储器子系统110包含主机常驻FTL管理器组件113,其协调主机常驻FTL映射表125的使用和对应主机常驻转换层命令(包含主机常驻转换层写入命令)的处理。在一个实施例中,主机常驻FTL管理器组件113从主机系统120接收请求将与LBA相关联的数据写入到存储器装置130的主机常驻转换层写入命令。在一个实施例中,主机系统120在将数据写入到LBA时,发布主机常驻转换层写入命令,对于LBA,FTL映射信息当前高速缓存于主机常驻FTL映射表125中。作为响应,主机常驻FTL管理器组件113执行写入操作以将与LBA相关联的数据写入到存储器装置130的物理地址(即,存储器阵列137中)。主机常驻FTL管理器组件113更新与LBA对应的转换层条目以包含物理地址。在一个实施例中,主机常驻FTL管理器组件113更新基于快闪的FTL映射表135中的转换层条目。主机常驻FTL管理器组件113将对主机常驻转换层写入命令的响应发送到主机系统120。响应包含具有经更新物理地址的经更新转换层条目。主机系统120可将具有物理地址的经更新转换层条目存储在主机常驻FTL映射表125中。因此,主机系统120可在用于存储器装置130的活动子区的主机常驻FTL映射表125中维持最新FTL映射信息。如果主机系统120随后发布主机常驻转换层读取命令,则主机系统120可包含来自主机常驻FTL映射表125的经更新物理地址,进而允许存储器主机常驻FTL管理器组件113对存储器装置130的存储器阵列137执行读取操作,而不必存取基于快闪存储器的FTL映射表135。下文描述关于主机常驻FTL管理器113的操作的其它细节。
在一些实施例中,存储器子系统控制器115包含主机常驻FTL管理器组件113的至少一部分。例如,存储器子系统控制器115可包含处理器117(处理装置),其经配置以执行存储在本地存储器119中以用于执行本文中所描述的操作的指令。在一些实施例中,主机常驻FTL管理器组件113是主机系统110、应用程序或操作系统的一部分。
图2是说明根据本公开的一些实施例的划分成若干区的存储器装置130的逻辑地址空间200的框图。在一个实施例中,逻辑地址空间被划分成多个单独区,所述单独区还可被称作HPB区。举例来说,可存在N个区210、220、230。区210、220、230中的每一个可被均衡大小,但如果逻辑地址空间200的总大小不是区大小的整数倍,则区230可更小。区210、220、230中的每一个可进一步被划分成若干单独子区,所述单独子区还可被称作HPB子区。在一个实施例中,在每个区中可存在M个子区。举例来说,区210可包含子区212、214、216,区220可包含子区222、224、226,且区230可包含子区232、234、236。可对子区中的每一个进行均衡大小,但如果区大小不是子区大小的整数倍,则每个区的子区M-1 216、226、236可更小。在其它实施例中,可存在一些其它数目的区和/或子区,且所述区和/或子区可具有不同大小。
在一个实施例中,基于快闪的FTL映射表135维持与逻辑地址空间200对应的转换层条目的数目。每个转换层条目包含对应逻辑块地址的物理地址。在一个实施例中,主机系统120可发送对基于快闪的FTL映射表135中的条目的子集的请求(例如,HPB读取缓冲器命令),且将所述子集存储在主机常驻FTL映射表125中。在一个实施例中,用于给定子区中的所有逻辑块地址的转换层条目响应于请求而一起传送到主机系统120。因此,主机常驻FTL映射表125可包含用于逻辑地址空间200的一或多个子区的转换层条目。在主机常驻FTL映射表125中存储转换层条目的那些子区被称作“活动”子区。如果逻辑地址空间200的区域包含至少一个活动子区,则其可被视为活动的。举例来说,如果与子区212中的逻辑地址对应的包含存储器装置130上的对应物理地址的转换层条目高速缓存于主机常驻FTL映射表125中,则子区212和区210均被视为活动的。
在一个实施例中,当在装置控制模式中操作时,主机常驻FTL管理器组件113向主机系统120提供关于激活或去激活哪些区或子区的建议。建议可(例如)基于最频繁存取的逻辑块地址、最近存取的逻辑块地址等。响应于接收建议,主机系统120可请求与所建议的区或子区对应的转换层条目。在另一实施例中,当在主机控制模式中操作时,主机系统120决定在无来自存储器子系统110的输入的情况下激活或去激活哪些区或子区。在一个实施例中,主机常驻FTL管理器组件113可接收针对非活跃区或子区中的逻辑地址的主机常驻转换层写入命令。举例来说,主机系统120可使用主机常驻转换层写入命令来请求激活特定区或子区。主机系统120可发送主机常驻转换层写入命令。
图3是说明根据本公开的一些实施例的使用主机常驻转换层写入命令的存储器子系统的操作的序列图。序列图300说明在主机系统120、实施主机常驻FTL管理器组件113的存储器子系统控制器115和存储器装置130之间交换的命令和数据的一个实施例。在操作301处,主机系统120发送操作模式的指示。举例来说,主机系统120可指示其将在主机常驻转换层操作模式中操作。此指示主机系统120具有主机常驻FTL映射表125,且可存储来自存储器装置130的基于快闪的FTL映射表135的转换层条目的至少一个子集。在一个实施例中,主机系统120可进一步指示其将在装置控制模式还是主机控制模式中操作。当在装置控制模式中操作时,在操作302处,主机常驻FTL管理器组件113可将激活一或多个子区的建议发送到主机系统120。当在主机控制模式中操作时,主机系统120可识别一或多个子区以激活自身。
在操作304处,主机常驻FTL管理器组件113从主机系统120接收包含存储器装置130的逻辑地址空间200的一或多个子区的指示的主机常驻转换层读取缓冲器命令(例如,HPB读取缓冲器命令)。在操作306处,主机常驻FTL管理器组件113执行读取操作以检索存储在存储器装置130上的FTL映射表135中的一或多个转换层条目。那些一或多个转换层条目与在操作304中指示的逻辑地址空间的一或多个子区相关联。在操作308处,主机常驻FTL管理器组件113从存储器装置130接收包含一或多个转换层条目的FTL映射信息。如上文所描述,每个转换层条目包含所识别子区中的对应逻辑块地址的物理地址。在操作310处,主机常驻FTL管理器组件113将对主机常驻转换层读取缓冲器命令的响应发送到主机系统120。在一个实施例中,响应包含由存储器装置130上的FTL映射表135获得的一或多个转换层条目。主机系统120可将一或多个转换层条目存储在主机常驻FTL映射表125中。
在操作312处,主机常驻FTL管理器组件113从主机系统120接收请求将与逻辑块地址相关联的数据写入到存储器装置的主机常驻转换层写入命令。在一个实施例中,逻辑块地址与存储于主机常驻FTL映射表125中的转换层条目中的一个对应。在操作314处,主机常驻FTL管理器组件113执行写入操作以将与逻辑块地址相关联的数据写入到存储器装置130的物理地址,且在操作316处,主机常驻FTL管理器组件113接收成功地执行写入操作的确认(即,数据成功地存储在物理地址处)。在操作318处,主机常驻FTL管理器组件113更新与逻辑块地址对应的转换层条目以包含数据写入的物理地址。在操作320处,主机常驻FTL管理器组件113将对主机常驻转换层写入命令的响应发送到主机系统120。在一个实施例中,响应包含具有数据写入的物理地址的经更新转换层条目。主机系统120可将具有物理地址的经更新转换层条目存储在主机常驻FTL映射表125中。因此,主机系统120接收经更新的FTL映射信息,而不必将单独请求(例如,HPB读取缓冲器命令)发布到存储器子系统110。
在操作322处,主机常驻FTL管理器组件113从主机系统120接收包含存储器装置130上的数据的物理地址的主机常驻转换层读取命令(例如,HPB读取命令)。在操作324处,主机常驻FTL管理器组件113执行读取操作以从存储器装置130读取存储在物理地址处的数据,且在操作326处接收从存储器装置130读取的请求数据。在操作328处,主机常驻FTL管理器组件113将从存储器装置130的物理地址读取的数据发送到主机系统120。以此方式,主机常驻FTL管理器组件113可在不读取存储于存储器装置130的FTL映射表135中的对应转换层条目的情况下执行读取操作。
图4是说明根据本公开的一些实施例的响应于主机常驻转换层写入命令而发送的响应包的框图。在一个实施例中,响应包400是通用快闪存储(UFS)协议信息单元(UPIU)。如上文所描述,响应于接收到主机常驻转换层写入命令且将与逻辑块地址相关联的数据写入到存储器装置130的物理地址,主机常驻FTL管理器组件113可产生响应包400且将响应包400作为对主机常驻转换层写入命令的响应发送到主机系统400。
在一个实施例中,响应包400包含响应包标头信息410,且HPB感测数据区域包含多个转换层条目(例如,HPB条目)420、430、440和450。响应包标头信息410可包含识别信息的一或多个项目,例如包识别符、一或多个旗标、LUN识别符、任务标签、状态字段、总长度字段、片段长度字段、装置信息(例如)和/或额外或不同信息。HPB感测数据区域可包含与主机常驻转换层写入命令的信息块大小对应的转换层条目的数目。信息块大小指示响应于主机常驻转换层写入命令将写入多少数据块。在一个实施例中,每个转换层条目表示一个数据块(例如,4kB)的FTL映射信息。因此,如果主机常驻转换层写入命令的信息块大小为16kB,则将写入四个数据块,且响应包400可包含四个转换层条目420、430、440和450。在其它实施例中,可使用某一其它信息块大小,例如32kB,这将促使响应包具有八个转换层条目,或64kB,这将促使响应包具有16个转换层条目。
在一个实施例中,每个转换层条目包含存储数据的物理地址。在另一实施例中,每个转换层条目包含存储对应逻辑块地址的数据的物理地址,所述物理地址布置为LBA-PBA对。举例来说,转换层条目420包含LBA 422和PBA 424,转换层条目440包含LBA 432和PBA434,转换层条目440包含LBA 442和PBA 444,且转换层条目450包含LBA 452和PBA 454。在一个实施例中,当主机常驻FTL管理器组件113将与活动子区的逻辑块地址(例如LBA 422)对应的数据写入到存储器装置130的物理地址时,主机常驻FTL管理器组件113进一步更新对应的转换层条目420以包含物理地址的指示,例如PBA 424。此转换层条目420可被称为“经更新”转换层条目。在一个实施例中,每个转换层条目的PBA经加密或以其它方式囊封在条目中。因此,主机常驻FTL管理器组件113可提供转换层条目(例如,8字节)而不是仅PBA(例如,4字节)作为响应包400的部分。当产生对主机常驻转换层写入命令的响应时,主机常驻FTL管理器组件113可包含响应包400中的经更新转换层条目420,以及与在写入操作期间写入的任何其它LBA对应的转换层条目。主机常驻FTL管理器组件113将包含经更新转换层条目或具有数据写入到的物理地址的条目的响应包400发送到主机系统120。主机系统120可将包含一或多个物理地址的一或多个更新转换层条目存储在主机常驻FTL映射表125中,且当发布后续主机常驻转换层读取命令(例如,HPB读取命令)时使用所述一或多个物理地址。
图5是根据本公开的一些实施例的处理主机常驻转换层写入命令的实例方法的流程图。方法500可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,方法500是由图1的主机常驻FTL管理器组件113执行。虽然以特定顺序或次序来展示,但除非另外规定,否则可修改过程的次序。因此,所说明的实施例应仅作为实例理解,且所说明的过程可以不同次序执行,且一些过程可并行地执行。此外,可在各种实施例中省略一或多个过程。因此,并非每一实施例中都需要所有过程。其它过程流程是可能的。
在操作505处,处理逻辑从主机系统120接收主机常驻转换层写入命令,所述主机常驻转换层写入命令请求将与逻辑块地址相关联的数据写入到存储器装置,并且作为响应而返回数据写入到的物理地址。在一个实施例中,逻辑块地址与存储于主机常驻FTL映射表125中的转换层条目中的一个对应。在一个实施例中,主机常驻转换层写入命令包含逻辑块地址、待写入到存储器装置的数据的指示,以及区分主机常驻转换层写入命令与常规写入命令的指示。在一个实施例中,主机常驻FTL管理器组件113可通过检查此指示而将所接收的写入命令识别为主机常驻转换层写入命令。此指示(例如,位、旗标、标头、唯一值、唯一格式等)可指示将在写入操作的执行后产生响应(例如,响应包400)的主机常驻FTL管理器组件113。常规写入命令将不致使存储器子系统110产生或发送此响应。在一个实施例中,主机常驻转换层写入命令包含多个逻辑块地址,这可致使主机常驻FTL管理器组件113作为响应而返回多个对应物理地址。
在操作510处,处理逻辑执行写入操作以将与逻辑块地址相关联的数据写入到存储器装置130的物理地址。在一个实施例中,主机常驻FTL管理器组件113将写入命令发送到存储器装置130以致使存储器装置130起始写入操作。举例来说,存储器装置130可识别与可用物理地址对应的存储器阵列137的一或多个字线和子块,且可应用一或多个编程电压脉冲以致使表示待存储于物理地址处的数据的电荷。在一个实施例中,主机常驻FTL管理器组件113接收写入操作成功地执行的确认(即,数据成功地存储在物理地址处)。
在操作515处,处理逻辑更新存储器装置(例如,FTL映射表135)上的与逻辑块地址(例如,LBA 422)对应的转换层表中的转换层条目(例如,转换层条目420),以包含数据写入的物理地址(例如,PBA 424)。在一个实施例中,主机常驻FTL管理器组件113识别与逻辑块地址对应的转换层条目。举例来说,FTL映射表135中的转换层表可通过逻辑块地址编索引。主机常驻FTL管理器组件113可进一步确定存储器装置130的物理地址,在所述物理地址中写入与逻辑块地址相关联的数据。在一个实施例中,存储器装置130将物理地址连同写入操作成功地执行的确认一起提供到主机常驻FTL管理器组件113。主机常驻FTL管理器组件113可通过将物理地址写入到转换层条目(例如,覆写存储在条目中的先前物理地址)来更新转换层条目。如上文所描述,转换层条目(例如,转换层条目420)包含逻辑到物理地址映射,例如表示数据的逻辑块地址(例如,LBA 422)和存储数据的物理地址(例如,PBA 424)。
在操作520处,处理逻辑将对主机常驻转换层写入命令的响应(例如,响应包400)发送到主机系统120。在一个实施例中,响应包400包含具有数据写入的物理地址的经更新转换层条目。主机系统120可将具有物理地址的经更新转换层条目存储在主机常驻FTL映射表125中。因此,主机系统120接收经更新的FTL映射信息,而不必将单独请求(例如,HPB读取缓冲器命令)发布到存储器子系统110,且可在随后发布主机常驻转换层读取命令(例如,HPB读取命令)时使用经更新的FTL映射信息。
图6说明计算机系统600的实例机器,在所述实例机器内可执行用于使机器执行本文中所论述的方法中的任何一或多种的一组指令。在一些实施例中,计算机系统600可与包含、耦合到或利用存储器子系统(例如,图1的存储器子系统110)的主机系统(例如,图1的主机系统120)对应或可用于执行控制器的操作(例如,执行操作系统以执行与图1的主机常驻FTL管理器组件113对应的操作)。在替代性实施例中,机器可连接(例如联网)到LAN、内联网、外联网和/或互联网中的其它机器。机器可作为对等(或分布式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而在客户端-服务器网络环境中的服务器或客户端机器的容量中操作。
机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝式电话、网络器具、服务器、网络路由器、交换机或桥接器,或能够(依序或以其它方式)执行指定将由所述机器采取的动作的指令集的任何机器。另外,尽管说明单个机器,但还应认为术语“机器”包含机器的任何集合,所述集合单独地或共同地执行一组(或多组)指令以执行本文中所论述的方法中的任何一或多种。
实例计算机系统600包含处理装置602、主存储器604(例如,只读存储器(ROM)、闪存器、动态随机存取存储器(DRAM),例如同步DRAM(SDRAM)或Rambus DRAM(RDRAM)等)、静态存储器606(例如,闪存器、静态随机存取存储器(SRAM)等),以及数据存储系统618,其经由总线630彼此通信。
处理装置602表示一或多个通用处理装置,如微处理器、中央处理单元等。更具体地说,处理装置可为复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器,或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置602还可为一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。处理装置602配置成执行用于执行本文中所论述的操作和步骤的指令626。计算机系统600还可包含网络接口装置608以通过网络620通信。
数据存储系统618可包含机器可读存储媒体624(也被称作计算机可读媒体,例如非暂时性计算机可读媒体),其上存储有一或多组指令626或体现本文中所描述的方法或功能中的任何一或多种的软件。在一个实施例中,此媒体624还可由主机常驻FTL管理器组件113、存储器子系统控制器115或其它组件写入。指令626还可在其由计算机系统600执行期间完全或至少部分地驻存在主存储器604内和/或处理装置602内,主存储器604和处理装置602也构成机器可读存储媒体。机器可读存储媒体624、数据存储系统618和/或主存储器604可以与图1的存储器子系统110对应。
在一个实施例中,指令626包含指令以实施与图1的主机常驻FTL管理器组件113对应的功能性。尽管在实例实施例中机器可读存储媒体624展示为单个媒体,但术语“机器可读存储媒体”应认为包含存储一或多个指令集的单个媒体或多个媒体。术语“机器可读存储媒体”还应被认为包含能够存储或编码供机器执行的一组指令且使机器执行本公开的方法中的任何一个或多个的任何媒体。因此,术语“机器可读存储媒体”应被认为包含但不限于固态存储器、光学媒体和磁性媒体。
已依据计算机存储器内的数据位的操作的算法和符号表示呈现了先前详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用以将其工作的主旨最有效地传达给本领域的其他技术人员的方式。算法在这里并且通常被认为是引起所期望的结果的操作的自洽序列。操作为要求对物理量进行物理控制的操作。这些量通常但未必呈能够被存储、组合、比较和以其它方式操控的电或磁信号的形式。主要出于通用的原因,已经证明将这些信号称为位、值、元件、符号、字符、术语、数字等有时是便利的。
然而,应牢记,所有这些和类似术语应与适当物理量相关联,且仅是应用于这些量的方便标签。本公开可以指操控和变换计算机系统的寄存器和存储器内的表示为物理(电子)量的数据为计算机系统存储器或寄存器或其它此类信息存储系统内的类似地表示为物理量的其它数据的计算机系统或类似电子计算装置的动作和过程。
本公开还涉及用于执行本文的操作的设备。此设备可出于预期目的而专门构造,或其可包含通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此类计算机程序可存储在计算机可读存储媒体中,如但不限于任何类型的盘(包含软盘、光盘、CD-ROM和磁性光盘)、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡或适合于存储电子指令的任何类型的媒体,它们各自耦合到计算机系统总线。
本文中所呈现的算法和显示自身不与任何特定计算装置或其它设备相关。各种通用系统可与根据本文中的教示的程序一起使用,或其可证明构造用以执行所述方法更加专用的设备是便利的。将如下文描述中所示呈现用于各种这些系统的结构。另外,不参考任何特定编程语言描述本公开。将了解,可使用多种编程语言来实施如本文中所描述的本公开的教示。
本公开可以提供为计算机程序产品或软件,其可以包含在其上存储有可以用于编程计算机系统(或其它电子装置)以执行根据本公开的过程的指令的机器可读媒体。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机构。在一些实施例中,机器可读(例如,计算机可读)媒体包含机器(例如,计算机)可读存储媒体,例如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储媒体、光学存储媒体、快闪存储器组件等。
在前述说明书中,已参考其具体实例实施例描述了本公开的实施例。将显而易见的是,可以在不脱离如所附权利要求书中阐述的本公开的实施例的更广精神和范围的情况下对本发明进行各种修改。因此,应在说明性意义上而非限制性意义上看待说明书和图式。
Claims (20)
1.一种系统,其包括:
存储器装置;以及
处理装置,其与所述存储器装置以操作方式耦合,以执行包括以下各项的操作:
从主机系统接收主机常驻转换层写入命令,所述主机常驻转换层写入命令请求将与逻辑块地址相关联的数据写入到所述存储器装置,并且作为响应而返回所述数据写入到的物理地址;
执行写入操作以将与所述逻辑块地址相关联的所述数据写入到所述存储器装置的所述物理地址;
在所述存储器装置上的转换层映射表中更新与所述逻辑块地址对应的转换层条目以包含所述物理地址;以及
向所述主机系统发送对所述主机常驻转换层写入命令的响应,所述响应包括具有所述物理地址的经更新转换层条目,其中所述主机系统将具有所述物理地址的所述经更新转换层条目存储在主机常驻转换层映射表中。
2.根据权利要求1所述的系统,其中所述逻辑块地址与所述存储器装置的逻辑地址空间的活动子区相关联。
3.根据权利要求2所述的系统,其中与所述逻辑地址空间的所述活动子区对应的一或多个转换层条目存储于所述主机常驻转换层映射表中。
4.根据权利要求1所述的系统,其中更新所述转换层条目包括:
识别与所述逻辑块地址对应的所述转换层条目;
确定所述存储器装置的所述物理地址,在所述物理地址中写入与所述逻辑块地址相关联的所述数据;以及
将所述物理地址写入到所述转换层条目,所述转换层条目包括逻辑到物理地址映射。
5.根据权利要求1所述的系统,其中所述处理装置执行包括以下项的进一步操作:
从所述主机系统接收主机常驻转换层操作模式的指示。
6.根据权利要求1所述的系统,其中所述处理装置执行包括以下各项的进一步操作:
从所述主机系统接收主机常驻转换层读取缓冲器命令,所述主机常驻转换层读取缓冲器命令包括所述存储器装置的逻辑地址空间的一或多个子区的指示;
执行读取操作以检索存储在所述存储器装置上的一或多个转换层条目,其中所述一或多个转换层条目与所述逻辑地址空间的所述一或多个子区相关联;以及
向所述主机系统发送对所述主机常驻转换层读取缓冲器命令的响应,所述响应包括所述一或多个转换层条目,其中所述主机系统将所述一或多个转换层条目存储在所述主机常驻转换层映射表中。
7.根据权利要求1所述的系统,其中所述处理装置执行包括以下各项的进一步操作:
从所述主机系统接收主机常驻转换层读取命令,所述主机常驻转换层读取命令包括所述存储器装置的所述物理地址;
执行读取操作以从所述存储器装置读取存储在所述物理地址处的所述数据;以及
将来自所述存储器装置的所述物理地址的所述数据发送到所述主机系统。
8.根据权利要求7所述的系统,其中所述处理装置执行包括以下项的进一步操作:
在不读取存储于所述存储器装置上的对应转换层条目的情况下,执行所述读取操作。
9.一种方法,其包括:
从主机系统接收主机常驻转换层写入命令,所述主机常驻转换层写入命令请求将与逻辑块地址相关联的数据写入到所述存储器装置,并且作为响应而返回所述数据写入到的物理地址;
执行写入操作以将与所述逻辑块地址相关联的所述数据写入到所述存储器装置的所述物理地址;
在所述存储器装置上的转换层映射表中更新与所述逻辑块地址对应的转换层条目以包含所述物理地址;以及
向所述主机系统发送对所述主机常驻转换层写入命令的响应,所述响应包括具有所述物理地址的经更新转换层条目,其中所述主机系统将具有所述物理地址的所述经更新转换层条目存储在主机常驻转换层映射表中。
10.根据权利要求9所述的方法,其中所述逻辑块地址与所述存储器装置的逻辑地址空间的活动子区相关联。
11.根据权利要求10所述的方法,其中与所述逻辑地址空间的所述活动子区对应的一或多个转换层条目存储于所述主机常驻转换层映射表中。
12.根据权利要求9所述的方法,其中更新所述转换层条目包括:
识别与所述逻辑块地址对应的所述转换层条目;
确定所述存储器装置的所述物理地址,在所述物理地址中写入与所述逻辑块地址相关联的所述数据;以及
将所述物理地址写入到所述转换层条目,所述转换层条目包括逻辑到物理地址映射。
13.根据权利要求9所述的方法,其进一步包括:
从所述主机系统接收主机常驻转换层操作模式的指示。
14.根据权利要求9所述的方法,其进一步包括:
从所述主机系统接收主机常驻转换层读取缓冲器命令,所述主机常驻转换层读取缓冲器命令包括所述存储器装置的逻辑地址空间的一或多个子区的指示;
执行读取操作以检索存储在所述存储器装置上的一或多个转换层条目,其中所述一或多个转换层条目与所述逻辑地址空间的所述一或多个子区相关联;以及
向所述主机系统发送对所述主机常驻转换层读取缓冲器命令的响应,所述响应包括所述一或多个转换层条目,其中所述主机系统将所述一或多个转换层条目存储在所述主机常驻转换层映射表中。
15.根据权利要求9所述的方法,其进一步包括:
从所述主机系统接收主机常驻转换层读取命令,所述主机常驻转换层读取命令包括所述存储器装置的所述物理地址;
执行读取操作以从所述存储器装置读取存储在所述物理地址处的所述数据;以及
将来自所述存储器装置的所述物理地址的所述数据发送到所述主机系统。
16.根据权利要求15所述的方法,其进一步包括:
在不读取存储于所述存储器装置上的对应转换层条目的情况下,执行所述读取操作。
17.一种非暂时性计算机可读存储媒体,其包括指令,所述指令在由处理装置执行时致使所述处理装置执行包括以下各项的操作:
从主机系统接收写入命令,所述写入命令请求将与逻辑块地址相关联的数据写入到所述存储器装置,并且作为响应而返回所述数据写入到的物理地址,其中所述逻辑块地址与所述存储器装置的逻辑地址空间的活动子区相关联;
将所述写入命令识别为主机常驻转换层写入命令;
执行写入操作以将与所述逻辑块地址相关联的所述数据写入到所述存储器装置的所述物理地址;以及
将响应包发送到所述主机系统,所述响应包包括指示存储所述数据的所述物理地址的经更新转换层条目。
18.根据权利要求17所述的非暂时性计算机可读存储媒体,其中与所述逻辑地址空间的所述活动子区对应的一或多个转换层条目存储在所述主机系统上的主机常驻转换层映射表中。
19.根据权利要求15所述的非暂时性计算机可读存储媒体,其中所述处理装置执行包括以下各项的进一步操作:
从所述主机系统接收主机常驻转换层读取缓冲器命令,所述主机常驻转换层读取缓冲器命令包括所述存储器装置的逻辑地址空间的一或多个子区的指示;
执行读取操作以检索存储在所述存储器装置上的一或多个转换层条目,其中所述一或多个转换层条目与所述逻辑地址空间的所述一或多个子区相关联;以及
向所述主机系统发送对所述主机常驻转换层读取缓冲器命令的响应,所述响应包括所述一或多个转换层条目,其中所述主机系统将所述一或多个转换层条目存储在所述主机常驻转换层映射表中。
20.根据权利要求19所述的非暂时性计算机可读存储媒体,其中所述处理装置执行包括以下各项的进一步操作:
从所述主机系统接收主机常驻转换层读取命令,所述主机常驻转换层读取命令包括所述存储器装置的所述物理地址;
执行读取操作以从所述存储器装置读取存储在所述物理地址处的所述数据;以及
将来自所述存储器装置的所述物理地址的所述数据发送到所述主机系统。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/929,320 US11036625B1 (en) | 2020-04-24 | 2020-04-24 | Host-resident translation layer write command associated with logical block to physical address of a memory device |
US15/929,320 | 2020-04-24 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113553099A true CN113553099A (zh) | 2021-10-26 |
Family
ID=76320879
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110440783.5A Pending CN113553099A (zh) | 2020-04-24 | 2021-04-23 | 主机常驻转换层写入命令 |
Country Status (2)
Country | Link |
---|---|
US (2) | US11036625B1 (zh) |
CN (1) | CN113553099A (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11263124B2 (en) * | 2018-08-03 | 2022-03-01 | Micron Technology, Inc. | Host-resident translation layer validity check |
US11226907B2 (en) | 2018-12-19 | 2022-01-18 | Micron Technology, Inc. | Host-resident translation layer validity check techniques |
US11226894B2 (en) | 2018-12-21 | 2022-01-18 | Micron Technology, Inc. | Host-based flash memory maintenance techniques |
US11580017B2 (en) * | 2020-04-27 | 2023-02-14 | Silicon Motion, Inc. | Method and apparatus and computer program product for preparing logical-to-physical mapping information for host side |
US11132305B1 (en) * | 2020-06-11 | 2021-09-28 | Ralph Crittenden Moore | Automatic static region generation for memory protection units (MPUs) |
KR20210156090A (ko) * | 2020-06-17 | 2021-12-24 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
US11550733B2 (en) * | 2020-07-01 | 2023-01-10 | Arm Limited | Method, system and circuit for managing a secure memory partition |
CN113885779B (zh) * | 2020-07-02 | 2024-03-12 | 慧荣科技股份有限公司 | 数据处理方法及对应的数据储存装置 |
CN113961140A (zh) | 2020-07-02 | 2022-01-21 | 慧荣科技股份有限公司 | 数据处理方法及对应的数据储存装置 |
CN113885778B (zh) | 2020-07-02 | 2024-03-08 | 慧荣科技股份有限公司 | 数据处理方法及对应的数据储存装置 |
US11733918B2 (en) * | 2020-07-28 | 2023-08-22 | Samsung Electronics Co., Ltd. | Systems and methods for processing commands for storage devices |
US11449244B2 (en) * | 2020-08-11 | 2022-09-20 | Silicon Motion, Inc. | Method and apparatus for performing access management of memory device in host performance booster architecture with aid of device side table information |
US11537326B2 (en) | 2020-09-10 | 2022-12-27 | Western Digital Technologies, Inc. | Relocation flow using CbA technology |
US11995349B2 (en) * | 2022-10-04 | 2024-05-28 | Silicon Motion, Inc. | Method and apparatus for performing access management of memory device in host performance booster architecture with aid of device side table information encoding and decoding |
US11994985B2 (en) * | 2022-10-04 | 2024-05-28 | Silicon Motion, Inc. | Method and apparatus for performing access management of memory device in host performance booster architecture with aid of device side table information encoding and decoding |
CN115878051B (zh) * | 2023-03-03 | 2023-06-09 | 浪潮电子信息产业股份有限公司 | 一种数据同步方法、数据同步系统、存储介质和电子设备 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102436419A (zh) * | 2010-09-29 | 2012-05-02 | 三星电子株式会社 | 非易失性存储器系统及管理其电源的方法 |
CN104102591A (zh) * | 2013-04-08 | 2014-10-15 | 香港理工大学 | 计算机子系统及在其中实现闪存转换层的方法 |
CN104885062A (zh) * | 2012-12-10 | 2015-09-02 | 谷歌公司 | 使用逻辑到物理映射以与数据存储装置进行直接用户空间通信 |
CN106575271A (zh) * | 2014-06-23 | 2017-04-19 | 谷歌公司 | 管理存储设备 |
US20170192902A1 (en) * | 2015-12-30 | 2017-07-06 | Samsung Electronics Co., Ltd. | Storage device including nonvolatile memory device and controller, operating method of storage device, and method for accessing storage device |
CN110147335A (zh) * | 2018-02-09 | 2019-08-20 | 三星电子株式会社 | 用于ssd储存器中nvme命令间关联的系统和方法 |
CN110730945A (zh) * | 2017-04-12 | 2020-01-24 | 美光科技公司 | 可扩展的低时延存储接口 |
US20200042436A1 (en) * | 2018-08-03 | 2020-02-06 | Micron Technolog, Inc. | Host-resident translation layer validity check |
CN110858129A (zh) * | 2018-08-22 | 2020-03-03 | 爱思开海力士有限公司 | 数据存储装置及其操作方法 |
CN110908926A (zh) * | 2018-09-14 | 2020-03-24 | 慧荣科技股份有限公司 | 数据储存装置及逻辑至物理地址映射表的写入方法 |
US20200097194A1 (en) * | 2018-09-25 | 2020-03-26 | Micron Technology, Inc. | Host-resident translation layer validity check techniques |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8041878B2 (en) * | 2003-03-19 | 2011-10-18 | Samsung Electronics Co., Ltd. | Flash file system |
CN108139902A (zh) * | 2015-10-16 | 2018-06-08 | 科内克斯实验室公司 | 用于提供混合模式来访问ssd驱动器的方法和装置 |
US10474374B2 (en) * | 2016-05-24 | 2019-11-12 | Samsung Electronics Co., Ltd. | Method and apparatus for storage device latency/bandwidth self monitoring |
US10635584B2 (en) * | 2017-06-29 | 2020-04-28 | Western Digital Technologies, Inc. | System and method for host system memory translation |
US11226907B2 (en) * | 2018-12-19 | 2022-01-18 | Micron Technology, Inc. | Host-resident translation layer validity check techniques |
-
2020
- 2020-04-24 US US15/929,320 patent/US11036625B1/en active Active
-
2021
- 2021-04-23 CN CN202110440783.5A patent/CN113553099A/zh active Pending
- 2021-05-17 US US17/302,966 patent/US11656983B2/en active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102436419A (zh) * | 2010-09-29 | 2012-05-02 | 三星电子株式会社 | 非易失性存储器系统及管理其电源的方法 |
CN104885062A (zh) * | 2012-12-10 | 2015-09-02 | 谷歌公司 | 使用逻辑到物理映射以与数据存储装置进行直接用户空间通信 |
CN104102591A (zh) * | 2013-04-08 | 2014-10-15 | 香港理工大学 | 计算机子系统及在其中实现闪存转换层的方法 |
CN106575271A (zh) * | 2014-06-23 | 2017-04-19 | 谷歌公司 | 管理存储设备 |
US20170192902A1 (en) * | 2015-12-30 | 2017-07-06 | Samsung Electronics Co., Ltd. | Storage device including nonvolatile memory device and controller, operating method of storage device, and method for accessing storage device |
CN110730945A (zh) * | 2017-04-12 | 2020-01-24 | 美光科技公司 | 可扩展的低时延存储接口 |
CN110147335A (zh) * | 2018-02-09 | 2019-08-20 | 三星电子株式会社 | 用于ssd储存器中nvme命令间关联的系统和方法 |
US20200042436A1 (en) * | 2018-08-03 | 2020-02-06 | Micron Technolog, Inc. | Host-resident translation layer validity check |
CN110858129A (zh) * | 2018-08-22 | 2020-03-03 | 爱思开海力士有限公司 | 数据存储装置及其操作方法 |
CN110908926A (zh) * | 2018-09-14 | 2020-03-24 | 慧荣科技股份有限公司 | 数据储存装置及逻辑至物理地址映射表的写入方法 |
US20200097194A1 (en) * | 2018-09-25 | 2020-03-26 | Micron Technology, Inc. | Host-resident translation layer validity check techniques |
Also Published As
Publication number | Publication date |
---|---|
US11036625B1 (en) | 2021-06-15 |
US20210334205A1 (en) | 2021-10-28 |
US11656983B2 (en) | 2023-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11656983B2 (en) | Host-resident translation layer write command | |
JP2023514307A (ja) | 順次的にプログラムするメモリサブシステムにおける順次読み出し最適化 | |
US20220300195A1 (en) | Supporting multiple active regions in memory devices | |
CN113010449A (zh) | 存储器子系统中命令的有效处理 | |
CN115145838A (zh) | 在与非存储器中存储逻辑到物理映射 | |
CN115080458A (zh) | 在存储器子系统中高速缓存逻辑到物理映射信息 | |
CN112948284A (zh) | 高速缓存媒体中的动态存取粒度 | |
CN113934666B (zh) | 数据接口桥的预取 | |
US20240134554A1 (en) | Smart swapping and effective encoding of a double word in a memory sub-system | |
CN113093990B (zh) | 存储器子系统处的数据块切换 | |
CN113849424A (zh) | 依序编程的存储器子系统中的直接高速缓存命中和传递 | |
US11836076B2 (en) | Implementing mapping data structures to minimize sequentially written data accesses | |
US20230195350A1 (en) | Resequencing data programmed to multiple level memory cells at a memory sub-system | |
CN113360091B (zh) | 用于存取操作的内部命令 | |
WO2022225603A1 (en) | Memory instruction for memory tiers | |
CN113094293B (zh) | 存储器系统及相关方法和计算机可读存储介质 | |
US11734071B2 (en) | Memory sub-system tier allocation | |
CN113495695B (zh) | 用于存取命令的高速缓存标识符 | |
US11847349B2 (en) | Dynamic partition command queues for a memory device | |
US11868642B2 (en) | Managing trim commands in a memory sub-system | |
CN114077404B (zh) | 使存储器单元与主机系统解除关联 | |
CN113918479B (zh) | 用于并行独立线程的低位密度存储器高速缓存的方法及系统 | |
US20240160349A1 (en) | Virtual management unit scheme for two-pass programming in a memory sub-system | |
CN114303137A (zh) | 使用主机存储器缓冲器的存储器叠加 | |
CN114385522A (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 |