一种无用预取过滤方法技术

技术编号:8593902 阅读:290 留言:0更新日期:2013-04-18 07:03
一种无用预取过滤方法,涉及微处理器访存性能优化领域,能够在不降低数据预取性能的同时减少无用预取,以降低数据预取的能耗和带宽开销,提高数据预取的能效性。所述过滤方法,在某个预取信息被发出时,将所述预取信息读取的预取数据添加到缓存中,将保存所述预取数据的缓存组的缓存行作为该预取信息的预取行,若缓存组的所有缓存行均有效,则从缓存组中确定一个有效的缓存行作为该预取信息的替换行替换出所述缓存组,将所述已发出的预取信息的预取行地址和替换行地址保存在预取历史信息表中。能够在对有用预取影响较小的情况下有效减少无用预取,在保持或提高数据预取性能的情况下有效降低数据预取的能耗和带宽开销,提高数据预取的能效性。

【技术实现步骤摘要】

本专利技术涉及微处理器访存性能优化领域,尤其涉及一种自适应的无用预取过滤方法
技术介绍
随着处理器与存储器之间性能差距的不断扩大,访存延迟逐渐成为制约处理器性能的关键因素。数据预取技术在处理器访问数据之前预测其访存地址并提前向该访存地址发出访存请求,以隐藏访存延迟。数据预取技术主要可分为软件预取技术和硬件预取技术。其中,硬件预取技术通过预取器捕获程序运行过程中可重复的访存模式(Memory AccessPattern)来预测后续的访存地址并自动发起预取请求。预取器在对后续访存地址的预测发生错误时会产生无用预取。无用预取取回的数据不会被处理器使用,其不仅会造成带宽和能耗浪费,而且可能因造成缓存污染对部分程序的性能产生负面影响。因此,减少无用预取是提闻预取性能和能效性的关键。
技术实现思路
本专利技术所要解决的技术问题是提供,能够在不降低数据预取性能的同时减少无用预取,以降低数据预取的能耗和带宽开销,提高数据预取的能效性。为了解决上述技术问题,本专利技术提供了,在某个预取信息被发出时,将所述预取信息读取的预取数据添加到缓存中,将保存所述预取数据的缓存组的缓存行作为该预取信息的预取行,若缓存组的所有缓存行均有效,则从缓存组中确定一个有效的缓存行作为该预取信息的替换行替换出所述缓存组,将所述已发出的预取信息的预取行地址和替换行地址保存在预取历史信息表中。进一步地,在某个预取信息被过滤时,将所述被过滤的预取信息的地址信息作为预取行地址保存在预取历史信息表中。进一步地,根据预取行和替换行被处理器访问的顺序判断是否过滤该预取信息。进一步地,根据处理器是否使用被过滤的预取信息来判断所述预取信息是否被过滤。进一步地,从缓存组中确定一个有效的缓存行作为替换行替换出所述缓存组的方法为先进先出替换方法、随机替换方法和最近最少使用替换方法中的一种。进一步地,预取历史信息表包括如下4个域预取行地址域,用于存储全部预取信息的预取行地址;预取行有效位,用于标识每个预取行地址域的预取行是否有效;替换行地址域,用于存储全部因为预取信息而被替换出的缓存组的替换行地址;替换行有效位,用于标识每个替换行地址域的替换行是否有效。进一步地,所述预取历史信息表采用全相联或组相联结构。进一步地,在处理器或预取器访问缓存时,根据需求访问地址或被替换的缓存行的地址查找预取历史信息表,并根据以下情况更新过滤计数器中相应表项的值I)若需求访问地址与预取历史信息表中任一表项保存的有效的预取行地址相同,则预取行先于替换行被处理器使用,该预取信息不被过滤,此时将预取信息地址所对应的过滤计数器表项的值减I;2)若需求访问地址与预取历史信息表中任一表项保存的有效的替换行地址相同,则替换行先于预取行被处理器使用,该预取信息导致缓存替换出了 一个有用的缓存行,该预取信息被过滤,此时将预取信息地址所对应的过滤计数器表项的值加I;3)在缓存替换出一个缓存行时,若该缓存行的地址与预取历史信息表中任一表项保存的有效的预取行地址相同,则该预取信息取回的数据在被处理器使用之前就被替换出缓存,该预取信息被过滤,此时将预取信息地址所对应的过滤计数器表项的值加I。进一步地,所述过滤计数器为若干个计数器数组,所述计数器数组中的每个计数器标识一个存储区域内的无用预取信息过滤状态。与现有技术相比,本专利技术使用预取历史信息表记录已发出预取信息的预取行和替换行地址,之后根据其预取行还是替换行先被处理器访问来判断是否应该过滤该预取信息,并统计这些历史信息用以得出过滤或发出新产生的预取信息的结论。同时,为了避免错误地过滤有用预取信息,本专利技术在预取历史信息表中也记录被过滤的预取信息的地址信息,之后根据处理器是否使用被过滤的预取信息来判断其是否应该被过滤,并统计这些历史信息用以构建过滤反馈机制。本专利技术能够在对有用预取影响较小的情况下有效减少无用预取,从而在保持或提高数据预取性能的情况下有效降低数据预取的能耗和带宽开销,提高数据预取的能效性。附图说明图1为本专利技术实施例的预取历史信息表的结构示意图。具体实施例方式为使本专利技术的目的、技术方案和优点更加清楚明白,下文中将结合附图对本专利技术的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。本专利技术实施例利用预取历史信息表保存已发出的预取信息和被过滤的预取信息的地址信息。所述预取历史信息表采用全相联或组相联结构。如图1所示,预取历史信息表的每个表项保存一个已发出或被过滤的预取信息的地址信息,预取历史信息表包括如下4个域预取行地址域(PAddr),用于存储全部预取信息的预取行地址;预取行有效位(PV),用于标识每个预取行地址域的预取行是否有效;替换行地址域(VAddr),用于存储全部因为预取信息而被替换出的缓存组的替换行地址;替换行有效位(VV),用于标识每个替换行地址域的替换行是否有效。 本专利技术实施例利用过滤计数器标识无用预取过滤状态。无用预取过滤状态具体指是否过滤所述预取信息。直接映射、全相联和组相联是三种典型的缓存(或存储)组织结构。在直接映射结构下,每个数据只能被存放在存储中的一个固定位置(该位置由地址进行索引);在全相联结构下,每个数据可以存放在存储中的任何位置(不需要使用地址进行索引,需要比较存储所有位置保存的标签来找到数据);在组相联结构下,存储被分为若干个组,每个组包含若干个行,每个数据只能被存放在存储的某一个组中(该组由地址进行索引),但在该组中,可以存放在任何一个行(需要比较每组中所有行保存的标签来找到数据)。其中,全相联结构也可以被看作只有一个组的组相联结构。当数据较多时,直接映射结构由于多个数据竞争一个存储位置,会导致较高的冲突失效;全相联结构的冲突失效最少,但实现代价较高;组相联结构则可以平衡冲突失效和实现代价。所述过滤计数器可以为若干个计数器数组。在将物理地址空间划分成大小相同的存储区域(比如可以将物理地址空间划分成8MB大小的存储区域),计数器数组中的每个计数器标识一个存储区域内的无用预取过滤状态。在预取器产生新的预取信息时,使用预取信息地址索引过滤计数器,读出相应表项的值(即无用预取过滤状态),以决定发出还是过滤该预取信息。可以使用物理地址的最高位到23位来索引过滤计数器,以更新或读出相应表项的值。本专利技术实施例提出了一种自适应的无用预取过滤方法,在某个预取信息被发出或过滤时,将所述已发出和被过滤的预取信息的地址信息保存在预取历史信息表中。对于已发出的预取信息,将所述预取信息读取的预取数据添加到缓存中,将保存预取数据的缓存组的缓存行作为预取行,若缓存组的所有行均有效,则根据替换算法,从缓存组中确定一个有效的缓存行作为替换行替换出的缓存组,将所述已发出的预取信息的预取行地址和替换行地址保存在预取历史信息表中,并将预取行有效位和替换行有效位均置Io常见的替换算法主要有三种先进先出(FIFO,First In First Out)、随机(Random)和最近最少使用(LRU, Least Recently Used)。目前,应用最广泛的是LRU替换算法,记录处理器对缓存组中各缓存行的使用情况,选择最近最少使用的缓存行替换出去(可基于栈来实现LRU替换算法每个缓存组维护一个栈,栈的元素即为该缓存组的各本文档来自技高网...

【技术保护点】
一种无用预取过滤方法,其特征在于:在某个预取信息被发出时,将所述预取信息读取的预取数据添加到缓存中,将保存所述预取数据的缓存组的缓存行作为该预取信息的预取行,若缓存组的所有缓存行均有效,则从缓存组中确定一个有效的缓存行作为该预取信息的替换行替换出所述缓存组,将所述已发出的预取信息的预取行地址和替换行地址保存在预取历史信息表中。

【技术特征摘要】
1.一种无用预取过滤方法,其特征在于 在某个预取信息被发出时,将所述预取信息读取的预取数据添加到缓存中,将保存所述预取数据的缓存组的缓存行作为该预取信息的预取行,若缓存组的所有缓存行均有效,则从缓存组中确定一个有效的缓存行作为该预取信息的替换行替换出所述缓存组,将所述已发出的预取信息的预取行地址和替换行地址保存在预取历史信息表中。2.如权利要求1所述的过滤方法,其特征在于在某个预取信息被过滤时,将所述被过滤的预取信息的地址信息作为预取行地址保存在预取历史信息表中。3.如权利要求1所述的过滤方法,其特征在于根据预取行和替换行被处理器访问的顺序判断是否过滤该预取信息。4.如权利要求2所述的过滤方法,其特征在于根据处理器是否使用被过滤的预取信息来判断所述预取信息是否被过滤。5.如权利要求1所述的过滤方法,其特征在于从缓存组中确定一个有效的缓存行作为替换行替换出所述缓存组的方法为 先进先出替换方法、随机替换方法和最近最少使用替换方法中的一种。6.如权利要求1所述的过滤方法,其特征在于预取历史信息表包括如下4个域 预取行地址域,用于存储全部预取信息的预取行地址; 预取行有效位,用于标识每个预取行地址域的预取行是否有效; 替换行地址域,用于存储全部因为预取信息而被替换出的缓存组的替...

【专利技术属性】
技术研发人员:程旭党向磊王箫音佟冬谢子超李凌达王克义
申请(专利权)人:北京北大众志微系统科技有限责任公司
类型:发明
国别省市:

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

1