DSP、MCU、MPU的区别在哪些地方?
内容提要
CPU发展出了三个分支:DSP、MCU和MPU。MCU集成了片上外围器件,MPU不带外围器件。DSP在运算能力方面更强大,擅长处理重复数据运算,MCU适合处理来自不同信息源的多种数据。DSP和MCU结合的芯片DSC可能会取代它们。DSP使用哈佛结构,提高存储器带宽和指令执行效率。DSP支持零开销循环、定点计算和专门的寻址方式。DSP应用需要准确预测执行时间。DSP指令集设计目标是提高计算效率和减小存储器空间。DSP开发工具有助于代码优化。
延伸解读
从存储器结构看DSP与GPP的设计分野
文章指出,DSP多采用哈佛结构,将程序与数据存储空间分开,并用两组总线同时访问,从而将存储器带宽加倍,实现单周期MAC指令。而传统GPP使用冯·诺依曼结构,一次乘法可能需四次存储器访问。尽管高性能GPP片内也包含数据与指令双缓存,物理结构接近哈佛,但逻辑上由控制逻辑决定缓存内容,程序员不直接指定;DSP则要求程序员明确控制片内存储器的数据与指令存放,以保证双总线有效使用。
实时性要求如何影响DSP的架构选择
多数DSP应用如蜂窝电话和调制解调器属于严格实时应用,必须在指定时间内完成所有处理。这要求程序员能准确预测每个样本的处理时间,至少知道最坏情况。文章解释,DSP一般不使用动态特性如转移预测和推理执行,且高速缓存中存放哪些指令由程序员决定,因此判断指令来源和执行时间较为直接。相比之下,高性能GPP因缺乏指令周期级仿真工具,难以预测给定任务所需周期数,给实时应用开发者带来困难。
定点计算与专用寻址:成本与效率的权衡
文章提到,大多数DSP使用定点计算而非浮点,主要因为定点机器更便宜也更快。为保证数字准确,DSP在指令集和硬件上支持饱和计算、舍入和移位。此外,DSP常支持模块寻址和位倒序寻址等专用模式,分别对数字滤波器延时线和FFT很有用,而这些在GPP中通常需软件实现。这些设计选择体现了DSP在成本敏感和特定算法场景下的优化思路。
DSP编程门槛与开发工具的必要性
文章指出,定点DSP指令集设计目标是在每个指令周期完成多个操作并减小程序存储空间,代价是指令集不直观、不易使用。主要DSP应用程序至少部分用汇编语言编写,原因包括C等高级语言不适合描述典型DSP算法,以及DSP结构复杂导致高效编译器难以编写。因此,选用DSP的一个关键因素是是否有足够能适应其指令集的程序员。多数DSP厂商提供处理器仿真工具,可准确仿真每个指令周期的活动,有助于确保实时操作和代码优化。
Q&A
DSP、MCU和MPU三者之间最核心的区别是什么?
MCU集成了片上外围器件,MPU不带外围器件;DSP在运算能力上更强大,擅长处理重复数据运算,而MCU适合处理来自不同信息源的多种数据,重点在于控制。
为什么DSP处理器能高效执行密集乘法运算?
DSP使用专门的硬件实现单周期乘法,并增加了累加器寄存器来处理多个乘积的和,累加器寄存器通常更宽,带有额外bits避免溢出;指令集包含显式的MAC指令,从而充分利用专用乘法-累加硬件。
DSP采用的哈佛结构相比传统GPP的冯·诺依曼结构有什么优势?
哈佛结构将存储器空间划分为程序和数据两个独立空间,有两组总线连接到处理器核,允许同时访问,从而将存储器带宽加倍,并同时提供数据与指令,使DSP能实现单周期的MAC指令。
DSP中的零开销循环是什么?它有什么好处?
零开销循环是指处理器执行循环时,不用花时间检查循环计数器的值、条件转移到循环顶部、将循环计数器减1,这些由专门硬件完成,从而节省循环控制开销,提高效率。
为什么大多数DSP使用定点计算而不是浮点计算?
定点机器比浮点机器更便宜且更快,而DSP应用对成本敏感,同时为了不使用浮点机器又能保证数字准确,DSP在指令集和硬件方面支持饱和计算、舍入和移位。
DSP程序员如何确保实时应用满足执行时间要求?
DSP应用通常要求严格的实时性,程序员需要准确确定每个样本的处理时间或最坏情况下的时间。DSP不使用动态特性如转移预测和推理执行,且高速缓存内容由程序员控制,因此执行时间容易预测。
DSP指令集的设计目标是什么?它如何实现这些目标?
定点DSP指令集的设计目标是提高每个指令周期的计算效率,并将存储DSP程序的存储器空间减到最小。它允许在一个指令内说明多个并行操作,例如一条指令包含MAC操作和數據移动,从而高效完成FIR滤波器一节的所有操作。
DSP开发工具通常提供哪些功能来帮助程序员?
大多数DSP厂商提供处理器的仿真工具,能准确仿真每个指令周期内处理器的活动,有助于确保实时操作和代码优化。