CN109074318A - 用于执行转换层表的自适应主机存储器缓冲区高速缓存的系统和方法 - Google Patents
用于执行转换层表的自适应主机存储器缓冲区高速缓存的系统和方法 Download PDFInfo
- Publication number
- CN109074318A CN109074318A CN201780026088.6A CN201780026088A CN109074318A CN 109074318 A CN109074318 A CN 109074318A CN 201780026088 A CN201780026088 A CN 201780026088A CN 109074318 A CN109074318 A CN 109074318A
- Authority
- CN
- China
- Prior art keywords
- host
- nonvolatile memory
- data
- file
- memory
- 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.)
- Granted
Links
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/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
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/46—Caching storage objects of specific type in disk cache
- G06F2212/466—Metadata, control data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明题为“用于执行转换层表的自适应主机存储器缓冲区高速缓存的系统和方法”。本发明公开了用于执行转换层表(FTL表)的自适应主机存储器缓冲区高速缓存的系统和方法。在一种形式中,非易失性存储器系统结合接收来自主机系统的第一主机命令,接收来自所述主机系统的提示信息,所述提示信息识别存储在所述非易失性存储器系统处的所述主机系统将从其读取数据的文件。所述非易失性存储器系统识别与在所述提示信息中识别的所述文件的数据相关联的一个或多个FTL表,并将所述一个或多个FTL表发送到所述主机系统以用于存储在所述主机系统的主机存储器缓冲区中。在将所述一个或多个FTL表发送到所述主机系统之后,所述非易失性存储器系统接收来自所述主机系统的第二主机命令,所述主机命令包括用于读取来自存储所述文件的数据的所述非易失性存储器系统的一个或多个物理块地址的数据的指令。
Description
相关申请
本申请是2015年1月21日提交的美国专利申请No.14/601,250(仍然未决)的部分继续申请,其全部内容以引用方式并入本文。
背景技术
基于NAND的闪存存储器系统包括转换层(“FTL”),该转换层将主机逻辑块地址(“LBA”)映射到NAND闪存存储器中的物理地址。在高性能产品诸如固态驱动器(“SSD”)中,将LBA映射到物理地址的表存储在本地动态随机存取存储器(“DRAM”)中,以便减少延迟。通常,将表映射到存储器系统的总容量所消耗的DRAM的比率是1:1000,即有效寻址1GB的NAND闪存存储器需要1MB的表格数据。性能差异相当之大,NAND闪存存储器访问通常最低为每次读取50至70μs,本地DRAM通常以每次读取大约几百ns来访问。
为了在高性能非易失性存储器系统中降低成本,减少或消除DRAM的使用已成为可取的。因此,非易失性存储器系统包括称为主机存储器缓冲区(“HMB”)的特征。主机存储器缓冲区允许在主机系统的存储器中使用指定空间,诸如用于转换层表(FTL表)的RAM高速缓存。
附图说明
图1A是示例性非易失性存储器系统的框图。
图1B是示出示例性存储模块的框图。
图1C是示出分级存储系统的框图。
图2A是示出非易失性存储器系统的控制器的示例性部件的框图。
图2B是示出非易失性存储器存储系统的非易失性存储器的示例性部件的框图。
图3示出了存储体的示例性物理存储器组织。
图4示出了图3的物理存储器的一部分的扩展视图。
图5是与非易失性存储器系统耦接的主机系统的一个实施方式的框图。
图6是一种方法的一种实施方式的流程图,该方法用于响应于主机系统发起在非易失性存储器系统上安装应用程序的过程而使提示生成器生成提示信息。
图7是一种方法的一种实施方式的流程图,该方法用于响应于主机系统在非易失性存储器系统上发起创建文件或打开文件的过程而使提示生成器生成提示信息。
图8是一种方法的一种实施方式的流程图,该方法用于使非易失性存储器系统接收和利用提示信息来将FTL表智能地存储在主机设备的主机存储器缓冲区中以便优化读取来自非易失性存储器系统的数据的操作。
具体实施方式
本公开针对用于执行转换层表的自适应主机存储器缓冲区高速缓存的系统和方法。如上所述,通过使用主机存储器缓冲区减少或消除了DRAM使用,非易失性存储器系统已经变得可取。HMB提供主机系统的存储器中的指定空间的使用,诸如用于将主机逻辑块地址映射到非易失性存储器系统中的物理地址的转换层表的RAM高速缓存。
在Windows环境中,可被分配由外围部件快速互连(PCIe)设备直接访问的主机存储器的量存在架构限制。该存储器必须专用于非分页池并且锁定到主机系统无法重新分配的特定物理地址,从而限制主机存储器效率。因此,主机系统环境不愿意分配允许将完整映射表存储在主机存储器缓冲区中的完整1:1000比率。
从概念上讲,FTL表最多有三层记录存储:内部SRAM、主机存储器缓冲区和NAND。主机系统环境被优化用于慢速存储环境诸如旋转磁盘。这些主机系统主动预先缓存来自打开文件的数据和主机系统基于用户读取模式的历史数据识别的数据。任何可用的主机DRAM通常用于管理该高速缓存。虽然这种策略在存储I/O较慢时是有效的,但是现代NAND存储设备中的快速读取速率可能会降低这种方法的有效性。
非易失性存储器系统可以通过这些方法结合预测的主机策略智能地确定FTL表的哪些部分属于主机系统的内部SRAM、主机系统的主机存储器缓冲区和/或非易失性存储器系统的NAND。以这种方式利用主机存储器缓冲区存储FTL表的部分可以减少对大型读缓存的需求,从而提高性能。
如下面更详细地讨论的,主机系统上存在的提示生成器监视主机系统动作,并且将提示信息传递给非易失性存储器系统,指示主机系统将向其请求数据的文件。存储器系统利用接收的提示信息识别与提示信息中指示的文件相关联的一个或多个FTL表,并且将识别的FTL表或FTL表的部分存储在主机存储器缓冲区中,以便优化将来从存储器系统读取数据的操作。
在一种形式中,公开了一种方法。在该方法中,非易失性存储器系统结合从主机系统接收第一主机命令接收来自主机系统的提示信息,该提示信息识别存储在非易失性存储器系统中的主机系统将从其读取数据的文件。
非易失性存储器系统识别与在提示信息中识别的文件的数据相关联的一个或多个FTL表,所述一个或多个FTL表将与文件相关联的逻辑块地址的至少一部分映射到存储文件的数据的非易失性存储器系统的物理块地址。非易失性存储器系统将一个或多个FTL表发送到主机系统以用于存储在主机系统的主机存储器缓冲区中。然后非易失性存储器系统接收来自主机系统的第二主机命令,该主机命令包括用于读取来自存储文件的数据的非易失性存储器系统的一个或多个物理块地址的数据的指令。
在另一种形式中,公开了一种非易失性存储器系统。该非易失存储器系统包括非易失性存储器以及与非易失存储器通信的控制器。
控制器被配置为接收来自主机系统的信息,该信息识别存储在非易失性存储器中的主机系统将从其读取数据的文件,并且被配置为识别存储在非易失性存储器中的FTL表的一部分,该部分与信息中识别的文件的数据相关联。
控制器被进一步配置为经由主机存储器缓冲区接口将FTL表的部分发送到主机系统以用于存储在主机系统的主机存储器缓冲区中,并且被配置为接收来自主机系统的主机命令,主机命令包括用于读取来自存储文件的数据的非易失性存储器系统的一个或多个物理块地址的数据的指令。
在又一种形式中,公开了另外的方法。在该方法中,主机系统确定主机系统是否已经启动将命令发送到非易失性存储器系统的程序并且分析与该命令相关联的元数据或有效载荷数据中的至少一者,以确定处理器是否能够生成与元数据或有效载荷数据中的至少一者相关联的提示信息。
主机系统进一步基于对元数据或有效载荷数据中的至少一者的分析生成提示信息,所述提示信息指示存储在非易失性存储器系统中的主机系统将从其读取数据的文件,并且将提示信息发送到非易失性存储器系统。
主机系统在发送提示信息后从非易失性存储器系统接收FTL表,FTL表将与文件相关联的逻辑块地址映射到存储文件数据的非易失性存储器系统的物理块地址,并且将FTL表存储在主机系统的主机存储器缓冲区中。
在另一种形式中,公开了另一种非易失性存储器系统。该非易失性存储器系统包括非易失性存储器和主机存储器缓冲区接口。
非易失性存储器系统还包括用于接收来自主机系统的信息的装置,该信息识别存储在非易失性存储器中的主机系统将从其读取数据的文件,以及用于识别存储在非易失性存储器中的与信息中识别的文件数据相关联的FTL表的一部分的装置。
非易失性存储器系统还包括用于将FTL表的部分发送到主机系统以用于存储在主机系统的主机存储器缓冲区中的装置,以及用于接收来自主机系统的主机命令的装置,主机命令包括用于读取来自存储文件数据的非易失性存储器系统的一个或多个物理块地址的数据的指令。
其他形式和实施方式是可能的,并且每个形式可以单独使用或组合使用。因此,将参照附图描述各种形式和实施方式。
图1A是示出非易失性存储器系统的框图。非易失性存储器系统100包括控制器102和可由一个或多个非易失性存储器管芯104构成的非易失性存储器。如本文所述,术语管芯指的是在单个半导体基板上形成的一组非易失性存储器单元,以及用于管理那些非易失性存储器单元的物理操作的相关联的电路。控制器102与主机系统交互,并且将用于读取、编程和擦除操作的命令序列发送到非易失性存储器管芯104。
控制器102(可以是闪存存储器控制器)可以采用以下形式:例如处理电路、微处理器或处理器,以及存储可由(微)处理器执行的计算机可读程序代码的计算机可读介质(例如,软件或固件)、逻辑门、开关、专用集成电路(ASIC)、可编程逻辑控制器和嵌入式微控制器。控制器102可以配置有硬件和/或固件,以执行下面描述并在流程图中显示的各种功能。此外,显示为控制器内部的一些部件也可以存储在控制器外部,并且可以使用其他部件。此外,短语“可操作地与…通信”可能意味着直接或间接地(有线或无线)与一个或多个部件通信或通过一个或多个部件通信,其可在本文中示出或未示出。
如本文所用,闪存存储器控制器是管理存储在闪存存储器上的数据并与主机诸如计算机或电子设备通信的设备。除了这里描述的特定功能外,闪存存储器控制器可以具有各种功能。例如,闪存存储器控制器可以对闪存存储器进行格式化以确保存储器正确操作,标出坏的闪存存储器单元,并且分配备用单元以替代将来的故障单元。部分备用单元可以用来容纳固件以操作闪存存储器控制器并实现其他特征。在操作中,当主机需要从闪存存储器读取数据或向闪存存储器写入数据时,它将与闪存存储器控制器通信。如果主机提供要读取/写入数据的逻辑地址,则闪存存储器控制器可以将从主机接收的逻辑地址转换为闪存存储器中的物理地址。(或者,主机可以提供物理地址)。闪存存储器控制器还可以执行各种存储器管理功能,诸如但不限于损耗均衡(分配写入以避免损耗否则将被重复写入的特定存储器块)和垃圾收集(在块已满之后,仅将有效的数据页面移动到新块,因此可以擦除并重用完整块)。
非易失性存储器管芯104可以包括任何合适的非易失性存储介质,包括NAND闪存存储器单元和/或NOR闪存存储器单元。存储器单元可以采用固态(例如,闪存)存储器单元的形式,并且可以是一次可编程、几次可编程或多次可编程的。存储器单元也可以是单级单元(SLC)、多级单元(MLC)、三级单元(TLC),或者使用现在已知或后来开发的其他存储器技术。另外,存储器单元可被布置成二维或三维方式。
控制器102和非易失性存储器管芯104之间的交互可以是任何合适的闪存交互,诸如切换模式200、400或800。在一个实施方案中,存储器系统100可以是基于卡的系统,诸如安全数字(SD)或微型安全数字(micro-SD)卡。在另选实施方案中,存储器系统100可以是嵌入式存储器系统的一部分。
虽然在图1A所示的示例中,非易失性存储器系统100包括控制器102和非易失性存储器管芯104之间的单个信道,但是本文描述的主题不限于具有单个存储器信道。例如,在一些NAND存储器系统架构中,控制器和NAND存储器设备之间存在2、4、8个或更多个NAND信道,具体取决于控制器的能力。在本文描述的任何实施方案中,即使在附图中示出单个信道,控制器和存储器管芯之间也可以存在多于一个的信道。
图1B示出了包括多个非易失性存储器系统100的存储模块200。因此,存储模块200可以包括存储控制器202,该存储控制器与主机以及包括多个非易失性存储器系统100的存储系统204交互。存储控制器202和非易失性存储器系统100之间的接口可以是总线接口,诸如串行高级技术附件(SATA)或外围设备快速互连(PCIe)接口。在一个实施方案中,存储模块200可以是固态驱动器(SSD),诸如在便携式计算设备诸如膝上型计算机和平板电脑中存在的。
图1C是示出分级存储系统的框图。分级存储系统210包括多个存储控制器202,每个控制相应的存储系统204。主机系统212可经由总线接口访问分级存储系统内的存储器。在一个实施方案中,总线接口可以是非易失性存储器规范(NVMe)或以太网光纤信道(FCoE)接口。在一个实施方案中,图1C所示的系统可以是机架可安装的大容量存储系统,其可由多个主机计算机访问,诸如在需要大容量存储的数据中心或其他位置中可以找到。
图2A是更详细地示出控制器102的示例性部件的框图。控制器102包括与主机交互的前端模块108、与一个或多个非易失性存储器管芯104交互的后端模块110,以及执行现在将详细描述的功能的各种其他模块。
模块可以采用以下形式:例如,设计用于与其他部件一起使用的封装功能硬件单元,可由通常执行特定功能或相关功能的(微)处理器或处理电路执行的程序代码的一部分(例如,软件或固件),或者与更大系统交互的独立硬件或软件部件。
控制器102的模块可包括提示处理模块112。如将在下面结合图5至图8详细讨论的,提示处理模块112处理从存在于主机系统上的提示生成器接收的提示信息,并且可以基于提示信息中识别的数据的特征选择用于处理数据的程序。这些程序可以包括利用接收到的提示信息将FTL表放置在主机存储器缓冲区中,以优化将来从存储器系统读取数据的操作。
再次参考控制器102的模块,缓冲区管理器/总线控制器114管理随机存取存储器(RAM)116中的缓冲区,并且控制控制器102的内部总线仲裁。只读存储器(ROM)118存储系统引导代码。虽然图2A所示为与控制器102分开,但在其他实施方案中,RAM 116和ROM 118中的一者或两者可以位于控制器内。在其他实施方案中,RAM和ROM的部分可以位于控制器102内和控制器外部。此外,在一些实施方式中,控制器102、RAM 116和ROM 118可以位于单独的半导体管芯上。
前端模块108包括主机接口120、物理层接口(PHY)122以及主机存储器缓冲区接口123,该主机存储器缓冲区接口提供与主机或下一级存储控制器的电气交互。主机接口120的类型的选择取决于使用的存储器类型。主机接口120的示例包括但不限于SATA、SATAExpress、SAS、光纤信道、USB、PCIe和NVMe。主机接口120通常有利于传输数据、控制信号和定时信号。
后端模块110包括错误校正控制器(ECC)引擎124,其对从主机接收的数据字节进行编码,并且对从非易失性存储器读取的数据字节进行解码和错误校正。命令定序器126生成命令序列诸如程序和擦除命令序列,以传输到非易失性存储器管芯104。RAID(独立驱动器冗余阵列)模块128管理RAID奇偶校验的生成和失败数据的恢复。RAID奇偶校验可以用作写入到存储器设备104中的数据的附加级别的完整性保护。在一些情况下,RAID模块128可以是ECC引擎124的一部分。存储器接口130向非易失性存储器管芯104提供命令序列,并且从非易失性存储器管芯104接收状态信息。在一个实施方案中,存储器接口130可以是双倍数据速率(DDR)接口诸如切换模式200、400或800接口。闪存控制层132控制后端模块110的总体操作。
图2A中所示的系统100的附加部件包括媒体管理层138,媒体管理层执行非易失性存储器管芯104的存储器单元的损耗均衡,并且包括自适应主机存储器缓冲区高速缓存模块139,其与提示处理模块一起操作以将FTL表或FTL表的部分存储在主机系统的主机存储器缓冲区中。系统100还包括其他分立部件140,诸如外部电气接口、外部RAM、电阻器、电容器或可与控制器102交互的其他部件。
在另选实施方案中,物理层接口122、RAID模块128、媒体管理层138和缓冲区管理/总线控制器114的一者或多者是控制器102中不需要的可选部件。
图2B是更详细地示出非易失性存储器管芯104的示例性部件的框图。非易失性存储器管芯104包括外围电路141和非易失性存储器阵列142。非易失性存储器阵列142包括用于存储数据的非易失性存储器单元。非易失性存储器单元可以是任何合适的非易失性存储器单元,包括采用二维和/或三维配置的NAND闪存存储器单元和/或NOR闪存存储器单元。外围电路141包括提供状态信息到控制器102的状态机152。非易失性存储器管芯104还包括缓存数据的数据高速缓存156。
图3概念性地示出了显示存储器单元的四个平面302至308的多平面布置。这些平面302至308可以在单个管芯上,在两个管芯上(每个管芯上两个平面)或在四个单独的管芯上。当然,在系统的每个管芯上可以存在其他数量的平面诸如1、2、8、16或更多的平面。这些平面被分别分成图3矩形所示的存储器单元的块,诸如块310、312、314和316,其分别位于相应的平面302至308中。每个平面中可以有数十个或数百个块。
如上所述,存储器单元块是擦除单元,是物理上可一起擦除的存储器单元的最小数量。为了增加并行性,一些存储器系统在较大的元块单元中操作块。然而,其他存储器系统可以利用异步存储器管芯形成而不是在更大的元块单元中操作。
在利用元块单元的存储器系统中,每个平面的一个块逻辑上链接在一起以形成元块。示出了四个块310至316以形成一个元块318。通常一起擦除元块内的所有单元。如由块322至328组成的第二元块320中所示,用于形成元块的块不必限于它们相应平面内的相同相对位置。虽然通常优选的是将元块扩展到所有平面,但是为了获得高系统性能,存储器系统可以具有在不同平面中动态地形成一、二、三块中的任何一个或全部的元块的能力来操作。这允许元块的大小与一个编程操作中可用于存储的数据量更紧密地匹配。
如图4所示,为了操作目的,各个块被依次分成存储器单元的页面。例如,块310至316中的每一者的存储器单元被分成八个页面P0至P7。另选地,每个块内可能有32、64或更多页的存储器单元。页面是块内的数据编程和读取单元,包含一次编程或读取的最小数据量。然而,为了增加存储器系统的操作并行性,两个或更多块内的此类页面可以在逻辑上链接到元页。元页428在图4中示出,是由四个块310至316中的每一者的物理页形成的。例如,元页402包括四个块中的每一者中的页面P2,但是元页的页面不必在每个块中具有相同的相对位置。
如上所述,相比于存储器系统能够访问顺序存储在相同存储器管芯的存储器块中的数据,非易失性存储器系统通常能够更有效地访问并行存储在不同存储器管芯中的存储器块上的数据。然而,在不知晓主机系统访问存储在非易失性存储器系统中的数据的访问模式的情况下,对于主机系统将立即访问的数据,存储器系统难以利用该效率并且并行地将数据存储在不同存储器管芯中的存储器块上。
本文描述的非易失性存储器系统可以利用来自位于主机系统上的提示生成器的信息,以便更智能地处理数据并将数据存储在存储器系统的非易失性存储器中。图5是与非易失性存储器系统诸如上面描述的那些耦接的主机系统的一个实施方式的框图。
主机系统500将数据存储到非易失性存储器系统502并从非易失性存储器系统检索数据,诸如上面结合图1A至图4描述的那些。就非易失性存储器系统502而言,主机系统500可被视为具有由电路和软件的组合构成的两个主要部分。它们是应用程序部分508和与非易失性存储器系统502交互的驱动器模块部分510。驱动器模块部分510包括驱动器模块部分510分配以形成主机存储器缓冲区511的物理存储器。
应用程序部分508可以包括例如运行文字处理、图形、控制或其他流行应用程序软件的CPU处理器512(也称为处理电路),以及用于管理主机500上的数据的主机文件系统514。
如下面更详细地讨论的,应用程序部分508还可包括提示生成器513,该提示生成器监视启动并将主机命令发送到存储模块的主机系统过程。提示生成器513可以被实施为在CPU处理器512上运行的应用程序,该应用程序不是主机系统上存在的操作系统的一部分。提示生成器513可另选地使用处理电路来实现。
在一些实施方式中,提示生成器513可以至少部分地与驱动器模块部分510集成,以便将提示信息作为主机命令的一部分发送到存储模块502。
通常,提示生成器513查找主机系统要发送到非易失性存储器系统502的主机命令和相关数据。在一些实施方式中,提示生成器513启动导致主机系统将主机命令及相关数据发送到非易失性存储器系统的程序。然而,在其他实施方式中,提示生成器不启动导致主机系统将主机命令和相关数据发送到非易失性存储器系统的程序。
主机命令和相关的数据可能是由于主机系统打算执行的以下操作的结果:例如在非易失性存储器系统上安装应用程序,在非易失性存储器系统上存储新文件的数据,替换存储在非易失性存储器系统上文件的数据,从文件删除内容,删除整个文件,执行文件的内容,以存储器映射方式读取文件,或者从存储在非易失性存储器系统上的文件顺序地流动数据。
在识别主机系统将向非易失性存储器系统发送的主机命令及相关联数据之后,提示生成器513可分析与识别的主机命令相关联的元数据或有效载荷数据中的至少一者。元数据可以是描述与识别的主机命令一起发送的数据的一个或多个特征的信息,并且有效载荷数据可以是与识别的主机命令一起发送的实际数据。例如,元数据可以描述由主机将发送到存储设备以用于存储的数据组成的文件的属性。有效载荷数据是主机将发送到存储设备的实际文件的数据。
提示生成器513基于数据的分析和特征生成提示信息,并且提示生成器513将生成的提示信息发送到非易失性存储器系统。提示信息可以提供关于主机系统将发送到非易失性存储器系统的数据的特征的信息,诸如数据是否将经常更新、数据的文件类型诸如文件是否是可执行文件、与数据关联的逻辑块地址的序列,数据是否是现有文件的一部分、数据是否替换现有文件的数据、数据是否是已经存储在非易失性存储器系统中的文件的副本,或者在处理和/或存储数据时可能对非易失性存储器有用的任何其他类型的信息。
提示生成器513可用于向非易失性存储器系统传递提示信息的协议的一个示例在NVMe 1.2标准规范中描述,有关该标准规范可以访问www.nvmexpress.org。例如,提示生成器513可利用指示数据读取或写入频率的描述的访问频率(AF)字段、指示应针对顺序读取访问优化数据的顺序读取(SR)字段以及/或者指示应针对顺序写访问优化数据的顺序写入(SW)字段。提示生成器513可以将这些字段连同读写入命令一起发送到非易失性存储器系统。
下面,就图6和图7进行讨论,示出了提示生成器生成提示信息并且将提示信息发送到非易失性存储器系统的方法的实施方式。关于图8的讨论示出了非易失性存储器系统如何接收和利用提示信息以有效地在非易失性存储器系统处理和/或存储数据,以及在主机存储器缓冲区放置FTL表或FTL表的部分以便优化将来从存储器系统读取数据或将新文件保存到存储器系统的操作的方法的实施方式。
图6是一种方法的一种实施方式的流程图,该方法用于响应于主机系统发起在非易失性存储器系统上安装应用程序的过程而使提示生成器生成提示信息。如上所述,提示生成器存在于主机系统上并且监视主机系统的操作。
在步骤602处,提示生成器确定主机系统已经启动了将应用程序安装在与主机系统耦接的非易失性存储器系统上的程序。在一些实施方式中,提示生成器与具有主机实用程序的主机系统集成,该主机实用程序将应用程序安装到非易失性存储器系统上,以帮助提示生成器识别主机系统何时启动在非易失性存储器系统上安装应用程序的过程。例如,提示生成器可以与操作系统提供的安装服务或与应用程序提供的设置脚本集成。
在一些实施方式中,在分析安装包之前,提示生成器在确定主机系统已启动在非易失性存储器系统上安装应用程序的程序之后首先分析文件系统布局。提示生成器分析文件系统布局,以确定要动态更新哪些文件盘区,以及在安装完成后哪些文件盘区是静态的。例如,应用程序映像(通常存储在/bin、/usr/bin或“\Program Files”目录下)通常是静态的并且不经常更新,而用户数据诸如模板、示例或用户可修改的资源文件通常是动态更新的。如本领域已知的,文件盘区是在为特定文件保留的文件系统中的逻辑连续存储区域。
在步骤604处,提示生成器从主机文件系统获得文件系统布局,并且在步骤606处,提示生成器确定文件系统布局是否已经从先前的文件系统布局分析改变。当文件系统布局未改变时,提示生成器将继续在步骤610处分析安装包。
然而,当文件系统布局改变时,在步骤608处,提示生成器生成并发送关于新文件系统布局的提示信息,并且将提示信息发送到非易失性存储器系统。提示生成器在分析文件系统布局之后向非易失性存储器系统发送的提示信息可包括,例如,新文件的指示、特定文件是否已经改变或移动的指示、更新的文件盘区的指示,以及/或者静态或不频繁更新的逻辑块地址的任何新盘区的指示。
在一些实施方式中,提示生成器使用操作系统提供的直通应用程序接口(“API”)或者使用能够直接向存储模块发送命令的设备驱动器,向非易失性存储器系统发送提示信息。在另一些实施方式中,当提示生成器至少部分地嵌有主机系统上的设备驱动器时,提示生成器可以将提示信息嵌入主机系统发送到非易失性存储器系统的写入命令中。
在步骤610处,提示生成器分析安装包以识别结果安装将存储在非易失性存储器系统上的一个或多个文件。
在步骤612处,提示生成器检查在步骤610处识别的一个或多个文件的第一文件。在一些实施方式中,提示生成器可以检查与实际文件本身的文件或数据相关联的元数据中的至少一者。在步骤614处,提示生成器确定文件的特征是已知的还是可以确定的。当文件的特征未知且无法确定时,在步骤616处,主机系统在没有提示信息的情况下将文件的数据写入非易失性存储器系统。
另选地,当提示生成器确定文件的特征已知或可以确定时,在步骤618处,提示生成器生成与文件相关联的提示信息。在一些实施方式中,提示信息可包括针对非易失性存储器系统的关于文件数据将以其改变的频率的指示、与文件相关联的逻辑块地址序列和/或与数据相关联的文件类型,诸如文件是否是可执行文件。
在步骤620处,提示生成器将与文件相关联的提示信息发送到非易失性存储器系统,并且在步骤622处,主机系统发送包含文件数据的一个或多个写入命令。如上所述,在一些实施方式中,提示生成器使用操作系统提供的直通API或者使用能够直接向非易失性存储器发送命令的设备驱动器,向非易失性存储器系统发送提示信息。在另一些实施方式中,当提示生成器至少部分地嵌有主机系统上的设备驱动器时,提示生成器可以将提示信息嵌入主机系统发送到非易失性存储器系统的写入命令中。
在一些实施方式中,在步骤624处,在发送提示信息和包含文件的数据的写入命令之后,提示生成器向非易失性存储器系统发送终止提示信息。终止提示信息向非易失性存储器系统指示主机系统已经完成针对当前文件向非易失性存储器系统发送主机命令,并且/或者提示生成器将不向非易失性存储器系统发送关于与此时的当前文件相关联盘区的进一步的提示信息。
应当理解,对于在步骤610处识别的一个或多个文件中的每个文件,重复从步骤612开始的上述过程,直到处理完所有文件并且在步骤626处完成安装。
主机系统上存在的提示生成器可在主机系统启动过程时执行类似的动作,该过程虽然不是安装程序的一部分,但是在非易失性存储器系统处创建文件并且/或者在非易失性存储器打开现有文件以用于操作诸如读取操作。
图7是一种方法的一种实施方式的流程图,该方法用于响应于主机系统在非易失性存储器系统上发起创建文件或打开文件的过程而使提示生成器生成提示信息。如上所述,提示生成器存在于主机系统上并且监视主机系统的操作。
在步骤702处,提示生成器监视主机系统的动作,并且确定主机系统已启动在非易失性存储器系统上创建一个或多个文件以及/或者在非易失性存储器系统上打开一个或多个文件的程序。在步骤704处,提示生成器确定识别为程序的一部分的文件是否需要处理。当需要处理文件时,在步骤706处,提示生成器确定是否正在创建文件或者文件是否已经存储在非易失性存储器系统中。
当提示生成器确定文件已存储在非易失性存储器系统中时,在步骤708处,提示生成器可检索与文件相关联的信息诸如元数据,该信息指示文件的特征,诸如与文件关联的逻辑块地址的序列、文件类型,或预计文件数据改变的频率如何的指示。提示生成器可使用操作系统接口来提取此信息,该操作系统接口通过在主机存储器内检查描述文件盘区布局的数据结构,允许应用程序读取文件特征和盘区布局。另外,提示生成器可检查实际文件数据以确定文件类型。
在步骤710处,提示生成器可基于与文件相关联的信息生成提示信息,并且在步骤712处,提示生成器将提示信息发送到非易失性存储器系统,并且主机系统将与该文件相关联的命令发送到非易失性存储器系统。
在一些实施方式中,提示生成器可在步骤714处确定主机系统已完成向在非易失性存储器系统中已存在的文件写入数据或从其读取数据。作为响应,在步骤716处,提示生成器向非易失性存储器系统发送终止提示信息。该终止提示信息向非易失性存储器系统指示主机系统已关闭该文件并将不再发送向该文件写入数据或从该文件读取数据、与该文件相关联的盘区的主机命令。另外,该终止提示信息可向非易失性存储器系统指示提示生成器在此时将不向非易失性存储器系统发送关于与该文件相关联的盘区的更多提示信息。
再次参见步骤706,当提示生成器相反地确定主机系统正在创建用于存储在非易失性存储器系统上的新文件时,在步骤718处,提示生成器识别关于将要创建的文件的特征。例如,该提示生成器可检查与该文件相关联的元数据或该文件的实际有效载荷数据中的至少一者,其将与主机命令发送以确定将与该文件相关联的逻辑块地址的序列、文件的文件类型、预计文件数据改变的频率如何的指示、新创建的文件是已存储在非易失性存储器系统中的文件的副本的指示和/或新创建的文件是已存储在非易失性存储器系统中的文件的副本的临时文件的指示。
在步骤720处,提示生成器基于所识别的特征生成提示信息,并且在步骤722处,提示生成器将提示信息发送到非易失性存储器系统,并且主机系统将主机命令发送到非易失性存储器系统。
在一些实施方式中,在向非易失性存储器系统发送提示信息和主机命令之后,在步骤724处,提示生成器向非易失性存储器系统发送终止提示信息。
应当理解,在步骤704处开始的上述方法对于在步骤702处识别的每个文件重复,直到处理所有文件并且步骤726处的程序结束。
在存在于主机系统上的提示生成器利用诸如上文结合图6和图7所述的方法向非易失性存储器系统发送提示信息之后,存储模块利用所接收的提示信息来有效地处理和/或存储与主机命令相关联的文件的数据。
图8是一种方法的一种实施方式的流程图,该方法用于使非易失性存储器系统接收和利用提示信息来将FTL表自适应地存储在主机设备的主机存储器缓冲区中以便优化读取来自非易失性存储器系统的数据的操作。
在步骤802处,非易失性存储器系统从存在于主机系统上的提示生成器接收提示信息,并在步骤804处,非易失性存储器系统接收与提示信息相关联的一个或多个主机命令。
如上文所讨论的,在一些实施方式中,非易失性存储器系统可通过直通API或从能够将命令直接发送到非易失性存储器系统的设备驱动器而接收结合主机命令的提示信息。在其他实施方式中,非易失性存储器系统可接收结合主机命令的提示信息,所述主机命令作为从主机系统接收的命令的一部分,诸如写入命令或读取命令。
在步骤806处,非易失性存储器系统的控制器的提示处理模块识别一个或多个文件的数据的一个或多个特征,主机设备将所述一个或多个文件已发送或将发送到非易失性存储器系统作为主机命令的一部分。如上文所述,提示信息可识别例如文件的数据是否将被频繁更新、与数据相关联的文件类型、与文件的数据相关联的逻辑块地址的序列、数据是否将替换已存储在存储模块中的文件的数据、数据是否将被添加到已存储在存储模块中的文件的数据、主机系统是否打算读取已存储在存储模块中的文件的数据,和/或提示生成器可识别的数据和/或文件的任何其他特征,非易失性存储器系统的控制器可利用所述特征在非易失性存储器系统中更有效地处理和/或存储数据。
在步骤808处,自适应HMB高速缓存模块识别与在所接收到的提示信息中识别的一个或多个文件相关联的一个或多个FTL表或一个或多个FTL表的一部分,主机设备可能正在从所述一个或多个文件中读取数据。已识别的FTL表将所述一个或多个文件的逻辑块地址的至少一部分映射到存储所述一个或多个文件的数据的物理块地址。
在一些实施方式中,非易失性存储器系统将FTL表划分成单独区域,其中每个区域是与一系列逻辑块地址对应的FTL表条目的连续组。HMB高速缓存模块可基于所接收的提示信息为每个区域分配优先级。例如,如果某区域与在提示信息中指示的文件的逻辑块地址相关联,则HMB高速缓存模块可为该区域分配高优先级,并且HMB高速缓存模块可识别FTL表的具有最高优先级的区域以用于存储在主机存储器缓冲区中。
在步骤810处,自适应HMB高速缓存模块从非易失性存储器系统的存储器检索所识别的FTL表或FTL表的部分。在步骤812处,自适应HMB高速缓存模块经由主机存储器缓冲区接口向主机设备发送FTL表或FTL表的部分以用于存储在主机存储器缓冲区中。如上所述,将FTL表或FTL表的部分置于针对主机设备将从其读取数据的所述一个或多个文件的主机存储器缓冲区中,用于改善读取操作。
例如,应当理解,一旦相关的FTL表存储在主机存储器缓冲区中,当从与FTL表相关联的文件执行读取操作时,主机设备可利用存储在主机存储器缓冲区中的FTL表将主机LBA转换为非易失性存储器系统中存储文件数据的物理地址。然后,主机设备可将读取命令发送到非易失性存储器系统,该非易失性存储器系统包括非易失性存储器系统中存储文件数据的相关物理地址。与常规的非易失性存储器系统相比,这改善了读取操作的性能,其中主机设备首先需要执行操作以利用存储在非易失性存储器中的FTL表,以便将主机LBA转换为非易失性存储器系统中的物理地址。
自适应HMB高速缓存模块继续检查提示信息并且存储针对主机设备将从其读取数据的文件的主机存储器缓冲区中FTL表的部分,直到在一些实施方式中,自适应HMB高速缓存模块和/或提示处理模块在步骤814处接收终止提示信息。
图1至图8示出了用于执行转换层表的自适应主机存储器缓冲区高速缓存的系统和方法。如上所述,位于主机系统上的提示生成器监测主机系统的动作并且识别主机系统将发送到与主机系统耦接的非易失性存储器系统的主机命令。
提示生成器基于主机系统将使用主机命令发送到非易失性存储器系统的元数据或有效载荷数据中的至少一者生成提示信息,并向非易失性存储器系统提供提示信息。使用提示信息,非易失性存储器系统能够识别与主机系统将可能从其读取数据的文件相关联的FTL表。该非易失性存储器系统然后能够在主机系统的主机存储器缓冲区中存储相关的FTL表以改善读取操作。
旨在将前述详细描述视为说明性的而非限制性的,并且应当理解,以下权利要求(包括所有等同物)旨在限定本发明的实质和范围。
例如,在本申请中,半导体存储器设备诸如本申请中描述的那些可包括易失性存储器设备诸如动态随机存取存储器(“DRAM”)或静态随机存取存储器(“SRAM”)设备,非易失性存储器设备诸如电可擦除可编程只读存储器(“EEPROM”)、闪存存储器(也可被认为是EEPROM的子集)、铁电随机存取存储器(“FRAM”)和磁阻随机存取存储器(“MRAM”),以及能够存储信息的其他半导体元件。每种类型的存储器设备可具有不同的配置。例如,闪存存储器设备可以NAND或NOR配置进行配置。
该存储器设备可由无源元件和/或有源元件以任何组合形成。以非限制性示例的方式,无源半导体存储器元件包括ReRAM设备元件,其在一些实施方案中包括电阻率切换存储元件诸如反熔丝、相变材料等,以及可选地包括导引元件诸如二极管等。进一步以非限制性示例的方式,有源半导体存储器元件包括EEPROM和闪存存储器设备元件,其在一些实施方案中包括具有电荷存储区域的元件,诸如浮栅、导电纳米粒子或电荷存储介电材料。
多个存储器元件可被配置为使得它们串联连接或者使得每个元件是单独可访问的。以非限制性示例的方式,NAND配置中的闪存存储器设备(NAND存储器)通常包含串联连接的存储器元件。NAND存储器阵列可被配置为使得该阵列由存储器的多个串构成,其中串由共享单个位线并作为组被访问的多个存储器元件构成。另选地,存储器元件可被配置为使得每个元件均为单独可访问的,例如,NOR存储器阵列。NAND和NOR存储器配置是示例性的,并且存储器元件可以其他方式配置。
位于基板内和/或上方的半导体存储器元件可被布置成两个或三个维度,诸如二维存储器结构或三维存储器结构。
在二维存储器结构中,半导体存储器元件被布置在单个平面或单个存储器设备级中。通常,在二维存储器结构中,存储器元件被布置在平面中(例如,在x-z方向平面中),所述平面基本上平行于支撑存储器元件的基板的主表面延伸。基板可以是存储器元件的层在其之上或之中形成的晶片,或者其可以是在存储器元件形成后附接到其的承载基板。作为非限制性示例,基板可包括半导体诸如硅。
存储器元件可被布置在处于有序阵列中(诸如在多个行和/或列中)的单个存储器设备级中。然而,存储器元件可以非常规或非正交配置排列。存储器元件可各自具有两个或更多个电极或接触线,诸如位线和字线。
三维存储器阵列被布置成使得存储器元件占据多个平面或多个存储器设备级,从而形成三个维度(即,在x方向、y方向和z方向上,其中y方向基本上垂直于基板的主表面,并且x方向和z方向基本上平行于基板的主表面)的结构。
作为一个非限制性示例,三维存储器结构可被垂直地布置为多个二维存储器设备级的堆叠。作为另一个非限制示例,三维存储器阵列可被布置为多个垂直列(例如,基本上垂直于基板的主表面延伸的列,即,在y方向上),其中在每一列中具有多个存储器元件。列可被布置成二维配置,例如,在x-z平面中,从而得到在多个垂直堆叠的存储器平面上具有元件的存储器元件的三维布置。三个维度的存储器元件的其他配置也可构成三维存储器阵列。
以非限制性示例的方式,在三维NAND存储器阵列中,存储器元件可耦接在一起以在单个水平(例如,x-z)存储器设备级内形成NAND串。另选地,存储器元件可耦接在一起以形成横贯多个水平存储器设备级的垂直NAND串。可设想其他三维配置,其中一些NAND串包含单个存储器级中的存储器元件,而其他串则包含跨越多个存储器级的存储器元件。三维存储器阵列也可被设计成处于NOR配置中以及处于ReRAM配置中。
通常,在单片三维存储器阵列中,一个或多个存储器设备级在单个基板上方形成。任选地,单片三维存储器阵列还可具有至少部分地在单个基板内的一个或多个存储器层。作为非限制性示例,基板可包括半导体诸如硅。在单片三维阵列中,构成阵列的每个存储器设备级的层通常形成在阵列的底层存储器设备级的层上。然而,单片三维存储器阵列的相邻存储器设备级的层可被共享或具有在存储器设备级之间的居间层。
然后,可单独形成二维阵列,然后封装在一起以形成具有多个存储器层的非单片存储器设备。例如,非单片的堆叠存储器可通过在单独的基板上形成存储器级并然后将存储器级堆叠在彼此之上而构造。可在堆叠前将基板减薄或从存储器设备级移除,但由于存储器设备级在单独基板上初始形成,因此所得的存储器阵列不是单片的三维存储器阵列。此外,多个二维存储器阵列或三维存储器阵列(单片或非单片)可在单独的芯片上形成,然后封装在一起以形成堆叠的芯片存储器设备。
通常需要相关联的电路来操作存储器元件并与存储器元件通信。作为非限制性示例,存储器设备可具有用于控制并驱动存储器元件以实现诸如编程和读取的功能的电路。该相关联的电路可与存储器元件位于同一基板上和/或位于单独的基板上。例如,用于存储器读取-写入操作的控制器可位于单独的控制器芯片上和/或位于与存储器元件相同的基板上。
本领域的技术人员将认识到,本发明不限于所述的二维和三维示例性结构,但涵盖如本文所述的并且如本领域的技术人员所理解的本发明的实质和范围内的所有相关存储器结构。
Claims (18)
1.一种方法,包括:
结合接收来自主机系统的第一主机命令,在非易失性存储器系统处接收来自所述主机系统的提示信息,所述提示信息识别存储在所述非易失性存储器系统处的所述主机系统将从其读取数据的文件;
识别与在所述提示信息中识别的所述文件的数据相关联的一个或多个转换层表(FTL表),所述一个或多个FTL表将与所述文件相关联的逻辑块地址的至少一部分映射到存储所述文件的数据的所述非易失性存储器系统处的物理块地址;
经由主机存储器缓冲区接口将所述一个或多个FTL表发送到所述主机系统以用于存储在所述主机系统处的主机存储器缓冲区中;
以及
接收来自所述主机系统的第二主机命令,所述第二主机命令包括用于读取来自存储所述文件的数据的所述非易失性存储器系统处的一个或多个物理块地址的数据的指令。
2.根据权利要求1所述的方法,其中来自所述主机系统的识别所述文件的所述信息存储在所述第一主机命令的有效载荷数据中。
3.根据权利要求1所述的方法,其中来自所述主机系统的识别所述文件的所述信息存储在与所述第一主机命令相关联的元数据中。
4.根据权利要求1所述的方法,其中来自所述主机系统的识别所述文件的所述信息是在所述非易失性存储器系统接收所述第一主机命令之前接收的。
5.根据权利要求1所述的方法,还包括:
在所述主机系统处经由所述主机存储器缓冲区接口接收所述一个或多个FTL表;
将所述一个或多个FTL表存储在所述主机系统的所述主机存储器缓冲区中;
访问所述主机存储器缓冲区中的所述一个或多个FTL表,以将与所述文件相关联的逻辑块地址转换为存储所述文件的数据的所述非易失性存储器系统处的物理块地址;以及
将所述第二主机命令发送到所述非易失性存储器系统。
6.一种非易失性存储器系统,包括:
非易失性存储器;
主机存储器缓冲区接口;和
控制器,所述控制器与所述非易失性存储器和所述主机存储器缓冲区接口通信,所述控制器被配置为:
接收来自主机系统的信息,所述信息识别存储在所述非易失性存储器中的所述主机系统将从其读取数据的文件;
识别存储在所述非易失性存储器中的转换层表(FTL表)的部分,所述转换层表的部分与在所述信息中识别的所述文件的数据相关联;
经由所述主机存储器缓冲区接口将所述FTL表的部分发送到所述主机系统以用于存储在所述主机系统的主机存储器缓冲区中;以及
接收来自所述主机系统的主机命令,所述主机命令包括用于读取来自存储所述文件的数据的所述非易失性存储器系统处的一个或多个物理块地址的数据的指令。
7.根据权利要求6所述的非易失性存储器系统,其中所述FTL表的部分将与所述文件相关联的逻辑块地址映射到存储所述文件的数据的所述非易失性存储器的物理块地址。
8.根据权利要求6所述的非易失性存储器系统,其中来自所述主机系统的识别所述文件的所述信息存储在主机命令的有效载荷数据中。
9.根据权利要求6所述的非易失性存储器系统,其中来自所述主机系统的识别所述文件的所述信息存储在从所述主机系统接收的元数据中。
10.一种方法,包括:
在主机系统的处理器中执行:
确定所述主机系统是否已启动将命令发送到非易失性存储器系统的程序;
分析与所述命令相关联的元数据或有效载荷数据中的至少一者,以确定所述处理器是否能够生成与所述元数据或所述有效载荷数据中的至少一者相关联的提示信息;
基于对所述元数据或所述有效载荷数据中的至少一者的分析来生成提示信息,所述提示信息指示存储在所述非易失性存储器系统处的所述主机系统将从其读取数据的文件;
将所述提示信息发送到所述非易失性存储器系统;
在发送所述提示信息之后,从所述非易失性存储器系统接收转换层表(FTL表),所述FTL表将与所述文件相关联的逻辑块地址映射到存储所述文件的数据的所述非易失性存储器系统的物理块地址;以及
将所述FTL表存储在所述主机系统的主机存储器缓冲区中。
11.根据权利要求10所述的方法,还包括:
访问所述主机存储器缓冲区中的所述FTL表,以获得存储所述文件的数据的所述非易失性存储器系统的所述物理块地址的至少一部分;以及
将主机命令发送到所述非易失性存储器系统,所述主机命令包括用于读取来自存储所述文件的数据的所述非易失性存储器系统的一个或多个物理块地址的数据的指令。
12.根据权利要求10所述的方法,其中所述提示信息包括对所述非易失性存储器系统的关于逻辑块地址的序列的指示,所述逻辑块地址的序列与所述主机系统随后将发送到所述非易失性存储器系统的读取命令相关联。
13.根据权利要求10所述的方法,其中将所述提示信息发送到所述非易失性存储器系统包括将所述提示信息发送到所述非易失性存储器系统作为将主机命令发送到所述非易失性存储器系统的一部分。
14.根据权利要求13所述的方法,其中所述提示信息存储在所述主机命令的有效载荷数据中。
15.根据权利要求10所述的方法,其中在所述处理器上运行的不是所述主机系统的操作系统的一部分的应用程序确定所述主机系统是否已启动将所述命令发送到所述非易失性存储器系统的所述程序。
16.一种非易失性存储器系统,包括:
非易失性存储器;
主机存储器缓冲区接口;
用于接收来自主机系统的信息的装置,所述信息识别存储在所述非易失性存储器中的所述主机系统将从其读取数据的文件;
用于识别存储在所述非易失性存储器中的转换层表(FTL表)的一部分的装置,所述部分与在所述信息中识别的所述文件的数据相关联;
用于经由所述主机存储器缓冲区接口将所述FTL表的所述部分发送到所述主机系统以用于存储在所述主机系统处的主机存储器缓冲区中的装置;和
用于接收来自所述主机系统的主机命令的装置,所述主机命令包括用于读取来自存储所述文件的数据的所述非易失性存储器系统处的一个或多个物理块地址的数据的指令。
17.根据权利要求16所述的非易失性存储器系统,其中所述FTL表的所述部分将与所述文件相关联的逻辑块地址映射到存储所述文件的数据的所述非易失性存储器的物理块地址。
18.根据权利要求16所述的非易失性存储器系统,其中所述信息包括对所述非易失性存储器系统的关于逻辑块地址的序列的指示,所述逻辑块地址的序列与所述主机系统随后将发送到所述非易失性存储器系统的读取命令相关联。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/168,876 | 2016-05-31 | ||
US15/168,876 US10007433B2 (en) | 2015-01-21 | 2016-05-31 | Systems and methods for performing adaptive host memory buffer caching of transition layer tables |
PCT/US2017/019122 WO2017209813A1 (en) | 2016-05-31 | 2017-02-23 | Systems and methods for performing adaptive host memory buffer caching of transition layer tables |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109074318A true CN109074318A (zh) | 2018-12-21 |
CN109074318B CN109074318B (zh) | 2023-07-04 |
Family
ID=58231758
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780026088.6A Active CN109074318B (zh) | 2016-05-31 | 2017-02-23 | 用于执行转换层表的自适应主机存储器缓冲区高速缓存的系统和方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN109074318B (zh) |
WO (1) | WO2017209813A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112445718A (zh) * | 2019-08-28 | 2021-03-05 | 美光科技公司 | 大文件完整性技术 |
CN113961142A (zh) * | 2020-07-20 | 2022-01-21 | 美光科技公司 | 包含各种时延和容量的存储器装置的存储器子系统 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI668569B (zh) * | 2018-03-14 | 2019-08-11 | 群聯電子股份有限公司 | 主機記憶體緩衝區配置方法、記憶體儲存裝置與記憶體控制電路單元 |
CN110297595B (zh) * | 2018-03-21 | 2022-11-22 | 群联电子股份有限公司 | 主机存储器缓冲区配置方法、储存装置与控制电路单元 |
KR20200088635A (ko) * | 2019-01-15 | 2020-07-23 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
KR20200143871A (ko) | 2019-06-17 | 2020-12-28 | 삼성전자주식회사 | 스토리지를 포함하는 전자 장치 및 그의 스토리지 이용 방법 |
US10860228B1 (en) * | 2019-06-24 | 2020-12-08 | Western Digital Technologies, Inc. | Method to switch between traditional SSD and open-channel SSD without data loss |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110082967A1 (en) * | 2009-10-05 | 2011-04-07 | Deshkar Shekhar S | Data Caching In Non-Volatile Memory |
US20140289492A1 (en) * | 2013-03-19 | 2014-09-25 | Samsung Electronics Co., Ltd. | Method and an apparatus for analyzing data to facilitate data allocation in a storage device |
US20140337560A1 (en) * | 2013-05-13 | 2014-11-13 | Qualcomm Incorporated | System and Method for High Performance and Low Cost Flash Translation Layer |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8775742B2 (en) * | 2010-08-25 | 2014-07-08 | Lsi Corporation | System and method for cache management in a DIF enabled storage system |
US8417914B2 (en) * | 2011-01-06 | 2013-04-09 | Micron Technology, Inc. | Memory address translation |
-
2017
- 2017-02-23 CN CN201780026088.6A patent/CN109074318B/zh active Active
- 2017-02-23 WO PCT/US2017/019122 patent/WO2017209813A1/en active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110082967A1 (en) * | 2009-10-05 | 2011-04-07 | Deshkar Shekhar S | Data Caching In Non-Volatile Memory |
CN102576333A (zh) * | 2009-10-05 | 2012-07-11 | 马维尔国际贸易有限公司 | 非易失性存储器中的数据高速缓存 |
US20140289492A1 (en) * | 2013-03-19 | 2014-09-25 | Samsung Electronics Co., Ltd. | Method and an apparatus for analyzing data to facilitate data allocation in a storage device |
US20140337560A1 (en) * | 2013-05-13 | 2014-11-13 | Qualcomm Incorporated | System and Method for High Performance and Low Cost Flash Translation Layer |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112445718A (zh) * | 2019-08-28 | 2021-03-05 | 美光科技公司 | 大文件完整性技术 |
CN113961142A (zh) * | 2020-07-20 | 2022-01-21 | 美光科技公司 | 包含各种时延和容量的存储器装置的存储器子系统 |
CN113961142B (zh) * | 2020-07-20 | 2024-05-17 | 美光科技公司 | 包含各种时延和容量的存储器装置的存储器子系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109074318B (zh) | 2023-07-04 |
WO2017209813A1 (en) | 2017-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10275170B2 (en) | Folding operations in memory systems with single address updates | |
US10459636B2 (en) | System and method for managing data in non-volatile memory systems having multiple mapping layers | |
US10102119B2 (en) | Garbage collection based on queued and/or selected write commands | |
US10037167B2 (en) | Multiple scheduling schemes for handling read requests | |
CN107111456B (zh) | 用于生成与主机命令相关联的提示信息的系统和方法 | |
KR101619569B1 (ko) | 온-칩 폴딩을 위한 데이터 전송 | |
CN109074318A (zh) | 用于执行转换层表的自适应主机存储器缓冲区高速缓存的系统和方法 | |
US9870153B2 (en) | Non-volatile memory systems utilizing storage address tables | |
US20160274797A1 (en) | Systems and methods for performing adaptive host memory buffer caching of transition layer tables | |
US9436615B2 (en) | Optimistic data read | |
CN110088739B (zh) | 用于精简配置的存储系统和方法 | |
EP2565792A1 (en) | Block management schemes in hybrid SLC/MLC memory | |
US10713157B2 (en) | Storage system and method for improving read performance using multiple copies of a logical-to-physical address table | |
US20220155999A1 (en) | Storage System and Dual-Write Programming Method with Reverse Order for Secondary Block | |
US11262928B2 (en) | Storage system and method for enabling partial defragmentation prior to reading in burst mode | |
US9678684B2 (en) | Systems and methods for performing an adaptive sustain write in a memory system | |
US8972650B2 (en) | Methods and systems for performing efficient page reads in a non-volatile memory | |
US20200159443A1 (en) | Storage System and Method for Optimal Resource Allocation Using Stream Directive | |
US11748027B2 (en) | Storage system and method for avoiding clustering of reads during a program suspend | |
US11573893B2 (en) | Storage system and method for validation of hints prior to garbage collection | |
US20240143227A1 (en) | Data Storage Device and Method for Reducing Flush Latency | |
US20240143509A1 (en) | Data Storage Device and Method for Handling Write Commands in Zoned Storage | |
US11960758B2 (en) | Storage system and folding method for enhanced performance | |
US11599298B1 (en) | Storage system and method for prediction-based pre-erase of blocks to improve sequential performance | |
US11487450B1 (en) | Storage system and method for dynamic allocation of control blocks for improving host write and read |
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 |