一种数据预取方法及装置的制造方法_5

文档序号:8430727阅读:来源:国知局
预先设置的预取深度。
[0184]可选的,所述装置还可以包括:
[0185]统计模块65,用于统计特定时间段内的预取准确率、预取有害率和预取迟到率,其中,所述预取准确率为预取命中次数除以总预取次数,所述预取有害率为污染预取次数除以总预取次数,所述预取迟到率为迟到预取次数除以预取命中次数。
[0186]可选的,上述预取准确率可以包括线性流预取准确率和链式流预取准确率,上述预取有害率可以包括线性流预取有害率和链式流预取有害率,上述预取迟到率可以包括线性流预取迟到率和链式流预取迟到率。另外,上述特定时间段可以是理解为一个周期,本实施例中可以存在多个周期。
[0187]可选的,所述预取模块64可以用于当所述线性流训练模式发现的预取模式为线性流预模式,且线性流预取准确率超过第一预设阈值时,增加预取深度,采用所述线性流预取模式进行预取,所述预取的深度为所述增加后的预取深度。
[0188]可选的,所述预取模块64可以用于当所述线性流训练模式发现的预取模式为线性流预模式,且所述线性流预取准确率超过第一预设阈值,且所述线性流预取迟到率超过第二预设阈值时,增加预取深度,并增加预取距离,采用所述线性流预取模式进行预取,所述预取的深度为所述增加后的预取深度,所述预取的距离为所述增加后的预取距离。
[0189]可选的,所述预取模块64可以用于当所述线性流训练模式发现的预取模式为线性流预模式,且所述线性流预取有害率超过第三预设阈值时,减少预取深度,采用所述线性流预取模式进行预取,所述预取的深度为所述减少后的预取深度。
[0190]可选的,所述预取模块64可以用于当所述链式流训练模式发现的预取模式为链式流预模式,且所述链式流预取准确率超过第一预设阈值时,增加预取深度,采用所述链式流预取模式进行预取,所述预取的深度为所述增加后的预取深度。
[0191]可选的,所述预取模块64可以用于当所述链式流训练模式发现的预取模式为链式流预模式,且所述链式流预取准确率超过第一预设阈值,且所述链式流预取迟到率超过第二预设阈值时,增加预取深度,并增加预取距离,采用所述链式流预取模式进行预取,所述预取的深度为所述增加后的预取深度,所述预取的距离为所述增加后的预取距离。
[0192]可选的,所述预取模块64可以用于当所述链式流训练模式发现的预取模式为链式流预模式,且所述链式流预取有害率超过第三预设阈值时,减少预取深度,采用所述链式流预取模式进行预取,所述预取的深度为所述减少后的预取深度。
[0193]通过上述多种实现方式,就可以实现根据实际情况调整预取的深度和距离。
[0194]可选的,上述装置可以应用于可以应用于任何具备数据缓存功能的设备中的预取引擎,其中,该设备可以是:服务器、基站、平板电脑、手机、电子阅读器、遥控器、pC、笔记本电脑、车载设备、网络电视、可穿戴设备等具有网络功能的智能设备。预取引擎可以是一个独立的处理器,也可以处理器中一个模块。
[0195]上述技术方案中,在上面实施例的基础上实现了多种可选的实施方式,且都可以实现提高预取的准确率。
[0196]请参阅图7,图7本发明实施例提供的另一种数据预取装置的结构示意图,如图7所示,包括:存储器71和缓存72,以及分别与存储器71和缓存72连接的处理器73,其中,所述存储器71用于存储数据和程序代码,处理器73用于调用存储器71存储的程序的执行如下操作:
[0197]获取缺失返回值;
[0198]根据所述缺失返回值判断训练模式;
[0199]当判断训练模式为目标训练模式时,采用所述目标训练模式对缺失地址进行训练,所述目标训练包括线性流训练模式或者链式流训练模式;
[0200]当所述目标训练模式发现的预取模式为目标预取模式时,采用所述目标预取模式进行预取;其中,所述目标预取模式包括线性流预取模式或者链式流预模式。
[0201]其中,上述预取可以是预取存储器71存储的数据,再将预取到的数据缓存至缓存72中。
[0202]可选的,处理器73执行的根据所述缺失返回值判断训练模式的操作,可以包括:
[0203]判断所述缺失返回值是否为缺失地址,若是,则判断训练模式为链式流训练模式,若否,则判断训练模式为线性流训练模式。
[0204]可选的,所述目标训练包括线性流训练模式;处理器73执行的采用所述目标训练模式对缺失地址进行训练的操作,可以包括:
[0205]获取第一缺失地址,并将所述第一缺失地址作为索引地址索引历史访存池MAP得到第一入口项entry ;当所述第一 entry的状态为初始状态时,记录所述第一缺失地址,并将所述第一 entry的状态设置为准训练状态;其中,所述MAP用于记录历史访存信息;
[0206]获取第二缺失地址,并将所述将第二缺失地址作为索引地址索引所述MAP得到所述第一 entry,当所述第一 entry的状态为准训练状态时,将所述第二缺失地址减去所述第一缺失地址得到第一计算距离,并将所述第一 entry的状态设置为模式发现状态;
[0207]获取第三缺失地址,并将所述将第三缺失地址作为索引地址索引所述MAP得到所述第一 entry,当所述第一 entry的状态为模式发现状态时,判断所述第三缺失地址与所述第二缺失地址之差是否等于所述第一计算距离,若是,则发现线性流预取模式;其中,所述第一缺失地址、第二缺失地址和第三缺失地址为相邻缺失地址;
[0208]可选的,处理器73执行的采用所述目标预取模式进行预取的操作,可以包括:
[0209]对所述第三缺失地址与所述第一计算距离之和的地址发起深度为N的预取,其中,所述N预先设置的预取深度;或者
[0210]对所述第三缺失地址与所述第一计算距离之和的地址发起深度为N的预取,并获取模式表PTB的最旧项,再修改所述最旧项,修改后的所述最旧项的首地址为所述第三缺失地址与所述第一计算距离之和,修改后的所述最旧项的尾地址为所述第三缺失地址与T倍所述第一计算距离之和,修改后的所述最旧项的距离为所述第一计算距离;当缓存命中,且所述缓存命中的地址在所述首地址和所述尾地址的中间时,继续向所述缓存命中的地址之后的地址发起预取;其中,所述N预先设置的预取深度,所述T为大于I的整数。
[0211]可选的,所述目标训练包括链式流训练模式;处理器73执行的采用所述目标训练模式对缺失地址进行训练的操作,可以包括:
[0212]获取第四缺失地址,并将所述第四缺失地址作为索引地址索引MAP得到第二入口项entry ;当所述第一 entry的状态为初始状态时,记录所述第四缺失地址的第一缺失返回值,并将所述第一 entry的状态设置为准训练状态;其中,所述MAP用于记录历史访存信息;
[0213]获取第五缺失地址,并将第五缺失地址作为索引地址索引所述MAP得到所述第二entry,当所述第二 entry的状态为准训练状态时,记录所述第五缺失地址的第二缺失返回值,再将所述第五缺失地址减去所述第一缺失返回值得到第二计算距离,并将所述第一entry的状态设置为模式发现状态;
[0214]获取第六缺失地址,并将第六缺失地址作为索引地址索引所述MAP得到所述第一entry,当所述第一 entry的状态为模式发现状态时,判断所述第六缺失地址与所述第二缺失返回值之差是否等于所述第二计算距离,若是,则发现链式流预取模式;其中,所述第四缺失地址、第五缺失地址和第六缺失地址为相邻缺失地址;
[0215]可选的,处理器73执行的采用所述目标预取模式进行预取的操作,可以包括:
[0216]对所述第三缺失返回值与所述第二计算距离之和的地址发起深度为N的预取,其中,所述N预先设置的预取深度;或者
[0217]对所述第三缺失返回值与所述第二计算距离之和的地址发起深度为N的预取,并获取模式表PTB的最旧项,再修改所述最旧项,修改后的所述最旧项的首地址为所述第三缺失返回值与所述第二计算距离之和,修改后的所述最旧项的尾地址为所述预取中最后一次预取的地址,修改后的所述最旧项的距离为所述第二计算距离;当缓存命中,且所述缓存命中的地址为所述首地址或者所述尾地址时,继续向所述缓存命中的地址之后的地址发起预取;其中,所述N预先设置的预取深度。
[0218]可选的,处理器73还可以用于执行如下操作:
[0219]统计特定时间段内的预取准确率、预取有害率和预取迟到率,其中,所述预取准确率为预取命中次数除以总预取次数,所述预取有害率为污染预取次数除以总预取次数,所述预取迟到率为迟到预取次数除以预取命中次数;
[0220]所述处理器73执行的采用所述目标预取模式进行预取的操作,可以包括:
[0221]当所述预取准确率超过第一预设阈值时,增加预取深度,采用所述目标预取模式进行预取,所述预取的深度为所述增加后的预取深度;或者
[0222]当所述预取准确率超过第一预设阈值,且所述预取迟到率超过第二预设阈值时,增加预取深度,并增加预取距离,采用所述目标预取模式进行预取,所述预取的深度为所述增加后的预取深度,所述预取的距离为所述增加后的预取距离;
[0223]当所述预取有害率超过第三预设阈值时,减少预取深度,采用所述目标预取模式进行预取,所述预取的深度为所述减少后的预取深度。
[0224]需要说明的是,本实施例中所有的预取可以是预取存储器71存储的数据,再将预取到的数据缓存至缓存72中。
[0225]可选的,上述装置可以应用于任何具备数据缓存功能的设备,例如:服务器、基站、平板电脑、手机、电子阅读器、遥控器、个人计算机(Personal Computer, PC)、笔记本电脑、车载设备、网络电视、可穿戴设备等具有网络功能的智能设备。
[0226]上述技术方案中,获取缺失返回值;根据所述缺失返回值判断训练模式;当判断训练模式为目标训练模式时,采用所述目标训练模式对缺失地址进行训练,所述目标训练包括线性流训练模式或者链式流训练模式;当所述目标训练模式发现的预取模式为目标预取模式时,采用所述目标预取模式进行预取;其中,所述目标预取模式包括线性流预取模式或者链式流预模式。这样可以实现根据不同的情况采用不同的预取模式,从而可以提高预取的准确率。
[0227]本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory, ROM)或随机存取存储器(Random AccessMemory,简称 RAM)等。
[0228]以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
【主权项】
1.一种数据预取方法,其特征在于,包括: 获取缺失返回值; 根据所述缺失返回值判断训练模式; 当判断训练模式为目标训练模式时,采用所述目标训练模式对缺失地址进行训练,所述目标训练包括线性流训练模式或者链式流训练模式; 当所述目标训练模式发现的预取模式为目标预取模式时,采用所述目标预取模式进行预取;其中,所述目标预取模式包括线性流预取模式或者链式流预模式。
当前第5页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1