混合式双列直插式存储器模块中的高速缓存操作

文档序号:555471 发布日期:2021-05-14 浏览:11次 >En<

阅读说明:本技术 混合式双列直插式存储器模块中的高速缓存操作 (Cache operations in a hybrid dual in-line memory module ) 是由 P·斯通莱克 H·西苗内斯库 S·米塔尔 R·M·沃克 A·拉伊 G·阿南德 于 2019-09-17 设计创作,主要内容包括:本发明提供一种系统,其包含第一存储器类型的第一存储器组件;第二存储器类型的第二存储器组件,其与所述第一存储器组件相比具有较高存取时延;和第三存储器类型的第三存储器组件,其与所述第一和第二存储器组件相比具有较高存取时延。所述系统另外包含处理装置,所述处理装置识别存储于所述第一存储器组件中的数据页的区段,以及与所述数据页和所述数据页的所述区段相关联的存取模式。所述处理装置基于所述存取模式确定将所述数据页高速缓存于所述第二存储器组件处,将存储于所述第一存储器组件中的所述数据页的所述区段复制到所述第二存储器组件。所述处理装置接着将存储于所述第三存储器组件处的所述数据页的额外区段复制到所述第二存储器组件。(A system includes a first memory component of a first memory type; a second memory component of a second memory type having a higher access latency than the first memory component; and a third memory component of a third memory type having a higher access latency than the first and second memory components. The system additionally includes a processing device that identifies a section of a page of data stored in the first memory component, and an access pattern associated with the page of data and the section of the page of data. The processing device determines to cache the page of data at the second memory component based on the access pattern, copies the section of the page of data stored in the first memory component to the second memory component. The processing device then copies additional sections of the page of data stored at the third memory component to the second memory component.)

具体实施方式

本公开的方面针对于混合式双列直插式存储器模块中的高速缓存操作。存储器子系统可以是存储装置、存储器模块,或存储装置和存储器模块的混合。下文结合图1描述存储装置和存储器模块的实例。一般来说,主机系统可利用包含一或多个存储器组件(例如,存储数据的存储器装置)的存储器子系统。主机系统可提供数据以存储于存储器子系统处,且可请求从存储器子系统检索数据。

存储器子系统可包含可存储来自主机系统的数据的多个存储器装置。存储器装置可为非易失性存储器装置,例如非易失性存储器的交叉点阵列的三维交叉点(“3D交叉点”)存储器装置,其可与可堆叠交叉网格化数据存取阵列结合来基于体电阻的改变执行位存储。非易失性存储器装置的另一实例为与非(NAND)存储器装置。下文结合图1描述非易失性存储器装置的其它实例。存储器子系统包含存储器子系统控制器,其可与存储器装置通信以执行例如在存储器装置处读取数据、写入数据或擦除数据等操作和其它此类操作。下文结合图1更详细地描述存储器子系统控制器。

主机系统可将存取请求(例如,写入命令、读取命令)发送到存储器子系统,以便将数据存储在存储器子系统处的存储器装置上,且从存储器子系统上的存储器装置读取数据。如由主机请求指定的待读取或写入的数据在下文中被称作“主机数据”。主机请求可包含用于主机数据的逻辑地址信息(例如,逻辑块地址(LBA)、名字空间),其是主机系统与主机数据相关联的位置。逻辑地址信息(例如,LBA、名字空间)可为主机数据的元数据的部分。元数据与主机数据一起在下文中被称作“有效负载”。用于错误校正的元数据、主机数据和奇偶校验数据可共同地形成错误校正码(ECC)码字。元数据还可包含数据版本(例如用以区分所写入的数据的老化程度)、有效位图(其LBA或逻辑传送单元含有有效数据)等。

动态随机存取存储器(DRAM)昂贵并且容量有限,例如DDR4双列直插式存储器模块(DIMM)。通过一些代价获得更大容量的存储器类型(例如,3D交叉点)。虽然3D交叉点可能比DRAM慢,但如果与具有高命中率的较快速存取高速缓存器结合使用的话就可获得足够快的速度,其可模拟只DRAM DIMM的较快速存取。那么一种类型的常规存储器子系统可结合其它类型的存储器子系统使用(例如,作为高速缓存器),前提是主机系统被设计成适应这两种存储器子系统类型。然而,不同类型的存储器可使用不同接口协议,且具有DDR4的一个DIMM与具有3D交叉点的一个DIMM之间的高速缓存器传送可沿着主机和之间的接口致使高流量,进而减小这两种DIMM的总体性能。

另外,可以不同数据粒度存取存储器类型。举例来说,与有用的大DRAM高速缓存器的页大小相比,可以高得多的粒度存取3D交叉点存储器(即,可在较小数据大小中发生数据事务)。存取大小与缓存页大小的此差异可在跟踪数据存取模式并选择哪些数据传送到充当高速缓存器(例如,DRAM)的存储器时带来困难。此外,归因于数据的高数目部分和每高速缓存条目的元数据的量,管理使用高粒度的高速缓存器所需的数据量可能非常大。

本公开的方面通过包含如下混合式DIMM的存储器子系统来解决以上和其它缺陷:所述混合式DIMM使用DIMM的存储器组件中的一个作为用于其它具有较高时延(即,较慢存取速度)和较高数据容量的其它存储器模块的较低时延高速缓存器(即,更好地执行具有较快速数据存取速度的媒体)。DIMM控制器(例如,存储器子系统控制器)可包含如下存储器组件:在被主机系统存取时,充当用于存储数据页的部分或“扇区”的低容量高速缓存器。每当扇区进入控制器中的高速缓存器时,可跟踪对所述扇区的存取以将存取数据提供给高速缓存组件,例如高速缓存管理器。另外,高速缓存管理器可聚合控制器内的高速缓存器中的页的每一扇区的存取数据。高速缓存管理器接着可选择哪些页应存储于DRAM高速缓存器中以供较快速的数据存取。

本公开的优点包含但不限于提供具有高数据容量和与只DRAM(DDR4)DIMM相当的数据存取时延的混合式DIMM。归因于与DRAM相比,3D交叉点存储器的成本相对较低,混合式DIMM也可能要便宜得多。因此,描述混合式DIMM,其更便宜,并且具有较高数据容量、相当的性能以及提供永久性存储器的能力。

图1说明根据本公开的一些实施例的包含存储器子系统110的实例计算环境100。存储器子系统110可包含媒体,例如一或多个易失性存储器装置(例如,存储器装置140)、一或多个非易失性存储器装置(例如,存储器装置130)或此类的组合。

存储器子系统110可为存储装置、存储器模块,或存储装置和存储器模块的混合。存储装置的实例包含固态驱动器(SSD)、快闪驱动器、通用串行总线(USB)快闪驱动器、嵌入式多媒体控制器(eMMC)驱动器、通用快闪存储装置(UFS)驱动器以及硬盘驱动器(HDD)。存储器模块的实例包含双列直插式存储器模块(DIMM)、小型DIMM(SO-DIMM)和非易失性双列直插式存储器模块(NVDIMM)。

计算环境100可包含耦合到一或多个存储器子系统110的主机系统120。在一些实施例中,主机系统120耦合到不同类型的存储器子系统110。图1说明耦合到一个存储器子系统110的主机系统120的一个实例。主机系统120使用例如存储器子系统110将数据写入到存储器子系统110并从存储器子系统110读取数据。如本文中所使用,“耦合到”通常是指组件之间的连接,其可以是间接通信连接或直接通信连接(例如不具有介入组件),无论有线或无线,包含例如电连接、光学连接、磁连接等连接。

主机系统120可以是计算装置,例如台式计算机、手提式计算机、网络服务器、移动装置、载具(例如,飞机、无人机、火车、汽车或其它运输工具)、物联网(IoT)装置、嵌入式计算机(例如,包含在载具、工业设备或联网商用装置中的嵌入式计算机),或包含存储器和处理装置的此类计算装置。主机系统120可经由物理主机接口耦合到存储器子系统110。物理主机接口的实例包含但不限于串行高级技术附件(SATA)接口、外围组件互连高速(PCIe)接口、通用串行总线(USB)接口、光纤通道、串行连接的SCSI(SAS)等。物理主机接口可用于在主机系统120与存储器子系统110之间发射数据。当存储器子系统110通过PCIe接口与主机系统120耦合时,主机系统120可进一步利用NVM高速(NVMe)接口来存取存储器组件(例如,存储器装置130)。物理主机接口可提供用于在存储器子系统110与主机系统120之间传送控制、地址、数据和其它信号的接口。

存储器装置可以包含不同类型的非易失性存储器装置和/或易失性存储器装置的任何组合。易失性存储器装置(例如,存储器装置140)可以是但不限于随机存取存储器(RAM),例如动态随机存取存储器(DRAM)和同步动态随机存取存储器(SDRAM)。

非易失性存储器装置(例如,存储器装置130)的一些实例包含“与非”(NAND)型快闪存储器和就地写入存储器,例如三维交叉点(“3D交叉点”)存储器。3D交叉点存储器装置是可结合可堆叠交叉网格化数据存取阵列基于体电阻的改变而执行位存储的非易失性存储器单元的交叉点阵列。另外,与许多基于闪存的存储器相反,交叉点非易失性存储器可进行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。

虽然描述了例如3D交叉点类型和NAND类型存储器的非易失性存储器组件,但存储器装置130可以基于任何其它类型的非易失性存储器,例如只读存储器(ROM)、相变存储器(PCM)、自选存储器、其它基于硫族化物的存储器、铁电随机存取存储器(FeRAM)、磁性随机存取存储器(MRAM)、“或非”(NOR)快闪存储器,以及电可擦除可编程只读存储器(EEPROM)。

一种类型的存储器单元,例如,单层级单元(SLC)可存储一个位每单元。其它类型的存储器单元,例如多层级单元(MLC)、三层级单元(TLC)和四层级单元(QLC)可每单元存储多个位。在一些实施例中,特定存储器组件可包含存储器单元的SLC部分,以及MLC部分、TLC部分或QLC部分。存储器装置130的存储器单元可分组为可指代用于存储数据的存储器装置的单元的页或码字。对于一些类型的存储器(例如,NAND),页可进行分组以形成块。一些类型的存储器(例如3D交叉点)可将跨裸片和通道的页分组以形成管理单元(MU)。

存储器子系统控制器115可以与存储器装置130通信以执行操作,例如在存储器装置130处读取数据、写入数据或擦除数据和其它此类操作。存储器子系统控制器115可以包含硬件,例如一或多个集成电路和/或离散组件、缓冲存储器或其组合。存储器子系统控制器115可以是微控制器、专用逻辑电路系统(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等),或其它合适的处理器。

存储器子系统控制器115可包含处理器(处理装置)117,其经配置以执行存储在本地存储器119中的指令。在所示的实例中,存储器子系统控制器115的本地存储器119包含嵌入式存储器,其经配置以存储用于执行控制存储器子系统110的操作的各种过程、操作、逻辑流和例程的指令,包含处置存储器子系统110与主机系统120之间的通信。

在一些实施例中,本地存储器119可以包含存储存储器指针、所提取数据等的存储器寄存器。本地存储器119还可包含用于存储微码的只读存储器(ROM)。虽然图1中的实例存储器子系统110已说明为包含存储器子系统控制器115,但在本公开的另一实施例中,存储器子系统110可能不包含存储器子系统控制器115,且可改为依靠(例如由外部主机或由与存储器子系统分离的处理器或控制器提供的)外部控制。

通常,存储器子系统控制器115可从主机系统120接收命令或操作,并且可以将命令或操作转换成指令或适当的命令以实现对存储器装置130的所需存取。存储器子系统控制器115可以负责其它操作,例如耗损均衡操作、垃圾收集操作、错误检测和错误校正码(ECC)操作、加密操作、高速缓存操作,以及与存储器装置130相关联的逻辑块地址和物理块地址之间的地址转译。存储器子系统控制器115可进一步包含主机接口电路系统,以经由物理主机接口与主机系统120通信。主机接口电路系统可以将从主机系统接收到的命令转换成存取存储器装置130的命令指令,以及将与存储器装置130相关联的响应转换成用于主机系统120的信息。

存储器子系统110还可包含未说明的额外电路或组件。在一些实施例中,存储器子系统110可以包含高速缓存或缓冲器(例如,DRAM)和地址电路系统(例如,行解码器和列解码器),其可从存储器子系统控制器115接收地址且对地址进行解码以存取存储器装置130。

在一些实施例中,存储器装置130包含本地媒体控制器135,其结合存储器子系统控制器115操作以对存储器装置130的一或多个存储器单元执行操作。在一些实施例中,存储器装置130可以是受管理存储器装置,其为与用于在同一存储器装置封装内进行媒体管理的本地控制器(例如,本地控制器135)组合的原始存储器装置。受管理存储器装置的实例是受管理NAND(MNAND)装置。

存储器子系统110包含高速缓存组件113,其可执行混合式DIMM中的高速缓存操作。在一些实施例中,存储器子系统控制器115包含高速缓存组件113的至少一部分。举例来说,存储器子系统控制器115可包含处理器117(处理装置),其被配置成执行存储在本地存储器119中的指令以用于执行本文中所描述的操作。在一些实施例中,高速缓存组件113是主机系统120、应用程序或操作系统的部分。

高速缓存组件113可跟踪主机系统存取存储于具有较高容量和较高时延的存储器组件(例如3D交叉点)中的数据的多少个不同部分。高速缓存组件113可识别与暂时高速缓存于存储器子系统控制器115中的静态随机存取存储器(SRAM)(例如,本地存储器119)中的数据扇区(数据页的区段)相关联的主机存取模式。高速缓存组件113接着可基于识别的存取模式,确定数据扇区和其相关联页是否应存储(高速缓存)于较低时延存储器140(例如DRAM)中。另外,高速缓存组件113也可识别与高速缓存于高速缓存器140中的页相关联的主机存取模式,以允许在将现有页保持于高速缓存器140中之间做出决策或基于SRAM 119中存取的扇区为新页提供空间。下文描述关于高速缓存组件113的操作的另外细节。

图2是说明包括使用DRAM作为3D交叉点存储器的高速缓存器的混合式DIMM的系统的框图。主机系统210可包含中央处理单元(CPU)212、CPU高速缓存器214和非易失性双列直插式存储器模块(NVDIMM)主装置216。如图1中所描述,主机系统210可以是计算装置,例如台式计算机、手提式计算机、网络服务器、移动装置、载具(例如,飞机、无人机、火车、汽车或其它运输工具)、物联网(IoT)装置、嵌入式计算机(例如,包含在载具、工业设备或联网商用装置中的嵌入式计算机),或包含存储器和处理装置的此类计算装置。主机系统210可提供将存储于混合式DIMM 220处的数据并且可请求将从混合式DIMM 220检索的数据。CPU 212可为执行与主机系统210执行的应用程序相关联的指令的处理器或芯片上系统(SOC),其包括算术逻辑单元、管理单元等。CPU高速缓存器214可包含一或多个层级的高速缓存存储器以用于对高度存取的或最近存取的数据进行快速数据存取。在一些实施例中,CPU高速缓存器214或CPU 212可包含用以确定哪些数据高速缓存于不同层级的CPU高速缓存器214处的高速缓存控制器。NVDIMM主装置216可为主机系统210的接口,所述接口用以与耦合到主机系统210的存储器模块(例如混合式DIMM 220)通信。举例来说,NVDIMM主装置216接口可为支持可变时延数据传送的异步接口,例如NVDIMM-P。

混合式DIMM 220可为可耦合到主机系统(例如主机系统210)的存储器模块。混合式DIMM 220可包含存储器子系统控制器115、DRAM存储器组件230和3D交叉点存储器组件232。存储器子系统控制器115可将数据存储于3D交叉点存储器232处并且利用DRAM存储器230作为数据高速缓存器,以通过较高存取速率提供对数据的较低时延存取。较低时延存取可意味着较快存取速度,而较高时延存取可意味着较慢存取速度。存储器子系统控制器115可包含用于与主机系统210通信的NVDIMM从装置222接口。NVDIMM接口可为提供对可变时延存储器存取的支持的异步接口,例如NVDIMM-P。可变时延支持可提供主机系统210通过单个接口协议存取来自DRAM 230以及3D交叉点存储器232两者的数据的能力。存储器子系统控制器115可包含提供通到DRAM 230的接口的DRAM控制器226,以及为3D交叉点存储器232提供接口和媒体管理工具的媒体管理器228。

存储器子系统控制器115可另外包含SRAM数据高速缓存器224以充当用于混合式DIMM 220内的数据的最高层级高速缓存器。主机系统210在混合式DIMM 220处读取或写入的所有数据可高速缓存于SRAM数据高速缓存器224处,直到扇区被逐出,写回到3D交叉点232或高速缓存于DRAM 230处为止。存储器子系统控制器的高速缓存组件113可包含用于以下操作的一或多个组件:跟踪数据存取模式,以及将启发法应用于数据存取模式信息以确定暂时高速缓存于SRAM数据高速缓存器224处的数据是否应高速缓存来DRAM 230处。所述启发法可提供如下高速缓存方案:其提供非常高的命中率,使得混合式DIMM 220的主机存取紧密模仿只DRAM DIMM的存取速度。

因为可通过SRAM数据高速缓存器224转发存取的任何数据,所以高速缓存组件113可跟踪进入SRAM数据高速缓存器224的每一数据区段的存取,并且类似地可跟踪DRAM高速缓存器230中的每一数据页的存取。每一数据区段(还被称作扇区)可包含在存储于3D交叉点存储器232中的数据页中或与所述数据页相关联。通过跟踪每一扇区的存取模式,高速缓存组件113可另外聚合SRAM数据高速缓存器224中的页的所有扇区的存取数据。因此,高速缓存组件113可跟踪扇区粒度的数据存取以及页粒度的数据存取。一旦高速缓存组件113确定SRAM数据高速缓存器224中的扇区应高速缓存于DRAM 230中,便可将所述扇区和3D交叉点存储器232处的页内的剩余扇区复制到DRAM 230以进行更快存取。

图3是说明利用低时延存储器类型作为用于较高时延、较高容量存储器类型的高速缓存器的混合式DIMM 300的框图。混合式DIMM 300可包含存储器子系统控制器115、DRAM数据高速缓存器230和3D交叉点存储器240。与3D交叉点存储器240相比,DRAM数据高速缓存器230可管理更大粒度(更大数据大小)的数据。举例来说,DRAM页235A-F可包括约1KB的粒度的数据,而3D交叉点扇区245A-F可包括小得多的粒度(例如64字节(被称为扇区))的数据。另外,扇区245A-F也可包含在更大页(即,页242A-B)中。可在SRAM数据高速缓存器224和3D交叉点存储器240之间传送扇区粒度的数据。DRAM数据高速缓存器230可接收数据并且将数据存储于页层级(即,DRAM页245A-F)处。存储于SRAM数据高速缓存器224处的扇区可与来自3D交叉点存储器240的对应页的剩余扇区组合,之后将所述页存储于DRAM数据高速缓存器230中。

存储器子系统控制器115可包含用于高速缓存与最近写入和读存取相关联的数据的SRAM数据高速缓存器224,以及用于存储扇区标记310、页高速缓存标记314和主机存取数据316的额外存储器。另外,存储器子系统控制器115可包含用于确定哪些数据存储于3D交叉点存储器232处以高速缓存于DRAM数据高速缓存器230处的高速缓存组件113。高速缓存组件113可使用主机存取数据316确定哪些数据高速缓存于DRAM数据高速缓存器230处。主机存取数据316可包含扇区和页的存取速率(即,温度),以及最近什么时候存取了数据(就在最近存取了数据)以决定近期存取数据的可能性。SRAM数据高速缓存器224可存储和管理扇区粒度(例如,页的较小部分)的数据并且可跟踪存储于SRAM数据高速缓存器224中的扇区中的每一个的存取的数目、时序和速率。当存取暂时高速缓存于数据SRAM数据高速缓存器224处的数据扇区时,可收集主机存取数据316。当存取DRAM数据高速缓存器230中的页时,也可收集存取数据316。扇区标记310可包含与高速缓存于SRAM数据高速缓存器224中的个别数据扇区相关联的标记和元数据。页标记314可包含与高速缓存于DRAM数据高速缓存器230中的数据页相关联的标记和元数据。举例来说,扇区标记和页标记可包含识别扇区是否有效、脏或从存取扇区起过了多久的数据。此数据可使得高速缓存组件113能够识别在数据脏的情况下是否应将数据写回到3D交叉点存储器240等。

在一个实例中,当在存储器子系统控制器115处接收到读取请求时,主机地址包含在请求中。主机地址的至少一部分可用以确定数据是否高速缓存于SRAM数据高速缓存器224或DRAM数据高速缓存器230处。存储器子系统控制器115可使用高速缓存于SRAM数据高速缓存器224中的扇区的标记计算完整主机地址,以确定数据是否高速缓存于SRAM数据高速缓存器224中。如果数据高速缓存于SRAM数据高速缓存器224中,那么可相应地更新与匹配的扇区标记相关联的元数据(例如,主机存取数据316),并且可将数据返回到主机系统。如果DRAM数据高速缓存器230中存在未命中,那么高速缓存组件113可确定DRAM页235A-F是否应被逐出并且替换为与所请求的扇区相关联的页。如果高速缓存组件113基于主机存取数据316确定所请求的数据和/或与所请求的数据相关联的页具有高存取速率,那么SRAM数据高速缓存器224中的所存取的扇区可与页的剩余扇区一起传送到DRAM数据高速缓存器230。举例来说,如果扇区245A处于SRAM数据高速缓存器224中而非DRAM数据高速缓存器230中,那么可逐出页(例如,DRAM页235A)。所述逐出可基于最近最少使用的页或任何其它逐出算法。高速缓存组件113接着可确定页242A(其中存在扇区245A的页)应复制到DRAM页235A。已经处于SRAM中的扇区245A可与扇区245B和245C(例如,处于写入缓冲器)组合并且接着复制到DRAM数据高速缓存器230中。因此,使用SRAM数据高速缓存器224中的扇区的存取数据与DRAM数据高速缓存器230中的页的存取数据组合,高速缓存组件可确定哪些页高速缓存于DRAM数据高速缓存器230中。

虽然DRAM数据高速缓存器230和3D交叉点存储器240被描绘为具有特定数目的页和扇区,但应注意,DRAM数据高速缓存器230可包含任何数目个页且3D交叉点存储器240可包含任何数目个页和扇区。

图4是根据本公开的一些实施例,将存储于3D交叉点存储器中的数据高速缓存于低存取时延存储器中以减少混合式DIMM的存取时延的实例方法400的流程图。方法400可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,由图1的高速缓存组件113执行方法400。虽然以特定顺序或次序来展示,但是除非另有指定,否则可修改过程的次序。因此,应理解,所说明实施例仅为实例,且所说明过程可以不同次序进行,且一些过程可并行地进行。另外,在各个实施例中可以省略一或多个过程。因此,在每个实施例中并不需要所有过程。其它过程流程也是可能的。

在操作410处,处理装置确定存储于第一存储器组件处的数据页的区段集。第一存储器组件可为低时延、低容量类型的存储器,例如SRAM。SRAM可存储、传送和管理小粒度(小数据大小)的数据。最小粒度可称为数据页的区段、或扇区。

在操作420处,处理装置接收识别与存储于第一存储器组件处的数据页的区段集相关联的主机存取的信息。归因于要跟踪的大量区段和SRAM中的个别扇区的受限寿命,与每一数据区段相关联的元数据可相对较小。然而,与关联于区段的更大页相关联的元数据可包含跟踪页存取的额外元数据。与区段存取相关联的数据可聚合到页层级。因此,识别主机存取的信息可指示存取数据页和/或页区段的频率和时间(最近什么时候)。

在操作430处,处理装置基于识别主机存取的信息,识别将存储于第二存储器组件处的数据页的区段集中的一或多个,其中第二存储器对应于高速缓存存储器。处理装置可使用可确定不久以后最可能再次存取或频繁存取哪些数据的启发法集。指示为可能被存取的数据因此可被识别为应存储于第二存储器组件中的页。第二存储器组件可为低时延存取存储器类型,例如DRAM,其具有大到足以执行为用于更大容量3D交叉点存储器的高速缓存器的容量。DRAM可用以存储最可能被存取的数据页,使得DRAM作为高速缓存器的命中率非常高。

在操作440处,处理装置将数据页的一或多个区段从第一存储器组件复制到第二存储器组件。最后,在操作450处,处理装置将数据页的剩余区段从第三存储器组件复制到第二存储器组件。将包括SRAM的第一存储器组件处的数据的一或多个区段复制到包括DRAM的第二存储器组件可包含从包括3D交叉点存储器的第三存储器组件检索与SRAM处的数据的一或多个区段相关联的数据页的剩余区段,将一或多个区段与其对应的剩余区段(例如,处于写入缓冲器中)组合并且将完整数据页复制到DRAM中。举例来说,当数据页的区段高速缓存于DRAM中时,数据页的区段与从3D交叉点检索的将高速缓存为DRAM中的连续存储器页的数据页的额外区段组合。因此,基于数据页的个别区段的存取,可选择高速缓存于DRAM中的整个数据页。

图5是根据本公开的一些实施例,将存储于3D交叉点存储器组件中的数据高速缓存于混合式DIMM的DRAM存储器组件中的实例方法500的流程图。方法500可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,由图1的高速缓存组件113执行方法500。虽然以特定顺序或次序来展示,但是除非另有指定,否则可修改过程的次序。因此,应理解,所说明实施例仅为实例,且所说明过程可以不同次序进行,且一些过程可并行地进行。另外,在各个实施例中可以省略一或多个过程。因此,在每个实施例中并不需要所有过程。其它过程流程也是可能的。

在操作510处,处理装置识别存储于SRAM高速缓存器中的扇区。SRAM高速缓存器可具有低存储容量,但具有低存取时延和用于依序读取和写入的高带宽。SRAM高速缓存器可接收每一数据存取请求并且暂时高速缓存与所述请求相关联的数据。SRAM可存储和管理扇区粒度(页的较小部分)的数据并且可跟踪对存储于SRAM中的扇区中的每一个的存取的数目、时序和速率。接着,可针对可具有(与扇区标记相比)存储关于页的更多信息的相关联元数据标记的更大页来聚合存取数据。

在操作520处,处理装置识别与存储于SRAM中的扇区相关联的页(例如,位于3D交叉点中的数据页)(例如,所述扇区是其部分的页)。页可为存储于3D交叉点中的在需要时一起分组成可存储于DRAM数据高速缓存器处的更大页的扇区群组。

在操作530处,处理装置识别与页相关联的存取数据。存取数据可为包含在数据页中的扇区中的每一个的经聚合数据。存取数据可包含扇区和页的存取速率(即,温度)、最近什么时候存取了数据(就在最近存取了数据),以及近期存取数据的可能性大小。举例来说,算法可基于存取模式确定某些数据即将被存取的可能性为高且其它数据被存取的可能性为低。

在操作540处,处理装置基于在操作530处识别的存取数据,确定与扇区相关联的数据页是否应复制到DRAM数据高速缓存器。处理装置可使用识别存取可能性的启发式算法选择哪些数据应高速缓存于DRAM中。为使DRAM高速缓存器中的数据的命中率达到最大,未来最可能被存取的数据高速缓存于DRAM中。举例来说,非常热(高存取速率)的数据可有可能很快被再次被存取。因此,非常热的数据可高速缓存于DRAM数据高速缓存器中,使得未来操作可快速存取数据。

在操作550处,处理装置检索来自3D交叉点存储器组件的页的剩余页扇区和存储于SRAM中的扇区。处理装置可将所述剩余扇区和来自SRAM的扇区组合到写入缓冲器中,使得整个页可移动到DRAM数据高速缓存器中。在操作560处,处理装置将包括从3D交叉点和SRAM检索到的数据页扇区的数据页复制到DRAM中。因此,整个数据页可复制到DRAM,使得未来操作可快速存取来自低时延DRAM数据高速缓存器的数据。

图6说明计算机系统600的实例机器,可在其内执行用于使得机器进行本文中所论述的方法中的任何一或多种的指令集。在一些实施例中,计算机系统600可对应于主机系统(例如,图1的主机系统120),其包含、耦合到或利用存储器子系统(例如,图1的存储器子系统110)或可用于进行控制器的操作(例如,以执行操作系统从而进行对应于图1的高速缓存组件113的操作)。在替代性实施例中,机器可连接(例如联网)到LAN、内联网、外联网和/或因特网中的其它机器。机器可作为对等(或分布式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而以客户端-服务器网络环境中的服务器或客户端机器的容量进行操作。

机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂巢式电话、网络器具、服务器、网络路由器、交换机或桥接器,或能够(依序或以其它方式)执行指定将由所述机器采取的动作的一组指令的任何机器。另外,虽然说明单个机器,但还应认为术语“机器”包含机器的任何集合,所述集合单独地或共同地执行一(或多)个指令集以进行本文中所论述的方法中的任何一或多种。

实例计算机系统600包含处理装置602、主存储器604(例如,只读存储器(ROM)、闪存存储器、动态随机存取存储器(DRAM)例如同步DRAM(SDRAM)或RDRAM等)、静态存储器606(例如,闪存存储器、静态随机存取存储器(SRAM)等),以及数据存储系统618,其经由总线630彼此通信。

处理装置602表示一或多个通用处理装置,例如微处理器、中央处理单元等。更特定来说,处理装置可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置602也可以是一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器或类似物。处理装置602被配置成执行指令626以用于执行本文中所论述的操作和步骤。计算机系统600可另外包含网络接口装置608以在网络620上通信。

数据存储系统618可包含机器可读存储媒体624(也称为计算机可读媒体),其上存储有一或多个指令集626或体现本文中所描述的方法或功能中的任一或多种的软件。指令626还可在由计算机系统600执行期间完全或至少部分地驻存在主存储器604内和/或处理装置602内,主存储器604和处理装置602也构成机器可读存储媒体。机器可读存储媒体624、数据存储系统618和/或主存储器604可对应于图1的存储器子系统110。

在一个实施例中,指令626包含用以实施对应于高速缓存组件(例如,图1的高速缓存组件113)的功能性的指令。虽然在实例实施例中机器可读存储媒体624展示为单个媒体,但是应认为术语“机器可读存储媒体”包含存储一或多组指令的单个媒体或多个媒体。术语“机器可读存储媒体”还应被认为包含能够存储或编码供机器执行的指令集合且致使机器执行本公开的方法中的任何一种或多种的任何媒体。术语“机器可读存储媒体”因此应被视为包含但不限于固态存储器、光学媒体和磁性媒体。

已在针对计算机存储器内的数据位的操作的算法和符号表示方面呈现了先前详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用以将其工作的主旨最有效地传达给所属领域的其他技术人员的方式。在本文中,且一般将算法构想为产生所要结果的操作的自洽序列。操作是要求对物理量进行物理操纵的操作。通常(但未必),这些量采用能够存储、组合、比较以及以其它方式操纵的电或磁信号的形式。已经证实,主要出于常用的原因,将这些信号称为位、值、元素、符号、字符、项、编号等等有时是便利的。

然而,应牢记,所有这些和类似术语将与适当物理量相关联,且仅仅为应用于这些量的便利标记。本公开可以指操控和变换计算机系统的寄存器和存储器内的表示为物理(电子)数量的数据为计算机系统存储器或寄存器或其它这类信息存储系统内的类似地表示为物理量的其它数据的计算机系统或类似电子计算装置的动作和过程。

本公开还涉及用于执行本文中的操作的设备。这一设备可以出于所需目的而专门构造,或其可包含通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。这种计算机程序可存储在计算机可读存储媒体中,例如但不限于任何类型的盘,包含软盘、光盘、CD-ROM以及磁性光盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡,或适合于存储电子指令的任何类型的媒体,其各自连接到计算机系统总线。

本文中呈现的算法和显示器在本质上并不与任何特定计算机或其它设备相关。各种通用系统可以与根据本文中的教示的程序一起使用,或可以证明构造用以执行所述方法更加专用的设备是方便的。将如下文描述中所阐述的那样来呈现各种这些系统的结构。另外,未参考任何特定编程语言来描述本公开。应了解,可使用各种编程语言来实施如本文中所描述的本公开的教示内容。

本公开可提供为计算机程序产品或软件,其可包含在其上存储有可用于编程计算机系统(或其它电子装置)以进行根据本公开的过程的指令的机器可读媒体。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机构。在一些实施例中,机器可读(例如计算机可读)媒体包含机器(例如计算机)可读存储媒体,例如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储媒体、光学存储媒体、闪存存储器组件等。

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

20页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:受信赖中间领域

网友询问留言

已有0条留言

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

精彩留言,会给你点赞!

技术分类