与arm指令集相比,拇指的指令数量增加了多少?

时间:2014-02-10 19:39:40

标签: assembly arm thumb

我在一篇研究论文中读到,当使用拇指指令时,代码大小会减小,但有时会导致指令数量增加,从而导致拇指执行速度变慢。但指令数如何增加?它是否像拇指太复杂的指令被分成多个指令?这是我的直觉。想要验证我是否正在以正确的方式思考。

1 个答案:

答案 0 :(得分:0)

亚利桑那大学的Arvind Krishnaswamy和Rajiv Gupta撰写的论文Profile Guided Selection of ARM and Thumb Instructions给出了一个很好的研究;虽然它已经过时了。与此同时, ARM 发布了再次改变游戏的 Thumb2 指令集。

总结一些论文,有一些算法(如散列)需要大量的寄存器。传统的 thumb ISA note 限制注册为R0-R8。如果算法导致spill,则速度会明显变慢。因此ISA总是可以获胜的病态病例。在游戏男孩前进上也是相当普遍的智慧,拇指模式比正常(慢速)内存更快。但是,从更快的内部RAM(一个或零等待状态), ARM 模式将运行得更快。

对于 Thumb2 (改进的 Thumb ISA),许多限制已被删除,并且几乎总是与一样快(或快于) ARM 模式。一切都是相对的,

  1. 正在使用的内存系统。
  2. 你如何测量(功率,运行时间,内存消耗)。
  3. 你的代码在做什么。
  4. 没有明确的答案。您需要提供有关系统和手头任务的更多详细信息。

    注意: ISA是指令集架构或可用的汇编程序/机器代码类型。