gpt4 book ai didi

arm - 为什么ARM有16个寄存器?

转载 作者:行者123 更新时间:2023-12-04 04:50:28 25 4
gpt4 key购买 nike

为什么ARM只有16个寄存器?这是理想的数字吗?

寄存器与更多寄存器的距离是否也会增加处理时间/功率?

最佳答案

随着通用寄存器的数量变少,需要开始使用堆栈来存放变量。使用堆栈需要更多指令,因此代码大小增加。使用堆栈还会增加内存访问次数,这会损害性能和功耗。权衡是为了表示更多的寄存器,您需要在指令中使用更多位,并且您需要在芯片上为寄存器文件提供更多空间,这会增加功率要求。通过使用不同数量的寄存器编译同一组代码,您可以看到不同的寄存器数量如何影响代码大小和加载/存储指令的频率。此类练习的结果可以在本文的表 1 中看到:

Extendable Instruction Set Computing

Register   Program   Load/Store  
Count Size Frequency

27 100.00 27.90%
16 101.62 30.22%
8 114.76 44.45%

(他们使用 27 作为基础,因为这是 MIPS 处理器上可用的 GPR 数量)

正如您所看到的,当您将寄存器数量减少到 16 时,程序大小和所需的加载/存储数量只有微小的改进。真正的惩罚不会在您减少到 8 个寄存器时开始。我怀疑 ARM 设计人员认为,当您寻找每瓦特的最佳性能时,16 个寄存器是一种最佳选择。

关于arm - 为什么ARM有16个寄存器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8466981/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com