CN114942858B - 基于条目未中的主机系统通知 - Google Patents

基于条目未中的主机系统通知 Download PDF

Info

Publication number
CN114942858B
CN114942858B CN202210138311.9A CN202210138311A CN114942858B CN 114942858 B CN114942858 B CN 114942858B CN 202210138311 A CN202210138311 A CN 202210138311A CN 114942858 B CN114942858 B CN 114942858B
Authority
CN
China
Prior art keywords
memory
host system
address
mapping
data
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
Application number
CN202210138311.9A
Other languages
English (en)
Other versions
CN114942858A (zh
Inventor
霍斌斌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Micron Technology Inc
Original Assignee
Micron Technology Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Micron Technology Inc filed Critical Micron Technology Inc
Publication of CN114942858A publication Critical patent/CN114942858A/zh
Application granted granted Critical
Publication of CN114942858B publication Critical patent/CN114942858B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0817Cache consistency protocols using directory methods
    • G06F12/0822Copy directories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing 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/0873Mapping of cache memory to specific storage devices or parts thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0882Page mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

各种实施例使得能够基于存储器子系统上的地址映射条目未中(或失配)而将通知发送到主机系统,其可促进存储在所述主机系统上的一或多个地址映射条目的更新。

Description

基于条目未中的主机系统通知
技术领域
本公开的实施例大体上涉及存储器装置,且更确切地说,涉及基于存储器子系统上的地址映射条目未中(或失配)而将通知发送到主机系统,其可促进存储在主机系统上的一或多个地址映射条目的更新。
背景技术
一种存储器子系统可包含存储数据的一或多个存储器装置。存储器装置可以是例如非易失性存储器装置和易失性存储器装置。大体来说,主机系统可以利用存储器子系统将数据存储在存储器装置处且从存储器装置检索数据。
发明内容
附图说明
根据下文给出的实施方式且根据本公开的各种实施例的附图将更加充分地理解本公开。然而,图式不应被视为将本公开限于特定实施例,而是仅用于阐释和理解。
图1为示出根据本公开的一些实施例的包含存储器子系统的实例计算环境的框图。
图2到5为根据本公开的一些实施例的关于基于存储器子系统上的地址映射条目未中通知主机系统的实例方法的流程图。
图6提供说明在一些实施例的上下文中的计算环境的组件之间的交互的交互图,其中执行用于基于如本文中所描述的存储器子系统上的地址映射条目未中而将通知发送到主机系统的方法。
图7为本公开的实施例可在其中操作的实例计算机系统的框图。
具体实施方式
本公开的各方面涉及基于存储器子系统上的地址映射条目未中(或失配)而将通知发送到主机系统,其可促进(例如,触发)存储在主机系统上的一或多个地址映射条目的更新。存储器子系统可以是存储装置、存储器模块或存储装置和存储器模块的混合。下文结合图1描述存储装置及存储器模块的实例。大体来说,主机系统可以利用包含一或多个组件的存储器子系统,所述一或多个组件例如存储数据的存储器装置。主机系统可将存取请求发送到存储器子系统,以便在存储器子系统处存储数据和从存储器子系统读取数据。
主机系统可将存取请求(例如,写入命令、读取命令)发送到存储器子系统,以便将数据存储在存储器子系统处的存储器装置上,从存储器子系统上的存储器装置读取数据,或相对于存储器子系统上的存储器装置写入/读取构造(例如,提交和完成队列)。如由主机请求指定的待读取或写入的数据在下文中被称作“主机数据”。主机请求可以包含主机数据的逻辑地址信息(例如,逻辑块地址(LBA)、名称空间),其为主机系统与主机数据相关联的位置。逻辑地址信息(例如,LBA、名称空间)可以是主机数据的元数据的部分。元数据还可包含错误处理数据(例如,错误校正码(ECC)码字、奇偶检验码)、数据版本(例如,用于区分所写入数据的时期)、有效位图(哪些LBA或逻辑传递单元含有有效数据)等。
存储器子系统可对存储在存储器装置上的主机数据发起媒体管理操作,如写入操作。举例来说,作为垃圾收集管理操作的部分,存储器子系统的固件可将先前写入的主机数据从存储器装置的位置重写到新位置。重写的数据(例如,如通过固件启动)在下文中称为“垃圾收集数据”。
下文中的“用户数据”大体指主机数据和垃圾收集数据。下文中的“系统数据”指由存储器子系统产生和/或维护以用于响应于主机请求而执行操作和用于媒体管理的数据。系统数据的实例包含但不限于系统表(例如,逻辑到物理存储器地址映射表(在本文中也称为L2P表)、来自日志记录的数据、便签本数据(scratch pad data)等)。
存储器装置可以是非易失性存储器装置。非易失性存储器装置为一或多个裸片的封装。每一裸片可包括一或多个平面。对于一些类型的非易失性存储器装置(例如,与非(NAND)型装置),每一平面包括物理块集合。对于一些存储器装置,块是可擦除的最小区域。每一块包括页集合。每一页包括存储数据位的存储器单元集合。存储器装置可以是原始存储器装置(例如,NAND),其在外部例如由外部控制器管理。存储器装置可以是受管理存储器装置(例如,受管理NAND),其是与本地嵌入式控制器组合以用于同一存储器装置封装内的存储器管理的原始存储器装置。
在某些传统的计算环境中,以操作方式耦合到存储器子系统的主机系统可将一或多个逻辑存储器地址到物理存储器地址(L2P)映射条目存储(例如,高速缓存)在主机系统(例如,主机系统的本地存储器)上。由此,主机系统可将逻辑存储器地址(例如,LBA)转译为物理存储器地址(例如,物理块地址(PBA)),且在主机系统发送到存储器子系统的一或多个请求(例如,读取请求)中包含逻辑存储器地址和物理存储器地址。在某些情形下,通过准许存储器子系统避免存储器侧上的L2P转译,此主机侧转译可改进存储器子系统的性能。对于一些实施例,对存储在主机系统上的L2P映射条目进行加密,由此限制主机系统对L2P映射条目的授权存取。
然而,由于存储器子系统上的L2P映射改变(例如,由于存储器子系统上的垃圾收集),主机系统上存储(例如,高速缓存)的L2P映射条目可变得与存储器子系统上的对应L2P映射条目不一致。因此,主机系统最终需要从存储器子系统读取(例如,检索)一或多个L2P映射条目的最新版本,且使用所检索的L2P映射条目来重新加载(例如,刷新或替换)主机系统上的所存储(例如,高速缓存)的L2P映射条目。用于通过主机系统触发此类重新加载的有效技术不仅可减少或避免主机系统的不必要的重新加载(其可消耗主机系统、存储器子系统或这两者的资源),而且还可确保所存储的L2P映射条目尽可能最新。
本公开的各方面通过基于存储器子系统上的地址映射条目未中通知主机系统来解决以上和其它不足,其可促进存储在主机系统上的一或多个地址映射条目的更新(例如,使主机系统更新或重新加载存储或高速缓存在主机系统上的一或多个地址映射条目)。例如,当相对于与也存储在主机系统上的地址映射数据(例如,L2P映射数据)的一部分(例如,区或子区)相关联的一或多个存储器单位(例如,一或多个块)完成或部分完成垃圾收集过程数据,存储器子系统可向主机系统发出通知以响应:存储器子系统从主机系统接收到新的数据请求(例如,新的数据读取请求),所述新的数据请求包括与地址映射数据的部分相关联的所选物理存储器地址和所选逻辑存储器地址;以及存储器子系统确定新数据请求中提供的地址信息与由存储器子系统上与所选逻辑存储器地址对应的地址映射条目描述的映射之间存在失配。举例来说,当存储器子系统上对应的地址映射条目描述所选逻辑存储器地址与不同于由新数据请求提供的所选物理存储器地址的另一物理存储器地址之间的映射时,可发生失配。此失配可被称为地址映射条目未中事件。响应于接收到通知,主机系统可使用主机系统从存储器子系统检索到的部分的新副本来重新加载(或以其它方式更新)其地址映射数据的部分的副本。以此方式,通知可触发存储在主机系统上的地址映射数据中的一或多个部分的更新。
本文中所描述的各种实施例包括存储器子系统,其确定地址映射数据的所选部分当前是否存储在主机系统上(例如,所选部分处于活动状态)。响应于所选部分存储在主机系统上,存储器子系统可使通知发送到主机系统以响应于存储器子系统接收到包括所选逻辑存储器地址和所选物理存储器地址的数据请求(例如,数据读取请求或数据写入请求),且其中基于由存储在存储器子系统上的地址映射数据中的地址映射条目(例如,用于所选逻辑存储器地址)描述的映射,(数据请求的)所选逻辑存储器地址不映射到(数据请求的)所选物理存储器地址。此不映射(鉴于对应地址映射条目,为所选逻辑存储器地址与所选物理存储器地址之间的不映射)可指示地址映射条目未中(例如,地址映射条目未中事件)或可指示对应地址映射条目与主机系统使用的主机侧地址映射条目(主机系统用以将所选逻辑存储器地址转译为所选物理存储器地址的主机侧地址映射条目)失配。
对于一些实施例,从主机系统接收到的数据请求可包括主机系统用以将所选逻辑存储器地址转译为所选物理存储器地址的主机侧地址映射条目的副本,其中主机侧地址映射条目包括(例如,描述)选所选逻辑存储器地址和所选物理存储器地址。举例来说,主机侧地址映射条目的副本可包含于数据请求的描述符中。
对于一些实施例,通知指示所选逻辑存储器地址和所选物理存储器地址不匹配,这可使主机系统从存储器子系统重新加载地址映射数据的所选部分(例如,通过从存储器子系统检索所选部分的最新版本的副本且将所检索的副本存储在主机系统上)。替代地,通知可具体地指示主机系统应从存储器子系统重新加载地址映射数据的所选部分。另外,通知可指定应由主机系统重新加载的所选部分。
对于一些实施例,在正对与地址映射数据的所选部分相关联的一或多个存储器单位(例如,页或块)执行垃圾收集过程时通过存储器子系统执行本文中所描述的操作(用于使通知发送到主机系统)。举例来说,操作可作为垃圾收集过程的部分而执行。替代地,在已对与地址映射数据的所选部分相关联的一或多个存储器单位(例如,页或块)执行垃圾收集过程之后(例如,响应于完成垃圾收集过程)通过存储器子系统执行操作(用于使通知发送到主机系统)。如本文中所描述,对存储器的一或多个单位执行垃圾收集过程可使地址映射数据的所选部分内的映射改变(例如,如作为由垃圾收集过程引起的数据移动的结果,逻辑存储器地址与物理存储器地址之间的映射改变)。
如本文所使用,逻辑存储器地址可包括逻辑块地址(LBA),其可由主机系统提供到存储器装置或存储器子系统。举例来说,取决于主机系统与存储器装置/存储器子系统之间使用的物理接口,LBA可包括2字节或4字节的数字。如本文所使用,物理存储器地址可包括存储器装置或存储器子系统上存储数据(例如,用户数据)的存储器地址。举例来说,物理存储器地址可包括物理块地址(PBA),其可为可由4字节数字或数字元组(例如,裸片ID、块ID、页ID)识别的下层非易失性存储器装置内的位置。如本文所使用,地址映射数据可包括逻辑存储器地址到物理存储器地址(L2P)数据(例如,L2P映射或转译表),其可使存储器装置或存储器子系统的逻辑存储器地址与物理存储器地址相关联(且因此促进逻辑存储器地址到物理存储器地址的转译或重构)。
如本文所使用,针对存储器子系统的数据请求可包括针对存储器子系统的数据读取请求(例如,读取命令)或数据写入请求(例如,写入命令)。
如本文所使用,地址映射条目未中或失配可包括其中基于由存储器系统的地址映射条目描述的映射(例如,来自数据请求的LBA和PBA暗示的映射与由地址映射条目描述的映射未命中或失配),由主机系统(例如,在来自主机系统的数据请求中)提供的所选逻辑存储器地址(例如,LBA)和所选物理存储器地址(例如,PBA)并不映射到彼此。举例来说,存储器子系统上可未命中与所选逻辑存储器地址相关联(例如,对应)的地址映射条目(例如,未命中地址映射数据),或地址映射条目可指示由主机系统提供的所选逻辑存储器地址映射到不同于所选物理存储器地址的物理存储器地址。如本文中所描述,对于一些实施例,存储器子系统的地址映射条目来自存储在存储器子系统上(例如,存储在存储器子系统的本地存储器上)的地址映射数据。
本文所公开的是基于存储器子系统上的地址映射条目未中而将通知发送到主机系统的一些实例,如本文所描述。
图1示出根据本公开的一些实施例的包含存储器子系统110的实例计算环境100。存储器子系统110可包含媒体,如一或多个易失性存储器装置(例如,存储器装置140)、一或多个非易失性存储器装置(例如,存储器装置130)或其组合。
存储器子系统110可以是存储装置、存储器模块或存储装置和存储器模块的混合。存储装置的实例包含固态驱动器(SSD)、快闪驱动器、通用串行总线(USB)快闪驱动器、安全数字(SD)卡、嵌入式多媒体控制器(eMMC)驱动器、通用快闪存储器(UFS)驱动器和硬盘驱动器(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可经由物理主机接口耦合到存储器子系统110。物理主机接口的实例包含但不限于SATA接口、外围组件互连高速(PCIe)接口、通用串行总线(USB)接口、光纤通道、串行附接SCSI(SAS)、小型计算机系统接口(SCSI)、双数据速率(DDR)存储器总线、双列直插式存储器模块(DIMM)接口(例如,支持双数据速率(DDR)的DIMM套接接口)、开放NAND快闪接口(ONFI)、双数据速率(DDR)、低功率双数据速率(LPDDR)或任何其它接口。物理主机接口可用以在主机系统120与存储器子系统110之间传输数据。当存储器子系统110通过PCIe接口与主机系统120耦合时,主机系统120可进一步利用非易失性存储器(Non-VolatileMemory,NVM)高速(NVMe)接口来存取组件(例如,存储器装置130)。物理主机接口可提供用于在存储器子系统110与主机系统120之间传送控制、地址、数据和其它信号的接口。图1将存储器子系统110示出为实例。一般来说,主机系统120可经由同一通信连接、多个独立通信连接和/或通信连接的组合来存取多个存储器子系统。
存储器装置130、140可包含不同类型的非易失性存储器装置和/或易失性存储器装置的任何组合。易失性存储器装置(例如,存储器装置140)可以但不限于是随机存取存储器(RAM),例如动态随机存取存储器(DRAM)和同步动态随机存取存储器(SDRAM)。
非易失性存储器装置(例如,存储器装置130)的一些实例包含与非(NAND)型快闪存储器和就地写入(write-in-place)存储器,例如三维交叉点(“3D交叉点”)存储器装置,其为非易失性存储器单元的交叉点阵列。非易失性存储器的交叉点阵列可结合可堆叠交叉网格化数据存取阵列基于体电阻的改变来执行位存储。另外,与许多基于快闪的存储器相比,交叉点非易失性存储器可执行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。NAND型快闪存储器包含例如二维NAND(2DNAND)和三维NAND(3D NAND)。
存储器装置130中的每一者可包含一或多个存储器单元阵列。一种类型的存储器单元,例如单层级单元(SLC)每单元可存储一个位。其它类型的存储器单元,例如多层级单元(MLC)、TLC、四层级单元(QLC)和五层级单元(PLC)每单元可存储多个位。在一些实施例中,每一存储器装置130可包含一或多个存储器单元阵列,例如SLC、MLC、TLC、QLC或其任何组合。在一些实施例中,特定存储器装置可包含存储器单元的SLC部分,以及MLC部分、TLC部分或QLC部分。存储器装置130的存储器单元可分组为页,所述页可指用以存储数据的存储器装置的逻辑单位。在一些类型的存储器(例如,NAND)的情况下,页可分组以形成块。
虽然描述如NAND型快闪存储器(例如,2D NAND、3D NAND)和非易失性存储器单元的3D交叉点阵列的非易失性存储器组件,但存储器装置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和/或存储器装置140的所要存取。存储器子系统控制器115可负责其它操作,例如耗损均衡操作、垃圾收集操作、错误检测和错误校正码(ECC)操作、加密操作、高速缓存操作和与存储器装置130相关联的逻辑地址(例如,逻辑块地址(LBA)、名称空间)与物理存储器地址(例如,物理块地址)之间的地址转译。存储器子系统控制器115可进一步包含主机接口电路系统以经由物理主机接口与主机系统120通信。主机接口电路系统可将从主机系统120接收到的命令转换成命令指令以存取存储器装置130和/或存储器装置140,且将与存储器装置130和/或存储器装置140相关联的响应转换成用于主机系统120的信息。
存储器子系统110还可包含未示出的额外电路系统或组件。在一些实施例中,存储器子系统110可包含高速缓存器或缓冲器(例如,DRAM)和地址电路系统(例如,行解码器和列解码器),所述地址电路系统可从存储器子系统控制器115接收地址,且对地址进行解码以存取存储器装置130。
在一些实施例中,存储器装置130包含本地媒体控制器135,所述本地媒体控制器结合存储器子系统控制器115操作以对存储器装置130的一或多个存储器单元执行操作。外部控制器(例如,存储器子系统控制器115)可在外部管理存储器装置130(例如,对存储器装置130执行媒体管理操作)。在一些实施例中,存储器装置130为受管理存储器装置,其为与本地控制器(例如,本地媒体控制器135)组合以用于在同一存储器装置封装内进行媒体管理的原始存储器装置。受管理存储器装置的实例为受管理NAND(MNAND)装置。
主机系统120包含主机侧地址映射数据管理器125,所述主机侧地址映射数据管理器允许或促进主机系统120上的来自存储器子系统110的地址映射数据中的一或多个部分的副本的本地存储(例如,高速缓存)。主机系统120可例如高速缓存主机系统120的本地存储器中的地址映射数据中的一或多个部分的副本。对于一些实施例,主机系统120上的地址映射数据中的一或多个部分的副本可使得主机系统120能够:(在主机系统120上)在将数据请求发送到存储器子系统110之前将存储器子系统110的逻辑存储器地址转译为存储器子系统110的物理存储器地址;以及根据转译产生包含逻辑存储器地址和物理存储器地址两者的数据请求。如本文中所描述,在数据请求中包含逻辑存储器地址和物理存储器地址可(在某些时间内)避免对存储器子系统110在接收到数据请求后转译逻辑存储器地址的需要,且使得存储器子系统110能够使用在数据请求内提供的物理存储器地址服务于数据请求。主机侧地址映射数据管理器125可使得主机系统120能够更新存储在主机系统120上的地址映射数据中的一或多个部分的副本,这可能是存储器子系统110上的地址映射数据随时间推移而改变所必需的(例如,当对存储器子系统110上的一或多个存储器单位执行垃圾收集过程时)。
基于主机侧地址映射数据管理器125,主机系统120可基于存储(例如,高速缓存)在主机系统120上的地址映射数据中的一或多个部分的副本而将所选逻辑存储器地址转译为所选物理存储器地址。举例来说,主机侧地址映射数据管理器125可使得主机系统120能够识别与所选逻辑存储器地址相关联(例如,对应)的地址映射数据中的一或多个部分的副本中的(主机侧)地址映射条目,且从所识别的地址映射条目检索所选物理存储器地址。
主机侧地址映射数据管理器125可使得主机系统120周期性地确定(例如,检测)主机系统120是否已从存储器子系统110接收到关于所选逻辑存储器地址与从主机系统120到存储器子系统110的数据请求所包含的所选物理存储器地址的映射的通知。在主机系统120将数据请求发送到存储器子系统110之后,可开始周期性的确定。取决于实施例,通知可指示数据请求的所选逻辑存储器地址与所选物理存储器地址之间的第一映射是否匹配由存储在存储器子系统上的地址映射数据中的相关地址映射条目描述的第二映射,其中相关地址映射条目与所选逻辑存储器地址相关联(例如,对应)。替代地,通知可使用从存储器子系统110检索到的地址映射数据中的一或多个部分的新副本指示主机系统120是否应重新加载或更新主机系统120上的地址映射数据中的一或多个部分的副本。
响应于确定从存储器子系统110接收到通知(例如,在数据请求从主机系统120发送到存储器子系统110之后),主机侧地址映射数据管理器125可使主机系统120基于从存储器子系统110检索到的地址映射数据中的一或多个部分的副本而更新主机系统120上的地址映射数据中的一或多个部分的副本。举例来说,主机系统120可将针对地址映射数据的一或多个部分的副本的请求发送到存储器子系统110,可从存储器子系统110接收所请求的副本,且可代替主机系统120上的地址映射数据中的一或多个部分的旧副本而将所请求的副本存储在主机系统120上。
取决于实施例,主机侧地址映射数据管理器125可表示或形成在主机系统上操作的软件驱动器(例如,L2P驱动器)或L2P管理软件(例如,L2P管理器或L2P管理服务)的部分。
存储器子系统控制器115包含地址映射数据通知器113,所述地址映射数据通知器允许或促进存储器子系统控制器115基于存储器子系统110上的地址映射条目未中而将通知发送到主机系统120。由存储器子系统控制器115基于地址映射数据通知器113执行的操作可在对存储器子系统110执行垃圾收集过程期间执行,或在完成对存储器子系统110执行的垃圾收集过程之后执行。另外,取决于实施例,由存储器子系统控制器115基于地址映射数据通知器113执行的操作可作为对存储器子系统110执行的垃圾收集过程的部分而执行。
根据一些实施例,存储器子系统控制器115的本地存储器119用于存储将存储器子系统110的一或多个逻辑存储器地址(例如,LBA)映射到存储器装置130、140中的一者的一或多个物理存储器地址(例如,PBA)的地址映射数据。举例来说,地址映射数据可包括表,例如L2P映射表。地址映射数据可包括各自将存储器子系统110的逻辑存储器地址映射到存储器装置130、140中的一者的物理存储器地址的一或多个地址映射条目。取决于实施例,可基于指定逻辑存储器地址搜索或识别地址映射条目。另外,对于一些实施例,本地存储器119用以存储指示地址映射数据的一或多个部分的一或多个(远程)副本当前是否存储(例如,高速缓存)在主机系统120上的跟踪数据。一般来说,存储在主机系统120上的地址映射数据的部分小于所有地址映射数据。举例来说,跟踪数据可包括表,所述表可在主机系统120请求存储在存储器子系统110上(且由其使用)的地址映射数据的部分的副本时由主机系统120(基于地址映射数据通知器113)填充和更新。对于一些实施例,地址映射数据通知器113实现本地存储器119上的跟踪数据的产生、存储或更新。
对于一些实施例,地址映射数据通知器113使存储器子系统控制器115基于存储在本地存储器119上的跟踪数据而确定地址映射数据的所选部分的(远程)副本当前是否存储在主机系统120上,其中(地址映射数据的)所选部分与存储器子系统110的逻辑存储器地址的集合相关联。所选部分可包括地址映射数据的最小可辨识单位。响应于确定所选部分的远程副本当前存储在主机系统120上(例如,所选部分在主机系统120中处于活动状态),地址映射数据通知器113可使存储器子系统控制器115确定是否已从主机系统120接收到数据请求,其中数据请求包括存储器子系统110的所选逻辑存储器地址和存储器子系统110的所选物理存储器地址,且其中所选逻辑存储器地址包含在与地址映射数据的所选部分相关联的逻辑存储器地址的集合中。响应于确定存储器子系统110已接收到此类数据请求,地址映射数据通知器113可使存储器子系统控制器115确定所选物理存储器地址与所选逻辑存储器地址之间的第一映射是否匹配由存储在本地存储器119上的所选部分的(本地)副本中的相关地址映射条目描述的第二映射,其中相关地址映射条目与数据请求所包含的所选逻辑存储器地址相关联。
对于各种实施例,通过包含所选物理存储器地址和所选逻辑存储器地址两者的数据请求,存储器子系统110假设主机系统120基于由当前存储在主机系统120上的地址映射数据中的一或多个部分描述的(第一)映射而将所选逻辑存储器地址转译为所选物理存储器地址。如果(第一)映射不匹配由来自存储在本地存储器119上的地址映射数据的条目描述的(第二)映射,那么存储器子系统110假设当前存储在主机系统120上的地址映射数据中的一或多个部分过时,且存储器子系统110可通知主机系统120关于失配(例如,以便触发主机系统120上的地址映射数据的更新或重新加载)。因此,响应于确定第一映射不匹配第二映射,地址映射数据通知器113使得存储器子系统控制器115能够使通知发送到主机系统120,其中通知可指示第一映射不匹配第二映射。替代地,通知可向主机系统120具体指示主机系统120应更新或重新加载存储在主机系统120上的地址映射数据中的一或多个部分。
图2到5为根据本公开的一些实施例的关于基于存储器子系统上的地址映射条目未中通知主机系统的实例方法的流程图。方法200、300、400、500可由可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合的处理逻辑执行。在一些实施例中,方法200、400、500中的至少一者由图1的存储器子系统控制器115基于地址映射数据通知器113执行。另外或替代地,对于一些实施例,方法200、400、500中的至少一者至少部分地由图1的存储器装置130的本地媒体控制器135执行。尽管以特定顺序或次序展示,但除非另外规定,否则可修改过程的次序。因此,所说明的实施例应仅作为实例理解,且所说明的过程可以不同次序执行,且可并行地执行一些过程。另外,在各种实施例中可省略一或多个过程。因此,并非每一实施例中都使用所有过程。其它过程流程是可能的。
现参看图2的方法200,方法200说明基于存储器子系统上的地址映射条目未中而将通知发送到主机系统的实例。在操作202处,处理装置(例如,存储器子系统控制器115的处理器117)基于存储在存储器子系统(例如,110)上的跟踪数据而确定地址映射数据的所选部分的远程副本当前是否存储在主机系统(例如,120)上,其中所选部分与逻辑存储器地址的集合相关联(例如,用以将逻辑存储器地址的集合转译为物理存储器地址的集合)。对于一些实施例,跟踪数据包括跟踪表,其中跟踪表基于从主机系统(例如,请求历史)接收到的针对存储在存储器子系统的本地存储器(例如,存储器子系统控制器115的本地存储器119)上的地址映射数据的部分的副本的一或多个请求而更新。
响应于确定所选部分的远程副本当前存储在主机系统(例如,120)上,处理装置(例如,117)在操作204处确定(例如,检测)是否已从主机系统(例如,120)接收到数据请求,其中数据请求包括所选逻辑存储器地址(例如,LBA)和所选物理存储器地址(例如,PBA),且其中逻辑存储器地址的集合包含的所选逻辑存储器地址与当前存储在主机系统上的所选部分相关联。对于一些实施例,数据请求包括主机系统用以确定所选物理存储器地址的主机侧地址映射条目的副本(例如,将所选逻辑存储器地址转译为所选物理存储器地址)。
所选部分可包括用于逻辑存储器地址的集合的多个地址映射条目,其中每一地址映射条目描述从给定逻辑存储器地址到给定物理存储器地址的映射。对于一些实施例,地址映射数据的所选部分与如由通用闪存(UFS)电子设备工程联合委员会(JEDEC)规范限定的存储器的逻辑单位的子区或区中的至少一者相关联,其中逻辑单位可具有独立的存储器地址空间。所选部分的远程副本可表示由主机系统存储的所选部分的主机侧副本,而存储器子系统继续在存储器子系统上存储和维护(例如,更新)所选部分的本地副本。如本文中所描述,所选部分的主机侧副本可使得主机系统能够将逻辑存储器地址的集合中的个别逻辑存储器地址转译为对应物理存储器地址,由此允许主机系统在主机系统上产生且从主机系统发送到存储器子系统的数据请求(例如,数据读取请求或数据写入请求)中包含个别逻辑存储器地址和对应物理存储器地址。如本文中所描述,在数据请求中包含所选物理存储器地址可向存储器子系统指示主机系统已将所选逻辑存储器地址转译为所选物理存储器地址。
响应于确定已接收到数据请求(包括所选逻辑存储器地址和所选物理存储器地址),处理装置(例如,117)在操作206处确定所选物理存储器地址与所选逻辑存储器地址之间的第一映射是否匹配由存储在本地存储器(例如,119)上的所选部分的本地副本中的相关地址映射条目描述的第二映射,其中相关地址映射条目与数据请求的所选逻辑存储器地址相关联(例如,对应)。对于一些实施例,处理装置可确定第一映射不匹配第二映射,其中相关地址映射条目(与所选逻辑存储器地址相关联)未命中地址映射数据,或其中相关地址映射条目指示所选逻辑存储器地址映射到不同于所选物理存储器地址的物理存储器地址。这些情况中的任一者可表示存储器子系统上已发生地址映射条目未中。对于一些实施例,数据请求包含主机侧地址映射条目的副本(由主机系统用以将所选逻辑存储器地址转译为所选物理存储器地址),且确定第一映射与第二映射是否匹配基于主机侧地址映射条目是否匹配存储器子系统的地址映射数据的所选部分中的对应地址映射条目。确定第一映射匹配第二映射可以是所选部分的远程副本中的主机侧地址映射条目(存储在主机系统上)匹配所选部分的本地副本中的存储器侧地址映射条目(存储在存储器子系统上)的指示。最终,处理装置可使用在数据请求中提供的所选物理存储器地址来处理数据请求(例如,数据读取请求或数据写入请求)。
在操作208处,处理装置(例如,117)基于操作208的确定使通知(例如,从存储器子系统110)发送到主机系统,其中通知可指示第一映射是否匹配第二映射。举例来说,响应于处理装置确定第一映射不匹配第二映射条目,处理装置使通知发送到主机系统,其中通知指示第一映射不匹配第二映射。取决于实施例,通知可指定主机系统响应于第一映射不匹配第二映射而应从存储器子系统重新加载的地址映射数据的所选部分。通知的发送可表示存储器子系统上已发生地址映射条目未中。替代地,响应于处理装置确定第一映射确实匹配第二映射条目的确定,处理装置使通知发送到主机系统,其中通知指示第一映射确实匹配第二映射。
对于一些实施例,方法200的一或多个操作在对存储器子系统的存储器装置的存储器单位(例如,单元、页或块)执行垃圾收集过程时(例如,平行于或由其触发)执行,其中存储器单位与相关联于地址映射数据的所选部分的逻辑存储器地址的集合相关联。举例来说,在执行垃圾收集过程时周期性地执行操作202(确定所选部分的远程副本当前是否存储在主机系统上)。在执行垃圾收集过程时周期性地执行操作204(确定是否已从主机系统接收到数据请求)。对于一些实施例,响应于完成对存储器单位执行的垃圾收集过程而执行方法200的一或多个操作。另外,对于一些实施例,方法200的一或多个操作作为对存储器单位执行的垃圾收集过程的部分而执行。
现参看图3的方法300,根据一些实施例,方法300说明对主机系统执行的操作的实例。在操作302处,主机系统(例如,120)的处理装置产生包括所选逻辑存储器地址和所选物理存储器地址的数据请求,其中基于来自存储在主机系统上的(例如,存储器子系统110的)地址映射数据的所选部分的本地副本的主机侧地址映射条目而产生所述数据请求。对于一些实施例,主机侧地址映射条目描述所选逻辑存储器地址与所选物理存储器地址之间的第一映射。另外,对于一些实施例,所选部分的本地副本表示主机系统最后从存储器子系统(例如,110)接收(例如,检索)到的地址映射数据的所选部分的副本。
取决于实施例,在操作302处,数据请求可包括(由主机系统)用以产生数据请求的主机侧地址映射条目的副本。替代地,主机系统的处理装置(例如,120)将主机侧地址映射条目的副本发送到存储器子系统(例如,110),其中将主机侧地址映射条目的副本发送到存储器子系统与将数据请求发送到存储器子系统是分开的。对于一些实施例,主机侧地址映射条目的副本可用以确定存储器子系统的地址映射数据中是否有匹配的存储器侧地址映射条目。
在操作304处,主机系统的处理装置(例如,120)使数据请求从主机系统(例如,120)发送到存储器子系统(例如,110)。
在操作306处,主机系统(例如,120)的处理装置确定(例如,检测)是否从存储器子系统接收到通知,其中通知指示第一映射是否匹配由存储在存储器子系统(例如,110)上的所选部分的远程副本中的相关地址映射条目描述的第二映射,且其中相关地址映射条目与所选逻辑存储器地址相关联(例如,对应)。对于一些实施例,在数据请求从主机系统(例如,120)发送到存储器子系统(例如,110)之后周期性地执行操作306,且可继续周期性地进行确定直到主机系统(例如,120)从存储器子系统(例如,110)接收对数据请求的响应为止。
参考操作308,主机系统(例如,120)的处理装置基于所选部分的远程副本更新(例如,重新加载、替换或刷新)存储在主机系统(例如,120)上的所选部分的本地副本,所述远程副本可由存储器子系统(例如,110)提供(例如,从其接收或检索)。举例来说,操作308可包括主机系统的处理装置(例如,120)将针对所选部分的远程副本的请求从主机系统(例如,120)发送到存储器子系统(例如,110);以及从存储器子系统接收所选部分的远程副本(响应于对远程副本的请求)。另外,主机系统(例如,120)的处理装置将从存储器子系统接收到的所选部分的远程副本存储在主机系统上作为所选部分的本地副本的新版本(由此用新版本替换本地副本)。
现参看图4的方法400,根据一些实施例,方法400说明存储器子系统将地址映射数据的所选部分提供到主机系统的实例。在操作402处,处理装置(例如,存储器子系统控制器115的处理器117)从主机系统(例如,120)接收针对存储器子系统(例如,110)上的地址映射数据的所选部分的副本(例如,经更新的副本或最新副本)的新请求。新请求可指定正由主机系统请求的所选部分。如本文中所描述,响应于存储器子系统发送关于地址映射数据的通知,新请求可从主机系统发送到存储器子系统。
响应于通过操作402接收到的新请求,处理装置(例如,117)在操作404处向主机系统(例如,120)提供所请求的所选部分的副本。基于在操作404处所选部分的副本提供到主机系统(例如,120),处理装置(例如,117)在操作406处更新存储器子系统(例如,110)上的跟踪数据。对于一些实施例,存储器子系统上的跟踪数据指示当前存储在主机系统上的地址映射数据中的一或多个部分。因此,操作404处的处理装置提供所选部分可使跟踪数据更新以包含指示所选部分提供到主机系统的条目。如本文中所描述,跟踪数据可最终由处理装置用以确定地址映射数据的特定部分当前是否存储在主机系统上(例如,当前处于活动状态)。
现参看图5的方法500,方法500说明基于存储器子系统上的地址映射条目未中而将通知发送到主机系统的实例。在操作502处,处理装置(例如,存储器子系统控制器115的处理器117)对与存储器子系统(例如,110)的地址映射数据的所选部分相关联的存储器装置(例如,140)的一或多个存储器单位执行垃圾收集过程。
在操作504处,处理装置(例如,117)确定地址映射数据的所选部分当前是否处于活动状态。对于一些实施例,当所选部分存储在以可操作方式耦合到存储器子系统(例如,110)的主机系统(例如,120)上时,所选部分处于活动状态。响应于所选部分处于活动状态,方法500从操作504进行到操作506;否则方法500从操作504进行到操作512。
处理装置(例如,117)在操作506处确定是否在存储器子系统(例如,110)处从主机系统(例如,120)接收到新的数据请求,其中新的数据请求与地址映射数据的所选部分相关联。响应于在存储器子系统处接收到新数据请求,方法500从操作506进行到操作508;否则方法500从操作506进行到操作512。
在操作508处,处理装置(例如,117)确定包含于数据请求中的地址映射条目是否与来自存储器子系统(例如,110)上的地址映射数据的对应地址映射条目失配。响应于地址映射条目与对应的地址映射条目失配(其指示地址映射条目未中),方法500从操作508进行到操作510;否则方法500从操作508进行到操作512。处理装置(例如,117)使通知从存储器子系统(例如,110)发送到主机系统(例如,120),其中通知可指示主机系统(例如,120)应从存储器子系统(例如,110)重新加载所选部分。
在操作512处,处理装置(例如,117)指示通知未从存储器子系统(例如,110)发送到主机系统(例如,120)。
图6提供说明在一些实施例的上下文中的计算环境的组件之间的交互的交互图,其中执行用于基于如本文中所描述的在存储器子系统上检测到的地址映射条目未中而将通知发送到主机系统的方法。方法的操作可由可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合的处理逻辑执行。在一些实施例中,方法由主机系统(例如,120)、存储器子系统控制器(例如,115)、存储器装置(例如,130或140)或其某一组合执行。尽管以特定顺序或次序展示操作,但除非另外规定,否则可修改过程的次序。因此,所说明的实施例应仅作为实例理解,且所说明的过程可以不同次序执行,且可并行地执行一些过程。另外,在各种实施例中可省略一或多个过程。因此,并非每一实施例中都使用所有过程。在图6所示的实例的上下文中,主机系统可以包含主机系统120,存储器子系统控制器可以包含存储器子系统控制器115,且存储器装置可以包含存储器装置140。
如图6所示,在操作602处,主机系统120基于地址映射数据的所选部分的副本产生数据请求。在操作604处,主机系统120将所产生的数据请求发送到存储器子系统110。
在操作610处,存储器子系统控制器115确定地址映射数据的所选部分当前是否存储在主机系统120上。响应于确定所选部分当前存储在主机系统120上,存储器子系统控制器115在操作612处确定是否从主机系统120接收到数据请求。
响应于从主机系统120接收到数据请求,存储器子系统控制器115在操作612处处理数据请求。举例来说,存储器子系统控制器115可使用包含在数据请求内的存储器装置140的物理存储器地址处理数据请求。在操作630处,存储器装置140可促进对数据请求的处理(例如,通过提供对存储器装置140的存取)。
在操作614处,存储器子系统控制器115确定数据请求的所选逻辑存储器地址与所选物理存储器地址之间的第一映射是否匹配由存储在存储器子系统110上的地址映射数据中的相关地址映射条目描述的第二映射。响应于确定第一映射不匹配第二映射,存储器子系统控制器115在操作616处使通知(关于失配)从存储器子系统110发送到主机系统120。
主机系统120在操作606处接收关于失配的通知,且主机系统120在操作608处通过从存储器子系统110重新加载地址映射数据的所选部分对接收通知作出响应。
图7示出呈计算机系统700的形式的实例机器,在其内可执行指令集以使机器执行本文所论述的方法中的任何一或多个。在一些实施例中,计算机系统700可与主机系统(例如,图1的主机系统120)对应,所述主机系统包含、耦合到或利用存储器子系统(例如,图1的存储器子系统110)或可用于执行本文中所描述的操作。在替代实施例中,机器可连接(例如,联网)到局域网(LAN)、内联网、外联网和/或互联网中的其它机器。机器可作为对等(或分散式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器在客户端-服务器网络环境中的服务器或客户端机器的容量中操作。
机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络设备、服务器、网络路由器、交换机或桥接器,或能够(依序或以其它方式)执行指定待由机器采取的动作的一组指令的任何机器。此外,虽然示出了单个机器,但还应认为术语“机器”包含单独地或共同地执行(一或多个)指令集以执行本文所论述的方法中的任何一或多种的机器的任何集合。
实例计算机系统700包含经由总线730彼此通信的处理装置702、主存储器704(例如,只读存储器(ROM)、快闪存储器、动态随机存取存储器(DRAM),例如同步DRAM(SDRAM)或Rambus DRAM(RDRAM)等)、静态存储器706(例如,快闪存储器、静态随机存取存储器(SRAM)等),以及数据存储装置718。
处理装置702表示一或多个通用处理装置,例如微处理器、中央处理单元等。更确切地说,处理装置702可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器、实施其它指令集的处理器或实施指令集的组合的处理器。处理装置702还可以是一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。处理装置702配置成执行指令726以用于执行本文所论述的操作和步骤。计算机系统700可进一步包含网络接口装置708以经由网络720通信。
数据存储装置718可包含机器可读存储媒体724(也称为计算机可读媒体),所述机器可读存储媒体上存储有一或多个指令集726或体现本文所描述的方法或功能中的任何一或多个的软件。指令726还可在由计算机系统700执行其期间完全或至少部分地驻存于主存储器704内和/或处理装置702内,主存储器704和处理装置702还构成机器可读存储媒体。机器可读存储媒体724、数据存储装置718和/或主存储器704可对应于图1的存储器子系统110。
在一个实施例中,指令726包含用以基于如本文所描述的存储器子系统上的地址映射条目未中而实施对应于将通知发送到主机系统的功能的指令(例如,图1的地址映射数据通知器113、主机侧地址映射数据管理器125或这两者)。虽然在实例实施例中将机器可读存储媒体724展示为单个媒体,但术语“机器可读存储媒体”应被认为包含存储一或多个指令集的单个媒体或多个媒体。术语“机器可读存储媒体”还应被认为包含能够存储由机器执行的一组指令或对其进行编码且使机器执行本公开的方法中的任何一或多种的任何媒体。因此,应认为术语“机器可读存储媒体”包含但不限于固态存储器、光学媒体和磁性媒体。
已就对计算机存储器内的数据位的操作的算法和符号表示而言呈现了先前详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用于将其工作的主旨最有效地传达给本领域其它技术人员的方式。算法在本文中且一般被认为是产生所要结果的操作的自洽序列。操作是要求对物理量进行物理操控的那些操作。这些量通常但未必呈能够被存储、组合、比较和以其它方式操控的电信号或磁信号的形式。主要出于常用的原因,已证明将这些信号称为位、值、元素、符号、字符、术语、编号等有时是方便的。
然而,应牢记,所有这些和类似术语应与适当物理量相关联,且仅是应用于这些量的方便标记。本公开可涉及将表示为计算机系统的寄存器和存储器内的物理(电子)量的数据操控且变换成类似地表示为计算机系统的存储器或寄存器或其它此类信息存储系统内的物理量的其它数据的计算机系统或类似电子计算装置的动作和过程。
本公开还涉及一种用于执行本文中的操作的设备。此设备可出于预期目的而专门构建,或其可包含由存储于计算机中的计算机程序选择性地激活或重新配置的通用计算机。此类计算机程序可存储于各自耦合到计算机系统总线的计算机可读存储媒体中,例如但不限于任何类型的盘(包含软盘、光盘、CD-ROM和磁性光盘)、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡或适合于存储电子指令的任何类型的媒体。
本文中呈现的算法和显示本质上并不与任何特定计算机或其它设备相关。各种通用系统可根据本文中的教示与程序一起使用,或其可以证明构造更专用的设备来执行方法是方便的。将如下文描述中所阐述的那样呈现用于各种这些系统的结构。另外,并不参考任何特定编程语言来描述本公开的实施例。应了解,可使用多种编程语言来实施如本文所描述的本公开的教示。
本公开可提供为计算机程序产品或软件,所述计算机程序产品或软件可包含其上存储有可用以对计算机系统(或其它电子装置)进行编程以执行根据本公开的过程的指令的机器可读媒体。机器可读媒体包含用于存储呈机器(例如,计算机)可读形式的信息的任何机构。在一些实施例中,机器可读(例如,计算机可读)媒体包含机器(例如,计算机)可读存储媒体,例如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储媒体、光学存储媒体、快闪存储器组件等。
在前述说明书中,已参考本公开具体实例实施例描述了本公开的实施例。将显而易见的是,可以在不脱离如所附权利要求书中阐述的本公开实施例的更广精神和范围的情况下对本公开进行各种修改。因此,说明书和图式应被视为说明性的而非限制性的。

Claims (20)

1.一种系统,其包括:
存储器装置;
本地存储器,其存储将所述存储器装置的一或多个逻辑存储器地址映射到一或多个物理存储器地址的地址映射数据,且存储指示所述地址映射数据的所选部分的远程副本当前是否存储在主机系统上的跟踪数据;以及
处理装置,其以操作方式耦合到所述存储器装置和所述本地存储器,所述处理装置配置成执行包括以下各项的操作:
基于所述跟踪数据确定所述地址映射数据的所述所选部分的所述远程副本当前是否存储在所述主机系统上,所述所选部分与逻辑存储器地址的集合相关联;以及
响应于确定所述所选部分的所述远程副本当前存储在所述主机系统上:
确定是否已从所述主机系统接收到数据请求,所述数据请求包括所选逻辑存储器地址和所选物理存储器地址,且所述逻辑存储器地址的集合包含所述所选逻辑存储器地址;以及
响应于确定已接收到所述数据请求:
确定所选物理存储器地址与所述所选逻辑存储器地址之间的第一映射是否匹配由存储在所述本地存储器上的所述所选部分的本地副本中的相关地址映射条目描述的第二映射,所述相关地址映射条目与所述所选逻辑存储器地址相关联;以及
基于所述确定所述第一映射是否匹配所述第二映射,使通知发送到所述主机系统,所述通知指示所述第一映射是否匹配所述第二映射。
2.根据权利要求1所述的系统,其中所述基于所述确定所述第一映射是否匹配所述第二映射而使所述通知发送到所述主机系统包括:
响应于确定所述第一映射不匹配所述第二映射条目,使所述通知发送到所述主机系统,所述通知指示所述第一映射不匹配所述第二映射。
3.根据权利要求1所述的系统,其中所述基于所述确定所述第一映射是否匹配所述第二映射而使所述通知发送到所述主机系统包括:
响应于确定所述第一映射确实匹配所述第二映射,使所述通知发送到所述主机系统,所述通知指示所述第一映射确实匹配所述第二映射。
4.根据权利要求1所述的系统,其中在对所述存储器装置的存储器单位执行垃圾收集过程时执行所述操作,所述存储器单位与所述逻辑存储器地址的集合相关联。
5.根据权利要求4所述的系统,其中在执行所述垃圾收集过程时周期性地执行所述所选部分的所述远程副本当前是否存储在所述主机系统上的所述确定。
6.根据权利要求4所述的系统,其中在执行所述垃圾收集过程时周期性地执行是否已从所述主机系统接收到所述数据请求的所述确定。
7.根据权利要求4所述的系统,其中所述存储器单位包括所述存储器装置的块或页中的至少一者。
8.根据权利要求1所述的系统,其中响应于完成对所述存储器装置的存储器单位执行的垃圾收集过程而执行所述操作,所述存储器单位与所述逻辑存储器地址的集合相关联。
9.根据权利要求1所述的系统,其中所述操作作为对所述存储器装置的存储器单位执行的垃圾收集过程的部分而执行,所述存储器单位与所述逻辑存储器地址的集合相关联。
10.根据权利要求1所述的系统,其中所述操作包括:
从所述主机系统接收针对所述所选部分的经更新副本的新请求;以及
响应于所述新请求,向所述主机系统提供所述地址映射数据的所述所选部分的所述本地副本。
11.根据权利要求1所述的系统,其中所述数据请求包括由所述主机系统用以确定所述所选物理存储器地址的主机侧地址映射条目的副本。
12.根据权利要求1所述的系统,其中所述跟踪数据包括跟踪表,所述跟踪表基于从所述主机系统接收到的针对存储在所述系统的所述本地存储器上的所述地址映射数据的部分的副本的一或多个请求而更新。
13.根据权利要求1所述的系统,其中所述地址映射数据的所述所选部分与如由通用闪存UFS电子设备工程联合委员会JEDEC规范限定的存储器的逻辑单位的子区或区中的至少一者相关联。
14.一种方法,其包括:
通过主机系统的处理装置产生包括所选逻辑存储器地址和所选物理存储器地址的数据请求,所述数据请求基于来自地址映射数据的所选部分的本地副本的主机侧地址映射条目而产生,所述所选部分的所述本地副本存储在所述主机系统上,且所述主机侧地址映射条目描述所述所选逻辑存储器地址与所述所选物理存储器地址之间的第一映射;
通过所述处理装置使所述数据请求从所述主机系统发送到存储器子系统;
通过所述处理装置确定是否从所述存储器子系统接收到通知,所述通知指示所述第一映射是否匹配由存储在所述存储器子系统上的所述所选部分的远程副本中的相关地址映射条目描述的第二映射,且所述相关地址映射条目与所述所选逻辑存储器地址相关联;以及
响应于确定从所述存储器子系统接收到所述通知,基于所述所选部分的所述远程副本更新所述所选部分的所述本地副本。
15.根据权利要求14所述的方法,其中所述数据请求包括用于产生所述数据请求的所述主机侧地址映射条目的副本。
16.根据权利要求14所述的方法,其包括:
将用于产生所述数据请求的所述主机侧地址映射条目的副本发送到所述存储器子系统,所述将所述主机侧地址映射条目的所述副本发送到所述存储器子系统与所述将所述数据请求发送到所述存储器子系统是分开的。
17.根据权利要求14所述的方法,其中在所述数据请求已从所述主机系统发送到所述存储器子系统之后周期性地执行是否从所述存储器子系统接收到所述通知的所述确定。
18.根据权利要求14所述的方法,其中所述基于所述所选部分的所述远程副本更新所述所选部分的所述本地副本包括:
将针对所述所选部分的所述远程副本的请求发送到所述存储器子系统;以及
从所述存储器子系统接收所述所选部分的所述远程副本。
19.根据权利要求18所述的方法,其中所述基于所述所选部分的所述远程副本更新所述所选部分的所述本地副本包括:
将从所述存储器子系统接收到的所述所选部分的所述远程副本存储在所述主机系统上作为所述所选部分的所述本地副本的新版本。
20.至少一种包括指令的非暂时性机器可读存储媒体,所述指令在由处理装置执行时使所述处理装置执行包括以下各项的操作:
从主机系统接收针对存储在存储器子系统上的地址映射数据的所选部分的副本的新请求,所述地址映射数据将所述存储器子系统的存储器装置的一或多个逻辑存储器地址映射到一或多个物理存储器地址;
响应于所述新请求:
向所述主机系统提供所述地址映射数据的所述所选部分的所述副本;以及
更新所述存储器子系统上的跟踪数据,所述跟踪数据指示所述地址映射数据的所述所选部分的所述副本当前是否存储在所述主机系统上;以及
基于所述跟踪数据确定所述地址映射数据的所述所选部分的所述副本当前是否存储在所述主机系统上;以及
基于所述确定所述地址映射数据的所述所选部分的所述副本当前是否存储在所述主机系统上而使通知发送到所述主机系统。
CN202210138311.9A 2021-02-16 2022-02-15 基于条目未中的主机系统通知 Active CN114942858B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/176,911 2021-02-16
US17/176,911 US11360888B1 (en) 2021-02-16 2021-02-16 Host system notification based on entry miss

Publications (2)

Publication Number Publication Date
CN114942858A CN114942858A (zh) 2022-08-26
CN114942858B true CN114942858B (zh) 2023-01-24

Family

ID=81944302

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210138311.9A Active CN114942858B (zh) 2021-02-16 2022-02-15 基于条目未中的主机系统通知

Country Status (2)

Country Link
US (2) US11360888B1 (zh)
CN (1) CN114942858B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11360888B1 (en) 2021-02-16 2022-06-14 Micron Technology, Inc. Host system notification based on entry miss

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110858129A (zh) * 2018-08-22 2020-03-03 爱思开海力士有限公司 数据存储装置及其操作方法
CN111581121A (zh) * 2019-02-19 2020-08-25 爱思开海力士有限公司 用于管理存储器系统中的映射数据的方法和设备
CN112088366A (zh) * 2018-05-09 2020-12-15 国际商业机器公司 主机感知更新写
CN112286838A (zh) * 2019-07-25 2021-01-29 戴尔产品有限公司 存储设备可配置的映射粒度系统

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2527529B (en) * 2014-06-24 2021-07-14 Advanced Risc Mach Ltd A device controller and method for performing a plurality of write transactions atomically within a non-volatile data storage device
US11200597B2 (en) * 2016-01-07 2021-12-14 Worldpay, Llc Systems and methods for identification of predicted consumer spend based on historical purchase activity progressions
JP2019057172A (ja) * 2017-09-21 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
TWI670594B (zh) * 2018-01-18 2019-09-01 慧榮科技股份有限公司 資料儲存裝置
WO2020164064A1 (en) * 2019-02-14 2020-08-20 Micron Technology, Inc. Partial caching of media address mapping data
US11237953B2 (en) * 2019-05-21 2022-02-01 Micron Technology, Inc. Host device physical address encoding
US11360888B1 (en) 2021-02-16 2022-06-14 Micron Technology, Inc. Host system notification based on entry miss

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112088366A (zh) * 2018-05-09 2020-12-15 国际商业机器公司 主机感知更新写
CN110858129A (zh) * 2018-08-22 2020-03-03 爱思开海力士有限公司 数据存储装置及其操作方法
CN111581121A (zh) * 2019-02-19 2020-08-25 爱思开海力士有限公司 用于管理存储器系统中的映射数据的方法和设备
CN112286838A (zh) * 2019-07-25 2021-01-29 戴尔产品有限公司 存储设备可配置的映射粒度系统

Also Published As

Publication number Publication date
US20220308993A1 (en) 2022-09-29
CN114942858A (zh) 2022-08-26
US11360888B1 (en) 2022-06-14
US11971816B2 (en) 2024-04-30

Similar Documents

Publication Publication Date Title
US11036625B1 (en) Host-resident translation layer write command associated with logical block to physical address of a memory device
CN114730300B (zh) 对区命名空间存储器的增强型文件系统支持
CN113010449B (zh) 用于存储器子系统中命令的有效处理的方法、系统和非暂时性计算机可读存储媒体
US11693768B2 (en) Power loss data protection in a memory sub-system
CN112912857B (zh) 对存储器子系统的写入原子性管理
US20220300195A1 (en) Supporting multiple active regions in memory devices
CN112948284A (zh) 高速缓存媒体中的动态存取粒度
CN113934666B (zh) 数据接口桥的预取
US20240143511A1 (en) Dynamically sized redundant write buffer with sector-based tracking
CN114942893A (zh) 物理存储器位置的反转刷新
CN114942858B (zh) 基于条目未中的主机系统通知
US11599466B2 (en) Sector-based tracking for a page cache
US20230195350A1 (en) Resequencing data programmed to multiple level memory cells at a memory sub-system
US11797198B2 (en) Memory instruction for memory tiers
CN115048042A (zh) 启用针对持久性存储器的存储器存取事务
CN113961482A (zh) 高速缓存存储器的增强型重复写入数据跟踪
US11157193B2 (en) Coherency issue resolution in logical to physical page translation in a memory sub-system
CN114077404B (zh) 使存储器单元与主机系统解除关联
CN115757205A (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
GR01 Patent grant
GR01 Patent grant