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

文档序号:8430727阅读:来源:国知局
136]可选的,上述采用所述线性流预取模式进行预取,可以包括:
[0137]当所述线性流预取有害率超过第三预设阈值时,减少预取深度,采用所述线性流预取模式进行预取,所述预取的深度为所述减少后的预取深度。
[0138]上述采用所述链式流预取模式进行预取,可以包括:
[0139]当所述链式流预取准确率超过第一预设阈值时,增加预取深度,采用所述链式流预取模式进行预取,所述预取的深度为所述增加后的预取深度。
[0140]上述采用所述链式流预取模式进行预取,可以包括:
[0141]当所述链式流预取准确率超过第一预设阈值,且所述链式流预取迟到率超过第二预设阈值时,增加预取深度,并增加预取距离,采用所述链式流预取模式进行预取,所述预取的深度为所述增加后的预取深度,所述预取的距离为所述增加后的预取距离。
[0142]上述采用所述链式流预取模式进行预取,可以包括:
[0143]当所述链式流预取有害率超过第三预设阈值时,减少预取深度,采用所述链式流预取模式进行预取,所述预取的深度为所述减少后的预取深度。
[0144]通过上述多种实现方式,就可以实现根据实际情况调整预取的深度和距离。
[0145]可选的,上述方法可以应用于可以应用于任何具备数据缓存功能的设备中的预取引擎,其中,该设备可以是:服务器、基站、平板电脑、手机、电子阅读器、遥控器、PC、笔记本电脑、车载设备、网络电视、可穿戴设备等具有网络功能的智能设备。预取引擎可以是一个独立的处理器,也可以处理器中一个模块。
[0146]上述技术方案中,在上面实施例的基础上实现了多种可选的实施方式,且都可以实现提高预取的准确率。
[0147]下面为本发明装置实施例,本发明装置实施例用于执行本发明方法实施例一至二实现的方法,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例一和实施例二。
[0148]请参阅图4,图4是本发明实施例提供的一种数据预取装置的结构示意图,如图4所示包括:获取模块41、判断模块42、训练模块43和预取模块44,其中:
[0149]获取模块41,用于获取缺失返回值。
[0150]可选的,上述缺失返回值可以是指缓存缺失返回值;例如:缓存未命中而访问内存读到的值。
[0151]判断模块42,用于根据所述获取模块41获取的缺失返回值判断训练模式。
[0152]可选的,具体可以是根据上述缺失返回值是否符合地址特征为判断训练模式。
[0153]训练模块43,用于当所述判断模块42判断训练模式为目标训练模式时,采用所述目标训练模式对缺失地址进行训练,所述目标训练包括线性流训练模式或者链式流训练模式。
[0154]可选的,上述线性流训练模式可以是指对线性流的地址进行训练的模式,其中,线性流的地址可以是指相邻地址间存在等差数列关系的地址。上述链式流训练模式可以是指对链式流的地址进行训练的模式,其中,链式流的地址可以是指地址与该地址的返回值之间存在链表关系的地址。
[0155]预取模块44,用于当训练模块43训练的目标训练模式发现的预取模式为目标预取模式时,采用所述目标预取模式进行预取;其中,所述目标预取模式包括线性流预取模式或者链式流预模式。
[0156]可选的,在另一个实施例中,如图5所示,所述装置还可以包括:
[0157]统计模块45,用于统计特定时间段内的预取准确率、预取有害率和预取迟到率,其中,所述预取准确率为预取命中次数除以总预取次数,所述预取有害率为污染预取次数除以总预取次数,所述预取迟到率为迟到预取次数除以预取命中次数;
[0158]上述采用所述目标预取模式进行预取,可以包括:
[0159]预取模块44还可以用于当所述预取准确率超过第一预设阈值时,增加预取深度,采用所述目标预取模式进行预取,所述预取的深度为所述增加后的预取深度;或者
[0160]预取模块44还可以用于当所述预取准确率超过第一预设阈值,且所述预取迟到率超过第二预设阈值时,增加预取深度,并增加预取距离,采用所述目标预取模式进行预取,所述预取的深度为所述增加后的预取深度,所述预取的距离为所述增加后的预取距离;
[0161]预取模块44还可以用于当所述预取有害率超过第三预设阈值时,减少预取深度,采用所述目标预取模式进行预取,所述预取的深度为所述减少后的预取深度。
[0162]该实施方式中可以实现根据实现情况根据预到深度和距离,从而可以提高预取的效率和准确率。另外,上述预取的深度可以是指预取的数据量,上述预取的距离可以是预取回的数据的时间与实际使用该数据时间的时间间隔。
[0163]可选的,上述装置可以应用于任何具备数据缓存功能的设备,例如:服务器、基站、平板电脑、手机、电子阅读器、遥控器、个人计算机(Personal Computer, PC)、笔记本电脑、车载设备、网络电视、可穿戴设备等具有网络功能的智能设备。
[0164]上述技术方案中,获取缺失返回值;根据所述缺失返回值判断训练模式;当判断训练模式为目标训练模式时,采用所述目标训练模式对缺失地址进行训练,所述目标训练包括线性流训练模式或者链式流训练模式;当所述目标训练模式发现的预取模式为目标预取模式时,采用所述目标预取模式进行预取;其中,所述目标预取模式包括线性流预取模式或者链式流预模式。这样可以实现根据不同的情况采用不同的预取模式,从而可以提高预取的准确率。
[0165]请参阅图6,图6是本发明实施例提供的另一种数据预取装置的结构示意图,如图6所示,包括:获取模块61、判断模块62、训练模块63和预取模块64,其中,训练模块63包括第一训练单元631和第二训练单元632,其中:
[0166]获取模块61,用于获取缺失返回值。
[0167]判断模块62,用于判断所述获取模块61获取的缺失返回值是否为缺失地址,若是,则判断训练模式为链式流训练模式,若否,则判断训练模式为线性流训练模式。
[0168]第一训练单元631,用于当判断模块62判断训练模式为线性流训练模式时,采用所述线性流训练模式对缺失地址进行训练。
[0169]第二训练单元632,用于当判断模块62判断训练模式为链式流训练模式时,采用所述链式流训练模式对缺失地址进行训练。
[0170]预取模块64,用于当所述线性流训练模式发现的预取模式为线性流预模式时,采用所述线性流预模式进行预取;以及当所述链式流训练模式发现的预取模式为链式流预模式时,采用所述链式流预模式进行预取。
[0171]可选的,第一训练单元631可以包括:
[0172]第一训练子单元6311,用于当判断模块62判断训练模式为线性流训练模式时,获取第一缺失地址,并将所述第一缺失地址作为索引地址索引历史访存池MAP得到第一入口项entry ;当所述第一 entry的状态为初始状态时,记录所述第一缺失地址,并将所述第一entry的状态设置为准训练状态;其中,所述MAP用于记录历史访存信息。
[0173]第二训练子单元6312,用于获取第二缺失地址,并将所述将第二缺失地址作为索引地址索引所述MAP得到所述第一 entry,当所述第一 entry的状态为准训练状态时,将所述第二缺失地址减去所述第一缺失地址得到第一计算距离,并将所述第一 entry的状态设置为模式发现状态;
[0174]第三训练子单元6313,用于获取第三缺失地址,并将所述将第三缺失地址作为索引地址索引所述MAP得到所述第一 entry,当所述第一 entry的状态为模式发现状态时,判断所述第三缺失地址与所述第二缺失地址之差是否等于所述第一计算距离,若是,则发现线性流预取模式;其中,所述第一缺失地址、第二缺失地址和第三缺失地址为相邻缺失地址。
[0175]可选的,上述将所述第一缺失地址作为索引地址索引MAP可以是将第一缺失地址的最高三位作为索引地址索引MAP ;上述将所述第二缺失地址作为索引地址索引MAP可以是将第二缺失地址的最高三位作为索引地址索引MAP ;上述将所述第三缺失地址作为索引地址索引MAP可以是将第三缺失地址的最高三位作为索引地址索引MAP。另外,发现线性流预取模式后,还可以将上述MAP中第一 entry所在的项清零,并将第一 entry的状态设置为初始状态。
[0176]可选的,获取模块64可以用于当所述线性流训练模式发现的预取模式为线性流预模式时,对所述第三缺失地址与所述第一计算距离之和的地址发起深度为N的预取,其中,所述N预先设置的预取深度。
[0177]可选的,获取模块64可以用于当所述线性流训练模式发现的预取模式为线性流预模式时,对所述第三缺失地址与所述第一计算距离之和的地址发起深度为N的预取,并获取模式表PTB的最旧项,再修改所述最旧项,修改后的所述最旧项的首地址为所述第三缺失地址与所述第一计算距离之和,修改后的所述最旧项的尾地址为所述第三缺失地址与T倍所述第一计算距离之和,修改后的所述最旧项的距离为所述第一计算距离;以及当缓存命中,且所述缓存命中的地址在所述首地址和所述尾地址的中间时,继续向所述缓存命中的地址之后的地址发起预取;其中,所述N预先设置的预取深度,所述T为大于I的整数。
[0178]可选的,第二训练单元632,可以包括:
[0179]第四训练子单元6321,用于当判断模块62判断训练模式为链式流训练模式时,获取第四缺失地址,并将所述第四缺失地址作为索引地址索引MAP得到第二入口项entry ;当所述第一 entry的状态为初始状态时,记录所述第四缺失地址的第一缺失返回值,并将所述第一 entry的状态设置为准训练状态;其中,所述MAP用于记录历史访存信息;
[0180]第五训练子单元6322,用于获取第五缺失地址,并将第五缺失地址作为索引地址索引所述MAP得到所述第二 entry,当所述第二 entry的状态为准训练状态时,记录所述第五缺失地址的第二缺失返回值,再将所述第五缺失地址减去所述第一缺失返回值得到第二计算距离,并将所述第一 entry的状态设置为模式发现状态;
[0181]第六训练子单元6323,用于获取第六缺失地址,并将第六缺失地址作为索引地址索引所述MAP得到所述第一 entry,当所述第一 entry的状态为模式发现状态时,判断所述第六缺失地址与所述第二缺失返回值之差是否等于所述第二计算距离,若是,则发现链式流预取模式;其中,所述第四缺失地址、第五缺失地址和第六缺失地址为相邻缺失地址;
[0182]可选的,预取模块64可以用于当所述链式流训练模式发现的预取模式为链式流预模式时,对所述第三缺失返回值与所述第二计算距离之和的地址发起深度为N的预取,其中,所述N预先设置的预取深度。
[0183]可选的,预取模块64可以用于当所述链式流训练模式发现的预取模式为链式流预模式时,对所述第三缺失返回值与所述第二计算距离之和的地址发起深度为N的预取,并获取模式表PTB的最旧项,再修改所述最旧项,修改后的所述最旧项的首地址为所述第三缺失返回值与所述第二计算距离之和,修改后的所述最旧项的尾地址为所述预取中最后一次预取的地址,修改后的所述最旧项的距离为所述第二计算距离;以及当缓存命中,且所述缓存命中的地址为所述首地址或者所述尾地址时,继续向所述缓存命中的地址之后的地址发起预取;其中,所述N
当前第4页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1