新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > Thumb指令集之: Thumb指令应用

Thumb指令集之: Thumb指令应用

作者:时间:2013-09-30来源:网络收藏

本文引用地址:http://www.eepw.com.cn/article/257036.htm

11.9Thumb指令应用

11.9.1Thumb的实现

对3级流水线的处理器来说,做相对较小的改动就可以实现(5级流水线的实现要复杂些)。为实现,在指令流水线中增加了Thumb指令解码逻辑,该解码逻辑将预取的Thumb指令转换成等价的指令。图11.66显示了Thumb指令的扩展逻辑组织。

从图11.66可以看出,Thumb指令增加了(Decompressor)与串连,但这并不会增加指令的译码时间。在指令流水线译码周期的第一阶段只做了很少的工作,因此可以把扩展逻辑安排在这里而不会影响周期时间或增加流水线延时。

Thumb指令将16位的Thumb指令静态地转换为等价的32位指令。这主要包括主操作码和次操作码的查表转换,3位寄存器指示符(specifier)零扩展成4位寄存器指示符,以及所需要的其他域的映射。

例如,Thumb指令“ADDRd,#imm8”与对应的ARM指令“ADDRd,Rd,#8”的映射如图11.67所示。

图11.66Thumb指令的扩展逻辑组织

图11.67Thumb指令到ARM指令的映射

Thumb指令解码逻辑实现Thumb指令到ARM指令映射时遵循以下规则:

①ARM指令的条件域(cond,bits[31:28])默认使用always。

注意

转移指令除外,转移指令是中惟一一个条件执行的指令。

②在Thumb指令操作码中隐含地指定Thumb数据处理指令是否应该修改CPSR中的条件标志位,在ARM指令中要明确指定。

③通过重复寄存器指示符将Thumb指令的2地址指令格式转换为ARM的3地址指令格式。

Thumb指令的简单性对Thumb指令集的效率是非常重要的。如果Thumb指令解码扩展逻辑构成复杂、速度低并且功耗大,那么Thumb指令就没有什么价值了。

c++相关文章:c++教程



上一页 1 2 下一页

评论


相关推荐

技术专区

关闭