CN112673357B - 主机驻留式转换层有效性检查 - Google Patents
主机驻留式转换层有效性检查 Download PDFInfo
- Publication number
- CN112673357B CN112673357B CN201980059061.6A CN201980059061A CN112673357B CN 112673357 B CN112673357 B CN 112673357B CN 201980059061 A CN201980059061 A CN 201980059061A CN 112673357 B CN112673357 B CN 112673357B
- Authority
- CN
- China
- Prior art keywords
- memory
- physical address
- request
- lba
- host
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- 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
- 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
- G06F3/0611—Improving I/O performance in relation to response time
-
- 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/062—Securing storage systems
- G06F3/0622—Securing storage systems in relation to access
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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/0653—Monitoring storage devices or 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0661—Format or protocol conversion arrangements
-
- 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/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- 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
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
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)
Abstract
本文中公开了装置和技术以用于在主机驻留式FTL操作模式期间在存储器装置处验证主机生成的物理地址以改善对所述存储器装置的错误存取或潜在地恶意存取,其中一种方法包括以下步骤:在存储器系统处从主机接收存储器请求,所述存储器请求包含与所述主机相关联的逻辑块地址LBA和与所述存储器系统相关联的物理地址;从所述存储器系统的映射表检索与从所述主机接收到的所述LBA相关联的正确物理地址;使用所述正确物理地址执行与所述存储器请求相关联的存储器操作;以及将请求信息、所述LBA和所述正确物理地址返回到所述主机。
Description
优先权主张
本申请要求帕尔默(Palmer)享有以下优先权:2018年8月3日提交的“主机驻留式转换层有效性检查(HOST-RESIDENT TRANSLATION LAYER VALIDITY CHECK)”的序列号为16/054,072(案卷编号:303.G76US1)的美国非临时专利申请的优先权,以及2018年8月3日提交的“主机驻留式转换层触发主机刷新(HOST-RESIDENT TRANSLATION LAYER TRIGGEREDHOST REFRESH)”的序列号为16/054,109(案卷编号:303.G92US1)的美国非临时专利申请的优先权,所述申请中的每一个特此以全文引用的方式并入本文中。
背景技术
通常将存储器装置提供为计算机或其它电子装置中的内部半导体集成电路。存在许多不同类型的存储器,包含易失性及非易失性存储器。易失性存储器可能需要电力来维持数据且包含随机存取存储器(random-access memory;RAM)、动态随机存取存储器(dynamic random-access memory;DRAM)和同步动态随机存取存储器(synchronousdynamic random-access memory;SDRAM)等等。非易失性存储器可通过在未被供电时保持所存储数据而提供持久的数据,并且可包含NAND快闪存储器、NOR快闪存储器、只读存储器(ROM)、电可擦除可编程ROM(EEPROM)、可擦除可编程ROM(EPROM)和电阻可变存储器,例如相变随机存取存储器(PCRAM)、电阻性随机存取存储器(RRAM)和磁阻随机存取存储器(MRAM)、3D XPointTM存储器等等。
存储器单元通常布置成矩阵或阵列。多个矩阵或阵列可组合到存储器装置中,并且多个装置可组合以形成存储器系统的存储容量,例如固态驱动器(solid-state drive;SSD)、通用快闪存储(UFSTM)装置、多媒体卡(MMC)固态存储装置、嵌入式MMC装置(eMMCTM)等。
存储器系统可包含一或多个处理器或其它存储器控制器,其执行逻辑函数以操作存储器装置或与外部系统介接。存储器矩阵或阵列可包含组织成数个物理页的数个存储器单元块。存储器系统可从与存储器操作相关联的主机接收命令,所述存储器操作例如在存储器装置和主机之间传送数据(例如,用户数据和相关联的完整性数据,例如错误数据和地址数据等)的读取或写入操作、从存储器装置擦除数据的擦除操作,或执行一或多个其它存储器操作。
利用存储器作为用于多种多样的电子应用的易失性和非易失性数据存储装置,所述电子应用包含例如个人计算机、便携式记忆棒、数码相机、蜂窝电话、便携式音乐播放器(例如MP3播放器)、电影播放器和其它电子装置。存储器单元可布置成阵列,其中阵列在存储器装置中使用。
许多电子装置包含若干主要组件:主机处理器(例如,中央处理单元(centralprocessing unit;CPU)或其它主处理器);主存储器(例如,一或多个易失性或非易失性存储器装置,例如动态RAM(DRAM)、移动或低功率双倍数据速率同步DRAM(double-data-ratesynchronous DRAM;DDR SDRAM)等);以及存储装置(例如,非易失性存储器(non-volatilememory;NVM)装置,例如快闪存储器、只读存储器(ROM)、SSD、MMC或其它记忆卡结构或组合件,或易失性和非易失性存储器的组合等)。在某些实例中,电子装置可包含用户接口(例如,显示器、触摸屏、键盘、一或多个按钮等)、图形处理单元(GPU)、电力管理电路、基带处理器或者一或多个收发器电路等。
附图说明
在不一定按比例绘制的附图中,相似标号在不同视图中可描述类似组件。具有不同的字母后缀的相似标号可表示类似组件的不同例子。附图借助于实例而非限制性地总体上说明本文件中所论述的各种实施例。
图1说明包含可在其上实施本发明标的物的一或多个实例的存储器装置的环境的实例系统。
图2总体上说明用于使用主机驻留式FTL的方面在快闪存储器系统处实施存储器操作的实例方法的流程图。
图3总体上说明用于高效地监测和更新用于主机驻留式FTL操作的主机映射表数据的实例方法的流程图。
图4说明本文中所论述的技术(例如,方法)中的任何一或多个可在其上执行的实例机器的框图。
具体实施方式
基于快闪存储器的存储装置(例如NAND存储器)可使用快闪转换层(FlashTranslation Layer;FTL)以将I/O请求的逻辑地址(通常称为逻辑块地址(logical blockaddress;LBA))转换成存储在一或多个FTL映射表中的对应快闪存储器地址。LBA可为供主机使用以管理数据的逻辑地址。移动存储装置通常具有大小受约束的高速缓存,并且因此常常缺乏存储器来存储整个映射表。因此,可按需求从快闪存储器检索一或多个映射表的部分,这可能致使随机读取性能劣化。
为了改进随机读取性能,本文中所描述的技术使得除了耦合到主机的存储器装置的存储器单元之外还能够使用主机驻留式存储器作为FTL映射表的高速缓存。在主机驻留式FTL下,从主机存储器读取FTL数据的速度比从快闪存储器读取FTL数据的速度快,并且主机可通过检索快闪存储器的物理地址(PA)且将PA包含在存储器请求中到快闪存储器来起始存储器操作。PA可由主机使用主机的FTL存储器高速缓存和主机的LBA检索。在接收存储器请求后,快闪存储器系统可立即检索与物理地址相关联的数据而无与存取基于快闪存储器的映射表以及使用LBA以获得物理地址相关联的延迟。
在主机驻留式FTL的某些实施方案中,随机读取工作负荷性能的改进可为显著的。然而,本发明人已识别用于主机驻留式FTL的技术,所述技术可辅助验证主机存储器请求的完整性,可辅助维持主机FTL表与实际快闪映射表之间的相干性,以及可在主机触发的存储器操作处于或接近空闲时辅助提供对主机FTL表的适时更新。主机驻留式FTL的直接实施可假定映射表在主机起始的操作之间保持准确。然而,连接到主机的存储器系统或存储器装置通常在主机起始的操作之间或在主机空闲的时间期间执行内务操作,例如垃圾收集和耗损均衡。内务操作移动数据,并且常常修正和更新驻留在存储器装置处的映射表。在不进行一些有效性检查的情况下,主机驻留式FTL的直接实施,例如存储器系统盲目地使用主机提供的PA以存取快闪数据,可能常常导致存储器系统在错误的PA处存取快闪存储器。
图1说明包含被配置成经由通信接口进行通信的主机105和存储器装置110的环境100的实例。主机105或存储器装置110可包含在多种产品150中,例如用以支持产品150的处理、通信或控制的IoT装置(例如,制冷机或其它电器、传感器、马达或致动器、移动通信装置、汽车、移动电话、无人机等)。
存储器装置110包含存储器控制器115和存储器阵列120,包含例如一或多个单独存储器裸片(例如,三维(3D)NAND裸片堆叠)。在3D架构半导体存储器技术中,竖直结构堆叠在多个层次中,并且耦合以形成物理页,从而增大给定占据面积(即,外观尺寸)中的存储器装置(例如,存储装置)的存储密度。在一实例中,存储器装置110可为离散存储器装置。
可使用一或多个通信接口111在存储器装置110与主机105的一或多个其它组件之间传送数据,例如串行高级技术附件(Serial Advanced Technology Attachment;SATA)接口、外围组件互连高速(Peripheral Component Interconnect Express;PCIe)接口、通用串行总线(Universal Serial Bus;USB)接口、UFS接口、eMMCTM接口或一或多个其它连接器或接口。主机105可包含主机系统、电子装置、处理器、记忆卡读卡器或在存储器装置110外部的一或多个其它电子装置。在一些实例中,主机105可为具有参考图4的机器400论述的组件的某一部分或全部的机器。数据可经由输入/输出(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可包含错误校正码(ECC)组件140,所述ECC组件可尤其包含ECC引擎、或被配置成检测或校正与向耦合到存储器控制器115的存储器装置110的一或多个存储器单元写入数据或从中读取数据相关联的错误的其它电路系统。ECC组件140例如可检测或计算与执行数个存储器操作相关联的位错误率(BER)。BER可对应于I/O总线的锁存器中出现的位错误、存储器控制器115的内部错误、NAND阵列中的一或多个或存储器装置110的一或多个多层级单元(multi-level cell;MLC)中的任何一或多个中出现的错误。存储器控制器115可被配置成有效地检测且从与各种操作或数据存储相关联的错误出现(例如,位错误、操作错误、崩溃条件、隔栏、挂断等)恢复,同时维持在主机105与存储器装置110之间传送的数据的完整性、或维持所存储数据的完整性(例如,使用冗余RAID存储等),并且可移除(例如,引退)发生故障的存储器资源(例如,存储器单元、存储器阵列、页、块等)以防止未来错误。阵列控制器135可将检测到的BER信息发射到存储器管理器125以进行存储和跟踪。存储器控制器115可包含跟踪从主机接收到的存储器命令的命令队列(未展示)。队列中的命令可以先进先出(first-in first-out;FIFO)方式、堆叠方式、失序地、根据优先权或以任何其它适合的次序由存储器控制器115执行。
所描述的存储器装置110包含与存储器阵列120相关联的主机驻留式FTL模块160。在一些实施方案中,存储器装置110的存储器控制器115可包含被配置成实施主机驻留式FTL模块160的功能的控制电路系统。在其它实施方案中,主机驻留式FTL模块160可包含用于实施所描述功能性的独立控制电路系统。在又其它实施方案中,控制电路系统可在主机驻留式FTL模块160与存储器控制器115之间划分以实施主机驻留式FTL模块160的所描述功能。在所描绘的实例中,阵列控制器135形成存储器控制器115的一部分,并且主机驻留式FTL模块160形成阵列控制器的一部分。在其它实施方案中,主机驻留式FTL模块160可在阵列控制器135外部和/或之外。例如,主机驻留式FTL模块160(或其任何单独的组件)可为耦合到环境100中的一或多个组件的独立组件。无论如何以物理方式定位,提供主机驻留式FTL模块160的额外功能性的结构用以验证由主机105提供的物理地址,以防止对存储器装置的错误或恶意存取,并且用以为主机提供刷新主机驻留式映射表信息的机会,以在环境100的主机驻留式FTL操作期间将映射信息与存储器装置的映射信息对准。
存储器管理器125可尤其包含电路系统或固件,例如与各种存储器管理功能相关联的数个组件或集成电路。出于本描述的目的,将在NAND存储器的上下文中描述实例存储器操作和管理功能。本领域的技术人员将认识到,其它形式的非易失性存储器可具有类似的存储器操作或管理功能。此类NAND管理功能包含耗损均衡(例如,垃圾收集或回收)、错误检测(例如,BER监控)或校正、块引退或一或多个其它存储器管理功能。存储器管理器125可将主机命令(例如,从主机接收到的命令)解析或格式化为装置命令(例如,与存储器阵列的操作相关联的命令等),或生成用于阵列控制器135或存储器装置110的一或多个其它组件的装置命令(例如,以实现各种存储器管理功能)。
存储器管理器125可包含管理表130的集合,所述管理表被配置成维持与存储器装置110的一或多个组件相关联的各种信息(例如,与耦合到存储器控制器115且可包含FTL表的存储器阵列或一或多个存储器单元相关联的各种信息)。例如,管理表130可包含关于耦合到存储器控制器115的一或多个存储器单元块的FTL映射信息、块使用期(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存储器装置相比所需的写入时间为一半且编程/擦除(P/E)循环为两倍。其它实例可包含其它数目或布置。在一些实例中,存储器装置或其部分可在SLC模式中或在所需MLC模式(例如TLC、QLC等)中选择性操作。
在操作中,数据通常以页写入到存储器装置110或从所述存储器装置读取,并且以块擦除。然而,可视需要对存储器单元的更大或更小群组执行一或多个存储器操作(例如,读取、写入、擦除等)。存储器装置110的数据传送大小通常称为页,而主机装置的数据传送大小通常称为扇区。
不同类型的存储器单元或存储器阵列120可提供不同页大小,或可能需要与其相关联的不同量的元数据。例如,不同存储器装置类型可具有不同位错误率,其可导致必需要不同量的元数据来确保数据页的完整性(例如,具有较高位错误率的存储器装置可需要比具有较低位错误率的存储器装置更多字节的错误校正码数据)。作为实例,MLC NAND快闪装置可能具有比对应单层级单元(SLC)NAND快闪装置更高的位错误率。因而,MLC装置可能需要比对应SLC装置更多的用于错误数据的元数据字节。
图2总体上说明用于使用主机驻留式FTL的方面在快闪存储器系统处实施存储器操作的实例方法200的流程图。在某些实例中,方法可辅助验证从主机接收到的物理地址对应于由主机提供的LBA。在没有某一形式的验证的情况下,恶意主机可提供LBA和不相关物理地址,其可导致存取并不意图可由主机存取或并不意图由主机使用在存储器系统处接收到的特定主机存储器请求存取的快闪存储器数据。在201处,存储器系统可接收包含LBA和物理地址的主机存储器请求。在203处,存储器控制器可确定对应于LBA的正确物理地址。在某些实例中,存储器控制器可首先使用LBA搜索存储器装置高速缓存中所含有的映射表或其部分。如果存储器装置高速缓存包含LBA,则可从存储器装置高速缓存快速地检索正确物理地址。在205处,存储器操作可继续进行,例如检索快闪存储器的物理地址处的LBA的数据以满足来自主机的读取请求。在207处,数据可连同LBA和正确物理地址一起返回到主机。在某些实例中,返回正确物理地址以及LBA可辅助主机更新驻留在主机的存储器中的映射表。
在某些实例中,如果存储器装置的高速缓存内的映射表的一部分或一段不包含主机请求的LBA,则存储器控制器可假定映射表为最新的,并且例如在物理地址处检索数据且将数据返回到主机。在一些实例中,如果存储器装置的高速缓存内的映射表的部分不包含主机请求的LBA,则存储器控制器可从快闪存储器检索映射表的部分,检索对应于LBA的正确PA,检索或存取与PA相关联的快闪存储器的数据,并且将数据或快闪存储器存取的确认连同LBA和正确PA一起返回到主机。
在某些实例中,验证由主机传递的物理地址可改善由于主机映射表与存储器系统的映射表不相干而引起的问题,以及减少恶意主机存取不打算存取的数据的成功率。确认的是,如果正确物理地址不可用于存储器装置的高速缓存中的映射表的部分中,则从快闪存储器存取存储器表的正确部分可能造成操作时延。此外,在某些实例中,在认识到确证为与LBA对应的主机供应的物理地址与存储器系统的正确物理地址不相干后,对主机的答复或确认可包含更新后的映射数据的信息块。检索和发送映射数据的更新后的信息块还可能造成操作时延,尤其在更新后的映射数据未在存储器系统处高速缓存且从快闪存储器检索的情况下。
因为在一些实例中,在存储器操作期间更新主机的映射表数据可显著影响整个系统性能,所以通常避免在存储器系统变得了解实际映射表与主机映射表之间的不相干性的每一情形下向主机提供更新后的映射数据。持续未能更新主机映射表将最终致使主机驻留式FTL变得毫无意义,因此,在某些实例中,存储器系统控制器可保持每次主机映射数据表现为不正确的指示,并且在空闲操作模式期间周期性地更新主机映射表。在某些实例中,可使用计数器、阈值计数、比较器和逻辑来实施指示,以在计数器值满足阈值计数时向主机提供更新后的映射表数据。
在某些实例中,可使用多个计数器来实施指示,其中每一计数器与快闪存储器映射表的某些信息块相关联。例如,主机系统可在一段时间内以存储器的区域为目标,使得在所述时间期间主机映射表可跨越整个存储装置LBA空间的至少一部分。作为实例,如果存储器系统包含256千兆字节(GB)的LBA存储空间,则在主机驻留式FTL操作模式期间,主机可以装置LBA空间的1GB部分为目标。对于4KB的用户数据,典型映射表项可为4字节的物理地址,因此1GB范围的映射表的大小可为1MB。如果主机驻留式FTL更新信息块的大小为16KB,则64个此类信息块可存在于1MB映射表范围中。在此类实例系统中,存储器装置可包含64个计数器。每一计数器可与限定16Kb映射数据分块的LBA相关联。如果主机命令包含LBA但不包含有效物理地址,则可触发计数器。应理解,在不脱离本发明标的物的范围的情况下,与存储器系统、物理地址存储装置、主机驻留式FTL更新信息块大小等相关联的实际数目可不同于在以上实例中所论述的数目。
如果计数器值满足阈值,例如上数计数器的最大计数阈值或下数计数器的零计数阈值,则在计数器满足阈值时存储器装置可调度且执行更新后的映射数据到主机的发射。在某些实例中,可周期性地复位所有计数器。在此类实例中,存储器装置可在触发相对代价大的主机驻留式FTL表更新之前延迟较短时间量(高达无效读取命令地址的阈值)。计数器的周期性复位可确保仅在高业务情形(例如,基准)中发生更新,并且少量主机业务将不会触发更新。如上文所论述,触发的主机驻留式FTL更新可提供优于更新每一不正确地址的更新实施方案的优良性能。
在某些实例中,完整存储器容量可跨越比目标存储器区域更多的范围,并且存储器系统可包含有限数目个计数器。在此类实例中,存储器系统可包含计数器映射表。计数器映射表可识别在分配计数器时分配到有限数目个计数器中的每一个的LBA范围。在某一点处,可检测包含LBA的主机请求的物理地址错配,并且存储器系统可识别计数器以对物理地址错配进行计数。如果已分配所识别计数器,则存储器系统可使用计数器映射表以识别当前主机请求的LBA是否在与所识别计数器相关联的LBA范围中。如果LBA在LBA范围内,则所识别计数器递增。如果LBA不在与所识别计数器相关联的LBA范围内,则复位计数器且可经由计数器映射表将新LBA范围分配到所识别计数器。
图3总体上说明用于高效地监测和更新用于主机驻留式FTL操作的主机映射表数据的实例方法300的流程图。在301处,可在存储器装置处接收存储器请求。此类请求可来自主机,并且可尤其包含读取存储器请求或写入存储器请求。在主机驻留式FTL操作中,请求可包含与主机相关联的LBA和假定为存储器系统中对应于由LBA限定的数据的位置的物理地址。在303处,存储器系统可使用内部映射表以确定与由主机提供的LBA相关联的正确PA。一旦确定正确PA,存储器系统就可执行请求。在一些实例中,请求可与以下操作并行地执行。在一些实例中,请求可与以下操作中的一或多个串行地执行。
在305处,正确PA可与用存储器请求接收到的PA进行比较。在307处,可评估比较的结果。在309处,如果正确PA不同于用存储器请求接收到的PA,则计数器可递增。如本文中所使用,除非另外更详细地指定,递增计数器可包含向上或向下改变计数器的值。在311处,计数器的值可与阈值进行比较。在313处,如果计数器的值满足阈值,则刷新后的主机映射数据可准备或发送到主机。在315处,存储器系统用适当数据或确认对存储器请求作出响应。存储器系统可在确定正确PA与用存储器请求接收到的PA相同之后、在确定计数器不满足阈值之后,或在提供刷新后的主机映射数据之前、与提供刷新后的主机映射数据同时或在提供刷新后的主机映射数据之后对存储器请求作出响应。
在某些实例中,在确定所接收LBA与所接收物理地址之间的第一偏差时,计数器可分配到LBA范围。如果计数器的数目在存储器装置处受到限制,则可建立计数器映射表。在某些实例中,计数器映射表可使LBA范围与特定计数器相关联。在确定所接收LBA与所接收PA之间的新偏差后,存储器系统的控制器可选择计数器,在计数器已被分配的情况下确定与计数器相关联的LBA范围,并且将LBA范围与与新偏差相关联的新LBA进行比较。如果新LBA在LBA范围内,则计数器可递增。如果LBA不在计数器的LBA范围内,则存储器控制器可尝试寻找另一计数器,或可重新分配当前计数器,复位当前计数器,并且保存与计数器映射表中的新LBA相关联的新LBA范围。在某些实例中,存储器控制器可将计数器与LBA的范围对准,使得选择特定LBA的计数器可为LBA的简单划分的结果。
在某些实例中,存储器控制器包含用于复位所有计数器的定时器。在一些实例中,定时器可在通电时或在存储器装置检测到主机驻留式FTL特征的起始时启动。在定时器逾时时,可复位计数器。此周期性复位防止为以缓慢速率累积物理地址偏差的LBA提供刷新后的主机映射表数据。假定主机驻留式FTL特征之外的机构可以高效方式提供主机映射数据更新,其还将注意更新尚未快速累积存储器系统的映射信息与主机的映射数据之间的PA偏差的LBA的范围。
图4说明本文中所论述的技术(例如,方法)中的任何一或多个可在其上执行的实例机器400的框图。在替代实施例中,机器400可作为独立装置而操作,或可连接(例如,联网)到其它机器。在联网部署中,机器400可在服务器-客户端网络环境中作为服务器机器、客户端机器或这两者操作。在实例中,机器400可充当对等式(P2P)(或其它分布式)网络环境中的对等式机器。机器400可为个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、移动电话、网络电器、IoT装置、汽车系统,或能够执行(依序或以其它方式)指定将由所述机器采取的动作的指令的任何机器。另外,虽然仅说明单个机器,但术语“机器”也应被视为包含个别地或共同地执行指令集(或多个集合)以执行本文中所论述的方法中的任一或多个(例如,云计算、软件即服务(SaaS)、其它计算机集群配置)的任何机器集合。
如本文中所描述,实例可包含逻辑、组件、装置、封装或机构,或可通过逻辑、组件、装置、封装或机构操作。电路系统为在包含硬件(例如,简单电路、门、逻辑等)的有形实体中实施的电路集合(例如,组)。电路系统成员可随时间推移和基础硬件变化而为灵活的。电路系统包含在操作时可单独或组合地执行具体任务的部件。在实例中,电路系统的硬件可被永恒地设计成实行具体操作(例如,硬连线)。在实例中,电路系统的硬件可包含可变地连接的物理组件(例如,执行单元、晶体管、简单电路等),所述物理组件包含以物理方式修改(例如,不变集中式粒子的磁性、电气可移动放置等)以对具体操作的指令进行编码的计算机可读介质。在连接物理组件时,硬件构成的基础电特性例如从绝缘体改变为导体或反之亦然。指令使得参与的硬件(例如,执行单元或加载机构)能够经由可变连接产生硬件中的电路系统部件以在处于操作中时实行具体任务的部分。因此,在装置操作时计算机可读介质以通信方式耦合到电路系统的其它组件。在实例中,物理组件中的任一个可在多于一个电路系统中的多于一个部件中使用。例如,在操作下,执行单元可在一个时间点在第一电路系统的第一电路中使用,并且由第一电路系统中的第二电路重新使用,或在不同时间由第二电路系统中的第三电路重新使用。
机器(例如,计算机系统)400(例如,主机105、存储器装置110等)可包含处理装置402(例如,硬件处理器、中央处理单元(CPU)、图形处理单元(GPU)、硬件处理器核心,或其任何组合,例如存储器装置110的存储器控制器等)、主存储器404(例如,只读存储器(ROM)、快闪存储器、动态随机存取存储器(DRAM),例如同步DRAM(SDRAM)或Rambus DRAM(RDRAM)等)、静态存储器406(例如,静态随机存取存储器(SRAM)、高速缓存等)以及数据存储系统418,它们中的一些或全部可经由互联件(例如,总线)430彼此通信。
处理装置402可表示一或多个通用处理装置,例如微处理器、中央处理单元等。更确切地说,处理装置可为复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器,或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置402还可为一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。处理装置402可被配置成执行用于执行本文中所论述的操作和步骤的指令426。计算机系统400可进一步包含网络接口装置408以在网络420上通信。
数据存储系统418可包含机器可读存储介质424(也被称作计算机可读介质),其上存储有一或多个指令集426或体现本文中所描述的方法或功能中的任何一或多个的软件。指令426还可在其由计算机系统400执行期间完全或至少部分地驻留在主存储器404内或处理装置402内,主存储器404和处理装置402还构成机器可读存储介质。机器可读存储介质424、数据存储系统418或主存储器404可对应于图1的存储器装置110。
在一个实施方案中,指令426包含用以实施对应于实施如上文关于图2或图3所论述的一或多个主机驻留式FTL操作的功能性的指令。虽然在实例实施方案中将机器可读存储介质424展示为单个介质,但术语“机器可读存储介质”应被认为包含存储一或多个指令集的单个介质或多个介质。术语“机器可读存储介质”还应被认为包含能够存储或编码供机器执行的指令集且使得机器执行本公开的方法中的任何一或多个的任何介质。因此,术语“机器可读存储介质”应被认为包含但不限于固态存储器、光学介质和磁性介质。在实例中,集中式机器可读介质包括具有多个粒子的机器可读介质,所述粒子具有不变(例如,静止)质量。因此,集中式机器可读介质为非暂时性传播信号。集中式机器可读介质的具体实例可包含:非易失性存储器,例如半导体存储器装置(例如,电可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM))和快闪存储器装置;磁盘,例如内部硬盘和可移式盘;磁光盘;以及CD-ROM和DVD-ROM盘。
机器400可进一步包含显示单元、字母数字输入装置(例如,键盘)和用户接口(UI)导航装置(例如,鼠标)。在实例中,显示单元、输入装置或UI导航装置中的一或多个可为触摸屏显示器。机器可包含信号生成装置(例如,扬声器)或一或多个传感器,例如全球定位系统(GPS)传感器、指南针、加速计或一或多个其它传感器。机器400可包含输出控制器,例如串行(例如,通用串行总线(USB)、并行或其它有线或无线(例如,红外(IR)、近场通信(NFC)等)连接,以与一或多个外围装置(例如,打印机、读卡器等)通信或控制所述一或多个外围装置。
指令426(例如,软件、程序、操作系统(OS)等)或存储在数据存储装置418上的其它数据可由主存储器404存取以供处理装置402使用。主存储器404(例如,DRAM)通常快速但易失,并且因此为与适用于长期存储(包含在处于“关断”条件中时)的数据存储装置418(例如,SSD)不同类型的存储装置。供用户或机器400使用的指令426或数据通常加载在主存储器404中,以供处理装置402使用。在主存储器404已满时,可分配来自数据存储装置418的虚拟空间以补充主存储器404;然而,因为数据存储装置418装置通常比主存储器404慢,并且写入速度通常比读取速度慢至少两倍,所以虚拟存储器的使用由于存储装置延时(相较于主存储器404,例如,DRAM)而可能极大地降低用户体验。另外,用于虚拟存储器的数据存储装置418的使用可能极大地减少数据存储装置418的可用使用寿命。
相较于虚拟存储器,虚拟存储器压缩(例如,LinuxTM内核特征“ZRAM”)使用存储器的一部分作为压缩块存储装置以避免对数据存储装置418的分页。在压缩块中进行分页,直到有必要将此类数据写入到数据存储装置418为止。虚拟存储器压缩增大了主存储器404的可用大小,同时减少了对数据存储装置418的损耗。
针对移动电子装置或移动存储装置而优化的存储装置传统上包含MMC固态存储装置(例如,微安全数字(microSDTM)卡等)。MMC装置包含与主机(例如,主机装置)的数个并行接口(例如,8位并行接口),并且常常为从主机可移除和分离的组件。相较之下,eMMCTM装置附接到电路板且被视为主机的组件,其中读取速度比得上基于串行ATATM(串行高级技术(Advanced Technology;AT)附接,或SATA)的SSD装置。然而,对移动装置性能的需求继续增大,以便完全启用虚拟或扩增现实装置,利用提高的网络速度等。响应于此需求,存储装置已从并行移位到串行通信接口。包含控制器和固件的通用快闪存储(UFS)装置使用具有专用读取/写入路径的低电压差分信令(low-voltage differential signaling;LVDS)串行接口与主机通信,从而进一步推进了更高的读取/写入速度。
可进一步利用数个传送协议中的任一个(例如,帧中继、因特网协议(IP)、发射控制协议(TCP)、用户数据报协议(UDP)、超文本传送协议(HTTP)等)经由网络接口装置408使用发射介质在网络420上发射或接收指令424。实例通信网络可包含局域网(LAN)、广域网(WAN)、包数据网络(例如,因特网)、移动电话网络(例如,蜂窝网络)、普通老式电话(POTS)网络,以及无线数据网络(例如,电气和电子工程师协会(IEEE)802.11系列标准,称作IEEE 802.16系列标准,称作/>)、IEEE 802.15.4系列标准、对等式(P2P)网络等等。在实例中,网络接口装置408可包含一或多个物理插孔(例如,以太网、同轴或电话插孔)或一或多个天线以连接到通信网络420。在实例中,网络接口装置408可包含多个天线以使用单输入多输出(SIMO)、多输入多输出(MIMO)或多输入单输出(MISO)技术中的至少一个无线地通信。术语“发射介质”应被认为包含能够存储、编码或携载指令以由机器400执行的任何无形介质,并且包含数字或模拟通信信号或其它无形介质以促进此类软件的通信。
额外注释和实例
实例1是一种方法,其包括:在存储器系统处从主机接收存储器请求,所述存储器请求包含与所述主机相关联的逻辑块地址(LBA)和与所述存储器系统相关联的物理地址;从所述存储器系统的映射表检索与从所述主机接收到的所述LBA相关联的正确物理地址;使用所述正确物理地址执行与所述第一存储器请求相关联的存储器操作;将请求信息、所述LBA和所述正确物理地址返回到所述主机。
在实例2中,根据实例1所述的标的物,其包含在所述存储器系统处接收主机驻留式FTL操作模式的指示。
在实例3中,根据实例1-2中任一项所述的标的物,其中检索所述正确物理地址包含在所述存储器系统的高速缓存中搜索所述映射表的包含所述LBA的一段。
在实例4中,根据实例3所述的标的物,其中检索所述正确物理地址包含:在所述高速缓存中找到所述映射表的所述段;以及使用所述映射表的所述段从所述高速缓存读取所述正确物理地址。
在实例5中,根据实例4所述的标的物,其中所述执行所述存储器操作包含使用所述存储器系统的快闪存储器的所述正确物理地址从所述快闪存储器读取所述LBA的信息。
在实例6中,根据实例3-5中任一项所述的标的物,其中检索所述正确物理地址包含:未在所述高速缓存中找到所述映射表的所述段;从所述存储器系统的快闪存储器读取所述映射表的所述段;以及从所述映射表的所述段读取所述正确物理地址。
在实例7中,根据实例1-6中任一项所述的标的物,其中所述存储器请求为读取请求,并且所述请求信息为从所述存储器系统的快闪存储器检索到的读取数据。
在实例8中,根据实例1-7中任一项所述的标的物,其中所述存储器请求为写入请求,并且所述请求信息为在所述存储器系统的快闪存储器内在与所述LBA相关联的所述正确物理地址处完成写入操作的确认。
在实例9中,根据实例1-8中任一项所述的标的物,其中所述正确物理地址为从所述主机接收到的所述物理地址。
实例10是一种存储器装置,其包括:高速缓存,其被配置成保持所述存储器装置的映射表的一部分;快闪存储器,其被配置成存储和检索主机的用户数据,并且存储所述存储器装置的所述映射表;以及控制器,其被配置成进行以下操作:在存储器系统处从所述主机接收存储器请求,所述存储器请求包含与所述主机相关联的逻辑块地址(LBA)和与所述存储器系统相关联的物理地址;使用所述映射表确定与所述LBA相关联的正确物理地址;使用所述正确物理地址执行与所述存储器请求相关联的存储器操作;以及将所述LBA的信息、所述LBA和所述正确物理地址返回到所述主机。
在实例11中,根据实例10所述的标的物,其中所述控制器被配置成在接收包含所述LBA和所述物理地址的所述存储器请求之前在所述存储器系统处接收性能提升操作模式的指示。
在实例12中,根据实例10-11中任一项所述的标的物,其中所述控制器被配置成在所述存储器系统的所述高速缓存中的所述映射表的所述部分中搜索与所述存储器请求的所述LBA匹配的LBA以确定所述正确物理地址。
在实例13中,根据实例12所述的标的物,其中所述控制器进一步被配置成进行以下操作:将所述存储器请求的所述LBA与所述高速缓存中的所述映射表的所述部分中的LBA匹配;以及从所述高速缓存检索与所述映射表的所述部分中的所述LBA相关联的所述正确物理地址。
在实例14中,根据实例12-13中任一项所述的标的物,其中在所述控制器不能够将所述存储器请求的所述LBA与所述高速缓存中的LBA匹配以确定所述正确物理地址时,所述控制器被配置成进行以下操作:将所述映射表的第二部分从所述快闪存储器读取到所述高速缓存;以及从所述映射表的所述第二部分读取所述正确物理地址。
在实例15中,根据实例10-14中任一项所述的标的物,其中所述存储器请求为读取请求,并且所述LBA的所述信息为从所述存储器装置的快闪存储器检索到的读取数据。
在实例16中,根据实例10-15中任一项所述的标的物,其中所述存储器请求为写入请求,并且所述LBA的所述信息为在所述存储器装置的快闪存储器内在与所述LBA相关联的所述正确物理地址处完成写入操作的确认。
在实例17中,根据实例10-16中任一项所述的标的物,其中所述快闪存储器包含NAND存储器。
在实例18中,根据实例10-17中任一项所述的标的物,其中所述高速缓存包含动态随机存取存储器(DRAM)。
在实例19中,根据实例10-18中任一项所述的标的物,其中所述高速缓存包含静态随机存取存储器(SRAM)。
在实例20中,根据实例10-19中任一项所述的标的物,其中所述存储器请求为编程请求,并且所述LBA的所述信息为在所述存储器装置的快闪存储器内在与所述LBA相关联的所述正确物理地址处完成编程操作的确认。
在实例21中,根据实例10-20中任一项所述的标的物,其中所述存储器请求为擦除请求,并且所述LBA的所述信息为在与所述LBA相关联的所述正确物理地址处完成所述存储器装置的快闪存储器内的擦除操作的确认。
实例22是一种方法,其包括:在非易失性存储器处从主机接收存储器操作请求,所述存储器操作请求包含与所述主机相关联的逻辑块地址(LBA)和与所述非易失性存储器相关联的物理地址;使用存储在所述非易失性存储器上的地址映射确定与所述LBA相关联的正确物理地址;将所述正确物理地址与从所述主机接收到的所述物理地址进行比较;在所述正确物理地址不同于从所述主机接收到的所述物理地址时,在所述非易失性存储器处递增第一计数器;将所述第一计数器与阈值进行比较;以及在所述第一计数器处于或高于所述阈值时,向所述主机提供刷新后的地址映射表。
在实例23中,根据实例22所述的标的物,其中所述向所述主机提供刷新后的地址映射表包含将包含所述LBA的映射表信息块从所述非易失性存储器发送到所述主机。
在实例24中,根据实例22-23中任一项所述的标的物,其中所述存储器操作请求为存储器读取请求。
在实例25中,根据实例22-24中任一项所述的标的物,其中所述存储器操作请求为存储器写入请求。
在实例26中,根据实例22-25中任一项所述的标的物,其包含在预定时间量之后复位所述第一计数器以避免针对很少遇到的偏差刷新主机。
在实例27中,根据实例22-26中任一项所述的标的物,其包含使用所述LBA上的数学运算以确定所述第一计数器与所述LBA相关联,其中所述数学运算的结果的商为所述第一计数器的索引。
在实例28中,根据实例22-27中任一项所述的标的物,其中递增所述第一计数器包含为所述第一计数器分配LBA范围且将分配到所述第一计数器的所述LBA范围存储在所述非易失性存储器上的计数器分配表中。
在实例29中,根据实例28所述的标的物,其包含:在所述非易失性存储器处从所述主机接收第二存储器操作请求,所述第二存储器操作请求包含与所述主机相关联的第二逻辑块地址(LBA)和与所述非易失性存储器相关联的第二物理地址;使用存储在所述非易失性存储器上的所述地址映射表确定与所述第二LBA相关联的第二正确物理地址;将所述第二正确物理地址与从所述主机接收到的所述第二物理地址进行比较;在所述第二正确物理地址不同于从所述主机接收到的所述第二物理地址时:使用所述第二LBA上的模块化数学运算以确定所述第一计数器与所述第二LBA相关联。
在实例30中,根据实例29所述的标的物,如果所述第二LBA在分配到所述第一计数器的所述LBA范围内,则递增所述第一计数器。
在实例31中,根据实例28-30中任一项所述的标的物,其包含:在所述非易失性存储器处从所述主机接收第二存储器操作请求,所述第二存储器操作请求包含与所述主机相关联的第二逻辑块地址(LBA)和与所述非易失性存储器相关联的第二物理地址;使用存储在所述非易失性存储器上的所述地址映射表确定与所述第二LBA相关联的第二正确物理地址;将所述第二正确物理地址与从所述主机接收到的所述第二物理地址进行比较;在所述第二正确物理地址不同于从所述主机接收到的所述第二物理地址时:使用所述第二LBA上的模块化数学运算以确定所述第一计数器与所述第二LBA相关联。
在实例32中,根据实例31所述的标的物,其包含:确定所述第二LBA在分配到所述第一计数器的所述LBA范围内;以及递增所述第一计数器。
实例33是一种存储器装置,其包括:高速缓存,其被配置成保持所述存储器装置的映射表的一部分;快闪存储器,其被配置成存储和检索主机的用户数据,并且存储所述存储器装置的所述映射表;以及控制器,其被配置成进行以下操作:从所述主机接收存储器操作请求,所述存储器操作请求包含与所述主机相关联的逻辑块地址(LBA)和与所述快闪存储器相关联的物理地址;使用所述映射表确定与所述LBA相关联的正确物理地址;将所述正确物理地址与从所述主机接收到的所述物理地址进行比较;在所述正确物理地址不同于从所述主机接收到的所述物理地址时,递增所述存储器装置的计数器;将所述计数器与阈值进行比较;以及在所述计数器满足所述阈值时,向所述主机提供所述映射表的刷新后的部分。
在实例34中,根据实例33所述的标的物,其中所述映射表的所述刷新后的部分包含包含所述LBA和所述正确物理地址的所述映射表的信息块。
在实例35中,根据实例33-34中任一项所述的标的物,其中所述控制器进一步被配置成为所述计数器分配LBA范围且将分配到所述计数器的所述LBA范围存储在所述存储器装置上的计数器分配表中。
在实例36中,根据实例35所述的标的物,其中所述控制器进一步被配置成:从所述主机接收第二存储器操作请求,所述第二存储器操作请求包含与所述主机相关联的第二LBA和与所述快闪存储器相关联的第二物理地址;使用存储在所述快闪存储器上的所述映射表确定与所述第二LBA相关联的第二正确物理地址;将所述第二正确物理地址与从所述主机接收到的所述第二物理地址进行比较;在所述第二正确物理地址不同于从所述主机接收到的所述第二物理地址时:执行所述第二LBA上的数学运算以确定与所述第二LBA相关联的所述第二计数器;从所述计数器分配表检索分配到所述第二计数器的所述LBA范围;将所述第二LBA与分配到所述计数器的所述LBA范围进行比较;如果所述第二LBA不在分配到所述第二计数器的所述LBA范围内:为所述第二计数器分配LBA的第二范围且将分配到所述第二计数器的所述LBA的第二范围存储在所述计数器分配表中;以及复位所述第二计数器。
在实例37中,根据实例36所述的标的物,如果所述第二LBA在分配到所述第二计数器的所述LBA范围内,则所述控制器被配置成递增所述第二计数器。
在实例38中,根据实例36-37中任一项所述的标的物,其中所述数学运算的商为到所述第二计数器的索引。
在实例39中,根据实例33-38中任一项所述的标的物,其中所述存储器操作请求为存储器读取请求。
在实例40中,根据实例33-39中任一项所述的标的物,其中所述存储器操作请求为存储器写入请求。
在实例41中,根据实例33-40中任一项所述的标的物,其中所述计数器在与所述计数器的值无关的预定时间量之后复位以避免针对很少遇到的偏差刷新所述主机。
实例42是包含指令的至少一个机器可读介质,所述指令在由处理电路系统执行时使所述处理电路系统执行操作以实施实例1-41中的任一个。
实例43是一种包括用于实施实例1-41中的任一个的构件的设备。
实例44是一种用以实施实例1-41中的任一个的系统。
实例45是一种实施实例1-41中的任一个的方法。
以上详细描述包含对随附图式的参考,所述随附图式形成详细描述的一部分。所述图式借助于说明展示其中可实践本发明的具体实施例。这些实施例在本文中也称为“实例”。此类实例可包含除了所展示或所描述的那些元件之外的元件。然而,本发明人还预期其中仅提供所展示或所描述的那些元件的实例。此外,本发明人还预期使用关于特定实例(或其一或多个方面)或关于本文中所展示或所描述的其它实例(或其一或多个方面)而展示或描述的那些元件的任何组合或排列的实例(或其一或多个方面)。
在此文件中,如专利文件中常见,使用术语“一”以包含一个或多于一个,这与“至少一个”或“一或多个”的任何其它情形或使用无关。在此文件中,术语“或”用于指代非排它性或,使得除非另有指示,否则“A或B”可包含“A而非B”、“B而非A”以及“A和B”。在所附权利要求书中,术语“包含”和“在其中(in which)”用作相应术语“包括”和“其中(wherein)”的通俗等效术语。同样,在所附权利要求书中,术语“包含”和“包括”是开放式的。在权利要求书中除了在此类术语之后列出的元件之外还包含元件的系统、装置、物品或过程仍视为属于所述权利要求的范围。此外,在以下权利要求书中,术语“第一”、“第二”和“第三”等仅用作标签,并且并不意图对其对象施加数字要求。
在不同实例中,本文中所描述的组件、控制器、处理器、单元、引擎或表可尤其包含存储在物理装置上的物理电路系统或固件。如本文中所使用,“处理器”意指任何类型的计算电路,例如但不限于微处理器、微控制器、图形处理器、数字信号处理器(DSP),或任何其它类型的处理器或处理电路,包含处理器或多核心装置群组。
如本文中所使用,操作存储器单元包含从存储器单元读取、写入到存储器单元或擦除存储器单元。使存储器单元置于既定状态中的操作在本文中被称为“编程”,并且可包含写入到存储器单元或从存储器单元擦除两者(例如,存储器单元可被编程为擦除状态)。
根据本公开的一或多个实施例,位于存储器装置内部或外部的存储器控制器(例如,处理器、控制器、固件等)能够确定(例如,选择、设定、调整、计算、改变、清除、传达、调适、导出、限定、利用、修改、施加等)一定数量的损耗循环或损耗状态(例如,记录损耗循环、在存储器装置的操作发生时对存储器装置的操作进行计数、跟踪其起始的存储器装置的操作、评估对应于损耗状态的存储器装置特性等)。
根据本公开的一或多个实施例,存储器存取装置可被配置成向存储器装置提供每一存储器操作的磨损循环信息。存储器装置控制电路系统(例如,控制逻辑)可被编程以补偿对应于磨损循环信息的存储器装置性能改变。存储器装置可接收损耗循环信息且响应于损耗循环信息而确定一或多个操作参数(例如,值、特性)。
本文中所描述的方法实例可至少部分地由机器、装置或计算机实施。一些实例可包含编码有指令的计算机可读介质、装置可读介质或机器可读介质,所述指令可用于配置电子装置以执行如以上实例中所描述的方法。此类方法的实施方案可包含代码,例如微码、汇编语言代码、高级语言代码等。此类代码可包含用于执行各种方法的计算机可读指令。代码可形成计算机程序产品的各部分。此外,代码可例如在执行期间或在其它时间有形地存储在一或多个易失性或非易失性有形计算机可读介质上。这些有形计算机可读介质的实例可包含但不限于:硬盘、可移式磁盘、可移式光盘(例如,压缩光盘和数字视频光盘)、盒式磁带、记忆卡或棒、随机存取存储器(RAM)、只读存储器(ROM)、固态驱动器(SSD)、通用快闪存储(UFS)装置、嵌入式MMC(embedded MMC;eMMC)装置等。
以上描述意图为说明性的而非限制性的。例如,上述实例(或其一或多个方面)可彼此结合使用。例如本领域的技术人员在查阅以上描述后可使用其它实施例。应理解,所述实施例将不会用于解释或限制权利要求书的范围或含义。同样,在以上详细描述中,可将各种特征分组在一起以简化本公开。不应将这一情况解释为意图未要求保护的公开特征对于任何权利要求来说是必需的。而是,本发明标的物可在于比特定所公开实施例的所有特征要少的特征。因此,特此将所附权利要求书并入到详细描述中,其中每一权利要求作为单独实施例而独立存在,并且预期此类实施例可以各种组合或排列彼此组合。本发明的范围应通过参考所附权利要求书以及此类权利要求书所授予的等效物的完整范围来确定。
Claims (18)
1.一种方法,其包括:
在存储器系统处从主机接收存储器请求,所述存储器请求包含与所述主机相关联的逻辑块地址LBA和与所述存储器系统相关联的第一物理地址;
通过参考逻辑地址到物理地址映射表的高速缓存而从所述LBA识别第二物理地址,所述高速缓存在所述存储器系统的易失性存储器中;
确定所述第二物理地址与在所述存储器请求中接收的所述第一物理地址不匹配;响应于确定所述第二物理地址与在所述存储器请求中接收的所述第一物理地址不匹配:
使用所述第二物理地址执行与所述存储器请求相关联的存储器操作;
生成对所述存储器请求的响应;
递增与所述LBA相关联的计数器;
确定所述计数器超过预定阈值;以及
响应于确定所述计数器超过所述预定阈值,将所述第二物理地址与请求信息和所述LBA一起返回到所述主机。
2.根据权利要求1所述的方法,其包含在所述存储器系统处接收主机驻留式FTL操作模式的指示。
3.根据权利要求1所述的方法,其中所述执行所述存储器操作包含在所述存储器系统的快闪存储器的所述第二物理地址处从所述快闪存储器读取信息。
4.根据权利要求1所述的方法,其进一步包含:
接收具有第二LBA和第三物理地址的第二存储器请求;
确定所述第二LBA未在所述逻辑地址到物理地址映射表的所述高速缓存中;
响应于确定所述第二LBA未在所述逻辑地址到物理地址映射表的所述高速缓存中,从快闪存储器中存储的所述逻辑地址到物理地址映射表识别对应于所述LBA的第四物理地址;
确定所述第四物理地址与在所述第二存储器请求中接收的所述第三物理地址匹配;以及
使用第三物理地址执行与所述第二存储器请求相关联的存储器操作。
5.根据权利要求1所述的方法,其中所述存储器请求为读取请求,并且所述请求信息为从所述存储器系统的快闪存储器检索到的读取数据。
6.根据权利要求1所述的方法,其中所述存储器请求为写入请求,并且所述请求信息为在所述存储器系统的快闪存储器内在与所述LBA相关联的所述第二物理地址处完成写入操作的确认。
7.根据权利要求1所述的方法,其中每当所述LBA的存储器请求中包含的物理地址与所述逻辑地址到物理地址映射表中的物理地址不匹配时,递增所述计数器。
8.一种存储器装置,其包括:
高速缓存,其被配置成保持所述存储器装置的映射表的一部分;
快闪存储器,其被配置成存储和检索主机的用户数据,并且存储所述存储器装置的所述映射表;以及
控制器,其被配置成执行操作,所述操作包括:
在存储器系统处从所述主机接收存储器请求,所述存储器请求包含与所述主机相关联的逻辑块地址LBA和与所述存储器系统相关联的第一物理地址;
通过参考逻辑地址到物理地址映射表的高速缓存而从所述LBA识别第二物理地址,所述高速缓存在所述存储器系统的易失性存储器中;
确定所述第二物理地址与在所述存储器请求中接收的所述第一物理地址不匹配;
响应于确定所述第二物理地址与在所述存储器请求中接收的所述第一物理地址不匹配:
使用所述第二物理地址执行与所述存储器请求相关联的存储器操作;
生成对所述存储器请求的响应;
递增与所述LBA相关联的计数器;
确定所述计数器超过预定阈值;以及
响应于确定所述计数器超过所述预定阈值,将所述第二物理地址与请求信息和所述LBA一起返回到所述主机。
9.根据权利要求8所述的存储器装置,其中所述操作进一步包括在接收包含所述LBA和所述第一物理地址的所述存储器请求之前在所述存储器系统处接收性能提升操作模式的指示。
10.根据权利要求8所述的存储器装置,其中所述操作进一步包括:
接收具有第二LBA和第三物理地址的第二存储器请求;
确定所述第二LBA未在所述逻辑地址到物理地址映射表的所述高速缓存中;
响应于确定所述第二LBA未在所述逻辑地址到物理地址映射表的所述高速缓存中,从快闪存储器中存储的所述逻辑地址到物理地址映射表识别对应于所述LBA的第四物理地址;
确定所述第四物理地址与在所述第二存储器请求中接收的所述第三物理地址匹配;以及
使用第三物理地址执行与所述第二存储器请求相关联的存储器操作。
11.根据权利要求8所述的存储器装置,其中所述存储器请求为读取请求,并且所述请求信息为从所述存储器装置的快闪存储器检索到的读取数据。
12.根据权利要求8所述的存储器装置,其中所述存储器请求为写入请求,并且所述请求信息为在所述存储器装置的快闪存储器内在与所述LBA相关联的所述第二物理地址处完成写入操作的确认。
13.根据权利要求8所述的存储器装置,其中所述快闪存储器包含NAND存储器。
14.根据权利要求8所述的存储器装置,其中所述高速缓存存储在动态随机存取存储器DRAM中。
15.根据权利要求8所述的存储器装置,其中所述高速缓存存储在静态随机存取存储器SRAM中。
16.根据权利要求8所述的存储器装置,其中所述存储器请求为编程请求,并且所述请求信息为在所述存储器装置的快闪存储器内在与所述LBA相关联的所述第二物理地址处完成编程操作的确认。
17.根据权利要求8所述的存储器装置,其中所述存储器请求为擦除请求,并且所述请求信息为在所述存储器装置的快闪存储器内在与所述LBA相关联的所述第二物理地址处完成擦除操作的确认。
18.根据权利要求8所述的存储器装置,其中每当所述LBA的存储器请求中包含的物理地址与所述逻辑地址到物理地址映射表中的物理地址不匹配时,递增所述计数器。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/054,109 | 2018-08-03 | ||
US16/054,072 US11263124B2 (en) | 2018-08-03 | 2018-08-03 | Host-resident translation layer validity check |
US16/054,072 | 2018-08-03 | ||
US16/054,109 US10923202B2 (en) | 2018-08-03 | 2018-08-03 | Host-resident translation layer triggered host refresh |
PCT/US2019/044909 WO2020028804A1 (en) | 2018-08-03 | 2019-08-02 | Host-resident translation layer validity check |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112673357A CN112673357A (zh) | 2021-04-16 |
CN112673357B true CN112673357B (zh) | 2023-03-24 |
Family
ID=69232355
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980059061.6A Active CN112673357B (zh) | 2018-08-03 | 2019-08-02 | 主机驻留式转换层有效性检查 |
Country Status (3)
Country | Link |
---|---|
KR (1) | KR20210028264A (zh) |
CN (1) | CN112673357B (zh) |
WO (1) | WO2020028804A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11263124B2 (en) | 2018-08-03 | 2022-03-01 | Micron Technology, Inc. | Host-resident translation layer validity check |
US10923202B2 (en) | 2018-08-03 | 2021-02-16 | Micron Technology, Inc. | Host-resident translation layer triggered host refresh |
US11226907B2 (en) | 2018-12-19 | 2022-01-18 | Micron Technology, Inc. | Host-resident translation layer validity check techniques |
US11226894B2 (en) | 2018-12-21 | 2022-01-18 | Micron Technology, Inc. | Host-based flash memory maintenance techniques |
US11200179B2 (en) | 2020-02-26 | 2021-12-14 | Micron Technology, Inc. | Facilitating sequential reads in memory sub-systems |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9519578B1 (en) * | 2013-01-28 | 2016-12-13 | Radian Memory Systems, Inc. | Multi-array operation support and related devices, systems and software |
CN107015920A (zh) * | 2015-12-30 | 2017-08-04 | 三星电子株式会社 | 存储设备和存储设备的操作方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9244833B2 (en) * | 2012-05-30 | 2016-01-26 | Silicon Motion, Inc. | Data-storage device and flash memory control method |
US9164888B2 (en) * | 2012-12-10 | 2015-10-20 | Google Inc. | Using a logical to physical map for direct user space communication with a data storage device |
CN104794063A (zh) * | 2014-01-17 | 2015-07-22 | 光宝科技股份有限公司 | 一种具备电阻式存储器的固态储存装置的控制方法 |
US10331364B2 (en) * | 2015-10-16 | 2019-06-25 | Cnex Labs, Inc. | Method and apparatus for providing hybrid mode to access SSD drive |
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 |
-
2019
- 2019-08-02 WO PCT/US2019/044909 patent/WO2020028804A1/en active Application Filing
- 2019-08-02 KR KR1020217005906A patent/KR20210028264A/ko not_active Application Discontinuation
- 2019-08-02 CN CN201980059061.6A patent/CN112673357B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9519578B1 (en) * | 2013-01-28 | 2016-12-13 | Radian Memory Systems, Inc. | Multi-array operation support and related devices, systems and software |
CN107015920A (zh) * | 2015-12-30 | 2017-08-04 | 三星电子株式会社 | 存储设备和存储设备的操作方法 |
Also Published As
Publication number | Publication date |
---|---|
KR20210028264A (ko) | 2021-03-11 |
WO2020028804A1 (en) | 2020-02-06 |
CN112673357A (zh) | 2021-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112673357B (zh) | 主机驻留式转换层有效性检查 | |
US11734170B2 (en) | Host-resident translation layer validity check | |
US11487653B2 (en) | L2P translation techniques in limited RAM systems to increase random write performance using multiple L2P caches | |
US10852964B2 (en) | Host-resident translation layer validity check techniques | |
US11809311B2 (en) | Host-based flash memory maintenance techniques | |
US11687469B2 (en) | Host-resident translation layer validity check techniques | |
US10923202B2 (en) | Host-resident translation layer triggered host refresh | |
US11157404B2 (en) | Remapping techniques for a range of logical block addresses in a logical to physical table of NAND storage | |
US11295806B2 (en) | Large file integrity techniques | |
US20210248078A1 (en) | Flash memory persistent cache techniques | |
US11210093B2 (en) | Large data read techniques |
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 |