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

文档序号:8430727阅读:来源:国知局
r>2.如权利要求1所述的方法,其特征在于,所述根据所述缺失返回值判断训练模式,包括: 判断所述缺失返回值是否为缺失地址,若是,则判断训练模式为链式流训练模式,若否,则判断训练模式为线性流训练模式。
3.如权利要求1或2所述的方法,其特征在于,所述目标训练包括线性流训练模式; 所述采用所述目标训练模式对缺失地址进行训练,包括: 获取第一缺失地址,并将所述第一缺失地址作为索引地址索引历史访存池MAP得到第一入口项entry ;当所述第一 entry的状态为初始状态时,记录所述第一缺失地址,并将所述第一 entry的状态设置为准训练状态;其中,所述MAP用于记录历史访存信息; 获取第二缺失地址,并将所述将第二缺失地址作为索引地址索引所述MAP得到所述第一 entry,当所述第一 entry的状态为准训练状态时,将所述第二缺失地址减去所述第一缺失地址得到第一计算距离,并将所述第一 entry的状态设置为模式发现状态; 获取第三缺失地址,并将所述将第三缺失地址作为索引地址索引所述MAP得到所述第一 entry,当所述第一 entry的状态为模式发现状态时,判断所述第三缺失地址与所述第二缺失地址之差是否等于所述第一计算距离,若是,则发现线性流预取模式;其中,所述第一缺失地址、第二缺失地址和第三缺失地址为相邻缺失地址; 所述采用所述目标预取模式进行预取,包括: 对所述第三缺失地址与所述第一计算距离之和的地址发起深度为N的预取,其中,所述N预先设置的预取深度;或者 对所述第三缺失地址与所述第一计算距离之和的地址发起深度为N的预取,并获取模式表PTB的最旧项,再修改所述最旧项,修改后的所述最旧项的首地址为所述第三缺失地址与所述第一计算距离之和,修改后的所述最旧项的尾地址为所述第三缺失地址与T倍所述第一计算距离之和,修改后的所述最旧项的距离为所述第一计算距离;当缓存命中,且所述缓存命中的地址在所述首地址和所述尾地址的中间时,继续向所述缓存命中的地址之后的地址发起预取;其中,所述N预先设置的预取深度,所述T为大于I的整数。
4.如权利要求1或2所述的方法,其特征在于,所述目标训练包括链式流训练模式; 所述采用所述目标训练模式对缺失地址进行训练,包括: 获取第四缺失地址,并将所述第四缺失地址作为索引地址索引MAP得到第二入口项entry ;当所述第一 entry的状态为初始状态时,记录所述第四缺失地址的第一缺失返回值,并将所述第一 entry的状态设置为准训练状态;其中,所述MAP用于记录历史访存信息; 获取第五缺失地址,并将第五缺失地址作为索引地址索引所述MAP得到所述第二entry,当所述第二 entry的状态为准训练状态时,记录所述第五缺失地址的第二缺失返回值,再将所述第五缺失地址减去所述第一缺失返回值得到第二计算距离,并将所述第一entry的状态设置为模式发现状态; 获取第六缺失地址,并将第六缺失地址作为索引地址索引所述MAP得到所述第一entry,当所述第一 entry的状态为模式发现状态时,判断所述第六缺失地址与所述第二缺失返回值之差是否等于所述第二计算距离,若是,则发现链式流预取模式;其中,所述第四缺失地址、第五缺失地址和第六缺失地址为相邻缺失地址; 所述采用所述目标预取模式进行预取,包括: 对所述第三缺失返回值与所述第二计算距离之和的地址发起深度为N的预取,其中,所述N预先设置的预取深度;或者 对所述第三缺失返回值与所述第二计算距离之和的地址发起深度为N的预取,并获取模式表PTB的最旧项,再修改所述最旧项,修改后的所述最旧项的首地址为所述第三缺失返回值与所述第二计算距离之和,修改后的所述最旧项的尾地址为所述预取中最后一次预取的地址,修改后的所述最旧项的距离为所述第二计算距离;当缓存命中,且所述缓存命中的地址为所述首地址或者所述尾地址时,继续向所述缓存命中的地址之后的地址发起预取;其中,所述N预先设置的预取深度。
5.如权利要求1或2所述的方法,其特征在于,所述方法还包括: 统计特定时间段内的预取准确率、预取有害率和预取迟到率,其中,所述预取准确率为预取命中次数除以总预取次数,所述预取有害率为污染预取次数除以总预取次数,所述预取迟到率为迟到预取次数除以预取命中次数; 所述采用所述目标预取模式进行预取,包括: 当所述预取准确率超过第一预设阈值时,增加预取深度,采用所述目标预取模式进行预取,所述预取的深度为所述增加后的预取深度;或者 当所述预取准确率超过第一预设阈值,且所述预取迟到率超过第二预设阈值时,增加预取深度,并增加预取距离,采用所述目标预取模式进行预取,所述预取的深度为所述增加后的预取深度,所述预取的距离为所述增加后的预取距离; 当所述预取有害率超过第三预设阈值时,减少预取深度,采用所述目标预取模式进行预取,所述预取的深度为所述减少后的预取深度。
6.一种数据预取装置,其特征在于,包括:获取模块、判断模块、训练模块和预取模块,其中: 所述获取模块,用于获取缺失返回值; 所述判断模块,用于根据所述获取模块获取的缺失返回值判断训练模式;所述训练模块,用于当所述判断模块判断训练模式为目标训练模式时,采用所述目标训练模式对缺失地址进行训练,所述目标训练包括线性流训练模式或者链式流训练模式;所述预取模块,用于当训练模块训练的目标训练模式发现的预取模式为目标预取模式时,采用所述目标预取模式进行预取;其中,所述目标预取模式包括线性流预取模式或者链式流预模式。
7.如权利要求6所述的装置,其特征在于,所述判断模块用于判断所述获取模块获取的缺失返回值是否为缺失地址,若是,则判断训练模式为链式流训练模式,若否,则判断训练模式为线性流训练模式。
8.如权利要求6或7所述的装置,其特征在于,所述训练模块,包括: 第一训练子单元,用于当所述目标训练包括线性流训练模式时,获取第一缺失地址,并将所述第一缺失地址作为索引地址索引历史访存池MAP得到第一入口项entry ;当所述第一 entry的状态为初始状态时,记录所述第一缺失地址,并将所述第一 entry的状态设置为准训练状态;其中,所述MAP用于记录历史访存信息; 第二训练子单元,用于获取第二缺失地址,并将所述将第二缺失地址作为索引地址索引所述MAP得到所述第一 entry,当所述第一 entry的状态为准训练状态时,将所述第二缺失地址减去所述第一缺失地址得到第一计算距离,并将所述第一 entry的状态设置为模式发现状态; 第三训练子单元,用于获取第三缺失地址,并将所述将第三缺失地址作为索引地址索引所述MAP得到所述第一 entry,当所述第一 entry的状态为模式发现状态时,判断所述第三缺失地址与所述第二缺失地址之差是否等于所述第一计算距离,若是,则发现线性流预取模式;其中,所述第一缺失地址、第二缺失地址和第三缺失地址为相邻缺失地址; 所述预取模块用于当所述线性流训练模式发现的预取模式为线性流预模式时,对所述第三缺失地址与所述第一计算距离之和的地址发起深度为N的预取,其中,所述N预先设置的预取深度;或者 所述预取模块用于当所述线性流训练模式发现的预取模式为线性流预模式时,对所述第三缺失地址与所述第一计算距离之和的地址发起深度为N的预取,并获取模式表PTB的最旧项,再修改所述最旧项,修改后的所述最旧项的首地址为所述第三缺失地址与所述第一计算距离之和,修改后的所述最旧项的尾地址为所述第三缺失地址与T倍所述第一计算距离之和,修改后的所述最旧项的距离为所述第一计算距离;以及当缓存命中,且所述缓存命中的地址在所述首地址和所述尾地址的中间时,继续向所述缓存命中的地址之后的地址发起预取;其中,所述N预先设置的预取深度,所述T为大于I的整数。
9.如权利要求6或7所述的装置,其特征在于,所述训练模块,包括: 第四训练子单元,用于当所述目标训练包括链式流训练模式时,获取第四缺失地址,并将所述第四缺失地址作为索引地址索引MAP得到第二入口项entry ;当所述第一 entry的状态为初始状态时,记录所述第四缺失地址的第一缺失返回值,并将所述第一 entry的状态设置为准训练状态;其中,所述MAP用于记录历史访存信息; 第五训练子单元,用于获取第五缺失地址,并将第五缺失地址作为索引地址索引所述MAP得到所述第二 entry,当所述第二 entry的状态为准训练状态时,记录所述第五缺失地址的第二缺失返回值,再将所述第五缺失地址减去所述第一缺失返回值得到第二计算距离,并将所述第一 entry的状态设置为模式发现状态; 第六训练子单元,用于获取第六缺失地址,并将第六缺失地址作为索引地址索引所述MAP得到所述第一 entry,当所述第一 entry的状态为模式发现状态时,判断所述第六缺失地址与所述第二缺失返回值之差是否等于所述第二计算距离,若是,则发现链式流预取模式;其中,所述第四缺失地址、第五缺失地址和第六缺失地址为相邻缺失地址; 所述预取模块用于当所述链式流训练模式发现的预取模式为链式流预模式时,对所述第三缺失返回值与所述第二计算距离之和的地址发起深度为N的预取,其中,所述N预先设置的预取深度;或者 所述预取模块用于当所述链式流训练模式发现的预取模式为链式流预模式时,对所述第三缺失返回值与所述第二计算距离之和的地址发起深度为N的预取,并获取模式表PTB的最旧项,再修改所述最旧项,修改后的所述最旧项的首地址为所述第三缺失返回值与所述第二计算距离之和,修改后的所述最旧项的尾地址为所述预取中最后一次预取的地址,修改后的所述最旧项的距离为所述第二计算距离;以及当缓存命中,且所述缓存命中的地址为所述首地址或者所述尾地址时,继续向所述缓存命中的地址之后的地址发起预取;其中,所述N预先设置的预取深度。
10.如权利要求6或7所述的方法,其特征在于,所述装置还包括: 统计模块,用于统计特定时间段内的预取准确率、预取有害率和预取迟到率,其中,所述预取准确率为预取命中次数除以总预取次数,所述预取有害率为污染预取次数除以总预取次数,所述预取迟到率为迟到预取次数除以预取命中次数; 所述预取模块还用于当所述预取准确率超过第一预设阈值时,增加预取深度,采用所述目标预取模式进行预取,所述预取的深度为所述增加后的预取深度;或者 所述预取模块还用于当所述预取准确率超过第一预设阈值,且所述预取迟到率超过第二预设阈值时,增加预取深度,并增加预取距离,采用所述目标预取模式进行预取,所述预取的深度为所述增加后的预取深度,所述预取的距离为所述增加后的预取距离; 所述预取模块还用于当所述预取有害率超过第三预设阈值时,减少预取深度,采用所述目标预取模式进行预取,所述预取的深度为所述减少后的预取深度。
【专利摘要】本发明实施例公开了一种数据预取方法及装置,该方法可包括:获取缺失返回值;根据所述缺失返回值判断训练模式;当判断训练模式为目标训练模式时,采用所述目标训练模式对缺失地址进行训练,所述目标训练包括线性流训练模式或者链式流训练模式;当所述目标训练模式发现的预取模式为目标预取模式时,采用所述目标预取模式进行预取;其中,所述目标预取模式包括线性流预取模式或者链式流预模式。本发明实施例可以提高预取的准确率。
【IPC分类】G06F17-30
【公开号】CN104750696
【申请号】CN201310733130
【发明人】刘鹏, 辛愿, 曾毓珑
【申请人】华为技术有限公司, 浙江大学
【公开日】2015年7月1日
【申请日】2013年12月26日
当前第6页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1