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

文档序号:1879190 发布日期:2021-11-23 浏览:15次 >En<

阅读说明:本技术 数据存储装置中的预测性数据预取 (Predictive data prefetching in a data store ) 是由 A·弗罗利科夫 Z·A·P·沃格尔 J·G·门德斯 C·M·古达 于 2020-03-10 设计创作,主要内容包括:一种数据存储系统具有非易失性媒体、缓冲存储器、处理装置和数据预取器。所述数据预取器接收要在所述数据存储系统中执行的命令,提供所述命令作为预测模型的输入,获得识别用于预取的至少一个命令作为具有所述命令作为输入的所述预测模型的输出。在所述命令在所述数据存储装置中执行之前,所述数据预取器从所述非易失性存储器检索要在执行所述命令时使用的至少一数据部分;并将所述数据部分存储在所述缓冲存储器中。在所述命令的执行之前,所述数据部分的检索和存储可以与许多命令的执行同时执行,以减小所述命令对与所述命令的执行同时执行的其它命令的时延影响。(A data storage system has a non-volatile medium, a buffer memory, a processing device, and a data prefetcher. The data prefetcher receives commands to be executed in the data storage system, provides the commands as inputs to a predictive model, and obtains an output identifying at least one command for prefetching as the predictive model having the command as an input. Prior to execution of the command in the data storage, the data prefetcher retrieves from the non-volatile memory at least a portion of data to be used in executing the command; and storing the data portion in the buffer memory. The retrieval and storage of the data portion may be performed concurrently with the execution of many commands prior to the execution of the command to reduce the latency impact of the command on other commands that are executed concurrently with the execution of the command.)

具体实施方式

本公开的至少一些方面涉及预测性预取可增加在数据存储装置中同时执行的其它命令的执行时延的命令的数据。例如,预测模型在数据存储装置中配置以识别可导致其它命令的执行具有显著延迟的此类命令。供所识别命令使用的数据可以从数据存储装置的非易失性存储媒体预取到存储装置的缓冲存储器。数据预取到缓冲存储器可减少、最小化和/或消除由所识别命令在其它命令的执行中造成的延迟。预测模型可通过在命令训练集上应用机器学习技术使用训练集中的命令的执行时延数据来建立。

一般来说,基础架构命令可用于管理(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的存储器子系统(1110)。

在图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)来实施。可使用无软件指令的硬接线电路系统或结合软件指令实施实施例。因此,技术既不限于硬件电路系统和软件的任何特定组合,也不限于由数据处理系统执行的指令的任何特定来源。

在前述说明书中,已参考其特定实例实施例描述了本公开的实施例。应显而易见的是,可在不脱离如所附权利要求书中阐述的本公开的实施例的更广精神和范围的情况下对本公开进行各种修改。因此,应在说明性意义上而非限制性意义上看待说明书和图式。

20页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:多处理器/端点数据分割系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类