CN113692579B - 数据存储装置中的预测性数据预取 - Google Patents

数据存储装置中的预测性数据预取 Download PDF

Info

Publication number
CN113692579B
CN113692579B CN202080028473.6A CN202080028473A CN113692579B CN 113692579 B CN113692579 B CN 113692579B CN 202080028473 A CN202080028473 A CN 202080028473A CN 113692579 B CN113692579 B CN 113692579B
Authority
CN
China
Prior art keywords
command
commands
data
data storage
execution
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
Application number
CN202080028473.6A
Other languages
English (en)
Other versions
CN113692579A (zh
Inventor
A·弗罗利科夫
Z·A·P·沃格尔
J·G·门德斯
C·M·古达
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 CN113692579A publication Critical patent/CN113692579A/zh
Application granted granted Critical
Publication of CN113692579B publication Critical patent/CN113692579B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • 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/061Improving I/O performance
    • 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/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
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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
    • 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/31Providing disk cache in a specific location of a storage system
    • G06F2212/312In storage controller
    • 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/6028Prefetching based on hints or prefetch instructions
    • 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/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

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)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种数据存储***具有非易失性媒体、缓冲存储器、处理装置和数据预取器。所述数据预取器接收要在所述数据存储***中执行的命令,提供所述命令作为预测模型的输入,获得识别用于预取的至少一个命令作为具有所述命令作为输入的所述预测模型的输出。在所述命令在所述数据存储装置中执行之前,所述数据预取器从所述非易失性存储器检索要在执行所述命令时使用的至少一数据部分;并将所述数据部分存储在所述缓冲存储器中。在所述命令的执行之前,所述数据部分的检索和存储可以与许多命令的执行同时执行,以减小所述命令对与所述命令的执行同时执行的其它命令的时延影响。

Description

数据存储装置中的预测性数据预取
相关申请
本申请要求2019年4月15日提交的标题为“数据存储装置中的预测性数据预取(PREDICTIVE DATA PRE-FETCHING IN A DATA STORAGE DEVICE)”的第16/384,618号美国专利申请的优先权,所述申请的全部公开内容由此以引用的方式并入本文中。
技术领域
本文中所公开的至少一些实施例一般来说涉及存储器***,且更具体地说,不限于数据存储装置中的预测性数据预取。
背景技术
存储器子***可包含存储数据的一或多个存储器组件。存储器子***可以是数据存储***,例如固态驱动器(SSD)或硬盘驱动器(HDD)。存储器子***可以是存储器模块,例如双列直插式存储器模块(DIMM)、小型DIMM(SO-DIMM)或非易失性双列直插式存储器模块(NVDIMM)。存储器组件可以是例如非易失性存储器组件和易失性存储器组件。存储器组件的实例包含存储器集成电路。一些存储器集成电路是易失性的,需要电力来维持所存储的数据。一些存储器集成电路是非易失性的,即使没有供电也可以保持所存储的数据。非易失性存储器的实例包含快闪存储器、只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)和电可擦除可编程只读存储器(EEPROM)存储器等。易失性存储器的实例包含动态随机存取存储器(DRAM)和静态随机存取存储器(SRAM)。一般来说,主机***可利用存储器子***将数据存储于存储器组件处并从存储器组件检索数据。
计算机可包含主机***和附接到主机***上的一或多个存储器子***。主机***可具有与所述一或多个存储器子***通信已存储和/或检索数据和指令的中央处理单元(CPU)。计算机的指令可包含操作***、装置驱动程序和应用程序。操作***管理计算机中的资源并为应用程序提供公共服务,例如资源的存储器分配和分时。装置驱动程序操作或控制计算机中特定类型的装置;并且操作***使用装置驱动程序来供应由所述类型的装置提供的资源和/或服务。计算机***的中央处理单元(CPU)可运行操作***和装置驱动程序来向应用程序提供服务和/或资源。中央处理单元(CPU)可运行使用所述服务和/或资源的应用程序。例如,实施计算机***的某一类型的应用的应用程序可指示中央处理单元(CPU)在存储器子***的存储器组件中存储数据并从存储器组件检索数据。
主机***可根据预定义通信协议与存储器子***通信,例如非易失性存储器主机控制器接口规范(NVMHCI),也称为NVM快速(NVMe),其指定经由***组件互连高速(PCI快速或PCIe)总线存取非易失性存储装置的逻辑装置接口协议。根据通信协议,主机***可向存储器子***发送不同类型的命令;并且存储器子***可执行命令并提供对命令的响应。一些命令指示存储器子***在命令中指定的地址处存储数据项,或从命令中指定的地址检索数据项,例如读取命令和写入命令。一些命令管理存储器子***中的基础架构和/或管理任务,例如管理命名空间的命令、附接命名空间的命令、创建输入/输出提交或完成队列的命令、删除输入/输出提交或完成队列的命令、用于固件管理的命令等等。
附图说明
在附图的各图中作为实例而非限制示出了实施例,在附图中,相似的参考标号指示类似的元件。
图1示出根据本公开的一些实施例的具有存储器子***的实例计算***。
图2示出配置成训练预测模型以识别可使其它命令的执行时延增加的命令的***。
图3示出具有从非易失性媒体预取命令数据到缓冲存储器的预测模型的***。
图4示出训练预测模型以识别高影响命令的方法。
图5示出基于预测模型的预测而预取高影响命令的数据的方法。
图6是其中可操作本公开的实施例的实例计算机***的框图。
具体实施方式
本公开的至少一些方面涉及预测性预取可增加在数据存储装置中同时执行的其它命令的执行时延的命令的数据。例如,预测模型在数据存储装置中配置以识别可导致其它命令的执行具有显著延迟的此类命令。供所识别命令使用的数据可以从数据存储装置的非易失性存储媒体预取到存储装置的缓冲存储器。数据预取到缓冲存储器可减少、最小化和/或消除由所识别命令在其它命令的执行中造成的延迟。预测模型可通过在命令训练集上应用机器学习技术使用训练集中的命令的执行时延数据来建立。
一般来说,基础架构命令可用于管理(manage)、配置、管理(administrate)或报告数据存储***中基础架构的状态。某些基础架构命令通常会导致与此类命令无关的其它命令的执行时延意外增加。此类基础架构命令可能具有高时延。当数据存储***中的某些资源用于执行高时延基础架构命令时,这些资源变得不可用于执行其它命令,从而导致可使用这些资源的其它命令的执行出现明显的随机延迟。
在本文中所公开的至少一些实施例中,预测模型配置成预测最有可能增加其它命令的时延的基础架构命令。预测是基于当前排队等待在数据存储***中处理的命令的一些特性。预测允许数据存储***针对经预测基础架构命令将数据从非易失性存储媒体预取到缓冲存储器。在预取经预测命令的数据之后,经预测基础架构命令在它们的执行期间使用资源来存取非易失性存储媒体并使它们不可用于其它命令的执行的可能性减小。因此,基础架构命令的执行对其它命令的影响可减小、最小化和/或去除。
例如,监督机器学习技术可应用于训练数据集中的命令群组。训练数据集可具有一组混合的不同类型的基础架构命令和不同类型的其它命令。命令训练集可表示数据存储装置/***的工作负载或服务周期期间的实际工作负载。训练集中的命令的一些参数可用作预测模型的输入参数,例如命令的类型、存储***中被命令存取的区域等。训练集中的命令的执行的经测量时延可用于识别对其它命令的执行具有高影响的基础架构命令和对其它命令的执行不具有高影响的基础架构命令。例如,高影响命令使其它命令的执行的时延具有大于阈值量的增加;且低影响命令使其它命令的时延具有不超过阈值量的增加。监督机器学习技术可用于通过调整预测模型的参数以最小化由预测模型识别的基础架构命令的分类/预测和根据训练数据集的时延数据识别的基础架构命令的分类/预测之间的差异来训练预测模型。
例如,预测模型可经训练以对命令序列进行分类。序列中的每个基础架构命令可分类为针对序列中的命令具有高影响的可能性或不具有所述可能性。
例如,预测模型可经训练以针对命令序列预测由序列中的基础架构命令造成的序列中的其它命令的执行的时延增加。执行时延的经预测增加可与阈值比较以将基础架构命令分类为高影响命令或低影响命令。
例如,预测模型可经训练以针对命令序列预测将进入数据存储装置/***使得序列中的一些命令的执行时延具有大于阈值量的增加的基础架构命令。预测可基于基础架构命令和其它命令的模式而进行。
例如,预测模型可基于使用逻辑回归和/或人工神经网络的统计相关性。
例如,不同组的训练集可用于具有不同结构和不同配置的数据存储***。
具有特定设计的数据存储***可初始地配置有根据所述设计的命令的典型工作负载训练的预测模型。随后,预测模型可针对计算机***中的数据存储***的典型工作负载和/或基于数据存储***的最近实时工作负载进一步进行训练和/或更新。
任选地,数据存储***可进一步配置成监测使用预测模型进行的实时预测和命令执行具有增加的时延的后续测量之间的差异,以进一步周期性地训练预测模型,从而根据实时工作负载调整其预测性能力。
在使用具有预测模型的数据存储***期间,将由数据存储***执行的传入命令可提供为预测模型的输入,以识别针对预取调度/建议的命令表。
例如,预测模型可用于处理一或多个队列中待执行的预定数目的命令(例如,1000个命令)或每预定时间段(例如,10ms)处理一次。在使用预测模型期间,等待数据存储***执行的命令可被馈送到预测模型中,以识别用于预取的高影响命令表。数据存储***配置成在实际执行高影响命令之前预取表中的高影响命令可能使用的数据,以便将执行高影响命令的影响分散给大量其它命令。此外,预取可配置成使用在高影响命令之前执行的其它命令的执行不使用/不需要的备用资源;这样的安排可以减小高影响命令对其它命令的总体影响。
在一些情况下,预测模型可在主机***向数据存储***发送基础架构命令之前和/或在从队列检索基础架构命令以执行之前预测基础架构命令。数据存储***可以使用标志来指示经预测基础架构命令的预取数据是否有效。
一般来说,存储器子***还可称为“存储器装置”。存储器子***的实例是经由存储器总线连接到中央处理单元(CPU)的存储器模块。存储器模块的实例包含双列直插式存储器模块(DIMM)、小型DIMM(SO-DIMM)、非易失性双列直插式存储器模块(NVDIMM)等等。
存储器子***的另一实例是经由***互连件(例如,输入/输出总线、存储区域网络)连接到中央处理单元(CPU)的数据存储装置/***。存储装置的实例包含固态驱动器(SSD)、快闪驱动器、通用串行总线(USB)快闪驱动器和硬盘驱动器(HDD)。
在一些实施例中,存储器子***是提供存储器功能和存储功能两者的混合存储器/存储子***。一般来说,主机***可利用包含一或多个存储器组件的存储器子***。主机***可提供要存储在存储器子***处的数据,并且可请求要从存储器子***检索的数据。
图1示出根据本公开的一些实施例的具有存储器子***(110)的实例计算***。
存储器子***(110)可包含非易失性媒体(109),其包含存储器组件。一般来说,存储器组件可以是易失性存储器组件、非易失性存储器组件或它们的组合。在一些实施例中,存储器子***(110)是数据存储***。数据存储***的实例是SSD。在其它实施例中,存储器子***(110)是存储器模块。存储器模块的实例包含DIMM、NVDIMM和NVDIMM-P。在一些实施例中,存储器子***(110)是混合存储器/存储装置子***。
一般来说,计算环境可包含使用存储器子***(110)的主机***(120)。例如,主机***(120)可将数据写入到存储器子***(110)并从存储器子***(110)读取数据。
主机***(120)可以是计算装置的部分,例如台式计算机、膝上型计算机、网络服务器、移动装置,或包含存储器和处理装置的此类计算装置。主机***(120)可包含或耦合到存储器子***(110),使得主机***(120)可以从存储器子***(110)中读取数据或将数据写入到所述存储器子***。主机***(120)可以经由物理主机接口耦合到存储器子***(110)。如本文所使用,“耦合到”通常是指组件之间的连接,其可以是间接通信连接或直接通信连接(例如,没有中间组件),无论是有线还是无线的,包含例如电连接、光学连接、磁连接等的连接。物理主机接口的实例包含但不限于串行高级技术附件(SATA)接口、***组件互连快速(PCIe)接口、通用串行总线(USB)接口、光纤通道、串行连接的SCSI(SAS)、双倍数据速率(DDR)存储器总线等。物理主机接口可用于在主机***(120)与存储器子***(110)之间传输数据和/或命令。当存储器子***(110)通过PCIe接口与主机***(120)耦合时,主机***(120)可以进一步利用NVM快速(NVMe)接口存取非易失性媒体(109)。物理主机接口可以提供用于在存储器子***(110)与主机***(120)之间传递控制、地址、数据和其它信号的接口。图1示出存储器子***(110)作为实例。一般来说,主机***(120)可经由同一通信连接、多个单独通信连接和/或通信连接的组合来存取多个存储器子***。
主机***(120)包含处理装置(118)和控制器(116)。主机***(120)的处理装置(118)可以是例如微处理器、中央处理单元(CPU)、处理器的处理核心、执行单元等。在一些情况下,控制器(116)可称为存储器控制器、存储器管理单元和/或发起器。在一个实例中,控制器(116)控制通过耦合在主机***(120)与存储器子***(110)之间的总线进行的通信。
一般来说,控制器(116)可以向存储器子***(110)发送希望存取非易失性媒体(109)的命令或请求。控制器(116)可进一步包含与存储器子***(110)通信的接口电路***。接口电路***可以将从存储器子***(110)接收的响应转换成主机***(120)的信息。
主机***(120)的控制器(116)可以与存储器子***(110)的控制器(115)通信以执行操作,例如在非易失性媒体(109)中读取数据、写入数据或擦除数据以及其它这类操作。在一些情况下,控制器(116)与处理装置(118)集成在同一封装内。在其它情况下,控制器(116)与处理装置(118)分开封装。控制器(116)和/或处理装置(118)可包含硬件,例如一或多个集成电路和/或离散组件、缓冲存储器、高速缓存存储器或其组合。控制器(116)和/或处理装置(118)可以是微控制器、专用逻辑电路***(例如现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)或另一合适的处理器。
非易失性媒体(109)可包含不同类型的非易失性存储器组件的任何组合。在一些情况中,还可以使用易失性存储器组件。非易失性存储器组件的实例包含与非(NAND)类型快闪存储器。媒体(109)中的存储器组件可包含一或多个存储器单元阵列,例如单层级单元(SLC)或多层级单元(MLC)(例如,三层级单元(TLC)或四层级单元(QLC))。在一些实施例中,特定存储器组件可包含存储器单元的SLC部分和MLC部分两者。存储器单元中的每一者可以存储由主机***(120)使用的一或多个数据位(例如,数据块)。尽管描述了例如NAND类型快闪存储器的非易失性存储器组件,但非易失性媒体(109)中使用的存储器组件可以基于任何其它类型的存储器。此外,可以使用易失性存储器。在一些实施例中,媒体(109)中的存储器组件可包含但不限于随机存取存储器(RAM)、只读存储器(ROM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(SDRAM)、相变存储器(PCM)、磁性随机存取存储器(MRAM)、自旋转移力矩(STT)-MRAM、铁电随机存取存储器(FeTRAM)、铁电RAM(FeRAM)、导电桥接RAM(CBRAM)、电阻式随机存取存储器(RRAM)、基于氧化物的RRAM(OxRAM)、或非(NOR)快闪存储器、电可擦除可编程只读存储器(EEPROM)、基于纳米线的非易失性存储器、并入有忆阻器技术的存储器,或非易失性存储器单元的交叉点阵列,或其任何组合。非易失性存储器的交叉点阵列可以结合可堆叠交叉网格化数据存取阵列基于体电阻的改变来进行位存储。另外,与许多基于快闪的存储器相比,交叉点非易失性存储器可以执行就地写操作,其中可以对非易失性存储器单元进行编程,而无需事先擦除非易失性存储器单元。此外,媒体(109)中的存储器组件的存储器单元可分组为存储器页或数据块,其可指代用于存储数据的存储器组件的单元。
存储器子***(110)的控制器(115)可以与媒体(109)中的存储器组件通信以执行操作,例如在存储器组件处读取数据、写入数据或擦除数据以及其它这类操作(例如,响应于由控制器(116)在命令总线上调度的命令)。控制器(115)可包含硬件,例如一或多个集成电路和/或离散组件、缓冲存储器或其组合。控制器(115)可以是微控制器、专用逻辑电路***(例如现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)或另一合适的处理器。控制器(115)可包含配置成执行存储在本地存储器(119)中的指令的处理装置(117)(处理器)。在所示的实例中,控制器(115)的缓冲存储器(119)包含配置成存储指令的嵌入式存储器,所述指令用于执行控制存储器子***(110)的操作(包含处理存储器子***(110)与主机***(120)之间的通信)的各种处理、操作、逻辑流以及例程。在一些实施例中,控制器(115)可包含存储器寄存器,其存储存储器指针、获取的数据等。控制器(115)还可包含用于存储微码的只读存储器(ROM)。虽然图1中的实例存储器子***(110)已示为包含控制器(115),但在本公开的另一实施例中,存储器子***(110)可不包含控制器(115),而是可以依赖于外部控制(例如,由外部主机或由与存储器子***分开的处理器或控制器提供的外部控制)。
一般来说,控制器(115)可以从主机***(120)接收命令或操作,并且可以将命令或操作转换成指令或适当的命令,以实现对媒体(109)中的存储器组件的所要存取。控制器(115)可以负责其它操作,例如耗损均衡操作、垃圾收集操作、错误检测和错误校正码(ECC)操作、加密操作、高速缓存操作,以及与媒体(109)中的存储器组件相关联的逻辑块地址与物理块地址之间的地址转换。控制器(115)可进一步包含主机接口电路***以经由物理主机接口与主机***(120)通信。主机接口电路***可以将从主机***接收到的命令转换成命令指令以存取媒体(109)中的存储器组件,以及将与存储器组件相关联的响应转换成用于主机***(120)的信息。
存储器子***(110)还可包含未示出的额外电路***或组件。在一些实施例中,存储器子***(110)可包含高速缓存或缓冲器(例如DRAM)和地址电路***(例如行解码器和列解码器),其可从控制器(115)接收地址且对地址进行解码以存取媒体(109)中的存储器组件。
计算***在存储器子***(110)中包含数据预取器(113),其可针对预测的高影响命令而从非易失性媒体(109)检索数据到缓冲存储器(119)。在执行高影响命令之前,当数据没有预取到缓冲存储器(119)时,预测的高影响命令可导致其它命令的执行时延产生大于阈值量的增加。
在一些实施例中,存储器子***(110)中的控制器(115)包含数据预取器(113)的至少一部分。在其它实施例中或组合地,主机***(120)中的控制器(116)和/或处理装置(118)包含数据预取器(113)的至少一部分。例如,控制器(115)、控制器(116)和/或处理装置(118)可包含实施数据预取器(113)的逻辑电路***。例如,控制器(115)或主机***(120)的处理装置(118)(处理器)可配置成执行存储在存储器中的指令以执行本文中所描述的数据预取器(113)的操作。在一些实施例中,数据预取器(113)实施于安置在存储器子***(110)中的集成电路芯片中。在其它实施例中,数据预取器(113)是主机***(120)的操作***、装置驱动程序或应用的部分。
存储器子***(110)可具有用于一个类别的命令的队列(123)和用于另一类别的命令的另一队列(125)。例如,队列(123)可配置成用于典型输入/输出命令,例如读取命令和写入命令。队列(125)可配置成用于非典型输入/输出命令的基础架构命令。一些基础架构命令可以是导致队列(123)中的特定命令的执行时延具有大于阈值量的增加的高影响命令。存储器子***(110)可包含一或多个完成队列(121),用于向主机***(120)报告命令队列(123和125)中的命令的执行结果。在一些实施方案中,一或多个队列可以响应于来自主机***(120)的命令而创建。因此,存储器子***(110)总的来说不限于图1所示的特定数目的队列。
数据预取器(113)配置成将队列(125)中的类别的一些命令预测/分类为高影响命令。在从命令队列(125)检索到高影响命令用于执行之前,数据预取器(113)配置成将可供高影响命令使用的数据从非易失性媒体(109)负载到缓冲存储器(119)。在准备执行高影响命令时负载数据可经执行以使用不用于来自队列(123)的命令执行的资源,以提高资源利用率,并减小高影响命令的总体影响。替代地或组合地,在准备执行高影响命令时负载数据可经执行以扩散其在来自队列(123)的更多命令的执行当中的影响,使得其影响不集中在与高影响命令的执行同时执行的一或多个命令上。
图1示出已知高影响命令在特定队列(例如,125)中的实例。在其它实施方案中,不同类别的命令可以在同一队列中混合。例如,在一些***中,基础架构命令可与非基础架构命令处于同一队列中;并且本公开的技术还可用于预测高影响命令,并针对高影响命令将数据预取到缓冲存储器。因此,本公开的技术的应用不限于特定的命令队列结构。
图2示出配置成训练预测模型(131)以识别可使其它命令的执行时延增加的命令的***。
例如,图2的预测模型(131)可在图1的存储器子***(110)的数据预取器(113)中配置。
在图2中,命令训练集(137)用于捕捉不同类型的命令对彼此的时延影响的模式。命令训练集(137)可以是表示存储器子***(110)的典型工作负载或在图1的计算机***中使用的特定周期期间存储器子***(110)的实际工作负载的命令的实例。
在存储器子***(110)执行训练集中的命令(例如,而不使用数据预取器(113))期间,测量训练集中的命令的执行时延数据(139)。执行时延数据(139)可用于识别导致时延增加的高影响命令(135)。
例如,可以从执行时延数据(139)计算特定类型的命令的平均执行时延。对于训练集中的每个相应命令,可以根据命令的实际执行时延和与命令类型相同的命令的平均执行时延之间的差来计算执行相应命令的经增加时延。当时延增加超过阈值时,所述命令被认为受到了很大影响。在时延受到了很大影响的命令的执行的时间窗中,可以检查在时间窗中执行和/或与执行所述命令同时执行的其它命令,以识别导致高影响的高影响命令。例如,在时间窗中执行的基础架构命令可被识别为高影响的来源;因此,基础架构命令可识别为高影响命令。例如,在时间窗中执行的特定类别的命令可被识别为高影响的来源;因此,所述命令可被识别为高影响命令。例如,平均执行时延高于阈值并且在时间窗中执行的命令类型可以被识别为高影响的源;因此,所述命令可以被识别为高影响命令。
在图2中,预测模型(131)配置成识别根据命令训练集预测会导致时延增加的高影响命令(141)。预测模型(131)基于训练集中命令的参数和/或命令在训练集中出现的次序来计算预测(141)。参数可包含训练集中的命令类型和/或命令存取的区/区域地址。将监督机器学习(133)应用于预测模型(131),以减少或最小化从执行时延数据(139)识别的高影响命令(135)与由预测模型(131)预测的高影响命令(141)之间的差异。
在使用监督机器学习(133)的技术训练预测模型(131)之后,预测模型(131)可用于图1的存储器子***(110)的数据预取器(113)和/或如图3中所示的***。
图3示出将命令的数据从非易失性媒体(109)预取到缓冲存储器(119)的具有预测模型(131)的***。例如,图3的***可以是图1的存储器子***(110)。
在图3中,提供一或多个队列(例如,123和/或125)中的命令作为预测模型(131)的输入,以生成可导致时延增加的高影响命令(141)的预测。数据预取器(113)配置成在实际执行由预测模型(131)预测的高影响命令(141)之前从非易失性媒体(109)检索数据到缓冲存储器(119)。
通常,与存取缓冲存储器(119)相比,存取非易失性媒体(109)以获取一定数量的数据所需的时间更长。此外,与存取缓冲存储器(119)相比,***可具有更少的资源用于存取非易失性媒体(109)以同时执行多个命令。因此,当将由高影响命令使用的数据预取到缓冲存储器(119)中时,其对其它命令的同时执行的影响可以减小。
图4示出训练预测模型以识别具有高概率导致其它命令的执行具有显著延迟的命令的方法。例如,图4的方法可使用结合图2论述的技术实施于图1的计算机***中。
在框151处,在数据存储***中执行第一命令(例如,137)。
第一命令可以是与数据存储***具有相同或类似结构的数据存储***中典型的命令示例。任选地,第一命令可以是数据存储***在一段时间内的实际工作负载。
在框153处,数据存储***(或连接到数据存储***的主机)测量第一命令的执行时延。例如,命令的执行时延可测量为从执行队列检索到命令和数据存储***中的命令执行完成之间的持续时间。典型命令从命令中指定的地址检索数据,或将数据写入在命令中指定的地址处。
在框155处,使用计算装置识别导致一些第一命令的执行时延具有大于阈值量的增加的第二命令(例如,135)。计算装置可以是与数据存储***和/或数据存储***的主机***分开的计算机、或数据存储***的主机***或数据存储***的控制器。
例如,可以通过以下来识别第二命令:计算不同命令类型的平均时延,识别执行时延超过其相应命令类型平均值大于阈值的受影响命令,并识别与受影响命令同时执行且具有预定特性的第二命令。例如,预定特性可以是预定义的命令类别(例如,基础架构命令)、具有高于阈值的平均时延的命令类型和/或其它属性。
在框157处,计算装置基于第一命令使用预测模型(131)识别第三命令(例如,141)。
在框159处,计算装置将监督机器学习(133)应用于预测模型(131)以减少第二命令(例如,135)和第三命令(141)之间的差异。
图5示出基于预测模型(例如,131)的预测预取高影响命令的数据的方法,所述预测模型可使用图4的方法训练。
例如,图5的方法可以使用结合图3论述的技术实施于图1的计算机***中。
在框171处,数据存储***(例如,110)的数据预取器(113)接收排队等待在数据存储***中执行的命令的标识。
在框173处,数据预取器(113)提供命令作为预测模型(131)的输入。
在框175处,数据预取器(113)使用预测模型(131)并基于作为输入的命令而识别用于预取的至少一个命令。
在从队列检索用于在数据存储***中执行的命令之前,数据预取器(113)在框177处检索要在执行命令时使用的至少一数据部分,并在框179处将检索到的数据部分存储在数据存储***的缓冲存储器(119)中。
同时,数据存储***的控制器(115)在框181处检索经排队命令中的一些,并在框183处执行检索到的命令。
优选地,使用在命令的同时执行(183)中不需要/不使用的资源来执行用于经预取命令的数据部分的检索(177)和存储(179)。这种安排减少了命令对其它命令的总体影响。替代地或组合地,将用于经预取命令的数据部分的检索(177)和存储(179)的影响分散到许多命令的执行(183),使得对每个单独命令的影响减小。
随后,数据存储***的控制器(115)在框185处从队列检索命令,并在框187处使用缓冲存储器中的至少所述数据部分执行命令。
由于至少所述数据部分在缓冲存储器中,因此命令的执行对与命令的执行同时执行的其它命令的执行时延的影响较小。
任选地,数据预取器(113)可包含图2中示出和/或图4中论述的监督机器学习(133)功能。例如,数据预取器(113)可测量命令的执行时延(139),识别导致时延增加的命令(135),并使用监督机器学习(133)来最小化预测不会导致时延增加(141)但基于测量的执行时延数据(139)发现已经导致时延增加(135)的命令的数目。
在一些实施方案中,处理装置(118)与存储器子***之间的通信信道包含计算机网络,如局域网、无线局域网、无线个域网、蜂窝式通信网络、宽带高速始终连接的无线通信连接(例如,当前或未来一代的移动网络链路);且处理装置(118)和存储器子***可配置成使用与NVMe协议中的那些类似的数据存储管理和使用命令来彼此通信。
一般来说,存储器子***可具有非易失性存储媒体。非易失性存储媒体的实例包含在集成电路中形成的存储器单元和涂覆在刚性磁盘上的磁性材料。非易失性存储媒体可以在不消耗电力的情况下维持存储在其中的数据/信息。可使用各种存储器/存储技术来实施存储器单元,例如NAND逻辑门、NOR逻辑门、相变存储器(PCM)、磁存储器(MRAM)、电阻式随机存取存储器、交叉点存储和存储器装置(例如,3D XPoint存储器)。交叉点存储器装置使用无晶体管存储器元件,每个元件都有一个存储器单元和一个选择器,作为一列堆叠在一起。存储器元件列经由两条垂直的导线连接,其中一条导线位于存储器元件列上方,另一条导线位于存储器元件列下方。每个存储器元件可在两个层中的每一层上的一条导线的交叉点处单独选择。交叉点存储器装置速度快且不易失,可以用作处理和存储的统一存储器池。
存储器子***(例如,110)的控制器(例如,115)可运行固件以响应于来自处理装置(118)的通信而执行操作。一般来说,固件是一种提供工程化计算装置的控制、监测和数据操纵的计算机程序类型。
涉及控制器(115)和/或数据预取器(113)的操作的一些实施例可以使用由控制器(115)(例如控制器(115)的固件)执行的计算机指令实施。在一些情况下,硬件电路可用于实施至少一些功能。固件可初始地存储在非易失性存储媒体或另一非易失性装置中,并装载至易失性DRAM和/或处理器内高速缓存存储器中以供控制器(115)执行。
非暂时性计算机存储媒体可用于存储存储器子***(例如,110)的固件的指令。当指令由控制器(115)和/或处理装置(117)执行时,指令使控制器(115)和/或处理装置(117)执行上文所论述的方法。
图6示出计算机***(200)的实例机器,在所述实例机器内可执行用于使机器执行本文中所论述的方法中的任何一或多种的指令集。在一些实施例中,计算机***(200)可以对应于主机***(例如,图1的主机***(120)),所述主机***包含、耦合到或利用存储器子***(例如,图1的存储器子***(110))或可用于执行数据预取器(113)的操作(例如,执行指令以执行与参考图1-5描述的数据预取器(113)相对应的操作)。在替代实施例中,机器可以连接(例如联网)到LAN、内联网、外联网和/或互联网中的其它机器。机器可作为对等(或分散式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而以客户端-服务器网络环境中的服务器或客户端机器操作。
机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络设备、服务器、网络路由器、开关或网桥、或能够(依序或以其它方式)执行一组指令的任何机器,所述指令指定要由所述机器采取的动作。另外,尽管示出了单个机器,但是术语“机器”也应被理解为包含机器的任何集合,所述机器单独地或共同地执行一(或多个)指令集以进行本文中所论述的方法中的任何一或多种。
实例计算机***(200)包含处理装置(202)、主存储器(204)(例如,只读存储器(ROM)、快闪存储器、动态随机存取存储器(DRAM)例如同步DRAM(SDRAM)或Rambus DRAM(RDRAM)等)、静态随机存取存储器(SRAM)等),以及数据存储***(218),其经由总线(230)(其可包含多个总线)彼此通信。
处理装置(202)表示一或多个通用处理装置,例如微处理器、中央处理单元等。更具体地,处理装置可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置(202)也可以是一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)网络处理器等。处理装置(202)配置成执行指令(226),用于执行本文讨论的操作和步骤。计算机***(200)可以进一步包含网络接口装置(208),以通过网络(220)进行通信。
数据存储***(218)可包含机器可读存储媒体(224)(也称为计算机可读媒体),其上存储有一或多个指令集(226)或体现本文中所描述的方法或功能中的任何一或多种的软件。在计算机***(200)执行指令期间,指令(226)还可以全部或至少部分地驻存在主存储器(204)内和/或处理装置(202)内,主存储器(204)和处理装置(202)也构成机器可读存储媒体。机器可读存储媒体(224)、数据存储***(218)和/或主存储器(204)可以对应于图1的存储器子***(110)。
在一个实施例中,指令(226)包含用于实施与数据预取器(113)(例如,参考图1-5描述的数据预取器(113))相对应的功能的指令。尽管在实例实施例中将机器可读存储媒体(224)展示为单个媒体,但术语“机器可读存储媒体”应被视为包含存储一或多个指令集的单个媒体或多个媒体。术语“机器可读存储媒体”还应被认为包含能够存储或编码供机器执行的指令集合且致使机器执行本公开的方法中的任何一种或多种的任何媒体。因此,应认为术语“机器可读存储媒体”包含但不限于固态存储器、光学媒体以及磁性媒体。
已关于计算机存储器内的数据位的操作的算法和符号表示而呈现先前详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用以将其工作的主旨最有效地传达给本领域的其它技术人员的方式。算法在这里并且通常被认为是产生期望的结果的操作的自洽序列。操作是要求对物理量进行物理控制的操作。这些量通常但未必呈能够被存储、组合、比较和以其它方式操控的电或磁信号的形式。有时,主要出于通用的原因,已经证明将这些信号称为位、值、元件、符号、字符、术语、数目或类似物是方便的。
然而,应牢记,所有这些和类似术语应与适当物理量相关联,且仅仅是应用于这些量的方便标签。本公开可以指操控和变换计算机***的寄存器和存储器内的表示为物理(电子)数量的数据为计算机***存储器或寄存器或其它这类信息存储***内的类似地表示为物理量的其它数据的计算机***或类似电子计算装置的动作和过程。
本公开还涉及用于执行本文中的操作的设备。此设备可以出于所需目的而专门构造,或其可包含通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此类计算机程序可存储在计算机可读存储媒体中,如但不限于任何类型的盘(包含软盘、光盘、CD-ROM和磁性光盘)、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡或适合于存储电子指令的任何类型的媒体,它们各自耦合到计算机***总线。
本文中呈现的算法和显示器在本质上并不与任何特定计算机或其它设备相关。各种通用***可与根据本文中的教示的程序一起使用,或其可证明构造用以执行所述方法更加专用的设备是方便的。将如下文描述中所阐述的那样来呈现多种这些***的结构。此外,并不参考任何特定编程语言来描述本公开。应了解,可以使用各种编程语言来实施如本文中所描述的本公开的教示。
本公开可提供为计算机程序产品或软件,其可包含在其上存储有可用于编程计算机***(或其它电子装置)以进行根据本公开的过程的指令的机器可读媒体。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机制。在一些实施例中,机器可读(例如计算机可读)媒体包含机器(例如计算机)可读存储媒体,例如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储媒体、光学存储媒体、快闪存储器组件等。
在本说明书中,为了简化描述,将各种功能和操作描述为由计算机指令执行或由计算机指令引起。然而,所属领域的技术人员将认识到,此类表达的意图是所述功能源自由一或多个控制器或处理器(例如,微处理器)执行计算机指令。替代地或组合地,所述功能和操作可使用具有或不具有软件指令的专用电路***实施,例如使用专用集成电路(ASIC)或现场可编程门阵列(FPGA)来实施。可使用无软件指令的硬接线电路***或结合软件指令实施实施例。因此,技术既不限于硬件电路***和软件的任何特定组合,也不限于由数据处理***执行的指令的任何特定来源。
在前述说明书中,已参考其特定实例实施例描述了本公开的实施例。应显而易见的是,可在不脱离如所附权利要求书中阐述的本公开的实施例的更广精神和范围的情况下对本公开进行各种修改。因此,应在说明性意义上而非限制性意义上看待说明书和图式。

Claims (20)

1.一种数据存储***,其包括:
非易失性媒体;
缓冲存储器;
处理装置,其耦合到所述缓冲存储器和所述非易失性媒体;以及
数据预取器,其配置成:
接收要在所述数据存储***中执行的命令;
提供所述命令作为预测模型的输入;
使用所述预测模型并基于所述命令,识别用于预取的至少一个命令;以及
在所述命令在数据存储装置中执行之前,
从所述非易失性媒体检索要在执行所述命令时使用的至少一数据部分;以及
将所述数据部分存储在所述缓冲存储器中。
2.根据权利要求1所述的数据存储***,其中所述数据预取器配置成周期性地使用所述预测模型。
3.根据权利要求1所述的数据存储***,其中所述数据预取器配置成在每次使用所述预测模型期间提供预定数目的所述命令作为所述预测模型的输入。
4.根据权利要求1所述的数据存储***,其中所述预测模型使用监督机器学习技术训练。
5.根据权利要求4所述的数据存储***,其中所述数据预取器配置成将所述命令的时延影响分散到大于阈值数目的命令中。
6.根据权利要求4所述的数据存储***,其中所述数据预取器配置成在多个命令的执行期间,使用所述多个命令的所述执行不需要的资源从所述非易失性媒体检索所述数据部分并将所述数据部分存储在所述缓冲存储器中。
7.根据权利要求4所述的数据存储***,其中如果所述数据部分在所述缓冲存储器中不可用,那么预测所述命令导致另一命令的执行时延具有大于阈值量的增加。
8.根据权利要求4所述的数据存储***,其中所述命令由所述预测模型至少部分地基于所述命令处于预定类别而识别。
9.根据权利要求8所述的数据存储***,其中所述预定类别的命令具有长于阈值的平均执行时延。
10.根据权利要求9所述的数据存储***,其进一步配置成:
生成在所述数据存储***中执行的第二命令的时延数据;
从所述时延数据识别导致所述第二命令中的至少一个的执行时延具有大于阈值量的增加的第三命令;以及
使用所述监督机器学习技术训练所述预测模型,以减少使用所述时延数据识别的第三命令和所述预测模型从所述第二命令识别的命令之间的差异。
11.一种方法,其包括:
在数据存储***的控制器中,从主机***接收用于在所述数据存储***中执行的命令;
向预测模型提供所述命令作为输入;
使用所述预测模型并基于作为输入的所述命令,识别用于预取的至少一个命令;以及
在所述命令在数据存储装置中执行之前,
从数据存储媒体的非易失性存储器检索要在执行所述命令时使用的至少一数据部分;以及
将所述数据部分存储在所述数据存储***的缓冲存储器中。
12.根据权利要求11所述的方法,其中所述预测模型使用监督机器学习技术训练。
13.根据权利要求12所述的方法,其进一步包括:
生成第一命令的执行时延数据;
从所述时延数据识别导致所述第一命令中的至少一个的执行时延具有大于阈值量的增加的第二命令;以及
使用所述监督机器学习技术训练所述预测模型,以减少使用所述时延数据识别的所述第二命令和所述预测模型从所述第一命令识别的第三命令之间的差异。
14.根据权利要求13所述的方法,其进一步包括:
计算不同类型的命令的平均执行时延;以及
比较所述第一命令的执行时延与平均值,以识别执行时延具有大于所述阈值量的增加的所述第一命令中的所述至少一个。
15.根据权利要求14所述的方法,其进一步包括:
响应于确定所述第二命令具有预定特性且所述第二命令已与所述第一命令中的所述至少一个同时执行而识别所述第二命令。
16.根据权利要求15所述的方法,其中所述预定特性包含预定命令类型、预定命令类别或高于阈值的平均执行时延,或其任何组合。
17.根据权利要求12所述的方法,其进一步包括:
将所述命令的时延影响分散到大于阈值数目的命令中。
18.根据权利要求12所述的方法,其进一步包括:
在多个命令的执行期间,使用所述多个命令的所述执行不使用的资源从所述非易失性存储器检索所述数据部分并将所述数据部分存储在所述缓冲存储器中。
19.一种存储指令的非暂时性计算机存储媒体,所述指令在由计算***执行时使所述计算***执行方法,所述方法包括:
接收在数据存储***中执行的第一命令的时延数据;
从所述时延数据识别导致所述第一命令中的至少一个的执行时延具有大于阈值量的增加的第二命令;以及
使用监督机器学习技术来训练预测模型,以减少使用所述时延数据识别的所述第二命令和所述预测模型从所述第一命令识别的第三命令之间的差异。
20.根据权利要求19所述的非暂时性计算机存储媒体,其存储其它指令,所述其它指令在由计算***执行时使所述计算***执行所述方法,所述方法进一步包括:
在数据存储***的控制器中,从主机***接收用于在所述数据存储***中执行的待决命令;
向所述预测模型提供所述待决命令作为输入;
使用所述预测模型并基于作为输入的所述待决命令,识别用于预取的至少一个第五命令;以及
在所述第五命令在数据存储装置中执行之前,
从数据存储媒体的非易失性存储器检索要在执行所述第五命令时使用的至少一数据部分;以及
将所述数据部分存储在所述数据存储***的缓冲存储器中。
CN202080028473.6A 2019-04-15 2020-03-10 数据存储装置中的预测性数据预取 Active CN113692579B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/384,618 2019-04-15
US16/384,618 US10852949B2 (en) 2019-04-15 2019-04-15 Predictive data pre-fetching in a data storage device
PCT/US2020/021825 WO2020214276A1 (en) 2019-04-15 2020-03-10 Predictive data pre-fetching in a data storage device

Publications (2)

Publication Number Publication Date
CN113692579A CN113692579A (zh) 2021-11-23
CN113692579B true CN113692579B (zh) 2024-06-04

Family

ID=72749059

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080028473.6A Active CN113692579B (zh) 2019-04-15 2020-03-10 数据存储装置中的预测性数据预取

Country Status (4)

Country Link
US (3) US10852949B2 (zh)
CN (1) CN113692579B (zh)
DE (1) DE112020001937T5 (zh)
WO (1) WO2020214276A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11099789B2 (en) 2018-02-05 2021-08-24 Micron Technology, Inc. Remote direct memory access in multi-tier memory systems
US11416395B2 (en) 2018-02-05 2022-08-16 Micron Technology, Inc. Memory virtualization for accessing heterogeneous memory components
US10782908B2 (en) 2018-02-05 2020-09-22 Micron Technology, Inc. Predictive data orchestration in multi-tier memory systems
US10880401B2 (en) 2018-02-12 2020-12-29 Micron Technology, Inc. Optimization of data access and communication in memory systems
US10877892B2 (en) 2018-07-11 2020-12-29 Micron Technology, Inc. Predictive paging to accelerate memory access
US10852949B2 (en) 2019-04-15 2020-12-01 Micron Technology, Inc. Predictive data pre-fetching in a data storage device
US20230051781A1 (en) * 2021-08-16 2023-02-16 International Business Machines Corporation Data movement intimation using input/output (i/o) queue management
CN114518849B (zh) * 2022-02-18 2023-01-10 深圳大学 一种数据存储方法、装置及电子设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101421701A (zh) * 2006-04-10 2009-04-29 苹果公司 使用nand闪存的直接引导配置
CN106506275A (zh) * 2016-11-09 2017-03-15 中国科学院计算技术研究所 一种预测交换节点目的端口传输时延的方法及装置

Family Cites Families (175)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04230508A (ja) 1990-10-29 1992-08-19 Internatl Business Mach Corp <Ibm> 低電力消費メモリ装置
JP3889044B2 (ja) 1995-05-05 2007-03-07 シリコン、グラフィクス、インコーポレイテッド 不均一メモリ・アクセス(numa)システムにおけるページ移動
US5909540A (en) 1996-11-22 1999-06-01 Mangosoft Corporation System and method for providing highly available data storage using globally addressable memory
US6148377A (en) 1996-11-22 2000-11-14 Mangosoft Corporation Shared memory computer networks
US6026475A (en) 1997-11-26 2000-02-15 Digital Equipment Corporation Method for dynamically remapping a virtual address to a physical address to maintain an even distribution of cache page addresses in a virtual address space
US6279138B1 (en) 1998-08-04 2001-08-21 International Business Machines Corporation System for changing the parity structure of a raid array
US6230260B1 (en) 1998-09-01 2001-05-08 International Business Machines Corporation Circuit arrangement and method of speculative instruction execution utilizing instruction history caching
US6247097B1 (en) 1999-01-22 2001-06-12 International Business Machines Corporation Aligned instruction cache handling of instruction fetches across multiple predicted branch instructions
US6473845B1 (en) 2000-09-28 2002-10-29 Hewlett-Packard Company System and method for dynamically updating memory address mappings
US6515917B2 (en) 2001-04-10 2003-02-04 International Business Machines Corporation Digital-to-analog converter (dac) for dynamic adjustment of off-chip driver pull-up and pull down impedance by providing a variable reference voltage to high frequency receiver and driver circuits for commercial memory
US6646912B2 (en) 2001-06-05 2003-11-11 Hewlett-Packard Development Company, Lp. Non-volatile memory
US7437438B2 (en) 2001-12-27 2008-10-14 Hewlett-Packard Development Company, L.P. System and method for energy efficient data prefetching
US8700724B2 (en) 2002-08-19 2014-04-15 Broadcom Corporation System and method for transferring data over a remote direct memory access (RDMA) network
US20040186960A1 (en) 2003-03-20 2004-09-23 Sun Microsystems, Inc. Computer processor data prefetch unit
CN100465955C (zh) 2004-10-12 2009-03-04 国际商业机器公司 用于高速缓存万维网内容的方法和***
JP4956922B2 (ja) 2004-10-27 2012-06-20 ソニー株式会社 記憶装置
US20060095679A1 (en) 2004-10-28 2006-05-04 Edirisooriya Samantha J Method and apparatus for pushing data into a processor cache
US7376681B1 (en) 2004-12-23 2008-05-20 Emc Corporation Methods and apparatus for accessing information in a hierarchical file system
US7334076B2 (en) 2005-03-08 2008-02-19 Microsoft Corporation Method and system for a guest physical address virtualization in a virtual machine environment
US7571295B2 (en) 2005-08-04 2009-08-04 Intel Corporation Memory manager for heterogeneous memory control
US7631245B2 (en) 2005-09-26 2009-12-08 Sandisk Il Ltd. NAND flash memory controller exporting a NAND interface
US8291295B2 (en) 2005-09-26 2012-10-16 Sandisk Il Ltd. NAND flash memory controller exporting a NAND interface
US7933923B2 (en) 2005-11-04 2011-04-26 International Business Machines Corporation Tracking and reconciling database commands
JP4863749B2 (ja) 2006-03-29 2012-01-25 株式会社日立製作所 フラッシュメモリを用いた記憶装置、その消去回数平準化方法、及び消去回数平準化プログラム
US7496711B2 (en) 2006-07-13 2009-02-24 International Business Machines Corporation Multi-level memory architecture with data prioritization
US8352709B1 (en) 2006-09-19 2013-01-08 Nvidia Corporation Direct memory access techniques that include caching segmentation data
US8135933B2 (en) 2007-01-10 2012-03-13 Mobile Semiconductor Corporation Adaptive memory system for enhancing the performance of an external computing device
US8996834B2 (en) 2007-05-21 2015-03-31 International Business Machines Corporation Memory class based heap partitioning
US8281303B2 (en) 2007-10-31 2012-10-02 Hewlett-Packard Development Company, L.P. Dynamic ejection of virtual devices on ejection request from virtual device resource object within the virtual firmware to virtual resource driver executing in virtual machine
JP5238235B2 (ja) 2007-12-07 2013-07-17 株式会社日立製作所 管理装置及び管理方法
US8375190B2 (en) 2007-12-11 2013-02-12 Microsoft Corporation Dynamtic storage hierarachy management
US8255631B2 (en) * 2008-02-01 2012-08-28 International Business Machines Corporation Priority-based prefetch requests scheduling and throttling
US8082400B1 (en) 2008-02-26 2011-12-20 Hewlett-Packard Development Company, L.P. Partitioning a memory pool among plural computing nodes
US8560761B2 (en) 2008-03-31 2013-10-15 Spansion Llc Memory resource management for a flash aware kernel
US8289760B2 (en) 2008-07-02 2012-10-16 Micron Technology, Inc. Multi-mode memory device and method having stacked memory dice, a logic die and a command processing circuit and operating in direct and indirect modes
US8316187B2 (en) 2008-07-08 2012-11-20 International Business Machines Corporation Cache memory including a predict buffer
US8131814B1 (en) 2008-07-11 2012-03-06 Hewlett-Packard Development Company, L.P. Dynamic pinning remote direct memory access
US20100017650A1 (en) 2008-07-19 2010-01-21 Nanostar Corporation, U.S.A Non-volatile memory data storage system with reliability management
JP2010086049A (ja) 2008-09-29 2010-04-15 Hitachi Ltd 管理計算機及びその運用方法
US8429665B2 (en) 2010-03-19 2013-04-23 Vmware, Inc. Cache performance prediction, partitioning and scheduling based on cache pressure of threads
JP5221332B2 (ja) 2008-12-27 2013-06-26 株式会社東芝 メモリシステム
US8412880B2 (en) 2009-01-08 2013-04-02 Micron Technology, Inc. Memory system controller to manage wear leveling across a plurality of storage nodes
US8321645B2 (en) 2009-04-29 2012-11-27 Netapp, Inc. Mechanisms for moving data in a hybrid aggregate
US8117373B2 (en) 2009-04-30 2012-02-14 Kimon Berlin VM host responding to initiation of a page swap by transferring pages from host-but-non-guest-addressable RAM to host-and-guest-addressable RAM
JP4990322B2 (ja) 2009-05-13 2012-08-01 株式会社日立製作所 データ移動管理装置及び情報処理システム
US8719547B2 (en) 2009-09-18 2014-05-06 Intel Corporation Providing hardware support for shared virtual memory between local and remote physical memory
US8595411B2 (en) 2009-12-30 2013-11-26 Sandisk Technologies Inc. Method and controller for performing a sequence of commands
US8850151B2 (en) 2010-03-24 2014-09-30 Apple Inc. Hybrid-device storage based on environmental state
US8965819B2 (en) 2010-08-16 2015-02-24 Oracle International Corporation System and method for effective caching using neural networks
US9009384B2 (en) 2010-08-17 2015-04-14 Microsoft Technology Licensing, Llc Virtual machine memory management in systems with asymmetric memory
CN101930404B (zh) 2010-08-27 2012-11-21 威盛电子股份有限公司 存储装置及其操作方法
US8533422B2 (en) 2010-09-30 2013-09-10 Intel Corporation Instruction prefetching using cache line history
US8799554B1 (en) 2010-10-27 2014-08-05 Amazon Technologies, Inc. Methods and system for swapping memory in a virtual machine environment
US8990538B2 (en) 2010-11-05 2015-03-24 Microsoft Corporation Managing memory with limited write cycles in heterogeneous memory systems
US8561065B2 (en) 2010-11-15 2013-10-15 International Business Machines Corporation Virtualization of vendor specific network interfaces of self-virtualizing input/output device virtual functions
KR20140041408A (ko) 2011-01-04 2014-04-04 콘두시브 테크놀로지스 코포레이션 저장 위치 속성 및 데이터 사용량 통계에 기초하여 데이터 저장을 위한 저장 위치 선택
WO2012116369A2 (en) 2011-02-25 2012-08-30 Fusion-Io, Inc. Apparatus, system, and method for managing contents of a cache
JP5664347B2 (ja) 2011-03-04 2015-02-04 ソニー株式会社 仮想メモリシステム、仮想メモリの制御方法、およびプログラム
US8775731B2 (en) 2011-03-25 2014-07-08 Dell Products, L.P. Write spike performance enhancement in hybrid storage systems
US8930647B1 (en) 2011-04-06 2015-01-06 P4tents1, LLC Multiple class memory systems
US9176864B2 (en) 2011-05-17 2015-11-03 SanDisk Technologies, Inc. Non-volatile memory and method having block management with hot/cold data sorting
US20120297121A1 (en) 2011-05-17 2012-11-22 Sergey Anatolievich Gorobets Non-Volatile Memory and Method with Small Logical Groups Distributed Among Active SLC and MLC Memory Partitions
US9141528B2 (en) 2011-05-17 2015-09-22 Sandisk Technologies Inc. Tracking and handling of super-hot data in non-volatile memory systems
US9047017B1 (en) 2011-12-20 2015-06-02 Emc Corporation Techniques for automated evaluation and movement of data between storage tiers
US10380022B2 (en) 2011-07-28 2019-08-13 Netlist, Inc. Hybrid memory module and system and method of operating the same
EP3364304B1 (en) 2011-09-30 2022-06-15 INTEL Corporation Memory channel that supports near memory and far memory access
US20130145095A1 (en) 2011-12-06 2013-06-06 Lsi Corporation Melthod and system for integrating the functions of a cache system with a storage tiering system
KR20130064521A (ko) 2011-12-08 2013-06-18 삼성전자주식회사 데이터 저장 장치 및 그것의 데이터 관리 방법
KR101850318B1 (ko) 2011-12-09 2018-04-20 삼성전자주식회사 가상 메모리 관리 장치 및 방법
US9817761B2 (en) * 2012-01-06 2017-11-14 Sandisk Technologies Llc Methods, systems, and computer readable media for optimization of host sequential reads or writes based on volume of data transfer
EP2791774A1 (en) 2012-02-08 2014-10-22 Hitachi, Ltd. Storage apparatus with a plurality of nonvolatile semiconductor storage units and control method thereof to place hot data in storage units with higher residual life and cold data in storage units with lower residual life
US8849731B2 (en) 2012-02-23 2014-09-30 Microsoft Corporation Content pre-fetching for computing devices
CN102662690B (zh) 2012-03-14 2014-06-11 腾讯科技(深圳)有限公司 应用程序启动方法和装置
US8838887B1 (en) 2012-03-30 2014-09-16 Emc Corporation Drive partitioning for automated storage tiering
US9043530B1 (en) 2012-04-09 2015-05-26 Netapp, Inc. Data storage within hybrid storage aggregate
US9996370B1 (en) 2012-04-18 2018-06-12 Open Invention Network Llc Page swapping in virtual machine environment
WO2014002213A1 (ja) 2012-06-27 2014-01-03 株式会社日立製作所 管理システム及び管理方法
US10339056B2 (en) 2012-07-03 2019-07-02 Sandisk Technologies Llc Systems, methods and apparatus for cache transfers
US9128845B2 (en) 2012-07-30 2015-09-08 Hewlett-Packard Development Company, L.P. Dynamically partition a volatile memory for a cache and a memory partition
US10303618B2 (en) 2012-09-25 2019-05-28 International Business Machines Corporation Power savings via dynamic page type selection
US9817739B1 (en) 2012-10-31 2017-11-14 Veritas Technologies Llc Method to restore a virtual environment based on a state of applications/tiers
US9069658B2 (en) 2012-12-10 2015-06-30 Google Inc. Using a virtual to physical map for direct user space communication with a data storage device
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
EP2936494B1 (en) 2012-12-19 2019-07-03 Hewlett-Packard Enterprise Development LP Nvram path selection
US9552288B2 (en) 2013-02-08 2017-01-24 Seagate Technology Llc Multi-tiered memory with different metadata levels
US9672230B1 (en) 2013-04-03 2017-06-06 Ca, Inc. Optimized placement of data
JP5577430B1 (ja) 2013-06-11 2014-08-20 株式会社ブリヂストン 空気入りタイヤ
US9984089B2 (en) 2013-06-28 2018-05-29 Vmware, Inc. Techniques for implementing hybrid flash/HDD-based virtual disk files
US20150016046A1 (en) 2013-07-10 2015-01-15 Samsung Electronics Co., Ltd. Ina cabled memory appliance
US20150026509A1 (en) 2013-07-22 2015-01-22 Kabushiki Kaisha Toshiba Storage device having a data stream converter
WO2015017147A1 (en) 2013-07-29 2015-02-05 Silicon Graphics International Corp. I/o acceleration in hybrid storage
GB2517493A (en) 2013-08-23 2015-02-25 Advanced Risc Mach Ltd Handling access attributes for data accesses
WO2015029102A1 (ja) 2013-08-26 2015-03-05 株式会社日立製作所 ストレージ装置及び階層制御方法
US9037753B2 (en) 2013-08-29 2015-05-19 International Business Machines Corporation Automatic pinning and unpinning of virtual pages for remote direct memory access
US9122503B1 (en) * 2013-09-05 2015-09-01 Symantec Corporation Systems and methods for adaptive throttling of input/output requests in a virtual environment
US9513692B2 (en) 2013-09-18 2016-12-06 Intel Corporation Heterogenous memory access
CN105579959B (zh) 2013-09-24 2019-06-07 渥太华大学 硬件加速器虚拟化
US10032246B2 (en) 2013-10-09 2018-07-24 Nvidia Corporation Approach to caching decoded texture data with variable dimensions
US9280456B2 (en) 2013-11-12 2016-03-08 Micron Technology, Inc. Mapping between program states and data patterns
US20150199276A1 (en) * 2014-01-13 2015-07-16 Samsung Electronics Co., Ltd. Pre-fetch confirmation queue
KR20150089538A (ko) 2014-01-28 2015-08-05 한국전자통신연구원 인-메모리 데이터 관리 장치 및 인-메모리 데이터 관리 방법
JP6203937B2 (ja) 2014-03-04 2017-09-27 株式会社日立製作所 計算機およびメモリ制御方法
US10445025B2 (en) 2014-03-18 2019-10-15 Micron Technology, Inc. Apparatuses and methods having memory tier structure and recursively searching between tiers for address in a translation table where information is only directly transferred between controllers
US9472248B2 (en) 2014-03-28 2016-10-18 Intel Corporation Method and apparatus for implementing a heterogeneous memory subsystem
US10628245B2 (en) 2014-04-02 2020-04-21 Pure Storage, Inc. Monitoring of storage units in a dispersed storage network
US20170060769A1 (en) 2014-05-01 2017-03-02 Coho Data, Inc. Systems, devices and methods for generating locality-indicative data representations of data streams, and compressions thereof
JP6637906B2 (ja) 2014-05-08 2020-01-29 マイクロン テクノロジー,インク. ハイブリッドメモリキューブシステム相互接続ディレクトリベースキャッシュコヒーレンス方法
US20150356125A1 (en) 2014-06-06 2015-12-10 Plexistor Ltd. Method for data placement based on a file level operation
US9697130B2 (en) 2014-06-25 2017-07-04 Sandisk Technologies Llc Systems and methods for storage service automation
US10282100B2 (en) 2014-08-19 2019-05-07 Samsung Electronics Co., Ltd. Data management scheme in virtualized hyperscale environments
US9390028B2 (en) 2014-10-19 2016-07-12 Strato Scale Ltd. Coordination between memory-saving mechanisms in computers that run virtual machines
CN105574067B (zh) 2014-10-31 2020-01-21 株式会社东芝 项目推荐装置以及项目推荐方法
US10223371B2 (en) 2014-11-21 2019-03-05 Vmware, Inc. Host-based deduplication using array generated data tags
US9727427B2 (en) 2014-12-31 2017-08-08 International Business Machines Corporation Synchronizing storage of data copies in a dispersed storage network
US20160212214A1 (en) 2015-01-16 2016-07-21 Avago Technologies General Ip (Singapore) Pte. Ltd. Tunneled remote direct memory access (rdma) communication
WO2016134035A1 (en) 2015-02-17 2016-08-25 Coho Data, Inc. Virtualized application-layer space for data processing in data storage systems
KR20160116533A (ko) 2015-03-30 2016-10-10 삼성전자주식회사 리프레쉬 동작을 관리하는 메모리 콘트롤러, 메모리 시스템 및 그 동작방법
US10645013B2 (en) 2015-04-02 2020-05-05 Nicira, Inc Data flow identifiers
US10025747B2 (en) 2015-05-07 2018-07-17 Samsung Electronics Co., Ltd. I/O channel scrambling/ECC disassociated communication protocol
US9720846B2 (en) 2015-05-28 2017-08-01 Red Hat Israel, Ltd. Memory swap for direct memory access by a device assigned to a guest operating system
US10042782B2 (en) 2015-06-02 2018-08-07 ALTR Solutions, Inc. Immutable datastore for low-latency reading and writing of large data sets
US9639280B2 (en) * 2015-06-18 2017-05-02 Advanced Micro Devices, Inc. Ordering memory commands in a computer system
US10019409B2 (en) 2015-08-03 2018-07-10 International Business Machines Corporation Extending remote direct memory access operations for storage class memory access
US11169925B2 (en) 2015-08-25 2021-11-09 Samsung Electronics Co., Ltd. Capturing temporal store streams into CPU caches by dynamically varying store streaming thresholds
US9535740B1 (en) 2015-08-26 2017-01-03 International Business Machines Corporation Implementing dynamic adjustment of resources allocated to SRIOV remote direct memory access adapter (RDMA) virtual functions based on usage patterns
US10430723B1 (en) 2015-09-29 2019-10-01 EMC IP Holding Company LLC Storage system with machine learning based skew prediction
US20170123796A1 (en) 2015-10-29 2017-05-04 Intel Corporation Instruction and logic to prefetch information from a persistent memory
US20170147427A1 (en) 2015-11-23 2017-05-25 Honeywell International, Inc. System and method for software simulation for testing a safety manager platform
US10394789B1 (en) 2015-12-07 2019-08-27 Amazon Technologies, Inc. Techniques and systems for scalable request handling in data processing systems
US10019372B2 (en) 2015-12-16 2018-07-10 Western Digital Technologies, Inc. Caching sensing device data in data storage device
US10019279B2 (en) 2015-12-17 2018-07-10 International Business Machines Corporation Transparent secure interception handling
US10148570B2 (en) 2015-12-29 2018-12-04 Amazon Technologies, Inc. Connectionless reliable transport
US10719237B2 (en) 2016-01-11 2020-07-21 Micron Technology, Inc. Apparatuses and methods for concurrently accessing multiple partitions of a non-volatile memory
US10592114B2 (en) 2016-03-03 2020-03-17 Samsung Electronics Co., Ltd. Coordinated in-module RAS features for synchronous DDR compatible memory
US10216536B2 (en) 2016-03-11 2019-02-26 Vmware, Inc. Swap file defragmentation in a hypervisor
US20170285967A1 (en) 2016-03-29 2017-10-05 Samsung Electronics Co., Ltd. Multi-ware smart ssd
US20170285992A1 (en) 2016-04-01 2017-10-05 Intel Corporation Memory subsystem with narrow bandwidth repeater channel
US10778762B2 (en) 2016-04-18 2020-09-15 Rancher Labs, Inc. Cloud computing service architecture
CN109073350B (zh) 2016-04-29 2021-07-02 思科技术公司 应用性能数据的预测性汇总和缓存
US10282261B2 (en) 2016-06-20 2019-05-07 Vmware, Inc. Pooled memory heartbeat in shared memory architecture
JP2018005446A (ja) 2016-06-30 2018-01-11 富士通株式会社 情報処理装置、ストレージ制御プログラム、及びストレージ制御方法
US10176099B2 (en) 2016-07-11 2019-01-08 Intel Corporation Using data pattern to mark cache lines as invalid
US11138160B2 (en) 2016-07-13 2021-10-05 International Business Machines Corporation Application performance using multidimensional predictive algorithm for automated tiering mechanisms
US10083123B2 (en) 2016-08-10 2018-09-25 Vmware, Inc. Page-fault latency directed virtual machine performance monitoring
US20180059976A1 (en) * 2016-08-26 2018-03-01 Sandisk Technologies Llc Storage System with Integrated Components and Method for Use Therewith
US10866897B2 (en) 2016-09-26 2020-12-15 Samsung Electronics Co., Ltd. Byte-addressable flash-based memory module with prefetch mode that is adjusted based on feedback from prefetch accuracy that is calculated by comparing first decoded address and second decoded address, where the first decoded address is sent to memory controller, and the second decoded address is sent to prefetch buffer
US10120797B1 (en) 2016-09-30 2018-11-06 EMC IP Holding Company LLC Managing mapping metadata in storage systems
CN108008911A (zh) 2016-11-01 2018-05-08 阿里巴巴集团控股有限公司 读写请求处理方法及装置
TWI596541B (zh) 2016-11-30 2017-08-21 財團法人工業技術研究院 資料存取系統、資料存取裝置及資料存取方法
US10866912B2 (en) 2017-03-10 2020-12-15 Toshiba Memory Corporation Integrated heterogeneous solid state storage drive
US11392488B2 (en) 2017-04-07 2022-07-19 Keysight Technologies Singapore (Sales) Pte. Ltd. Optimizing storage of application data in memory
US9910618B1 (en) 2017-04-10 2018-03-06 Pure Storage, Inc. Migrating applications executing on a storage system
US11563789B2 (en) 2017-05-09 2023-01-24 EMC IP Holding Company LLC Executing streaming data writes without duplication or loss
US20190004841A1 (en) 2017-06-30 2019-01-03 Microsoft Technology Licensing, Llc Memory Sharing For Virtual Machines
US20190034284A1 (en) 2017-07-25 2019-01-31 Hewlett Packard Enterprise Development Lp Sequencing host i/o requests and i/o snapshots
US10289566B1 (en) 2017-07-28 2019-05-14 EMC IP Holding Company LLC Handling data that has become inactive within stream aware data storage equipment
US10671303B2 (en) 2017-09-13 2020-06-02 International Business Machines Corporation Controlling a storage system
US10298496B1 (en) 2017-09-26 2019-05-21 Amazon Technologies, Inc. Packet processing cache
KR102414047B1 (ko) 2017-10-30 2022-06-29 에스케이하이닉스 주식회사 통합 메모리 디바이스 및 그의 동작 방법
US10394706B2 (en) * 2017-11-02 2019-08-27 Western Digital Technologies, Inc. Non-volatile storage with adaptive command prediction
US10572389B2 (en) 2017-12-12 2020-02-25 Advanced Micro Devices, Inc. Cache control aware memory controller
US20190196996A1 (en) 2017-12-21 2019-06-27 Advanced Micro Devices, Inc. Dynamically determining memory access burst length
US10782908B2 (en) 2018-02-05 2020-09-22 Micron Technology, Inc. Predictive data orchestration in multi-tier memory systems
US20190243787A1 (en) 2018-02-05 2019-08-08 Micron Technology, Inc. Memory Systems having Controllers Embedded in Packages of Integrated Circuit Memory
US11416395B2 (en) 2018-02-05 2022-08-16 Micron Technology, Inc. Memory virtualization for accessing heterogeneous memory components
US11099789B2 (en) 2018-02-05 2021-08-24 Micron Technology, Inc. Remote direct memory access in multi-tier memory systems
US20190243771A1 (en) 2018-02-05 2019-08-08 Micron Technology, Inc. Accelerate Data Access in Memory Systems via Data Stream Segregation
US10880401B2 (en) 2018-02-12 2020-12-29 Micron Technology, Inc. Optimization of data access and communication in memory systems
US10922221B2 (en) 2018-03-28 2021-02-16 Micron Technology, Inc. Memory management
US10540100B2 (en) 2018-04-10 2020-01-21 Western Digital Technologies, Inc. Mapping-based wear leveling for non-volatile memory
US20190370043A1 (en) 2018-04-30 2019-12-05 Nutanix, Inc. Cooperative memory management
US10877892B2 (en) 2018-07-11 2020-12-29 Micron Technology, Inc. Predictive paging to accelerate memory access
US10915465B2 (en) 2018-08-30 2021-02-09 Micron Technology, Inc. Memory configured to store predefined set of domain registers for instructions being executed in computer processors
US11182507B2 (en) 2018-08-30 2021-11-23 Micron Technology, Inc. Domain crossing in executing instructions in computer processors
US10852949B2 (en) 2019-04-15 2020-12-01 Micron Technology, Inc. Predictive data pre-fetching in a data storage device

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101421701A (zh) * 2006-04-10 2009-04-29 苹果公司 使用nand闪存的直接引导配置
CN106506275A (zh) * 2016-11-09 2017-03-15 中国科学院计算技术研究所 一种预测交换节点目的端口传输时延的方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
利用数据预取机制降低块执行模型的访存延迟;从明;安虹;张军;任永青;;小型微型计算机***(第08期);全文 *

Also Published As

Publication number Publication date
US11740793B2 (en) 2023-08-29
DE112020001937T5 (de) 2022-01-13
US20200326851A1 (en) 2020-10-15
US20230393743A1 (en) 2023-12-07
CN113692579A (zh) 2021-11-23
US20210048947A1 (en) 2021-02-18
WO2020214276A1 (en) 2020-10-22
US10852949B2 (en) 2020-12-01

Similar Documents

Publication Publication Date Title
CN113692579B (zh) 数据存储装置中的预测性数据预取
US11669260B2 (en) Predictive data orchestration in multi-tier memory systems
CN112384890B (zh) 预测性分页以加速存储器存取
US11650755B2 (en) Proactive return of write credits in a memory system
KR20200108363A (ko) 집적 회로 메모리의 패키지에 내장된 컨트롤러를 갖는 메모리 시스템
US11740833B2 (en) Throttle response signals from a memory system
CN111936961B (zh) 基于性能目标对存储器***的优化
WO2020061092A1 (en) Scheduling of read operations and write operations based on a data bus mode
WO2023022776A1 (en) Data migration schedule prediction using machine learning
US11681909B2 (en) Memory component with a bus to transmit data for a machine learning operation and another bus to transmit host data
CN112732598B (zh) 具有虚拟化总线和内部逻辑以执行机器学习操作的存储器组件
US11769076B2 (en) Memory sub-system with a virtualized bus and internal logic to perform a machine learning operation
US11694076B2 (en) Memory sub-system with internal logic to perform a machine learning operation
US12039192B2 (en) Efficient buffer management for media management commands in memory devices
US11676010B2 (en) Memory sub-system with a bus to transmit data for a machine learning operation and another bus to transmit host data
US20230066344A1 (en) Efficient buffer management for media management commands in memory devices
CN112231252B (zh) 用于存储器子***的内部管理业务调节
CN112732597B (zh) 具有内部逻辑以执行机器学习操作的存储器组件
US20230064781A1 (en) Dynamic buffer limit for at-risk data

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