一种分簇结构的部分谓词实现及编译优化方法

文档序号:9326732阅读:372来源:国知局
一种分簇结构的部分谓词实现及编译优化方法
【技术领域】
[0001] 本发明涉及体系结构设计以及编译优化技术领域,尤其是一种分簇结构的部分谓 词实现及编译优化方法。
【背景技术】
[0002] 分支跳转是进行指令级开发的基本障碍,谓词执行是一种有效消除分支跳转的机 制,它是将程序进行控制依赖到数据依赖的变换。分支跳转的消除可以提高程序的执行性 能,从硬件体系结构上讲,分支跳转的消除可以减小分支预测失败导致的硬件开销;从编译 层面讲,分支跳转的消除可以扩大调度范围,允许了多个条件路径指令的重叠并行执行,挖 掘了跨越多个程序路径的指令级并行性。
[0003] 分簇结构可以有效增加芯片体系结构的指令级并行度,它和集中式体系结构相对 应,是雷达、无线通信、视频、图像、视频等数字信号处理领域高数据并行处理应用发展的需 要。通过分簇结构提升芯片指令级处理能力的技术应用广泛,分簇已经成为芯片体系结构 设计时一个重要的选择。针对分簇结构进行谓词机制的设计,是分簇结构并行性开发的必 然需求。谓词执行是一种硬件体系结构技术,有多种处理器体系结构支持谓词执行,而这些 处理器提供的谓词机制,又有全谓词和部分谓词之分。
[0004] 全谓词也成一般谓词的主要特征是所有的指令都会提供一个额外的谓词源操作 数来控制指令的最终执行效果,其主要优点是提供了最大的灵活性以及通过谓词挖掘指令 级并行的最大潜能,其缺点是硬件支持代价过大。而部分谓词则只提供了一小部分指令的 条件执行,对谓词执行只提供了有限的支持,尤其是无法控制访存读写操作,它的主要优点 是硬件设计代价很小,可以很容易支持。
[0005] 目前学术界和工业界尚未针对分簇结构的谓词及编译支持方法进行系统地研究。

【发明内容】

[0006] 本发明的目的在于提供一种针对分簇结构的谓词高效实现,大幅提升了条件语句 的并行执行潜力,能够更有效地提高含有条件控制的循环的执行效率的分簇结构的部分谓 词实现及编译优化方法。
[0007] 为实现上述目的,本发明采用了以下技术方案:一种分簇结构的部分谓词实现及 编译优化方法,包括通过数据总线与各个片上内存进行双向通讯的计算簇X簇、Y簇、Z簇和 T簇,以及通过地址总线与各个片上内存进行双向通讯的地址簇U簇、V簇和W簇,在X簇、 Y簇、Z簇和T簇上分别设置谓词寄存器CPred,各个计算簇上的谓词寄存器CPred分别控 制各个计算簇的谓词执行。
[0008] 在编译时,其步骤如下: (1) 在编译器优化后端,针对含有条件控制的循环产生的中间代码,进行基本块选择过 程; (2) 检测循环体是否含有条件控制的写访存,若判断结果为否,则进入第三步,否则,继 续判断能否通过程序变换消除条件控制的写访存,若能消除,则进入第三步,否则,进入第 四步; (3) 进行循环展开并构建超块,进行部分谓词的if转换和代码生成,最终产生分簇结 构部分谓词的高效汇编代码; (4) 构建超块,进行一般谓词的if转换和代码生成,最终产生分簇结构一般谓词的汇 编代码。
[0009] 所述部分谓词的if转换包括如下步骤: (1) 给基本块分配部分谓词,四个计算簇上的谓词寄存器CPred的掩码位Mask对应的 数值等于C时,则正常执行该指令行,否则该指令行的指令作废; (2) 把分支跳转指令删除; (3) 放置部分谓词定义指令,四个计算簇上的rl cond r2为真时,赋值1给CPred[0], 否则赋值〇给CPred [1]。
[0010] 所述一般谓词的if转换包括如下步骤: (1) 给基本块分配一般谓词,采用一般谓词形式,一般谓词寄存器Ul的掩码位Mask对 应的数值等于C时,则正常执行该指令行,否则该指令行的指令作废; (2) 把分支跳转指令删除; (3) 放置一般谓词定义指令。
[0011] 由上述技术方案可知,本发明的优点如下:第一,部分谓词在分簇结构上的实现, 每个计算簇都具备独立进行条件运算的能力,而且每个计算簇上的条件域并不要求全是真 假,大幅提升了条件语句的并行执行潜力,能够更有效地提高含有条件控制的循环的执行 效率;第二,一般谓词的实现则补充了分簇结构的谓词机制,提高了分簇结构谓词机制的灵 活度和通用性。
【附图说明】
[0012] 图1为分簇体系结构图; 图2为一般谓词的支持框架图; 图3为CPred谓词即部分谓词的编译方法流程图。
【具体实施方式】
[0013] 如图1所示,一种分簇结构的部分谓词实现及编译优化方法,包括通过数据总线 与各个片上内存进行双向通讯的计算簇X簇、Y簇、Z簇和T簇,以及通过地址总线与各个 片上内存进行双向通讯的地址簇U簇、V簇和W簇,在X簇、Y簇、Z簇和T簇上分别设置谓 词寄存器CPred,各个计算簇上的谓词寄存器CPred分别控制各个计算簇的谓词执行。谓 词寄存器CPred共8位,每一位代表一个谓词控制寄存器。计算簇包括加法器、乘法器,移 位器等众多计算资源,U簇、V簇、W簇包括地址寄存器,负责的地址的生成以及具体访存操 作。考虑到分簇结构的并行分支执行能力,可以通过在X簇、Y簇、Z簇、T簇上都设置谓词 寄存器CPred。
[0014] 为了支持分簇结构的全谓词模型,可以在地址簇U簇、V簇、W簇上设置谓词寄存器 CPred,控制对应的访存指令的谓词执行,以及X簇、Y簇、Z簇、T簇四个计算簇的谓词执行。
[0015] UVW谓词即全谓词控制的谓词执行和CPred谓词即部分谓词控制的谓词执行是不 同的。CPred谓词执行具有同时执行多个分支条件的潜力,X簇、Y簇、Z簇、T簇对应的谓词 控制并一定全为真或者全为假,即各个簇上的执行状态并一定一致,而UVW谓词执行时只 能执行同一个条件,假如恰好可以控制X簇、Y簇、Z簇、T簇的同一指令执行时,执行状态是 一致的。
[0016] UVW谓词是全谓词在分簇结构的简单扩展,它具有四个计算簇的谓词执行的能力, 支持它采用的传统的谓词编译支持框架,如图2所示。CPred谓词具有强大的并行能力,它 是部分谓词在分簇结构的扩展,具有强大的X簇、Y簇、Z簇、T簇四个簇上的谓词并行控制 能力。然而CPred谓词的使用限制也比较苛刻:即在不含有条件控制访存写指令的前提下 条件判断同构以及条件执行的指令必须同构,可以通过循环展开的方法构造来满足这个限 制条件,充分利用CPred提供的条件分支并行能力。
[0017] UVW谓词形式和CPred谓词形式的谓词定义指令为分别为: Us [k] = Um cond Un CPred[k] = Rm cond Rn 其中k的范围为0~7。
[0018] 含义:如果比较结果为真,就把1赋值为Us寄存器或者CPred的第k位。两种格 式的谓词控制指令和含义如表1、表2所示:
表1和表2的所示的两种谓词形式类似,但本质上有很大区别。UVW谓词形式可以控制 绝大多数指令,包括访存指令,它是全谓词的实现形式。而CPred谓词寄存器CPred实际上 是四个寄存器,分别位于X簇、Y簇、Z簇、T簇四个簇中,各自控制指令行上属于各自簇的指 令执行,并不能控制访存指令。而位于四个簇的CPred条件判断真假有时并不一致,所以四 个簇上指令的执行情况有时并不一致。所以CPred谓词是部分谓词在分簇结构的一种高效 实现方式,它具有X簇、Y簇、Z簇、T簇四个簇的执行能力。
[0019] 一般的谓词支持框架如图2所示,主要包括四个阶段: 第一,基本块选择:要构建hyperblock,首先应决定哪些基本块组成hyperblock。一 种简单的模式是把最内层循环的所有基本块作为超块的组成部分,但有可能降低程序性 能。一般采用启发式函数对基本块的执行频率、大小和指令特征进行考察,选择合适的路径 组成超块。首先,排除执行频率较小的基本块,对于执行频率较大的基本块,其优化和调度 的自由空间会更大些;其次,排除代码量较大的基本块,由于它们较容易引起资源缺乏而影 响ILP的提尚;最后,排除带有副作用指令如子过程调用、内存访问等的基本块,这些指令 的存在可能会降低超块的性能。
[0020] 第二,构建超块(Hyperblock),选择的基本块构建超块,
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1