5

在我的工作中,我处理不同的微控制器、微处理器和 DSP 处理器。其中许多具有 24 位寄存器和计数器。

我知道如何使用它们,这不是我的问题。

我的问题是为什么他们有 24 位寄存器!为什么不让它成为 32 位?据我所知,这不是大小问题,因为寄存器已经是 32 位,但最大为 0xFFFFFF。

这是否提供了更容易的硬件实施?更快的计算?还是只是“嗯,让我们放置 24 位寄存器以使程序员的工作更加困难”?

4

4 回答 4

7

我的猜测是大多数 DSP 应用程序根本不需要 32 位。数字音频最常使用 24 位保真度。实现 32 位将需要更多的晶体管,因此会导致更高的成本。

为什么 32 位对程序员来说更容易?

此外,您声明寄存器的最大值为 0xFFFFFF,这使得它们根据定义为 24 位,而不是您建议的 32 位。

于 2010-02-23T13:16:03.987 回答
4

8/16/32/64 位没有特别的原因。有 24 位 DSP、18 位 PIC、36 位 PDP……每个位都需要时间、金钱和功率,因此拥有足够的位就足够了。没必要做太多。看看原来有 20 条地址线的 PC,尽管内存指针可能高达 32 位。

于 2010-02-25T07:25:44.450 回答
2

根据 Tomas 的回答,一些 DSP 具有寄存器模式,其中溢出将值锁定在最高状态。如果数据是 24 位并且它翻转到第 25 位,它应该锁定在那里,而不是在 32 位翻转。

于 2010-02-23T13:21:12.273 回答
2

对于音频,您通常需要 16 位输出。由于您在处理过程中失去了一些精度,因此他们选择了一个比 16 位大一些的合理尺寸,而 16 位恰好是 24 位。

不使用完整的 32 位的原因是这将需要更多的硬件,尤其是对于乘法。

于 2010-09-08T06:05:40.200 回答