1

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

4

1 回答 1

0

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

总结一些论文,有些算法(如散列)需要大量寄存器。传统的拇指ISA笔记仅限于注册到R0-R8. 如果算法导致溢出,它会明显变慢。所以总是有病态的案例,要么 ISA 可以获胜。游戏男孩前进也是相当普遍的智慧,拇指模式比正常(较慢)记忆更快。但是,从更快的内部 RAM(一个或零等待状态),ARM模式会运行得更快。

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

  1. 正在使用的内存系统。
  2. 您如何测量(功率、运行时间、内存消耗)。
  3. 你的代码在做什么。

不可能有明确的答案。您需要提供有关系统和手头任务的更多详细信息。

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

于 2014-02-11T02:44:40.553 回答