数据预取方法、处理器和电子设备技术

技术编号:34962581 阅读:12 留言:0更新日期:2022-09-17 12:42
本申请涉及芯片技术领域,公开了一种数据预取方法、处理器和电子设备。该处理器包括计算单元、缓存单元和预取器;预取器包括:预取地址生成电路,用于根据预设规则将计算单元的多个历史访问地址分配给多个预设分组,并记录多个历史访问地址与各预设分组记录的步距的匹配次数,以及在匹配次数满足预设条件的情况下,基于第一预设分组中记录的历史访问地址得到预取地址,其中,第一预设分组为多个预设分组中的一个,并且,第一预设分组记录的历史访问地址为等间隔地址序列;预取电路,用于从处理器外部的存储器中获取对应预取地址的数据,并将获取的数据存储在缓存单元中。如此,有利于在确保处理器的预取功能的情况下减少处理器占用的电路面积。器占用的电路面积。器占用的电路面积。

【技术实现步骤摘要】
数据预取方法、处理器和电子设备


[0001]本申请涉及芯片
,特别涉及一种数据预取方法、处理器和电子设备。

技术介绍

[0002]随着芯片技术的发展,存储器访问延迟逐渐成为限制处理器性能和效率的重要因素。为提高处理器访问存储器的延迟,通常通过在处理器中设置缓存(cache)和预取器,预取器根据处理器访问片外存储器(即处理器外部的存储器)的历史访问地址,预测出处理器可能访问的预取地址,并从片外存储器中将预取地址对应的数据存储在缓存中。从而处理器在访问该预取地址对应的数据时,可以直接从缓存中读取数据,由于处理器访问缓存的速度远高于访问片外存储器的速度,降低了存储器访问延迟。
[0003]但是,预取器通常只能在历史访问地址中的包括连续多个等间隔地址时,才能给出预取地址,例如在历史访问地址连续的三个地址X、X+A、X+2A时,可以预测出处理器接下来可能访问地址X+3A,预取器给出预取地址X+3A。而在历史访问地址中包括多组等间隔地址序列,但同一组等间隔地址序列间有其他地址的情况下,预取器无法预测出预取地址。例如,在历史访问地址为X,Y,X+B,Y+C,X+2B,X+3B,Y+2C时,虽然该历史访问地址中包括2组等间隔地址序列(X、X+2B、X+3B和Y、Y+C、Y+2C),但预取器并不能识别出等间隔地址序列,导致预取器不能给出预取地址,从而处理器只能从片外存储器中读取数据,影响处理器的性能。

技术实现思路

[0004]本申请实施例提供了一种预取方法、处理器和电子设备。基于一个预取器即可实现对处理器的多个历史访问地址中的等间隔地址序列进行识别,并基于识别出的等间隔地址序列进行数据预取,有利于减少处理器占用的电路面积。
[0005]第一方面,本申请实施例提供了一种数据预取方法,应用于电子设备,该电子设备包括:处理器和设置于处理器外部的存储器,其中,处理器包括缓存单元;并且该方法包括:
[0006]获取处理器的多个历史访问地址;
[0007]根据预设规则将多个历史访问地址分配给多个预设分组,并记录多个历史访问地址与各预设分组记录的步距的匹配次数,其中,步距用于指示预设分组最近两次分配到的历史访问地址间的差值;
[0008]在匹配次数满足预设条件的情况下,基于第一预设分组中记录的历史访问地址得到预取地址,其中,第一预设分组为多个预设分组中的一个,并且,第一预设分组记录的历史访问地址为等间隔地址序列;
[0009]从存储器中获取对应预取地址的数据,并将获取的数据存储在缓存单元中。
[0010]通过本申请实施例提供的方法,通过预设规则对处理器的多个历史访问地址(即下文中的存储器地址)进分组,记录多个历史访问地址与各预设分组(即下文中的地址流分组)记录的步距的匹配次数(例如下文中的置信计数值),并在该匹配次数满足预设条件的情况下,基于多个预设分组中,记录的历史访问地址为等间隔地址序列的预设分组中的历
史访问地址来得到预取地址,并将该预取地址对应的数据存储在所述缓存单元中。如此,处理器不需要增加预取器的数量,仅使用一个预取器就可以实现在多个历史访问地址中包括等间隔地址序列,但等间隔地址序列不是连接访问的情况下,识别出该等间隔地址序列,并基于识别到的等间隔地址序列进行预取,既保证了处理器的预取功能,又不需要增加预取器的数量,有利于减小处理器占用的电路面积。
[0011]可以理解,在一些实施例中上述预设条件可以包括匹配次数达到预设匹配次数。
[0012]可以理解,在一些实施例中,上述预取地址可以将第一预设分组中记录的在先地址与步距相加得到。
[0013]在上述第一方面的一种可能实现中,每个预设分组中包括在先地址、步距、步距标识、地址标识和预取标识;其中,
[0014]在先地址用于指示预设分组中最近一次分配到的历史访问地址,
[0015]步距标识有效时用于指示步距为有效步距,其中有效步距是指绝对值小于预设步距值的步距;
[0016]地址标识有效时用于指示预设分组已经记录过存储器地址,
[0017]预取标识有效时用于指示已经基于预设分组生成预取地址。
[0018]在上述第一方面的一种可能实现中,上述根据预设规则将多个历史访问地址分配给多个预设分组,包括:
[0019]在第一历史访问地址与多个预设分组中的第二预设分组匹配的情况下,将第一历史访问地址分配给第二预设分组,其中,第一历史访问地址为多个历史访问地址中的任意一个;
[0020]在不存在与第一历史访问地址匹配的预设分组情况下,将第一历史访问地址分配给第三预设分组,第三预设分组为多个预设分组中优先级最低的预设分组中的一个,其中,预设分组的优先级由预设分组中的步距标识、地址标识和预取标识确定。
[0021]在上述第一方面的一种可能实现中,上述将第一历史访问地址分配给第二预设分组,包括:
[0022]将第二预设分组的步距更新为第一历史访问地址和第一历史访问地址减去第二预设分组当前记录的在先地址的差值,并在更新后的步距为有效步距的情况下,将第二预设分组的步距标识设置为有效;
[0023]将第二预设分组的在先地址更新为第一历史访问地址。
[0024]在上述第一方面的一种可能实现中,上述将第一历史访问地址分配给第三预设分组,包括:
[0025]将第三预设分组的步距更新为第一历史访问地址和第一历史访问地址减去第三预设分组当前记录的在先地址的差值,并在更新后的步距为有效步距的情况下将第三预设分组的步距标识设置为有效、在更新后的步距为无效步距的情况下将第三预设分组的步距标识设置为无效;
[0026]将第三预设分组的在先地址更新为第一历史访问地址;
[0027]将第三预设分组的地址标识更新为有效。
[0028]在上述第一方面的一种可能实现中,在第一历史访问地址与第二预设分组记录的步距匹配的情况下,确定第一历史访问地址与第二预设分组匹配;
[0029]或者,在第一历史访问地址与任意预设分组记录的步距都不匹配,第二预设分组记录有在先地址、第二预设分组的步距标识无效,并且第一历史地址减去第二预设分组中的在先地址的差值为有效步距的情况下,确定第一历史访问地址与第二预设分组匹配;
[0030]其中,第一历史访问地址减去预设分组中记录的在先地址的差值,与预设分组中记录的步距相同的情况下,第一历史访问地址与预设分组中记录的步距匹配。
[0031]在上述第一方面的一种可能实现中,预设分组的优先级由预设分组中的步距标识、地址标识和预取标识确定,包括:
[0032]预取标识有效的预设分组具有第一优先级;
[0033]预取标识无效但步距标识有效的预设分组具有第二优先级;
[0034]预取标识和步距标识无效但地址标识有效的预设分组具有第三优先级;
[0035]预取标识、步距标识和地址标识都无效的预设分组具有第四优先级;
[0036]其中,各优先级由高到低依次为第一优先级、第二优先级本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据预取方法,应用于电子设备,其特征在于,所述电子设备包括:处理器和设置于所述处理器外部的存储器,其中,所述处理器包括缓存单元;并且所述方法包括:获取所述处理器的多个历史访问地址;根据预设规则将所述多个历史访问地址分配给多个预设分组,并记录所述多个历史访问地址与各所述预设分组记录的步距的匹配次数,其中,所述步距用于指示所述预设分组最近两次分配到的历史访问地址间的差值;在所述匹配次数满足预设条件的情况下,基于第一预设分组中记录的历史访问地址得到预取地址,其中,所述第一预设分组为所述多个预设分组中的一个,并且,所述第一预设分组记录的历史访问地址为等间隔地址序列;从所述存储器中获取对应所述预取地址的数据,并将获取的数据存储在所述缓存单元中。2.根据权利要求1所述的方法,其特征在于,每个所述预设分组中包括在先地址、所述步距、步距标识、地址标识和预取标识;其中,所述在先地址用于指示预设分组中最近一次分配到的历史访问地址,所述步距标识有效时用于指示所述步距为有效步距,其中有效步距是指绝对值小于预设步距值的步距;所述地址标识有效时用于指示预设分组已经记录过存储器地址,所述预取标识有效时用于指示已经基于所述预设分组生成预取地址。3.根据权利要求2所述的方法,其特征在于,所述根据预设规则将所述多个历史访问地址分配给多个预设分组,包括:在第一历史访问地址与所述多个预设分组中的第二预设分组匹配的情况下,将所述第一历史访问地址分配给所述第二预设分组,其中,所述第一历史访问地址为所述多个历史访问地址中的任意一个;在不存在与所述第一历史访问地址匹配的预设分组情况下,将所述第一历史访问地址分配给第三预设分组,所述第三预设分组为所述多个预设分组中优先级最低的预设分组中的一个,其中,预设分组的优先级由预设分组中的步距标识、地址标识和预取标识确定。4.根据权利要求3所述的方法,其特征在于,所述将所述第一历史访问地址分配给所述第二预设分组,包括:将所述第二预设分组的步距更新为所述第一历史访问地址和所述第一历史访问地址减去所述第二预设分组当前记录的在先地址的差值,并在更新后的步距为有效步距的情况下,将所述第二预设分组的步距标识设置为有效;将所述第二预设分组的在先地址更新为所述第一历史访问地址。5.根据权利要求3所述的方法,其特征在于,所述将所述第一历史访问地址分配给所述第三预设分组,包括:将所述第三预设分组的步距更新为所述第一历史访问地址和所述第一历史访问地址减去所述第三预设分组当前记录的在先地址的差值,并在更新后的步距为有效步距的情况下将所述第三预设分组的步距标识设置为有效、在更新后的步距为无效步距的情况下将所述第三预设分组的步距标识设置为无效;
将所述第三预设分组的在先地址更新为所述第一历史访问地址;将所述第三预设分组的地址标识更新为有效。6.根据权利要求3所述的方法,其特征在于,在所述第一历史访问地址与所述第二预设分组记录的步距匹配的情况下,确定所述第一历史访问地址与所述第二预设分组匹配;或者,在所述第一历史访问地址与任意预设分组记录的步距都不匹配,所述第二预设分组记录有在先地址、所述第二预设分组的步距标识无效,并且所述第一历史地址减去所述第二预设分组中的在先地址的差值为有效步距的情况下,确定所述第一历史访问地址与所述第二预设分组匹配;其中,第一历史访问地址减去预设分组中记录的在先地址的差值,与所述预设分组中记录的步距相同的情况下,所述第一历史访问地址与预设分组中记录的步距匹配。7.根据权利要求3所述的方法,其特征在于,所述方法还包括:记录重置次数,所述重置次数用于指示所述多个历史访问地址与任意预设分组记录的步距都不匹配的次数,并且所述重置次数在所述第一历史访问地址与任意预设分组记录的步距都不匹配的情况下增加、在所述第一历史访问地址与任意预设分组记录的步距匹配的情况下重置;在所述重置次数达到预设重置次数的情况下,重置各所述预设分组中的数据、所述重置次数、所述匹配次数。8.一种处理器,其特征在于,所述处理器包括计算单元、缓存单元和预取器;其中,所述预取器包括:预取地址生成电路,用于根据预设规则将所述计算单元的多个历史访问地址分配给多个预设分组,并记录所述多个历史访问地址与各所述预设分组记录的步距的匹配次数,其中,所述步距用于指示所述预设分组最近两次分配到的历史访问地址间的差值,以及在所述匹配次数满足预设条件的情况下,基于第一预设分组中记录的历史访问地址得到预取地址,其中,所述第一预设分组为所述多个预设分组中的一个,并且,所述第一预设分组记录的历史访问地址为等间隔地址序列;预取电路,用于从所述处理器外部的存储器中获取对应所述预取地址的数据,并将获取的数据存储在所述缓存单元中。9.根据权利要求8所述的处理器,其特征在于,所述预取器还包括:存储单元,用于存储所述多个预设分组,并且每个所述预设分组中包括在先地址、所述步距、步距标识、地址标识和预取标识;其中,所述在先地址用于指示预设分组中最近一次分配到的历史访问地址,所述步距标识有效时用于指示所述步距为有效步距,其中有效步距...

【专利技术属性】
技术研发人员:李耀王琪
申请(专利权)人:安谋科技中国有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1