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

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

3天内不再提示

DSP器件与通用处理器(GPP)的定义及其区别详解

MCU开发加油站 2017-12-05 11:47 次阅读

考虑一个数字信号处理的实例,比如有限冲击响应滤波器(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
    +关注

    关注

    544

    文章

    7680

    浏览量

    344323
  • mcu
    mcu
    +关注

    关注

    146

    文章

    16003

    浏览量

    343493

原文标题:DSP与普通MCU的区别

文章出处:【微信号:mcugeek,微信公众号:MCU开发加油站】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    DSP与普通MCU的区别

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

    MCU、 ARM DSP 到底什么关系?

    所有的乘积加起来,形成一个输出样本。   类似的运算在数字信号处理过程中大量地重复发生,使得为此设计的器件必须提供专门的支持,促成了了DSP器件
    发表于 04-17 10:45

    详解处理器和微控制区别

    重叠执行。  当然,与通用处理器相比,DSP芯片的其他通用功能相对较弱些,DSP芯片的内部采用程序和数据分开的哈佛结构,具有专门的硬件乘法
    发表于 10-27 15:51

    【转帖】详解处理器和微控制区别

    /O支持;(6)具有在单周期内操作的多个硬件地址产生;(7)可以并行执行多个操作;(8)支持流水线操作,使取指、译码和执行等操作可以重叠执行。当然,与通用处理器相比,DSP芯片的其
    发表于 11-17 14:10

    DSP与普通MCU有什么区别

    ,形成一个输出样本。    类似的运算在数字信号处理过程中大量地重复发生,使得为此设计的器件必须提供专门的支持,促成了了DSP器件通用处理器
    发表于 07-23 06:55

    dsp芯片和通用处理器有什么区别

      1、通用处理器有被让人们称为单片机,它是将计算机系统集成到了一块芯片中。通用处理器是以某中微处理内核为核心,拥有A/D、Flash
    发表于 11-30 16:30

    DSP处理器通用处理器的比较

    DSP处理器通用处理器的比较1 对密集的乘法运算的支持GPP不是设计来做密集乘法任务的,即使是一些现代的GPP,也要求多个指令周期来做一次
    发表于 09-03 08:12

    DSP和ML功能融合到低功耗通用处理器

    随着各种类型的物联网和嵌入式系统对信号处理的需求不断增加,我们看到市场上出现了许多新的芯片,它们结合了数字信号处理器(DSP)和通用处理器来满足这些日益增长的
    发表于 08-23 06:51

    什么是通用处理器

    什么是通用处理器 通用处理器一般指的是服务器用和桌面计算用CPU芯片。  目前,在桌面计算领域,Intel公司的Pentium系列微处理器芯片领导了市场的主流,占据着微
    发表于 01-12 15:40 4153次阅读

    DSP与普通MCU的比较

    类似的运算在数字信号处理过程中大量地重复发生,使得为此设计的器件必须提供专门的支持,促成了了DSP器件通用处理器(
    发表于 03-14 10:55 1961次阅读

    高性能通用处理器中的漏电功耗优化

    本内容提供了高性能通用处理器中的漏电功耗优化
    发表于 09-26 17:04 18次下载
    高性能<b class='flag-5'>通用处理器</b>中的漏电功耗优化

    寒武纪科技将发布深度学习专用处理器

    突触,如果用这种通用处理器支持这么大规模的应用,完全不现实。 回顾历史,通用处理器遇到瓶颈的时候,一定会衍生出新型的专业处理器,如图形渲染领域,出了GPU这样一类专用处理器,后来慢慢发
    发表于 10-11 15:53 0次下载
    寒武纪科技将发布深度学习专<b class='flag-5'>用处理器</b>

    SMOMAPL138B 低功率应用处理器

    器件是一款基于 ARM926EJ-S™ 和 C674x DSP 内核的低功耗应用处理器。 它的功率远远低于使用TMS320C6000™ 平台的其它DSP产品。
    发表于 04-13 16:04 5次下载
    SMOMAPL138B 低功率应<b class='flag-5'>用处理器</b>

    dsp芯片是什么_dsp芯片和通用处理器有什么区别

    对于dsp芯片很多人都会比较陌生,它主要运用在信号处理、图像处理、声音语言等多个场所。那么dsp芯片到底是什么呢?它和通用
    发表于 05-11 12:11 1.2w次阅读

    DSP和MCU的区别和联系详解

    ,在系数和输入样本的滑动窗口间作乘法,然后将所有的乘积加起来,形成一个输出样本。 类似的运算在数字信号处理过程中大量的重复发生,使得为此设计的器件必须提供专门的支持,促进了DSP器件
    的头像 发表于 02-19 14:37 1.9w次阅读
    <b class='flag-5'>DSP</b>和MCU的<b class='flag-5'>区别</b>和联系<b class='flag-5'>详解</b>