CN115268764A - 使用模式检测预取信息的技术 - Google Patents

使用模式检测预取信息的技术 Download PDF

Info

Publication number
CN115268764A
CN115268764A CN202210474887.2A CN202210474887A CN115268764A CN 115268764 A CN115268764 A CN 115268764A CN 202210474887 A CN202210474887 A CN 202210474887A CN 115268764 A CN115268764 A CN 115268764A
Authority
CN
China
Prior art keywords
command
commands
read
sequential
memory system
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210474887.2A
Other languages
English (en)
Inventor
V·乌里恩卡拉
尼拉伊玛提·N·S
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Micron Technology Inc
Original Assignee
Micron Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Micron Technology Inc filed Critical Micron Technology Inc
Publication of CN115268764A publication Critical patent/CN115268764A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6022Using a prefetch buffer or dedicated prefetch cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6024History based prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本申请案是针对使用模式检测预取信息的技术。一些存储器系统可支持在检测到读取命令顺序模式的情况下预取信息,例如逻辑到物理L2P映射表、数据或这两者。在一些实例中,所述存储器系统可存储由接收到的读取命令指示的逻辑地址列表并且可确定所述列表是否对应于与中介类似写入命令无关的顺序模式。所述列表可存储用于读取命令的先前逻辑地址,从而允许所述存储器系统确定后续读取命令是否形成顺序模式。另外或替代地,所述存储器系统可跟踪休眠命令与其它命令(例如,顺序读取命令)的比率并且可在所述跟踪的比率满足(例如,超过)阈值比率的情况下制止预取用于检测到的序列的L2P映射表。

Description

使用模式检测预取信息的技术
交叉引用
本专利申请案主张乌林卡拉(Urrinkala)等人在2022年4月18日申请的标题为“使用模式检测预取信息的技术(TECHNIQUES FOR PRE-FETCHING INFORMATION USINGPATTERN DETECTION)”的美国专利申请案第17/723,096号的优先权,以及乌林卡拉等人在2021年4月29日申请的标题为“使用模式检测预取信息的技术(TECHNIQUES FOR PRE-FETCHING INFORMATION USING PATTERN DETECTION)”的美国临时专利申请案第63/181,760号的权益,所述两篇美国申请案均明确地以全文引用的方式并入本文中。
技术领域
技术领域涉及使用模式检测预取信息的技术。
背景技术
存储器装置广泛用于将信息存储在例如计算机、用户装置、相机、数字显示器等的各种电子装置中。通过将存储器装置内的存储器单元编程为各种状态来存储信息。举例来说,二进制存储器单元可被编程为常常对应于逻辑1或逻辑0的两个支持状态中的一个。在一些实例中,单个存储器单元可支持多于两个可能状态,存储器单元可存储所述两个可能状态中的任一个。为了存取由存储器装置存储的信息,组件可读取或感测存储器装置内的一或多个存储器单元的状态。为了存储信息,组件可将存储器装置内的一或多个存储器单元写入或编程到相应状态。
存在各种类型的存储器装置,包含磁性硬盘、随机存取存储器(RAM)、只读存储器(ROM)、动态RAM(DRAM)、同步动态RAM(SDRAM)、静态RAM(SRAM)、铁电RAM(FeRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)、快闪存储器、相变存储器(PCM)、3维交叉点存储器(3D交叉点)、“或非”(NOR)和“与非”(NAND)存储器装置等。存储器装置可以是易失性或非易失性的。除非由外部电源周期性更新,否则易失性存储器单元(例如,DRAM单元)可随时间推移而丢失其编程状态。非易失性存储器单元(例如,NAND存储器单元)即使在不存在外部电源的情况下仍可在很长一段时间内维持其编程状态。
发明内容
描述一种设备。所述设备可包含存储器装置;和控制器,其与所述存储器装置耦合且被配置成使得所述设备:从主机系统接收多个读取命令和一或多个类似写入命令,所述一或多个类似写入命令中的每一个与所述存储器装置进行的至少一个对应写入操作相关联;根据所述多个读取命令的执行次序,存储由所述多个读取命令指示的逻辑地址列表;至少部分地基于由所述多个读取命令指示的所述逻辑地址、所述多个读取命令的相应传送长度或这两者,确定所述逻辑地址列表是否对应于顺序模式;和至少部分地基于确定所述逻辑地址列表对应于所述顺序模式,从所述存储器装置预取数据以供用于后续读取命令。
描述另一种设备。所述设备可包含存储器装置;和控制器,其与所述存储器装置耦合且被配置成使得所述设备:接收多个读取命令和一或多个休眠命令;至少部分地基于由所述多个读取命令指示的相应逻辑地址、所述多个读取命令的相应传送长度或这两者来检测逻辑地址顺序模式;至少部分地基于将用于预取定义用于下一逻辑地址的逻辑到物理地址映射的表的阈值与一比率进行比较,确定是否根据所述顺序模式从所述存储器装置预取所述表,所述比率是休眠命令与所述多个读取命令中的顺序读取命令的比率;和至少部分地基于确定是否预取所述表来执行后续读取命令。
描述一种存储代码的非暂时性计算机可读媒体。所述存储代码的非暂时性计算机可读媒体可包含指令,所述指令在由电子装置的处理器执行时致使所述电子装置:从主机系统接收多个读取命令和一或多个类似写入命令,所述一或多个类似写入命令中的每一个与存储器装置进行的至少一个对应写入操作相关联;根据所述多个读取命令的执行次序,存储由所述多个读取命令指示的逻辑地址列表;至少部分地基于由所述多个读取命令指示的所述逻辑地址、所述多个读取命令的相应传送长度或这两者,确定所述逻辑地址列表是否对应于顺序模式;和至少部分地基于确定所述逻辑地址列表对应于所述顺序模式,从所述存储器装置预取数据以供用于后续读取命令。
附图说明
图1和2说明根据本文所公开的实例的支持使用模式检测预取信息的技术的系统的实例。
图3说明根据本文所公开的实例的支持用于使用模式检测预取信息的技术的命令集的实例。
图4说明根据本文所公开的实例的支持用于使用模式检测预取信息的技术的过程流的实例。
图5A和5B说明根据本文所公开的实例的支持使用模式检测预取信息的技术的命令集的实例。
图6说明根据本文所公开的实例的支持使用模式检测预取信息的技术的过程流的实例。
图7示出根据本文所公开的实例的支持使用模式检测预取信息的技术的存储器系统的框图。
图8和9示出说明根据本文所公开的实例的支持使用模式检测预取信息的技术的方法的流程图。
具体实施方式
一些存储器系统可支持从存储器装置预取信息。举例来说,如果存储器系统检测到读取命令顺序模式,那么存储器系统可预测所述序列中的下一读取命令并且在执行读取命令之前检索经预测读取命令的信息(例如,逻辑到物理(L2P)映射表、数据或这两者)。然而,存储器系统执行的一些命令序列可造成预取技术效率低下。举例来说,每当存储器系统接收到类似写入命令(例如,涉及将数据写入到存储器装置的任何命令)时,可重置模式检测过程,即使类似写入命令在顺序读取命令集内是交错式的仍需所述重置。归因于类似写入命令重置模式检测(尤其是在先前和后续读取命令对应于顺序模式的情况下)可减少由存储器系统执行的预取的量,从而有效地减少预取技术提供的时延增加。另外或替代地,休眠命令可致使存储器系统清空来自高速缓存器的信息,包含预取的信息。如果存储器系统执行与顺序读取命令相比相对大数量的休眠命令(例如,如果休眠命令与顺序读取命令的比率大于阈值比率),那么存储器系统可将L2P映射表重复预取到高速缓存器中并且从高速缓存器中清空出表,从而增加与预取技术相关联的处理开销并且减少预取技术提供的性能增加。
为了支持高效预取技术,存储器系统可在处理下一类似写入或非顺序读取命令之前存储顺序读取命令数据(例如,逻辑地址、命令长度)。在一些实例中,存储器系统可存储逻辑地址列表中的顺序读取命令数据。代替在接收到类似写入命令的情况下重置模式检测,存储器系统可维持逻辑地址列表中的至少最新的顺序读取命令的逻辑地址信息,使得存储器系统可确定后续接收到的读取命令是否对应于序列中的下一命令。通过维持顺序读取命令集的模式检测而不管接收到一或多个中介类似写入命令,存储器系统可增加检测顺序模式的可能性并且对应地,增加由存储器系统执行的预取的量。增加由存储器系统执行的预取的量可提高存储器系统的性能并且减少读取顺序数据时涉及的时延。
另外或替代地,存储器系统可跟踪休眠命令与其它命令(例如,顺序读取命令或任何其它命令)的比率。如果存储器系统检测到顺序模式但确定休眠命令与其它命令的比率满足(例如,超过)阈值比率,那么存储器系统可制止预取信息(例如,L2P映射表)以避免重复预取和清空信息。举例来说,每个休眠命令可从高速缓存器清空任何预取的表,使得存储器系统可重新提取表用于下一顺序读取命令。休眠命令与顺序读取命令的相当大的比率可引起重复预取和清空L2P映射表。通过跟踪比率并且在存储器系统执行相当大数量的休眠命令(例如,高于阈值比率)的情况下制止预取表,存储器系统可降低冗余或过量预取程序,提高存储器系统的性能。
首先在参考图1和2所描述的系统和装置的上下文中描述本公开的特征。在参考图3到6的命令集和过程流的上下文中另外描述本公开的特征。在参考图7到9的涉及使用模式检测预取信息的技术的设备图和流程图的上下文中进一步说明和描述本公开的这些和其它特征。
图1说明根据本文所公开的实例的支持使用模式检测预取信息的技术的系统100的实例。系统100包含与存储器系统110耦合的主机系统105。
存储器系统110可以是或包含任何装置或装置的集合,其中装置或装置的集合包含至少一个存储器阵列。举例来说,存储器系统110可为或包含通用快闪存储(UFS)装置、嵌入式多媒体控制器(eMMC)装置、快闪装置、通用串行总线(USB)快闪装置、安全数字(SD)卡、固态驱动器(SSD)、硬盘驱动器(HDD)、双列直插式存储器模块(DIMM)、小型DIMM(SO-DIMM),或非易失性DIMM(NVDIMM),以及其它可能性。
系统100可包含在计算装置中,所述计算装置如台式计算机、手提式计算机、网络服务器、移动装置、交通工具(例如,飞机、无人机、火车、汽车或其它运输工具)、具物联网(IoT)功能的装置、嵌入式计算机(例如,包含在交通工具、工业设备或联网商业装置中的嵌入式计算机),或包含存储器和处理装置的任何其它计算装置。
系统100可包含可与存储器系统110耦合的主机系统105。在一些实例中,此耦合可包含与主机系统控制器106的接口,所述主机系统控制器106可以是配置成使得主机系统105根据如本文中所描述的实例执行各种操作的控制器或控制组件的实例。主机系统105可包含一或多个装置,且在一些情况下可包含处理器芯片组和通过处理器芯片组执行的软件堆栈。举例来说,主机系统105可包含被配置成用于与存储器系统110或其中的装置通信的应用程序。处理器芯片组可包含一或多个核心、一或多个高速缓存(例如,主机系统105本地的或包含在主机系统105中的存储器)、存储器控制器(例如,NVDIMM控制器),和存储协议控制器(例如,外围组件互连高速(PCIe)控制器、串行高级技术附件(SATA)控制器)。主机系统105可使用存储器系统110例如将数据写入到存储器系统110以及从存储器系统110读取数据。虽然图1中示出一个存储器系统110,但主机系统105可与任何数量的存储器系统110耦合。
主机系统105可经由至少一个物理主机接口与存储器系统110耦合。在一些情况下,主机系统105和存储器系统110可被配置成使用相关联协议经由物理主机接口通信(例如,以在存储器系统110与主机系统105之间交换或以其它方式传达控制、地址、数据和其它信号)。物理主机接口的实例可包含但不限于SATA接口、UFS接口、eMMC接口、PCIe接口、USB接口、光纤通道接口、小型计算机系统接口(SCSI)、串行连接的SCSI(SAS)、双数据速率(DDR)接口、DIMM接口(例如,支持DDR的DIMM套接接口)、开放NAND快闪接口(ONFI),和低电力双数据速率(LPDDR)接口。在一些实例中,一或多个此类接口可包含在主机系统105的主机系统控制器106与存储器系统110的存储器系统控制器115中或以其它方式在其间得到支持。在一些实例中,主机系统105可经由用于包含在存储器系统110中的每一存储器装置130的相应物理主机接口或经由用于包含在存储器系统110中的每一类型的存储器装置130的相应物理主机接口而与存储器系统110耦合(例如,主机系统控制器106可与存储器系统控制器115耦合)。
存储器系统110可包含存储器系统控制器115和一或多个存储器装置130。存储器装置130可以包含任何类型的存储器单元(例如,非易失性存储器单元、易失性存储器单元,或其任何组合)的一或多个存储器阵列。虽然图1的实例中示出两个存储器装置130-a和130-b,但存储器系统110可包含任何数量的存储器装置130。此外,如果存储器系统110包含多于一个存储器装置130,那么存储器系统110内的不同存储器装置130可包含相同或不同类型的存储器单元。
存储器系统控制器115可与主机系统105耦合及通信(例如,经由物理主机接口),并且可以是被配置成致使存储器系统110根据如本文所描述的实例执行各种操作的控制器或控制组件的实例。存储器系统控制器115还可与存储器装置130耦合并通信以在存储器装置130处执行一般可称为存取操作的操作,例如读取数据、写入数据、擦除数据或刷新数据,以及其它此类操作。在一些情况下,存储器系统控制器115可从主机系统105接收命令且与一或多个存储器装置130通信以执行此些命令(例如,在所述一或多个存储器装置130内的存储器阵列处)。举例来说,存储器系统控制器115可从主机系统105接收命令或操作并且可将所述命令或操作转换成指令或适当命令以实现对存储器装置130的所要存取。在一些情况下,存储器系统控制器115可与主机系统105以及一或多个存储器装置130交换数据(例如,响应于或以其它方式结合来自主机系统105的命令)。举例来说,存储器系统控制器115可将与存储器装置130相关联的响应(例如,数据包或其它信号)转换成用于主机系统105的相应信号。
存储器系统控制器115可配置成用于与存储器装置130相关联的其它操作。举例来说,存储器系统控制器115可执行或管理操作,例如耗损均衡操作、垃圾收集操作、例如错误检测操作或错误校正操作的错误控制操作、加密操作、高速缓存操作、媒体管理操作、后台刷新、健康监测,以及与来自主机系统105的命令相关联的逻辑地址(例如,逻辑块地址(LBA))和与存储器装置130内的存储器单元相关联的物理地址(例如,物理块地址)之间的地址转译。
存储器系统控制器115可包含硬件,如一或多个集成电路或离散组件、缓冲存储器或其组合。硬件可包含具有专用(例如,硬译码)逻辑的电路系统,以执行本文中归于存储器系统控制器115的操作。存储器系统控制器115可为或包含微控制器、专用逻辑电路系统(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)、数字信号处理器(DSP)),或任何其它合适的处理器或处理电路。
存储器系统控制器115还可包含本地存储器120。在一些情况下,本地存储器120可包含只读存储器(ROM)或其它存储器,其可存储可由存储器系统控制器115执行的操作代码(例如,可执行指令)以执行本文中归因于存储器系统控制器115的功能。在一些情况下,本地存储器120可另外或替代地包含静态随机存取存储器(SRAM)或其它存储器,其可由存储器系统控制器115用于例如与本文中归因于存储器系统控制器115的功能有关的内部存储或计算。另外或替代地,本地存储器120可充当用于存储器系统控制器115的高速缓存器。举例来说,数据可在从存储器装置130读取或写入到存储器装置130的情况下存储在本地存储器120中,且所述数据可在本地存储器120内可用以由主机系统105根据高速缓存策略(例如,以相对于存储器装置130的减少的时延)后续检索或操控(例如,更新)。
虽然图1中的存储器系统110的实例已说明为包含存储器系统控制器115,但在某些情况下,存储器系统110可不包含存储器系统控制器115。举例来说,存储器系统110可另外或替代地依赖于外部控制器(例如,由主机系统105实施)或可分别在存储器装置130内部的一或多个本地控制器135,以执行本文中归于存储器系统控制器115的功能。一般来说,本文中归于存储器系统控制器115的一或多个功能可在一些情况下改为由主机系统105、本地控制器135或其任何组合进行。在一些情况下,至少部分地由存储器系统控制器115管理的存储器装置130可称为受管理存储器装置。受管理存储器装置的实例是受管理NAND(MNAND)装置。
存储器装置130可包含非易失性存储器单元的一或多个阵列。举例来说,存储器装置130可包含NAND(例如,NAND快闪)存储器、ROM、相变存储器(PCM)、自选存储器、其它基于硫族化物的存储器、铁电随机存取存储器(RAM)(FeRAM)、磁性RAM(MRAM)、NOR(例如,NOR快闪)存储器、自旋转移力矩(STT)-MRAM、导电桥接RAM(CBRAM)、电阻式随机存取存储器(RRAM)、基于氧化物的RRAM(OxRAM)、电可擦除可编程ROM(EEPROM),或其任何组合。另外或替代地,存储器装置130可包含易失性存储器单元的一或多个阵列。举例来说,存储器装置130可包含RAM存储器单元,例如动态RAM(DRAM)存储器单元和同步DRAM(SDRAM)存储器单元。
在一些实例中,存储器装置130可(例如,在同一裸片上或在同一封装内)包含本地控制器135,其可对相应存储器装置130的一或多个存储器单元执行操作。本地控制器135可结合存储器系统控制器115操作,或可执行本文中归于存储器系统控制器115的一或多个功能。举例来说,如图1所说明,存储器装置130-a可以包含本地控制器135-a,且存储器装置130-b可以包含本地控制器135-b。
在一些情况下,存储器装置130可以是或包含NAND装置(例如,NAND快闪装置)。存储器装置130可为或包含存储器裸片160。举例来说,在一些情况下,存储器装置130可以是包含一或多个裸片160的封装。在一些实例中,裸片160可以是从晶片切割的一块电子级半导体(例如,从硅晶片切割的硅裸片)。每个裸片160可包含一或多个平面165,且每个平面165可包含相应的块集170,其中每个块170可包含相应的页集175,并且每个页175可包含存储器单元集。
在一些情况下,NAND存储器装置130可包含被配置成各自存储一个信息位的存储器单元,其可被称为单层级单元(SLC)。另外或替代地,NAND存储器装置130可包含配置成各自存储多个信息位的存储器单元,如果配置成各自存储两个信息位,则其可称为多层级单元(MLC),如果配置成各自存储三个信息位,则其可称为三层级单元(TLC),如果配置成各自存储四个信息位,则其可称为四层级单元(QLC),或更一般地称为多层级存储器单元。多层级存储器单元可相对于SLC存储器单元提供更大的存储密度,但在一些情况下,可能涉及用于支持电路系统的更窄读取或写入裕度或更大复杂度。
在一些情况下,平面165可以指块170的群组,并且在一些情况下,并行操作可在不同平面165内进行。举例来说,并行操作可在不同块170内的存储器单元上执行,只要不同块170是在不同平面165中即可。在一些情况下,在不同平面165中执行并行操作可具有一或多个限制,例如相同操作是在相应平面165内具有相同页地址的不同页175内的存储器单元上执行的(例如,涉及命令解码、页地址解码电路系统或跨平面165共享的其它电路系统)。
在一些情况下,块170可包含组织成行(页175)和列(例如,串,未示出)的存储器单元。举例来说,同一页175中的存储器单元可共享共同字线(例如,与其耦合),并且同一串中的存储器单元可共享共同数字线(其可替代地被称为位线)(例如,与其耦合)。
对于一些NAND架构,存储器单元可在第一粒度级别(例如,在页粒度级别)读取和编程(例如,写入),但可在第二粒度级别(例如,在块粒度级别)擦除。也就是说,页175可为可独立地编程或读取(例如,作为单个编程或读取操作的一部分同时编程或读取)的存储器(例如,存储器单元的集合)的最小单元,且块170可为可独立地擦除(例如,作为单个擦除操作的一部分同时擦除)的存储器(例如,存储器单元的集合)的最小单元。此外,在一些情况下,NAND存储器单元可在其可用新数据重写之前进行擦除。因此,举例来说,在一些情况下,可直到包含页175的整个块170已被擦除才更新所使用的页175。
在一些情况下,为了更新块170内的一些数据同时保留块170内的其它数据,存储器装置130可将待保留的数据拷贝到新块170且将经更新数据写入到新块170的一或多个剩余页。存储器装置130(例如,本地控制器135)或存储器系统控制器115可将保持在旧块170中的数据标记或以其它方式指定为无效或过时,且可更新L2P映射表以使数据的逻辑地址(例如,LBA)与新的有效块170而不是旧的无效块170相关联。在一些情况下,例如归因于时延或耗损考虑因素,可执行此类复制和重新映射而非擦除和重写整个旧块170。在一些情况下,L2P映射表的一或多个副本可存储在存储器装置130的存储器单元内(例如,一或多个块170或平面165内)以供本地控制器135或存储器系统控制器115使用(例如,参考和更新)。
在一些情况下,可维护L2P映射表且可在页粒度级别上将数据标记为有效或无效,并且页175可包含有效数据、无效数据或不包含数据。无效数据可为由于数据的较新版本或经更新版本存储在存储器装置130的不同页175中而变得过时的数据。无效数据可能先前已被编程到无效页175,但可能不再与有效逻辑地址,例如被主机系统105引用的逻辑地址相关联。有效数据可以是存储在存储器装置130上的这类数据的最新版本。不包含数据的页175可为从未被写入或已被清除的页175。
系统100可包含支持使用模式检测预取信息的技术的任何数量的非暂时性计算机可读媒体。举例来说,主机系统105、存储器系统控制器115或存储器装置130可包含或可以其它方式存取存储指令(例如,固件)以用于执行本文中属于主机系统105、存储器系统控制器115或存储器装置130的功能的一或多个非暂时性计算机可读媒体。举例来说,此类指令可在由主机系统105(例如,由主机系统控制器106)、由存储器系统控制器115或由存储器装置130(例如,由本地控制器135)执行的情况下,致使主机系统105、存储器系统控制器115或存储器装置130执行如本文中所描述的一或多个相关联功能。
一些存储器系统110可支持从存储器装置130预取信息(例如,数据、L2P映射表)。预取可涉及在执行存取命令之前检索用于后续存取命令(例如,读取命令)的信息。举例来说,如果存储器系统110检测到读取命令集包含顺序读取命令,其中一个读取命令在第一逻辑地址(例如,LBA)处结束且下一读取命令在第一逻辑地址之后的下一逻辑地址(例如,LBA)处开始,那么存储器系统110可预测用于序列中的下一读取命令的L2P映射表、数据或这两者。相应地,存储器系统110可在执行下一读取命令之前从存储器装置130提取(例如,检索)预测的L2P映射表、数据或这两者并且可将L2P映射表、数据或这两者存储于高速缓存器(例如,存储器系统控制器115处的本地存储器120)中。存储器系统110可在用于读取命令的L2P映射表、数据或这两者已经预取并且在本地存储于高速缓存器处的情况下减少执行读取命令时涉及的时延,原因是从高速缓存器读取数据与从存储器装置130读取数据相比可涉及相对较低的时延。
然而,在存储器系统110处执行的一些命令序列可引起预取技术效率低下。举例来说,如果预取涉及检测顺序命令中的顺序LBA模式,那么每当存储器系统110接收到类似写入命令时(即使存储器系统110从主机系统105接收到的读取命令是顺序的仍需)重置模式检测过程。类似写入命令可为涉及将数据写入到存储器装置130的任何命令的实例,例如写入命令、取消映射命令、格式单元命令、安全协议输出命令、开始停止单元命令或任何其它涉及写入操作的命令。类似写入命令可为取消映射命令的实例(例如,其中命令不指示存储器装置130中的特定逻辑地址)。重置模式检测(即使读取命令对应于顺序模式)可减小存储器系统110触发预取的可能性,从而减少预取技术支持的时延增加。另外或替代地,休眠命令可致使存储器系统110清空来自高速缓存器的信息。如果存储器系统110执行与顺序读取命令相比相对大数量的休眠命令(例如,如果休眠命令与顺序读取命令的比率大于阈值比率),那么存储器系统110可将L2P映射表重复预取到高速缓存器中并且从高速缓存器中清空出表,从而减少与预取技术相关联的性能增加。
为了支持高效预取技术,存储器系统110可在处理下一类似写入或非顺序读取命令之前存储顺序读取命令数据(例如,逻辑地址、命令长度)。在一些实例中,存储器系统110可将顺序读取命令数据存储于存储器系统控制器115处(例如,本地存储器120中)。代替在接收到类似写入命令或数量小于阈值数量的非顺序读取命令的情况下重置模式检测,存储器系统110可维持至少最新顺序读取命令的逻辑地址信息,使得存储器系统110可确定后续接收到的读取命令是否对应于序列中的下一命令。通过维持模式检测而不管从主机系统105接收到一或多个类似写入命令、非顺序读取命令或这两者,存储器系统110可增加检测顺序模式并且对应地,触发数据预取的可能性。增加由存储器系统110执行的预取数量可提高存储器系统110的性能。
另外或替代地,存储器系统110可跟踪休眠命令与其它命令(例如,顺序读取命令或任何其它命令)的比率。如果存储器系统110检测到顺序模式,但确定休眠命令与其它命令的比率满足阈值比率,那么存储器系统110可制止预取信息(例如,L2P映射表、数据或这两者)以避免重复预取和清空信息。在存储器系统110执行相当大数量的休眠命令(例如,高于阈值比率)的情况下制止预取信息可提高存储器系统110的性能并且降低冗余或过量预取程序。
图2说明根据本文所公开的实例的支持使用模式检测预取信息的技术的系统200的实例。系统200可以是参考图1所描述的系统100或其方面的实例。系统200可包含存储器系统210,其配置成存储从主机系统205接收到的数据,且如果由主机系统205使用存取命令(例如,读取命令或写入命令)来请求,那么将数据发送到主机系统205。系统200可实施参考图1所描述的系统100的方面。举例来说,存储器系统210和主机系统205可分别是存储器系统110和主机系统105的实例。
存储器系统210可包含存储器装置240,以例如响应于从主机系统205接收到存取命令而存储在存储器系统210与主机系统205之间传送的数据,如本文中所描述。存储器装置240可包含如参考图1所描述的一或多个存储器装置。举例来说,存储器装置240可包含NAND存储器、PCM、自选存储器、3D交叉点、其它基于硫族化物的存储器、FERAM、MRAM、NOR(例如,NOR快闪)存储器、STT-MRAM、CBRAM、RRAM,或OxRAM。
存储器系统210可包含存储控制器230以用于控制直接进出存储器装置240的数据的传递,例如用于存储数据、检索数据,和确定待将数据存储在其中和待从其检索数据的存储器位置。存储控制器230可使用特定于每种类型的存储器装置240的协议直接或经由总线(未示出)与存储器装置240通信。在一些情况下,单个存储控制器230可用于控制相同或不同类型的多个存储器装置240。在一些情况下,存储器系统210可包含多个存储控制器230,例如,用于每一类型的存储器装置240的不同存储控制器230。在一些情况下,存储控制器230可实施如参考图1所描述的本地控制器135的方面。
存储器系统210可另外包含用于与主机系统205通信的接口220,以及用于临时存储正在主机系统205与存储器装置240之间传送的数据的缓冲器225。接口220、缓冲器225和存储控制器230可用于在主机系统205与存储器装置240之间转译数据(例如,如由数据路径250所展示),且可统称为数据路径组件。
在传送期间使用缓冲器225临时地存储数据可允许在处理命令时缓冲数据,由此减少命令之间的时延且允许与命令相关联的任意数据大小。这还可允许处置命令的突发,且一旦突发已停止,便可存储或传输(或两者)缓冲的数据。缓冲器225可包含相对快速的存储器(例如,一些类型的易失性存储器,例如SRAM或DRAM),或硬件加速器或这两者,以允许快速地将数据存储到缓冲器225和从缓冲器225检索数据。缓冲器225可包含用于缓冲器225与其它组件之间的双向数据传送的数据路径开关组件。
数据在缓冲器225内的临时存储可指在执行存取命令期间数据在缓冲器225中的存储。也就是说,在完成存取命令后,相关联数据可能不再维持在缓冲器225中(例如,可用额外存取命令的数据覆写)。此外,缓冲器225可以是非高速缓存缓冲器。也就是说,主机系统205可能不直接从缓冲器225读取数据。举例来说,可将读取命令添加到队列中,而无需将地址与已在缓冲器225中的地址进行匹配的操作(例如,无需高速缓存地址匹配或查找操作)。
存储器系统210可另外包含用于执行从主机系统205接收到的命令且在移动数据时控制数据路径组件的存储器系统控制器215。存储器系统控制器215可以是参考图1所描述的存储器系统控制器115的实例。总线235可用于在系统组件之间通信。
在一些情况下,一或多个队列(例如,命令队列260、缓冲器队列265和存储队列270)可用于控制存取命令的处理和对应数据的移动。这在例如由存储器系统210并行处理来自主机系统205的多于一个存取命令的情况下可为有益的。作为可能实施方案的实例,分别在接口220、存储器系统控制器215及存储控制器230处描绘命令队列260、缓冲器队列265及存储队列270。然而,队列(如果使用)可位于存储器系统210内的任何位置。
在主机系统205与存储器装置240之间传送的数据可在存储器系统210中采用与非数据信息(例如,命令、状态信息)不同的路径。举例来说,存储器系统210中的系统组件可使用总线235彼此通信,而数据可通过数据路径组件而不是总线235使用数据路径250。存储器系统控制器215可通过在总线235上与数据路径组件通信(例如,使用特定于存储器系统210的协议)而控制如何以及是否在主机系统205与存储器装置240之间传送数据。
如果主机系统205将存取命令传输到存储器系统210,那么命令可由接口220例如根据协议(例如,UFS协议或eMMC协议)接收。因此,接口220可视为存储器系统210的前端。在接收到每一存取命令后,接口220可例如经由总线235将命令传达到存储器系统控制器215。在一些情况下,可通过接口220将每一命令添加到命令队列260,以将命令传达到存储器系统控制器215。
存储器系统控制器215可确定已使用接口220接收到存取命令。在一些情况下,存储器系统控制器215可确定已通过从命令队列260检索命令接收到存取命令。在例如已经由存储器系统控制器215从命令队列260检索命令之后,可将所述命令从所述命令队列260移除。在一些情况下,存储器系统控制器215可致使接口220例如经由总线235从命令队列260移除命令。
在确定已接收到存取命令后,存储器系统控制器215可执行存取命令。对于读取命令,这可意味着从存储器装置240获得数据并且将数据发射到主机系统205。对于写入命令,这可意味着从主机系统205接收数据并且将数据移动到存储器装置240。
在任一情况下,存储器系统控制器215可将缓冲器225用于正在从主机系统205接收的或正发送到主机系统205的数据的临时存储。缓冲器225可视为存储器系统210的中端。在一些情况下,缓冲器地址管理(例如,指向缓冲器225中的地址位置的指针)可由接口220、缓冲器225或存储控制器230中的硬件(例如,专用电路)进行。
为了处理从主机系统205接收到的写入命令,存储器系统控制器215可首先确定缓冲器225是否具有足够可用空间来存储与命令相关联的数据。举例来说,存储器系统控制器215可例如经由固件(例如,控制器固件)确定在缓冲器225内可用于存储与写入命令相关联的数据的空间量。
在一些情况下,缓冲器队列265可用于控制与存储在缓冲器225中的数据相关联的命令流,所述命令流包含写入命令。缓冲器队列265可包含与当前存储在缓冲器225中的数据相关联的存取命令。在一些情况下,命令队列260中的命令可通过存储器系统控制器215移动到缓冲器队列265,并且可在相关联数据存储在缓冲器225中的同时保持在缓冲器队列265中。在一些情况下,缓冲器队列265中的每一命令可与缓冲器225处的地址相关联。也就是说,可维持指示与每一命令相关联的数据存储在缓冲器225中何处的指针。使用缓冲器队列265,可从主机系统205依序接收多个存取命令且可并行处理存取命令的至少若干部分。
如果缓冲器225具有足够空间来存储写入数据,则存储器系统控制器215可使接口220根据协议(例如,UFS协议或eMMC协议)将可用性的指示发射到主机系统205(例如,“准备好传送”指示)。当接口220随后从主机系统205接收到与写入命令相关联的数据时,接口220可使用数据路径250将数据传送到缓冲器225以供临时存储。在一些情况下,接口220可从缓冲器225或缓冲器队列265获得缓冲器225内存储数据的方位。接口220可例如经由总线235向存储器系统控制器215指示是否已完成到缓冲器225的数据传送。
一旦写入数据已通过接口220存储在缓冲器225中,就可将数据从缓冲器225传送出来并且存储在存储器装置240中。这可使用存储控制器230完成。举例来说,存储器系统控制器215可例如致使存储控制器230使用数据路径250从缓冲器225中检索出数据并且将数据传送到存储器装置240。存储控制器230可视为存储器系统210的后端。存储控制器230可例如经由总线235向存储器系统控制器215指示何时已完成到存储器装置集240中的存储器装置的数据传送。
在一些情况下,存储队列270可用于辅助写入数据的传送。举例来说,存储器系统控制器215可将写入命令从缓冲器队列265推送(例如,经由总线235)到存储队列270以供处理。存储队列270可包含用于每一存取命令的条目。在一些实例中,存储队列270可另外包含:缓冲器指针(例如,地址),其可指示在缓冲器225中何处存储与命令相关联的数据;及存储指针(例如,地址),其可指示存储器装置240中与数据相关联的位置。在一些情况下,存储控制器230可从缓冲器225、缓冲器队列265或存储队列270获得缓冲器225内的要从中获得数据的方位。存储控制器230可管理存储器装置240内的存储数据(例如,进行耗损均衡、垃圾收集和其类似物)的位置。可例如通过存储器系统控制器215将条目添加到存储队列270。在完成数据传送后,可例如通过存储控制器230或存储器系统控制器215从存储队列270移除所述条目。
为了处理从主机系统205接收到的读取命令,存储器系统控制器215可再次首先确定缓冲器225是否具有足够可用空间来存储与命令相关联的数据。举例来说,存储器系统控制器215可例如经由固件(例如,控制器固件)确定在缓冲器225内可用于存储与读取命令相关联的数据的空间量。
在一些情况下,缓冲器队列265可用于以与上文关于写入命令所论述的类似方式来辅助与读取命令相关联的数据的缓冲器存储。举例来说,如果缓冲器225具有足够空间来存储读取数据,那么存储器系统控制器215可致使存储控制器230从存储器装置240检索与读取命令相关联的数据且使用数据路径250将数据存储在缓冲器225中以用于临时存储。存储控制器230可例如经由总线235向存储器系统控制器215指示已完成到缓冲器225的数据传送。
在一些情况下,存储队列270可用于辅助读取数据的传送。举例来说,存储器系统控制器215可将读取命令推送到存储队列270以供处理。在一些情况下,存储控制器230可从缓冲器225或存储队列270获得存储器装置240内的从其检索数据的位置。在一些情况下,存储控制器230可从缓冲器队列265获得缓冲器225内用以存储数据的位置。在一些情况下,存储控制器230可从存储队列270获得缓冲器225内的存储数据的位置。在一些情况下,存储器系统控制器215可将由存储队列270处理的命令移动回到命令队列260。
一旦数据已通过存储控制器230存储在缓冲器225中,就可将数据从缓冲器225传送出并发送到主机系统205。举例来说,存储器系统控制器215可致使接口220使用数据路径250从缓冲器225中检索出数据,并且例如根据协议(例如,UFS协议或eMMC协议)将数据发射到主机系统205。举例来说,接口220可处理来自命令队列260的命令,且可例如经由总线235向存储器系统控制器215指示已完成到主机系统205的数据传输。
存储器系统控制器215可根据次序(例如,根据命令队列260的次序的先入先出次序)执行接收到的命令。对于每一命令,存储器系统控制器215可使得对应于命令的数据移动进出缓冲器225,如上文所论述。当数据移动到缓冲器225中且存储在缓冲器225内时,命令可保持在缓冲器队列265中。在已完成命令的处理的情况下(例如,在已从缓冲器225传送出对应于存取命令的数据的情况下),可例如通过存储器系统控制器215从缓冲器队列265移除命令。如果从缓冲器队列265移除命令,则先前存储与所述命令相关联的数据的地址可用于存储与新命令相关联的数据。
存储器系统控制器215可另外被配置成用于与存储器装置集240相关联的操作。举例来说,存储器系统控制器215可执行或管理操作,例如耗损均衡操作、垃圾收集操作、例如错误检测操作或错误校正操作的错误控制操作、加密操作、高速缓存操作、媒体管理操作、后台刷新、健康监测,以及与来自主机系统205的命令相关联的逻辑地址(例如,LBA)和与存储器装置集240内的存储器单元相关联的物理地址(例如,物理块地址)之间的地址转译。也就是说,主机系统205可发出指示一或多个LBA的命令,并且存储器系统控制器215可识别由LBA指示的一或多个物理块地址。在一些情况下,一或多个邻接LBA可对应于非邻接的物理块地址。在一些情况下,存储控制器230可被配置成以结合或代替存储器系统控制器215执行以上操作中的一或多个。在一些情况下,存储器系统控制器215可进行存储控制器230的功能且可省略存储控制器230。
在一些实例中,存储器系统210的存储器系统控制器215或另一组件(例如,缓冲器225)可包含高速缓存器275。高速缓存器275可为SRAM高速缓存器的实例。高速缓存器275可暂时存储用于存储器系统210的信息以用于相对低时延检索(例如,相较于检索存储于存储器装置240中的信息)。存储器系统210可从存储器装置240检索信息并且将信息存储于高速缓存器275中。如果读取命令指示检索信息,那么存储器系统210可从高速缓存器275而非从存储器装置240检索信息以减少读取信息时涉及的时延。举例来说,存储器系统210可从一或多个存储器装置240预取信息(例如,L2P映射表、数据或这两者),将预取的信息存储于高速缓存器275中,并且使用来自高速缓存器275的信息执行一或多个顺序读取命令。
高速缓存器275可为非持久存储器资源的实例。举例来说,如果存储器系统210丢失电力或者进入低电力状态(例如,相对低电力状态,其中存储器系统210是空闲的),那么高速缓存器275可能无法维持存储器资源中的信息。在一些情况下,存储器系统210可支持休眠命令。休眠命令(可被称为H8命令)可触发存储器系统210进入低电力状态以节约能量。存储器系统210可在存储器系统210在阈值持续时间内不在作用中、在命令队列260中不具有待决存取命令或这两者的情况下执行休眠命令。如果存储器系统210执行休眠命令,那么在进入低电力状态之前,存储器系统210可将来自高速缓存器275的信息清空回到一或多个存储器装置240中。举例来说,如果存储于高速缓存器275中的信息不同于存储于存储器装置240中的信息,那么存储器系统210可在进入低电力状态之前用来自高速缓存器275的最新信息更新存储器装置240。一旦存储器系统210进入低电力状态(例如,响应于执行休眠命令),存储器系统210可丢失存储于高速缓存器275中的信息,使得高速缓存器275可在再进入高电力状态(例如,与低电力状态相比相对高的电力状态)之后为空。因而,进入低电力状态可移除来自高速缓存器275的预取信息。在一些情况下,进入低电力状态可涉及减小一或多个处理组件(例如,CPU)的时钟速度以减少用于存储器系统210的电力开销。另外或替代地,存储器系统210可存储执行的休眠命令与其它执行的命令(例如,顺序读取命令或任何其它命令)的比率以确定是否预取和存储L2P映射表于高速缓存器275中。在一些情况下,所述比率可存储于保持RAM中,使得在存储器系统210进入低电力模式的情况下维持所述比率。
为了支持高效预取技术,存储器系统210可存储逻辑地址列表280以跟踪读取命令的顺序模式。举例来说,存储器系统210可在存储器系统控制器215(例如,处于SRAM或保持RAM中)、接口220(例如,固件前端)或存储器系统210的某一其它组件处存储逻辑地址列表280。如果逻辑地址列表280存储于保持RAM中,那么存储器系统210可维持序列跟踪(例如,计数值、最新顺序读取命令的逻辑地址),即使存储器系统210进入低电力模式仍这样做。逻辑地址列表280可存储读取命令集的LBA、读取命令集的命令大小、读取命令集的默认命令大小或其某一组合。如果存储器系统210执行对应于序列的读取命令(例如,从跟在针对前一读取命令读取的LBA之后的下一LBA集读取数据),那么存储器系统210可将LBA、命令大小或这两者添加到逻辑地址列表280。如果存储器系统210执行一或多个类似写入命令、一或多个非顺序读取命令或其组合,那么存储器系统210可针对阈值数量的非顺序命令、阈值持续时间或这两者维持逻辑地址列表280于存储器中。相应地,如果存储器系统210在一或多个非顺序命令(例如,类似写入命令、非顺序读取命令)之后执行排在逻辑地址列表280中的LBA模式之后的读取命令,那么存储器系统210可使用读取命令更新逻辑地址列表280并且可继续跟踪一数量的读取命令以用于检测顺序模式(例如,无需重置跟踪)。在一些实例中,存储器系统210可存储跟踪用于模式检测的顺序读取命令数量的计数值(例如,与逻辑地址列表280一起)。在一些此类实例中,逻辑地址列表280可包含序列中的最近执行的读取命令的单个LBA、命令大小或这两者。在一些其它实例中,逻辑地址列表280可包含LBA的多个时隙(例如,时隙数量等于模式检测的阈值数量),且存储器系统210可确定在用于逻辑地址列表280的时隙填充有顺序读取命令的情况下,读取命令对应于顺序模式。
如果存储器系统210检测读取命令的顺序模式(例如,使用逻辑地址列表280以降低模式检测中断),那么存储器系统210可根据顺序模式触发用于后续读取命令的信息预取。举例来说,使用模式中的最近执行的读取命令(例如,最新读取命令的开始LBA和命令大小或末尾LBA),存储器系统210可预测将由存储器系统210执行的下一读取命令的开始LBA、命令大小或这两者。相应地,存储器系统210可执行预取命令并且可从一或多个存储器装置240预取(例如,读取)针对序列中的下一读取命令预测的信息(例如,对应L2P映射表、待检索数据)并且可将信息存储于高速缓存器275中。如果存储器系统210执行序列中的下一读取命令,那么存储器系统210可读取来自高速缓存器275的信息,这相较于读取来自存储器装置240的信息,减小执行读取命令时涉及的时延。
图3说明根据本文所公开的实例的支持用于使用模式检测预取信息的技术的命令集300的实例。例如参考图1和2所描述的存储器系统110或210的存储器系统可接收并执行命令集300。存储器系统可存储跟踪来自命令集300的顺序读取命令的逻辑地址列表315,其中逻辑地址列表315可为参考图2所描述的逻辑地址列表280的实例。举例来说,存储器系统可将逻辑地址列表315存储于保持RAM中并且可确定命令集300是否包含读取命令的顺序模式。如果存储器系统检测到顺序模式,那么存储器系统可触发从一或多个存储器装置(例如,参考图1和2所描述的存储器装置130或240)预取数据。
在一些其它系统中,如果存储器系统执行类似写入命令或非顺序读取命令(例如,预读取冲突命令),那么用于顺序读取命令的模式检测可能失败。举例来说,一旦执行完成,一旦下一命令的执行开始,或这两者,存储器系统便可从命令缓冲器移除执行的命令。因而,存储器系统在后续命令开始执行之后可能不维持关于先前执行的命令的信息。存储器系统可存取紧接在新命令之前执行的命令的LBA和命令大小以确定新命令是否对应于读取命令的顺序模式,但如果存储器系统执行任何中介命令(例如,类似写入命令、非顺序读取命令),那么存储器系统可能不再存储顺序模式中的最新但并非紧接在前的读取命令的LBA和命令大小。举例来说,存储器系统可响应于执行类似写入命令而丢失目前存储于高速缓存器中的任何信息(例如,预读取数据、与最近执行的命令相关的信息)。相应地,存储器系统可能不存储支持用以确定新读取命令是否排在最新顺序读取命令之后的比较的信息,进而致使存储器系统重置模式检测(例如,将顺序读取命令数量重置为零)。
相比之下,使用逻辑地址列表315的存储器系统即使在执行一或多个类似写入命令、非顺序读取命令或这两者的情况下仍可维持模式检测。存储器系统可将读取命令LBA值、命令长度或这两者维持于逻辑地址列表315中。逻辑地址列表315的大小可取决于模式检测阈值X。举例来说,如果序列中的读取命令数量大于或等于X,那么存储器系统可确定读取命令集对应于顺序读取模式。逻辑地址列表315可包含长度X(例如,用于存储LBA信息的时隙数量等于X)。在一些实例中,存储器系统可在检测到顺序读取模式的情况下触发数据预取(例如,预读取)。在一些其它实例中,存储器系统可在检测到顺序读取模式的情况下并且在执行第二阈值数量的命令Y(例如,跟在模式检测之后的Y个额外顺序读取命令或Y个总顺序读取命令)之后触发数据预取。检测顺序模式可与顺序读取命令的命令长度无关(例如,以支持用于读取操作的任何组块大小,例如最大缓冲器大小1280千字节(kB))。另外或替代地,检测顺序模式可与存储器裸片未对齐无关。
存储器系统可使用逻辑地址列表315跟踪顺序读取信息。举例来说,存储器系统可接收和执行第一读取命令305-a和第二读取命令305-b。存储器系统可确定第二读取命令305-b是否排在第一读取命令305-a之后。“顺序”读取命令可对应于在紧接在由用于前一读取命令的读取操作读取的最后一个LBA之后的LBA处开始读取操作的读取命令。举例来说,如果第一读取命令305-a指示开始LBA值0和命令长度512kB(例如,在LBA对应于4kB的情况下对应于128LBA),那么第一读取命令305-a读取的最后一个LBA可为LBA 127。相应地,如果第二读取命令305-b指示开始LBA值128,那么第二读取命令305-b可排在第一读取命令305-a之后。存储器系统可将顺序读取命令305的LBA 320(例如,开始LBA或末尾LBA)存储于逻辑地址列表315中。举例来说,存储器系统可确定和存储第一读取命令305-a的末尾LBA 320-a和第二读取命令305-b的末尾LBA 320-b于逻辑地址列表315中。替代地,存储器系统可存储第一读取命令305-a的开始LBA 320-a和第二读取命令305-b的开始LBA 320-b,以及第一读取命令305-a和第二读取命令305-b的命令长度的指示。在一些情况下,存储器系统可存储特定于具有对应LBA 320的每一读取命令305的命令长度。在一些其它情况下,存储器系统可存储命令集300中的读取命令305的默认命令长度。
如果存储器系统接收类似写入命令,那么存储器系统可制止重置顺序模式计数。举例来说,存储器系统可接收和执行类似写入命令310-a、类似写入命令310-b或这两者。存储器系统可制止重置模式检测直到接收到未通过顺序条件的读取命令(或读取命令集)为止。如果存储器系统接收到跟在一或多个中介类似写入命令310之后的读取命令305,那么存储器系统可检查此下一读取命令305-c的开始LBA 320是否排在前一读取命令305-b之后(例如,归因于存储器系统在处理一或多个类似写入命令310之前保存前一读取命令305-b的读取命令数据)。存储器系统可使用存储于逻辑地址列表315中的信息(例如,顺序模式中的最近执行的读取命令的LBA 320-b)来确定跟在一或多个类似写入命令310之后的读取命令305-c是否排在前一读取命令305-b之后。在一些情况下,存储器系统可实施方程式1以确定新读取命令305-c是否未通过顺序模式:
WewCommand·lba!=PreCommand·lba+PreCommand·tranferlen (1)
PreCommand可对应于前一顺序读取命令305-b,NewCommand可对应于新读取命令305-c,lba可指示每一命令的开始LBA 320,且transferlen可指示命令长度。
如果新读取命令305-c未通过顺序模式,那么存储器系统可重置顺序模式检测的计数并且在一些情况下,可移除或覆写存储于逻辑地址列表315中的顺序信息。如果读取命令305-c遵循顺序模式,那么存储器系统可将顺序模式检测的计数递增(例如,避免响应于中介类似写入命令310而重置计数)并且可将新读取命令305-c的LBA 320-c、命令长度或这两者添加到逻辑地址列表315。在一些实例中,存储器系统可确定响应于跟在一或多个类似写入命令310之后的顺序读取命令305-c而检测到顺序模式。在一些其它实例中,存储器系统可确定计数值是否满足顺序模式检测的阈值X。
通过使用逻辑地址列表315维持顺序模式检测的计数并且不考虑任何中介类似写入命令310,即使命令集300包含读取命令305和类似写入命令310的混合,存储器系统仍可触发用于顺序读取命令305的数据预取(例如,预读取)且无需等待连续读取命令(不具有任何中介类似写入命令310)的数量满足X阈值。因而,存储器系统可在更大时间比例(例如,相较于不使用逻辑地址列表315的系统)内使用预取技术操作,从而提高存储器系统的性能。另外,存储器系统可制止在执行类似写入命令310时丢弃来自缓冲器或高速缓存器的预取数据以支持跟在类似写入命令310之后的顺序读取命令305的高效执行。
在一些实例中,如果存储器系统接收到非顺序读取命令305-d,那么存储器系统可重置顺序模式检测的计数。举例来说,存储器系统可将计数设置为零,从逻辑地址列表315移除用于顺序读取命令305的所存储信息或这两者。在一些其它实例中,存储器系统可支持阈值数量的非顺序读取命令且不会失去顺序模式跟踪。举例来说,存储器系统可确定读取命令305-d排在读取命令305-c之前。存储器系统可制止将顺序模式检测的计数递增但可将与顺序读取命令305相关的信息的维持于逻辑地址列表315中。如果后续读取命令305-e排在最新顺序读取命令305-c之后,那么存储器系统可将计数递增,将顺序读取命令305-e的LBA 320-d、命令长度或这两者存储于逻辑地址列表315中,或这两者。相应地,存储器系统可考虑多达阈值数量的非顺序读取命令305且不会失去顺序模式的跟踪(例如,以处置读取命令305的顺序模式内交错式的一次性或相对小数量的非顺序读取命令305)。
图4说明根据本文所公开的实例的支持使用模式检测预取信息的技术的过程流400的实例。过程流程400可由存储器系统(例如参考图1和2所描述的存储器系统110或210)执行。存储器系统可使用逻辑地址列表跟踪顺序读取命令,如参考图1到3所描述。通过使用逻辑地址列表,存储器系统可维持读取命令模式检测而不管一或多个中介类似写入命令、非顺序读取命令或这两者。在一些情况下,可实施以下的替代性实例,其中一些操作可按不同于所描述的次序执行或根本不执行。另外或替代地,操作可包含下文中未提及的额外特征,或可添加其它过程。
在405处,接收命令集。举例来说,存储器系统可从主机系统接收包含一或多个读取命令和一或多个类似写入命令的命令集。类似写入命令中的每一个可与存储器装置进行的至少一个对应写入操作相关联。举例来说,一或多个类似写入命令可包含写入命令、取消映射命令、格式单元命令、安全协议输出命令、开始停止单元命令或其任何组合。
在410处,存储逻辑地址列表。举例来说,存储器系统可根据读取命令集的执行次序,存储由读取命令集指示的逻辑地址列表。存储器系统可在读取命令对应于读取命令的顺序模式的情况下将读取命令的信息存储于列表中(例如,RAM中)。在一些实例中,存储器系统可将每个所识别顺序读取命令的开始LBA存储于逻辑地址列表中。在一些情况下,存储器系统可将读取命令集的相应传送长度的列表与逻辑地址列表一起存储。另外或替代地,存储器系统可确定读取命令集的共同传送长度并且可将共同传送长度的指示与逻辑地址列表一起存储。
在415处,接收读取命令。举例来说,存储器系统可在将前一顺序读取命令信息存储于逻辑地址列表中之后接收额外读取命令。
在420处,确定逻辑地址列表是否对应于顺序模式。举例来说,存储器系统可使用由读取命令集指示的逻辑地址、读取命令集的相应传送长度或这两者来确定逻辑地址列表是否对应于读取命令的顺序模式。在一些实例中,存储器系统可使用逻辑地址列表确定读取命令集中的顺序读取命令数量是否满足模式检测阈值(例如,X)。在一些情况下,存储器系统可跟踪顺序读取命令的计数值并且可将跟踪的计数值与模式检测阈值进行比较。在一些其它情况下,逻辑地址列表可包含等于模式检测阈值的时隙数量,且存储器系统可取决于列表的每一时隙是否存储顺序逻辑地址来确定列表是否对应于读取命令的顺序模式。
如果存储器系统确定逻辑地址列表对应于顺序模式,那么在425处,预取用于读取命令的数据。举例来说,存储器系统可根据顺序模式从存储器装置预取(例如,预读取)数据以用于后续读取命令。存储器系统可根据顺序模式在执行后续读取命令之前通过预测由后续读取命令指示的数据来从存储器装置读取数据。举例来说,存储器系统可根据顺序模式执行指示下一LBA的预取命令并且可将检索到的数据存储于高速缓存器或缓冲器一。在一些实例中,存储器系统可响应于确定逻辑地址列表对应于顺序模式而跟踪用于顺序读取命令的第二计数值并且可在第二计数值满足用于预取触发的第二阈值(例如,Y)的情况下触发预取。存储器系统可在执行后续读取命令期间使用预取的数据以减小执行时延。
如果存储器系统确定逻辑地址列表未能对应于顺序模式,那么在430处,根据由读取命令指示的逻辑地址检索数据。举例来说,存储器系统可执行读取命令并且根据所述读取命令从存储器装置读取数据。在一些情况下,如果读取命令不对应于顺序读取命令,那么在435处,可重置模式检测。举例来说,存储器系统可将用于模式检测的计数值设置为零,可从逻辑地址列表移除顺序读取命令信息,或这两者。
过程流程400的各方面可由控制器以及其它组件实施。另外或替代地,过程流程400的各方面可实施为存储在存储器中的指令(例如存储在与存储器系统耦合的存储器中的固件)。举例来说,所述指令在由控制器(例如,存储器系统控制器)执行时可致使所述控制器执行过程流程400的操作。
图5A和5B说明根据本文所公开的实例的支持使用模式检测预取信息的技术的命令集500的实例。图5A说明可防止表预取以减少处理开销并且提高存储器系统效率的命令集500-a的实例。例如参考图1和2所描述的存储器系统110或210的存储器系统可接收并执行命令集500-a。存储器系统可存储休眠命令510与其它命令(例如,顺序读取命令505)的比率并且可基于(例如,使用)所述比率确定是否预取L2P映射表。存储器系统可响应于将所存储的比率与阈值比率Y进行比较而确定是否制止从一或多个存储器装置(例如,参考图1和2所描述的存储器装置130或240)预取信息(例如,L2P映射表)。
存储器系统可跟踪执行的休眠命令510与执行的其它命令的比率。在一些实例中,其它命令可以是存储器系统执行的任何其它命令。在一些其它实例中,包含在所述比率中的其它命令可为后续读取命令505。存储器系统可确定读取命令集505对应于读取命令的顺序模式(例如,使用参考图3和4描述的技术或使用其它技术)。举例来说,存储器系统可执行满足用于检测顺序模式的阈值X的数量的顺序读取命令。在一些情况下,存储器系统可存储用于执行休眠命令510的计数值和用于执行的后续读取命令505的计数值并且可使用所存储的计数值计算比率。在一些实例中,存储器系统可根据周期性、响应于检测到新的读取命令序列、响应于检测到存储器系统处执行的命令类型的改变或其任何组合来重置用于所述比率的计数值。另外或替代地,存储器系统可使用满足顺序模式检测的读取命令序列内执行的休眠命令来计算比率。
存储器系统可将所述比率与阈值比率(例如,阈值)进行比较以用于根据顺序模式预取定义用于下一逻辑地址的L2P映射的表。如果跟踪的比率满足阈值比率,那么存储器系统可确定从一或多个存储器装置预取所述表。然而,如果跟踪的比率未能满足阈值比率,那么存储器系统可制止预取所述表。举例来说,所述比率在休眠命令510与其它命令(例如,顺序读取命令505)的比率等于或大于阈值比率的情况下可能无法满足阈值比率。在一些实例中,阈值比率可为1(例如,1:1比率)。在一些其它实例中,阈值比率可具有其它值,其中可静态地配置或动态地确定阈值比率的值。举例来说,存储器系统可执行读取命令505-a、休眠命令510-a、读取命令505-b、休眠命令510-b、读取命令505-c、休眠命令510-c和读取命令505-d。相应地,存储器系统可存储3:4(例如,休眠命令510与顺序读取命令505)的比率。如果阈值比率是1:2,那么所存储的比率可能无法满足(例如,小于)阈值比率。相应地,存储器系统可响应于所述比率未能满足阈值比率而制止预取L2P映射表。替代地,存储器系统可在相应读取命令执行期间提取或者存取所述表。由于相较于顺序读取命令505有相当大数量的休眠命令510,因此预取L2P表的存储器系统可反复预取所述表以用于读取命令505并且响应于休眠命令510而从高速缓存器中清空所述表。此反复预取和清空L2P映射表的过程可涉及相当大的处理开销(例如,高于阈值)并且可使存储器系统性能降级。替代地,因为存储器系统可根据跟踪的比率而制止预取所述表,所以存储器系统可减少处理开销并且提高存储器系统效率。
图5B说明可支持预取表以减小与顺序读取命令505相关联的时延的命令集500-b的实例。例如参考图1和2所描述的存储器系统110或210的存储器系统可接收并执行命令集500-b。存储器系统可存储休眠命令510与其它命令(例如,顺序读取命令505)的比率并且可基于(例如,使用)所述比率确定是否预取L2P映射表。存储器系统可响应于将所存储的比率与阈值比率Y进行比较而确定是否制止从一或多个存储器装置(例如,参考图1和2所描述的存储器装置130或240)预取信息(例如,L2P映射表)。
存储器系统可执行读取命令505-e、读取命令505-f、休眠命令510-d、读取命令505-g、读取命令505-h、读取命令505-i和休眠命令510-e。相应地,存储器系统可计算和存储休眠命令510与顺序读取命令505的比率2:5。如果阈值比率是1:2,那么所存储的比率可满足(例如,小于)阈值比率。相应地,存储器系统可响应于所述比率满足阈值比率(例如,在检测到读取命令505的顺序模式的情况下)而触发L2P映射表预取。举例来说,存储器系统可在所存储的比率等于0或小于阈值比率(例如,阈值)Y的情况下预取表。阈值Y可经定义以区分基准案例与真实用例。举例来说,小于阈值的比率可启用存储器系统处的执行模式,其中休眠命令510的模式可设置为基准且存储器系统可检索和保存预取的表数据于保持RAM中。大于或等于阈值的比率可启用存储器系统处的电力模式,其中休眠命令510的模式可设置为正常的且存储器系统可制止预取表数据。预取的表数据可供存储器系统用于支持读取命令序列中的读取命令的执行。举例来说,预取的L2P映射表可定义用于从中读取数据的一或多个存储器装置的L2P映射。通过预取L2P映射表,存储器系统可减少执行顺序读取命令时涉及的时延。
图6说明根据本文所公开的实例的支持使用模式检测预取信息的技术的过程流600的实例。过程流程600可由存储器系统(例如参考图1和2所描述的存储器系统110或210)执行。存储器系统可使用休眠命令与其它命令(例如,顺序读取命令)的比率确定是否预取来自一或多个存储器装置的信息,如参考图1、2和5所描述。通过跟踪、存储和使用所述比率,存储器系统可在所述存储器系统频繁进入休眠状态(例如,高于阈值频率)的情况下制止执行预取和清空L2P映射表的效率低下的重复。在一些情况下,可实施下文的替代性实例,其中一些操作可以不同于描述的次序的次序执行或完全不执行。另外或替代地,操作可包含下文不提及的额外特征,或可添加另外的过程。
在605处,接收命令集。举例来说,存储器系统可接收读取命令集和一或多个休眠命令。存储器系统可使用读取命令集用于顺序模式检测(例如,使用本文中参考图3和4所描述的技术或使用其它技术)。休眠命令可触发存储器系统进入休眠状态(例如,H8状态,其中存储器系统斜降处理能力)。举例来说,执行休眠命令可涉及存储器系统从高速缓存器清空数据(例如,清空到存储器装置中)并且进入低电力状态。
在610处,接收读取命令。存储器系统可从主机系统接收读取命令。在615处,确定读取命令是否对应于顺序模式。举例来说,存储器系统可确定执行的读取命令是否满足用于顺序模式检测的阈值。
如果读取命令不对应于顺序模式,那么在620处,可重置模式检测。举例来说,存储器系统可在接收到的读取命令排在前一读取命令之前的情况下重置用于模式检测的计数值。另外或替代地,存储器系统可重置一或多个计数值、比率或这两者以用于跟踪休眠命令数量。
如果读取命令对应于顺序模式,那么在625处,确定是否预取L2P映射表。举例来说,存储器系统可使用由读取命令集指示的相应LBA、读取命令集的相应传送长度或这两者来检测逻辑地址的顺序模式。存储器系统可确定是否使用用于预取定义用于下一逻辑地址的L2P地址映射的表的阈值(例如,阈值比率,例如1:1)与存储器系统跟踪的比率之间的比较,根据顺序模式从存储器装置预取所述表。存储器系统跟踪的比率可为休眠命令与在605处接收到的命令集中的顺序读取命令的比率。举例来说,为跟踪所述比率,存储器系统可使第一计数值针对每个顺序读取命令递增并且使第二计数值针对一或多个休眠命令中的每个休眠命令递增,其中使用第二计数值和第一计数值计算所述比率。
如果所述比率未能满足用于预取所述表的阈值,那么在630处,在读取命令执行期间检索L2P映射表。举例来说,存储器系统可归因于所述比率未能满足阈值制止在执行610处接收到的读取命令之前预取表。存储器系统可替代地在读取命令执行期间提取(例如,读取或者存取)表。在635处,使用L2P映射表执行读取命令。举例来说,存储器系统可使用由提取的表定义的L2P映射从存储器装置检索用于读取命令的数据。
如果所述比率满足用于预取表的阈值,那么在640处,在读取命令执行之前预取L2P映射表。举例来说,存储器系统可归因于所述比率满足阈值在执行610处接收到的读取命令之前预取所述表。存储器系统可将预取的表存储于高速缓存器中。在645处,使用预取的L2P映射表执行读取命令。举例来说,存储器系统可使用由存储于高速缓存器中的预取的表定义的L2P映射从存储器装置检索用于读取命令的数据。
过程流程600的方面可由控制器以及其它组件实施。另外或替代地,过程流程600的各方面可实施为存储在存储器中的指令(例如存储在与存储器系统耦合的存储器中的固件)。举例来说,所述指令在由控制器(例如,存储器系统控制器)执行时可致使所述控制器执行过程流程600的操作。
图7示出根据本文所公开的实例的支持使用模式检测预取信息的技术的存储器系统720的框图700。存储器系统720可为如参考图1到6描述的存储器系统的方面的实例。存储器系统720或其各种组件可为用于执行如本文中所描述的使用模式检测预取信息的技术的各种方面的装置的实例。举例来说,存储器系统720可包含命令接收组件725、列表组件730、模式检测组件735、预取组件740、命令执行组件745、计数跟踪器750、高速缓存组件755、数据检索组件760、表检索组件765、清空组件770、休眠组件775、序列重置组件780,或其任何组合。这些组件中的每一个可直接或间接地(例如经由一或多个总线)彼此通信。
存储器系统720可包含存储器装置和与所述存储器装置耦合的控制器。所述控制器可致使存储器系统720执行如本文中参考所述组件中的一或多个所描述的一或多个操作。命令接收组件725可配置为或以其它方式支持用于从主机系统接收多个读取命令和一或多个类似写入命令的装置,所述一或多个类似写入命令中的每一个与所述存储器装置进行的至少一个对应写入操作相关联。列表组件730可配置为或以其它方式支持用于根据所述多个读取命令的执行次序,存储由所述多个读取命令指示的逻辑地址列表的装置。模式检测组件735可配置为或以其它方式支持用于至少部分地基于(例如,使用)由所述多个读取命令指示的所述逻辑地址、所述多个读取命令的相应传送长度或这两者,确定所述逻辑地址列表是否对应于顺序模式的装置。预取组件740可配置为或以其它方式支持用于至少部分地基于(例如,响应于)确定所述逻辑地址列表对应于所述顺序模式,从所述存储器装置预取数据以供用于后续读取命令的装置。
在一些实例中,模式检测组件735可配置为或以其它方式支持用于至少部分地基于(例如,使用)所述逻辑地址列表来确定所述多个读取命令中的顺序读取命令的数量满足模式检测阈值的装置,其中确定所述逻辑地址列表对应于所述顺序模式的操作至少部分地基于(例如,响应于)所述顺序读取命令数量满足所述模式检测阈值。
在一些实例中,为了支持接收所述多个读取命令和所述一或多个类似写入命令,命令接收组件725可配置为或以其它方式支持用于接收顺序读取命令第一子集并且在所述顺序读取命令第一子集之后接收至少一个类似写入命令以供执行的装置。在一些此类实例中,命令接收组件725可配置为或以其它方式支持用于在所述至少一个类似写入命令之后接收顺序读取命令第二子集以供执行的装置,其中所述顺序读取命令第二子集中的第一读取命令排在所述顺序读取命令第一子集中的最后一个读取命令之后。模式检测组件735可配置为或以其它方式支持用于至少部分地基于(例如,响应于)所述顺序读取命令第二子集中的所述第一读取命令排在所述顺序读取命令第一子集中的所述最后一个读取命令之后,确定所述顺序读取命令数量包含所述顺序读取命令第一子集和所述顺序读取命令第二子集的装置。
在一些实例中,命令接收组件725可配置为或以其它方式支持用于接收指示第一逻辑地址和第一命令长度的第一读取命令的装置。在一些实例中,命令接收组件725可配置为或以其它方式支持用于在所述第一读取命令之后接收一或多个第二读取命令的装置,所述一或多个第二读取命令指示根据所述第一命令长度排在所述第一逻辑地址之前的相应第二逻辑地址,其中所述一或多个第二读取命令的数量满足用于重置模式检测的阈值。在一些实例中,序列重置组件780可配置为或以其它方式支持用于至少部分地基于(例如,响应于)所述一或多个第二读取命令排在所述第一读取命令之前且所述一或多个第二读取命令的所述数量满足用于重置模式检测的所述阈值,重置所述顺序读取命令数量的装置。
在一些实例中,计数跟踪器750可配置为或以其它方式支持用于跟踪用于顺序读取命令的计数值的装置,其中确定所述顺序读取命令数量满足所述模式检测阈值至少部分地基于(例如,响应于)所述计数值满足所述模式检测阈值。
在一些实例中,所述逻辑地址列表包含等于所述模式检测阈值的时隙数量,且确定所述顺序读取命令数量满足所述模式检测阈值至少部分地基于(例如,响应于)所述逻辑地址列表的每一时隙存储顺序逻辑地址。
在一些实例中,计数跟踪器750可配置为或以其它方式支持用于至少部分地基于(例如,响应于)确定所述逻辑地址列表对应于所述顺序模式,跟踪用于顺序读取命令的第二计数值的装置。在一些实例中,预取组件740可配置为或以其它方式支持用于至少部分地基于(例如,响应于)所述第二计数值满足用于预取触发的第二阈值来触发所述预取的装置。
在一些实例中,高速缓存组件755可配置为或以其它方式支持用于至少部分地基于(例如,响应于)确定所述逻辑地址列表对应于所述顺序模式,在执行所述后续读取命令之前将所述预取的数据存储于高速缓存器中的装置。在一些实例中,命令执行组件745可配置为或以其它方式支持用于执行所述后续读取命令的装置。在一些实例中,高速缓存组件755可配置为或以其它方式支持用于至少部分地基于(例如,响应于)所述后续读取命令满足所述顺序模式,从所述高速缓存器检索所述预取的数据以用于所述执行的后续读取命令的装置。
在一些实例中,列表组件730可配置为或以其它方式支持用于与所述逻辑地址列表一起存储所述多个读取命令的所述相应传送长度的列表的装置。
在一些实例中,列表组件730可配置为或以其它方式支持用于确定所述多个读取命令的共同传送长度的装置。在一些实例中,列表组件730可配置为或以其它方式支持用于与所述逻辑地址列表一起存储所述共同传送长度的指示的装置。
在一些实例中,逻辑地址列表存储于RAM(例如,SRAM高速缓存器)中。在一些实例中,一或多个类似写入命令可包含写入命令、取消映射命令、格式单元命令、安全协议输出命令、开始停止单元命令或其任何组合。
在一些实例中,为了支持从所述存储器装置预取所述数据以用于所述后续读取命令,预取组件740可配置为或以其它方式支持用于执行根据所述顺序模式指示下一LBA的预取命令的装置。
另外或替代地,命令接收组件725可配置为或以其它方式支持用于接收多个读取命令和一或多个休眠命令的装置。在一些实例中,模式检测组件735可配置为或以其它方式支持用于至少部分地基于(例如,根据)由所述多个读取命令指示的相应逻辑地址、所述多个读取命令的相应传送长度或这两者来检测逻辑地址顺序模式的装置。在一些实例中,预取组件740可配置为或以其它方式支持用于至少部分地基于(例如,响应于)将用于预取定义用于下一逻辑地址的L2P地址映射的表的阈值与一比率进行比较,确定是否根据所述顺序模式从所述存储器装置预取所述表的装置,所述比率是休眠命令与所述多个读取命令中的顺序读取命令的比率。命令执行组件745可配置为或以其它方式支持用于至少部分地基于(例如,响应于)确定是否预取所述表来执行后续读取命令的装置。
在一些实例中,预取组件740可配置为或以其它方式支持用于至少部分地基于(例如,响应于)所述比率满足用于预取所述表的所述阈值,在执行所述后续读取命令之前预取所述表的装置。在一些实例中,高速缓存组件755可配置为或以其它方式支持用于将所述预取的表存储于高速缓存器中的装置,其中为了执行所述后续读取命令,数据检索组件760可配置为或以其它方式支持用于至少部分地基于(例如,使用)由存储于所述高速缓存器中的所述预取的表定义的L2P地址映射,从所述存储器装置检索所述数据以用于所述执行的后续读取命令的装置。
在一些实例中,表检索组件765可配置为或以其它方式支持用于至少部分地基于(例如,响应于)所述比率未能满足用于预取所述表的所述阈值,在执行所述后续读取命令之前制止预取所述表的装置,其中为了执行所述后续读取命令,表检索组件765可配置为或以其它方式支持用于至少部分地基于(例如,响应于)执行所述后续读取命令来提取所述表的装置。在一些实例中,数据检索组件760可配置为或以其它方式支持用于至少部分地基于(例如,使用)由所述提取的表定义的所述L2P地址映射,从所述存储器装置检索所述数据以用于所述执行的后续读取命令的装置。
在一些实例中,命令执行组件745可配置为或以其它方式支持用于执行所述一或多个休眠命令中的休眠命令的装置。在一些实例中,清空组件770可配置为或以其它方式支持用于至少部分地基于(例如,响应于)执行所述休眠命令,将数据从高速缓存器清空到所述存储器装置中的装置。在一些实例中,休眠组件775可配置为或以其它方式支持用于至少部分地基于(例如,响应于)执行所述休眠命令而进入低电力状态的装置。
在一些实例中,计数跟踪器750可配置为或以其它方式支持用于使第一计数值针对所述多个读取命令中的每个顺序读取命令而递增的装置。在一些实例中,计数跟踪器750可配置为或以其它方式支持用于使第二计数值针对所述一或多个休眠命令中的每个休眠命令而递增的装置,其中至少部分地基于所述第二计数值和所述第一计数值来确定(例如,使用所述第二计数值和所述第一计数值计算)所述比率。
在一些实例中,用于预取所述表的所述阈值可为阈值比率1:1。
图8示出说明根据本文所公开的实例的支持使用模式检测预取信息的技术的方法800的流程图。方法800的操作可由如本文中所描述的存储器系统或其组件实施。举例来说,方法800的操作可由如参考图1到7所描述的存储器系统执行。在一些实例中,存储器系统可执行指令集以控制系统的功能元件执行下文所描述的功能。另外或替代地,存储器系统可使用专用硬件执行下文所描述的功能的方面。
在805处,所述方法可包含从主机系统接收多个读取命令和一或多个类似写入命令,所述一或多个类似写入命令中的每一个与所述存储器装置进行的至少一个对应写入操作相关联。可根据本文所公开的实例执行805的操作。在一些实例中,可由参考图7所描述的命令接收组件725执行805的操作的方面。
在810处,所述方法可包含根据所述多个读取命令的执行次序,存储由所述多个读取命令指示的逻辑地址列表。可根据本文所公开的实例执行810的操作。在一些实例中,可由参考图7所描述的列表组件730执行810的操作的方面。
在815处,所述方法可包含至少部分地基于(例如,使用)由所述多个读取命令指示的所述逻辑地址、所述多个读取命令的相应传送长度或这两者,确定所述逻辑地址列表是否对应于顺序模式。可根据本文所公开的实例执行815的操作。在一些实例中,可由参考图7所描述的模式检测组件735执行815的操作的方面。
在820处,所述方法可包含至少部分地基于(例如,响应于)确定所述逻辑地址列表对应于所述顺序模式,从所述存储器装置预取数据以供用于后续读取命令。可根据本文所公开的实例执行820的操作。在一些实例中,可由参考图7所描述的预取组件740执行820的操作的方面。
在一些实例中,如本文中所描述的设备可执行一或多种方法,例如方法800。所述设备可包含用于以下操作的特征、电路系统、逻辑、装置或指令(例如,非暂时性计算机可读媒体存储的可由处理器执行的指令):从主机系统接收多个读取命令和一或多个类似写入命令,所述一或多个类似写入命令中的每一个与所述存储器装置进行的至少一个对应写入操作相关联;根据所述多个读取命令的执行次序,存储由所述多个读取命令指示的逻辑地址列表;至少部分地基于(例如,使用)由所述多个读取命令指示的所述逻辑地址、所述多个读取命令的相应传送长度或这两者,确定所述逻辑地址列表是否对应于顺序模式;和至少部分地基于(例如,响应于)确定所述逻辑地址列表对应于所述顺序模式,从所述存储器装置预取数据以供用于后续读取命令。
本文所描述的方法800和设备的一些实例可另外包含用于以下操作的操作、特征、电路系统、逻辑、装置或指令:至少部分地基于(例如,根据)所述逻辑地址列表来确定所述多个读取命令中的顺序读取命令的数量满足模式检测阈值的装置,其中确定所述逻辑地址列表对应于所述顺序模式的操作可至少部分地基于(例如,响应于)所述顺序读取命令数量满足所述模式检测阈值。
在本文所描述的方法800和设备的一些实例中,用于接收所述多个读取命令和一或多个类似写入命令的操作、特征、电路系统、逻辑、装置或指令可包含用于以下操作的操作、特征、电路系统、逻辑、装置或指令:接收顺序读取命令第一子集;在所述顺序读取命令第一子集之后接收至少一个类似写入命令以供执行;在所述至少一个类似写入命令之后接收顺序读取命令第二子集以供执行,其中所述顺序读取命令第二子集中的第一读取命令可排在所述顺序读取命令第一子集中的最后一个读取命令之后;和至少部分地基于(例如,响应于)所述顺序读取命令第二子集中的所述第一读取命令排在所述顺序读取命令第一子集中的所述最后一个读取命令之后,确定所述顺序读取命令数量包含所述顺序读取命令第一子集和所述顺序读取命令第二子集。
本文所描述的方法800和设备的一些实例可另外包含用于以下操作的操作、特征、电路系统、逻辑、装置或指令:接收指示第一逻辑地址和第一命令长度的第一读取命令;在所述第一读取命令之后接收一或多个第二读取命令,所述一或多个第二读取命令指示根据所述第一命令长度排在所述第一逻辑地址之前的相应第二逻辑地址,其中所述一或多个第二读取命令的数量满足用于重置模式检测的阈值;和至少部分地基于(例如,响应于)所述一或多个第二读取命令排在所述第一读取命令之前且所述一或多个第二读取命令的所述数量满足用于重置模式检测的所述阈值,重置所述顺序读取命令数量。
本文所描述的方法800和设备的一些实例可另外包含用于以下操作的操作、特征、电路系统、逻辑、装置或指令:跟踪用于顺序读取命令的计数值,其中确定所述顺序读取命令数量满足所述模式检测阈值可至少部分地基于(例如,响应于)所述计数值满足所述模式检测阈值。
在本文所描述的方法800和设备的一些实例中,所述逻辑地址列表包含等于所述模式检测阈值的时隙数量,且确定所述顺序读取命令数量满足所述模式检测阈值可至少部分地基于(例如,响应于)所述逻辑地址列表的每一时隙存储顺序逻辑地址。
文所描述的方法800和设备的一些实例可另外包含用于以下操作的操作、特征、电路系统、逻辑、装置或指令:至少部分地基于(例如,响应于)确定所述逻辑地址列表对应于所述顺序模式,跟踪用于顺序读取命令的第二计数值,并且至少部分地基于(例如,响应于)所述第二计数值满足用于预取触发的第二阈值来触发所述预取。
文所描述的方法800和设备的一些实例可另外包含用于以下操作的操作、特征、电路系统、逻辑、装置或指令:至少部分地基于(例如,响应于)确定所述逻辑地址列表对应于所述顺序模式,在执行所述后续读取命令之前将所述预取的数据存储于高速缓存器中的装置;执行所述后续读取命令;和至少部分地基于(例如,归因于)所述后续读取命令满足所述顺序模式,从所述高速缓存器检索所述预取的数据以用于所述执行的后续读取命令。
文所描述的方法800和设备的一些实例可另外包含用于与所述逻辑地址列表一起存储所述多个读取命令的所述相应传送长度的列表的操作、特征、电路系统、逻辑、装置或指令。
文所描述的方法800和设备的一些实例可另外包含用于确定所述多个读取命令的共同传送长度并且与所述逻辑地址列表一起存储所述共同传送长度的指示的操作、特征、电路系统、逻辑、装置或指令。
在本文所描述的方法800和设备的一些实例中,逻辑地址列表可存储于RAM中。
在本文所描述的方法800和设备的一些实例中,一或多个类似写入命令可包含写入命令、取消映射命令、格式单元命令、安全协议输出命令、开始停止单元命令或其任何组合。
在本文所描述的方法800和设备的一些实例中,从所述存储器装置预取所述数据以用于所述后续读取命令可包含用于执行根据所述顺序模式指示下一LBA的预取命令的操作、特征、电路系统、逻辑、装置或指令。
图9示出说明根据本文所公开的实例的支持使用模式检测预取信息的技术的方法900的流程图。方法900的操作可由如本文中所描述的存储器系统或其组件实施。举例来说,方法900的操作可由如参考图1到7所描述的存储器系统执行。在一些实例中,存储器系统可执行指令集以控制系统的功能元件执行下文所描述的功能。另外或替代地,存储器系统可使用专用硬件执行下文所描述的功能的方面。
在905处,所述方法可包含接收多个读取命令和一或多个休眠命令。可根据本文所公开的实例执行905的操作。在一些实例中,可由参考图7所描述的命令接收组件725执行905的操作的方面。
在910处,所述方法可包含至少部分地基于(例如,使用)由所述多个读取命令指示的所述逻辑地址、所述多个读取命令的相应传送长度或这两者,确定所述逻辑地址列表是否对应于顺序模式。可根据本文所公开的实例执行910的操作。在一些实例中,可由参考图7所描述的模式检测组件735执行910的操作的方面。
在915处,所述方法可包含至少部分地基于(例如,响应于)将用于预取定义用于下一逻辑地址的L2P地址映射的表的阈值与一比率进行比较,确定是否根据所述顺序模式从所述存储器装置预取所述表,所述比率是休眠命令与所述多个读取命令中的顺序读取命令的比率。可根据本文所公开的实例执行915的操作。在一些实例中,可由参考图7所描述的预取组件740执行915的操作的方面。
在920处,所述方法可包含至少部分地基于(例如,响应于)确定是否预取所述表来执行后续读取命令。可根据本文所公开的实例执行920的操作。在一些实例中,可由参考图7所描述的命令执行组件745执行920的操作的方面。
在一些实例中,如本文中所描述的设备可执行一或多种方法,例如方法900。所述设备可包含用于以下操作的特征、电路系统、逻辑、装置或指令(例如,非暂时性计算机可读媒体存储的可由处理器执行的指令):接收多个读取命令和一或多个休眠命令;至少部分地基于由所述多个读取命令指示的所述逻辑地址、所述多个读取命令的相应传送长度或这两者,确定所述逻辑地址列表是否对应于顺序模式;至少部分地基于将用于预取定义用于下一逻辑地址的L2P地址映射的表的阈值与一比率进行比较,确定是否根据所述顺序模式从所述存储器装置预取所述表,所述比率是休眠命令与所述多个读取命令中的顺序读取命令的比率;和至少部分地基于确定是否预取所述表来执行后续读取命令。
本文所描述的方法900和设备的一些实例可另外包含用于以下操作的操作、特征、电路系统、逻辑、装置或指令:至少部分地基于(例如,响应于)所述比率满足用于预取所述表的所述阈值,在执行所述后续读取命令之前预取所述表;和将所述预取的表存储于高速缓存器中,其中执行所述后续读取命令可包含用于以下操作的操作、特征、电路系统、逻辑、装置或指令:至少部分地基于(例如,使用)由存储于所述高速缓存器中的所述预取的表定义的所述L2P地址映射,从所述存储器装置检索所述数据以用于所述执行的后续读取命令。
本文所描述的方法900和设备的一些实例可另外包含用于以下操作的操作、特征、电路系统、逻辑、装置或指令:至少部分地基于(例如,响应于)所述比率未能满足用于预取所述表的所述阈值,在执行所述后续读取命令之前制止预取所述表,其中执行所述后续读取命令可包含用于以下操作的操作、特征、电路系统、逻辑、装置或指令:至少部分地基于(例如,响应于)执行所述后续读取命令来提取所述表;和至少部分地基于(例如,使用)由所述提取的表定义的所述L2P地址映射,从所述存储器装置检索所述数据以用于所述执行的后续读取命令。
本文所描述的方法900和设备的一些实例可另外包含用于以下操作的操作、特征、电路系统、逻辑、装置或指令:执行所述一或多个休眠命令中的休眠命令;至少部分地基于(例如,响应于)执行所述休眠命令,将数据从高速缓存器清空到所述存储器装置中;和至少部分地基于(例如,响应于)执行所述休眠命令,进入低电力状态。
本文所描述的方法900和设备的一些实例可另外包含用于以下操作的操作、特征、电路系统、逻辑、装置或指令:使第一计数值针对所述多个读取命令中的每个顺序读取命令而递增;和使第二计数值针对所述一或多个休眠命令中的每个休眠命令而递增,其中可至少部分地基于(例如,使用)所述第二计数值和所述第一计数值来确定所述比率。
在本文所描述的方法900和设备的一些实例中,用于预取所述表的阈值可为阈值比率1:1。
应注意,上文所描述的方法描述了可能的实施方案,且操作和步骤可经重新布置或以其它方式修改,且其它实施方案是可能的。另外,可组合来自所述方法中的两种或更多种的部分。
可使用多种不同技术和技艺中的任一种来表示本文中所描述的信息和信号。举例来说,可通过电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合来表示在整个上文描述中可能参考的数据、指令、命令、信息、信号、位、符号和码片。一些图式可将信令说明为单个信号;然而,信号可表示信号的总线,其中所述总线可具有多种位宽度。
术语“电子连通”、“导电接触”、“连接”和“耦合”可以指组件之间支持电子在组件之间流动的关系。如果组件之间存在可在任何时间支持信号在组件之间流动的任何导电路径,那么组件被视为彼此电子通信(或彼此导电接触,或彼此连接,或彼此耦合)。在任何给定时间,基于包含所连接组件的装置的操作,彼此电子连通(或导电接触或连接或耦合)的组件之间的导电路径可以是开路或闭路。所连接组件之间的导电路径可以是组件之间的直接导电路径,或所连接组件之间的导电路径可以是可包含如开关、晶体管或其它组件的中间组件的间接导电路径。在一些实例中,可例如使用例如开关或晶体管等一或多个中间组件来中断所连接组件之间的信号流一段时间。
术语“耦合”是指从组件之间的开路关系移动到组件之间的闭路关系的条件,在开路关系中,信号当前无法通过导电路径在组件之间传达,在闭路关系中,信号能够通过导电路径在组件之间传达。如果如控制器的组件将其它组件耦合在一起,那么组件发起允许信号经由先前不准许信号流动的导电路径在其它组件之间流动的改变。
术语“隔离”是指信号当前不能在组件之间流动的组件之间的关系。如果组件之间存在开路,则组件彼此隔离。举例来说,由定位在两个组件之间的开关间隔开的所述组件在开关断开的情况下彼此隔离。如果控制器将两个组件隔离,那么控制器实现以下改变:阻止信号使用先前准许信号流动的导电路径在组件之间流动。
术语“如果”、“当……时”、“基于”,或“至少部分地基于”可互换使用。在一些实例中,如果术语“如果”、“当……时”、“基于”,或“至少部分地基于”用于描述条件性动作、条件性过程,或过程的部分之间的连接,则所述术语可互换。
术语“响应于”可指由于先前条件或动作而至少部分地(如果不完全地)发生的一个条件或动作。举例来说,可进行第一条件或动作,且作为先前条件或动作发生的结果(不管是直接在第一条件或动作之后还是在第一条件或动作之后的一或多个其它中间条件或动作发生之后),第二条件或动作可至少部分地发生。
另外,术语“直接地响应于”或“直接响应于”可指一个条件或动作作为先前条件或动作的直接结果而发生。在一些实例中,可进行第一条件或动作,且可作为与是否发生其它条件或动作无关的先前条件或动作发生的结果而直接发生第二条件或动作。在一些实例中,可进行第一条件或动作,且可作为先前条件或动作发生的结果而直接发生第二条件或动作,使得在较早条件或动作与第二条件或动作之间不发生其它中间条件或动作,或在较早条件或动作与第二条件或动作之间发生有限数量的一或多个中间步骤或动作。除非另外规定,否则本文中描述为“基于”、“至少部分地基于”或“响应于”某一其它步骤、动作、事件或条件进行的任何条件或动作可另外或替代地(例如,在替代实例中)“直接响应于”或“直接地响应于”这种其它条件或动作而进行。
本文中论述的装置,包含存储器阵列,可形成于例如硅、锗、硅锗合金、砷化镓、氮化镓等半导体衬底上。在一些实例中,衬底是半导体晶片。在一些其它实例中,衬底可以是绝缘体上硅(SOI)衬底,例如玻璃上硅(SOG)或蓝宝石上硅(SOP),或另一衬底上的半导体材料的外延层。可通过使用包含但不限于磷、硼或砷的各种化学物质的掺杂来控制衬底或衬底的子区的导电性。可在衬底的初始形成或生长期间,通过离子植入或通过任何其它掺杂方法执行掺杂。
本文中所论述的开关组件或晶体管可表示场效应晶体管(FET),且包括包含源极、漏极和栅极的三端装置。所述端子可通过导电材料(例如金属)连接到其它电子元件。源极和漏极可为导电的,且可包括经重掺杂,例如简并,半导体区。源极与漏极可通过经轻掺杂半导体区或沟道分离。如果沟道是n型(即,大部分载流子是电子),那么FET可以被称作n型FET。如果沟道是p型(即,大部分载体为空穴),那么FET可以被称作p型FET。沟道可由绝缘栅极氧化物封端。可通过将电压施加到栅极来控制沟道导电性。举例来说,将正电压或负电压分别施加到n型FET或p型FET可导致沟道变得导电。如果大于或等于晶体管的阈值电压的电压施加到晶体管栅极,那么晶体管可“接通”或“激活”。如果小于晶体管的阈值电压的电压施加到晶体管栅极,那么晶体管可“断开”或“去激活”。
本文结合附图阐述的描述内容描述了实例配置,且并不表示可以实施的或在权利要求书的范围内的所有实例。本文中所使用的术语“示范性”是指“充当实例、例子或说明”,且不“优选于”或“优于”其它实例。详细描述包含具体细节,以提供对所描述技术的理解。然而,可在没有这些具体细节的情况下实践这些技术。在一些情况下,以框图形式示出熟知结构和装置,以免混淆所描述实例的概念。
在附图中,类似组件或特征可以具有相同的参考标记。此外,可通过在参考标记之后跟着短横及在类似组件之间进行区分的第二标记来区分相同类型的各种组件。如果说明书中仅使用第一参考标记,那么描述适用于具有相同第一参考标记的类似组件中的任一个,与第二参考标记无关。
本文中所描述的功能可在硬件、由处理器执行的软件、固件或其任何组合中实施。如果以由处理器执行的软件实施,那么可将功能作为一或多个指令或代码存储于计算机可读媒体上或经由计算机可读媒体发射。其它实例和实施在本公开和所附权利要求书的范围内。举例来说,归因于软件的性质,上文所描述的功能可使用由处理器执行的软件、硬件、固件、硬连线或任何这些的组合实施。实施功能的特征还可物理上位于各种位置处,包含经分布以使得功能的部分在不同物理位置处实施。
举例来说,结合本文中的公开内容所描述的各种说明性块和组件可使用通用处理器、DSP、ASIC、FPGA或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件或经设计以执行本文中所描述的功能的其任何组合来实施或执行。通用处理器可为微处理器,但在替代方案中,处理器可为任何处理器、控制器、微控制器或状态机。处理器可实施为计算装置的组合(例如,DSP与微处理器的组合、多个微处理器、结合DSP核心的一或多个微处理器,或任何其它这类配置)。
如本文中所使用,包含在权利要求书中,如在项列表(例如,后加例如“……中的至少一个”或“……中的一或多个”的短语的项列表)中所使用的“或”指示包含端点的列表,使得例如A、B或C中的至少一个的列表意指A或B或C或AB或AC或BC或ABC(即,A和B和C)。另外,如本文所用,短语“基于”不应理解为提及封闭条件集。举例来说,在不脱离本公开的范围的情况下,描述为“基于条件A”的示范性步骤可基于条件A和条件B两者。换句话说,如本文所用,短语“基于”应同样地解释为短语“至少部分地基于”。
计算机可读媒体包含非暂时性计算机存储媒体以及包含促进将计算机程序从一处传递到另一处的任何媒体的通信媒体两者。非暂时性存储媒体可为可由通用或专用计算机存取的任何可用媒体。借助于实例而非限制,非暂时性计算机可读媒体可包括RAM、只读存储器(ROM)、电可擦除可编程ROM(EEPROM)、压缩光盘(CD)ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置,或可用于携载或存储呈指令或数据结构形式的所要程序代码构件且可由通用或专用计算机或者通用或专用处理器存取的任何其它非暂时性媒体。并且,适当地将任何连接称作计算机可读媒体。举例来说,如果使用同轴电缆、光纤电缆、双绞线、数字订户线(DSL)或例如红外线、无线电和微波的技术从网站、服务器或其它远程源传输软件,那么所述同轴电缆、光纤电缆、双绞线、数字订户线(DSL)或例如红外线、无线电和微波的技术包含在媒体的定义中。如本文中所使用,磁盘和光盘包含CD、激光光盘、光学光盘、数字影音光盘(DVD)、软性磁盘和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘利用激光以光学方式再现数据。以上各项的组合也包含在计算机可读媒体的范围内。
提供本文中的描述使得所属领域的技术人员能够进行或使用本公开。所属领域技术人员将清楚对本公开的各种修改,且本文中所定义的一般原理可应用于其它变化形式而不会脱离本公开的范围。因此,本公开不限于本文中所描述的实例和设计,而是被赋予与本文公开的原理和新颖特征一致的最宽范围。

Claims (20)

1.一种设备,其包括:
存储器装置;和
控制器,其与所述存储器装置耦合且被配置成使得所述设备:
从主机系统接收多个读取命令和一或多个类似写入命令,所述一或多个类似写入命令中的每一个与所述存储器装置进行的至少一个对应写入操作相关联;
根据所述多个读取命令的执行次序,存储由所述多个读取命令指示的逻辑地址列表;
至少部分地基于由所述多个读取命令指示的所述逻辑地址、所述多个读取命令的相应传送长度或这两者,确定所述逻辑地址列表是否对应于顺序模式;和
至少部分地基于确定所述逻辑地址列表对应于所述顺序模式,从所述存储器装置预取数据以供用于后续读取命令。
2.根据权利要求1所述的设备,其中所述控制器被进一步配置成致使所述设备:
至少部分地基于所述逻辑地址列表来确定所述多个读取命令中的顺序读取命令的数量满足模式检测阈值,其中所述控制器被配置成致使所述设备至少部分地基于所述顺序读取命令数量满足所述模式检测阈值,确定所述逻辑地址列表对应于所述顺序模式。
3.根据权利要求2所述的设备,其中为了接收所述多个读取命令和所述一或多个类似写入命令,所述控制器被配置成致使所述设备:
接收顺序读取命令第一子集;
在所述顺序读取命令第一子集之后接收至少一个类似写入命令以供执行;
在所述至少一个类似写入命令之后接收顺序读取命令第二子集以供执行,其中所述顺序读取命令第二子集中的第一读取命令排在所述顺序读取命令第一子集中的最后一个读取命令之后;和
至少部分地基于所述顺序读取命令第二子集中的所述第一读取命令排在所述顺序读取命令第一子集中的所述最后一个读取命令之后,确定所述顺序读取命令数量包括所述顺序读取命令第一子集和所述顺序读取命令第二子集。
4.根据权利要求2所述的设备,其中所述控制器被进一步配置成致使所述设备:
接收指示第一逻辑地址和第一命令长度的第一读取命令;
在所述第一读取命令之后接收一或多个第二读取命令,所述一或多个第二读取命令指示根据所述第一命令长度排在所述第一逻辑地址之前的相应第二逻辑地址,其中所述一或多个第二读取命令的数量满足用于重置模式检测的阈值;和
至少部分地基于所述一或多个第二读取命令排在所述第一读取命令之前且所述一或多个第二读取命令的所述数量满足用于重置模式检测的所述阈值,重置所述顺序读取命令数量。
5.根据权利要求2所述的设备,其中所述控制器被进一步配置成致使所述设备:
跟踪用于顺序读取命令的计数值,其中所述控制器被配置成致使所述设备至少部分地基于所述计数值满足所述模式检测阈值,确定所述顺序读取命令数量满足所述模式检测阈值。
6.根据权利要求2所述的设备,其中所述逻辑地址列表包括等于所述模式检测阈值的时隙数量,且其中所述控制器被配置成致使所述设备至少部分地基于所述逻辑地址列表的每一时隙存储顺序逻辑地址,确定所述顺序读取命令数量满足所述模式检测阈值。
7.根据权利要求1所述的设备,其中所述控制器被进一步配置成致使所述设备:
至少部分地基于确定所述逻辑地址列表对应于所述顺序模式,跟踪用于顺序读取命令的第二计数值;和
至少部分地基于所述第二计数值满足用于预取触发的第二阈值来触发所述预取。
8.根据权利要求1所述的设备,其中所述控制器被进一步配置成致使所述设备:
至少部分地基于确定所述逻辑地址列表对应于所述顺序模式,在执行所述后续读取命令之前将所述预取的数据存储于高速缓存器中;
执行所述后续读取命令;和
至少部分地基于所述后续读取命令满足所述顺序模式,从所述高速缓存器检索所述预取的数据以用于所述执行的后续读取命令。
9.根据权利要求1所述的设备,其中所述控制器被进一步配置成致使所述设备:
与所述逻辑地址列表一起存储所述多个读取命令的所述相应传送长度的列表。
10.根据权利要求1所述的设备,其中所述控制器被进一步配置成致使所述设备:
确定所述多个读取命令的共同传送长度;和
与所述逻辑地址列表一起存储所述共同传送长度的指示。
11.根据权利要求1所述的设备,其中:
所述控制器被配置成致使所述设备将所述逻辑地址列表存储于随机存取存储器中。
12.根据权利要求1所述的设备,其中所述一或多个类似写入命令包括写入命令、取消映射命令、格式单元命令、安全协议输出命令、开始停止单元命令或其任何组合。
13.根据权利要求1所述的设备,其中为了从所述存储器装置预取所述数据以用于所述后续读取命令,所述控制器被配置成致使所述设备:
执行根据所述顺序模式指示下一逻辑块地址的预取命令。
14.一种设备,其包括:
存储器装置;和
控制器,其与所述存储器装置耦合且被配置成使得所述设备:
接收多个读取命令和一或多个休眠命令;
至少部分地基于由所述多个读取命令指示的相应逻辑地址、所述多个读取命令的相应传送长度或这两者来检测逻辑地址顺序模式;
至少部分地基于将用于预取定义用于下一逻辑地址的逻辑到物理地址映射的表的阈值与一比率进行比较,确定是否根据所述顺序模式从所述存储器装置预取所述表,所述比率是休眠命令与所述多个读取命令中的顺序读取命令的比率;和
至少部分地基于确定是否预取所述表来执行后续读取命令。
15.根据权利要求14所述的设备,其中所述控制器被进一步配置成致使所述设备:
至少部分地基于所述比率满足用于预取所述表的所述阈值,在执行所述后续读取命令之前预取所述表;和
将所述预取的表存储于高速缓存器中,其中为了执行所述后续读取命令,所述控制器被配置成致使所述设备:
至少部分地基于由存储于所述高速缓存器中的所述预取的表定义的所述逻辑到物理地址映射,从所述存储器装置检索所述数据以用于所述执行的后续读取命令。
16.根据权利要求14所述的设备,其中所述控制器被进一步配置成致使所述设备:
至少部分地基于所述比率未能满足用于预取所述表的所述阈值,在执行所述后续读取命令之前制止预取所述表,其中为了执行所述后续读取命令,所述控制器被配置成致使所述设备:
至少部分地基于执行所述后续读取命令来提取所述表;和
至少部分地基于由所述提取的表定义的所述逻辑到物理地址映射,从所述存储器装置检索所述数据以用于所述执行的后续读取命令。
17.根据权利要求14所述的设备,其中所述控制器被进一步配置成致使所述设备:
执行所述一或多个休眠命令中的休眠命令;
至少部分地基于执行所述休眠命令,将数据从高速缓存器清空到所述存储器装置中;和
至少部分地基于执行所述休眠命令,进入低电力状态。
18.根据权利要求14所述的设备,其中所述控制器被进一步配置成致使所述设备:
使第一计数值针对所述多个读取命令中的每个顺序读取命令而递增;和
使第二计数值针对所述一或多个休眠命令中的每个休眠命令而递增,其中所述控制器被配置成致使所述设备至少部分地基于所述第二计数值和所述第一计数值来确定所述比率。
19.根据权利要求14所述的设备,其中用于预取所述表的所述阈值包括阈值比率1:1。
20.一种存储包括指令的代码的非暂时性计算机可读媒体,所述指令在由电子装置的处理器执行时致使所述电子装置:
从主机系统接收多个读取命令和一或多个类似写入命令,所述一或多个类似写入命令中的每一个与存储器装置进行的至少一个对应写入操作相关联;
根据所述多个读取命令的执行次序,存储由所述多个读取命令指示的逻辑地址列表;
至少部分地基于由所述多个读取命令指示的所述逻辑地址、所述多个读取命令的相应传送长度或这两者,确定所述逻辑地址列表是否对应于顺序模式;和
至少部分地基于确定所述逻辑地址列表对应于所述顺序模式,从所述存储器装置预取数据以供用于后续读取命令。
CN202210474887.2A 2021-04-29 2022-04-29 使用模式检测预取信息的技术 Pending CN115268764A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202163181760P 2021-04-29 2021-04-29
US63/181,760 2021-04-29
US17/723,096 2022-04-18
US17/723,096 US12079128B2 (en) 2021-04-29 2022-04-18 Techniques for pre-fetching information using pattern detection

Publications (1)

Publication Number Publication Date
CN115268764A true CN115268764A (zh) 2022-11-01

Family

ID=83758814

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210474887.2A Pending CN115268764A (zh) 2021-04-29 2022-04-29 使用模式检测预取信息的技术

Country Status (2)

Country Link
US (1) US12079128B2 (zh)
CN (1) CN115268764A (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11593001B1 (en) * 2021-08-02 2023-02-28 Nvidia Corporation Using per memory bank load caches for reducing power use in a system on a chip
US20240184700A1 (en) * 2022-12-06 2024-06-06 Qualcomm Incorporated System for prefetching data into a cache

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6253289B1 (en) * 1998-05-29 2001-06-26 Compaq Computer Corporation Maximizing sequential read streams while minimizing the impact on cache and other applications
US10101917B1 (en) * 2014-09-25 2018-10-16 EMC IP Holding Company LLC Evaluating and selecting data caching techniques
US10001927B1 (en) * 2014-09-30 2018-06-19 EMC IP Holding Company LLC Techniques for optimizing I/O operations
JP2018163434A (ja) * 2017-03-24 2018-10-18 東芝メモリ株式会社 メモリシステム

Also Published As

Publication number Publication date
US12079128B2 (en) 2024-09-03
US20220350744A1 (en) 2022-11-03

Similar Documents

Publication Publication Date Title
US12079128B2 (en) Techniques for pre-fetching information using pattern detection
US12014073B2 (en) Techniques for sequential access operations
US11886735B2 (en) Data movement based on address table activity
CN114882927B (zh) 存储器装置的事件管理
CN117667760A (zh) 存储器系统逻辑单元号程序
US12019877B2 (en) Metadata allocation in memory systems
CN115373592B (zh) 用于页线填充数据的设备、非暂时性计算机可读介质及方法
US20230342060A1 (en) Techniques for data transfer operations
US20230205457A1 (en) Techniques for atomic write operations
US11972109B2 (en) Two-stage buffer operations supporting write commands
US11704049B2 (en) Optimized command sequences
US20240319884A1 (en) Two-stage buffer operations supporting write commands
US11687291B2 (en) Techniques for non-consecutive logical addresses
US20240078020A1 (en) Write booster pinning
US20240201860A1 (en) Address mappings for random access operations
US11790961B2 (en) Memory device access techniques
WO2023173363A1 (en) Low-latency processing for unmap commands
US20240176550A1 (en) Transferring valid data using a system latch
WO2022232969A1 (en) Data organization for logical to physical table compression
US20230297516A1 (en) Circular buffer partitions
US20230376225A1 (en) Techniques for memory system rebuild
US20240078031A1 (en) Dividing blocks for special functions
WO2023173361A1 (en) Techniques for efficiently handling misaligned sequential reads
US20230367710A1 (en) Data defragmentation control
US20240281169A1 (en) Reliable and efficient boot logical unit access

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