0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

DSP与普通MCU的区别

jf_pJlTbmA9 来源:jf_pJlTbmA9 作者:jf_pJlTbmA9 2023-08-04 14:34 次阅读

考虑一个数字信号处理的实例,比如有限冲击响应滤波器(FIR)。用数学语言来说,FIR滤波器是做一系列的点积。取一个输入量和一个序数向量,在系数和输入样本的滑动窗口间作乘法,然后将所有的乘积加起来,形成一个输出样本。

类似的运算在数字信号处理过程中大量地重复发生,使得为此设计的器件必须提供专门的支持,促成了了DSP器件与通用处理器(GPP)的分流:

1 对密集的乘法运算的支持

GPP不是设计来做密集乘法任务的,即使是一些现代的GPP,也要求多个指令周期来做一次乘法。而DSP处理器使用专门的硬件来实现单周期乘法。DSP处理器还增加了累加器寄存器来处理多个乘积的和。累加器寄存器通常比其他寄存器宽,增加称为结果bits的额外bits来避免溢出。同时,为了充分体现专门的乘法-累加硬件的好处,几乎所有的DSP的指令集都包含有显式的MAC指令。

2 存储器结构

传统上,GPP使用冯.诺依曼存储器结构。这种结构中,只有一个存储器空间通过一组总线(一个地址总线和一个数据总线)连接到处理器核。通常,做一次乘法会发生4次存储器访问,用掉至少四个指令周期。

大多数DSP采用了哈佛结构,将存储器空间划分成两个,分别存储程序和数据。它们有两组总线连接到处理器核,允许同时对它们进行访问。这种安排将处理器存贮器的带宽加倍,更重要的是同时为处理器核提供数据与指令。在这种布局下,DSP得以实现单周期的MAC指令。

还有一个问题,即现在典型的高性能GPP实际上已包含两个片内高速缓存,一个是数据,一个是指令,它们直接连接到处理器核,以加快运行时的访问速度。从物理上说,这种片内的双存储器和总线的结构几乎与哈佛结构的一样了。然而从逻辑上说,两者还是有重要的区别。

GPP使用控制逻辑来决定哪些数据和指令字存储在片内的高速缓存里,其程序员并不加以指定(也可能根本不知道)。与此相反,DSP使用多个片内存储器和多组总线来保证每个指令周期内存储器的多次访问。在使用DSP时,程序员要明确地控制哪些数据和指令要存储在片内存储器中。程序员在写程序时,必须保证处理器能够有效地使用其双总线。

此外,DSP处理器几乎都不具备数据高速缓存。这是因为DSP的典型数据是数据流。也就是说,DSP处理器对每个数据样本做计算后,就丢弃了,几乎不再重复使用。

3 零开销循环

如果了解到DSP算法的一个共同的特点,即大多数的处理时间是花在执行较小的循环上,也就容易理解,为什么大多数的DSP都有专门的硬件,用于零开销循环。所谓零开销循环是指处理器在执行循环时,不用花时间去检查循环计数器的值、条件转移到循环的顶部、将循环计数器减1。

与此相反,GPP的循环使用软件来实现。某些高性能的GPP使用转移预报硬件,几乎达到与硬件支持的零开销循环同样的效果。

4 定点计算

大多数DSP使用定点计算,而不是使用浮点。虽然DSP的应用必须十分注意数字的精确,用浮点来做应该容易的多,但是对DSP来说,廉价也是非常重要的。定点机器比起相应的浮点机器来要便宜(而且更快)。为了不使用浮点机器而又保证数字的准确,DSP处理器在指令集和硬件方面都支持饱和计算、舍入和移位。

从表面上来看,DSP与标准微处理器有许多共同的地方:一个以ALU为核心的处理器、地址和数据总线、RAMROM以及I/O端口,从广义上讲,DSP、微处理器和微控制器(单片机)等都属于处理器,可以说DSP是一种CPU。但DSP和一般的CPU又不同:

首先是体系结构:CPU是冯.诺伊曼结构的,而DSP有分开的代码和数据总线即“哈佛结构”,这样在同一个时钟周期内可以进行多次存储器访问――这是因为数据总线也往往有好几组。有了这种体系结构,DSP就可以在单个时钟周期内取出一条指令和一个或者两个(或者更多)的操作数。

标准化和通用性:CPU的标准化和通用性做得很好,支持操作系统,所以以CPU为核心的系统方便人机交互以及和标准接口设备通信,非常方便而且不需要硬件开发了;但这也使得CPU外设接口电路比较复杂,DSP主要还是用来开发嵌入式信号处理系统了,不强调人机交互,一般不需要很多通信接口,因此结构也较为简单,便于开发。如果只是着眼于嵌入式应用的话,嵌入式CPU和DSP的区别应该只在于一个偏重控制一个偏重运算了。

流水线结构:大多数DSP都拥有流水结构,即每条指令都由片内多个功能单元分别完成取指、译码、取数、执行等步骤,这样可以大大提高系统的执行效率。但流水线的采用也增加了软件设计的难度,要求设计者在程序设计中考虑流水的需要。

快速乘法器:信号处理算法往往大量用到乘加(multiply-accumulate,MAC)运算。DSP有专用的硬件乘法器,它可以在一个时钟周期内完成MAC运算。硬件乘法器占用了DSP芯片面积的很大一部分。(与之相反,通用CPU采用一种较慢的、迭代的乘法技术,它可以在多个时钟周期内完成一次乘法运算,但是占用了较少了硅片资源)。

地址发生器:DSP有专用的硬件地址发生单元,这样它可以支持许多信号处理算法所要求的特定数据地址模式。这包括前(后)增(减)、环状数据缓冲的模地址以及FFT的比特倒置地址。地址发生器单元与主ALU和乘法器并行工作,这就进一步增加了DSP可以在一个时钟周期内可以完成的工作量。

硬件辅助循环:信号处理算法常常需要执行紧密的指令循环。对硬件辅助循环的支持,可以让DSP高效的循环执行代码块而无需让流水线停转或者让软件来测试循环终止条件。

低功耗:DSP的功耗较小,通常在0.5W到4W,采用低功耗的DSP甚至只有0.05W,可用电池供电,很适合嵌入式系统;而CPU的功耗通常在20W以上。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • dsp
    dsp
    +关注

    关注

    553

    文章

    7984

    浏览量

    348687
  • mcu
    mcu
    +关注

    关注

    146

    文章

    17112

    浏览量

    350901
  • 存储器
    +关注

    关注

    38

    文章

    7481

    浏览量

    163751
收藏 人收藏

    评论

    相关推荐

    DSP普通MCU区别

    ,形成一个输出样本。   类似的运算在数字信号处理过程中大量地重复发生,使得为此设计的器件必须提供专门的支持,促成了了DSP器件与通用处理器(GPP)的分流: 电子导航 gps.srvee.com   1
    发表于 01-07 15:34

    MCU、 ARM DSP 到底什么关系?

    。 CPU发展出来三个分枝,一个是DSP,另外两给MCU和MPU。如果你问我DSPMCU区别,那还要说一阵子呢,比如
    发表于 04-17 10:45

    DSP普通MCU区别有哪些?

    考虑一个数字信号处理的实例,比如有限冲击响应滤波器(FIR)。用数学语言来说,FIR滤波器是做一系列的点积。取一个输入量和一个序数向量,在系数和输入样本的滑动窗口间作乘法,然后将所有的乘积加起来,形成一个输出样本。
    发表于 10-17 06:40

    DSPMCU区别和联系

    从架构到RTOS,详解DSPMCU区别和联系
    发表于 02-05 06:57

    CPU/MCU/MPU/DSP区别是什么

    CPU、MCU、MPU及DSP区别CPU(Central Processing Unit,中央处理器)发展出来三个分枝,一个是DSP(Digital Signal Processin
    发表于 11-03 06:03

    CPU、MCU、MPU及DSP有什么区别

    CPU、MCU、MPU及DSP区别CPU(Central Processing Unit,中央处理器)发展出来三个分枝,一个是DSP(Digital Signal Processin
    发表于 11-03 07:00

    CPU、MCU、MPU、DSP有哪些区别

    CPU、MCU、MPU、DSP区别 CPU(CentralProcessing Unit,中央处理器)发展出来三个分枝,一个是DSP(Digital Signal Processin
    发表于 11-03 09:15

    ARM、MCUDSP、FPGA、SoC的区别是什么

    STM32学习笔记①ARM、MCUDSP、FPGA、SoC各是什么?区别是什么?(转)ARM、MCUDSP、FPGA、SoC的比较CMS
    发表于 12-09 07:08

    DSPMCU区别

    DSPMCU区别? 1)DSP的速度比MCU快,主频较高。 2)DSP适合于数据处理,数据
    发表于 04-07 08:48 1.6w次阅读

    关于汽车音响是加装dsp好还是功放好_dsp功放与普通功放区别

    最近十分火爆的dsp功放到底怎么样呢?你是否在纠结给自己的爱车装不装dsp功放呢?本文介绍dsp功放与普通功放的区别,希望能帮助到你。
    发表于 01-03 09:45 28.3w次阅读

    CPU、MCU、MPU及DSP区别

    CPU、MCU、MPU及DSP区别CPU(Central Processing Unit,中央处理器)发展出来三个分枝,一个是DSP(Digital Signal Processin
    发表于 10-28 11:20 23次下载
    CPU、<b class='flag-5'>MCU</b>、MPU及<b class='flag-5'>DSP</b>的<b class='flag-5'>区别</b>

    CPU、MCU、MPU及DSP区别和介绍

    CPU、MCU、MPU及DSP区别CPU(Central Processing Unit,中央处理器)发展出来三个分枝,一个是DSP(Digital Signal Processin
    发表于 10-28 14:06 9次下载
    CPU、<b class='flag-5'>MCU</b>、MPU及<b class='flag-5'>DSP</b>的<b class='flag-5'>区别</b>和介绍

    DSP普通MCU或者SOC区别小结

    对比项 属性/特征 硬件乘法器/累加器AUL 通用的MCU在执行乘法操作时是通过软件编程的方式的来实现的,通常需要几十甚至上百个时钟周期,而DSP处理器却有自己的硬件乘法器,使用硬件
    发表于 10-28 15:21 1次下载
    <b class='flag-5'>DSP</b>和<b class='flag-5'>普通</b>的<b class='flag-5'>MCU</b>或者SOC<b class='flag-5'>区别</b>小结

    CPU、MCU、MPU、DSP区别

    CPU、MCU、MPU、DSP区别 CPU(CentralProcessing Unit,中央处理器)发展出来三个分枝,一个是DSP(Digital Signal Processin
    发表于 10-28 16:51 57次下载
    CPU、<b class='flag-5'>MCU</b>、MPU、<b class='flag-5'>DSP</b>的<b class='flag-5'>区别</b>

    MCUDSP和FPGA的区别

    MCU(Microcontroller Unit)、DSP(Digital Signal Processor)和FPGA(Field-Programmable Gate Array)是嵌入式系统中常见的三种处理器类型,它们之间有以下主要
    的头像 发表于 10-26 10:12 4941次阅读