CN111143243A - 一种基于nvm混合内存的缓存预取方法及系统 - Google Patents

一种基于nvm混合内存的缓存预取方法及系统 Download PDF

Info

Publication number
CN111143243A
CN111143243A CN201911318719.9A CN201911318719A CN111143243A CN 111143243 A CN111143243 A CN 111143243A CN 201911318719 A CN201911318719 A CN 201911318719A CN 111143243 A CN111143243 A CN 111143243A
Authority
CN
China
Prior art keywords
data
dram
neural network
nvmm
cache
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.)
Granted
Application number
CN201911318719.9A
Other languages
English (en)
Other versions
CN111143243B (zh
Inventor
姚建国
杨铭
管海兵
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.)
Shanghai Jiaotong University
Original Assignee
Shanghai Jiaotong University
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 Shanghai Jiaotong University filed Critical Shanghai Jiaotong University
Priority to CN201911318719.9A priority Critical patent/CN111143243B/zh
Publication of CN111143243A publication Critical patent/CN111143243A/zh
Application granted granted Critical
Publication of CN111143243B publication Critical patent/CN111143243B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明提供了一种基于NVM混合内存的缓存预取方法及系统,包括:步骤M1:识别DRAM和NVMM主内存,并且将DRAM作为NVMM的缓存;步骤M2:根据预设负载类型,采集对应的访存数据,作为训练的数据;步骤M3:搭建特定的LSTM神经网络模型;步骤M4:使用特定的LSTM神经网络模型对训练的数据进行训练;步骤M5:训练后的LSTM神经网络模型,保证存储系统对负载变化的适应性;本发明创新性地采用机器学习的方案,结合提前采集数据,离线训练的方式,完成了对特定负载的高精准度缓存预取,有效提高混合主内存运行时的命中率。

Description

一种基于NVM混合内存的缓存预取方法及系统
技术领域
本发明涉及混合主内存、非易失性主内存和机器学习等领域,具体地,涉及一种基于NVM混合内存的缓存预取方法及系统,更为具体地,涉及一种基于DRAM(动态随机存取存储器)与NVMM(非易失性主内存)混合主内存系统的缓存预取方法及系统。
背景技术
混合主内存是指由多种不同介质、不同读写速度的内存构成的主内存。不同于传统的单一DRAM主内存,混合主内存由于存在多种不同读写速度的内存,形成了内部的存储分层,这对数据的存放方式提出了新的要求。一般来讲,当今利用混合主内存的方式主要有两种:一种是应用程序直接使用,一种是抽象成二级的主内存使用,DRAM作为缓存层。第一种方式需要每个应用程序单独编写使用的逻辑,而第二种则将对应用程序不透明,需要操作系统完成对混合主内存的管理。
非易失性主内存具有介于DRAM和NVMe磁盘之间的读写速度和容量,并且具有非易失性和字节可寻址等特点,在近些年来,主要被作为混合主内存中慢速主存的构成。它的出现,使得超大容量内存成为了可能。虽然其性能比DRAM等传统内存介质还有差距,但是通过高效灵活的混合主内存管理,可能大大减少这一性能差距。
机器学习在处理各种复杂优化问题中,获得了很好的效果。它通过概率论、统计学等方法,根据大量数据进行训练,从而获得对一些问题或领域很好的求解能力。经过多年的发展,机器学习已经衍生出多种方法,其理论和方法也已被广泛应用于解决实际工程和科研领域中的复杂问题。
虽然已经存在一些对混合主内存管理方法的研究,但是复杂的内存访问特征使得对混合内存的精确管理成为难题,特别是将混合主内存当作二级内存使用时,缓存的管理策略十分难以设计。现代内存访问具有地址空间大,地址翻译过程繁琐复杂,多个进程混合等特点。通过机器学习的方法,可以对具体的数据访问记录进行学习,对大量有特征的负载进行精确的缓存预测,从而达到更好的缓存效果。
专利文献CN105975402B(申请号:201610278653.5)公开了一种混合内存环境下淘汰数据感知的缓存系统,其目标是在保证缓存系统自身性能的前提下尽量减少写回非易失性主存的次数从而提升其寿命。系统主要包含元数据监控模块、页面置换模块和自适应空间划分模块。监控模块收集缓存淘汰数据的元数据信息,然后基于元数据信息分析出缓存中页面的淘汰权重;页面置换模块,实现基于缓存性能和非易失性主存寿命来选择淘汰页面;自适应空间划分模块结合请求的特点和页面是否发生过淘汰来判断当前阶段应该选择哪种类型的页面作为淘汰对象。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种基于NVM混合内存的缓存预取方法及系统。
本发明提供的一种基于NVM混合内存的缓存预取方法,包括:
步骤M1:识别DRAM和NVMM主内存,并且将DRAM作为NVMM的缓存;
步骤M2:根据预设负载类型,采集对应的访存数据,作为训练的数据;
步骤M3:搭建特定的LSTM神经网络模型;
步骤M4:使用特定的LSTM神经网络模型对训练的数据进行训练;
步骤M5:训练后的LSTM神经网络模型,保证本发明对负载变化的适应性;
所述特定的LSTM神经网络模型:针对计算机访存预测,在LSTM神经网络的基础上,加入了嵌入层和转化层,能够预测被频繁访问的“热数据”。
优选地,所述步骤M1包括:
识别DRAM和NVMM主内存,并且将DRAM作为NVMM的缓存,使用直接映射的方法,将NVMM和DRAM都划分为多块,使用哈希函数的方式将DRAM的缓存条目映射到NVMM上;对外显示的主内存大小为NVMM的容量,附带一个DRAM大小大的高速缓存;
应用程序使用内存时,当访问DRAM未命中,再去访问NVMM,如果再次未命中,则触发缺页异常,从存储硬件中加载数据;当访问NVMM命中,则从NVMM中加载数据,并且将数据更新指DRAM中,下次访问,在DRAM中命中,从DRAM中加载数据。
优选地,,所述步骤M2包括:
步骤M2.1:离线获取负载的访存地址记录作为训练数据,按照访问的先后顺序排列为时序数据;
步骤M2.2:对时序数据进行预处理,对数据进行差值计算,计算连续两个访存操作的地址差,作为新的训练数据;
步骤M2.3:根据缓存行缓存条目大小,对新的训练数据进行聚合,将单个访问地址变为缓存行编号,即为训练数据。
优选地,所述M3包括:
特定的LSTM神经网络模型包括:输出层、嵌入层、循环神经网络、输出层和转化层;
步骤M3.1:输入层构建为M个节点,即为接收连续的M次访存序列作为输入;
步骤M3.2:嵌入层节点数为N,嵌入层将输入层单个节点输入表示为有N个特征的向量,使得输入数据数据为M*N维矩阵;
步骤M3.3:循环神经网络构建LSTM神经网络,经过嵌入层处理后的N个特征向量被输入到LSTM神经网络;
步骤M3.4:将LSTM神经网络的输出作为输出层的输入,输出层节点数为N,代表以N维向量表示的预测结果,每一个节点的输出为一个浮点数,表示预测地址为当前节点代表地址的概率;
步骤M3.5:转化层统计概率最大的前K个维度,并转化为原始地址输出。
优选地,所述步骤M4包括:
步骤M4.1:使用特定的LSTM神经网络模型,进行预测,预测NVMM中的数据被高频访问的数据地址,作为预期目标;
步骤M4.2:每隔预设时间,触发一次主动预取,根据预取目标取出对应地址上的数据加载到DRAM中;
步骤M4.3:当预取目标加载到DRAM,DRAM中数据已满时,将当前数据替换为预取目标的数据;
步骤M4.4:判断当前访问DRAM的命中率是否低于预设阈值t时,当小于预设阈值t时,则重复步骤M4.1至步骤M4.4;当大于等于预设阈值t时,则得到训练后的特定的LSTM神经网络模型;
所述替换方式包括:采用LRU和/或LFU算法选取替换的条目。
根据本发明提供的一种基于NVM混合内存的缓存预取系统,包括:
模块M1:识别DRAM和NVMM主内存,并且将DRAM作为NVMM的缓存;
模块M2:根据预设负载类型,采集对应的访存数据,作为训练的数据;
模块M3:搭建特定的LSTM神经网络模型;
模块M4:使用特定的LSTM神经网络模型对训练的数据进行训练;
模块M5:训练后的LSTM神经网络模型,保证本发明对负载变化的适应性;
所述特定的LSTM神经网络模型:针对计算机访存预测,在LSTM神经网络的基础上,加入了嵌入层和转化层,能够预测被频繁访问的“热数据”。
优选地,所述模块M1包括:
识别DRAM和NVMM主内存,并且将DRAM作为NVMM的缓存,使用直接映射的方法,将NVMM和DRAM都划分为多块,使用哈希函数的方式将DRAM的缓存条目映射到NVMM上;对外显示的主内存大小为NVMM的容量,附带一个DRAM大小大的高速缓存;
应用程序使用内存时,当访问DRAM未命中,再去访问NVMM,如果再次未命中,则触发缺页异常,从存储硬件中加载数据;当访问NVMM命中,则从NVMM中加载数据,并且将数据更新指DRAM中,下次访问,在DRAM中命中,从DRAM中加载数据。
优选地,所述模块M2包括:
模块M2.1:离线获取负载的访存地址记录作为训练数据,按照访问的先后顺序排列为时序数据;
模块M2.2:对时序数据进行预处理,对数据进行差值计算,计算连续两个访存操作的地址差,作为新的训练数据;
模块M2.3:根据缓存行缓存条目大小,对新的训练数据进行聚合,将单个访问地址变为缓存行编号,即为训练数据。
优选地,所述M3包括:
特定的LSTM神经网络模型包括:输出层、嵌入层、循环神经网络、输出层和转化层;
模块M3.1:输入层构建为M个节点,即为接收连续的M次访存序列作为输入;
模块M3.2:嵌入层节点数为N,嵌入层将输入层单个节点输入表示为有N个特征的向量,使得输入数据数据为M*N维矩阵;
模块M3.3:循环神经网络构建LSTM神经网络,经过嵌入层处理后的N个特征向量被输入到LSTM神经网络;
模块M3.4:将LSTM神经网络的输出作为输出层的输入,输出层节点数为N,代表以N维向量表示的预测结果,每一个节点的输出为一个浮点数,表示预测地址为当前节点代表地址的概率;
模块M3.5:转化层统计概率最大的前K个维度,并转化为原始地址输出。
优选地,所述模块M4包括:
模块M4.1:使用特定的LSTM神经网络模型,进行预测,预测NVMM中的数据被高频访问的数据地址,作为预期目标;
模块M4.2:每隔预设时间,触发一次主动预取,根据预取目标取出对应地址上的数据加载到DRAM中;
模块M4.3:当预取目标加载到DRAM,DRAM中数据已满时,将当前数据替换为预取目标的数据;
模块M4.4:判断当前访问DRAM的命中率是否低于预设阈值t时,当小于预设阈值t时,则重复模块M4.1至模块M4.4;当大于等于预设阈值t时,则得到训练后的特定的LSTM神经网络模型;
所述替换方式包括:采用LRU和/或LFU算法选取替换的条目。
与现有技术相比,本发明具有如下的有益效果:
1、本发明创新性地采用机器学习的方案,结合提前采集数据,离线训练的方式,完成了对特定负载的高精准度缓存预取,有效提高混合主内存运行时的命中率,提高NVMM主存的利用率;
2.采用在线训练更新模型的方式,实时适应负载变化,保持混合主内存运行时的高命中率。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为架构示意图;
图2为模型训练更新流程图;
图3为缓存预取示意图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
本发明主要是针对混合了DRAM和NVMM两种主存的HMM系统,使用机器学习方法进行访存的预测,预取根据不同负载,进行模型的训练,并且能够进行动态模型更新。
目前对混合主内存的缓存管理研究仍处于起步阶段,缓存预取作为一种主动替换缓存的算法,需要准确的访存预测进行支持,负责可能会导致激进的缓存替换,使命中率下降。本发明通过机器学习的方法,采集访存数据并进行训练,从而达到精确的缓存预取。
根据本发明提供的一种基于NVM混合内存的缓存预取方法,包括:
步骤M1:识别DRAM和NVMM主内存,并且将DRAM作为NVMM的缓存;
具体地,所述步骤M1包括:
识别DRAM和NVMM主内存,并且将DRAM作为NVMM的缓存,使用直接映射的方法,将NVMM和DRAM都划分为多块,使用哈希函数的方式将DRAM的缓存条目映射到NVMM上;对外显示的主内存大小为NVMM的容量,附带一个DRAM大小大的高速缓存;
应用程序使用内存时,当访问DRAM未命中,再去访问NVMM,如果再次未命中,则触发缺页异常,从存储硬件中加载数据,例如从硬盘中加载数据;加载的数据即为应用程序使用内存时希望加载的内容,在本发明应用场景“混合主内存”中,计算机的存储分级结构从快到慢为“DRAM(内存)-NVM–硬盘”。所以当内容不在DRAM和NVM中时,就需要到硬盘存储中加载。当访问NVMM命中,则从NVMM中加载数据,并且将数据更新指DRAM中,下次访问,在DRAM中命中,从DRAM中加载数据,从而提高了访问速度。
步骤M2:根据预设负载类型,采集对应的访存数据,作为训练的数据;
具体地,所述步骤M2包括:
步骤M2.1:离线获取负载的访存记录作为训练数据,格式为“序号+地址”,按照访问的先后顺序排列为时序数据。可以通过模拟器等方式采集数据。如果能将未来一段时间内可能被频繁访问的热数据提前放置到缓存中,就可以大大提高整个内存系统的性能,所以缓存预取需要能够预测接下来一段时间内的热数据。而只有时序数据才能体现数据访问在时间上的特征规律,有益于预测的准确性。
步骤M2.2:对采集的数据进行预处理,由于原始的访存数据地址范围较大,但是由于大多数应用程序的连续访问具有一定的特征。首先对数据进行差值计算,计算连续两个访存操作的地址差,作为新的数据。
步骤M2.3:进一步的,根据缓存行大小,对原始数据进行聚合,将单个访问地址变为某一缓存条目编号。缓存行即为缓存数据的基本单位,一个缓存行能存放的数据大小即为“缓存行大小”。即数据地址的粒度为1,而缓存的粒度一般为8个字节或更大。缓存条目编号即为最终的训练数据。即原本的访存数据地址时序数据变为了缓存行编号时序数据。
步骤M2.4:将处理过的训练数据输入神经网络模型,进行训练。训练采用监督学习,训练样本的预测值为原始数据中第(M+1)次访存。
步骤M3:搭建特定的LSTM神经网络模型;
具体地,所述M3包括:
特定的LSTM神经网络模型包括:输出层、嵌入层、循环神经网络、输出层和转化层;
步骤M3.1:输入层构建为M个节点,即为接收连续的M次访存序列作为输入;
步骤M3.2:嵌入层节点数为N,嵌入层将输入层单个节点输入表示为有N个特征的向量,使得大规模空间的输入数据数据为M*N维矩阵;将预测问题从回归转化为分类问题,方便下一步的训练。
步骤M3.3:循环神经网络构建LSTM神经网络,经过嵌入层处理后的N个特征向量被输入到LSTM神经网络;
步骤M3.4:将LSTM神经网络的输出作为输出层的输入,输出层节点数为N,代表以N维向量表示的预测结果,每一个节点的输出为一个浮点数,表示预测地址为当前节点代表地址的概率;
步骤M3.5:转化层统计概率最大的前K个维度,并转化为原始地址输出。
步骤M4:使用特定的LSTM神经网络模型对训练的数据进行训练;训练的实质是调节模型的一些参数,让其具有对负载变化的适应性;
具体地,所述步骤M4包括:
步骤M4.1:使用特定的LSTM神经网络模型,进行预测,将预测结果的前K个地址预取至DRAM中,如果DRAM对应的条目不为空,则触发一次缓存的替换。预测NVMM中的数据被高频访问的数据地址,作为预期目标;
步骤M4.2:每隔预设时间,触发一次主动预取,将预取目标加载到DRAM中;
主动预取是将一部分在NVMM中的数据加载至DRAM中。
步骤M4.3:当预取目标加载到DRAM,DRAM中数据已满时,将当前数据替换为预取目标的数据;
由于DRAM的大小小于NVM,所以DRAM的一块对应着NVM的多块区域。如果DRAM中已经缓存了数据,在预取发生时,需要替换掉一些已经在DRAM中的数据。可以采用经典的如LRU或LFU的算法,根据近期数据的使用频率等信息选择替换的数据。
缓存的替换指将模型预测的结果预取至DRAM中时,如果DRAM对应位置已经存在数据,将当前数据替换为预测的结果。
步骤M4.4:判断当前访问DRAM的命中率是否低于预设阈值t时,当小于预设阈值t时,则重复步骤M4.1至步骤M4.4;当大于等于预设阈值t时,则得到训练后的特定的LSTM神经网络模型;
训练采用监督学习,训练样本的预测值为原始数据中第(M+1)次访存。
具体地,所述替换方式包括:采用LRU和/或LFU算法选取替换的条目。
步骤M5:训练后的LSTM神经网络模型,保证本发明对负载变化的适应性;负载代指系统当前运行时,所有发生内存访问应用的负载合集。
所述特定的LSTM神经网络模型:针对计算机访存预测,在传统的LSTM网络的基础上,加入了嵌入层和转化层,能够高效快速地预测未来一段时间可能被频繁访问的“热数据”。
根据本发明提供的一种基于NVM混合内存的缓存预取系统,包括:
模块M1:识别DRAM和NVMM主内存,并且将DRAM作为NVMM的缓存;
具体地,所述模块M1包括:
识别DRAM和NVMM主内存,并且将DRAM作为NVMM的缓存,使用直接映射的方法,将NVMM和DRAM都划分为多块,使用哈希函数的方式将DRAM的缓存条目映射到NVMM上;对外显示的主内存大小为NVMM的容量,附带一个DRAM大小大的高速缓存;
应用程序使用内存时,当访问DRAM未命中,再去访问NVMM,如果再次未命中,则触发缺页异常,从存储硬件中加载数据,例如从硬盘中加载数据;加载的数据即为应用程序使用内存时希望加载的内容,在本发明应用场景“混合主内存”中,计算机的存储分级结构从快到慢为“DRAM(内存)-NVM–硬盘”。所以当内容不在DRAM和NVM中时,就需要到硬盘存储中加载。当访问NVMM命中,则从NVMM中加载数据,并且将数据更新指DRAM中,下次访问,在DRAM中命中,从DRAM中加载数据,从而提高了访问速度。
模块M2:根据预设负载类型,采集对应的访存数据,作为训练的数据;
具体地,所述M2包括:
离线获取负载的访存记录作为训练数据,格式为“序号+地址”,按照访问的先后顺序排列为时序数据。可以通过模拟器等方式采集数据。
模块M2.2:对采集的数据进行预处理,由于原始的访存数据地址范围较大,但是由于大多数应用程序的连续访问具有一定的特征。首先对数据进行差值计算,计算连续两个访存操作的地址差,作为新的数据。
模块M2.3:进一步的,根据缓存条目大小,对原始数据进行聚合,将单个访问地址变为某一缓存条目编号。
模块M3:搭建特定的LSTM神经网络模型;
具体地,所述M3包括:
特定的LSTM神经网络模型包括:输出层、嵌入层、循环神经网络、输出层和转化层;
模块M3.1:输入层构建为M个节点,即为接收连续的M次访存序列作为输入;
模块M3.2:嵌入层节点数为N,嵌入层将输入层单个节点输入表示为有N个特征的向量,使得大规模空间的输入数据数据为M*N维矩阵;将预测问题从回归转化为分类问题,方便下一步的训练。
模块M3.3:循环神经网络构建LSTM神经网络,经过嵌入层处理后的N个特征向量被输入到LSTM神经网络;
模块M3.4:将LSTM神经网络的输出作为输出层的输入,输出层节点数为N,代表以N维向量表示的预测结果,每一个节点的输出为一个浮点数,表示预测地址为当前节点代表地址的概率;
模块M3.5:转化层统计概率最大的前K个维度,并转化为原始地址输出。
模块M4:使用特定的LSTM神经网络模型对训练的数据进行训练;训练的实质是调节模型的一些参数,让其具有对负载变化的适应性;
具体地,所述模块M4包括:
模块M4.1:使用特定的LSTM神经网络模型,进行预测,将预测结果的前K个地址预取至DRAM中,如果DRAM对应的条目不为空,则触发一次缓存的替换。预测NVMM中的数据被高频访问的数据地址,作为预期目标;
模块M4.2:每隔预设时间,触发一次主动预取,将预取目标加载到DRAM中;
主动预取是将一部分在NVMM中的数据加载至DRAM中。
模块M4.3:当预取目标加载到DRAM,DRAM中数据已满时,将当前数据替换为预取目标的数据;
由于DRAM的大小小于NVM,所以DRAM的一块对应着NVM的多块区域。如果DRAM中已经缓存了数据,在预取发生时,需要替换掉一些已经在DRAM中的数据。可以采用经典的如LRU或LFU的算法,根据近期数据的使用频率等信息选择替换的数据。
缓存的替换指将模型预测的结果预取至DRAM中时,如果DRAM对应位置已经存在数据,将当前数据替换为预测的结果。
模块M4.4:判断当前访问DRAM的命中率是否低于预设阈值t时,当小于预设阈值t时,则重复模块M4.1至模块M4.4;当大于等于预设阈值t时,则得到训练后的特定的LSTM神经网络模型;
训练采用监督学习,训练样本的预测值为原始数据中第(M+1)次访存。
具体地,所述替换方式包括:采用LRU和/或LFU算法选取替换的条目。
模块M5:训练后的LSTM神经网络模型,保证本发明对负载变化的适应性;负载代指系统当前运行时,所有发生内存访问应用的负载合集。
所述特定的LSTM神经网络模型:针对计算机访存预测,在传统的LSTM网络的基础上,加入了嵌入层和转化层,能够高效快速地预测未来一段时间可能被频繁访问的“热数据”。
现有技术还未考虑在混合主内存系统中的缓存预取,传统的预取方案大多在CPU的高速缓存中实现。由于高速缓存(L1,L2,L3缓存)大多容量较小,局部性更强,这些传统的预取算法大多使用简单的连续访问或定长间隔访问假设。而在混合主内存中的缓存预取则更加复杂。该发明创新性地采用机器学习的方案,结合提前采集数据,离线训练的方式,完成了对特定负载的高精准度缓存预取,有效提高混合主内存运行时的命中率。
以下优选例对本发明作进一步详细说明:本实施例在本发明技术方案和算法的前提下进行实施,并给出架构介绍、详细实施方式和具体操作过程,但是适用的内容不限于下述实例。
如附图1所示,本发明的架构是DRAM与NVMM混合主内存系统,并且采用典型的二级内存模式,使用DRAM作为NVMM的缓存。缓存采用哈希直接映射的方式。另外,在DRAM上进行访存记录的采集,再使用额外的计算资源如CPU或机器学习专用的计算芯片加载已经训练好的模型,周期性进行预测。当系统开始运行应用程序时,整个发明的运行过程为:
采集应用程序运行时系统的访存数据,生成训练数据集T,并且对原始数据进行预处理。构建LSTM神经网络,输入预处理后的数据进行训练。训练后的模型被单独保存在系统的其他存储空间中,例如板载RAM等。计算芯片加载训练后的模型,并进行周期性的地址预测。内存控制器获取模型预测的结果,将结果中概率最大的前K个结果从NVMM上预取到DRAM上。
如图3所示,假设DRAM被分为4个缓存条目,NVMM通过直接映射的方式将自身的多个区域映射到DRAM缓存中。某一周期,模型预测的结果为第五个,第三个,第二个和第四个区域被访问的概率为最高的四个。内存控制器根据这一结果,对缓存进行预取。发现第二,三,四个区域已经在缓存中,无需替换;而第五个区域未命中,根据映射的结果,将DRAM中第一个条目替换为NVMM的第五个区域,完成一次预取。
系统运行时,会检查当前缓存的命中率是否低于阈值t。如果低于阈值t,则意味着当前模型与实际的负载特征有一定差别。这时,将会对模型进行再训练,并且更新保存的模型。计算芯片重新加载模型,用新的模型进行预测。
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。

Claims (10)

1.一种基于NVM混合内存的缓存预取方法,其特征在于,包括:
步骤M1:识别DRAM和NVMM主内存,并且将DRAM作为NVMM的缓存;
步骤M2:根据预设负载类型,采集对应的访存数据,作为训练的数据;
步骤M3:搭建特定的LSTM神经网络模型;
步骤M4:使用特定的LSTM神经网络模型对训练的数据进行训练;
步骤M5:训练后的LSTM神经网络模型,保证对负载变化的适应性;
所述特定的LSTM神经网络模型:针对计算机访存预测,在LSTM神经网络的基础上,加入了嵌入层和转化层,能够预测被频繁访问的“热数据”。
2.根据权利要求1所述的一种基于NVM混合内存的缓存预取方法,其特征在于,所述步骤M1包括:
识别DRAM和NVMM主内存,并且将DRAM作为NVMM的缓存,使用直接映射的方法,将NVMM和DRAM都划分为多块,使用哈希函数的方式将DRAM的缓存条目映射到NVMM上;对外显示的主内存大小为NVMM的容量,附带一个DRAM大小大的高速缓存;
应用程序使用内存时,当访问DRAM未命中,再去访问NVMM,如果再次未命中,则触发缺页异常,从存储硬件中加载数据;当访问NVMM命中,则从NVMM中加载数据,并且将数据更新指DRAM中,下次访问,在DRAM中命中,从DRAM中加载数据。
3.根据权利要求1所述的一种基于NVM混合内存的缓存预取方法,其特征在于,所述步骤M2包括:
步骤M2.1:离线获取负载的访存地址记录作为训练数据,按照访问的先后顺序排列为时序数据;
步骤M2.2:对时序数据进行预处理,对数据进行差值计算,计算连续两个访存操作的地址差,作为新的训练数据;
步骤M2.3:根据缓存行缓存条目大小,对新的训练数据进行聚合,将单个访问地址变为缓存行编号,即为训练数据。
4.根据权利要求1所述的一种基于NVM混合内存的缓存预取方法,其特征在于,所述M3包括:
特定的LSTM神经网络模型包括:输出层、嵌入层、循环神经网络、输出层和转化层;
步骤M3.1:输入层构建为M个节点,即为接收连续的M次访存序列作为输入;
步骤M3.2:嵌入层节点数为N,嵌入层将输入层单个节点输入表示为有N个特征的向量,使得输入数据数据为M*N维矩阵;
步骤M3.3:循环神经网络构建LSTM神经网络,经过嵌入层处理后的N个特征向量被输入到LSTM神经网络;
步骤M3.4:将LSTM神经网络的输出作为输出层的输入,输出层节点数为N,代表以N维向量表示的预测结果,每一个节点的输出为一个浮点数,表示预测地址为当前节点代表地址的概率;
步骤M3.5:转化层统计概率最大的前K个维度,并转化为原始地址输出。
5.根据权利要求1所述的一种基于NVM混合内存的缓存预取方法,其特征在于,所述步骤M4包括:
步骤M4.1:使用特定的LSTM神经网络模型,进行预测,预测NVMM中的数据被高频访问的数据地址,作为预期目标;
步骤M4.2:每隔预设时间,触发一次主动预取,根据预取目标取出对应地址上的数据加载到DRAM中;
步骤M4.3:当预取目标加载到DRAM,DRAM中数据已满时,将当前数据替换为预取目标的数据;
步骤M4.4:判断当前访问DRAM的命中率是否低于预设阈值t时,当小于预设阈值t时,则重复步骤M4.1至步骤M4.4;当大于等于预设阈值t时,则得到训练后的特定的LSTM神经网络模型;
所述替换方式包括:采用LRU和/或LFU算法选取替换的条目。
6.一种基于NVM混合内存的缓存预取系统,其特征在于,包括:
模块M1:识别DRAM和NVMM主内存,并且将DRAM作为NVMM的缓存;
模块M2:根据预设负载类型,采集对应的访存数据,作为训练的数据;
模块M3:搭建特定的LSTM神经网络模型;
模块M4:使用特定的LSTM神经网络模型对训练的数据进行训练;
模块M5:训练后的LSTM神经网络模型,保证对负载变化的适应性;
所述特定的LSTM神经网络模型:针对计算机访存预测,在LSTM神经网络的基础上,加入了嵌入层和转化层,能够预测被频繁访问的“热数据”。
7.根据权利要求6所述的一种基于NVM混合内存的缓存预取系统,其特征在于,所述模块M1包括:
识别DRAM和NVMM主内存,并且将DRAM作为NVMM的缓存,使用直接映射的方法,将NVMM和DRAM都划分为多块,使用哈希函数的方式将DRAM的缓存条目映射到NVMM上;对外显示的主内存大小为NVMM的容量,附带一个DRAM大小大的高速缓存;
应用程序使用内存时,当访问DRAM未命中,再去访问NVMM,如果再次未命中,则触发缺页异常,从存储硬件中加载数据;当访问NVMM命中,则从NVMM中加载数据,并且将数据更新指DRAM中,下次访问,在DRAM中命中,从DRAM中加载数据。
8.根据权利要求6所述的一种基于NVM混合内存的缓存预取系统,其特征在于,所述模块M2包括:
模块M2.1:离线获取负载的访存地址记录作为训练数据,按照访问的先后顺序排列为时序数据;
模块M2.2:对时序数据进行预处理,对数据进行差值计算,计算连续两个访存操作的地址差,作为新的训练数据;
模块M2.3:根据缓存行缓存条目大小,对新的训练数据进行聚合,将单个访问地址变为缓存行编号,即为训练数据。
9.根据权利要求6所述的一种基于NVM混合内存的缓存预取系统,其特征在于,所述M3包括:
特定的LSTM神经网络模型包括:输出层、嵌入层、循环神经网络、输出层和转化层;
模块M3.1:输入层构建为M个节点,即为接收连续的M次访存序列作为输入;
模块M3.2:嵌入层节点数为N,嵌入层将输入层单个节点输入表示为有N个特征的向量,使得输入数据数据为M*N维矩阵;
模块M3.3:循环神经网络构建LSTM神经网络,经过嵌入层处理后的N个特征向量被输入到LSTM神经网络;
模块M3.4:将LSTM神经网络的输出作为输出层的输入,输出层节点数为N,代表以N维向量表示的预测结果,每一个节点的输出为一个浮点数,表示预测地址为当前节点代表地址的概率;
模块M3.5:转化层统计概率最大的前K个维度,并转化为原始地址输出。
10.根据权利要求6所述的一种基于NVM混合内存的缓存预取系统,其特征在于,所述模块M4包括:
模块M4.1:使用特定的LSTM神经网络模型,进行预测,预测NVMM中的数据被高频访问的数据地址,作为预期目标;
模块M4.2:每隔预设时间,触发一次主动预取,根据预取目标取出对应地址上的数据加载到DRAM中;
模块M4.3:当预取目标加载到DRAM,DRAM中数据已满时,将当前数据替换为预取目标的数据;
模块M4.4:判断当前访问DRAM的命中率是否低于预设阈值t时,当小于预设阈值t时,则重复模块M4.1至模块M4.4;当大于等于预设阈值t时,则得到训练后的特定的LSTM神经网络模型;
所述替换方式包括:采用LRU和/或LFU算法选取替换的条目。
CN201911318719.9A 2019-12-19 2019-12-19 一种基于nvm混合内存的缓存预取方法及系统 Active CN111143243B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911318719.9A CN111143243B (zh) 2019-12-19 2019-12-19 一种基于nvm混合内存的缓存预取方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911318719.9A CN111143243B (zh) 2019-12-19 2019-12-19 一种基于nvm混合内存的缓存预取方法及系统

Publications (2)

Publication Number Publication Date
CN111143243A true CN111143243A (zh) 2020-05-12
CN111143243B CN111143243B (zh) 2023-06-27

Family

ID=70518953

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911318719.9A Active CN111143243B (zh) 2019-12-19 2019-12-19 一种基于nvm混合内存的缓存预取方法及系统

Country Status (1)

Country Link
CN (1) CN111143243B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112269542A (zh) * 2020-10-19 2021-01-26 苏州浪潮智能科技有限公司 一种nvme硬盘存储空间分配方法、装置及存储介质
CN113867633A (zh) * 2021-09-24 2021-12-31 中科院成都信息技术股份有限公司 基于dram与nvm的异构混合内存数据处理方法、系统及存储介质
CN114065947A (zh) * 2021-11-15 2022-02-18 深圳大学 一种数据访问推测方法、装置、存储介质及电子设备
CN114116528A (zh) * 2021-11-22 2022-03-01 深圳大学 一种内存访问地址预测方法、装置、存储介质及电子设备
CN114253458A (zh) * 2020-09-21 2022-03-29 华为技术有限公司 内存缺页异常的处理方法、装置、设备及存储介质
WO2022179032A1 (zh) * 2021-02-25 2022-09-01 华为技术有限公司 用于存储管理的方法、设备、介质和程序产品
CN117194502A (zh) * 2023-11-02 2023-12-08 北京理工大学 一种基于长短期记忆网络的数据库内容缓存替换方法
CN117215973A (zh) * 2023-09-13 2023-12-12 之江实验室 一种缓存数据的处理方法、深度学习训练方法和系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120041914A1 (en) * 2010-08-16 2012-02-16 Durga Deep Tirunagari System and Method for Effective Caching Using Neural Networks
CN105786717A (zh) * 2016-03-22 2016-07-20 华中科技大学 软硬件协同管理的dram-nvm层次化异构内存访问方法及系统
WO2019152224A1 (en) * 2018-02-05 2019-08-08 Micron Technology, Inc. Memory virtualization for accessing heterogeneous memory components

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120041914A1 (en) * 2010-08-16 2012-02-16 Durga Deep Tirunagari System and Method for Effective Caching Using Neural Networks
CN105786717A (zh) * 2016-03-22 2016-07-20 华中科技大学 软硬件协同管理的dram-nvm层次化异构内存访问方法及系统
US20170277640A1 (en) * 2016-03-22 2017-09-28 Huazhong University Of Science And Technology Dram/nvm hierarchical heterogeneous memory access method and system with software-hardware cooperative management
WO2019152224A1 (en) * 2018-02-05 2019-08-08 Micron Technology, Inc. Memory virtualization for accessing heterogeneous memory components

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
BRAUN PETER AND LITZ HEINER: "Understanding Memory Access Patterns for Prefetching" *
YUAN ZENG AND XIAOCHEN GUO: "Long short term memory based hardware prefetching" *
ZHAN SHI ET AL.: "Applying Deep Learning to the Cache Replacement Problem" *

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114253458A (zh) * 2020-09-21 2022-03-29 华为技术有限公司 内存缺页异常的处理方法、装置、设备及存储介质
CN114253458B (zh) * 2020-09-21 2024-04-26 华为技术有限公司 内存缺页异常的处理方法、装置、设备及存储介质
CN112269542A (zh) * 2020-10-19 2021-01-26 苏州浪潮智能科技有限公司 一种nvme硬盘存储空间分配方法、装置及存储介质
CN112269542B (zh) * 2020-10-19 2022-10-25 苏州浪潮智能科技有限公司 一种nvme硬盘存储空间分配方法、装置及存储介质
WO2022179032A1 (zh) * 2021-02-25 2022-09-01 华为技术有限公司 用于存储管理的方法、设备、介质和程序产品
CN113867633A (zh) * 2021-09-24 2021-12-31 中科院成都信息技术股份有限公司 基于dram与nvm的异构混合内存数据处理方法、系统及存储介质
CN114065947A (zh) * 2021-11-15 2022-02-18 深圳大学 一种数据访问推测方法、装置、存储介质及电子设备
CN114065947B (zh) * 2021-11-15 2022-07-22 深圳大学 一种数据访问推测方法、装置、存储介质及电子设备
CN114116528A (zh) * 2021-11-22 2022-03-01 深圳大学 一种内存访问地址预测方法、装置、存储介质及电子设备
CN117215973A (zh) * 2023-09-13 2023-12-12 之江实验室 一种缓存数据的处理方法、深度学习训练方法和系统
CN117194502A (zh) * 2023-11-02 2023-12-08 北京理工大学 一种基于长短期记忆网络的数据库内容缓存替换方法
CN117194502B (zh) * 2023-11-02 2024-01-23 北京理工大学 一种基于长短期记忆网络的数据库内容缓存替换方法

Also Published As

Publication number Publication date
CN111143243B (zh) 2023-06-27

Similar Documents

Publication Publication Date Title
CN111143243B (zh) 一种基于nvm混合内存的缓存预取方法及系统
US8966204B2 (en) Data migration between memory locations
US5530941A (en) System and method for prefetching data from a main computer memory into a cache memory
US6961821B2 (en) Reconfigurable cache controller for nonuniform memory access computer systems
US20230169011A1 (en) Adaptive Cache Partitioning
US7856533B2 (en) Probabilistic method for performing memory prefetching
CN111052095B (zh) 使用动态预取深度的多行数据预取
US20130205089A1 (en) Cache Device and Methods Thereof
CN109461113B (zh) 一种面向数据结构的图形处理器数据预取方法及装置
US11847058B2 (en) Using a second content-addressable memory to manage memory burst accesses in memory sub-systems
Laga et al. Lynx: A learning linux prefetching mechanism for ssd performance model
US9558123B2 (en) Retrieval hash index
US11422934B2 (en) Adaptive address tracking
US11409657B2 (en) Adaptive address tracking
Olanrewaju et al. A study on performance evaluation of conventional cache replacement algorithms: A review
CN108664217B (zh) 一种降低固态盘存储系统写性能抖动的缓存方法及系统
CN112799590A (zh) 一种针对在线主存储重删的差异化缓存方法
CN117111834A (zh) 存储器和包含存储器的计算系统
US20230315627A1 (en) Cache line compression prediction and adaptive compression
Ebrahimi et al. Rc-rnn: Reconfigurable cache architecture for storage systems using recurrent neural networks
KR20220154612A (ko) 파일 속성에 따른 캐시 관리 방법 및 파일 속성에 따라 동작하는 캐시 관리 장치
US11048637B2 (en) High-frequency and low-power L1 cache and associated access technique
CN111831585B (zh) 数据储存设备及其数据预测方法
KR101976320B1 (ko) 라스트 레벨 캐시 메모리 및 이의 데이터 관리 방법
Lee et al. APR: adaptive page replacement scheme for scientific applications

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