首页> 中国专利> 以配置信息驱动数据访存模式匹配的片上缓存预取机制

以配置信息驱动数据访存模式匹配的片上缓存预取机制

摘要

本发明公开了一种以配置信息驱动数据访存模式匹配的片上缓存预取机制,包括:模式检测模块,用于基于可重构阵列的访存地址,检测当前执行的配置信息的预取模式;模式存储模块,用于存储预设时间段内使用的配置信息的预取模式;地址生成模块,用于根据存储的预取模式为再次在可重构阵列上执行的配置信息产生数据预取地址;模式评估模块,用于计算存储的预取模式的预取准确度,以检测出失效的预取模式并更新。本发明实施例的片上缓存预取机制,在预取准确度超过一定的阈值时,按照预取模版获取预取数据,提高了预取的准确度和性能,进一步提高了系统性能,简单易实现。

著录项

  • 公开/公告号CN105930281A

    专利类型发明专利

  • 公开/公告日2016-09-07

    原文格式PDF

  • 申请/专利权人 清华大学;

    申请/专利号CN201610317626.4

  • 申请日2016-05-12

  • 分类号G06F12/08(20160101);

  • 代理机构北京清亦华知识产权代理事务所(普通合伙);

  • 代理人张大威

  • 地址 100084 北京市海淀区100084-82信箱

  • 入库时间 2023-06-19 00:28:54

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-01-15

    授权

    授权

  • 2016-10-05

    实质审查的生效 IPC(主分类):G06F12/08 申请日:20160512

    实质审查的生效

  • 2016-09-07

    公开

    公开

说明书

技术领域

本发明涉及动态可重构技术领域,特别涉及一种以配置信息驱动数据访存模式匹配的片上缓存预取机制。

背景技术

可重构计算阵列使用多个处理单元(Processing Elements,PEs)构成的阵列来满足不同应用程序的不同需求。未来的计算系统往往需要兼具多功能和高性能的特点,当前的趋势是在计算系统中加入多个可重构计算阵列,来自适应地支持不同的标准,同时满足日益增加的性能需求。与其他典型的计算系统类似,由多个可重构阵列组成的计算系统面临的挑战之一是:不断增加的内存带宽需求和有限的片外存储器访问速度之间日益增大的差距。片上缓存已经作为一种非常有效的方法来减少片外存储器的带宽要求。图1显示了多个可重构阵列共享片上缓存的一种通用的体系结构,该结构类似于片上多处理器(chip multiprocessor)架构,其中的每个可重构阵列相当于一个处理器。

通过片上缓存获得高性能的关键之一是有效地管理缓存,以减少对片外存储器的访问次数。片上缓存通常采用LRU(Least Recently Used)替换方法,该方法并不会对运算数据进行预取。因此,一旦当前需要的运算数据并不在片上缓存中,即发生缓存缺失时,需要从片外存储器中读取缺失的运算数据;此时,处理器不得不停止运算,等待运算数据从片外存储器中读入,导致降低处理器的性能。

为了解决这个问题,缓存的预取方法已经被证明是一种可以有效地使用片上缓存的技术,该技术为每个处理器预先准备运算数据。相关技术中,如图2所示,图2给出了使用SBP方法实现片上缓存预取的例子,该方法预先定义好了一些不同步长的预取模板,在系统运行时实时地评估不同的预取模板可能获得的收益,再按照收益最大的预取模板进行预取。

然而,相关技术中的片上缓存预取方法,根据处理器的历史访存信息,推测处理器近期将要使用的运算数据地址,并进行预取。其主要追踪记录通用处理器中独立的访存地址,没有考虑到可重构阵列上的配置信息被多次执行的特点,因此直接使用现有的预取方法会存在以下问题:

1、相关技术中的缓存预取方法需要经过同一地址的多次缓存缺失过程,才能确定访存 数据流的步长和方向,这个过程消耗的时间很长。

2、相关技术中的预取方法仅仅基于历史访存地址来推测当前可能的访存地址,它们之间不一定存在联系,因此历史访存信息很可能已经过时却仍然在被使用,从而对当前访存地址产生错误的推测。

3、相关技术中的硬件预取方法无法检测到数组的边界,会在数组边界之外预取大量的无效数据,从而造成片上缓存的污染和预取准确度的降低。

发明内容

本发明旨在至少在一定程度上解决相关技术中的技术问题之一。

为此,本发明的目的在于提出一种以配置信息驱动数据访存模式匹配的片上缓存预取机制,该机制可以提高预取的准确度和性能,简单易实现。

为达到上述目的,本发明实施例提出了一种以配置信息驱动数据访存模式匹配的片上缓存预取机制,包括:模式检测模块,用于基于可重构阵列的访存地址,检测当前执行的配置信息的预取模式;模式存储模块,用于存储预设时间段内使用的配置信息的预取模式;地址生成模块,用于根据存储的预取模式为再次在可重构阵列上执行的配置信息产生数据预取地址;模式评估模块,用于计算所述存储的预取模式的预取准确度,以检测出失效的预取模式并更新。

本发明实施例的以配置信息驱动数据访存模式匹配的片上缓存预取机制,在进行收益评估时并不需要实际去获得预取的数据,而是通过判断预取模板是否可以精准地预取数据,只有当预取模板的预取准确度超过一定的阈值时,才会按照该预取模板去实际获取预取数据,提高了预取的准确度和性能,进一步提高了系统性能,简单易实现。

另外,根据本发明上述实施例的以配置信息驱动数据访存模式匹配的片上缓存预取机制还可以具有以下附加的技术特征:

进一步地,在本发明的一个实施例中,所述模式检测模块具体用于检测所述访存地址中的数据流,以记录下描述数据流的信息,并且当检测到的数据流与之前的任意一个数据流首尾相接时,将这两个数据流拼接在一起,以及当检测到的数据流与之前的任意一个数据流有重叠的地址时,将这两个数据流合并为一个。

进一步地,在本发明的一个实施例中,缓存采用全相连(full-associative)的组织模式,缓存的标签是配置信息索引,缓存的数据空间为每套配置信息存储固定数目的数据流。

进一步地,在本发明的一个实施例中,所述地址生成模块根据配置信息的预取模式产生基于步长的预取,其中,所述地址生成模块使用所述配置信息作为索引在所述模式存储模块中查找并读出相应的预取模式,按照基于步长的预取生成顺序的所述数据预取地址。

进一步地,在本发明的一个实施例中,所述模式评估模块通过布隆滤波器、预取计数器与命中计数器计算预取准确度,其中,所述布隆滤波器由多路选择器、按位异或模块和位向量组成,所述预取计数器与命中计数器分别统计预取的数据量和命中的数据量。

进一步地,在本发明的一个实施例中,所述预取模式的预取准确度通过计算命中计数器与预取计数器的比值得到,如果所述比值超过预设阈值,则所述预取模式仍然有效,不需要进行更新,否则所述预取模式需要被更新。

进一步地,在本发明的一个实施例中,所述位向量、所述预取计数器与所述命中计数器在评估过程完成之后进行一次复位。

本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:

图1为相关技术中的多个可重构阵列共享缓存的体系结构示意图;

图2为根据本发明一个实施例的实现片上缓存预取的SBP方法的流程图;

图3为根据本发明实施例的以配置信息驱动数据访存模式匹配的片上缓存预取机制的结构示意图;

图4为根据本发明一个实施例的模式存储模块的存储空间内容示意图;

图5为根据本发明一个实施例的模式评估模块的硬件结构示意图;以及

图6为根据本发明一个实施例的性能对比示意图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。

下面参照附图描述根据本发明实施例提出的以配置信息驱动数据访存模式匹配的片上缓存预取机制。

图3是本发明实施例的以配置信息驱动数据访存模式匹配的片上缓存预取机制的结构示意图。

如图3所示,该以配置信息驱动数据访存模式匹配的片上缓存预取机制10包括:模式检测模块100、模式存储模块200、地址生成模块300和模式评估模块400。

其中,模式检测模块100用于基于可重构阵列的访存地址,检测当前执行的配置信息的预取模式。模式存储模块200用于存储预设时间段内使用的配置信息的预取模式。地址生成模块300用于根据存储的预取模式为再次在可重构阵列上执行的配置信息产生数据预取地址。模式评估模块400用于计算存储的预取模式的预取准确度,以检测出失效的预取模式并更新。本发明实施例的片上缓存预取机制10在预取准确度超过一定的阈值时,按照预取模版获取预取数据,提高了预取的准确度和性能,进一步提高了系统性能。

具体地,如图3所示,模式检测模块基于可重构阵列20的访存地址,检测当前执行的配置信息的预取模式;模式存储模块200用来存储最近使用的配置信息的预取模式;地址生成模块300根据已经存储的预取模式,为再次在可重构阵列20上执行的配置信息产生数据预取地址;模式评估模块400计算预取模式的预取准确度,检测出失效的预取模式并更新。其中使用的输入信号说明如下:

1、context index信号:在可重构阵列上执行的配置信息的索引;

2、invalid信号:指示当前配置信息的访存模式是否需要更新;

3、prefetch addresses信号:预取地址;

4、cache miss信号:指示当前配置信息的预取模式不在模式存储模块中;

5、read cache信号:将当前配置信息的预取模式从模式存储模块中读出;

6、write cache信号:将当前配置信息的预取模式写入到模式存储模块中。

需要说明的是,图3中可重构阵列20、片上缓存30与片外存储器40的结构与作用为本领域技术人员公知的,为减少冗余,在此不作详细赘述。另外,预设时间段可以根据实际情况进行设置,例如为了得到最近使用的配置信息的预取模式,可以将预设时间段设置为一个月内,

进一步地,在本发明的一个实施例中,模式检测模块100具体用于检测访存地址中的数据流,以记录下描述数据流的信息,并且当检测到的数据流与之前的任意一个数据流首尾相接时,将这两个数据流拼接在一起,以及当检测到的数据流与之前的任意一个数据流有重叠的地址时,将这两个数据流合并为一个。

在本发明的实施例中,模式检测模块100主要检测访存地址中的数据流,记录下描述数据流的相关信息,如表1所示。另外,模式检测模块100可以实现多个数据流的拼接与合并:当检测到的数据流与之前的某个数据流首尾相接时,可以将这两个数据流拼接在一起;当检测到的数据流与之前的某个数据流有重叠的地址时,可以将这两个数据流合并为一个。

表1

项目 位宽 描述 起始地址 32bits 数据流的起始访存地址 位置 16bits 数据流在配置信息的全部访存地址中的位置 步长 16bits 数据流中相邻的两个访存地址的间隔 拍数 16bits 数据流的长度 权重 16bits 数据流的权重

进一步地,在本发明的一个实施例中,缓存采用全相连(full-associative)的组织模式,缓存的标签是配置信息索引,缓存的数据空间为每套配置信息存储固定数目的数据流。

具体地,模式存储模块200采用缓存结构存储近期使用的配置信息的预取模式,其中的存储内容如图4所示。缓存采用全相连(full-associative)的组织模式,缓存的标签是配置信息索引,缓存的数据空间为每套配置信息存储固定数目的数据流。

进一步地,在本发明的一个实施例中,地址生成模块300根据配置信息的预取模式产生基于步长的预取,其中,地址生成模块300使用配置信息作为索引在模式存储模块200中查找并读出相应的预取模式,按照基于步长的预取生成顺序的数据预取地址。

也就是说,在本发明的实施例中,地址生成模块300根据配置信息的预取模式产生基于步长的预取。地址生成模块300使用配置信息作为索引在模式存储模块中查找并读出相应的预取模式,按照基于步长的预取生成顺序的预取地址a+s,a+2×s,...a+d×s,其中的各个变量定义如下:

1、变量a是预取的起始地址,它等于可重构阵列当前的访存地址;

2、变量s是相邻的预取地址间偏移量,它等于预取模式的步长;

3、变量d是预取地址的数目,它等于预取模式的拍数。

进一步地,在本发明的一个实施例中,模式评估模块400通过布隆滤波器、预取计数器与命中计数器计算预取准确度,其中,布隆滤波器由多路选择器、按位异或模块和位向量组成,预取计数器与命中计数器分别统计预取的数据量和命中的数据量。

在本发明的一个实施例中,如图5所示,模式评估模块400使用布隆滤波器和两个计数器计算预取准确度:布隆滤波器由多路选择器、按位异或模块和一个4096比特位向量组成;两个硬件计数器分别统计预取的数据量和命中的数据量。其中使用的输入信号说明如下:

1、prefetch address信号:预取地址;

2、prefetch request信号:预取请求;

3、demand address信号:可重构阵列的访存地址;

4、filter address信号:布隆滤波器中用来生成比特位索引的地址。

当prefetch request信号有效时,多路选择器选通prefetch address到filter address,按位异或之后将位向量的相应比特位置为1,指示该预取地址已经被存入片上缓存中。同时,预取计数器的值增加1。

当可重构阵列发起访存请求时,多路选择器选通demand address到filter address,按位异或之后读出位向量的相应比特位的数值。若该值为1,表示可重构阵列的访存地址已经被预取到片上缓存中,在这种情况下,命中计数器的值增加1。

进一步地,在本发明的一个实施例中,预取模式的预取准确度通过计算命中计数器与预取计数器的比值得到,如果比值超过预设阈值,则预取模式仍然有效,不需要进行更新,否则预取模式需要被更新。

也就是说,预取模式的准确度可以通过计算命中计数器与预取计数器的比值得到:如果该比值超过给定的阈值θ(=3/4),那么认为预取模式仍然有效,不需要进行更新:否则,预取模式需要被更新。

进一步地,在本发明的一个实施例中,位向量、预取计数器与命中计数器在评估过程完成之后进行一次复位。即言,位向量和两个硬件计数器的值在每套配置信息的预取模式评估过程完成之后进行一次复位。

在本发明的实施例中,当进行收益评估时并不需要实际去获得预取的数据,而是通过将预取模板的访存地址与一个布隆滤波器中的历史记录进行比较,来判断预取模板是否可以精准地预取数据,只有当预取模板的预取准确度超过一定的阈值时,才会按照该预取模板去实际获取预取数据。具体地,本发明实施例的片上缓存预取机制的特点与优点如下:

主要特点:

1、使用可重构阵列的配置信息作为引导,当配置信息首次在可重构阵列上执行时,记录该配置信息的数据访存模式;

2、当配置信息再次在可重构阵列上执行时,根据已经记录的数据访存模式产生预取地址;

3、使用布隆滤波器评估数据访存模式的预取准确度,对于失效的数据访存模式进行更新。

主要优点:

1、该机制减少了重复训练的次数和时间,通常只需要在配置信息首次执行时进行一次训练过程;

2、该机制记录了配置信息准确的数据访存模式,消除了无效的历史数据对预取性能的负面影响;

3、该机制的数据访存模式可以记录到循环的边界,防止预取循环边界之外的无效数据。

举例而言,在图3所示的结构上,对比本发明实施例提出的以配置信息驱动数据访存模式匹配的片上缓存预取机制与相关技术中方法的性能。该结构中的各部分模块的配置参数如表2所示,表2为:

表2

用于性能对比的测试集如表3所示,可以分为两组:一组测试集包括Parallel1~Parallel7,其中两个可重构阵列执行同样的算法,但是输入数据不同;以测试集Parallel5为例,可重构阵列1和可重构阵列2分别完成同一帧图像的奇数场和偶数场的中值滤波运算。另一组测试集包括Pipeline1~Pipeline6,其中两个可重构阵列组成流水线,执行不同的算法;以测试集Pipeline3为例,可重构阵列1完成反离散余弦变换,可重构阵列2完成运动补偿,这两个算法是主流的视频解码算法中两个顺序执行的子算法。

表3

本发明实施例的预取方法与相关技术中3种预取方法的性能对比如图6所示,具体的性能对比结果如表4所示,其中采用LRU方法的性能加速比归一化为1,其他预取方法的性能以相对于LRU算法的性能加速比表示。

表4

由此得知,与相关技术中3种预取方法相比,采用本发明实施例的预取方法,系统的性能加速比平均分别提高了32%,12%,和8%。

下面以测试集Parallel4为例,对比了本发明实施例与SBP方法得到的预取效果的不同。

本测试集中,两个可重构阵列完成相同的运算,都是按照牛顿引力定律和牛顿运动定律来模拟N个粒子的运动状态。其中可重构阵列用到的输入数据包括N个粒子的位置、质量、速度,它们按照不同的数组存放在外部存储器中。计算的第一步是使用位置和质量计算粒子之间的引力大小;第二步是使用位置、质量和速度计算每个粒子的运动状态。计算过程中可重构阵列的输入数据由多个不同步长的短数据流交织组成,这些数据流在粒子的位置、质量、速度信息之间频繁切换。

在这种情况下,本发明实施例的预取方法可以检测到不同时刻访存同一类信息的具有 相同步长的多个短数据流,并且将它们合并为一个统一的长数据流;当配置信息再次被执行时,就可以预取整个长数据流,从而提高预取的性能。另外,本发明实施例的预取方法将数据流与配置信息相关联,消除了其他配置信息的数据流对预取准确度的影响,可以提高预取的性能。

相比之下,SBP预取方法只能按照预先定义好的固定步长进行预取,不适合本例子中多个不同步长的数据流交织在一起的情况。因此,相比于SBP方法,本发明实施例的预取方法可以提高9%的系统性能。

根据本发明实施例的以配置信息驱动数据访存模式匹配的片上缓存预取机制,在进行收益评估时并不需要实际去获得预取的数据,而是通过判断预取模板是否可以精准地预取数据,只有当预取模板的预取准确度超过一定的阈值时,才会按照该预取模板去实际获取预取数据,提高了预取的准确度和性能,进一步提高了系统性能,简单易实现。

在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”、“顺时针”、“逆时针”、“轴向”、“径向”、“周向”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。

此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。

在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。

在本发明中,除非另有明确的规定和限定,第一特征在第二特征“上”或“下”可以是第一和第二特征直接接触,或第一和第二特征通过中间媒介间接接触。而且,第一特征在第二特征“之上”、“上方”和“上面”可是第一特征在第二特征正上方或斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”可以是第一特征在第二特征正下方或斜下方,或仅仅表示第一特征水平高度小于第二特征。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、 或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号