为什么大多数 DSP 芯片上没有 FPU(浮点单元)?我找到了几个答案,例如这个 解释定点方法的优点,例如更小的功耗、更高的速度,我自己可以想到其他几个优点,例如更小的热量产生或价格,但我从未见过任何实际的现实生活基准。我想知道答案的问题是:
FPU 是多少?带 FPU 的 CPU 和不带 FPU 的 CPU 之间的价格差异是多少?
FPU能产生多少热量?
FPU 会消耗多少功率?
为什么大多数 DSP 芯片上没有 FPU(浮点单元)?我找到了几个答案,例如这个 解释定点方法的优点,例如更小的功耗、更高的速度,我自己可以想到其他几个优点,例如更小的热量产生或价格,但我从未见过任何实际的现实生活基准。我想知道答案的问题是:
FPU 是多少?带 FPU 的 CPU 和不带 FPU 的 CPU 之间的价格差异是多少?
FPU能产生多少热量?
FPU 会消耗多少功率?
8086 使用的晶体管不到 30k。据报道,8087 是 8086 的 FPU,它使用了 45k 个晶体管。就门数而言,更快的 FPU 可以更大。因此,FPU 的硅芯片面积成本可能很高(超过 2 倍?)。功率和热量与以相似速率切换输出的晶体管数量成正比。
对于实时 DSP,还存在确定性延迟的问题。一个简单的整数乘法累加单元具有固定的延迟。一个非常简单的浮点加法器没有固定的延迟(或者不快或不简单),因为可能需要标准化多达两次和/或处理 NaN 和 denorms。
为什么不使用浮点数:
为什么使用浮点数:
设计算法的细节(数据路径宽度、中间值的缩放等)以在定点与浮点中运行需要更多的工程设计。在某种程度上,浮点是有效的——除非它不起作用,而且使用浮点的陷阱更微妙,如果你使用 32 位(即小而快)浮点,它们会更频繁地打击你.
DSP 芯片上肯定有FPU,例如 TI 的 TMS320X 系列或 ST 的 STM32F4xx 系列功能强大的微控制器 [参见下面的评论]。这些芯片在 FLOPS 和电力消耗(尤其是前者)方面都很强大。
但是,有很多应用受到能源或功率的限制,例如嵌入式或移动计算。对于此类应用,定点算法可能是首选,因为它的计算效率更高;在相同的 MAC 数量下需要更少的功耗(更慢的时钟),例如 ADI 的 Blackfin 或 NXP 的类似产品。
此外,FPU 硬件比整数 1 更复杂,这也会影响芯片成本和定价。
因此,除非绝对需要使用 FPU,或者除非它的成本很低,否则 FPU 单元可能会被定点单元取代,从而将定点编程的复杂性留给 DSP 工程师。
有多少区别?取决于详细的芯片架构,因此很难准确回答,除非您是芯片的设计者。
这取决于应用程序;以图形的 3D 数学为例,早期系统使用整数 DSP/协处理器(Playstation 1 的几何变换引擎,世嘉土星都是定点的),但在随后的硬件世代中,浮点硬件得到了快速和普遍的采用。
您可以使用定点数学构建 3D 系统,但有时确实很麻烦;您一直在注意溢出或下溢,并且必须注意精度以避免视觉伪影。