有效
一种内存访问地址预测方法、装置、存储介质及电子设备
余佩其、王毅、陈家贤、马晨琳、周池、毛睿
深圳大学
摘要
本发明公开了一种内存访问地址预测方法、装置、存储介质及电子设备,当程序运行时,确定内存访问流中是否包含历史内存地址访问序列;当内存访问流中包含历史内存地址访问序列,获取历史内存地址访问序列的内存地址数据,其中历史内存地址访问序列的内存地址数据包括:历史被访问的内存地址以及其对应的地址标签;根据历史内存地址访问序列的内存地址数据利用预先训练好的神经网络模型计算历史被访问的内存地址的概率分布;根据概率分布结果确定下一个被访问的内存地址。该方法根据现有的内存地址数据并利用预先训练好的神经网络模型来计算历史被访问的内存地址的概率分布,概率分布计算结果更准确,数据获取与分配的效果更好。
1.一种内存访问地址预测方法,其特征在于,包括:当程序运行时,确定内存访问流中是否包含历史内存地址访问序列;当所述内存访问流中包含历史内存地址访问序列,获取所述历史内存地址访问序列的内存地址数据,其中所述历史内存地址访问序列的内存地址数据包括:历史被访问的内存地址以及其对应的地址标签,所述地址标签按照各自的属性和特点分类,并分成两层,第一层是根据标签是否需要处理模块访问序列来进行计算分成了处理模块关联和非处理模块关联;第二层根据标签具体需要内存模组访问序列和处理模块访问序列中的具体输入内容分类,其中所述地址标签包括:处理模块关联标签和非处理模块关联标签,其中所述处理模块关联标签:对于内存访问流中和处理模块关联性强的内存访问模式所设置的标签;非处理模块关联标签:对于内存地址访问流中那些和处理模块关联性差的内存地址访问模式所设置的标签;所述处理模块关联标签包括处理模块局部标签、处理模块差值标签以及跨处理模块关系标签:其中处理模块局部标签:针对内存地址访问流中上一个内存地址访问的处理模块,只分析经过此处理模块的内存访问流,得到下一个关于此处理模块最可能的内存地址访问;处理模块差值标签:针对于上一个内存地址访问的处理模块,只分析经过此处理模块的内存地址访问流,在内存地址访问流中选择和上一内存地址访问中的内存模组地址差值为1024以内的内存地址访问流作为参数输入;跨处理模块关系标签:适用于一些跨处理模块的数据访问,将内存模组信息和处理模块信息关联,并得到一个结果;所述非处理模块关联标签包括全局标签、空间局部标签、增量标签、多次访问标签以及局部性访问标签:其中全局标签:只考虑内存模组访问序列,分析得到下一个最可能的地址;空间局部标签:仅考虑内存模组访问序列中距离上一个地址差值在1024内的结果;增量标签:分析此前内存模组访问序列之间的增量Delta关系;多次访问标签:预测在接下来的5次内存地址访问中最常出现的地址,如果有并列则取第一个;局部性访问标签:只将内存综合访问流中最近的10个内存综合访问作为参数并预测;根据所述历史内存地址访问序列的内存地址数据利用预先训练好的神经网络模型计算历史被访问的内存地址的概率分布,包括:利用神经网络模型计算被访问的历史内存地址的特征矩阵,利用得到的特征矩阵来计算被访问的历史内存地址和预先设定好的地址标签之间的相关性,通过激活函数处理相关性矩阵得到内存访问流中被访问的历史内存地址的概率分布;根据概率分布结果确定下一个被访问的内存地址。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:当所述内存访问流中未包含历史内存地址访问序列,获取权重表,其中所述权重表包含每一个地址标签对应的权重信息;根据所述权重表构建访问策略表,并确定访问策略表中包含的内存地址的概率分布;根据概率分布结果确定下一个被访问的内存地址。
3.根据权利要求1或2所述的方法,其特征在于,所述根据概率分布结果确定下一个被访问的内存地址,包括:对所述概率分布结果进行加权计算;对加权计算后的概率分布结果进行排序,根据排序结果确定下一个被访问的内存地址。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:当所述内存访问流中包含历史内存地址访问序列,根据所述历史内存地址访问序列确定之前预测的被访问的内存地址与实际被访问的内存地址是否一致;如果之前预测的被访问的内存地址与实际被访问的内存地址不一致,确定所述内存访问流中包含的历史内存地址访问序列是否为内存访问流中第一个内存地址访问序列;当所述内存访问流中包含的历史内存地址访问序列为内存访问流中第一个内存地址访问序列,更新所述权重表和所述访问策略表;当所述内存访问流中包含的历史内存地址访问序列不是内存访问流中第一个内存地址访问序列,更新所述权重表。
5.根据权利要求1、2、4中任一项所述的方法,其特征在于,所述方法还包括:将概率分布结果按照从大到小排列,选择排序结果中前n个概率分布结果对应的内存地址;当所述内存地址存在于内存模组的缓存单元中时,将所述内存地址标记为已处理内存地址;当所述内存地址未存在于内存模组的缓存单元中时,获取地址并分配到缓存单元中。
6.根据权利要求5所述的方法,其特征在于,当所述内存地址存在于内存模组的缓存单元中时,将所述内存地址标记为已处理内存地址之后,还包括:当所述内存地址存在于最快的存储单元中时,获取并分配所述内存地址;当所述内存地址未存在于最快的存储单元中时,获取所述内存地址并分配到更快一级的存储单元中。
7.一种内存访问地址预测装置,其特征在于,包括:第一确定模块,用于当程序运行时,确定内存访问流中是否包含历史内存地址访问序列;获取模块,用于当所述内存访问流中包含历史内存地址访问序列,获取所述历史内存地址访问序列的内存地址数据,其中所述历史内存地址访问序列的内存地址数据包括:历史被访问的内存地址以及其对应的地址标签,所述地址标签按照各自的属性和特点分类,并分成两层,第一层是根据标签是否需要处理模块访问序列来进行计算分成了处理模块关联和非处理模块关联;第二层根据标签具体需要内存模组访问序列和处理模块访问序列中的具体输入内容分类,其中所述地址标签包括:处理模块关联标签和非处理模块关联标签,其中所述处理模块关联标签:对于内存访问流中和处理模块关联性强的内存访问模式所设置的标签;非处理模块关联标签:对于内存地址访问流中那些和处理模块关联性差的内存地址访问模式所设置的标签;所述处理模块关联标签包括处理模块局部标签、处理模块差值标签以及跨处理模块关系标签:其中处理模块局部标签:针对内存地址访问流中上一个内存地址访问的处理模块,只分析经过此处理模块的内存访问流,得到下一个关于此处理模块最可能的内存地址访问;处理模块差值标签:针对于上一个内存地址访问的处理模块,只分析经过此处理模块的内存地址访问流,在内存地址访问流中选择和上一内存地址访问中的内存模组地址差值为1024以内的内存地址访问流作为参数输入;跨处理模块关系标签:适用于一些跨处理模块的数据访问,将内存模组信息和处理模块信息关联,并得到一个结果;所述非处理模块关联标签包括全局标签、空间局部标签、增量标签、多次访问标签以及局部性访问标签:其中全局标签:只考虑内存模组访问序列,分析得到下一个最可能的地址;空间局部标签:仅考虑内存模组访问序列中距离上一个地址差值在1024内的结果;增量标签:分析此前内存模组访问序列之间的增量Delta关系;多次访问标签:预测在接下来的5次内存地址访问中最常出现的地址,如果有并列则取第一个;局部性访问标签:只将内存综合访问流中最近的10个内存综合访问作为参数并预测;计算模块,用于根据所述历史内存地址访问序列的内存地址数据利用预先训练好的神经网络模型计算历史被访问的内存地址的概率分布,包括:利用神经网络模型计算被访问的历史内存地址的特征矩阵,利用得到的特征矩阵来计算被访问的历史内存地址和预先设定好的地址标签之间的相关性,通过激活函数处理相关性矩阵得到内存访问流中被访问的历史内存地址的概率分布;第二确定模块,用于根据概率分布结果确定下一个被访问的内存地址。
8.根据权利要求7所述的内存访问地址预测装置,其特征在于,所述装置还包括:第一获取模块,用于当所述内存访问流中未包含历史内存地址访问序列,获取权重表,其中所述权重表包含每一个地址标签对应的权重信息;第三确定模块,用于根据所述权重表构建访问策略表,并确定访问策略表中包含的内存地址的概率分布。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行如权利要求1-6任一项所述的内存访问地址预测方法。
10.一种电子设备,其特征在于,包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行如权利要求1-6任一项所述的内存访问地址预测方法。



