BWDSP SIMD编译的寄存器分配优化技术研究※

2015-08-15 06:26:03王昊王向前
单片机与嵌入式系统应用 2015年4期
关键词:指令分配优化

王昊,王向前

(中国电子科技集团公司第三十八研究所,合肥230088)

BWDSP SIMD编译的寄存器分配优化技术研究※

王昊,王向前

(中国电子科技集团公司第三十八研究所,合肥230088)

BWDSP是一款自主设计的国产VLIW(超长指令字)数字信号处理器,支持SIMD技术,其SIMD指令可以在4个宏上同时执行4个32位计算,对寄存器使用有特殊规则,Open64编译器的寄存器分配策略并不适用于这种规则。本文对BWDSP SIMD指令的寄存器分配优化技术进行了研究,并在BWDSP的编译器OCC上得以实现。

DSP;SIMD;寄存器分配

引言

BWDSP[1]是一款32位静态超标量浮点数字处理器,采用超长指令字(Very Long Instruction Word,VLIW)架构,支持SIMD技术。BWDSP核内包含4个基本执行宏,代号是X、Y、Z、T,每个宏由算术逻辑单元(ALU)、乘法器(MUL)、移位器(SHF)、超算器(SPU)和一个通用寄存器组成。

BWDSP最多可以同时执行16条指令,其SIMD指令有其特殊性,本质上就是多条相同的指令并发执行,下面将对其特性进行分析,说明BWDSP编译器的寄存器分配需要特殊的优化技术来满足SIMD指令的要求。

1 BWDSP SIMD指令的特性分析

BWDSP计算指令的通用格式如下:

[Macro]Rm=Rnop Rs

Macro是执行宏的代号,op是操作,符号“||”连接多个可并行指令,比如:xRm=Rn+Rs是Scalar指令,表示在X宏上执行整数加法操作;xyztRm=Rn+Rs是SIMD指令,表示在X、Y、Z、T四个宏上同时执行整数加法操作,等同于xRm=Rn+Rs||yRm=Rn+Rs||zRm=Rn+Rs||tRm=Rn+ Rs。图1是BWDSP SIMD add指令的执行示意图。

图1 BWDSP SIMD add指令执行示意图

Intel x86-64 CPU[2]也有SIMD加法指令:

paddd xmmi,xmmk

表示xmmk=xmmi+xmmk,形式很像BWDSP的Scalar加法指令。图2是Intel x86-64的paddd指令执行示意图。

比较以上两种类型的SIMD加法指令,总结4点区别如下:

① x86-64的 paddd指令只需要一个核执行;而BWDSP SIMD add指令需要多个宏同时执行。

②x86-64的paddd指令只需要使用一个加法器;……

登录APP查看全文

猜你喜欢
指令分配优化
听我指令:大催眠术
超限高层建筑结构设计与优化思考
房地产导刊(2022年5期)2022-06-01 06:20:14
民用建筑防烟排烟设计优化探讨
关于优化消防安全告知承诺的一些思考
一道优化题的几何解法
应答器THR和TFFR分配及SIL等级探讨
遗产的分配
一种分配十分不均的财富
ARINC661显控指令快速验证方法
测控技术(2018年5期)2018-12-09 09:04:26
绩效考核分配的实践与思考