CN114116528A - 一种内存访问地址预测方法、装置、存储介质及电子设备 - Google Patents
一种内存访问地址预测方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN114116528A CN114116528A CN202111389660.XA CN202111389660A CN114116528A CN 114116528 A CN114116528 A CN 114116528A CN 202111389660 A CN202111389660 A CN 202111389660A CN 114116528 A CN114116528 A CN 114116528A
- Authority
- CN
- China
- Prior art keywords
- memory
- memory address
- address
- access
- historical
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种内存访问地址预测方法、装置、存储介质及电子设备,当程序运行时,确定内存访问流中是否包含历史内存地址访问序列;当内存访问流中包含历史内存地址访问序列,获取历史内存地址访问序列的内存地址数据,其中历史内存地址访问序列的内存地址数据包括:历史被访问的内存地址以及其对应的地址标签;根据历史内存地址访问序列的内存地址数据利用预先训练好的神经网络模型计算历史被访问的内存地址的概率分布;根据概率分布结果确定下一个被访问的内存地址。该方法根据现有的内存地址数据并利用预先训练好的神经网络模型来计算历史被访问的内存地址的概率分布,概率分布计算结果更准确,数据获取与分配的效果更好。
Description
技术领域
本发明涉及计算机系统性能优化技术领域,具体涉及一种内存访问地址预测方法、装置、存储介质及电子设备。
背景技术
随着计算机硬件的发展,CPU主频已由过去MHz发展到了GHz,而常用硬盘的存取速率还不到100M/S,并且根据摩尔定律,微处理器的速度以及单片集成度每18个月就会翻一番,但像磁盘这样的机械电子设备,存取速率每年仅增加约8%。常用的存储介质从光盘、磁盘、内存到高速缓存,存取速度越来越快,但是成本也越来越高。为了在成本和性能之间进行平衡,现代计算机体系架构往往选择使用少量性能高但成本也高的存储器作为速度慢而成本也低的存储器的缓存,为了保证程序能够连续的执行下去,处理器必须具有某些手段来确定下一条指令的地址。
目前采用地址增量(delta)预测方法时对于全局内存综合访问流中连续输入的地址A和B,根据此前的内存综合访问流,捕获A和B之间的相关性。目前相关性的定义方法一般基于设定好的规则,根据此规则求增量的增长速度。使用该方法判断相关性时,针对处理模块局部性获取与分配时,现有的处理模块局部性获取与分配规则在面对那些多个处理模块之间有数据依赖的情况时表现非常差;且所有的内存综合访问都只能设置相同的内存综合访问模式,不能根据现有的数据调整已有的规则,不能实时更新策略和权重表,无法保证数据获取并分配的效果。
发明内容
有鉴于此,本发明实施例提供了涉及一种内存访问地址预测方法、装置、存储介质及电子设备,以解决现有技术中数据获取与分配效果差的技术问题。
本发明提出的技术方案如下:
本发明实施例第一方面提供一种内存访问地址预测方法,该内存访问地址预测方法包括:当程序运行时,确定内存访问流中是否包含历史内存地址访问序列;当所述内存访问流中包含历史内存地址访问序列,获取所述历史内存地址访问序列的内存地址数据,其中所述历史内存地址访问序列的内存地址数据包括:历史被访问的内存地址以及其对应的地址标签;根据所述历史内存地址访问序列的内存地址数据利用预先训练好的神经网络模型计算历史被访问的内存地址的概率分布;根据概率分布结果确定下一个被访问的内存地址。
可选地,所述方法还包括:当所述内存访问流中未包含历史内存地址访问序列,获取权重表,其中所述权重表包含每一个地址标签对应的权重信息;根据所述权重表构建访问策略表,并确定访问策略表中包含的内存地址的概率分布;根据概率分布结果确定下一个被访问的内存地址。
可选地,所述根据概率分布结果确定下一个被访问的内存地址,包括:对所述概率分布结果进行加权计算;对加权计算后的概率分布结果进行排序,根据排序结果确定下一个被访问的内存地址。
可选地,所述方法还包括:当所述内存访问流中包含历史内存地址访问序列,根据所述历史内存地址访问序列确定之前预测的被访问的内存地址与实际被访问的内存地址是否一致;如果之前预测的被访问的内存地址与实际被访问的内存地址不一致,确定所述内存访问流中包含的历史内存地址访问序列是否为内存访问流中第一个内存地址访问序列;当所述内存访问流中包含的历史内存地址访问序列为内存访问流中第一个内存地址访问序列,更新所述权重表和所述访问策略表;当所述内存访问流中包含的历史内存地址访问序列不是内存访问流中第一个内存地址访问序列,更新所述权重表。
可选地,所述方法还包括:将概率分布结果按照从大到小排列,选择排序结果中前n个概率分布结果对应的内存地址;当所述内存地址存在于内存模组的缓存单元中时,将所述内存地址标记为已处理内存地址;当所述内存地址未存在于内存模组的缓存单元中时,获取地址并分配到缓存单元中。
可选地,当所述内存地址存在于内存模组的缓存单元中时,将所述内存地址标记为已处理内存地址之后,还包括:当所述内存地址存在于最快的存储单元中时,获取并分配所述内存地址;当所述内存地址未存在于最快的存储单元中时,获取所述内存地址并分配到更快一级的存储单元中。
本发明实施例第二方面提供一种内存访问地址预测装置,该内存访问地址预测装置包括:第一确定模块,用于当程序运行时,确定内存访问流中是否包含历史内存地址访问序列;获取模块,用于当所述内存访问流中包含历史内存地址访问序列,获取所述历史内存地址访问序列的内存地址数据,其中所述历史内存地址访问序列的内存地址数据包括:历史被访问的内存地址以及其对应的地址标签;计算模块,用于根据所述历史内存地址访问序列的内存地址数据利用预先训练好的神经网络模型计算历史被访问的内存地址的概率分布;第二确定模块,用于根据概率分布结果确定下一个被访问的内存地址。
可选地,所述装置还包括:第一获取模块,用于当所述内存访问流中未包含历史内存地址访问序列,获取权重表,其中所述权重表包含每一个地址标签对应的权重信息;第三确定模块,用于根据所述权重表构建访问策略表,并确定访问策略表中包含的内存地址的概率分布。
本发明实施例第三方面提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行如本发明实施例第一方面及第一方面任一项所述的内存访问地址预测方法。
本发明实施例第四方面提供一种电子设备,包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行如本发明实施例第一方面及第一方面任一项所述的内存访问地址预测方法。
本发明提供的技术方案,具有如下效果:
本发明实施例提供的内存访问地址预测方法,当程序运行时,确定内存访问流中是否包含历史内存地址访问序列;当所述内存访问流中包含历史内存地址访问序列,获取所述历史内存地址访问序列的内存地址数据,其中所述历史内存地址访问序列的内存地址数据包括:历史被访问的内存地址以及其对应的地址标签;根据所述历史内存地址访问序列的内存地址数据利用预先训练好的神经网络模型计算历史被访问的内存地址的概率分布;根据概率分布结果确定下一个被访问的内存地址。该方法根据现有的内存地址数据并利用预先训练好的神经网络模型来计算历史被访问的内存地址的概率分布,概率分布计算结果更准确,数据获取与分配的效果更好。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的内存访问地址预测方法的流程图;
图2是根据本发明实施例的内存访问地址预测装置的结构框图;
图3是根据本发明实施例提供的计算机可读存储介质的结构示意图;
图4是根据本发明实施例提供的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种内存访问地址预测方法,如图1所示,该方法包括如下步骤:
步骤S101:当程序运行时,确定内存访问流中是否包含历史内存地址访问序列。具体地,在对内存访问地址进行访问之前,首先确定访问该内存地址访问序列之前是否存在已经被访问过的内存地址访问序列。其中,内存地址访问序列包括内存模组访问序列和处理模块访问序列。
步骤S102:当内存访问流中包含历史内存地址访问序列,获取历史内存地址访问序列的内存地址数据,其中历史内存地址访问序列的内存地址数据包括:历史被访问的内存地址以及其对应的地址标签。具体地,在对内存地址访问序列进行访问之前存在已经被访问过的内存地址访问序列时,获取该已经被访问过的内存地址访问序列的内存地址数据,该内存地址数据包括内存地址以及其对应的地址标签。
将地址标签按照各自的属性和特点分类,并分成两层。第一层是根据标签是否需要处理模块访问序列来进行计算分成了处理模块关联和非处理模块关联;第二层根据标签具体需要内存模组访问序列和处理模块访问序列中的具体输入内容分类。
具体地,根据该分类方法,地址标签包括:
(1)处理模块关联标签:对于内存访问流中和处理模块关联性较强的内存访问模式所设置的标签。该标签计算方法定义为:
P(AddrPMi|AddrPMi-1,AddrPMi-2,AddrPMi-3……AddrPM1)
其中,AddrPMi表示处理模块访问序列,记录了之前的内存地址访问中访问过的处理模块;
当要计算内存访问流中第i个输入的内存访问地址时,依赖于内存访问流中中上一个输出的内存访问地址。具体地,当前时刻还没有实际输入,是预测地址标签,因此利用概率P的公式来定义。
①处理模块局部标签:针对内存地址访问流中上一个内存地址访问的处理模块,只分析经过此处理模块的内存访问流,得到下一个关于此处理模块最可能的内存地址访问。
②处理模块差值标签:针对于上一个内存地址访问的处理模块,只分析经过此处理模块的内存地址访问流,在内存地址访问流中选择和上一内存地址访问中的内存模组地址差值为1024以内的内存地址访问流作为参数输入。
③跨处理模块关系标签:适用于一些跨处理模块的数据访问,将内存模组信息和处理模块信息关联,并得到一个结果。具体地,首先单独预测处理模块序列的访问规律:
P(PMi|PMi-1,PMi-2,PMi-3……PM1)
然后根据处理模块PM的结果,分析经过此处理模块的内存综合访问流,得到下一个关于此处理模块最可能的内存综合访问。
(2)非处理模块关联标签:对于内存地址访问流中那些和处理模块关联性较差的内存地址访问模式所设置的标签,其计算方法定义为:
P(Addri|Addri-1,Addri-2,Addri-3……Addr1)
其中,Addri表示内存模组访问序列
①全局标签:只考虑内存模组访问序列,分析得到下一个最可能的地址。
②空间局部标签:仅考虑内存模组访问序列中距离上一个地址差值在1024内的结果。
③增量标签:分析此前内存模组访问序列之间的增量Delta关系:
Addri=Addri-1+Delta
其中,增量Delta是分析此前的内存模组访问序列后得到的。
④多次访问标签:预测在接下来的5次内存地址访问中最常出现的地址,如果有并列则取第一个。
⑤局部性访问标签:只将内存综合访问流中最近的10个内存综合访问作为参数并预测。
步骤S103:根据历史内存地址访问序列的内存地址数据利用预先训练好的神经网络模型计算历史被访问的内存地址的概率分布。具体地,获取历史内存地址访问序列的内存地址数据之后,首先用神经网络计算被访问的历史内存地址的特征矩阵,将原有的高维稀疏矩阵转化为有意义的低维特征矩阵,然后用激活函数计算内存访问流中被访问的历史内存地址的概率分布。其中,激活函数是人工神经网络的神经元上运行的函数,可以将神经元的输入映射到输出端。
具体地,利用得到的特征矩阵来计算被访问的历史内存地址和预先设定好的地址标签之间的概率关系即相关性,通过激活函数处理该相关性矩阵可以得到内存访问流中被访问的历史内存地址的概率分布。
在一实施例中,历史内存访问中,一个内存地址和处理模块局部标签的相关性是50,和处理模块差值标签的相关性是30;另一个内存地址和处理模块局部标签的相关性是20,和处理模块差值标签的相关性是40,则矩阵[50,30,20,40]就是该历史内存地址的概率分布。其中,相关性的值可以通过特征矩阵实时计算得到。
步骤S104:根据概率分布结果确定下一个被访问的内存地址。
本发明实施例提供的内存访问地址预测方法,当程序运行时,确定内存访问流中是否包含历史内存地址访问序列;当内存访问流中包含历史内存地址访问序列,获取历史内存地址访问序列的内存地址数据,其中历史内存地址访问序列的内存地址数据包括:历史被访问的内存地址以及其对应的地址标签;根据历史内存地址访问序列的内存地址数据利用预先训练好的神经网络模型计算历史被访问的内存地址的概率分布;根据概率分布结果确定下一个被访问的内存地址。该方法根据现有的内存地址数据并利用预先训练好的神经网络模型来计算历史被访问的内存地址的概率分布,概率分布计算结果更准确,数据获取与分配的效果更好。
作为本发明实施例一种可选的实施方式,当内存访问流中未包含历史内存地址访问序列,获取权重表,其中权重表包含每一个地址标签对应的权重信息。具体地,在对内存地址访问序列进行访问之前不存在已经被访问过的内存地址访问序列时,获取权重表。其中,权重表用来参与内存访问地址预测中的权重决定,包含每一个地址标签对应的权重信息;权重信息在实际的内存地址访问后更新,可以根据内存访问地址预测结果以及准确程度调整每个地址标签的权重占比来适应不同的内存访问流输入。
具体地,权重表如表1所示,计算公式为:
式中,AddrLabeli指预测成功的内存地址对应的所有地址标签;MMLevel指内存地址被使用时在内存模组中的级别,具体地,如果没有预测成功则该值为0;
将计算结果更新到权重表1中。
表1
Label | Weight |
获取权重表之后,根据该权重表构建访问策略表,并确定访问策略表中包含的内存地址的概率分布。其中,访问策略表包括备选表和先前地址表。
具体地,如表2所示,备选表包括两列。其中,第一列有5个数据,分别为常量权重CWeight,预测权重PWeight,预测地址PreAddr,常量地址ConAddr和上次内存综合访问流的最后地址LastAddr。
表2
Key | Value |
CWeight | |
PWeight | |
PreAddr | |
ConAddr | |
LastAddr |
如表3所示,先前地址表中包括两列数据。其中,第一列是先前内存综合访问流中第一个地址Addr,第二列是对应第一列地址出现的次数Times。
表3
Addr | Times |
构建访问策略表之后,根据权重选择内存地址。具体地,首先计算上一次内存访问流中最后访问的内存地址LastAddr并得到一些地址结果,选择其中概率最大的地址Addr作为预测地址PreAddr:
PreAddr=max(P(Addr|LastAddr))
然后计算常量地址ConAddr。具体地,直接选择在先前地址表中出现次数最多的地址作为常量地址ConAddr:
ConAddr=maxTimes(Addr)
然后根据权重选择内存地址。具体地,如果常量权重CWeight更大,则选择常量地址ConAddr;如果预测权重PWeight更大,则选择预测地址PreAddr。计算公式为:
SelectType=max(CWeight,PWeight)
选择内存地址之后,根据步骤S103计算概率分布。
作为本发明实施例一种可选的实施方式,当内存访问流中包含历史内存地址访问序列时,根据历史内存地址访问序列确定之前预测的被访问的内存地址与实际被访问的内存地址是否一致;如果之前预测的被访问的内存地址与实际被访问的内存地址不一致,确定内存访问流中包含的历史内存地址访问序列是否为内存访问流中第一个内存地址访问序列;当内存访问流中包含的历史内存地址访问序列为内存访问流中第一个内存地址访问序列时,更新权重表和访问策略表;当内存访问流中包含的历史内存地址访问序列不是内存访问流中第一个内存地址访问序列,更新权重表。
更新权重表或访问策略表之后,计算该历史内存地址访问序列的概率分布。具体的实施方式可以参照上面根据权重选择内存地址,并根据步骤S103计算概率分布的过程实现,此处不再赘述。
作为本发明实施例一种可选的实施方式,在确定概率分布结果之后,根据概率分布结果可以确定下一个被访问的内存地址。具体地,根据权重表的实时权重,对概率分布结果进行加权计算:
式中,AddrLi表示本次输入的内存访问地址中,对于第i个地址标签匹配的概率相关性计算结果;WwightLi表示第i个地址标签此时在权重表中的权重值。其中,i∈[1,n],n为预设的地址标签的总数。
将加权计算后的概率分布结果进行降序排序,并根据排序结果确定下一个被访问的内存地址。具体地,将概率分布结果按照从大到小排列,并选择排序结果中前n个概率分布结果对应的内存地址。
在一实施例中,选择排序结果中的前n个内存地址,得到排序筛选结果SeqAdde。其中,n=内存模组的存储单元按速率分级的总级数。
确定选取的n个内存地址是否已经存在于内存模组的存储单元中。当内存地址未存在于内存模组的缓存单元中时,获取地址并分配到缓存单元中。具体地,将排序筛选结果中未处理的内存地址存储到对应的内存单元。
在一实施例中,将排序筛选结果SeqAddr中未处理的内存地址存储到对应的内存单元中,具体的对应关系为:
SeqAddr[i]→MUi
其中,SeqAddr[i]表示在排序筛选结果SeqAddr中第i个地址;MUi表示不同速率的存储单元,i∈[1,n]表示存储单元的速率。当i的值越小时,内存单元访问速度越快。
当内存地址存在于内存模组的缓存单元中时,将内存地址标记为已处理内存地址,避免后续的操作中重复获取并分配。标记为已处理内存地址之后,进一步确定对应的内存地址是否已经存在于最快的存储单元中。当内存地址存在于最快的存储单元中时,获取并分配内存地址;当内存地址未存在于最快的存储单元中时,获取内存地址并分配到更快一级的存储单元中。具体地,常用的存储介质从光盘、磁盘、内存到高速缓存,存取速度越来越快。
在一实施例中,将存在于第i级速率存储单元的地址数据获取并分配到i-1级速率的存储单元中。其中,当第i级速率存储单元依次为光盘、磁盘、内存时,对应的第i-1级速率的存储单元分别为磁盘、内存、高速缓存,即存储到存取速度更快的存储单元中。
本发明实施例还提供一种内存访问地址预测装置,如图2所示,该装置包括:
第一确定模块401,用于当程序运行时,确定内存访问流中是否包含历史内存地址访问序列;详细内容参见上述方法实施例中步骤S101的相关描述。
获取模块402,用于当内存访问流中包含历史内存地址访问序列,获取历史内存地址访问序列的内存地址数据,其中历史内存地址访问序列的内存地址数据包括:历史被访问的内存地址以及其对应的地址标签;详细内容参见上述方法实施例中步骤S102的相关描述。
计算模块403,用于根据历史内存地址访问序列的内存地址数据利用预先训练好的神经网络模型计算历史被访问的内存地址的概率分布;详细内容参见上述方法实施例中步骤S103的相关描述。
第二确定模块404,用于根据概率分布结果确定下一个被访问的内存地址。详细内容参见上述方法实施例中步骤S104的相关描述。
本发明实施例提供的内存访问地址预测装置,当程序运行时,确定内存访问流中是否包含历史内存地址访问序列;当内存访问流中包含历史内存地址访问序列,获取历史内存地址访问序列的内存地址数据,其中历史内存地址访问序列的内存地址数据包括:历史被访问的内存地址以及其对应的地址标签;根据历史内存地址访问序列的内存地址数据利用预先训练好的神经网络模型计算历史被访问的内存地址的概率分布;根据概率分布结果确定下一个被访问的内存地址。该方法根据现有的内存地址数据并利用预先训练好的神经网络模型来计算历史被访问的内存地址的概率分布,概率分布计算结果更准确,数据获取与分配的效果更好。
作为本发明实施例一种可选的实施方式,该装置还包括:第一获取模块,用于当内存访问流中未包含历史内存地址访问序列,获取权重表,其中权重表包含每一个地址标签对应的权重信息;第三确定模块,用于根据权重表构建访问策略表,并确定访问策略表中包含的内存地址的概率分布。
作为本发明实施例一种可选的实施方式,该装置还包括:计算模块,用于对概率分布结果进行加权计算;第四确定模块,用于对加权计算后的概率分布结果进行排序,根据排序结果确定下一个被访问的内存地址。
作为本发明实施例一种可选的实施方式,该装置还包括:第一判断模块,用于当内存访问流中包含历史内存地址访问序列,根据历史内存地址访问序列确定之前预测的被访问的内存地址与实际被访问的内存地址是否一致;第二判断模块,用于如果之前预测的被访问的内存地址与实际被访问的内存地址不一致,确定内存访问流中包含的历史内存地址访问序列是否为内存访问流中第一个内存地址访问序列;第一更新模块,用于当内存访问流中包含的历史内存地址访问序列为内存访问流中第一个内存地址访问序列,更新权重表和访问策略表;第二更新模块,用于当内存访问流中包含的历史内存地址访问序列不是内存访问流中第一个内存地址访问序列,更新权重表。
作为本发明实施例一种可选的实施方式,该装置还包括:选择模块,用于将概率分布结果按照从大到小排列,选择排序结果中前n个概率分布结果对应的内存地址;标记模块,用于当内存地址存在于内存模组的缓存单元中时,将内存地址标记为已处理内存地址;第一处理模块,用于当内存地址未存在于内存模组的缓存单元中时,获取地址并分配到缓存单元中。
作为本发明实施例一种可选的实施方式,该装置还包括:第二处理模块,用于当内存地址存在于最快的存储单元中时,获取并分配内存地址;第三处理模块,用于当内存地址未存在于最快的存储单元中时,获取内存地址并分配到更快一级的存储单元中。
本发明实施例提供的内存访问地址预测装置的功能描述详细参见上述实施例中内存访问地址预测方法描述。
本发明实施例还提供一种存储介质,如图3所示,其上存储有计算机程序601,该指令被处理器执行时实现上述实施例中内存访问地址预测方法的步骤。该存储介质上还存储有音视频流数据,特征帧数据、交互请求信令、加密数据以及预设数据大小等。其中,存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(RandomAccess Memory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等;所述存储介质还可以包括上述种类的存储器的组合。
本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(Random AccessMemory,RAM)、快闪存储器(FlashMemory)、硬盘(Hard Disk Drive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等;所述存储介质还可以包括上述种类的存储器的组合。
本发明实施例还提供了一种电子设备,如图4所示,该电子设备可以包括处理器51和存储器52,其中处理器51和存储器52可以通过总线或者其他方式连接,图4中以通过总线连接为例。
处理器51可以为中央处理器(Central Processing Unit,CPU)。处理器51还可以为其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。
存储器52作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本发明实施例中的对应的程序指令/模块。处理器51通过运行存储在存储器52中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及数据处理,即实现上述方法实施例中的内存访问地址预测方法。
存储器52可以包括存储程序区和存储数据区,其中,存储程序区可存储操作装置、至少一个功能所需要的应用程序;存储数据区可存储处理器51所创建的数据等。此外,存储器52可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器52可选包括相对于处理器51远程设置的存储器,这些远程存储器可以通过网络连接至处理器51。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
所述一个或者多个模块存储在所述存储器52中,当被所述处理器51执行时,执行如图1所示实施例中的内存访问地址预测方法。
上述电子设备具体细节可以对应参阅图1所示的实施例中对应的相关描述和效果进行理解,此处不再赘述。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (10)
1.一种内存访问地址预测方法,其特征在于,包括:
当程序运行时,确定内存访问流中是否包含历史内存地址访问序列;
当所述内存访问流中包含历史内存地址访问序列,获取所述历史内存地址访问序列的内存地址数据,其中所述历史内存地址访问序列的内存地址数据包括:历史被访问的内存地址以及其对应的地址标签;
根据所述历史内存地址访问序列的内存地址数据利用预先训练好的神经网络模型计算历史被访问的内存地址的概率分布;
根据概率分布结果确定下一个被访问的内存地址。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述内存访问流中未包含历史内存地址访问序列,获取权重表,其中所述权重表包含每一个地址标签对应的权重信息;
根据所述权重表构建访问策略表,并确定访问策略表中包含的内存地址的概率分布;
根据概率分布结果确定下一个被访问的内存地址。
3.根据权利要求1或2所述的方法,其特征在于,所述根据概率分布结果确定下一个被访问的内存地址,包括:
对所述概率分布结果进行加权计算;
对加权计算后的概率分布结果进行排序,根据排序结果确定下一个被访问的内存地址。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:
当所述内存访问流中包含历史内存地址访问序列,根据所述历史内存地址访问序列确定之前预测的被访问的内存地址与实际被访问的内存地址是否一致;
如果之前预测的被访问的内存地址与实际被访问的内存地址不一致,确定所述内存访问流中包含的历史内存地址访问序列是否为内存访问流中第一个内存地址访问序列;
当所述内存访问流中包含的历史内存地址访问序列为内存访问流中第一个内存地址访问序列,更新所述权重表和所述访问策略表;
当所述内存访问流中包含的历史内存地址访问序列不是内存访问流中第一个内存地址访问序列,更新所述权重表。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述方法还包括:
将概率分布结果按照从大到小排列,选择排序结果中前n个概率分布结果对应的内存地址;
当所述内存地址存在于内存模组的缓存单元中时,将所述内存地址标记为已处理内存地址;
当所述内存地址未存在于内存模组的缓存单元中时,获取地址并分配到缓存单元中。
6.根据权利要求5所述的方法,其特征在于,当所述内存地址存在于内存模组的缓存单元中时,将所述内存地址标记为已处理内存地址之后,还包括:
当所述内存地址存在于最快的存储单元中时,获取并分配所述内存地址;
当所述内存地址未存在于最快的存储单元中时,获取所述内存地址并分配到更快一级的存储单元中。
7.一种内存访问地址预测装置,其特征在于,包括:
第一确定模块,用于当程序运行时,确定内存访问流中是否包含历史内存地址访问序列;
获取模块,用于当所述内存访问流中包含历史内存地址访问序列,获取所述历史内存地址访问序列的内存地址数据,其中所述历史内存地址访问序列的内存地址数据包括:历史被访问的内存地址以及其对应的地址标签;
计算模块,用于根据所述历史内存地址访问序列的内存地址数据利用预先训练好的神经网络模型计算历史被访问的内存地址的概率分布;
第二确定模块,用于根据概率分布结果确定下一个被访问的内存地址。
8.根据权利要求7所述的内存访问地址预测装置,其特征在于,所述装置还包括:
第一获取模块,用于当所述内存访问流中未包含历史内存地址访问序列,获取权重表,其中所述权重表包含每一个地址标签对应的权重信息;
第三确定模块,用于根据所述权重表构建访问策略表,并确定访问策略表中包含的内存地址的概率分布。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行如权利要求1-6任一项所述的内存访问地址预测方法。
10.一种电子设备,其特征在于,包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行如权利要求1-6任一项所述的内存访问地址预测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111389660.XA CN114116528B (zh) | 2021-11-22 | 2021-11-22 | 一种内存访问地址预测方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111389660.XA CN114116528B (zh) | 2021-11-22 | 2021-11-22 | 一种内存访问地址预测方法、装置、存储介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114116528A true CN114116528A (zh) | 2022-03-01 |
CN114116528B CN114116528B (zh) | 2022-11-11 |
Family
ID=80439723
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111389660.XA Active CN114116528B (zh) | 2021-11-22 | 2021-11-22 | 一种内存访问地址预测方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114116528B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116680206A (zh) * | 2023-08-04 | 2023-09-01 | 浪潮电子信息产业股份有限公司 | 内存扩展方法、装置、系统、电子设备及可读存储介质 |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1729220A1 (en) * | 2004-03-24 | 2006-12-06 | Matsushita Electric Industrial Co., Ltd. | Cache memory and control method thereof |
US7519777B1 (en) * | 2008-06-11 | 2009-04-14 | International Business Machines Corporation | Methods, systems and computer program products for concomitant pair prefetching |
US20110087866A1 (en) * | 2009-10-14 | 2011-04-14 | Shah Manish K | Perceptron-based branch prediction mechanism for predicting conditional branch instructions on a multithreaded processor |
CN102841857A (zh) * | 2012-07-25 | 2012-12-26 | 龙芯中科技术有限公司 | 缓存预测执行的处理器与装置及方法 |
CN110532200A (zh) * | 2019-08-26 | 2019-12-03 | 北京大学深圳研究生院 | 一种基于混合内存架构的内存系统 |
US20200019506A1 (en) * | 2018-07-11 | 2020-01-16 | Micron Technology, Inc. | Predictive Paging to Accelerate Memory Access |
CN110795363A (zh) * | 2019-08-26 | 2020-02-14 | 北京大学深圳研究生院 | 一种存储介质的热页预测方法和页面调度方法 |
CN111143243A (zh) * | 2019-12-19 | 2020-05-12 | 上海交通大学 | 一种基于nvm混合内存的缓存预取方法及系统 |
CN112199304A (zh) * | 2019-07-08 | 2021-01-08 | 华为技术有限公司 | 数据预取方法及装置 |
CN112262374A (zh) * | 2018-06-12 | 2021-01-22 | 华为技术有限公司 | 一种内存管理方法、装置及系统 |
CN112667528A (zh) * | 2019-10-16 | 2021-04-16 | 华为技术有限公司 | 一种数据预取的方法及相关设备 |
CN113065643A (zh) * | 2021-04-12 | 2021-07-02 | 天津中科虹星科技有限公司 | 一种用于执行多任务卷积神经网络预测的装置和方法 |
CN113128773A (zh) * | 2021-04-23 | 2021-07-16 | 中国工商银行股份有限公司 | 地址预测模型的训练方法、地址预测方法及装置 |
CN113656332A (zh) * | 2021-08-20 | 2021-11-16 | 中国科学院上海高等研究院 | 基于合并地址差值序列的cpu缓存数据预取方法 |
-
2021
- 2021-11-22 CN CN202111389660.XA patent/CN114116528B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1729220A1 (en) * | 2004-03-24 | 2006-12-06 | Matsushita Electric Industrial Co., Ltd. | Cache memory and control method thereof |
US7519777B1 (en) * | 2008-06-11 | 2009-04-14 | International Business Machines Corporation | Methods, systems and computer program products for concomitant pair prefetching |
US20110087866A1 (en) * | 2009-10-14 | 2011-04-14 | Shah Manish K | Perceptron-based branch prediction mechanism for predicting conditional branch instructions on a multithreaded processor |
CN102841857A (zh) * | 2012-07-25 | 2012-12-26 | 龙芯中科技术有限公司 | 缓存预测执行的处理器与装置及方法 |
CN112262374A (zh) * | 2018-06-12 | 2021-01-22 | 华为技术有限公司 | 一种内存管理方法、装置及系统 |
US20200019506A1 (en) * | 2018-07-11 | 2020-01-16 | Micron Technology, Inc. | Predictive Paging to Accelerate Memory Access |
CN112199304A (zh) * | 2019-07-08 | 2021-01-08 | 华为技术有限公司 | 数据预取方法及装置 |
CN110795363A (zh) * | 2019-08-26 | 2020-02-14 | 北京大学深圳研究生院 | 一种存储介质的热页预测方法和页面调度方法 |
CN110532200A (zh) * | 2019-08-26 | 2019-12-03 | 北京大学深圳研究生院 | 一种基于混合内存架构的内存系统 |
CN112667528A (zh) * | 2019-10-16 | 2021-04-16 | 华为技术有限公司 | 一种数据预取的方法及相关设备 |
CN111143243A (zh) * | 2019-12-19 | 2020-05-12 | 上海交通大学 | 一种基于nvm混合内存的缓存预取方法及系统 |
CN113065643A (zh) * | 2021-04-12 | 2021-07-02 | 天津中科虹星科技有限公司 | 一种用于执行多任务卷积神经网络预测的装置和方法 |
CN113128773A (zh) * | 2021-04-23 | 2021-07-16 | 中国工商银行股份有限公司 | 地址预测模型的训练方法、地址预测方法及装置 |
CN113656332A (zh) * | 2021-08-20 | 2021-11-16 | 中国科学院上海高等研究院 | 基于合并地址差值序列的cpu缓存数据预取方法 |
Non-Patent Citations (1)
Title |
---|
YI WANG: ""Towards memory-efficient processing-in-memory architecture for convolutional neural networks"", 《LCTES 2017: PROCEEDINGS OF THE 18TH ACM SIGPLAN/SIGBED CONFERENCE ON LANGUAGES, COMPILERS, AND TOOLS FOR EMBEDDED SYSTEMS》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116680206A (zh) * | 2023-08-04 | 2023-09-01 | 浪潮电子信息产业股份有限公司 | 内存扩展方法、装置、系统、电子设备及可读存储介质 |
CN116680206B (zh) * | 2023-08-04 | 2024-01-12 | 浪潮电子信息产业股份有限公司 | 内存扩展方法、装置、系统、电子设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114116528B (zh) | 2022-11-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108563739B (zh) | 天气数据获取方法及装置、计算机装置及可读存储介质 | |
CN104050240A (zh) | 一种确定搜索查询词类别属性的方法和装置 | |
CN114116528B (zh) | 一种内存访问地址预测方法、装置、存储介质及电子设备 | |
CN110991247B (zh) | 一种基于深度学习与nca融合的电子元器件识别方法 | |
CN113838303B (zh) | 停车场推荐方法、装置、电子设备及存储介质 | |
CN110069558A (zh) | 基于深度学习的数据分析方法及终端设备 | |
CN113326177A (zh) | 一种指标异常检测方法、装置、设备及存储介质 | |
CN116527398A (zh) | 物联网卡风险识别方法、装置、设备及存储介质 | |
CN110162272B (zh) | 一种内存计算缓存管理方法及装置 | |
CN111858267A (zh) | 预警方法、装置、电子设备及存储介质 | |
CN116703466A (zh) | 基于改进灰狼算法的系统访问量预测方法及其相关设备 | |
CN116862106A (zh) | 一种城市建设用地更新潜力分析方法、装置、终端及介质 | |
CN116108976A (zh) | 一种超短期风速预测方法 | |
CN115168509A (zh) | 风控数据的处理方法及装置、存储介质、计算机设备 | |
CN114254762A (zh) | 可解释性机器学习模型构建方法、装置和计算机设备 | |
CN113095589A (zh) | 一种人口属性确定方法、装置、设备及存储介质 | |
CN113220551A (zh) | 指标趋势预测及预警方法、装置、电子设备及存储介质 | |
TWI814623B (zh) | 圖像識別方法、電腦設備及儲存介質 | |
CN115146596B (zh) | 召回文本的生成方法、装置、电子设备及存储介质 | |
Lai et al. | {AdaEmbed}: Adaptive Embedding for {Large-Scale} Recommendation Models | |
CN116595428B (zh) | 一种基于cnn使用日志频谱分析的用户分类方法及系统 | |
CN116542727A (zh) | 一种基于数据模型化的海运运价趋势分析方法和系统 | |
CN117764617A (zh) | 一种基于大数据分析的物业运行成本预测方法和装置 | |
CN118114787A (zh) | 一种目标域模型训练方法、系统、设备和存储介质 | |
CN114862618A (zh) | 基于人工智能的城市用水量预测方法、装置、设备及介质 |
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 |