混淆理解数字信号处理器?

信息处理 DSP核心 即时的 术语 嵌入式系统
2022-02-01 03:23:41

我正在阅读有关数字信号处理器的维基百科文章,如附件快照末尾所示

.“大多数通用微处理器也可以成功执行数字信号处理算法,但可能无法实时连续跟上这种处理”

请详细说明示例/应用程序?在 dsp 的上下文中,实时是什么意思?

在此处输入图像描述

3个回答

专用DSP处理器的主要处理器指令是乘法累加指令。向量乘法和求和在单个命令获取中执行,它是一种 SIMD(但不完全是)。只有高级 MCU 在其命令集中有此指令。因此,DSP 处理器在典型信号处理操作上优于通用 MCU 的 wrt ALU 性能,即使在其制造过程中使用了类似的技术过程。具有内部 DSP 模块的 FPGA 设备也是如此。简而言之,更少的命令获取周期,更高的性能。

实时意味着有时间限制或时间约束来完成分配的处理。例如:如果您在具有特定符号率的通信系统的接收链中使用 DSP 处理器,那么处理器必须能够在有限的时间约束内处理一个符号值的数据,以便跟上接收到的信号。如果它不能在特定时间限制内完成对符号的处理,则接收到的信号样本将开始堆积等待处理,最终处理器将耗尽它所拥有的有限内存。

通用微处理器无法满足实时要求的原因是它们缺乏可以执行向量MAC(Multiply-Accumulate)操作的专用处理单元。它们缺乏 SIMD(单指令多数据)架构,该架构能够在单个取指周期内使用单条指令处理多个数据。

因此,与通用微处理器相比,DSP 处理器可以用较少的指令对大量数据执行 MAC 操作。

当您的微处理器具有 FPU 硬件时,DSP 算法实现(软件编码)是最简单的,但也可以使用整数(定点)ALU。

这意味着您的微处理器应该有一个专用的 FPU,或者它可以使用(非常低效的)软件仿真来进行 FPU 操作。或者,可以尝试一种更难编程但运行效率更高的定点方法,也可以使用基于整数的算术。

一些传统的微处理器(例如英特尔 80386,80486,摩托罗拉 68010,68020)仅基于整数 ALU,并且它们的 FPU 单元在单独的可选协处理器(80387,80487 或 68881)中出售。

现在大多数(但不是全部)CPU 都内置了一些 32 位(甚至 64 位)的 FPU 硬件。但这还不够。

DSP 算法不仅需要一个功能强大的算术单元,还需要高数据吞吐量,具体取决于应用。语音编码器可以很好地用普通的 CPU 实时实现,而实时视频编码器可能很难实现。

实时意味着您的处理器应该能够完成其工作块,同时将实时数据(与离线数据相反)输入其中,而不会溢出内部存储缓冲区。例如,当您弹奏电子键盘时,就会发生这种情况;当您按下按键时,应立即(小于可检测的延迟阈值)处理并输出它们的声音,然后再按下下一个按键(否则它们将覆盖并跳过先前按下的按键音符)。或者,您想将输入音频录制为 mp3 文件。通过麦克风输入的数据流应该在填充下一个缓冲区之前编码为 MP3 音频格式,这样之前的数据缓冲区就不会被覆盖。

对于高数据速率的实时应用,通用 CPU 可能因其架构而效率低下或不足;所以修改了CPU的架构。应该使用基于 SIMD 的 FPU、更多用于并行处理的内核、优化的缓存和特殊的 RISC 指令集(相对于 CISC)。

这就是所谓的专用 DSP 处理器。