DSP和微控制器有什么区别?

信息处理 DSP核心
2022-02-22 10:17:33

使 DSP 和微控制器彼此不同的核心属性是什么?

我想到了一种机器视觉设备,它需要运行图像处理算法,但还需要控制一些网络和硬件 I/O。DSP 在控制硬件输出引脚方面的性能如何,微控制器在图像处理算法上的运行性能如何?

3个回答

数字信号处理器是在其指令集中具有一些针对处理数字信号进行优化的指令和寻址模式的处理器。

通常,这些优化可以围绕执行 FIR 滤波器所需的点积所需的内容来显示。

y[n]=i=0L1h[i]x[ni]

要做到这一点,比如说,L指令,DSP必须能够在一条指令中完成:

  1. h[i]x[ni]一起。
  2. 将该产品累积到现有总和中。
  3. 获取下一个h[i+1]x[ni1]期待下一次乘法累加。因为这是两个要获取的数字,所以 DSP 将使用一种称为哈佛架构的架构,该架构至少有两个独立的内存空间用于h[i]x[n]因此 DSP 可以同时获取这两个数字。
  4. 寻址x[n]必须在循环队列中。DSP将对索引或地址执行(或“环绕”算术x[n]必要的,无需额外说明。
  5. 结果y[n]最终将转到输出 DAC 或定点流,并且有一些方法可以使y[n]反对一些±最大没有额外的说明。如果 DSP 是定点 DSP,则该累加器寄存器的位宽度为h[i]和位宽x[n]在左边加上几位作为“保护位”

通用 CPU 可以完成所有这些操作,但不太可能在单个指令周期内完成,诸如模算术和饱和之类的事情在通用 CPU 中需要它们自己的特定指令。

DSP 也可能有一些指令和寻址模式,以促进快速傅里叶变换 (FFT) 的操作。这可能包括在少至四个指令周期(如果SIMD可操作,则为两个指令周期)内执行 FFT “蝴蝶”所需的指令。

它们不是不相交的集合,因为一些当代微控制器 SOC 包含 DSP。DSP 内核通常设计用于执行具有确定性延迟和更少晶体管的某些计算算法。许多当代高性能 CPU 内核并非如此。在过去,当晶圆厂无法在一个芯片上安装那么多晶体管(甚至是一个完整的微控制器)时,存在更大的差异,例如 DSP 是由多个(成百上千)芯片(或分立晶体管,或甚至可能是真空管)。

Robert Bristow-Johnson 的非常好的回答讨论了 DSP 的属性。但它将这些属性与通用 CPU 进行了对比。OP询问了DSP和微控制器之间的区别。因此,既然我们已经对 DSP 有了很好的描述,我将专注于微控制器部分。

来自维基百科

微控制器(或微控制器单元的 MCU)是单个集成电路上的小型计算机。在现代术语中,它是片上系统或 SoC。微控制器包含一个或多个 CPU(处理器内核)以及存储器和可编程输入/输出外设。

因此,微控制器是 CPU 和其他外围设备,它们是使 CPU 在现实世界中发挥作用所必需的。实际上有DSP芯片是微控制器,现代设备中也有很多通用CPU和DSP的混合。