当前位置: 首页 > 专利查询>ARM有限公司专利>正文

用于进行预取的数据处理方法和装置制造方法及图纸

技术编号:11406395 阅读:61 留言:0更新日期:2015-05-03 23:44
本公开涉及用于进行预取的数据处理方法和装置。一种数据处理设备包括处理电路(20),其用于执行针对存储器设备(40)的第一地址的第一存储器访问指令和针对存储器设备(40)的第二地址的第二存储器访问指令,其中第一地址不同于第二地址。数据处理设备还包括基于跨步长度(70)从存储器设备40预取数据的预取电路(30)和用于确定第一地址和第二地址之间的差值的指令分析电路(50)。跨步求精电路(60)还被提供以基于跨步长度的因数和由指令分析电路(50)计算得出的差值的因数对跨步长度进行求精。

【技术实现步骤摘要】
用于进行预取的数据处理方法和装置
本专利技术涉及数据处理领域。更具体地,本专利技术涉及在数据处理装置中进行预取(prefetching)。
技术介绍
在包括处理电路和存储器的数据处理装置中,对于处理电路而言执行存储器访问指令可能耗费大量时间。尤其,处理电路必须向存储器设备发送请求以访问特定的存储器地址并检索位于该地址的数据。存储器设备然后必须访问存储器,检索所请求的数据,然后向处理电路转发所请求的数据。这可能花费几个处理循环来发生,其间处理电路可能被暂停或无法进一步地进行。如果处理电路执行许多存储器访问指令,则当该存储器访问指令被处理时,处理电路可能被延迟一段时间。为了帮助缓解这个问题,数据处理电路可使用所谓的预取,其中做出关于接下来最可能请求哪些存储器地址的预报。随后,这些地址处的数据在被明确地请求之前就被读取,并且当系统的各个部分未被以其他方式占用时可以执行读取过程。因此,如果随后那些存储地址被请求,则相较于未发生预取来说,处理电路能够更快地获取必要的数据。对于当所请求的数据被访问时暂停处理电路的需求可被减少,因此为处理电路带来了提升的效率。预报可使用空间局部性原理。即,如果线程访问特定存储器地址位置,则同一线程将很可能向邻近的存储地址发出后续的存储器访问指令。这种情况的一个特定示例是当线程访问多个数据元素时,这些数据元素中的每个均在数组中占用定长。通过检查两个或者多个存储器访问指令被发布到的存储器地址,能够推断出所请求的存储器地址中的模式。例如,给定两个存储器地址,则能够确定跨步长度(stridlength),其表示在两个邻近数据元素之间的存储器地址的差值。因此,可以合乎逻辑的假设后续存储器访问指令将被指向下一邻近数据元素,该数据元素的地址是先前访问的存储器地址和跨步长度之和。需要理解的是已知预取途径依赖于存储器以可预测的方式或模式被访问。如果发布数量不充足的存储器访问指令,则例如在短暂线程的情况下,或者如果以复杂的或不可预测的方式发布存储器访问指令,则不可能或很难适当地执行预取。
技术实现思路
根据一个方面,本专利技术提供的数据处理设备包括:处理电路,其被配置为执行到存储器设备的第一地址的第一存储器访问指令和到所述存储装置的第二地址的第二存储器访问指令,其中所述第一地址不同于所述第二地址;预取电路,其被配置为根据跨步长度,从所述存储器设备预取数据;指令分析电路,其被配置为确定所述第一地址和所述第二地址之间的差值;跨步求精电路,其被配置为基于所述跨步长度的因数和所述差值的因数对所述跨步长度进行求精。处理电路执行多个存储器访问指令,这些存储器访问指令包括第一存储器访问指令和第二存储器访问指令。每个存储器访问指令针对存储器设备的特定地址,其中第一存储器访问指令针对第一地址,并且第二存储器访问指令针对第二地址,该第二地址不同于第一地址。指令分析电路分析存储器访问指令以确定存储器访问指令所指向的地址间的差值。差值可以是非绝对值,例如,差值可能是正数或是负数,其分别表明第一地址小于或大于第二地址。当从处理电路向存储器设备发送存储器访问指令时,可通过指令分析电路监控存储器访问指令来做出分析,或是可通过处理电路明确通知处理电路这些存储器访问指令来做出分析。预取电路被提供以基于跨步长度执行从存储器设备预取数据。例如,给定跨步长度和上一存储器访问指令,则预取电路可被配置为从存储器设备检索保留在上一存储器访问指令的地址和该跨步长度之和的地址处的数据。跨步求精电路被配置为基于跨步长度的因数和由指令分析电路计算得出的差值的因数来对跨步长度进行求精。也就是说,一旦确定了跨步长度,跨步求精电路就可以使用由指令分析电路计算得出的差值来产生新的跨步长度。该求精是基于差值的因数和当前跨步长度的因数而实现的。此处,数字的“因数”是整数,当其乘以另一整数时得出该数字。根据上文,即使当以复杂的模式访问存储器地址时,执行预取仍然是可能的。例如,如果数组的成员以非连续的顺序被访问。系统可初步确定跨步长度,所确定的跨步长度是“真实”跨步长度的倍数。然而,求精电路可经过一段时间通过一次或多次求精使确定该真实跨步长度成为可能。例如,如果以随机方式访问数组的成员,其后两个连续的存储器访问指令的存储器地址位置的差值可被当成跨步长度。然而,这样的差值在连续的存储器访问指令对之间可能大幅度地改变。由于在每对连续的指令之间的存储器地址的差值可不断变化,因此已知的预取系统尽力确定跨步长度。通过提供基于跨步长度(例如,当前跨步长度)的因数和两个存储器访问指令间的差值的因数来对跨步长度进行求精的跨步求精电路,可能推断出真实跨步长度,例如,在当前示例中,数列的两个邻近成员之间的存储器地址之差值。从而,预取电路可预取处理电路较可能请求的数据,并因此提高了系统的效率。处理电路可被配置为执行包括第一存储器访问指令的第一线程和包括第二存储器访问指令的第二线程。因此,尽管存储访问请求跨两个或多个线程发生,数据处理装置也能够确定跨步长度,其中这些线程本身可能是短暂的。然后,不论那些特定的线程有多短暂,可为那些线程或者甚至是其他线程实施预取。此场景可能出现在SIMT(单指令多线程)系统中,其中多个线程各自并行执行大体上相同的、可能是短暂的代码片段。处理电路能够以任何顺序执行第一线程和第二线程。因此,不论以何种顺序执行线程,仍然可以推断出跨步长度,这将使预取电路能够从存储器设备预取后续将被请求的相关数据。第一存储器访问指令和第二存储器访问指令可具有相同的程序计数器值。因此,可计算得出关于特定指令的跨步值,从而使得多个相关数据元素更有可能被访问。多个数据元素可通过循环或通过每个线程访问不同元素并对该元素执行相同操作而被迭代地访问。还将理解的是预取电路可维护多个不同跨步长度并计算得出各自指向特定指令的多个差值,正如该指令的程序计数器值所指示的。跨步求精电路可被配置为将跨步长度精确到跨步长度和差值的最大公因数。也就是说,给定跨步长度和在第一存储器访问指令的存储器地址和第二存储访问的存储器地址之间的差值,跨步求精电路将把跨步长度更新为上个跨步长度和由指令分析电路计算得出的差值的最大公因数。两个数的最大公因数(也称为最大公约数或最高公因数)是可以去除那两个数而没有任何余数的最大正整数。例如,如果跨步长度是50,并且两个存储器访问指令间的差值是48,那么最大公因数是2。本领域技术人员将理解的是可通过包括通过欧几里得(Euclid)算法的多种方法计算最大公因数。用于计算最大公因数的其他技术还因用于使用减法和以2为除数的除法的组合的二进制中而著名。计算两个值之间的最大公因数能够是计算昂贵的(expensive)。另一对跨步长度进行求精的方法反而是考虑两个存储器访问指令之间的差值是否是跨步长度的因数,如果是,则将跨步长度更新为该差值。确定一个数值是否是另一数值的因数相较于确定两个数的最大公因数计算量可能较少,因此在某些情况下途径方法更为可取。通过这种方法,在进行多次求精之后能够收敛于最大公因数,每次求精均耗费较低的计算成本。为了维护与跨步值相关联的置信值,可以提供跨步置信电路。响应于存储器访问指令指向于已由预取电路预取的数据的地址,置信值可被增加,这是因为这可表明正确的数据已被预取。此外,响应于跨本文档来自技高网
...

【技术保护点】
一种数据处理设备,包括:处理电路,该处理电路被配置为执行针对存储器设备的第一地址的第一存储器访问指令和针对所述存储器设备的第二地址的第二存储器访问指令,其中所述第一地址不同于所述第二地址;预取电路,该预取电路被配置为根据跨步长度从所述存储器设备预取数据;指令分析电路,该指令分析电路被配置为确定所述第一地址和所述第二地址之间的差值;跨步求精电路,该跨步求精电路被配置为基于所述跨部长度的因数和所述差值的因数对所述跨步长度进行求精。

【技术特征摘要】
2013.10.24 US 14/061,8421.一种数据处理设备,包括:处理电路,该处理电路被配置为执行针对存储器设备的第一地址的第一存储器访问指令和针对所述存储器设备的第二地址的第二存储器访问指令,其中所述第一地址不同于所述第二地址;预取电路,该预取电路被配置为根据跨步长度从所述存储器设备预取数据;指令分析电路,该指令分析电路被配置为确定所述第一地址和所述第二地址之间的差值;跨步求精电路,该跨步求精电路被配置为基于所述跨步长度的因数和所述差值的因数对所述跨步长度进行求精。2.根据权利要求1所述的数据处理设备,其中,所述处理电路被配置为执行包括所述第一存储器访问指令的第一线程和包括所述第二存储器访问指令的第二线程。3.根据权利要求1所述的数据处理设备,其中,所述第一存储器访问指令和所述第二存储器访问指令具有相同的程序计数器值。4.根据权利要求2所述的数据处理设备,其中,所述处理电路被配置为以任意顺序执行所述第一线程和所述第二线程。5.根据权利要求1所述的数据处理设备,其中,所述跨步求精电路被配置为将所述跨步长度精确到所述跨步长度和所述差值的最大公因数。6.根据权利要求1所述的数据处理设备,其中,所述跨步求精电路被配置为:如果所述差值是所述跨步长度的因数,则将所述跨步长度精确到所述差值。7.根据权利要求1所述的数据处理设备,包括:跨步置信电路,该跨步置信电路被配置为:维护跨步值的置信值,以响应于指向已由所述预取电路预取的数据的地址的存储器访问指令而增大所述置信值,以及响应于所述跨步求精电路对所述跨步长度进行求精而重置所述置信值。8.根据权利要求7所述的数据处理设备,其中,所...

【专利技术属性】
技术研发人员:干纳施·苏亚那拉亚安·达斯卡鲁纳·霍姆
申请(专利权)人:ARM有限公司
类型:发明
国别省市:英国;GB

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

1