CN111352864A - 快闪存储器持久性高速缓存技术 - Google Patents
快闪存储器持久性高速缓存技术 Download PDFInfo
- Publication number
- CN111352864A CN111352864A CN201911330736.4A CN201911330736A CN111352864A CN 111352864 A CN111352864 A CN 111352864A CN 201911330736 A CN201911330736 A CN 201911330736A CN 111352864 A CN111352864 A CN 111352864A
- Authority
- CN
- China
- Prior art keywords
- memory
- cache
- logical block
- host
- block 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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
-
- 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/7209—Validity control, e.g. using flags, time stamps or sequence numbers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请案涉及快闪存储器持久性高速缓存技术。本文中公开装置和技术,所述装置和技术用于除了第一高速缓存之外还实施在存储器系统中耦合到主机的第二持久性高速缓存。所述存储器系统可包含快闪存储器。在某些实例中,所述第一高速缓存和所述第二高速缓存配置成存储映射信息。在一些实例中,通过所述主机使用提供到所述存储器系统的存储器请求的持久性旗标来确定所述第二持久性高速缓存的所述映射信息。
Description
技术领域
本申请案涉及存储器装置。
背景技术
存储器装置通常提供为计算机或其它电子装置中的内部半导体集成电路。存在许多 不同类型的存储器,包含易失性和非易失性存储器。易失性存储器可能需要电力来维持数据且包含随机存取存储器(random-access memory;RAM)、动态随机存取存储器(dynamic random-access memory;DRAM)和同步动态随机存取存储器(synchronousdynamic random-access memory;SDRAM)等等。非易失性存储器可通过当未被供电时保 留所存储的数据而提供持久性数据,且可包含NAND快闪存储器、NOR快闪存储器、 只读存储器(read only memory;ROM)、电可擦除可编程ROM(Electrically Erasable ProgrammableROM;EEPROM)、可擦除可编程ROM(Erasable Programmable ROM; EPROM)和电阻可变存储器,如相变随机存取存储器(phase change random access memory;PCRAM)、电阻性随机存取存储器(resistive random-access memory;RRAM)和 磁阻随机存取存储器(magnetoresistive random access memory;MRAM)、3D XPointTM存 储器等等。
存储器单元通常布置成矩阵或阵列。多个矩阵或阵列可组合到存储器装置中,且多 个装置可组合以形成存储器系统的存储容量,如固态驱动器(solid-state drive;SSD)、通 用快闪存储(UFSTM)装置、MultiMediaCard(MMC)固态存储装置、嵌入式MMC装置(eMMCTM)等。
存储器系统可包含一或多个处理器或其它存储器控制器,其执行逻辑函数以操作所 述存储器装置或与外部系统介接。存储器矩阵或阵列可包含组织成数个物理页的数个存 储器单元块。存储器系统可从与存储器操作相关联的主机接收命令或执行一或多个其它 存储器操作,所述存储器操作如在存储器装置与主机之间传送数据(例如,用户数据和相 关联的完整性数据,如错误数据和地址数据等)的读取或写入操作、从存储器装置擦除数 据的擦除操作。
利用存储器作为用于多种多样的电子应用的易失性和非易失性数据存储装置,所述 电子应用包含例如个人计算机、携带型存储棒、数码相机、蜂窝电话、携带型音乐播放器(如MP3播放器)、电影播放器和其它电子装置。存储器单元可布置成阵列,其中阵列 用于存储器装置。
许多电子装置包含若干主要组件:主机处理器(例如,中央处理单元(centralprocessing unit;CPU)或其它主处理器);主存储器(例如,一或多个易失性或非易失性存储器装置,如动态RAM(DRAM)、移动或低功率双倍数据速率同步DRAM (double-data-ratesynchronous DRAM;DDR SDRAM)等);以及存储装置(例如,非易失性 存储器(non-volatilememory;NVM)装置,如快闪存储器、只读存储器(ROM)、SSD、 MMC或其它存储卡结构或组合件,或易失性和非易失性存储器的组合等)。在某些实例 中,电子装置可包含用户接口(例如,显示器、触摸屏、键盘、一或多个按钮等)、图形 处理单元(graphics processing unit;GPU)、电力管理电路、基带处理器或一或多个收发 器电路等。
发明内容
在一个方面中,本申请案涉及一种方法,其包括:将存储器系统的映射表的第一部分维持在存储器系统的第一高速缓存中;在存储器系统处从主机接收第一写入请求, 第一写入请求包含主机的第一逻辑块地址、第一写入信息和第一状态中的持久性旗标; 将第一写入信息保存到存储器系统的快闪存储器;响应于持久性旗标的第一状态而将第 一映射信息保存到存储器系统的第二持久性高速缓存,第一映射信息包含第一逻辑块地 址,其中第二持久性高速缓存是持久性高速缓存;从主机接收第二写入请求,第二写入 请求包含主机的第二逻辑块地址、第二写入信息和第二状态中的持久性旗标;将第二写 入信息保存到存储器系统的快闪存储器;以及响应于持久性旗标的第二状态而将第二映 射信息保存到存储器系统的第一高速缓存,第二映射信息包含第二逻辑块地址。
在另一方面中,本申请案涉及一种存储器装置,其包括:第一高速缓存,其配置 成保持存储器装置的映射表的一部分;第二高速缓存,其配置成保持存储器装置的持久 性映射信息,其中经由从主机接收到的写入请求的持久性旗标来指示持久性映射信息; 快闪存储器,其配置成存储和检索主机的用户数据,且存储存储器装置的映射表;以及 控制器,其配置成:将存储器系统的映射表的第一部分维持在存储器系统的第一高速缓 存中;从主机接收第一写入请求,第一写入请求包含主机的第一逻辑块地址、第一写入 信息的大小和第一状态中的持久性旗标;将第一写入信息保存到存储器系统的快闪存储 器;响应于持久性旗标的第一状态而将第一映射信息保存到存储器系统的第二高速缓存, 第一映射信息包含第一逻辑块地址;从主机接收第二写入请求,第二写入请求包含主机 的第二逻辑块地址、第二写入信息的大小和第二状态中的持久性旗标;将第二写入信息 保存到存储器系统的快闪存储器;以及响应于持久性旗标的第二状态而将第二映射信息 保存到存储器系统的第一高速缓存,第二映射信息包含第二逻辑块地址。
附图说明
在不一定按比例绘制的图式中,相似标号可在不同视图中描述相类似组件。具有不 同字母后缀的相似标号可表示类似组件的不同情况。图式借助于实例而非限制性地总体 上说明本文件中所论述的各种实施例。
图1说明包含可在其上实施本发明主题的一或多个实例的存储器装置的环境的实例 系统。
图2总体上说明用于在具有持久性高速缓存的快闪存储器系统处实施存储器操作的 实例方法的流程图。
图3说明可在其上进行本文中论述的任何一或多种技术(例如,方法)的实例机器的 框图。
具体实施方式
基于存储装置的快闪存储器(如NAND存储器)可使用快闪转换层(FlashTranslation Layer;FTL)来将I/O请求的逻辑地址(通常称作逻辑块地址(logical blockaddress;LBA)) 转换成存储于一或多个FTL映射表中的对应快闪存储器地址。LBA可以是主机用来管 理数据的逻辑地址。移动存储装置通常具有高速缓存但通常不具有存储整个映射表的存 储器。因此,可按需求从快闪存储器检索一或多个映射表的部分。然而,快闪存储器总 体上比适合于高速缓存存储器的选择方案慢得多,因此,检索映射表的部分可造成随机 读取性能下降。
图1说明包含配置成经由通信接口进行通信的主机105和存储器装置110的环境100 的实例。主机105或存储器装置110可包含于多种产品150中,如用以支持产品150的 处理、通信或控制的IoT装置(例如,制冷机或其它电器、传感器、马达或致动器、移动 通信装置、汽车、移动电话、无人机等)。
存储器装置110包含存储器控制器115和存储器阵列120,包含例如一或多个单独存储器裸片(例如,三维(three-dimensional;3D)NAND裸片的堆叠)。在3D架构半导体 存储器技术中,竖直结构堆叠于多个层次中,且耦合以形成物理页,从而增大给定占据 面积(即外观尺寸)中的存储器装置(例如,存储装置)的存储密度。在一实例中,存储器装 置110可以是离散存储器装置。在某些实例中,一或多个存储器阵列120可包含整个FTL 映射表160的完整复本。
可使用一或多个通信接口111在存储器装置110与主机105的一或多个其它组件之间传送数据,如串行高级技术附件(Serial Advanced Technology Attachment;SATA)接口、 外围组件互连高速(Peripheral Component Interconnect Express;PCIe)接口、通用串行总 线(Universal Serial Bus;USB)接口、UFS接口、eMMCTM接口或一或多个其它连接器或 接口。主机105可包含主机系统、电子装置、处理器、存储卡读卡器或在存储器装置110外部的一或多个其它电子装置。在一些实例中,主机105可以是具有参考图3的机器300 论述的组件的某一部分或全部的机器。数据可经由输入/输出(input/output;I/O)总线在存储器装置110与其它组件之间传送,所述输入/输出总线可包含在传送数据时(例如,在 从存储器阵列读取或写入到存储器阵列之前)用于暂时地存储数据的一或多个锁存器。
存储器控制器115可从主机105接收指令,且可与存储器阵列通信,以便将数据传送到存储器阵列的存储器单元、平面、子块、块或页面中的一或多个(例如,写入或擦除) 或传送来自前述各项的数据(例如,读取)。存储器控制器115尤其可包含电路系统或固 件,包含一或多个组件或集成电路。举例来说,存储器控制器115可包含配置成控制存 储器阵列120上的存取且在主机105与存储器装置110之间提供转换层的一或多个存储 器控制单元、电路、控制电路或组件。存储器控制器115可包含用以将数据传送到存储 器阵列120或传送来自存储器阵列的数据的一或多个I/O电路(和对应锁存器)、高速缓 存、线或接口。存储器控制器115可包含存储器管理器125和阵列控制器135。
阵列控制器135可尤其包含配置成控制存储器操作的电路系统或组件,所述存储器 操作与将数据写入到耦合到存储器控制器115的存储器装置110的一或多个存储器单元、从所述一或多个存储器单元读取数据或对所述一或多个存储器单元进行擦除相关 联。存储器操作可基于例如从主机105接收到或由存储器管理器125内部地产生的主机 命令(例如,与耗损均衡、错误检测或校正等相关联)。
阵列控制器135可包含错误校正码(error correction code;ECC)组件140,其可尤其 包含配置成检测或校正与将数据写入到耦合到存储器控制器115的存储器装置110的一 或多个存储器单元或从所述一或多个存储器单元读取数据相关联的错误的ECC引擎或其它电路系统。ECC组件140例如可检测或计算与进行数个存储器操作相关联的误码率(bit-error-rate;BER)。BER可对应于I/O总线的锁存器中出现的位错误、存储器控制器115的内部错误、NAND阵列中的一或多个或存储器装置110的一或多个多层级单元 (multi-level cell;MLC)中的任何一或多个中出现的错误。存储器控制器115可配置成有 效地检测错误且从与各种操作或数据存储相关联的错误出现(例如,位错误、操作错误、 崩溃调节、停止、挂机等)恢复,同时维持在主机105与存储器装置110之间传送的数据 的完整性,或维持所存储数据的完整性(例如,使用冗余RAID存储等),且可去除(例如, 引退)发生故障的存储器资源(例如,存储器单元、存储器阵列、页、块等)以防止未来错 误。阵列控制器135可将检测到的BER信息发射到存储器管理器125以用于存储和追 踪。存储器控制器115可包含追踪从主机接收到的存储器命令的命令队列(未展示)。队 列中的命令可以先进先出(a first-in first-out;FIFO)方式、堆叠方式、失序地、根据优先 权或以任何其它适合的次序由存储器控制器115执行。
在某些实例中,存储器装置110可包含与存储器阵列120相关联的一或多个高速缓存161、162。在某些实例中,高速缓存161、162可包含存储FTL表160的一部分的第 一高速缓存161。在某些实例中,来自主机的存储器请求可包含主机存储器系统的逻辑 块地址,在一定时间间隔以后经由主机存储器请求在存储器装置110中相较于其它组的 逻辑块地址可更频繁地存取所述逻辑块地址。如果存储于第一高速缓存161内的FTL表 160的部分包含与来自主机的存储器请求中包含的对应信息匹配的逻辑块地址,那么存 储器装置的快闪存储器的数据区相较于在对快闪存储器阵列120的FTL表160进行存取 以发现匹配信息的情况下可更快得多地进行存取。
在某些实例中,存储器装置可包含第二高速缓存,也称为持久性高速缓存162。持久性高速缓存162可包含特定FTL映射信息。在某些实例中,存储于持久性高速缓存 162中的FTL映射信息可包含在给定时间间隔中或例如在主机和存储器装置的整个操作 间隔中预期比其它映射信息更频繁地存取的映射信息。在某些实例中,存储于持久性高 速缓存162中的FTL信息可映射到主机的基本操作系统数据且可防止第一高速缓存161 的间歇性再加载。
举例来说,在具有单个高速缓存的常规存储器装置中,如果单个高速缓存包含用于 一系列逻辑块地址的第一FTL信息,那么主机目前在已知相对常常出现的中断的情况下工作且主机接收所述中断,常规系统存取快闪存储器以对单个高速缓存覆写为中断服务所需要的第二FTL信息。在为中断服务完成后,常规系统存取快闪存储器以为单个高速 缓存再加载第一FTL信息以继续在中断之前进行中的操作。相较于使用已在单个高速缓 存中的信息,快闪存储器的每次存取相对缓慢。
本发明人已认识到第二持久性高速缓存162可消除包含上文所描述的那些和除了上 文所描述的那些之外的一些存储器阵列存取。在某些实例中,主机可控制持久性高速缓存的至少一些操作。在某些实例中,在主机的互斥控制下的操作中的一些可包含指定待 存储于持久性高速缓存中的特定快闪转换信息以及控制持久性高速缓存的所存储快闪 转换信息的擦除或替换。在某些实例中,持久性高速缓存可以是易失性的,因此,主机 的互斥控制操作并不包含在存储器装置的断电事件期间、在存储器装置的通电事件期间 和在断电事件与紧接着的通电事件之间将信息存留在持久性高速缓存内。一般来说,每 个高速缓存160、161可包含具有存取时间的一种类型的存储器,所述存取时间小于存 储器装置的快闪存储器的存取时间。
在某些实例中,持久性高速缓存的存取时间小于存储器装置的快闪存储器的存取时 间的80%。在某些实例中,持久性高速缓存的存取时间小于存储器装置的快闪存储器的存取时间的60%。在某些实例中,持久性高速缓存的存取时间小于存储器装置的快闪存 储器的存取时间的40%。在某些实例中,持久性高速缓存的存取时间小于存储器装置的 快闪存储器的存取时间的10%。在某些实例中,持久性高速缓存的存取时间小于存储器 装置的快闪存储器的存取时间的2%。
存储器管理器125可尤其包含电路系统或固件,如与各种存储器管理功能相关联的 数个组件或集成电路。出于本描述的目的,将在NAND存储器的上下文中描述实例存储器操作和管理功能。所属领域的技术人员将认识到,其它形式的非易失性存储器可具有 类似的存储器操作或管理功能。此类NAND管理功能包含耗损均衡(例如,无用单元收 集或回收)、错误检测(例如,BER监控)或校正、块引退或一或多个其它存储器管理功能。 存储器管理器125可将主机命令(例如,从主机接收到的命令)剖析或格式化为装置命令 (例如,与存储器阵列的操作相关联的命令等),或产生用于阵列控制器135或存储器装 置110的一或多个其它组件的装置命令(例如,以实现各种存储器管理功能)。
存储器管理器125可包含管理表130的集合,所述管理表配置成维持与存储器装置110的一或多个组件相关联的各种信息(例如,与耦合到存储器控制器115且可包含FTL 表的存储器阵列或一或多个存储器单元相关联的各种信息)。举例来说,管理表130可包 含关于耦合到存储器控制器115的一或多个存储器单元块的块使用期(block age)、块擦 除计数、错误历史、错误参数信息、主机重置逾时值、存储器操作命令时延或一或多个 错误计数(例如,写入操作错误计数、读取位错误计数、读取操作错误计数、擦除错误计 数等)的信息。在某些实例中,如果针对错误计数中的一或多个(例如,错误参数)检测到 的错误的数目高于阈值(例如,可允许的错误阈值),那么所述位错误可称为不可校正位 错误。管理表130尤其可维持可校正或不可校正位错误的计数。
存储器阵列120可包含布置于例如数个装置、平面、子块、块或页中的多个存储器单元。作为一个实例,48GB TLC NAND存储器装置可包含每页18,592字节的数据 (16,384+2208字节)、每块1536页、每平面548个块和每装置4个或更多个平面。作为 另一实例,32GBMLC存储器装置(每单元存储两个数据位(即,4个可编程状态))可包 含每页18,592字节(B)的数据(16,384+2208字节)、每块1024页、每平面548个块和每 装置4个平面,但与对应TLC存储器装置相比所需的写入时间为一半且编程/擦除 (program/erase;P/E)循环为两倍。其它实例可包含其它数目或布置。在一些实例中,存 储器装置或其部分可在SLC模式中或在所需MLC模式(如TLC、QLC等)中选择性操作。
在操作中,数据通常以页写入到存储器装置110或从所述存储器装置读取,且以块擦除。然而,可视需要对更大或更小组的存储器单元进行一或多个存储器操作(例如,读取、写入、擦除等)。存储器装置110的数据传送大小通常称作页;而主机的数据传送大 小通常称作扇区。
不同类型的存储器单元或存储器阵列120可提供不同页大小,或可需要与其相关联 的不同量的元数据。举例来说,不同存储器装置类型可具有不同位错误率,其可导致必需要不同量的元数据来确保数据页的完整性(例如,具有较高位错误率的存储器装置可需要比具有较低位错误率的存储器装置更多字节的错误校正码数据)。作为一实例,MLC NAND快闪装置可具有比对应单层级单元(single-level cell;SLC)NAND快闪装置更高 的位错误率。如此,MLC装置可需要比对应SLC装置更多的用于错误数据的元数据字 节。在某些实例中,存储器控制器或存储器管理器可进行内部操作以最佳化快闪存储器 的性能、操作或长久性。此类内部操作可包含但不限于无用单元数据收集和耗损均衡, 且可移动先前已映射的数据。考虑到存储器装置的内部操作,存储器控制器或存储器管 理器可修改第一高速缓存或持久性高速缓存的FTL信息以更新映射信息和保持映射信 息准确。
图2总体上说明用于在具有持久性高速缓存的快闪存储器系统处实施存储器操作的 实例方法200的流程图。在201处,方法可包含将存储器系统的映射表的第一部分维持在存储器系统的第一高速缓存中。如上文所论述,快闪存储器总体上比一些其它形式的 存储器更慢,但从主机接收到的每个存储器命令总体上被解析以发现或指派对应于主机 的逻辑块地址的存储器系统的物理地址,其中逻辑块地址通常包含在存储器命令中。存 储器装置可包含快速存储器或高速缓存存储器,以促进将逻辑块地址转换成用于映射表 的物理地址且存储映射表的至少一部分,使得存储器请求相较于存取快闪存储器以检索 映射信息(除了存取快闪存储器以处置存储器请求数据之外)有可能更快地被服务。仅映 射表的一部分通常存储于第一高速缓存中,这是因为额外快速存储器空间将牺牲存储器 装置的非易失性存储器容量。如此,当存储器请求的逻辑块地址未见于映射表的当前高 速缓存的部分中时,映射表的不同部分常常写入第一高速缓存。
在203处,存储器装置可从主机接收第一写入请求。第一写入请求可包含主机系统的第一逻辑块地址、第一写入信息和第一状态中的持久性旗标。在某些实例中,持久性 旗标的第一状态指示用于第一写入信息的映射数据应保存到第二持久性高速缓存。在 205处,第一写入信息保存到存储器系统的快闪存储器。在207处,第一映射信息响应 于持久性旗标的第一状态而保存到存储器系统的第二高速缓存。在某些实例中,第一映 射信息可包含与第一写入命令一起接收的第一逻辑块地址。在某些实例中,除了将第一 映射信息保存到持久性第二高速缓存之外,第一映射信息可保存到映射表。
在209处,可在存储器系统处接收来自主机的第二写入请求。第二写入请求可包含主机系统的第二逻辑块地址、第二写入信息和第二状态下的写入命令的持久性旗标。在 某些实例中,持久性旗标的第二状态指示用于第一写入信息的映射数据可保存到第一高 速缓存或直接保存到快闪存储器映射表。在211处,第二写入信息可保存到存储器系统 的快闪存储器。在213处,第二映射信息可响应于旗标的第二状态而保存到映射表。在 某些实例中,第二映射信息可包含第二逻辑块地址。
第二持久性高速缓存可允许包含主机和存储器系统的整个系统的更有效操作。第二 高速缓存可由主机使用来存储与主机将相对常常存取的数据相关联的映射信息,为了清 楚起见,此类数据在本文中称为“常用(high-use)”数据。如果存储器系统包含单个未划分高速缓存,那么高速缓存中的映射表的部分在主机存取“常用”数据时很大概率将不 包含用于“常用”数据的映射信息。当高速缓存中的映射表的部分并不包含与主机存储 器请求相关联的映射信息时,存储器系统可存取较慢快闪存储器以检索对应于主机存储 器请求的映射表的部分。此类快闪存储器存取在时间方面具有大量成本。具有根据本发 明主题的第二高速缓存可消除一些对快闪存储器的存取,如当用于“常用”数据的映射 信息存储于存储器系统的第二持久性高速缓存中时。
在某些实例中,存储器系统的第一高速缓存与存储器系统的第二高速缓存之间的差 异是当擦除或覆写每个高速缓存中的映射信息时的所配置控制。关于第一高速缓存,存储器系统或存储器系统的存储器控制器或存储器管理器可启动擦除和覆写第一高速缓 存的映射信息。关于第二持久性高速缓存,存储器系统或存储器系统的存储器控制器或 存储器管理器响应于来自主机的命令而擦除或覆写映射信息。在某些实例中,存储器系 统的存储器控制器或存储器管理器可更新持久性高速缓存的映射信息以适应内部操作, 如无用单元数据收集和耗损均衡。
在某些实例中,主机可配置持久性高速缓存的大小。为支持此类操作,存储器系统可从主机接收查询且响应于所述查询。此类查询可包含第一高速缓存以及持久性高速缓存两者的总高速缓存大小、持久性高速缓存的总大小、持久性高速缓存中可用的未使用 空间的大小。在某些实例中,如通用快闪存储(Universal Flash Storage;UFS)兼容存储器系统或装置,存储器请求尤其可包含命令字段和组字段(group field),主机可将所述命令字段设置为用于特定存储器请求的值。在某些实例中,组字段可包含持久性旗标。
在某些实例中,存储器装置可在系统或存储器装置的电力循环之前将第二持久性高 速缓存的内容传送到非易失性存储器。在系统或存储器装置通电后,可从非易失性存储器再填充持久性高速缓存的内容。在某些实例中,此类特征可允许“常用”数据的映射 表经受住电力循环且允许系统的更快唤醒,例如,尤其当“常用”数据与主机的操作系 统相关联时。
图3说明可在其上进行本文中论述的任何一或多种技术(例如,方法)的实例机器300 的框图。在替代实施例中,机器300可充当独立装置或可连接(例如,联网)到其它机器。在联网部署中,机器300可在服务器机器、客户端机器或服务器-客户端网络环境两者的 能力中操作。在一实例中,机器300可充当点对点(peer-to-peer;P2P)(或其它分布式) 网络环境中的对等机器。机器300可以是个人计算机(personal computer;PC)、平板PC、 机顶盒(set-top box;STB)、个人数字助理(personal digital assistant;PDA)、移动电话、 网络器具、IoT装置、汽车系统或能够(依序或以其它方式)执行指定将由所述机器采取的 动作的指令的任何机器。此外,虽然仅说明单个机器,但术语“机器”也将视为包含个 别地或共同地执行一(或多个)指令集以执行本文中所论述的任何一或多种方法(如,云计 算、软件即服务(software as a service;SaaS)、其它计算机集群配置)的任何机器总集。
如本文所描述,实例可包含逻辑、组件、装置、封装或机构,或可通过逻辑、组件、装置、封装或机构来操作。电路是在包含硬件(例如,简单电路、门、逻辑等)的有形实 体中实施的电路的总集(例如,集合)。电路部件可随时间推移和基础硬件变化而为灵活 的。电路包含当操作时可单独或组合地进行特定任务的部件。在一实例中,可不变地设 计电路系统的硬件以实行特定操作(例如,硬接线)。在一实例中,电路系统的硬件可包 含可变地连接的物理组件(例如,执行单元、晶体管、简单电路等),所述物理组件包含 以物理方式修改(例如,不变集中式粒子的磁性、电气、可移动放置等)以对特定操作的 指令进行编码的计算机可读媒体。在连接物理组件时,硬件构成的基础电特性例如从绝 缘体改变成导体或反之亦然。指令使得参与的硬件(例如,执行单元或加载机构)能够经 由可变连接来形成硬件中的电路系统部件以当在操作中时实行特定任务的部分。因此, 当装置操作时,计算机可读媒体以通信方式耦合到电路系统的其它组件。在一实例中, 物理组件中的任一个可用于超过一个电路系统的超过一个部件中。举例来说,在操作下, 执行单元可在一个时间点处用于第一电路系统的第一电路,且由第一电路系统中的第二 电路重新使用,或在不同时间处由第二电路系统中的第三电路重新使用。
机器(例如,计算机系统)300(例如,主机105、存储器装置110等)可包含处理装置302(例如,硬件处理器、中央处理单元(CPU)、图形处理单元(GPU)、硬件处理器核心或 其任何组合,如存储器装置110的存储器控制器等)、主存储器304(例如,只读存储器 (ROM)、快闪存储器、动态随机存取存储器(DRAM),如同步DRAM(SDRAM)或Rambus DRAM(RDRAM)等)、静态存储器306(例如,快闪存储器、静态随机存取存储器(static random-access memory;SRAM)等)以及数据存储系统318,其中的一些或全部可经由互 连链路(interlink)(例如,总线)330彼此通信。
处理装置302可表示一或多个通用处理装置,如微处理器、中央处理单元或类似物。 更确切地说,处理装置可以是复杂指令集计算(complex instruction setcomputing;CISC) 微处理器、精简指令集计算(reduced instruction set computing;RISC)微处理器、超长指 令字(very long instruction word;VLIW)微处理器或实施其它指令集的处理器,或实施指 令集的组合的处理器。处理装置302也可以是一或多个专用处理装置,如专用集成电路 (application specific integrated circuit;ASIC)、现场可编程门阵列(field programmable gate array;FPGA)、数字信号处理器(digital signalprocessor;DSP)、网络处理器或类似物。 处理装置302可配置成执行用于进行本文中所论述的操作和步骤的指令326。计算机系 统300可进一步包含网络接口装置308以经由网络320通信。
数据存储系统318可包含机器可读存储媒体324(也称为计算机可读媒体),其上存储有一或多个指令集326或体现本文中所描述的任何一或多种方法或功能的软件。指令326还可在其由计算机系统300执行期间完全或至少部分地驻留在主存储器304内和/ 或处理装置302内,主存储器304和处理装置302也构成机器可读存储媒体。机器可读 存储媒体324、数据存储系统318或主存储器304可对应于图1的存储器装置110。
在一个实施方案中,指令326包含用以实施对应于实施如上文关于图2或图3所论述的第二持久性高速缓存的功能性的指令。虽然机器可读存储媒体324在实例实施方案 中展示为单个媒体,但术语“机器可读存储媒体”应认为包含存储一或多个指令集的单 个媒体或多个媒体。术语“机器可读存储媒体”还应认为包含能够存储或编码供机器执 行的指令集且使得机器进行本公开的任何一或多种方法的任何媒体。因此应认为术语 “机器可读存储媒体”包含但不限于固态存储器、光学媒体以及磁性媒体。在一实例中, 集中式机器可读媒体包括具有多个粒子的机器可读媒体,所述粒子具有不变(例如,静止) 质量。因此,集中式机器可读媒体是非暂时性传播信号。集中式机器可读媒体的具体实 例可包含:非易失性存储器,如半导体存储器装置(例如,电可编程只读存储器(EPROM)、 电可擦除可编程只读存储器(EEPROM))和快闪存储器装置;磁盘,如内部硬盘和可移式 盘;磁光盘;以及CD-ROM和DVD-ROM盘。
机器300可进一步包含显示单元、字母数字输入装置(例如,键盘)和用户接口(user interface;UI)导航装置(例如,鼠标)。在一实例中,显示单元、输入装置或UI导航装置 中的一或多个可以是触摸屏显示器。机器包含信号产生装置(例如,扬声器)或一或多个传感器,如全球定位系统(global positioning system;GPS)传感器、指南针、加速计或一或多个其它传感器。机器300可包含输出控制器,如串行(例如,通用串行总线(USB))、 并行或其它有线或无线(例如,红外(infrared;IR)、近场通信(near field communication;NFC)等)连接以与一或多个外围装置(例如,打印机、读卡器等)通信或控制所述一或多个外围装置。
指令326(例如,软件、程序、操作系统(operating system;OS)等)或存储在数据存储装置318上的其它数据可由主存储器304存取以供处理装置302使用。主存储器304 (例如,DRAM)通常是快速但易失性的,且由此是与适合于长期存储(包含在“断开”条 件中)的数据存储装置318(例如,SSD)不同类型的存储装置。供用户或机器300使用的 指令326或数据通常加载在主存储器304中,以供处理装置302使用。在主存储器304 已满时,可分配来自数据存储装置318的虚拟空间以补充主存储器304;然而,因为数 据存储装置318通常比主存储器304慢,且写入速度通常比读取速度慢至少二分之一, 所以虚拟存储器的使用由于存储装置时延(相较于主存储器304,例如DRAM)而可能极 大地降低用户体验。此外,用于虚拟存储器的数据存储装置318的使用可能极大地减少 数据存储装置318的可用使用寿命。
与虚拟存储器相比,虚拟存储器压缩(例如,LinuxTM内核特征“ZRAM”)使用存储 器的部分作为压缩块存储装置以避免对数据存储装置318的分页。在压缩块中发生分页 直到有必要将此类数据写入到数据存储装置318为止。虚拟存储器压缩增大主存储器304 的可用大小,同时减小对数据存储装置318的磨损。
针对移动电子装置或移动存储装置而优化的存储装置传统上包含MMC固态存储装置(例如,微安全数字(microSDTM)卡等)。MMC装置包含与主机(例如,主机装置)的数个 并行接口(例如,8位并行接口),且通常是从主机可移去和分离的组件。相反地,eMMCTM装置附接到电路板且视为主机的组件,其中读取速度比得上基于串行ATATM(串行高级 技术(Advanced Technology;AT)附件,或SATA)的SSD装置。然而,对移动装置性能的 需求持续增大,以便完全实现虚拟或增强现实装置、利用增大的网络速度等。响应于这 种需求,存储装置已从并行转换到串行通信接口。包含控制器和固件的通用快闪存储 (UFS)装置使用具有专用读取/写入路径的低电压差分信令(low-voltage differential signaling;LVDS)串行接口与主机通信,从而进一步推进了更高的读取/写入速度。
可进一步利用数个传送协议中的任一个(例如,帧中继、因特网协议(internetprotocol;IP)、传输控制协议(transmission control protocol;TCP)、用户数据报协议(user datagram protocol;UDP)、超文本传送协议(hypertext transfer protocol;HTTP)等)经由网 络接口装置308使用传输媒体在网络320上发射或接收指令324。实例通信网络可包含 局域网(local area network;LAN)、广域网(wide area network;WAN)、分组数据网络(例 如,因特网)、移动电话网络(例如,蜂窝网络)、普通老式电话(Plain OldTelephone;POTS) 网络和无线数据网络(例如,称作的电气和电子工程师协会(Institute of Electrical and Electronics Engineer;IEEE)802.11标准系列、称作的IEEE 802.16标准系 列)、IEEE 802.15.4标准系列、点对点(P2P)网络等等。在一实例中,网络接口装置308 可包含一或多个物理插口(例如,以太网、同轴或电话插口)或一或多个天线以连接到网 络320。在一实例中,网络接口装置308可包含多个天线以使用单收多发(single-input multiple-output;SIMO)、多入多出(multiple-input multiple-output;MIMO)或多入单出 (multiple-input single-output;MISO)技术中的至少一个无线地通信。术语“传输媒体” 应认为包含能够存储、编码或携载指令以供机器300执行的任何无形媒体,且包含数字 或模拟通信信号或其它无形媒体以促进此类软件的通信。
额外注释和实例
实例1是一种方法,其包括:将存储器系统的映射表的第一部分维持在存储器系统的第一高速缓存中;在存储器系统处从主机接收第一写入请求,第一写入请求包含主机 的第一逻辑块地址、第一写入信息和第一状态中的持久性旗标;将第一写入信息保存到 存储器系统的快闪存储器;响应于持久性旗标的第一状态而将第一映射信息保存到存储 器系统的第二持久性高速缓存,第一映射信息包含第一逻辑块地址,其中第二持久性高 速缓存是持久性高速缓存;从主机接收第二写入请求,第二写入请求包含主机的第二逻 辑块地址、第二写入信息和第二状态中的持久性旗标;将第二写入信息保存到存储器系 统的快闪存储器;以及响应于持久性旗标的第二状态而将第二映射信息保存到存储器系 统的第一高速缓存,第二映射信息包含第二逻辑块地址。
在实例2中,根据实例1所述的主题包含:其中在未从主机接收覆写第二高速缓存内的第一逻辑块地址的特定命令的情况下,存储器系统并不覆写第二高速缓存中的第一逻辑块地址。
实例3中,根据实例1到2所述的主题包含:将映射表维持在存储器系统的快闪存储器中;以及用第一映射信息来更新快闪存储器中的映射表。
在实例4中,根据实例1到3所述的主题包含:在存储器系统处从主机接收第一查询;以及响应于第一查询而提供对持久性大小的指示。
在实例5中,根据实例1到4所述的主题包含:在存储器系统处从主机接收第一查询;以及响应于第一查询而提供对第二持久性高速缓存的未使用空间大小的指示。
在实例6中,根据实例1到5所述的主题包含:在存储器系统处从主机接收第二命令,第二命令包含高速缓存大小;以及响应于第二命令而分配与高速缓存大小相称的第 二持久性高速缓存的大小。
在实例7中,根据实例1到6所述的主题包含:从作为存储器系统的主机接收第二命令;以及响应于第二命令而擦除第二持久性高速缓存的至少一部分,其中至少一部分 包含第一逻辑块地址。
在实例8中,根据实例1到7所述的主题包含:其中第一写入请求的组编号(groupnumber)包含持久性旗标。
在实例9中,根据实例1到8所述的主题包含:在存储器系统处从主机接收读取请求,其中读取请求包含第三逻辑块地址;以及确定读取请求的持久性旗标处于第一状态。
在实例10中,根据实例9所述的主题包含:将第三逻辑块地址与第二持久性高速缓存的多个逻辑块地址中的一个逻辑块地址匹配;识别与第二高速缓存中的一个逻辑块地址一起存储的第一物理地址;使用第一物理地址从存储器系统的快闪存储器读取读取信息;以及响应于读取请求而将读取信息提供到主机。
在实例11中,根据实例9到10所述的主题包含:不将第三逻辑块地址与第二持久性高速缓存的多个逻辑块地址中的一个逻辑块地址匹配;以及响应于读取请求而将错误信息提供到主机,其中错误信息指示未能将第二高速缓存的逻辑块地址与第三逻辑块地址匹配。
在实例12中,根据实例9到11所述的主题包含:在存储器系统处从主机接收第二读取请求,其中第二读取请求包含第四逻辑块地址;以及确定第二读取请求的持久性旗 标处于第二状态。
在实例13中,根据实例12所述的主题包含:将第四逻辑块地址与第一高速缓存的多个逻辑块地址中的一个逻辑块地址匹配;识别与第一高速缓存中的一个逻辑块地址一起存储的第一物理地址;使用第一高速缓存的第一物理地址来从存储器系统的快闪存储器读取第二读取信息;以及响应于第二读取请求而将第二读取信息提供到主机。
在实例14中,根据实例13所述的主题包含:其中第三逻辑块地址与第一逻辑块地址相同。
在实例15中,根据实例13到14所述的主题包含:其中第四逻辑块地址与第二逻 辑块地址相同。
在实例16中,根据实例12到15所述的主题包含:未能将第四逻辑块地址与第一 高速缓存的多个逻辑块地址中的一个逻辑块地址匹配;用从存储器系统的快闪存储器检 索到的映射表的第二部分覆写第一高速缓存中的映射表的第一部分;将第四逻辑块地址 与第一高速缓存内的映射表的第二部分的多个逻辑块地址中的一个逻辑块地址匹配;识 别与第一高速缓存中的一个逻辑块地址一起存储的第一物理地址;使用第一高速缓存的 第一物理地址来从存储器系统的快闪存储器读取第二读取信息;以及响应于第二读取请 求而将第二读取信息提供到主机。
实例17是一种存储器装置,其包括:第一高速缓存,其配置成保持存储器装置的映射表的一部分;第二高速缓存,其配置成保持存储器装置的持久性映射信息,其中经 由从主机接收到的写入请求的持久性旗标来指示持久性映射信息;快闪存储器,其配置 成存储和检索主机的用户数据,且存储存储器装置的映射表;以及控制器,其配置成: 将存储器系统的映射表的第一部分维持在存储器系统的第一高速缓存中;从主机接收第 一写入请求,第一写入请求包含主机的第一逻辑块地址、第一写入信息的大小和第一状 态中的持久性旗标;将第一写入信息保存到存储器系统的快闪存储器;响应于持久性旗 标的第一状态而将第一映射信息保存到存储器系统的第二高速缓存,第一映射信息包含 第一逻辑块地址;从主机接收第二写入请求,第二写入请求包含主机的第二逻辑块地址、 第二写入信息的大小和第二状态中的持久性旗标;将第二写入信息保存到存储器系统的 快闪存储器;以及响应于持久性旗标的第二状态而将第二映射信息保存到存储器系统的 第一高速缓存,第二映射信息包含第二逻辑块地址。
在实例18中,根据实例17所述的主题包含:其中在未从主机接收覆写第二高速缓存内的第一逻辑块地址的特定命令的情况下,控制器并不配置成覆写第二高速缓存中的第一逻辑块地址。
在实例19中,根据实例17到18所述的主题包含:其中控制器配置成将映射表维 持在存储器系统的快闪存储器中,且用第一映射信息来更新快闪存储器中的存储器表。
在实例20中,根据实例17到19所述的主题包含:其中控制器配置成从主机接收 第一查询,且响应于第一查询而提供对第二高速缓存的大小的指示。以上详细描述包含 对随附图式的参考,所述随附图式形成详细描述的部分。图式借助于说明展示可实践本 发明的特定实施例。这些实施例在本文中也称为“实例”。此类实例可包含除了所展示 或所描述的那些元件之外的元件。然而,本发明人还预期其中仅提供所展示或所描述的 那些元件的实例。此外,本发明人还预期使用关于特定实例(或其一或多个方面)或关于 本文所展示或描述的其它实例(或其一或多个方面)而展示或描述的那些元件的任何组合 或排列的实例(或其一或多个方面)。
在本文件中,如专利文件中常见,使用术语“一(a/an)”以包含一个或多于一个,这与“至少一个”或“一或多个”的任何其它情形或使用无关。在此文件中,术语“或” 用于指代非排它性或,使得除非另有指示,否则“A或B”可包含“A而非B”、“B而 非A”以及“A和B”。在所附权利要求书中,术语“包含”和“其中(in which)”用作 相应术语“包括”及“其中(wherein)”的通俗等效术语。另外,在所附权利要求书中, 术语“包含”和“包括”是开放式的。权利要求中除了此类术语之后列出的元件之外还 包含元件的系统、装置、物品或过程仍视为属于所述权利要求的范围。此外,在以下权 利要求书中,术语“第一”、“第二”和“第三”等仅用作标记,且并不意欲对其对象施 加数字要求。
在不同实例中,本文中所描述的组件、控制器、处理器、单元、引擎或表可尤其包含存储于物理装置上的物理电路系统或固件。如本文中所使用,“处理器”意指任何类 型的计算电路,如但不限于微处理器、微控制器、图形处理器、数字信号处理器(DSP) 或任何其它类型的处理器或处理电路,包含处理器或多核心装置的群组。
如本文中所使用,操作存储器单元包含从存储器单元读取、写入到存储器单元或擦 除存储器单元。使存储器单元置于既定状态中的操作在本文中称作“编程”,且可包含对存储器单元写入或从存储器单元擦除(例如,存储器单元可编程为擦除状态)。
NOR或NAND架构半导体存储器阵列中的每一快闪存储器单元可个别地或共同地编程到一个或数个编程状态。举例来说,单层级单元(SLC)可表示两个编程状态(例如,1 或0)中的一个,从而表示一个数据位。然而,快闪存储器单元也可表示超过两个编程状 态中的一个,从而允许制造较高密度的存储器而不增加存储器单元的数目,因为每一单 元可表示超过一个二进制数字(例如,超过一个位)。此类单元可称为多状态存储器单元、 多数字单元或多层级单元(MLC)。在某些实例中,MLC可指代每单元可存储两个数据位 (例如,四个编程状态中的一个)的存储器单元,三层级单元(triple-level cell;TLC)可指 代每单元可存储三个数据位(例如,八个编程状态中的一个)的存储器单元,且四层级单 元(quad-level cell;QLC)可每单元存储四个数据位。除非另外由明确语言或上下文清晰 地指示,否则MLC在本文中用于其广泛情形中,以指代可每单元存储超过一个数据位 (即,可表示超过两个编程状态)的存储器单元。
根据本公开的一或多个实施例,位于存储器装置内部或外部的存储器控制器(例如, 处理器、控制器、固件等)能够确定(例如,选择、设置、调整、计算、改变、清除、传 达、调适、导出、限定、利用、修改、施加等)一定数量的磨损循环或磨损状态(例如, 记录磨损循环、当其发生时对存储器装置的操作计数、追踪其起始的存储器装置的操作、 评估对应于磨损状态的存储器装置特征等)。
根据本公开的一或多个实施例,存储器存取装置可配置成为存储器装置提供每一存 储器操作的磨损循环信息。存储器装置控制电路(例如,控制逻辑)可编程为补偿对应于磨损循环信息的存储器装置性能改变。存储器装置可接收磨损循环信息且响应于磨损循环信息而确定一或多个操作参数(例如,值、特征)。
本文中描述的方法实例可至少部分地由机器、装置或计算机实施。一些实例可包含 编码有指令的计算机可读媒体、装置可读媒体或机器可读媒体,所述指令可用于配置电子装置以执行如以上实例中描述的方法。此类方法的实施方案可包含代码,如微码、汇 编语言代码、高级语言代码或类似物。这类代码可包含用于执行各种方法的计算机可读 指令。代码可形成计算机程序产品的部分。此外,代码可如在执行期间或在其它时间有 形地存储于一或多个易失性或非易失性有形计算机可读媒体上。这些有形计算机可读媒 体的实例可包含但不限于:硬盘、可移式磁盘、可移式光盘(例如,压缩光盘和数字视频 光盘)、盒式磁带、存储器卡或棒、随机存取存储器(RAM)、只读存储器(ROM)、固态驱 动器(SSD)、通用快闪存储(UFS)装置、嵌入式MMC(embedded MMC;eMMC)装置以及 类似物。
以上描述既定为说明性的而非限制性的。举例来说,上文所描述的实例(或其一个或 多个方面)可彼此组合使用。如所属领域的普通技术人员在查阅以上描述后可使用其它实 施例。应理解,所述实施例将不会用于解释或限制权利要求书的范围或含义。而且,在以上详细描述中,可将各种特征分组在一起以简化本公开。不应将这一情况解释为希望 未要求保护的公开特征对任何权利要求来说是必需的。相反地,本发明主题可在于比特 定所公开实施例的所有特征要少。因此,特此将所附权利要求书并入到详细描述中,其 中每一权利要求作为一单独实施例而独立存在,且预期此类实施例可以各种组合或排列 彼此组合。应参考所附权利要求书以及此类权利要求书所授予的等效物的完整范围确定 本发明的范围。
Claims (20)
1.一种方法,其包括:
将存储器系统的映射表的第一部分维持在所述存储器系统的第一高速缓存中;
在所述存储器系统处从主机接收第一写入请求,所述第一写入请求包含所述主机的第一逻辑块地址、第一写入信息和第一状态中的持久性旗标;
将所述第一写入信息保存到所述存储器系统的快闪存储器;
响应于所述持久性旗标的所述第一状态而将第一映射信息保存到所述存储器系统的第二持久性高速缓存,所述第一映射信息包含所述第一逻辑块地址,其中所述第二持久性高速缓存是持久性高速缓存;
从所述主机接收第二写入请求,所述第二写入请求包含所述主机的第二逻辑块地址、第二写入信息和第二状态中的持久性旗标;
将所述第二写入信息保存到所述存储器系统的所述快闪存储器;以及
响应于所述持久性旗标的所述第二状态而将第二映射信息保存到所述存储器系统的所述第一高速缓存,所述第二映射信息包含所述第二逻辑块地址。
2.根据权利要求1所述的方法,其中在未从所述主机接收覆写所述第二高速缓存内的所述第一逻辑块地址的特定命令的情况下,所述存储器系统并不覆写所述第二高速缓存中的所述第一逻辑块地址。
3.根据权利要求1所述的方法,其包含将所述映射表维持在所述存储器系统的快闪存储器中;以及
用所述第一映射信息来更新所述快闪存储器中的所述映射表。
4.根据权利要求1所述的方法,其包含:
在所述存储器系统处从所述主机接收第一查询;以及
响应于所述第一查询而提供对持久性大小的指示。
5.根据权利要求1所述的方法,其包含:
在所述存储器系统处从所述主机接收第一查询;以及
响应于所述第一查询而提供对所述第二持久性高速缓存的未使用空间大小的指示。
6.根据权利要求1所述的方法,其包含在所述存储器系统处从所述主机接收第二命令,所述第二命令包含高速缓存大小;以及
响应于所述第二命令而分配与所述高速缓存大小相称的所述第二持久性高速缓存的大小。
7.根据权利要求1所述的方法,其包含在所述存储器系统处从所述主机接收第二命令;以及
响应于所述第二命令而擦除所述第二持久性高速缓存的至少一部分,其中所述至少一部分包含所述第一逻辑块地址。
8.根据权利要求1所述的方法,其中所述第一写入请求的群组编号包含所述持久性旗标。
9.根据权利要求1所述的方法,其包含:
在所述存储器系统处从所述主机接收读取请求,其中所述读取请求包含第三逻辑块地址;以及
确定所述读取请求的持久性旗标处于所述第一状态。
10.根据权利要求9所述的方法,其包含将所述第三逻辑块地址与所述第二持久性高速缓存的多个逻辑块地址中的一个逻辑块地址匹配;
识别与所述第二高速缓存中的所述一个逻辑块地址一起存储的第一物理地址;
使用所述第一物理地址从所述存储器系统的所述快闪存储器读取读取信息;以及
响应于所述读取请求而将所述读取信息提供到所述主机。
11.根据权利要求9所述的方法,其包含不将所述第三逻辑块地址与所述第二持久性高速缓存的多个逻辑块地址中的一个逻辑块地址匹配;以及
响应于所述读取请求而将错误信息提供到所述主机,其中所述错误信息指示未能将所述第二高速缓存的逻辑块地址与所述第三逻辑块地址匹配。
12.根据权利要求9所述的方法,其包含在所述存储器系统处从所述主机接收第二读取请求,其中所述第二读取请求包含第四逻辑块地址;以及
确定所述第二读取请求的持久性旗标处于所述第二状态。
13.根据权利要求12所述的方法,其包含:
将所述第四逻辑块地址与所述第一高速缓存的多个逻辑块地址中的一个逻辑块地址匹配;
识别与所述第一高速缓存中的所述一个逻辑块地址一起存储的第一物理地址;
使用所述第一高速缓存的所述第一物理地址来从所述存储器系统的所述快闪存储器读取第二读取信息;以及
响应于所述第二读取请求而将所述第二读取信息提供到所述主机。
14.根据权利要求13所述的方法,其中所述第三逻辑块地址与所述第一逻辑块地址相同。
15.根据权利要求13所述的方法,其中所述第四逻辑块地址与所述第二逻辑块地址相同。
16.根据权利要求12所述的方法,其包含:
未能将所述第四逻辑块地址与所述第一高速缓存的多个逻辑块地址中的一个逻辑块地址匹配;
用从所述存储器系统的所述快闪存储器检索的所述映射表的第二部分覆写所述第一高速缓存中的所述映射表的所述第一部分;
将所述第四逻辑块地址与所述第一高速缓存内的所述映射表的所述第二部分的多个逻辑块地址中的一个逻辑块地址匹配;
识别与所述第一高速缓存中的所述一个逻辑块地址一起存储的第一物理地址;
使用所述第一高速缓存的所述第一物理地址来从所述存储器系统的所述快闪存储器读取第二读取信息;以及
响应于所述第二读取请求而将所述第二读取信息提供到所述主机。
17.一种存储器装置,其包括:
第一高速缓存,其配置成保持所述存储器装置的映射表的一部分;
第二高速缓存,其配置成保持所述存储器装置的持久性映射信息,其中经由从主机接收到的写入请求的持久性旗标来指示所述持久性映射信息;
快闪存储器,其配置成存储和检索主机的用户数据,且存储所述存储器装置的所述映射表;以及
控制器,其配置成:
将存储器系统的映射表的第一部分维持在所述存储器系统的第一高速缓存中;
从所述主机接收第一写入请求,所述第一写入请求包含所述主机的第一逻辑块地址、第一写入信息的大小和第一状态中的所述持久性旗标;
将所述第一写入信息保存到所述存储器系统的快闪存储器;
响应于所述持久性旗标的所述第一状态而将第一映射信息保存到所述存储器系统的所述第二高速缓存,所述第一映射信息包含所述第一逻辑块地址;
从所述主机接收第二写入请求,所述第二写入请求包含所述主机的第二逻辑块地址、第二写入信息的大小和第二状态中的所述持久性旗标;
将所述第二写入信息保存到所述存储器系统的所述快闪存储器;以及
响应于所述持久性旗标的所述第二状态而将第二映射信息保存到所述存储器系统的所述第一高速缓存,所述第二映射信息包含所述第二逻辑块地址。
18.根据权利要求17所述的存储器装置,其中在未从所述主机接收覆写所述第二高速缓存内的所述第一逻辑块地址的特定命令的情况下,所述控制器并不配置成覆写所述第二高速缓存中的所述第一逻辑块地址。
19.根据权利要求17所述的存储器装置,其中所述控制器配置成将所述映射表维持在所述存储器系统的快闪存储器中,且用所述第一映射信息来更新所述快闪存储器中的所述存储器表。
20.根据权利要求17所述的存储器装置,其中所述控制器配置成从所述主机接收第一查询,且响应于所述第一查询而提供对所述第二高速缓存的大小的指示。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/230,423 | 2018-12-21 | ||
US16/230,423 US10901903B2 (en) | 2018-12-21 | 2018-12-21 | Flash memory persistent cache techniques |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111352864A true CN111352864A (zh) | 2020-06-30 |
CN111352864B CN111352864B (zh) | 2023-07-04 |
Family
ID=71099483
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911330736.4A Active CN111352864B (zh) | 2018-12-21 | 2019-12-20 | 快闪存储器持久性高速缓存技术 |
Country Status (2)
Country | Link |
---|---|
US (2) | US10901903B2 (zh) |
CN (1) | CN111352864B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112667561A (zh) * | 2020-12-29 | 2021-04-16 | 成都旋极历通信息技术有限公司 | 一种在fpga中实现ufs阵列控制器的实现方式 |
CN113032290A (zh) * | 2021-03-19 | 2021-06-25 | 维沃移动通信有限公司 | 闪存配置方法、装置、电子设备和存储介质 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022125909A1 (en) * | 2020-12-11 | 2022-06-16 | Micron Technology, Inc. | Multi-tier cache for a memory system |
US12073112B2 (en) * | 2021-03-08 | 2024-08-27 | Micron Technology, Inc. | Enabling memory access transactions for persistent memory |
US11656994B2 (en) * | 2021-05-03 | 2023-05-23 | Western Digital Technologies, Inc. | Non-volatile memory with optimized read |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104885062A (zh) * | 2012-12-10 | 2015-09-02 | 谷歌公司 | 使用逻辑到物理映射以与数据存储装置进行直接用户空间通信 |
CN108694135A (zh) * | 2017-03-31 | 2018-10-23 | 英特尔公司 | 用于在页高速缓存中持久性地高速缓存存储数据的方法和设备 |
CN108694127A (zh) * | 2017-03-31 | 2018-10-23 | 英特尔公司 | 用于在固态驱动器中实行高速缓存操作的装置、计算机程序产品和方法 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6412045B1 (en) * | 1995-05-23 | 2002-06-25 | Lsi Logic Corporation | Method for transferring data from a host computer to a storage media using selectable caching strategies |
US6026470A (en) * | 1997-04-14 | 2000-02-15 | International Business Machines Corporation | Software-managed programmable associativity caching mechanism monitoring cache misses to selectively implement multiple associativity levels |
US7472225B2 (en) * | 2005-06-20 | 2008-12-30 | Arm Limited | Caching data |
US20100082903A1 (en) * | 2008-09-30 | 2010-04-01 | Kabushiki Kaisha Toshiba | Non-volatile semiconductor memory drive, information processing apparatus and data access control method of the non-volatile semiconductor memory drive |
US8219776B2 (en) * | 2009-09-23 | 2012-07-10 | Lsi Corporation | Logical-to-physical address translation for solid state disks |
US10430328B2 (en) * | 2014-09-16 | 2019-10-01 | Sandisk Technologies Llc | Non-volatile cache and non-volatile storage medium using single bit and multi bit flash memory cells or different programming parameters |
KR20160148952A (ko) * | 2015-06-17 | 2016-12-27 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
US10229051B2 (en) * | 2015-12-30 | 2019-03-12 | Samsung Electronics Co., Ltd. | Storage device including nonvolatile memory device and controller, operating method of storage device, and method for accessing storage device |
US10740251B2 (en) * | 2017-01-20 | 2020-08-11 | Seagate Technology Llc | Hybrid drive translation layer |
KR102411290B1 (ko) * | 2017-10-24 | 2022-06-22 | 삼성전자주식회사 | 선택적으로 퍼지 동작을 수행하도록 구성되는 호스트 장치 및 스토리지 장치를 포함하는 스토리지 시스템 |
US10846017B2 (en) * | 2017-12-14 | 2020-11-24 | Western Digital Technologies, Inc. | Secure digital (SD) to NVMe buffer manager |
JP2019148913A (ja) * | 2018-02-26 | 2019-09-05 | 東芝メモリ株式会社 | メモリシステム |
US11409436B2 (en) * | 2018-08-08 | 2022-08-09 | Micron Technology, Inc. | Buffer management in memory systems for read and write requests |
KR20200110547A (ko) * | 2019-03-14 | 2020-09-24 | 삼성전자주식회사 | 스토리지 장치 및 스토리지 장치를 포함하는 컴퓨팅 장치 |
-
2018
- 2018-12-21 US US16/230,423 patent/US10901903B2/en active Active
-
2019
- 2019-12-20 CN CN201911330736.4A patent/CN111352864B/zh active Active
-
2021
- 2021-01-25 US US17/157,303 patent/US20210248078A1/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104885062A (zh) * | 2012-12-10 | 2015-09-02 | 谷歌公司 | 使用逻辑到物理映射以与数据存储装置进行直接用户空间通信 |
CN108694135A (zh) * | 2017-03-31 | 2018-10-23 | 英特尔公司 | 用于在页高速缓存中持久性地高速缓存存储数据的方法和设备 |
CN108694127A (zh) * | 2017-03-31 | 2018-10-23 | 英特尔公司 | 用于在固态驱动器中实行高速缓存操作的装置、计算机程序产品和方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112667561A (zh) * | 2020-12-29 | 2021-04-16 | 成都旋极历通信息技术有限公司 | 一种在fpga中实现ufs阵列控制器的实现方式 |
CN112667561B (zh) * | 2020-12-29 | 2024-05-31 | 成都旋极历通信息技术有限公司 | 一种在fpga中实现ufs阵列控制器的方法 |
CN113032290A (zh) * | 2021-03-19 | 2021-06-25 | 维沃移动通信有限公司 | 闪存配置方法、装置、电子设备和存储介质 |
WO2022194068A1 (zh) * | 2021-03-19 | 2022-09-22 | 维沃移动通信有限公司 | 闪存配置方法、装置、电子设备和存储介质 |
CN113032290B (zh) * | 2021-03-19 | 2024-01-19 | 维沃移动通信有限公司 | 闪存配置方法、装置、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111352864B (zh) | 2023-07-04 |
US10901903B2 (en) | 2021-01-26 |
US20200201772A1 (en) | 2020-06-25 |
US20210248078A1 (en) | 2021-08-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11899574B2 (en) | L2P translation techniques in limited RAM systems to increase random write performance using multiple L2P caches | |
US11157404B2 (en) | Remapping techniques for a range of logical block addresses in a logical to physical table of NAND storage | |
US11687469B2 (en) | Host-resident translation layer validity check techniques | |
CN111352864B (zh) | 快闪存储器持久性高速缓存技术 | |
US11809311B2 (en) | Host-based flash memory maintenance techniques | |
US11734170B2 (en) | Host-resident translation layer validity check | |
US11989557B2 (en) | Large data read techniques | |
CN112673357B (zh) | 主机驻留式转换层有效性检查 | |
US11721388B2 (en) | Large file integrity techniques | |
US10923202B2 (en) | Host-resident translation layer triggered host refresh |
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 |