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

文档序号:8430727阅读:来源:国知局
第三种可能的实现方式中,所述训练模块,包括:
[0052]第四训练子单元,用于当所述目标训练包括链式流训练模式时,获取第四缺失地址,并将所述第四缺失地址作为索引地址索引MAP得到第二入口项entry ;当所述第一entry的状态为初始状态时,记录所述第四缺失地址的第一缺失返回值,并将所述第一entry的状态设置为准训练状态;其中,所述MAP用于记录历史访存信息;
[0053]第五训练子单元,用于获取第五缺失地址,并将第五缺失地址作为索引地址索引所述MAP得到所述第二 entry,当所述第二 entry的状态为准训练状态时,记录所述第五缺失地址的第二缺失返回值,再将所述第五缺失地址减去所述第一缺失返回值得到第二计算距离,并将所述第一 entry的状态设置为模式发现状态;
[0054]第六训练子单元,用于获取第六缺失地址,并将第六缺失地址作为索引地址索引所述MAP得到所述第一 entry,当所述第一 entry的状态为模式发现状态时,判断所述第六缺失地址与所述第二缺失返回值之差是否等于所述第二计算距离,若是,则发现链式流预取模式;其中,所述第四缺失地址、第五缺失地址和第六缺失地址为相邻缺失地址;
[0055]所述预取模块用于当所述链式流训练模式发现的预取模式为链式流预模式时,对所述第三缺失返回值与所述第二计算距离之和的地址发起深度为N的预取,其中,所述N预先设置的预取深度;或者
[0056]所述预取模块用于当所述链式流训练模式发现的预取模式为链式流预模式时,对所述第三缺失返回值与所述第二计算距离之和的地址发起深度为N的预取,并获取模式表PTB的最旧项,再修改所述最旧项,修改后的所述最旧项的首地址为所述第三缺失返回值与所述第二计算距离之和,修改后的所述最旧项的尾地址为所述预取中最后一次预取的地址,修改后的所述最旧项的距离为所述第二计算距离;以及当缓存命中,且所述缓存命中的地址为所述首地址或者所述尾地址时,继续向所述缓存命中的地址之后的地址发起预取;其中,所述N预先设置的预取深度。
[0057]结合第二方面或者第二方面的第一种可能的实现方式,在第二方面的第四种可能的实现方式中,所述装置还包括:
[0058]统计模块,用于统计特定时间段内的预取准确率、预取有害率和预取迟到率,其中,所述预取准确率为预取命中次数除以总预取次数,所述预取有害率为污染预取次数除以总预取次数,所述预取迟到率为迟到预取次数除以预取命中次数;
[0059]所述预取模块还用于当所述预取准确率超过第一预设阈值时,增加预取深度,采用所述目标预取模式进行预取,所述预取的深度为所述增加后的预取深度;或者
[0060]所述预取模块还用于当所述预取准确率超过第一预设阈值,且所述预取迟到率超过第二预设阈值时,增加预取深度,并增加预取距离,采用所述目标预取模式进行预取,所述预取的深度为所述增加后的预取深度,所述预取的距离为所述增加后的预取距离;
[0061]所述预取模块还用于当所述预取有害率超过第三预设阈值时,减少预取深度,采用所述目标预取模式进行预取,所述预取的深度为所述减少后的预取深度。
[0062]上述技术方案中,获取缺失返回值;根据所述缺失返回值判断训练模式;当判断训练模式为目标训练模式时,采用所述目标训练模式对缺失地址进行训练,所述目标训练包括线性流训练模式或者链式流训练模式;当所述目标训练模式发现的预取模式为目标预取模式时,采用所述目标预取模式进行预取;其中,所述目标预取模式包括线性流预取模式或者链式流预模式。这样可以实现根据不同的情况采用不同的预取模式,从而可以提高预取的准确率。
【附图说明】
[0063]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0064]图1是本发明实施例提供的一种数据预取方法的流程示意图;
[0065]图2是本发明实施例提供的另一种数据预取方法的流程示意图;
[0066]图3是本发明实施例提供的另一种数据预取方法的流程示意图;
[0067]图4是本发明实施例提供的一种数据预取装置的结构示意图;
[0068]图5是本发明实施例提供的另一种数据预取装置的结构示意图;
[0069]图6是本发明实施例提供的另一种数据预取装置的结构示意图;
[0070]图7是本发明实施例提供的另一种数据预取装置的结构示意图。
【具体实施方式】
[0071]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0072]请参阅图1,图1是本发明实施例提供的一种数据预取方法的流程示意图,如图1所示,包括以下步骤:
[0073]101、获取缺失返回值。
[0074]可选的,上述缺失返回值可以是指缓存缺失返回值;例如:缓存未命中而访问内存读到的值。
[0075]102、根据所述缺失返回值判断训练模式。
[0076]可选的,具体可以是根据上述缺失返回值是否符合地址特征为判断训练模式。
[0077]103、当判断训练模式为目标训练模式时,采用所述目标训练模式对缺失地址进行训练,所述目标训练包括线性流训练模式或者链式流训练模式。
[0078]可选的,上述线性流训练模式可以是指对线性流的地址进行训练的模式,其中,线性流的地址可以是指相邻地址间存在等差数列关系的地址。上述链式流训练模式可以是指对链式流的地址进行训练的模式,其中,链式流的地址可以是指地址与该地址的返回值之间存在链表关系的地址。
[0079]104、当所述目标训练模式发现的预取模式为目标预取模式时,采用所述目标预取模式进行预取;其中,所述目标预取模式包括线性流预取模式或者链式流预模式。
[0080]可选的,步骤104预取的数据可以是缓存至缓存中。
[0081]可选的,在另一个实施例中,所述方法还可以包括:
[0082]统计特定时间段内的预取准确率、预取有害率和预取迟到率,其中,所述预取准确率为预取命中次数除以总预取次数,所述预取有害率为污染预取次数除以总预取次数,所述预取迟到率为迟到预取次数除以预取命中次数;
[0083]上述采用所述目标预取模式进行预取,可以包括:
[0084]当所述预取准确率超过第一预设阈值时,增加预取深度,采用所述目标预取模式进行预取,所述预取的深度为所述增加后的预取深度;或者
[0085]当所述预取准确率超过第一预设阈值,且所述预取迟到率超过第二预设阈值时,增加预取深度,并增加预取距离,采用所述目标预取模式进行预取,所述预取的深度为所述增加后的预取深度,所述预取的距离为所述增加后的预取距离;
[0086]当所述预取有害率超过第三预设阈值时,减少预取深度,采用所述目标预取模式进行预取,所述预取的深度为所述减少后的预取深度。
[0087]该实施方式中可以实现根据实现情况根据预到深度和距离,从而可以提高预取的效率和准确率。另外,上述预取的深度可以是指预取的数据量,上述预取的距离可以是预取回的数据的时间与实际使用该数据时间的时间间隔。
[0088]可选的,上述方法可以应用于任何具备数据缓存功能的设备,例如:服务器、基站、平板电脑、手机、电子阅读器、遥控器、个人计算机(Personal Computer, PC)、笔记本电脑、车载设备、网络电视、可穿戴设备等具有网络功能的智能设备。
[0089]上述技术方案中,获取缺失返回值;根据所述缺失返回值判断训练模式;当判断训练模式为目标训练模式时,采用所述目标训练模式对缺失地址进行训练,所述目标训练包括线性流训练模式或者链式流训练模式;当所述目标训练模式发现的预取模式为目标预取模式时,采用所述目标预取模式进行预取;其中,所述目标预取模式包括线性流预取模式或者链式流预模式。这样可以实现根据不同的情况采用不同的预取模式,从而可以提高预取的准确率。
[0090]请参阅图2,图2是本发明实施例提供的另一种数据预取方法的流程示意图,如图2所示,包括以下步骤:
[0091]201、获取缺失返回值。
[0092]202、判断所述缺失返回值是否为缺失地址,若否,则判断训练模式为线性流训练模式,并执行步骤203,若是,则判断训练模式为链式流训练模式,并执行步骤205。
[0093]203、当判断训练模式为线性流训练模式时,采用所述线性流训练模式对缺失地址进行训练。
[0094]可选的,步骤203可以包括:
[0095]获取第一缺失地址,并将所述第一缺失地址作为索引地址索引历史访存池(Memory Access Pool, MAP)得到第一入口项(entry);当所述第一 entry的状态为初始状态时,记录所述第一缺失地址,并将所述第一 entry的状态设置为准训练状态;其中,所述MAP用于记录历史访存信息;
[0096]获取第二缺失地址,并将所述将第二缺失地址作为索引地址索引所述MAP得到所述第一 entry,当所述第一 entry的状态为准训练状态时,将所述第二缺失地址减去所述第一缺失地址得到第一计算距离,并将所述第一 entry的状态设置为模式发现状态;
[0097]获取第三缺失地址,并将所述将第三缺失地址作为索引地址索引所述MAP得到所述第一 entry,当所述第一 entry的状态为模式发现状态时,判断所述第三缺失地址与所述第二缺失地址之差是否等于所述第一计算距离,若是,则发现线性流预取模式;其中,所述第一缺失地址、第二缺失地址和第三缺失地址为相邻缺失地址。
[0098]可选的,上述将所述第一缺失地址作为索引地址索引MAP可以是将第一缺失地址的最高三位作为索引地址索引MAP ;上述将所述第二缺失地址作为索引地址索引MAP可以是将第二缺失地址的最高三位作为索引地址索引MAP ;上述将所述第三缺失地址作为索引地址索引MAP可以是将第三缺失地址的最高三位作为索引地址索引MAP。另外,上述MAP可以是用于记录历史访存信息的访存池,上述MAP还可以是用寄存器结构实现的16项先入先出队列。另外,上述entry可以是存储模块。另外,发现线性流预取模式后,还可以将上述MAP中第一 entry所在的项清零,并将第一 entry的状态设置为初始状态。
[0099]204、当所述线性流训练模式发现的预取模式为线性流预模式时,采用所述线性流预模式进行预取。
[0100]可选的,上述采用所述链式流预模式进行预取,可以包括:
[0101]对所述第三缺失地址与所述第一计算距离之和的地址发起深度为N的预取,其中,所述N预先设置的预取深度。
[0102]其中,该预取的深度和距离都可以是预先设置,或者根据实际情况进行调整的,对此本实施例不作限定。对所述第三缺失地址与所述第一计算距离之和的地址发起深度为N的预取可以是以第一地址为起始地址进行深度为N的多次预取,其中,第一地址等于所述第三缺失地址与所述第一计
当前第2页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1