1.混合内存动态调度方法,其特征是,包括:
通过配置PCIe总线的温度寄存器来改变内存延迟和内存带宽,进而模拟出慢内存存储器NVM;
将内存分组:根据内存的带宽和延迟,将内存划分为快内存存储器DRAM和慢内存存储器NVM;
程序运行时:根据程序的时延要求或程序的执行速度要求,把与程序对应的待处理数据集调入到快内存存储器DRAM或慢内存存储器NVM中;
获取程序的运行特征;根据程序的运行特征,获取程序在快内存存储器DRAM和慢内存存储器NVM之间相互转移的概率,如果概率大于设定阈值,则进入下一步;
获取程序对内存延迟的敏感度和内存带宽的敏感度;根据程序对内存延迟的敏感度和内存带宽的敏感度,实现程序在快内存存储器DRAM和慢内存存储器NVM之间相互转移。
2.如权利要求1所述的方法,其特征是,所述配置PCIe总线的温度寄存器,是配置设备总线、设备号和设备功能。
3.如权利要求1所述的方法,其特征是,所述根据内存的带宽和延迟,将内存划分为快内存存储器DRAM和慢内存存储器NVM;具体包括:如果内存的带宽大于第一设定阈值且内存的延迟小于第二设定阈值,则内存为快内存存储器DRAM;
如果内存的带宽小于第一设定阈值且内存的延迟大于第二设定阈值,则内存为慢内存存储器NVM。
4.如权利要求1所述的方法,其特征是,所述程序的运行特征,包括:处理器的占用情况、内存的占用情况、磁盘带宽的占用情况、网络带宽的占用情况、程序的内存情况或内存资源的占用情况。
5.如权利要求1所述的方法,其特征是,程序运行时的步骤包括:
如果程序的时延要求大于设定阈值或者程序的执行速度要求大于设定阈值,则将程序放在快内存存储器DRAM上执行,则把与程序对应的待处理数据集调入快内存存储器DRAM;
如果程序的时延要求小于设定阈值或者执行速度要求小于设定阈值,则将程序放在慢内存存储器NVM上执行,则把与当前程序对应的待处理数据集调入慢内存存储器NVM;
如果程序的时延要求大于设定阈值且程序的内存小于设定阈值,则将程序放在慢内存存储器NVM上执行,则把与当前程序对应的待处理数据集调入慢内存存储器NVM。
6.如权利要求1所述的方法,其特征是,根据程序的运行特征,获取程序在快内存存储器DRAM和慢内存存储器NVM之间相互转移的概率,如果概率大于设定阈值,则进入下一步;
具体步骤包括:
根据程序的运行特征,获取程序在快内存存储器DRAM内的执行性能,如果程序在快内存存储器DRAM内的执行性能大于设定性能要求,则进入S5;
根据程序的运行特征,获取程序在慢内存存储器NVM内的执行性能,如果程序在慢内存存储器NVM内的执行性能小于设定性能要求,则进入S5。
7.如权利要求1所述的方法,其特征是,所述根据程序对内存延迟的敏感度和内存带宽的敏感度,实现程序在快内存存储器DRAM和慢内存存储器NVM之间相互转移,具体步骤包括:当程序对内存延迟的敏感度和对内存带宽的敏感度均大于设定阈值时,则将程序从快内存存储器DRAM转移到慢内存存储器NVM;
当程序对内存延迟的敏感度和内存带宽的敏感度均小于设定阈值时,则将程序从慢内存存储器NVM转移到快内存存储器DRAM。
8.如权利要求1所述的方法,其特征是,获取程序对内存延迟的敏感度步骤如下:将内存延迟视为一个维度,在该维度上,按照由小到大的顺序设置若干个资源限制点,设置内存的总存储空间的20%为最小资源限制点;设置内存的总存储空间为最大资源限制点;
通过修改PCIe温度寄存器改变内存延迟和内存带宽的大小,将内存延迟和内存带宽改动成资源限制点上的值,获取程序在内存延迟维度上各个资源限制点上的性能,将各个资源限制点上的性能值组成程序在内存延迟维度上的敏感度曲面,该敏感度曲面即为程序对内存延迟的敏感度。
9.如权利要求1所述的方法,其特征是,获取程序对内存带宽的敏感度的步骤如下:将内存带宽视为一个维度,在该维度上,按照由小到大的顺序设置多个资源限制点,设置总带宽的20%为最小资源限制点,设置总带宽为最大资源限制点;
通过修改PCIe温度寄存器改变内存带宽的大小,将内存带宽改动成资源限制点上的值,获取程序在内存带宽维度各个资源限制点上的性能,在各个节点上的性能值是一个介于[0,1]之间的常数,各个节点上的性能值组成程序在内存带宽维度上的敏感度曲面,该敏感度曲面即为程序对带宽的敏感度。
10.混合内存动态调度系统,其特征是,包括:
配置模块,其被配置为:通过配置PCIe总线的温度寄存器来改变内存延迟和内存带宽,进而模拟出慢内存存储器NVM;
内存分组模块,其被配置为:根据内存的带宽和延迟,将内存划分为快内存存储器DRAM和慢内存存储器NVM;
程序运行模块,其被配置为:根据程序的时延要求或程序的执行速度要求,把与程序对应的待处理数据集调入到快内存存储器DRAM或慢内存存储器NVM中;
概率计算模块,其被配置为:获取程序的运行特征;根据程序的运行特征,获取程序在快内存存储器DRAM和慢内存存储器NVM之间相互转移的概率,如果概率大于设定阈值,则进入转移模块;
转移模块,其被配置为:获取程序对内存延迟的敏感度和内存带宽的敏感度;根据程序对内存延迟的敏感度和内存带宽的敏感度,实现程序在快内存存储器DRAM和慢内存存储器NVM之间相互转移。