在我的工作中,我处理不同的微控制器,微处理器和DSP处理器。其中许多都有24位寄存器和计数器。
我知道如何使用它们,这不是我的问题。
我的问题是为什么他们有24位注册!为什么不把它变成32位? 据我所知,这不是大小问题,因为寄存器已经是32位,但最大为0xFFFFFF。
这样可以提供更简单的硬件实现吗?更快的计算? 或者它只是“嗯,让24位寄存器让程序员的工作变得更加困难”?
答案 0 :(得分:7)
我的猜测是大多数DSP应用程序根本不需要32位。数字音频最多使用24位保真度。实现32位需要更多的晶体管,因此会带来更高的成本。
为什么程序员会更容易32位?
另外,您声明寄存器的最大值为0xFFFFFF,这使得它们按照定义为24位,而不是您建议的32位。
答案 1 :(得分:4)
8/16/32/64位没有特别的原因。有24位DSP,18位PIC,36位PDP ......每个位都需要时间,金钱和功耗,所以有足够的位就足够了。没必要过度了。只需查看具有20个地址线的原始PC,即使内存指针最多可达32位。
答案 2 :(得分:2)
标记到Tomas的回答,一些DSP具有寄存器模式,其中溢出将值锁定在最高状态。如果数据是24位并且它翻转到第25位,它应该锁定在那里,而不是32位翻转。
答案 3 :(得分:2)
对于音频,您通常需要16位输出。由于你在处理过程中失去了一些精度,所以选择一个比16位大一点的合理大小,恰好是24位。
不完整32位的原因是需要更多的硬件,特别是对于乘法。