一种针对粗粒度可重构结构的基于相似性的指令压缩方法与流程

文档序号:17989610发布日期:2019-06-22 00:40阅读:162来源:国知局
一种针对粗粒度可重构结构的基于相似性的指令压缩方法与流程

本发明涉及计算机指令优化领域,尤其涉及一种针对粗粒度可重构结构的基于相似性的指令压缩方法。



背景技术:

粗粒度可重构架构被视为在后摩尔定律时代能效比更高的体系结构。通常,粗粒度可重构架构的具体组成结构有:共享数据存储器、全局指令存储器、指令存储控制器和运算单元阵列。不同的结构具有不同的运算单元阵列、共享数据存储器、全局指令存储器的互联方式。在众多结构设计中,主要分为两类:一类是单指令多数据模式(simd),对于这种模式,运算单元的每个机器周期通过总线接收全局指令存储器发来的指令,对于每一行运算单元通常都采用相同的指令,以减少读取指令造成的功耗;另一类是多指令多数据模式(mimd),这种模式多采用在运算单元内部添加本地指令存储器的方式减少每个机器周期读取指令的时间代价。

然而现有的这两种结构模式仍存在较多问题。针对常见的simd结构,在指令配置过程中需占用较长时间,造成很大的性能损失,为减少这种损失将同一行的运算单元配置为相同指令,又会引起应用领域的限制和运算单元的资源浪费。而针对常见的mimd结构,性能具有优势,但是引入本地指令寄存器会造成很大的功耗和面积代价。

目前,国内外针对粗粒度可重构效能的研究多集中在运算阶段,忽视了其指令配置信息及控制逻辑产生的功耗,在对减少指令功耗的研究上也多集中在对指令本身的相关性及特征进行分析,并据此优化指令功耗。通过对常见的不同应用领域的粗粒度可重构指令进行分析统计,得到以下特征:一是在指令运行过程中,从一条指令到下一条指令实际的变化比特数并不多,指令与指令间具有某种程度的相似性;二是指令内部具有冗余性,对于某一具体的指令,其并没有完全利用全长度位宽;三是通过改进编译器的映射策略,可提高指令间的相似性。

因此,本领域的技术人员致力于开发一种针对粗粒度可重构结构的基于相似性的指令压缩方法,以提高指令运算性能,减少指令传输功耗。



技术实现要素:

有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是针对常见simd和mimd现有结构的缺点,本发明要提供一种相较于simd增加不多的功耗代价,但性能接近于mimd的解决方案,该解决方案能广泛应用于多个应用领域,并具有明显的能效提升。

为实现上述目的,本发明提供了一种针对粗粒度可重构结构的基于相似性的指令压缩方法,包括以下步骤:

第一步:利用原有的粗粒度可重构编译技术得到数据流图;

第二步:通过原有的粗粒度可重构资源感知映射方法对所述数据流图进行映射;

第三步:通过映射算法和基本指令集结构,对所述数据流图的映射结果进行指令优化配置;

第四步:根据所述基本指令集结构,制定指令优化规则,针对每一个运算单元的指令进行分割,提取并压缩后存入全局指令存储器中;

第五步:根据所述指令优化规则,设计指令存储控制器;

第六步:通过所述指令存储控制器读取所述全局指令存储器中的指令编码,执行指令。

进一步地,所述第一步中所述原有的粗粒度可重构编译技术包括两种数据与指令的互联模式,一种是单指令多数据模式,另一种是多指令多数据模式。

进一步地,所述第三、四、五、六步中所述指令被配置有基本指令集,包括操作码、输入、输出和地址扩展位。

进一步地,所述第四、五步中所述指令优化规则是基于指令与指令间的相似性进行指令优化。

进一步地,所述第四步中所述指令分割被设置为5位操作码分割为一个片段,7位输入或输出分割为一个片段,其中,所述输入或输出共分割为8个片段。

进一步地,所述第四步中所述指令压缩被设置为一个超长指令字,所述超长指令字包括1位标志位、3位片段地址码、5位操作码和7位片段信息。

进一步地,当所述标志位为1时,表明所述运算单元读取指令完成。

进一步地,所述超长指令字的长度由所述粗粒度可重构结构运算单元的个数决定;一次指令传输所需超长指令字的数量,由所述粗粒度可重构结构运算单元改变片段数决定。

进一步地,所述第五步中所述指令存储控制器设置有同步器和控制单元,所述同步器接收每一个所述运算单元指令读取完毕的信号,并输出信号至每一个所述控制单元,所述控制单元接收到所述同步器指令读取完毕的信号后,将控制所述运算单元从所述全局指令存储器中读取下一条指令,直至所述全局指令存储器中所有指令读取完毕。

进一步地,所述指令的读取过程还设置有所述运算单元的本地指令寄存器,当所有指令被暂存进所述运算单元的本地指令寄存器后,向所述指令存储控制器发送寄存完毕信号,当所述同步器接收到所述信号后,将从所述全局指令存储器中读取下一条指令。

在本发明的较佳实施方式中,通过应用有效的指令优化和映射算法,可显著减少指令改变的片段个数,降低指令传输功耗,具体的优化方法有以下三种:

(1)每条指令内部具有一定的冗余信息,编译器可以通过将这些信息配置为与上一条指令或者与下一条指令相同的信息,从而减少指令改变的片段数;

(2)在运算单元映射过程中,在不降低性能的前提下选择指令片段数改变更少的映射结果来减少指令传输代价;

(3)对于空操作,除操作码片段外,均为冗余信息,编译器可以配置其与上下两条指令差别最小以减少指令改变片段数。

本发明提供的针对粗粒度可重构结构的基于相似性的指令压缩方法至少具有以下有益的技术效果:

(1)与现有的simd结构相比,本发明具有更高的性能,与现有的mimd结构相比,本发明具有明显的面积和功耗优势;

(2)相比一些其他的优化技术,本发明提供的指令优化方案为完整的软硬件结合方案,具有更广泛的应用领域,并且多种应用测试结果也表明本发明的技术方案具有明显的优化结果;

(3)本发明的结构简单,有易移植、易实现的特点。

以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本发明的目的、特征和效果。

附图说明

图1是本发明的一个较佳实施例的基本指令集示意图;

图2是本发明的一个较佳实施例的指令分割及压缩示意图;

图3是本发明的一个较佳实施例的映射示例图;

图4是本发明的一个较佳实施例对应映射示例的映射方案1示意图;

图5是本发明的一个较佳实施例对应映射示例的映射方案2示意图;

图6是本发明的一个较佳实施例对应映射方案1的指令传输示意图;

图7是本发明的一个较佳实施例对应映射方案2的指令传输优化示意图;

图8是本发明的一个较佳实施例对应映射示例的空操作指令传输优化示意图;

图9是本发明的一个较佳实施例的指令存储控制器的硬件结构示意图;

图10是本发明的一个较佳实施例的不同应用指令性能测试结果图。

具体实施方式

以下参考说明书附图介绍本发明的多个优选实施例,使其技术内容更加清楚和便于理解。本发明可以通过许多不同形式的实施例来得以体现,本发明的保护范围并非仅限于文中提到的实施例。

在附图中,结构相同的部件以相同数字标号表示,各处结构或功能相似的组件以相似数字标号表示。附图所示的每一组件的尺寸和厚度是任意示出的,本发明并没有限定每个组件的尺寸和厚度。为了使图示更清晰,附图中有些地方适当夸大了部件的厚度。

本发明提供的一种针对粗粒度可重构结构的基于相似性的指令压缩方法,所述粗粒度可重构结构的具体组成部分包括共享数据存储器(sdm),全局指令存储器(gcm),指令存储控制器(cmc)和运算单元阵列(pea)。本发明通过采用相邻指令的相似性,有效进行指令配置优化,具体的步骤如下:

第一步:利用原有的粗粒度可重构编译技术得到数据流图。

第二步:通过原有的粗粒度可重构资源感知映射方法对所述数据流图进行映射。

第三步:通过映射算法和基本指令集结构,对所述数据流图的映射结果进行指令优化配置。

本实施例中,所述基本指令集结构如图1所示,所述基本指令集结构主要包括操作码、输入、输出和地址扩展位,其中,所述5位操作码表示本条指令的具体操作类型,所述输入包括3位in_1和4位in1_adr。对于输入1,所述3位in_1表示指令输入来源,本实施例中,所述指令输入来源包括共享数据存储器(sdm)、全局寄存器(grf)、本地寄存器(lrf)和与本地相连的其他运算单元(pe)的输出结果;所述4位in1_adr表示输入指令的具体地址或指令所在寄存器地址。输入2、3与所述输入1相同。与所述输入类似,所述输出包括3位out和4位out_adr,其中,所述3位out表示指令输出去向,本实施例中,所述指令输出去向包括共享数据存储器(sdm)、全局寄存器(grf)、本地寄存器(lrf)和输出寄存器;所述4位out_adr表示指令输出的具体地址或指令所在寄存器地址。所述地址扩展位为28位,用来表示常数、装载或存储指令操作的地址拓展位。

第四步:根据所述基本指令集结构,制定指令优化规则,针对每一个运算单元的指令进行分割,提取并压缩后存入全局指令存储器中。

本实施例中,所述指令分割和压缩的规则基于所述指令内部不同部分的变化具有相关性,如图1所示,对于所述输入1,当所述in_1变化时所述in1_adr也会随之变化,因此所述3位in_1和4位in1_adr分割为一个片段s0。同样地,将所述指令的其他部分也按此7位为一个分割片段划分,s1-s7,共划分为8个片段。特别地,所述5位操作码单独分割为一个片段sop。当所述指令分割完毕后,本实施例中将所述运算单元的操作码片段sop和其相对于上一条指令有改变的一个片段压缩到一个包中,组成一个指令字。当一条指令相对于上一条指令有多个片段改变时,则需要分多次传输,故需在所述指令字中加入一个标志位来表示本次传输是否是该条指令的最后一个改变片段。所有所述运算单元的指令字打包组成一个超长指令字。如图2所示,所述运算单元pe0为一个16位指令字,包括1位标志位、3位片段地址码、5位操作码和7位片段信息,其中,所述1位标志位表示本次传输是否是该条指令的最后一个改变片段,所述3位片段地址码表示本次传输的是哪个片段。在一次指令传输过程中,一些运算单元可能比其他运算单元具有较多的改变片段,当具有较少改变片段的运算单元传输完成后,重复最后一次传输直到具有改变片段较多的运算单元传输完成。本实施例中,当所有运算单元的标志位为1时,表示本次指令传输完成。

本实施例中,根据所述指令集结构制定指令优化规则,以显著减少指令中有改变的片段个数,提高指令间的相似性,从而达到降低指令传输功耗的目的。所述指令优化规则主要有以下三种:一是通过编译器将每条指令中的冗余信息配置为与相邻指令相同的信息,以减少指令中有改变的片段数;二是在运算单元的映射过程中,在不降低阵列运算性能的前提下选择有较少的片段改变数的映射结果以减少指令传输功耗;三是对于空操作(nop),除了操作码以外均为冗余信息,编译器可将其配置为与相邻两条指令差别最小,对于空操作(nop)的配置尽量与其相邻指令相均衡。如图3所示,图3(b)为图3(a)的一个3x2的粗粒度可重构运算单元阵列的一次映射,图4(a)和图4(b)为所述运算单元的映射方案1,图5(a)和图5(b)为所述运算单元的映射方案2,其中,所述映射方案1和映射方案2的启动间隔(initiationinterval,ii)均为2说明两种方案的性能相同。图6是对应图4(a)和图4(b)的映射方案1的指令传输情况,图7是对应图5(a)和图5(b)的映射方案2的指令传输情况,对于映射方案1,运算单元pe4除了操作码片段sop外,还需传输2个片段s0和s3;而对于映射方案2,每个运算单元除了操作码片段sop外,均只有一个片段s0改变,可以得出映射方案2中的指令传输情况更具有优势。对于指令传输中的空操作(nop),如图8所示,将其配置为与上一条指令和下一条指令均只有一个片段有改变是最优的选择。

第五步:根据所述指令优化规则,设计指令存储控制器。

被配置好的超长指令字被存储在全局指令存储器(gcm)中,当运算单元阵列(pea)运行时,指令存储控制器(cmc)将从全局指令存储器(gcm)中读取超长指令字,并将读到的超长指令字解码,修改暂存在寄存器里的指令信息,重复此操作直至读取的超长指令字的所有标志位为1时,结束读取指令,并发送指令读取完成信号给各运算单元(pe),各运算单元(pe)在接收到读取完成信号后,开始读取下一条指令。如图9所示,为本实施例的指令存储控制器(cmc)的硬件结构,包括同步器和控制单元,当指令被暂存进运算单元的本地指令寄存器中时,发送信号通知指令存储控制器(cmc)中的同步器,当同步器读取到所有运算单元均将指令暂存到本地后,输出信号到每一个控制单元,通知其可从全局指令存储器(gcm)读取下一条超长指令字;控制单元在接收到同步器传来的读取下一条指令的信号后,开始从全局指令存储器(gcm)中提取超长指令字。在提取到一个超长指令字后,按照16位一组依序分配给每个控制单元,控制单元解析以下信息:

(1)解析标志位。当标志位为0时,发送读取指令信号到同步器;当标志位为1时,发送控制单元读取指令完毕信号到同步器。

(2)解析操作码。将操作码存入指令暂存寄存器中。

(3)解析片段地址码和片段信息。将指令暂存寄存器中片段地址码所对应的片段,替换为片段信息。

本实施例中,所述运算单元内部添加控制模块,当本地指令寄存器为空时,发送信号至指令存储控制器(cmc)的同步器;当接收到指令存储控制器(cmc)可以提取指令的信号时,从指令存储控制器(cmc)的控制单元提取指令。

控制单元重复读取超长指令字,直到所有控制单元从全局指令存储器(gcm)读取指令完毕后,从全局指令存储器(gcm)中读取下一条指令。重复此过程直至所有指令读取完毕。

第六步:通过所述指令存储控制器读取所述全局指令存储器中的指令编码,执行指令。

对本发明提出的针对粗粒度可重构结构的基于相似性的指令压缩方法进行不同应用指令性能测试,测试结果如图10所示,每个测试应用从左至右依次试验条件为:指令采用传统的simd结构(simd)、指令采用传统的mimd结构(mimd)、指令只采用本发明的硬件压缩方法(honly)、指令采用本发明提供的完整软硬件方案(h+s),可以得出,采用本发明提供的指令压缩方法对不用应用的指令均有明显的压缩效果,应用指令的运行时间与mimd结构的运行时间基本相同。

此外,对本发明提出的针对粗粒度可重构结构的基于相似性的指令压缩方法进行面积及功耗的仿真测试,测试结果如表1所示,对于4x4运算单元指令,本发明与simd结构相比只增加了0.89%的面积代价和14.54%的功耗代价。当以性能/功耗作为能效衡量标准时,采用本发明方案的能效是simd结构的1.46倍,是mimd结构的1.16倍。对于8x8运算单元指令,本发明方案的能效是simd的1.2倍,是mimd的1.21倍。可以得出,本发明所提供的指令压缩方法均衡了性能与能耗,以较低的面积和功耗代价,实现了较高的性能,具有显著的应用价值。

表1对本发明面积及功耗的仿真测试结果

以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1