CN113448511A - 通过链接阵列依序预提取 - Google Patents
通过链接阵列依序预提取 Download PDFInfo
- Publication number
- CN113448511A CN113448511A CN202110319446.0A CN202110319446A CN113448511A CN 113448511 A CN113448511 A CN 113448511A CN 202110319446 A CN202110319446 A CN 202110319446A CN 113448511 A CN113448511 A CN 113448511A
- Authority
- CN
- China
- Prior art keywords
- memory
- tags
- queue
- data
- determining
- 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
- 230000015654 memory Effects 0.000 claims abstract description 254
- 238000012545 processing Methods 0.000 claims description 66
- 238000000034 method Methods 0.000 claims description 35
- 230000004044 response Effects 0.000 claims description 11
- 238000011010 flushing procedure Methods 0.000 claims 1
- 230000008569 process Effects 0.000 description 10
- 239000000872 buffer Substances 0.000 description 8
- 238000004891 communication Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 238000003491 array Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 150000004770 chalcogenides Chemical class 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
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/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/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0853—Cache with multiport tag or data arrays
-
- 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/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- 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/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3037—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
-
- 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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/123—Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- 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/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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/22—Employing cache memory using specific memory technology
- G06F2212/222—Non-volatile memory
-
- 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/60—Details of cache memory
- G06F2212/6026—Prefetching based on access pattern detection, e.g. stride based prefetch
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)
- Computing Systems (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请是针对通过链接阵列依序预提取。预提取管理器可检测占用存储器子系统的队列的一组标签对应于指示依序读取模式的单个读取描述符。所述预提取管理器可确定占用所述队列的所述组标签的数目低于队列阈值且基于所述检测和所述确定而将与所述组标签的至少一个标签相关联的数据存储在所述存储器子系统的内部性能存储器中。在此类情况下,所述预提取管理器可从存储器管理器预提取数据且存储在所述内部性能存储器中。
Description
交叉引用
本专利申请要求由Virani等人于2020年3月27日提交的名称为“SEQUENTIALPREFETCHING THROUGH A LINKING ARRAY”的美国专利申请第16/833,306号的优先权,所述美国专利申请转让给本受让人,且明确地以全文引用的方式并入本文中。
技术领域
以下内容涉及通过用于存储器子系统的链接阵列依序预提取。
背景技术
存储器子系统可包含存储数据的一或多个存储器装置。存储器装置可以是例如非易失性存储器装置和易失性存储器装置。一般来说,主机系统可利用存储器子系统来将数据存储在存储器装置处且从存储器装置检索数据。
发明内容
描述一种方法。方法可包含检测占用存储器子系统的队列的一组标签对应于指示依序读取模式的单个读取描述符,确定占用队列的所述组标签的数目低于队列阈值,和至少部分地基于检测和确定而将与所述组标签的至少一个标签相关联的数据存储在存储器子系统的内部性能存储器中。
描述一种系统。系统可包含多个存储器组件和处理装置,所述处理装置可操作地与多个存储器组件耦合以检测占用存储器子系统的队列的一组标签对应于指示依序读取模式的单个读取描述符,确定占用队列的所述组标签的数目低于队列阈值,且至少部分地基于检测和确定而将与所述组标签的至少一个标签相关联的数据存储在存储器子系统的内部性能存储器中。
描述一种存储代码的非暂时性计算机可读媒体。代码可包含指令,所述指令可由处理器执行以检测占用存储器子系统的队列的一组标签对应于指示依序读取模式的单个读取描述符,确定占用队列的所述组标签的数目低于队列阈值,和至少部分地基于检测和确定而将与所述组标签的至少一个标签相关联的数据存储在存储器子系统的内部性能存储器中。
附图说明
根据下文给出的详细描述和本公开的各种实施例的随附图式,将更充分地理解本公开。然而,图式不应视为将本公开限制于具体实施例,而是仅用于解释和理解。
图1是根据本公开的一些实施例的包含存储器子系统的计算系统的实例。
图2是根据本公开的一些实施例的通过链接阵列依序预提取的实例方法的流程图。
图3是根据本公开的一些实施例的支持通过链接阵列依序预提取的实例系统的框图。
图4是本公开的实施例可在其中操作的计算机系统的实例。
具体实施方式
本公开的方面是针对通过链接阵列依序预提取。存储器子系统可以是存储装置、存储器模块或存储装置与存储器模块的混合。下文结合图1描述存储装置和存储器模块的实例。一般来说,主机系统可利用包含一或多个存储器组件(下文还称为“存储器装置”)的存储器子系统。主机系统可提供数据以存储于存储器子系统处且可请求从存储器子系统检索数据。
存储器装置可以是非易失性存储器装置。非易失性存储器装置是一或多个裸片的封装。每一裸片可由一或多个平面组成。对于一些类型的非易失性存储器装置(例如,“与非”(NAND)装置),每一平面由物理传递单元集合组成,例如块。每一块由页集合组成。每一页由存储数据位的存储器单元集合组成。
数据操作可由存储器子系统执行。数据操作可以是主机发起的操作。举例来说,主机系统可在存储器子系统上发起数据操作(写入、读取、擦除等)。主机系统可将存取请求(例如,写入命令、读取命令)发送到存储器子系统,以便将数据存储在存储器子系统处的存储器装置上,且从存储器子系统上的存储器装置读取数据。
存储器子系统可利用标签(例如,SysTags)(其中标签含有关于逻辑块地址(LBA)、转换单元地址(TUA)、内部缓冲区地址的信息)和HTag。TUA可从主机系统视角描述用户数据,且内部缓冲区地址可追踪数据在传输程序中的定位。HTag可以是应用于标签中包含的LBA的命令。标签(例如,SysTags)可以是不能传送关于其它标签的信息的个别实体。举例来说,标签可以是内部数据描述和控制块,其可用于在各种硬件与固件组件之间传送用户数据信息和数据自身。
在一些实施例中,标签可通过使用每一标签内包含的“下一SysTag”指针进行链接,进而将标签分组在一起以通过命令工作。标签的链接可允许标签指向另一(例如,下一)标签。在一些系统中,个别标签可放置到存储器子系统内的队列中且个别地进行处理。通过链接,由于一个标签可链接到(例如,指向)另一标签,故多个标签可用单个命令进行处理。在此类系统中,然而,标签的链接可以是未充分利用的,其可引起存储器子系统经历性能损失、增加信令开销和用于进行操作的增加处理开销。在此类情况下,未充分利用标签的链接可降低存储器子系统的性能、增加功率消耗或类似物。
本公开的方面通过具有依序预提取数据的存储器子系统而解决以上和其它缺陷。在低队列深度工作负荷中,分配用于主机命令的标签的数目可以是低的。在一些实例中,当辨识出依序读取模式时(即,当产生用于多个标签的单个描述符(如单个读取描述符)时),存储器子系统可从NAND预提取(即,读取)数据且将其存储在静态随机存取存储器(SRAM)中。在此类情况下,当处理标签时,已经执行存储器管理器(例如,后端)程序(例如,已在处理对应于数据的标签之前读取(即,预提取)来自NAND的数据)且读取数据可经由SRAM可存取。举例来说,当针对目标预提取数据处理主机命令时,数据可传递到主机系统。因为预提取数据可存储于SRAM中,每当发布命令时,主机系统可比用于从NAND读取数据的后端程序更快速地存取预提取数据。此类技术增强存储器子系统的性能,从而经历改良读取速度、减少功率消耗、降低处理复杂度和改良处理时间。
首先在如参考图1所描述的计算环境的上下文中描述本公开的特征。在参考图2和3所描述的方法和框图的上下文中描述本公开的特征。通过以及参考如参考图4所描述的涉及通过链接阵列依序预提取的计算机系统进一步说明以及描述本公开的这些和其它特征。
图1是根据本公开的一些实施例的包含存储器子系统110的计算系统100的实例。存储器子系统110可包含媒体,如一或多个易失性存储器装置(例如,存储器装置140)、一或多个非易失性存储器装置(例如,存储器装置130)或这些的组合。
存储器子系统110可以是存储装置、存储器模块或存储装置与存储器模块的混合。存储装置的实例包含固态驱动器(SSD)、快闪驱动器、通用串行总线(USB)快闪驱动器、安全数字(SD)卡、嵌入式多媒体控制器(eMMC)驱动器、通用快闪存储(UFS)驱动器和硬盘驱动器(HDD)。存储器模块的实例包含双列直插式存储器模块(DIMM)、小型DIMM(SO-DIMM)和各种类型的非易失性DIMM(NVDIMM)。
计算系统100可以是计算装置,如台式计算机、膝上型计算机、网络服务器、移动装置、交通工具(例如,飞机、无人机、火车、汽车或其它运输工具)、具有物联网(IoT)功能的装置、嵌入式计算机(例如,交通工具、工业设备或联网商业装置中包含的嵌入式计算机)或包含存储器和处理装置的此类计算装置。
计算系统100可包含与一或多个存储器子系统110耦合的主机系统105。在一些实施例中,主机系统105与不同类型的存储器子系统110耦合。图1说明与一个存储器子系统110耦合的主机系统105的一个实例。如本文中所使用,“耦合到”或“与…耦合”通常指代组件之间的连接,其可以是间接通信连接或直接通信连接(例如不具有介入组件),无论有线或无线,包含如电性连接、光学连接、磁性连接等的连接。
主机系统105可包含处理器芯片组和由处理器芯片组执行的软件堆叠。处理器芯片组可包含一或多个核心、一或多个高速缓存、存储器控制器(例如,NVDIMM控制器)和存储协议控制器(例如,PCIe控制器、串行高级技术附件(SATA)控制器)。主机系统105使用存储器子系统110,例如,以将数据写入到存储器子系统110且从存储器子系统110读取数据。
主机系统105可使用物理主机接口耦合到存储器子系统110。物理主机接口的实例包含但不限于SATA接口、外围组件互连高速(PCIe)接口、通用串行总线(USB)接口、光纤通道、双数据速率(DDR)存储器总线、小型计算机系统接口(SCSI)、串行附接SCSI(SAS)、DIMM接口(例如,支持DDR的DIMM套接接口)等。物理主机接口可用于在主机系统105与存储器子系统110之间传输数据。当存储器子系统110通过PCIe接口与主机系统105耦合时,主机系统105可进一步利用非易失性存储器高速(NVMe)接口来存取存储器组件(例如,存储器装置130)。物理主机接口可提供接口以用于在存储器子系统110与主机系统105之间传送控制、地址、数据和其它信号。图1说明存储器子系统110作为实例。一般来说,主机系统105可经由同一通信连接、多个单独通信连接和/或通信连接的组合来存取多个存储器子系统。
存储器装置130、140可包含不同类型的非易失性存储器装置和/或易失性存储器装置的任何组合。易失性存储器装置(例如,存储器装置140)可以是但不限于随机存取存储器(RAM),如动态RAM(DRAM)和同步DRAM(SDRAM)。
非易失性存储器装置(例如,存储器装置130)的一些实例包含与非(NAND)型快闪存储器和就地写入存储器,如三维交叉点(“3D交叉点”)存储器装置,其是非易失性存储器单元的交叉点阵列。非易失性存储器的交叉点阵列可结合可堆叠交叉网格化数据存取阵列而基于体电阻的改变来执行位存储。此外,相比于许多基于快闪的存储器,交叉点非易失性存储器可执行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下编程非易失性存储器单元。NAND型快闪存储器包含(例如)二维NAND(2D NAND)和三维NAND(3DNAND)。
存储器装置130中的每一个可包含一或多个存储器单元阵列。一种类型的存储器单元,例如单层级单元(SLC)可每单元存储一个位。其它类型的存储器单元,如多层级单元(MLC)、三层级单元(TLC)和四层级单元(QLC)可每单元存储多个位。在一些实施例中,存储器装置130中的每一个可包含一或多个存储器单元阵列,如SLC、MLC、TLC、QLC或这些的任何组合。在一些实施例中,特定存储器装置可包含存储器单元的SLC部分以及MLC部分、TLC部分或QLC部分。存储器装置130的存储器单元可分组为页,所述页可指用以存储数据的存储器装置的逻辑单元。对于一些类型的存储器(例如,NAND),页可分组以形成块。
虽然描述如非易失性存储器单元3D交叉点阵列和NAND型快闪存储器(例如,2DNAND、3D NAND)的非易失性存储器装置,但存储器装置130可基于任何其它类型的非易失性存储器,如只读存储器(ROM)、相变存储器(PCM)、自选存储器、其它基于硫族化物的存储器、铁电晶体管随机存取存储器(FeTRAM)、铁电RAM(FeRAM)、磁RAM(MRAM)、自旋转移力矩(STT)-MRAM、导电桥接RAM(CBRAM)、电阻性随机存取存储器(RRAM)、基于氧化物的RRAM(OxRAM)、或非(NOR)快闪存储器和电可擦除可编程ROM(EEPROM)。
存储器子系统控制器115(或简称为控制器115)可与存储器装置130通信以执行操作,如在存储器装置130处读取数据、写入数据或擦除数据和其它这类操作。存储器子系统控制器115可包含硬件,如一或多个集成电路和/或离散组件、缓冲存储器或这些的组合。硬件可包含具有执行本文中所描述的操作的专用(即,硬译码)逻辑的数字电路。存储器子系统控制器115可以是微控制器、专用逻辑电路(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)、数字信号处理器(DSP))或其它合适的处理器。
存储器子系统控制器115可包含处理器120(例如,处理装置),其配置成执行存储在本地存储器125中的指令。在所说明的实例中,存储器子系统控制器115的本地存储器125包含嵌入式存储器,其配置成存储用于执行各种过程、操作、逻辑流以及控制存储器子系统110的操作的例程的指令,包含处置存储器子系统110与主机系统105之间的通信。
在一些实施例中,本地存储器125可包含存储存储器指针、所提取数据等的存储器寄存器。本地存储器125还可包含用于存储微码的只读存储器(ROM)。虽然图1中的实例存储器子系统110已说明为包含存储器子系统控制器115,但在本公开的另一实例中,存储器子系统110不包含存储器子系统控制器115,且可实际上依赖于外部控制(例如,由外部主机或由与存储器子系统分离的处理器或控制器提供)。
一般来说,存储器子系统控制器115可从主机系统105接收命令或操作,且可将命令或操作转换为指令或适当命令以实现对存储器装置130和/或存储器装置140的所要存取。存储器子系统控制器115可负责其它操作,如耗损均衡操作、垃圾收集操作、错误检测和错误校正码(ECC)操作、加密操作、高速缓存操作和与存储器装置130相关联的逻辑地址(例如,逻辑块地址(LBA)、名字空间)与物理地址(例如,物理块地址)之间的地址转换。存储器子系统控制器115可进一步包含主机接口电路以经由物理主机接口与主机系统105通信。主机接口电路可将从主机系统接收到的命令转换为命令指令以存取存储器装置130和/或存储器装置140,以及将与存储器装置130和/或存储器装置140相关联的响应转换为用于主机系统105的信息。
存储器子系统110还可包含未说明的额外电路或组件。在一些实例中,存储器子系统110可包含高速缓存或缓冲器(例如,DRAM)和地址电路(例如,行解码器和列解码器),所述地址电路可从存储器子系统控制器115接收地址且解码所述地址以存取存储器装置130。
在一些实例中,存储器装置130包含本地媒体控制器135,所述本地媒体控制器135结合存储器子系统控制器115操作以对存储器装置130的一或多个存储器单元执行操作。外部控制器(例如,存储器子系统控制器115)可在外部管理存储器装置130(例如,对存储器装置130执行媒体管理操作)。在一些实施例中,存储器装置130是受管理存储器装置,其是与进行媒体管理的本地控制器(例如,本地控制器135)组合在同一存储器装置封装内的原始存储器装置。受管理存储器装置的实例是受管理NAND(MNAND)装置。
存储器子系统110包含预提取管理器150,所述预提取管理器150可检测依序读取,检测低队列深度,且从NAND预提取数据以存储在内部性能存储器155(例如,SRAM)中。在一些情况下,预提取管理器150可基于确定与队列中的用于在存储器子系统110处处理的一或多个标签相关联的数据的大小、基于确定依序读取命令的数目或这两者而确定依序读取。在一些实例中,预提取管理器150可通过确定存储器子系统110中的未解决命令(例如,读取命令)的数目来检测低队列深度。
在一些实例中,存储器子系统控制器115包含预提取管理器150的至少一部分。举例来说,存储器子系统控制器115可包含处理器120(例如,处理装置),其配置成执行存储在本地存储器125中的指令以用于执行本文中所描述的操作。在一些实例中,预提取管理器150是主机系统105、应用程序或操作系统的一部分或与主机系统105、应用程序或操作系统通信。
预提取管理器150可检测预提取数据的命令且分配用于所述命令的资源。在一些情况下,预提取管理器150可检测写入模式且基于检测存储器子系统110中或存储器子系统110的队列中的写入模式而制止预提取数据。在此类情况下,预提取管理器150可基于检测存储器子系统110中的写入模式而冲洗预提取数据(例如,擦除存储于内部性能存储器155处的预提取数据)。下文描述关于预提取管理器150的操作的其它细节。
图2是根据本公开的一些实施例的通过链接阵列依序预提取的实例方法200的流程图。方法200可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实例中,方法200由图1的预提取管理器150执行。虽然以特定顺序或次序来展示,但除非另外规定,否则可修改过程的次序。因此,所说明实例应仅作为实例理解,且所说明过程可以不同次序执行,且一些过程可并行执行。此外,可在各种实施例中省略一或多个过程。因此,在每一实例中并不需要所有过程。其它过程流程是可能的。
在操作205处,处理装置可检测依序读取。举例来说,处理装置可检测占用存储器子系统(例如,图1的存储器子系统110)的队列的一组标签。在一些情况下,所述组标签与用于所述组标签的指示依序读取模式的单个读取描述符相关联。单个读取描述符可以是适用于所述组标签的多个标签的HTag(例如,读取命令)或其它命令的实例。举例来说,单个读取描述符可用于所述组标签内的标签中的每一个,且所述组标签的每一标签可链接到所述组标签的至少一个其它标签。
处理装置(如图1的处理器120)可确定存储器子系统的数据量高于阈值(例如,存储器子系统的队列中的数据量高于数据阈值)。举例来说,处理装置可基于确定存储器子系统或存储器子系统的队列中的数据的大小而确定(例如,检测)依序读取。在其它实例中,处理装置可确定依序读取模式的依序读取高于依序读取阈值。举例来说,处理装置可基于确定在存储器子系统处或在存储器子系统的队列中接收的依序读取命令的数目而确定(例如,检测)依序读取。
在一些情况下,处理装置可确定占用队列的所述组标签的数目高于队列阈值。在此类情况下,处理装置可从内部性能存储器(例如,图1的内部性能存储器155)去除与最近最少使用的读取串流相关联的数据。举例来说,如果占用存储器子系统的队列,那么处理装置可从最近最少使用的串流弹出(例如,去除或擦除)数据。对应于标签中的一个的数据可基于弹出所述数据而存储。
处理装置可检测占用存储器子系统的队列的第二组标签对应于非依序读取模式。在此类情况下,处理装置可从内部性能存储器去除与最近最少使用的读取串流相关联的数据。举例来说,在接收不与依序读取相关的数个命令之后,处理装置可从最近最少使用的串流弹出数据。对应于标签中的一个的数据可基于去除(例如,弹出数据)而存储。在一些实例中,操作205的方面可由如参考图1所描述的预提取管理器150执行。
在操作210处,处理装置可检测低队列深度。举例来说,处理装置可确定占用队列的所述组标签的数目低于队列阈值。在此类情况下,处理装置可向队列的队列时隙指派依序读取模式的依序读取。举例来说,如果未占用存储器子系统的队列,那么处理装置可向队列时隙指派依序读取。
处理装置可将对应于所述组标签的标签中的至少一个的数据的读取请求传输到存储器管理器(例如,后端管理器)。处理装置可确定队列中的未占用队列时隙的数目高于队列阈值且确定依序读取模式的未解决依序读取的数目(例如,基于存储器子系统的队列的未占用时隙的数目)。举例来说,处理装置可确定存储器子系统中的未解决命令的数目以检测低队列深度。
在一些实例中,处理装置可检测占用存储器子系统的队列的第二组标签对应于写入模式。在此类情况下,处理装置可制止将对应于所述组标签的标签中的至少一个的数据存储在存储器子系统的内部性能存储器中。举例来说,处理装置可检测写入模式且基于检测存储器子系统中的写入模式而制止预提取数据。如果在存储器子系统中检测到写入模式,那么处理装置可从内部性能存储器冲洗对应于所述组标签的标签中的至少一个的所存储数据。在一些实例中,操作210的方面可由如参考图1所描述的预提取管理器150执行。
在操作215处,处理装置可从NAND预提取数据以存储在内部性能存储器(如SRAM)中。举例来说,处理装置可将与所述组标签的至少一个标签相关联的数据存储在存储器子系统的内部性能存储器中。处理装置可传输读取请求(例如,到NAND或NAND的后端管理器)且接收与对应于所述组标签的至少一个标签的数据相关联的读取响应。在此类情况下,存储所述数据可基于接收读取响应,使得读取响应指示读取数据且读取数据存储在内部性能存储器上。
在一些情况下,处理装置可接收命令以从存储器装置(例如,存储器管理器)的后端检索数据且分配内部性能存储器的资源。在此类情况下,与所述组标签的至少一个标签相关联的数据可存储于内部性能存储器的所分配资源处。举例来说,处理装置可检测预提取数据的命令且分配用于所述命令的资源。在一些实例中,操作215的方面可由如参考图1所描述的预提取管理器150执行。
图3是根据本公开的一些实施例的支持通过链接阵列依序预提取的实例系统300的框图。系统300可包含存储器子系统305。存储器子系统305可包含前端管理器310、预提取管理器315、内部性能存储器330和队列320。系统300还可包含主机系统335和存储器管理器325。
存储器子系统305可从主机系统335接收用于依序读取操作的命令。预提取管理器315可将对应于所述组标签的标签的数据的读取请求传输到存储器管理器325。存储器管理器325可包含在存储器子系统305中或可与存储器子系统305分离。基于传输读取请求,预提取管理器315可接收与对应于所述组标签的标签的数据相关联的读取响应。预提取管理器315可将数据存储在存储器子系统的内部性能存储器330中。将数据存储在内部性能存储器330中可使得预提取管理器315能够在队列320的深度低时和在检测到依序读取时预提取数据。预提取管理器315可预提取数据以用于依序读取,而非每当接收到读取请求时使用资源来提取数据,进而减少处理时间、开销和功率消耗。
所述组标签中包含的标签可以是可用于在硬件与固件组件之间传送用户数据信息和数据的内部数据描述和控制块的实例。配置成接收标签的处理核心可包含在预提取管理器315或存储器管理器325中。标签可包含与所述组标签中的另一标签的链接。举例来说,前端管理器310可将包含链接(例如,下一标签识别符可包含在单个标签的字段中)的单个标签发送到另一标签,其中与标签相关联的信息可存储于从一个处理核心到不同处理核心的内部性能存储器330中。当存储器管理器325接收标签时,存储器管理器325可检索与所述组标签的标签相关联的数据。如果内部性能存储器330包含与标签相关联的数据,那么可从内部性能存储器330检索数据。
标签的链接可允许预提取管理器315预提取数据而不延迟或不利地影响其它组件(例如,主机系统335、前端管理器310和存储器管理器325)。举例来说,预提取管理器315可将尚未与来自主机系统335的命令相关联的标签链接在一起。在此情况下,如果存储器子系统包含具有依序读取的单个队列深度环境,那么预提取管理器315可识别(例如,预测)用于下一标签(或LBA)的读取命令且从存储器管理器325预提取数据。如果预提取管理器315检测到低队列深度和依序读取,那么预提取管理器315可从NAND(例如,存储器管理器325)预提取数据且存储在SRAM(例如内部性能存储器330)中。在此类情况下,当主机系统335发出下一读取请求时,数据已存储于内部性能存储器中,且下一读取请求不由存储器管理器325处理,进而减少处理时间和提高效率。
预提取管理器315可检测占用存储器子系统305的队列320的一组标签对应于指示依序读取的单个读取描述符(例如,HTag)。举例来说,预提取管理器315可检测存储器子系统305中的未解决的命令的数目。预提取管理器315可将未解决命令的数目存储在表中以追踪队列320的条件。举例来说,预提取管理器315可经由表来识别先前命令是读取命令。在此类情况下,预提取管理器315可基于确定依序读取模式的依序读取高于依序读取阈值(例如,确定连续读取命令的数目超出阈值)而检测依序读取模式。在其它实例中,预提取管理器315可在存储器子系统的数据量高于(例如,超出)数据阈值的情况下检测依序读取。
预提取管理器315可检测队列320的条件(例如,低队列深度)。在一些情况下,预提取管理器315可确定占用队列320的所述组标签的数目低于队列阈值(例如,低)。当分配用于来自主机系统335的主机命令的标签的数目低时,队列320的深度可以是低的。举例来说,预提取管理器315可确定队列320中的未占用时隙的数目。预提取管理器315可基于确定未占用时隙的数目高于阈值(例如,超出队列阈值)而检测低队列深度。在一些情况下,预提取管理器315可在确定未占用时隙的数目之后确定读取模式的未解决依序读取的数目。在一些实例中,预提取管理器315可基于确定队列深度低而向队列320内的时隙指派依序读取模式的依序读取。
在一些情况下,预提取管理器315可制止将数据存储在内部性能存储器330中。举例来说,预提取管理器315可检测写入命令(例如,写入模式)是否在存储器子系统305中或队列320中。在此类情况下,预提取管理器315可检测占用队列320的第二组标签对应于写入模式。写入模式和读取模式可利用单独缓冲池(例如,内部性能存储器330),使得预提取管理器315将需要单独的空白缓冲池来存储用于写入模式的数据。在一些情况下,队列320可已由读取模式占用。因此,预提取管理器315可制止将对应于标签的数据存储在存储器子系统305的内部性能存储器330中。在其它实例中,预提取管理器315可基于检测写入模式而从内部性能存储器330冲洗对应于标签的所存储数据。
在一些情况下,预提取管理器315可确定占用队列320的标签的数目高于队列阈值(例如,占用队列中的每一个)。在此类情况下,预提取管理器315可从内部性能存储器330去除(例如,弹出)与最近最少使用的串流相关联的数据。在其它实例中,预提取管理器315可检测占用队列320的第二组标签对应于非依序读取模式。举例来说,在预提取管理器315检测不与依序读取相关(例如,与写入模式、擦除模式或类似物相关)的命令的数目之后,预提取管理器315可从读取数据串流(例如,最近最少使用的串流)弹出数据。
预提取管理器315可检测主机命令(例如从主机系统335接收到的命令)请求预提取数据。举例来说,预提取管理器315可包含检测主机命令的相干性检查器。举例来说,当在存储器子系统处接收读取命令或写入命令时,命令可传输通过相干性检查器以验证存储器子系统中的未解决数据是否与接收到的主机命令相关。预提取数据可放置在具有指示符的相干性检查器中,所述指示符将数据识别为预提取数据。预提取数据可放置到缓冲器中。举例来说,与标签相关联的数据可存储于存储器子系统305的内部性能存储器330中。当从主机系统335接收到读取命令时,命令可由相干性检查器处理。相干性检查器可识别数据已在内部性能存储器330中,进而防止预提取管理器315将读取请求传输到存储器管理器325(例如,NAND)。在此类情况下,可从内部性能存储器330直接传递数据。
在一些情况下,预提取管理器315检测命令以从内部性能存储器330检索预提取数据。为检索预提取数据,预提取管理器315可为单个读取描述符(例如,HTag)分配标签和缓冲器。对于由存储器子系统305接收的每一命令,可分配内部性能存储器330的资源。在此类情况下,与至少一个标签相关联的数据可存储于内部性能存储器330的所分配资源处。
图4是本公开的实例可在其中操作的计算机系统400的实例机器。计算机系统400可包含用于使机器执行本文所描述的技术中的任何一或多种的指令集。在一些实例中,计算机系统400可对应于主机系统(例如,参考图1描述的主机系统105),所述主机系统包含、耦合到或利用存储器子系统(例如,参考图1描述的存储器子系统110),或可用于执行控制器的操作(例如,实行操作系统以执行对应于参考图1描述的预提取管理器150的操作)。在一些实例中,机器可连接(例如,联网)到局域网(LAN)、内联网、外联网和/或因特网中的其它机器。机器可作为点对点(或分散式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而在客户端-服务器网络环境中的服务器或客户端机器的容量中操作。
机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝式电话、网络器具、服务器、网络路由器、交换机或桥接器或能够(依序或以其它方式)执行指定将由所述机器采取的动作的指令集的任何机器。另外,尽管说明单个机器,但术语“机器”还可包含机器的任何集合,所述集合单独地或共同地执行一(或多)个指令集以执行本文中所论述的方法中的任何一或多种。
实例计算机系统400可包含处理装置405、主存储器410(例如,ROM、快闪存储器、如SDRAM或Rambus DRAM(RDRAM)等DRAM)、静态存储器415(例如,快闪存储器、SRAM等)和数据存储系统425,它们经由总线445彼此通信。
处理装置405表示一或多个通用处理装置,如微处理器、中央处理单元或类似物。更确切地说,处理装置可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置405也可以是一或多个专用处理装置,如ASIC、FPGA、DSP、网络处理器或类似物。处理装置405配置成执行用于执行本文中所论述的操作和步骤的指令435。计算机系统400可进一步包含网络接口装置420以经由网络440通信。
数据存储系统425可包含机器可读存储媒体430(也称为计算机可读媒体),其上存储有一或多个指令集435或体现本文中所描述的方法或功能中的任何一或多种的软件。指令435还可在其由计算机系统400执行期间完全或至少部分地驻存在主存储器410内和/或处理装置405内,主存储器410和处理装置405也构成机器可读存储媒体。机器可读存储媒体430、数据存储系统425和/或主存储器410可对应于存储器子系统。
在一个实例中,指令435包含实施对应于预提取管理器450(例如,参考图1描述的预提取管理器150)的功能性的指令。虽然机器可读存储媒体430展示为单个媒体,但术语“机器可读存储媒体”可包含存储一或多个指令集的单个媒体或多个媒体。术语“机器可读存储媒体”还可包含能够存储或编码供机器执行的指令集且使得机器执行本公开的方法中的任何一或多种的任何媒体。因此,术语“机器可读存储媒体”可包含但不限于固态存储器、光学媒体以及磁性媒体。
已依据计算机存储器内的数据位上的操作的算法和符号表示呈现了先前详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用以将其工作的主旨最有效地传达给所属领域的其它技术人员的方式。算法在这里且通常认为是引起所要结果的操作的自洽序列。操作是要求对物理量进行物理操控的操作。通常(但未必),这些量采用能够存储、组合、比较和以其它方式操控的电信号或磁信号的形式。有时,主要出于通用的原因,已经证明将这些信号称为位、值、元件、符号、字符、术语、数目或类似物是方便的。
然而,应牢记,所有这些和类似术语应与适当物理量相关联,且仅是应用于这些量的方便标记。本公开可涉及将计算机系统的寄存器和存储器内的表示为物理(电子)量的数据操控和变换为计算机系统存储器或寄存器或其它这类信息存储系统内的类似地表示为物理量的其它数据的计算机系统或类似电子计算装置的动作和过程。
本公开还涉及用于执行本文中的操作的设备。这一设备可出于所需目的而专门构造,或其可包含通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此类计算机程序可存储在计算机可读存储媒体中,如但不限于任何类型的盘(包含软盘、光盘、CD-ROM和磁性光盘)、ROM、RAM、EPROM、EEPROM、磁卡或光卡或适合于存储电子指令的任何类型的媒体,它们各自耦合到计算机系统总线。
本文中呈现的算法和显示器并非在本质上与任何特定计算机或其它设备相关。各种通用系统可与根据本文中的教示的程序一起使用,或其可证明构造用以执行所述方法更加专用的设备是方便的。将如下文描述中所阐述的那样来呈现多种这些系统的结构。此外,不参考任何特定编程语言来描述本公开。将了解,可使用多种编程语言来实施如本文中所描述的本公开的教示。
本公开可提供为计算机程序产品或软件,其可包含在其上存储有指令的机器可读媒体,所述指令可用于编程计算机系统(或其它电子装置)以执行根据本公开的过程。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机构。在一些实例中,机器可读(例如,计算机可读)媒体包含机器(例如,计算机)可读存储媒体,如ROM、RAM、磁盘存储媒体、光学存储媒体、快闪存储器组件等。
在前文说明书中,已经参照其具体示例性实例描述了本公开的实例。将显而易见的是,可在不脱离如所附权利要求书中阐述的本公开的实例的更广范围的情况下对本公开进行各种修改。因此,应在说明性意义上而非限制性意义上看待说明书和图式。
Claims (20)
1.一种方法,其包括:
检测占用存储器子系统的队列的一组标签对应于指示依序读取模式的单个读取描述符;
确定占用所述队列的所述组标签的数目低于队列阈值;和
至少部分地基于所述检测和所述确定而将与所述组标签的至少一个标签相关联的数据存储在所述存储器子系统的内部性能存储器中。
2.根据权利要求1所述的方法,其进一步包括:
至少部分地基于所述确定而将对应于所述组标签的所述至少一个标签的所述数据的读取请求传输到存储器管理器;和
至少部分地基于传输所述读取请求而接收与对应于所述组标签的所述至少一个标签的所述数据相关联的读取响应,其中至少部分地基于接收所述读取响应而存储所述数据。
3.根据权利要求1所述的方法,其中检测占用所述存储器子系统的所述队列的所述组标签对应于所述依序读取模式进一步包括:
确定所述存储器子系统的数据量高于数据阈值。
4.根据权利要求1所述的方法,其中检测占用所述存储器子系统的所述队列的所述组标签对应于所述依序读取模式进一步包括:
确定所述依序读取模式的依序读取高于依序读取阈值。
5.根据权利要求1所述的方法,其中确定占用所述队列的所述组标签的所述数目低于所述队列阈值进一步包括:
确定所述队列中的未占用队列时隙的数目高于所述队列阈值;和
至少部分地基于确定未占用队列时隙的所述数目而确定所述依序读取模式的未解决依序读取的数目。
6.根据权利要求1所述的方法,其进一步包括:
接收命令以从存储器装置的存储器管理器检索数据;和
至少部分地基于所述接收而分配所述内部性能存储器的资源,其中与所述组标签的所述至少一个标签相关联的所述数据存储于所述内部性能存储器的所分配资源处。
7.根据权利要求1所述的方法,其进一步包括:
检测占用所述存储器子系统的所述队列的第二组标签对应于写入模式;和
制止将对应于所述组标签的所述至少一个标签的所述数据存储在所述存储器子系统的所述内部性能存储器中。
8.根据权利要求7所述的方法,其进一步包括:
至少部分地基于检测而从所述内部性能存储器沖洗对应于所述组标签的所述至少一个标签的所存储数据。
9.根据权利要求1所述的方法,其进一步包括:
确定占用所述队列的所述组标签的所述数目高于所述队列阈值;和
至少部分地基于确定而从所述内部性能存储器去除与最近最少使用的读取串流相关联的数据,其中至少部分地基于所述去除而存储对应于所述至少一个标签的所述数据。
10.根据权利要求1所述的方法,其进一步包括:
检测占用所述存储器子系统的所述队列的第二组标签对应于非依序读取模式;和
至少部分地基于确定而从所述内部性能存储器去除与最近最少使用的读取串流相关联的数据,其中至少部分地基于所述去除而存储对应于所述至少一个标签的所述数据。
11.根据权利要求1所述的方法,其中所述组标签的每一标签链接到所述组标签的所述至少一个标签。
12.根据权利要求1所述的方法,其进一步包括:
至少部分地基于确定占用所述队列的所述组标签的所述数目低于所述队列阈值而将所述依序读取模式的依序读取指派到所述队列的队列时隙。
13.一种系统,其包括:
多个存储器组件;和
处理装置,其可操作地与所述多个存储器组件耦合以进行以下操作:
检测占用存储器子系统的队列的一组标签对应于指示依序读取模式的单个读取描述符;
确定占用所述队列的所述组标签的数目低于队列阈值;且
至少部分地基于所述检测和所述确定而将对应于所述组标签的至少一个标签的数据存储在所述存储器子系统的内部性能存储器中。
14.根据权利要求13所述的系统,其进一步包括:
所述处理装置用于:
至少部分地基于所述确定而将对应于所述组标签的所述至少一个标签的所述数据的读取请求传输到存储器管理器;且
至少部分地基于传输所述读取请求而接收与对应于所述组标签的所述至少一个标签的所述数据相关联的读取响应,其中至少部分地基于接收所述取读响应而存储所述数据。
15.根据权利要求13所述的系统,其进一步包括:
所述处理装置用于:
确定所述存储器子系统的数据量高于数据阈值,其中检测占用所述存储器子系统的所述队列的所述组标签对应于所述依序读取模式是至少部分地基于所述确定。
16.根据权利要求13所述的系统,其进一步包括:
所述处理装置用于:
确定所述依序读取模式的依序读取高于依序读取阈值,其中检测占用所述存储器子系统的所述队列的所述组标签对应于所述依序读取模式是至少部分地基于所述确定。
17.根据权利要求13所述的系统,其进一步包括:
所述处理装置用于:
确定所述队列中的未占用队列时隙的数目高于所述队列阈值;且
至少部分地基于确定未占用队列时隙的所述数目而确定所述依序读取模式的未解决依序读取的数目。
18.根据权利要求13所述的系统,其进一步包括:
所述处理装置用于:
接收命令以从存储器装置的存储器管理器检索数据;且
至少部分地基于所述接收而分配所述内部性能存储器的资源,其中与所述组标签的所述至少一个标签相关联的所述数据存储于所述内部性能存储器的所分配资源处。
19.一种包括指令的非暂时性计算机可读存储媒体,所述指令在由处理装置执行时使所述处理装置进行以下操作:
检测占用存储器子系统的队列的一组标签对应于依序读取模式以使得单个读取描述符与所述组标签相关联;
确定占用所述队列的所述组标签的数目低于队列阈值;且
至少部分地基于检测和确定而将对应于所述组标签的至少一个标签的数据存储在所述存储器子系统的内部性能存储器中。
20.根据权利要求19所述的非暂时性计算机可读存储媒体,其中所述处理装置进一步进行以下操作:
至少部分地基于确定而将请求对应于所述组标签的所述至少一个标签的所述数据的命令传输到存储器管理器;且
至少部分地基于传输所述命令而接收与对应于所述组标签的所述至少一个标签的所述数据相关联的读取响应,其中至少部分地基于接收所述取读响应而存储所述数据。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/833,306 | 2020-03-27 | ||
US16/833,306 US20210303470A1 (en) | 2020-03-27 | 2020-03-27 | Sequential prefetching through a linking array |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113448511A true CN113448511A (zh) | 2021-09-28 |
CN113448511B CN113448511B (zh) | 2024-04-05 |
Family
ID=77809277
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110319446.0A Active CN113448511B (zh) | 2020-03-27 | 2021-03-25 | 通过链接阵列依序预提取 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20210303470A1 (zh) |
CN (1) | CN113448511B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11379151B2 (en) * | 2020-03-31 | 2022-07-05 | Western Digital Technologies, Inc. | Flow control of large sequential host read commands based on a queue threshold |
US11989142B2 (en) * | 2021-12-10 | 2024-05-21 | Samsung Electronics Co., Ltd. | Efficient and concurrent model execution |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040205301A1 (en) * | 2003-04-14 | 2004-10-14 | Renesas Technology Corp. | Memory device |
CN101156135A (zh) * | 2005-02-18 | 2008-04-02 | 高通股份有限公司 | 用于管理返回堆栈的方法和设备 |
CN101390060A (zh) * | 2004-05-14 | 2009-03-18 | 米克伦技术公司 | 存储集线器和存储排序的方法 |
US20090172264A1 (en) * | 2007-12-28 | 2009-07-02 | Asmedia Technology Inc. | System and method of integrating data accessing commands |
CN102521158A (zh) * | 2011-12-13 | 2012-06-27 | 北京北大众志微系统科技有限责任公司 | 一种实现数据预取的方法及装置 |
US20150120858A1 (en) * | 2013-10-28 | 2015-04-30 | Tealium Inc. | System for prefetching digital tags |
US9275374B1 (en) * | 2011-11-15 | 2016-03-01 | Google Inc. | Method and apparatus for pre-fetching place page data based upon analysis of user activities |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5371870A (en) * | 1992-04-24 | 1994-12-06 | Digital Equipment Corporation | Stream buffer memory having a multiple-entry address history buffer for detecting sequential reads to initiate prefetching |
US6484239B1 (en) * | 1997-12-29 | 2002-11-19 | Intel Corporation | Prefetch queue |
US7958317B2 (en) * | 2008-08-04 | 2011-06-07 | International Business Machines Corporation | Cache directed sequential prefetch |
US9032159B2 (en) * | 2012-06-27 | 2015-05-12 | Via Technologies, Inc. | Data prefetcher with complex stride predictor |
US10175987B2 (en) * | 2016-03-17 | 2019-01-08 | International Business Machines Corporation | Instruction prefetching in a computer processor using a prefetch prediction vector |
US11036412B2 (en) * | 2019-09-27 | 2021-06-15 | Intel Corporation | Dynamically changing between latency-focused read operation and bandwidth-focused read operation |
US11347645B2 (en) * | 2019-10-14 | 2022-05-31 | EMC IP Holding Company LLC | Lifetime adaptive efficient pre-fetching on a storage system |
US11200169B2 (en) * | 2020-01-30 | 2021-12-14 | EMC IP Holding Company LLC | Cache management for sequential IO operations |
-
2020
- 2020-03-27 US US16/833,306 patent/US20210303470A1/en not_active Abandoned
-
2021
- 2021-03-25 CN CN202110319446.0A patent/CN113448511B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040205301A1 (en) * | 2003-04-14 | 2004-10-14 | Renesas Technology Corp. | Memory device |
CN101390060A (zh) * | 2004-05-14 | 2009-03-18 | 米克伦技术公司 | 存储集线器和存储排序的方法 |
CN101156135A (zh) * | 2005-02-18 | 2008-04-02 | 高通股份有限公司 | 用于管理返回堆栈的方法和设备 |
US20090172264A1 (en) * | 2007-12-28 | 2009-07-02 | Asmedia Technology Inc. | System and method of integrating data accessing commands |
US9275374B1 (en) * | 2011-11-15 | 2016-03-01 | Google Inc. | Method and apparatus for pre-fetching place page data based upon analysis of user activities |
CN102521158A (zh) * | 2011-12-13 | 2012-06-27 | 北京北大众志微系统科技有限责任公司 | 一种实现数据预取的方法及装置 |
US20150120858A1 (en) * | 2013-10-28 | 2015-04-30 | Tealium Inc. | System for prefetching digital tags |
Also Published As
Publication number | Publication date |
---|---|
CN113448511B (zh) | 2024-04-05 |
US20210303470A1 (en) | 2021-09-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112805676B (zh) | 基于数据总线模式对读取操作和写入操作的调度 | |
US20230161509A1 (en) | Dynamic selection of cores for processing responses | |
CN113448511B (zh) | 通过链接阵列依序预提取 | |
CN113360089A (zh) | 用于存储器子系统的命令批处理 | |
CN115905057A (zh) | 存储器装置中用于媒体管理命令的高效缓冲器管理 | |
US20240192866A1 (en) | Performance control for a memory sub-system | |
CN113093990B (zh) | 存储器子系统处的数据块切换 | |
US20240103770A1 (en) | Improved memory performance using memory access command queues in memory devices | |
CN115427926A (zh) | 维持存储器子系统的队列 | |
US20230069382A1 (en) | Managing host input/output in a memory system executing a table flush | |
CN113360091B (zh) | 用于存取操作的内部命令 | |
US20220291860A1 (en) | Operation based on consolidated memory region description data | |
US20230129363A1 (en) | Memory overlay using a host memory buffer | |
WO2021179163A1 (en) | Methods, systems and readable storage mediums for managing queues of amemory sub-system | |
CN114981894A (zh) | 电容器健康检查 | |
US11756626B2 (en) | Memory die resource management | |
CN113094293B (zh) | 存储器系统及相关方法和计算机可读存储介质 | |
US11693597B2 (en) | Managing package switching based on switching parameters | |
US12001330B2 (en) | Separate cores for media management of a memory sub-system | |
US20230054363A1 (en) | Reduce read command latency in partition command scheduling at a memory device | |
CN115775580A (zh) | 使用内容可寻址存储器的双地址命令管理 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |