用于高速缓存持久二级存储器数据的技术的制作方法

文档序号:16972415发布日期:2019-02-26 18:40阅读:163来源:国知局
用于高速缓存持久二级存储器数据的技术的制作方法

本发明涉及用于高速缓存持久二级存储器数据的技术。



背景技术:

一般地,用来在计算系统中存储数据的存储器可以是易失性的以存储易失性数据或者是非易失性的以存储持久数据。高速缓存在易失性存储器中的易失性数据通常被用作临时数据以便在程序的运行时间期间支持程序的功能。在另一方面,存储在非易失性或持久存储器中的持久数据结构在程序的运行时间之外可用,并且可以跨电力循环而重用。

随着处理器中的计算能力增强,一个关注的问题是持久存储器可以被处理器访问的速度。利用当前的非易失性存储器技术,持久存储器可以是可由处理器直接访问的以便执行写入和读取操作;然而,因为非易失性存储器是远存储器,所以远存储器的延时可能对整个系统性能具有直接的影响。

附图说明

在附图中通过示例的方式并且不通过限制的方式图示了本文中描述的概念。为了简单且清楚地说明,在图中图示的元件不一定按照比例来绘制。在适当考虑的情况下,已经在各图当中重复了参考标记以指示对应或类似的元件。

图1是用于高速缓存持久二级存储器(2lm)数据的计算设备的至少一个实施例的简化框图;

图2是可以由图1的计算设备来建立的环境的至少一个实施例的简化框图;

图3是可以由图1和2的计算设备执行的用于设置对持久2lm数据的高速缓存的方法的至少一个实施例的简化流程图;

图4是可以由图1和2的计算设备执行的用于执行持久2lm数据操作的方法的至少一个实施例的简化流程图;以及

图5是可以由图1和2的计算设备执行的用于系统关闭的方法的至少一个实施例的简化流程图。

具体实施方式

虽然本公开内容的概念可容许各种修改和备选形式,但是已在绘图中通过示例的方式示出了其具体实施例,并且将在本文中详细地描述所述具体实施例。然而,应该理解,不意图将本公开内容的概念限制到所公开的特定形式,而是相反,意图是覆盖与本公开内容以及所附权利要求一致的所有修改、等同物和备选方案。

在说明书中对“一个实施例”、“实施例”、“说明性实施例”等等的参考指示描述的实施例可以包括特定特征、结构或特性,但是每个实施例可能包括或者可能不一定包括该特定特征、结构或特性。此外,此类短语不一定指代相同的实施例。进一步地,当结合实施例来描述特定特征、结构或特性时,认为结合其他实施例来实现此类特征、结构或特性在本领域技术人员的知识之内,无论是否被明确地描述。另外,应该领会到,以“至少一个a、b和c”的形式包括在列表中的项可以意指(a);(b);(c);(a和b);(a和c);(b和c);或(a、b和c)。类似地,以“a、b或c中的至少一个”的形式列出的项可以意指(a);(b);(c);(a和b);(a和c);(b和c);或(a、b和c)。

在一些情况下,可以以硬件、固件、软件或其任何组合来实施公开的实施例。该公开的实施例还可以被实施为由瞬时或非瞬时机器可读(例如计算机可读)存储介质所载送的或在其上所存储的指令,该指令可以由一个或多个处理器来读取和执行。机器可读存储介质可以被体现为用于存储或传送处于可由机器(例如易失性或非易失性存储器、介质盘或其他介质设备)读取的形式的信息的任何存储设备、机构或其他物理结构。

在绘图中,可能以具体布置和/或顺序示出一些结构或方法特征。然而,应该领会到,此类具体布置和/或顺序可能不是需要的。更确切地说,在一些实施例中,可以以不同于在说明性图中示出的方式和/或顺序来布置此类特征。另外,特定图中的结构或方法特征的包括并不意味着暗示在所有实施例中都需要此类特征,并且在一些实施例中可能不包括此类特征或者此类特征可以与其他特征组合。

如在图1中示出的,用于高速缓存持久二级存储器(2lm)数据的说明性计算设备100包括处理器102和被划分成两个级的存储器104。被称为“近存储器”的一个级包括易失性存储器130。被称为“远存储器”的第二级被体现为与近存储器(例如易失性存储器130)相比相对更慢的存储器(例如更低带宽和/或更高延时),并且在该说明性实施例中包括非易失性存储器140。在其他实施例中,该远存储器可以是易失性的。将该远存储器作为主存储器呈现给由处理器102执行的操作系统,而近存储器对操作系统而言是透明的。在操作中,并且如在本文中更详细解释的,该近存储器可以充当对于远存储器的高速缓存,从而向处理器102提供相比于在数据仅存在于远存储器中的情况下将可能的更快的对数据的访问。进一步地,并且如在下面更详细地描述的,在使用中,处理器102被配置成设置对与应用程序122相关联的持久数据的高速缓存,所述应用程序122被映射至非易失性存储器140的持久存储器地址空间。要这样做,处理器102将持久存储器地址空间配置成以持久二级存储器(2lm)模式操作。如在下面进一步描述的,持久2lm模式提供对非易失性存储器140的直接访问以存储和/或加载持久2lm数据并且进一步允许操作系统在不对计算设备100的硬件部件实施任何改变的情况下将对持久存储器地址空间的访问高速缓存在易失性存储器130中。

该处理器102可以被体现为能够执行本文中描述的功能的任何类型的处理器。例如,该处理器102可以被体现为(一个或多个)单核或多核处理器、数字信号处理器、现场可编程门阵列(fpga)、微控制器或其他处理器或处理/控制电路。类似地,该存储器104可以被体现为能够执行本文中描述的功能的任何类型的易失性和/或非易失性存储器或数据存储装置。在一些实施例中,该处理器102和存储器104可以形成片上系统(soc)的一部分,并且连同计算设备100的其他部件一起合并到单个集成电路芯片上。

该存储器104经由i/o子系统106通信耦合至处理器102,该i/o子系统106可以被体现为用来促进与处理器102、存储器104和计算设备100的其他部件的输入/输出操作的电路系统和/或部件。例如,该i/o子系统106可以被体现为或者另外包括存储器控制器集线器、输入/输出控制集线器、固件设备、通信链路(即点对点链路、总线链路、导线、电缆、光导、印刷电路板迹线等等)和/或用来促进输入/输出操作的其他部件和子系统。在一些实施例中,该i/o子系统106可以形成片上系统(soc)的一部分,并且连同处理器102、存储器104和计算设备100的其他部件一起合并在单个集成电路芯片上。

该内部存储器控制器120可以被体现为能够将数据写入存储器104中、读取存储器104中的数据、定位存储器104中的数据并且替换存储器104中的数据的任何类型的控制设备、电路系统或硬件设备的集合。在该说明性实施例中,该内部存储器控制器120被配置成控制对易失性存储器130和非易失性存储器140的存储器访问。要这样做,该内部存储器控制器120可以通过在针对存储器地址空间的不同操作模式之间进行转换来控制处理器102的源地址解码器和目标地址解码器。应该领会到,存储器地址空间是一组离散的逻辑地址,它们中的每一个都可以对应于易失性存储器130和/或非易失性存储器140中的不同物理存储器地址。通过为逻辑地址配置操作模式,该内部存储器控制器120可以控制对一个或多个易失性和非易失性存储器设备132、142的存储器访问并且实现对持久2lm数据(例如在易失性存储器130中)的高速缓存,所述持久2lm数据通常将仅被存储在非易失性存储器140中并且被从非易失性存储器140访问。

该存储器104可以被体现为能够存储数据的任何类型的数据存储装置。在该说明性实施例中,该存储器104包括由易失性存储器控制器134控制的易失性存储器130和由非易失性存储器控制器144控制的非易失性存储器140。应该领会到,易失性存储器控制器134和非易失性存储器控制器144被配置成与内部存储器控制器120通信。例如,易失性存储器控制器134被配置成接收应用程序数据指令用来执行并且将应用程序数据高速缓存在易失性存储器130中。在另一方面,该非易失性存储器控制器134被配置成接收应用程序数据指令用来执行并且将应用程序数据存储在非易失性存储器140中。在一些实施例中,该vm控制器134和/或nvm控制器144可以形成计算设备100的其他部件(诸如i/o子系统106)的部分。

该易失性存储器130可以被体现为在向易失性存储器130供应电力时能够存储数据的任何类型的数据存储装置。例如,在该说明性实施例中,该易失性存储器130被体现为一个或多个易失性存储器设备132并且在其他实施例中易失性存储器130可以被体现为其他类型的非持久数据存储装置的理解的情况下在下文被定期称为易失性存储器130。易失性存储器130的易失性存储器设备可以被体现为需要电力来维持被介质存储的数据的状态的任何存储介质。易失性存储器的非限制性示例可以包括各种类型的随机存取存储器(ram),诸如动态随机存取存储器(dram)或静态随机存取存储器(sram)。可以在存储器模块中使用的一种特定类型的dram是同步动态随机存取存储器(sdram)。在特定实施例中,存储器部件的dram可以遵从由jedec颁布的标准,诸如针对ddrsdram的jesd79f、针对ddr2sdram的jesd79-2f、针对ddr3sdram的jesd79-3f、针对ddr4sdram的jesd79-4a、针对低功率ddr(lpddr)的jesd209、针对lpddr2的jesd209-2、针对lpddr3的jesd209-3、以及针对lpddr4的jesd209-4(可在www.jedec.org得到这些标准)。此类标准(以及类似标准)可以被称为基于ddr的标准并且实施此类标准的存储设备的通信接口可以被称为基于ddr的接口。

该非易失性存储器140可以被体现为即使中断至非易失性存储器140的电力也能够以持久方式存储数据的任何类型的数据存储装置。例如,在该说明性实施例中,该非易失性存储器140被体现为一个或多个非易失性存储器设备142。该非易失性存储器设备142被说明性地体现为字节可寻址或块可寻址的就地写入(write-in-place)非易失性存储器设备。在一些实施例中,该非易失性存储器设备142可以按级别来布置。应该领会到,每个级别中的非易失性存储器设备142都连接至相同的通信信道。

每个非易失性存储器设备142可以被体现为块可寻址存储器设备,诸如基于nand或者nor技术的那些。非易失性存储器设备142还可以包括未来世代的非易失性设备,诸如三维交叉点存储器设备,或其他字节可寻址就地写入非易失性存储器设备。在一个实施例中,非易失性存储器设备142可以是或者可以包括存储器设备,其使用硫族化物玻璃、多阈值级nand闪速存储器、nor闪速存储器、单级或多级相变存储器(pcm)、电阻式存储器、纳米线存储器、铁电晶体管随机存取存储器(fetram)、反铁电存储器、合并忆阻器技术的磁阻式随机存取存储器(mram)存储器、包括金属氧化物基、氧空位基和导电桥随机存取存储器(cb-ram)的电阻式存储器、或自旋转移力矩(stt)-mram、基于自旋磁结存储器的设备、基于磁隧穿结(mtj)的设备、基于dw(畴壁)和sot(自旋轨道转移)的设备、基于晶闸管的存储器设备、或上面的任何的组合、或其他存储器。该存储器设备可以指代管芯自身和/或封装的存储器产品。在一些实施例中,3d交叉点存储器可以包括无晶体管可堆叠交叉点架构,在其中存储器单元位于字线和位线的交叉点处并且可单独寻址并且在其中位存储基于体电阻中的改变。

该数据存储设备108可以被体现为被配置用于短期或长期数据存储的一种或多种任何类型的设备,诸如例如存储器设备和电路、存储器卡、硬盘驱动器、固态驱动器或其他数据存储设备。该数据存储设备108可以被合并在计算设备100的一个或多个其他部件中或形成其一部分。例如,该数据存储设备108可以被体现为主存储器104,或者另外被包括在主存储器104中。另外或备选地,该数据存储设备108可以被体现为计算设备100的固态驱动器或者另外包括在该固态驱动器中。进一步地,在一些实施例中,该数据存储设备108可以被体现为计算设备100的硬盘驱动器或者另外包括在该硬盘驱动器中。当然,在其他实施例中,该数据存储设备108可以被包括在计算设备100的其他部件中或者形成所述其他部件的一部分。

该外围设备110可以包括任何数目的输入/输出设备、用户接口设备和/或外部连接的外围设备。例如,在一些实施例中,该外围设备110可以包括显示器、触摸屏、图形电路系统、小键盘、键盘、鼠标、扬声器系统和/或其他输入/输出设备、接口设备、和/或外围设备。另外或备选地,该外围设备110可以包括一个或多个端口(诸如usb端口),例如用于将外部外围设备连接至计算设备100。

现在参考图2,在使用中,该计算设备100可以建立环境200。该说明性环境200包括模式确定器210、存储器映射器220、接口管理器230、和命令发布器240。该存储器映射器220进一步包括地址分配器222和地址解码器224。进一步地,该命令发布器240包括数据读取器242和数据写入器244。另外,该说明性环境200包括存储器映射250、高速缓存的数据260和持久2lm数据270。环境200的部件中的每一个都可以被体现为固件、软件、硬件或其组合。例如,环境200的逻辑和其他部件可以形成计算设备100或计算设备100的其他硬件部件的一部分或者另外由计算设备100或计算设备100的其他硬件部件建立。照此,在一些实施例中,环境200的部件中的任何一个或多个可以被体现为电路或电气设备(例如存储器模式确定器电路210、存储器映射器电路220、接口管理器电路230、命令发布器电路240等等)的集合。

该模式确定器210,其可以被体现为如上面描述的硬件、固件、软件、虚拟化硬件、仿真架构和/或其组合,被配置成确定针对存储器地址空间内的存储器地址的不同可配置操作模式。如上面描述的,该存储器地址空间包括对应于易失性存储器130和/或非易失性存储器140中的物理地址的一组逻辑地址。通过为每个逻辑存储器地址或其范围配置操作模式,模式确定器210可以控制对易失性和非易失性存储器设备132、142中的一个或多个的存储器访问。例如,在该说明性实施例中,该操作模式包括高速缓存模式、非高速缓存存储器模式和持久2lm模式,从而在向操作系统和其他软件呈现的主存储器地址空间内导致不同类型的存储器地址空间,包括易失性存储器地址空间、非易失性存储器地址空间和持久存储器地址空间。通常,该易失性存储器地址空间被配置成以高速缓存模式来操作,非易失性存储器地址空间被配置成以非高速缓存存储器模式来操作,并且持久存储器地址空间通常被配置成以非高速缓存存储器模式来操作。然而,在该说明性实施例中,该持久存储器地址空间被配置成以持久2lm模式来操作,其在下面被详细描述。应该领会到,其他实施例可以提供其他操作模式,其在主存储器地址空间内导致其他类型的存储器地址空间。

在使用中,当内部存储器控制器120从映射至存储器地址空间的应用程序122接收数据指令(例如写入或读取)时,该内部存储器控制器120可以基于针对存储器地址空间的操作模式来确定访问哪个存储器(即易失性存储器130或非易失性存储器140)来执行数据指令。例如,如果将所请求的数据指令的存储器地址映射至可在高速缓存模式下操作的易失性存储器地址空间,则将所请求的数据指令指引至易失性存储器130以用于执行。然而,如果将所请求的数据指令的存储器地址映射至可在非高速缓存存储器模式下操作的非易失性存储器地址空间,则使所请求的数据指令绕过易失性存储器130并且被指引至非易失性存储器140以用于执行。备选地,如果将所请求的数据指令的存储器地址映射至可在持久2lm模式下操作的持久存储器地址空间,则将所请求的数据指令指引至易失性存储器130和/或非易失性存储器140以用于执行,如下面详细描述的那样。

该存储器映射器220,其可以被体现为如上面描述的硬件、固件、软件、虚拟化硬件、仿真架构和/或其组合,被配置成生成存储器映射250,其包括主存储器地址空间内的存储器地址空间以及对应的操作模式。如下面描述的,在该说明性实施例中,该存储器映射250被用来确定从应用程序接收的应用程序数据指令是否需要应用程序数据在执行之后是持久的。例如,该存储器映射250可以指示应用程序数据指令被映射至的存储器地址被配置成是以高速缓存模式、非高速缓存存储器模式还是持久2lm模式操作。要这样做,该存储器映射器220包括地址分配器222和地址解码器224。

在该说明性实施例中,地址分配器222被配置成设置用来将邻接的逻辑存储器地址映射至跨多个存储器设备(例如多个易失性存储器设备132或多个非易失性存储器设备142)分配的物理地址的地址交织。例如,第一逻辑存储器地址可以映射至易失性存储器设备132中的一个中的第一物理存储器地址,并且第二逻辑存储器地址可以映射至易失性存储器设备132中的第二个中的第二物理存储器地址,依此类推。

该地址解码器224被配置成将存储器地址空间的存储器模式变成不同的存储器模式,以使得在不对计算设备100的硬件部件实施任何改变的情况下,操作系统可以按另一存储器模式来使用被配置成在一个存储器模式下操作的存储器地址空间。例如,在该说明性实施例中,该地址解码器224允许处理器102和软件按高速缓存的易失性存储器来使用被配置成在持久2lm模式下操作的存储器地址空间,以使得存储器访问被高速缓存在易失性存储器130中的持久存储器地址空间中。

在使用中,当内部存储器控制器120从应用程序122接收数据请求时,该存储器映射器220确定应用程序数据指令被映射至的存储器地址空间,并且进一步确定哪个存储器模式对应于所确定的存储器地址空间。例如,如果存储器映射器220确定将与所请求的数据指令相关联的逻辑地址映射至被配置成以高速缓存模式来操作的存储器地址空间,则内部存储器控制器120将所请求的数据指令转发至易失性存储器控制器134以访问易失性存储器130的对应物理地址以便执行所请求的数据指令(即将数据写入到易失性存储器130或从易失性存储器130读取数据)以用于执行。

然而,如果该存储器映射器220确定将所请求的数据指令映射至被配置成以非高速缓存存储器模式来操作的存储器地址空间,则该内部存储器控制器120将所请求的数据指令转发至非易失性存储器控制器144以访问非易失性存储器140的对应物理存储器地址以便执行所请求的数据指令(即将数据写入到非易失性存储器140或从非易失性存储器140读取数据)。

备选地,如果该存储器映射器220确定将所请求的数据指令映射至被配置成以持久2lm模式来操作的存储器地址空间,则该内部存储器控制器120可以将所请求的数据指令转发至非易失性存储器控制器144和易失性存储器控制器134。照此,可以在易失性和非易失性存储器130、140中执行所请求的数据指令(即将持久数据写入到易失性和非易失性存储器130、140或从易失性和非易失性存储器130、140读取持久数据),这在下面被详细描述。

接口管理器230被配置成处理各种指令,包括但不限于从主机(其可以被体现为应用程序、服务和/或其他设备)接收的数据存储指令和数据读取指令。在一些实施例中,该接口管理器230可以被配置成还处理其他指令,包括自我监控、分析和报告技术(“smart”)指令,以及在非易失性存储器接口(“nvme”)规范中限定的其他指令。nvme是用于访问经由外围部件互连接口(pcie)总线附接的非易失性存储介质的逻辑设备接口。该非易失性存储介质可以包括闪速存储器和固态驱动器(ssd)。应该领会到,nvme被设计成访问计算机系统(包括个人和企业计算机系统)中的低延时存储设备,并且还被部署在需要按比例缩放数千个低延时存储设备的数据中心中。为了处理各种指令,该接口管理器230被配置成识别所接收的指令以及与该指令相关联的任何数据和/或参数,并且将那些项传送至模式确定器210。例如,响应于读取指令,该接口管理器230将被数据管理器230读取的数据传送至主机。

该命令发布器240,其可以被体现为硬件、固件、软件、虚拟化硬件、仿真架构和/或其组合,被配置成管理从易失性存储器130的易失性存储器设备132和/或非易失性存储器140的非易失性存储器设备142的数据读取以及至易失性存储器130的易失性存储器设备132和/或非易失性存储器140的非易失性存储器设备142的数据写入。要这样做,该命令发布器240包括数据读取器242和数据写入器244。

该数据读取器242被配置成响应于应用程序读取指令从(一个或多个)易失性存储器设备132和/或(一个或多个)非易失性存储器设备142读取数据。如上面描述的,是访问易失性存储器130还是访问非易失性存储器140取决于所请求的应用程序读取指令的存储器地址。

该数据写入器244被配置成响应于应用程序写入指令将数据写入至(一个或多个)易失性存储器设备132和/或(一个或多个)非易失性存储器设备142。如上面描述的,是访问易失性存储器130还是访问非易失性存储器140取决于所请求的应用程序写入指令的存储器地址。

另外,该说明性环境200包括存储器映射数据250、高速缓存数据260和持久2lm数据270。该存储器映射数据250可以被体现为指示包括(一个或多个)存储器地址空间和(一个或多个)对应操作模式的一个或多个存储器映射的任何数据。可以由计算设备100的模块和/或子模块来访问该存储器映射250。

该高速缓存数据260可以被体现为由应用程序数据指令的执行产生的且存储在易失性存储器130中的任何高速缓存数据。例如,如上面描述的,应用程序数据指令,其被映射至可在高速缓存模式和/或持久2lm模式下操作的存储器地址空间,被执行并且高速缓存在易失性存储器130中。

该持久2lm数据270可以被体现为由持久2lm数据指令的执行产生且在执行时存储在非易失性存储器140中的任何数据。例如,如上面描述的,应用程序数据指令,其被映射至可在持久2lm模式下操作的存储器地址空间,被执行并且存储在非易失性存储器140中。

现在参考图3,在使用中,处理器102可以执行方法300,其用于配置由计算设备100执行的操作系统以将对持久存储器地址空间的访问高速缓存在易失性存储器130中。该方法300在框302处开始,在框302中处理器102确定是否通过配置针对对应存储器地址空间的操作模式来为将是持久的应用程序数据设置高速缓存。在一些实施例中,处理器102基于应用程序的类型和/或应用程序数据的类型来确定是否为持久2lm数据设置高速缓存。如果处理器102确定不为持久2lm数据设置高速缓存,则该方法300循环回到框302以继续确定是否为持久2lm数据设置高速缓存。

然而,如果处理器102确定为持久2lm数据设置高速缓存,则方法300前进至框304。在框304中,处理器102确定用于持久数据的存储的非易失性存储器地址空间内的持久存储器地址空间,并且进一步确定被配置成包含持久存储器地址空间的一个或多个对应非易失性存储器设备。换言之,该处理器102确定被配置成包含持久2lm数据的一个或多个非易失性存储器设备。

在框306中,处理器102将(一个或多个)所确定的非易失性存储器设备的所确定的持久存储器地址空间配置成以持久2lm模式来操作。在一些实施例中,在框308中该处理器102可以设置地址交织以跨多个非易失性存储器设备142分派存储器地址空间的存储器地址。备选地,该处理器102可以更新现有的地址交织以进一步跨多个非易失性存储器设备142分派持久存储器地址空间的存储器地址。

另外或备选地,在一些实施例中,在框310中,该处理器102可以为每个存储器地址生成包括存储器地址以及对应的操作模式的地址映射。备选地,该处理器102可以更新现有的地址映射以便更新现在被配置成以持久2lm模式操作的那些存储器地址。例如,如上面描述的,该地址映射可以指示包括在应用程序数据指令中的存储器地址被配置成是以高速缓存模式、非高速缓存存储器模式还是持久2lm模式来操作。如上面描述的,一般地将包括映射至非易失性存储器地址空间的存储器地址的应用程序数据指令指引至非易失性存储器140用于执行和持久存储。另一方面,将包括映射至持久存储器地址空间的存储器地址的应用程序数据指令既被指引至非易失性存储器140用于持久存储又被指引至易失性存储器130用于高速缓存持久2lm数据。

另外或备选地,在一些实施例中,该处理器102可以设置至少一个块窗口,其限定用于访问可存储在(一个或多个)非易失性存储器设备142内的持久2lm数据的一个或多个块的至少一个地址范围。

在框312中,该处理器102和软件被配置成将对持久存储器地址空间的访问高速缓存在易失性存储器130中。换言之,该处理器102被配置成将持久2lm数据高速缓存在易失性存储器130中,同时在非易失性存储器140中依据持久2lm模式来处理持久2lm数据。要这样做,在框314中,处理器102被配置成将持久2lm数据高速缓存在易失性存储器130中。在一些实施例中,在框316中,处理器102的内部存储器控制器102可以配置一个或多个地址解码器以改变存储器地址的操作模式。例如,该地址解码器可以将持久存储器地址空间的持久2lm模式转换成高速缓存存储器模式。

在框318中,该处理器102进一步向操作系统报告作为易失性区的持久存储器地址空间,以使得执行映射至持久存储器地址空间的应用程序指令并且将对应的数据高速缓存在易失性存储器130中。

在框320中,该处理器102跟踪持久存储器地址空间和高速缓存的易失性存储器地址空间。该处理器102被配置成生成持久存储器地址空间和易失性存储器地址空间的存储器管理映射以跟踪持久2lm数据。在框322中,该处理器102更新存储器管理映射。

现在参考图4,在使用中,该计算设备100的处理器102可以执行用于执行持久2lm数据指令的方法400。该方法400在框402处开始,在框402中处理器102确定是否已经接收到数据操作请求。如果处理器102确定还没有接收到数据操作请求,则该方法400循环回到框402以继续监控应用程序数据操作请求。然而,如果处理器102确定已经接收到数据操作请求,则方法400前进至框404。

在框404中,该内部存储器控制器120确定接收到的数据操作请求的存储器地址是否被映射至易失性存储器地址空间。如果该处理器102确定将数据操作请求映射至易失性存储器地址空间,则该方法400前进至框406,在框406中处理器102执行数据操作请求并且基于地址映射将所请求的数据高速缓存在易失性存储器130的对应易失性存储器设备132中。

然而,如果处理器102确定不将数据操作请求映射至易失性存储器地址空间,则方法400前进至框408。在框408中,该处理器102确定所请求的数据是否是持久2lm数据。要这样做,在框410中,该处理器102基于地址映射确定是否将所请求的数据的存储器地址映射至非易失性存储器设备142的持久存储器地址空间。

如果在框412中该处理器102确定所请求的数据不是持久2lm数据(例如不将所请求的数据的存储器地址映射至持久存储器地址空间),则方法400前进至框414。在框414中,处理器102执行数据操作请求并且将所请求的数据存储在非易失性存储器140的对应非易失性存储器设备142中。

然而,如果在框412中处理器102确定所请求的数据是持久2lm数据,则方法400前进至框416。在框416中,该处理器102执行接收的数据操作请求。要这样做,在框418中,该处理器102的内部存储器控制器120将数据操作请求指引至易失性存储器控制器134以执行数据操作请求并且将持久2lm数据高速缓存在易失性存储器130的对应易失性存储器设备132中。

另外,在框420中,该处理器102的内部存储器控制器120将数据操作请求指引至非易失性存储器控制器144以执行数据操作请求并且将持久2lm数据存储在非易失性存储器140的对应非易失性存储器设备142中。例如,在框422中,该非易失性存储器控制器144可以响应于来自应用程序的写入数据指令的接收而将高速缓存在易失性存储器130中的持久2lm数据写入至非易失性存储器140的非易失性存储器设备142的对应地址。

备选地,在框422中,该非易失性存储器控制器144可以响应于来自应用程序的读取数据指令的接收而从非易失性存储器140的非易失性存储器设备142的对应地址读取持久2lm数据。

在一些实施例中,在易失性存储器130溢出的情况下,可以将存储在易失性存储器130中的持久2lm数据写入至非易失性存储器140。在其他实施例中,如果在易失性存储器130中没有发现持久2lm数据,则可以从非易失性存储器140读取所请求的持久2lm数据。

在一些实施例中,可以响应于关闭信号的接收而将持久2lm数据从易失性存储器130提交给非易失性存储器140,这在图5中被详细描述。另外或备选地,可以定期将持久2lm数据从易失性存储器130提交给非易失性存储器140。

现在参考图5,在使用中,该计算设备100的处理器102可以执行方法500,其用于将高速缓存在易失性存储器130中的持久2lm数据270冲刷至非易失性存储器140。该方法500在框502处开始,在框502中处理器102确定是否已经接收到系统关闭请求。如果处理器102确定还没有接收到系统关闭请求,则该方法500循环回到框502以继续监控系统关闭请求。然而,如果处理器102确定已经接收到系统关闭请求,则该方法500前进至框504。

在框504中,该处理器102在关闭系统之前发布回写和冲刷操作请求。在框506中,响应于回写和冲刷操作请求的接收,该处理器102将存储在易失性存储器130中的持久2lm数据270冲刷至非易失性存储器140。要这样做,在一些实施例中,如在框508中指示的,该处理器102可以在关闭请求之前使接收到的任何以及所有排队的数据指令序列化并且执行所述指令。一旦耗尽了队列中的指令,该处理器102就可以在框510中读取易失性存储器地址来将持久存储器地址空间的所有经过修改的高速缓存数据冲刷至非易失性存储器140。一旦将高速缓存在易失性存储器130中的持久2lm数据270存储在非易失性存储器140中,该方法500就前进至框512以关闭系统。

对存储器设备的参考可以应用于不同的存储器类型,并且特别是具有存储库群组(bankgroup)架构的任何存储器。存储器设备通常指代易失性存储器技术。易失性存储器是如果至设备的电力被中断则其状态(以及因此存储在其上的数据)为不确定的存储器。非易失性存储器指代即使至设备的电力被中断其状态也为确定的存储器。动态易失性存储器需要刷新存储在设备中的数据以维持状态。动态易失性存储器的一个示例包括dram(动态随机存取存储器),或者一些变体,诸如同步dram(sdram)。如在本文中描述的存储器子系统可以与许多存储器技术和基于此类规范的派生物或扩展的技术兼容,该存储器技术诸如ddr4(ddr版本4,由jedec在2012年9月公开的初始规范)、ddr4e(处于由jedec的开发中)、lpddr4(低功耗双倍数据速率(lpddr)版本4、jesd209-4,最初由jedec在2014年8月公开)、wio2(宽i/o2(wideio2)、jesd229-2,最初由jedec在2014年8月公开)、hbm(高带宽存储器dram、jesd235,最初由jedec在2013年10月公开)、ddr5(ddr版本5,当前处于jedec的讨论中)、lpddr5(当前处于jedec的讨论中)、hbm2(hbm版本2),当前处于jedec的讨论中)等等。

除了易失性存储器之外或者作为对易失性存储器的备选方案,在一个实施例中,对存储器设备的参考可以指代即使至设备的电力被中断其状态也为确定的非易失性存储器设备。

本申请提供了如下技术方案:

1.一种或多种机器可读存储介质,其包括存储在其上的多个指令,该多个指令当由计算设备执行时促使该计算设备进行以下各项:

确定用于持久2lm数据的持久存储器地址空间以及持久存储器地址空间被映射至的一个或多个非易失性存储器设备,其中每个非易失性存储器设备都包含持久2lm数据;

将非易失性存储器设备的持久存储器地址空间配置成以持久二级存储器(2lm)模式操作,在该持久二级存储器(2lm)模式中,写入至持久存储器地址空间的应用程序数据可跨电力循环而重用;以及

将操作系统配置成将对持久存储器地址空间的访问高速缓存在易失性存储器中。

2.根据技术方案1所述的一种或多种机器可读存储介质,其中将操作系统配置成将对持久存储器地址空间的访问高速缓存在易失性存储器中包括将地址解码器配置成从针对持久存储器地址空间的第一操作模式转换到针对持久存储器地址空间的第二操作模式。

3.根据技术方案2所述的一种或多种机器可读存储介质,其中该第一操作模式是用于将持久2lm数据存储在非易失性存储器中的持久2lm模式,并且该第二操作模式是用于将持久2lm数据高速缓存在易失性存储器设备中的一个或多个中的高速缓存模式。

4.根据技术方案1所述的一种或多种机器可读存储介质,其中该多个指令当被执行时进一步促使该计算设备进行以下各项:

接收用于写入应用程序数据的写入数据指令;

确定写入数据指令是否需要应用程序数据为持久的;

响应于确定应用程序数据为持久的而对写入数据指令的存储器地址执行写入数据指令;

将持久2lm数据高速缓存在对应易失性存储器中;以及

将持久2lm数据存储在对应非易失性存储器设备中。

5.根据技术方案4所述的一种或多种机器可读存储介质,其中确定是否需要应用程序数据为持久的包括确定是否将写入数据指令的存储器地址映射至被配置成以持久2lm模式操作的持久存储器地址空间。

6.根据技术方案4所述的一种或多种机器可读存储介质,其中将应用程序数据存储在非易失性存储器设备中包括将经过修改且高速缓存在易失性存储器设备中的应用程序数据存储至非易失性存储器设备。

7.根据技术方案1所述的一种或多种机器可读存储介质,其中该多个指令当被执行时进一步促使该计算设备进行以下各项:

接收用于读取应用程序数据的读取数据指令;

确定读取数据指令是否需要应用程序数据为持久的;

响应于确定需要应用程序数据为持久的而对读取数据指令的存储器地址执行读取数据指令;以及

将应用程序数据高速缓存在对应易失性存储器设备中。

8.根据技术方案1所述的一种或多种机器可读存储介质,其中确定持久存储器地址空间被映射至的一个或多个非易失性存储器设备包括确定持久存储器地址空间被映射至的一个或多个非易失性就地写入字节可寻址存储器设备。

9.根据技术方案1所述的一种或多种机器可读存储介质,其中该多个指令当被执行时进一步促使该计算设备设置跨一个或多个非易失性存储器设备的多个非邻接物理地址来映射邻接逻辑存储器地址的地址交织。

10.根据技术方案1所述的一种或多种机器可读存储介质,其中该多个指令当被执行时进一步促使该计算设备检测系统关闭请求,并且响应于检测到系统关闭请求而将应用程序数据从一个或多个易失性存储器设备写入至一个或多个非易失性存储器设备。

11.根据技术方案1所述的一种或多种机器可读存储介质,其中该多个指令当被执行时进一步促使该计算设备响应于检测到系统关闭请求而使队列中的数据指令序列化并且执行该数据指令。

示例。

下面提供本文中公开的技术的说明性示例。该技术的实施例可以包括下面描述的示例中的任何一个或多个以及所述示例的任何组合。

示例1包括一种用于高速缓存持久二级存储器(2lm)数据的计算设备,该计算设备包括:存储器,其包括一个或多个易失性存储器设备和一个或多个非易失性存储器设备;以及处理器,其用来进行以下各项:确定用于持久2lm数据的持久存储器地址空间以及持久存储器地址空间被映射至的一个或多个非易失性存储器设备,其中每个非易失性存储器设备都包含持久2lm数据;将非易失性存储器设备的持久存储器地址空间配置成以持久二级存储器(2lm)模式来操作,在该持久二级存储器(2lm)模式中,写入至持久存储器地址空间的应用程序数据可跨电力循环而重用;以及将操作系统配置成将对持久存储器地址空间的访问高速缓存在易失性存储器中。

示例2包括示例1的主题,并且其中将操作系统配置成将对持久存储器地址空间的访问高速缓存在易失性存储器中包括将地址解码器配置成从针对持久存储器地址空间的第一操作模式转换到针对持久存储器地址空间的第二操作模式。

示例3包括示例1和2中的任一个的主题,并且其中该第一操作模式是用于将持久2lm数据存储在非易失性存储器中的持久2lm模式,并且该第二操作模式是用于将持久2lm数据高速缓存在易失性存储器设备中的一个或多个中的高速缓存模式。

示例4包括示例1-3中的任一个的主题,并且其中该处理器进一步进行以下各项:接收用于写入应用程序数据的写入数据指令;确定写入数据指令是否需要应用程序数据为持久的;响应于确定应用程序数据为持久的而对写入数据指令的存储器地址执行写入数据指令;将持久2lm数据高速缓存在对应易失性存储器中;以及将持久2lm数据存储在对应非易失性存储器设备中。

示例5包括示例1-4中的任一个的主题,并且其中确定是否需要应用程序数据为持久的包括确定是否将写入数据指令的存储器地址映射至被配置成以持久2lm模式操作的持久存储器地址空间。

示例6包括示例1-5中的任一个的主题,并且其中将应用程序数据存储在非易失性存储器设备中包括将经过修改且高速缓存在易失性存储器设备中的应用程序数据存储至非易失性存储器设备。

示例7包括示例1-6中的任一个的主题,并且其中该处理器进一步进行以下各项:接收用于读取应用程序数据的读取数据指令;确定读取数据指令是否需要应用程序数据为持久的;响应于确定需要应用程序数据为持久的而对读取数据指令的存储器地址执行读取数据指令;以及将应用程序数据高速缓存在对应易失性存储器设备中。

示例8包括示例1-7中的任一个的主题,并且其中确定持久存储器地址空间被映射至的一个或多个非易失性存储器设备包括确定持久存储器地址空间被映射至的一个或多个非易失性就地写入字节可寻址存储器设备。

示例9包括示例1-8中的任一个的主题,并且其中该处理器进一步设置跨一个或多个非易失性存储器设备的多个非邻接物理地址来映射邻接逻辑存储器地址的地址交织。

示例10包括示例1-9中的任一个的主题,并且其中该处理器进一步检测系统关闭请求,并且响应于检测到系统关闭请求而将应用程序数据从一个或多个易失性存储器设备写入至一个或多个非易失性存储器设备。

示例11包括示例1-10中的任一个的主题,并且其中该处理器进一步响应于检测到系统关闭请求而使队列中的数据指令序列化并且执行该数据指令。

示例12包括一种用于高速缓存持久二级存储器(2lm)数据的方法,其包括:由计算设备确定用于持久2lm数据的持久存储器地址空间以及持久存储器地址空间被映射至的一个或多个非易失性存储器设备,其中每个非易失性存储器设备都包含持久2lm数据;由计算设备将非易失性存储器设备的持久存储器地址空间配置成以持久二级存储器(2lm)模式来操作,在该持久二级存储器(2lm)模式中,写入至持久存储器地址空间的应用程序数据可跨电力循环而重用;以及由计算设备将操作系统配置成将对持久存储器地址空间的访问高速缓存在易失性存储器中。

示例13包括示例12的主题,并且其中将操作系统配置成将对持久存储器地址空间的访问高速缓存在易失性存储器中包括将地址解码器配置成从针对持久存储器地址空间的第一操作模式转换到针对持久存储器地址空间的第二操作模式。

示例14包括示例12和13中的任一个的主题,并且其中该第一操作模式是用于将持久2lm数据存储在非易失性存储器中的持久2lm模式,并且该第二操作模式是用于将持久2lm数据高速缓存在易失性存储器设备中的一个或多个中的高速缓存模式。

15.示例12的方法进一步包括:由计算设备接收用于写入应用程序数据的写入数据指令;由计算设备确定写入数据指令是否需要应用程序数据为持久的;由计算设备并且响应于确定应用程序数据为持久的而对写入数据指令的存储器地址执行写入数据指令;由计算设备将持久2lm数据高速缓存在对应易失性存储器中;以及由计算设备将持久2lm数据存储在对应非易失性存储器设备中。

示例16包括示例12-15中的任一个的主题,并且其中确定是否需要应用程序数据为持久的包括确定是否将写入数据指令的存储器地址映射至被配置成以持久2lm模式操作的持久存储器地址空间。

示例17包括示例12-16中的任一个的主题,并且其中将应用程序数据存储在非易失性存储器设备中包括将经过修改且高速缓存在易失性存储器设备中的应用程序数据存储至非易失性存储器设备。

示例18包括示例12-17中的任一个的主题,并且进一步包括:由计算设备接收用于读取应用程序数据的读取数据指令;由计算设备确定读取数据指令是否需要应用程序数据为持久的;由计算设备并且响应于确定需要应用程序数据为持久的而对读取数据指令的存储器地址执行读取数据指令;以及由计算设备将应用程序数据高速缓存在对应易失性存储器设备中。

示例19包括示例12-18中的任一个的主题,并且其中确定持久存储器地址空间被映射至的一个或多个非易失性存储器设备包括确定持久存储器地址空间被映射至的一个或多个非易失性就地写入字节可寻址存储器设备。

示例20包括示例12-19中的任一个的主题,并且进一步包括设置跨一个或多个非易失性存储器设备的多个非邻接物理地址来映射邻接逻辑存储器地址的地址交织。

示例21包括示例12-20中的任一个的主题,并且进一步包括检测系统关闭请求,并且响应于检测到系统关闭请求而将应用程序数据从一个或多个易失性存储器设备写入至一个或多个非易失性存储器设备。

示例22包括示例12-21中的任一个的主题,并且进一步包括响应于检测到系统关闭请求而使队列中的数据指令序列化并且执行该数据指令。

示例23包括一种或多种机器可读存储介质,其包括存储在其上的多个指令,该多个指令当由处理器执行时促使该处理器执行示例12-22中的任一个的方法。

示例24包括一种用于高速缓存持久二级存储器(2lm)数据的计算设备,该计算设备包括一个或多个处理器;在其中存储有多个指令的一个或多个存储器设备,该多个指令当由一个或多个处理器执行时促使该计算设备执行示例12-22中的任一个的方法。

示例25包括一种计算设备,其包括:用于确定用于持久2lm数据的持久存储器地址空间以及持久存储器地址空间被映射至的一个或多个非易失性存储器设备的装置,其中每个非易失性存储器设备都包含持久2lm数据;用于将非易失性存储器设备的持久存储器地址空间配置成以持久二级存储器(2lm)模式来操作的装置,在该持久二级存储器(2lm)模式中,写入至持久存储器地址空间的应用程序数据可跨电力循环而重用;以及用于将操作系统配置成将对持久存储器地址空间的访问高速缓存在易失性存储器中的装置。

示例26包括示例25的主题,并且其中用于将操作系统配置成将对持久存储器地址空间的访问高速缓存在易失性存储器中的装置包括用于将地址解码器配置成从针对持久存储器地址空间的第一操作模式转换到针对持久存储器地址空间的第二操作模式的装置。

示例27包括示例25和26中的任一个的主题,并且其中该第一操作模式是用于将持久2lm数据存储在非易失性存储器中的持久2lm模式,并且该第二操作模式是用于将持久2lm数据高速缓存在易失性存储器设备中的一个或多个中的高速缓存模式。

28.示例25的计算设备,进一步包括:用于接收用于写入应用程序数据的写入数据指令的装置;用于确定写入数据指令是否需要应用程序数据为持久的装置;用于响应于确定应用程序数据为持久的而对写入数据指令的存储器地址执行写入数据指令的装置;用于将持久2lm数据高速缓存在对应易失性存储器中的装置;以及用于将持久2lm数据存储在对应非易失性存储器设备中的装置。

示例29包括示例25-28中的任一个的主题,并且其中用于确定是否需要应用程序数据为持久的装置包括用于确定是否将写入数据指令的存储器地址映射至被配置成以持久2lm模式操作的持久存储器地址空间的装置。

示例30包括示例25-29中的任一个的主题,并且其中用于将应用程序数据存储在非易失性存储器设备中的装置包括用于将经过修改且高速缓存在易失性存储器设备中的应用程序数据存储至非易失性存储器设备的装置。

示例31包括示例25-30中的任一个的主题,并且进一步包括:用于接收用于读取应用程序数据的读取数据指令的装置;用于确定读取数据指令是否需要应用程序数据为持久的装置;用于响应于确定需要应用程序数据为持久的而对读取数据指令的存储器地址执行读取数据指令的装置;以及用于将应用程序数据高速缓存在对应易失性存储器设备中的装置。

示例32包括示例25-31中的任一个的主题,并且其中用于确定持久存储器地址空间被映射至的一个或多个非易失性存储器设备的装置包括用于确定持久存储器地址空间被映射至的一个或多个非易失性就地写入字节可寻址存储器设备的装置。

示例33包括示例25-32中的任一个的主题,并且进一步包括用于设置跨一个或多个非易失性存储器设备的多个非邻接物理地址来映射邻接逻辑存储器地址的地址交织的装置。

示例34包括示例25-33中的任一个的主题,并且进一步包括用于检测系统关闭请求,并且响应于检测到系统关闭请求而将应用程序数据从一个或多个易失性存储器设备写入至一个或多个非易失性存储器设备的装置。

示例35包括示例25-34中的任一个的主题,并且进一步包括用于响应于检测到系统关闭请求而使队列中的数据指令序列化并且执行该数据指令的装置。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1