这些天正准备找工作的事,对于一些理论上的,或者说表面上的知识需要梳理下,所以有空整理了这篇简陋的比较,权当从另一个侧面理解下这两款主流处理器的特点了吧!

DSP:

DSP(digital singnal processor)是一种独特的微处理器,有自己的完整指令系统,是以数字信号来处理大量信息的器件。一个数字信号处理器在一块不大的芯片内包括有控制单元、运算单元、各种寄存器以及一定数量的存储单元等等,在其外围还可以连接若干存储器,并可以与一定数量的外部设备互相通信,有软、硬件的全面功能,本身就是一个微型计算机。DSP采用的是哈佛设计,即数据总线和地址总线分开,使程序和数据分别存储在两个分开的空间,允许取指令和执行指令完全重叠。也就是说在执行上一条指令的同时就可取出下一条指令,并进行译码,这大大的提高了微处理器的速度。另外还允许在程序空间和数据空间之间进行传输,因为增加了器件的灵活性。

其工作原理是接收模拟信号,转换为0或1的数字信号,再对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解译回模拟数据或实际环境格式。它不仅具有可编程性,而且其实时运行速度可达每秒数以千万条复杂指令程序,源源超过通用微处理器,是数字化电子世界中日益重要的电脑芯片。它的强大数据处理能力和高运行速度,是最值得称道的两大特色。

DSP芯片,由于它运算能力很强,速度很快,体积很小,而且采用软件编程具有高度的灵活性,因此为从事各种复杂的应用提供了一条有效途径。其主要应用是实时快速地实现各种数字信号处理算法。根据数字信号处理的要求,DSP芯片一般具有如下主要特点:

(1)在一个指令周期内可完成一次乘法和一次加法;

(2)程序和数据空间分开,可以同时访问指令和数据;

(3)片内具有快速RAM,通常可通过独立的数据总线在两块中同时访问;

(4)具有低开销或无开销循环及跳转的硬件支持;

(5)快速的中断处理和硬件I/O支持;

(6)具有在单周期内操作的多个硬件地址产生器;

(7)可以并行执行多个操作;

(8)支持流水线操作,使取指、译码和执行等操作可以重叠执行。

当然,与通用微处理器相比,DSP芯片的其他通用功能相对较弱些。

DSP优势在于其有独特乘法器,一个指令就可以完成乘加运算,但GPP(通用处理器)处理一般是用加法代替乘法,要n多cpu周期,尽管cpu主频很快,但还是要相当时间,这一点现在的GPP已经基本上可以做到内部单周期运算乘加指令了。

数字信号处理是一种通过使用数学技巧执行转换或提取信息,来处理现实信号的方法,这些信号由数字序列表示。在过去的二十多年时间里,数字信号处理已经在通信等领域得到极为广泛的应用

ARM:

ARM ( Advanced RISC Machines ),既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。1991 年 ARM 公司成立于英国剑桥,主要出售芯片设计技术的授权。目前,采用 ARM技术知识产权( IP )核的微处理器,即我们通常所说的 ARM 微处理器,已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场,基于 ARM 技术的微处理器应用约占据了 32位 RISC 微处理器 75 %以上的市场份额, ARM 技术正在逐步渗入到我们生活的各个方面。 ARM 公司是专门从事基于 RISC 技术芯片设计开发的公司,作为知识产权供应商,本身不直接从事芯片生产,而是转让设计许可由合作公司生产各具特色的芯片,世界各大半导体生产商从ARM公司购买其设计的 ARM 微处理器核,根据各自不同的应用领域,加入适当的外围电路,从而形成自己的 ARM 微处理器芯片进入市场。目前,全世界有几十家大的半导体公司都使用 ARM 公司的授权,因此既使得 ARM 技术获得更多的第三方工具、制造、软件的支持,又使整个系统成本降低,使产品更容易进入市场被消费者所接受,更具有竞争力。

ARM最大的优势在于速度快、低功耗、芯片集成度高,多数ARM芯片都可以算作SOC,基本上外围加上电源和驱动接口就可以做成一个小系统了。

基于ARM核心处理器的嵌入式系统以其自身资源丰富、功耗低、价格低廉、支持厂商众多的缘故,越来越多地应用在各种需要复杂控制和通信功能的嵌入式系统中。

ARM与DSP的比较:

区别:

由于两大处理器在各自领域的飞速发展,如今两者中的高端或比较先进的系列产品中,都在弥补自身缺点、且扩大自身优势,从而使得两者之间的一些明显不同已不再那么明显了,甚至出现两者部分结合的趋势(如ARM的AMBA总线,可以把DSP或其他处理器集成在一块芯片中;又如DSP中的两个系列OMAP和达芬奇系列,就是直接针对两者的广泛应用而将两者结合在一起,从而最大发挥各自优势),另外,两者各自不同系列的产品侧重点也不尽相同,所以这里讨论的是一些传统意义上比较。

总的来说主要区别有:

ARM具有比较强的事务管理功能,可以用来跑界面以及应用程序等,其优势主要体现在控制方面,它的速度和数据处理能力一般,但是外围接口比较丰富,标准化和通用性做的很好,而且在功耗等方面做得也比较好,所以适合用在一些消费电子品方面;

而DSP主要是用来计算的,比如进行加密解密、调制解调等,优势是强大的数据处理能力和较高的运行速度。由于其在控制算法等方面很擅长,所以适合用在对控制要求比较高的场合,比如军用导航、电机伺服驱动等方面。

如果只是着眼于嵌入式应用的话,嵌入式CPU和DSP的区别应该只在于一个偏重控制一个偏重运算了。

另外:

内核源码开放的Linux与ARM体系处理器相结合,可以发挥Linux系统支持各种协议及存在多进程调度机制的优点,从而使开发周期缩短,扩展性增强。

详细来说:

DSP的优势主要是速度,它可以在一个指令周期中同时完成一次乘法和一次加法,这非常适合快速傅立叶变换的需求。DSP有专门的指令集,主要是专门针对通讯和多媒体处理的;而ARM使用的是RISC指令集(当然ARM的E系列也支持DSP指令集)是通用处理用的。

存储器架构和指令集特点不一样

单片机为了存储器管理的方便(便于支持操作系统),一般采用指令、数据空间统一编码的冯·诺依曼结构。 DSP为了提高数据吞吐的速度,基本上都是指令、数据空间独立的哈佛结构。

单片机对于数字计算方面的指令少得多,DSP为了进行快速的数字计算,提高常用的信号处理算法的效率,加入了很多指令,比如单周期乘加指令、逆序加减指令(FFT时特别有用,不是ARM的那种逆序),块重复指令(减少跳转延时)等等,甚至将很多常用的由几个操作组成的一个序列专门设计一个指令可以一周期完成(比如一指令作一个乘法,把结果累加,同时将操作数地址逆序加1),极大的提高了信号处理的速度。由于数字处理的读数、回写量非常大,为了提高速度,采用指令、数据空间分开的方式,以两条总线来分别访问两个空间,同时,一般在DSP内部有高速RAM,数据和程序要先加载到高速片内ram中才能运行。DSP为提高数字计算效率,牺牲了存储器管理的方便性,对多任务的支持要差的多,所以DSP不适合于作多任务控制作用。

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

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

  2 存储器结构

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

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

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

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

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

  3 零开销循环

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

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

  4 定点计算

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

发展趋势:

DSP是否将作为手机的心脏生存下去,目前的争论非常激烈。今天的手机生产采用的是双核方式:DSP芯片处理通信,如调制解调器功能和语音处理等;一块通用处理器(通常是ARM设计的RISC处理器)负责处理手机上运行的各种程序,如用户界面和控制协议堆栈等。随这两种处理器的功能日益强大,或许它们中的一方将会接管另一方目前执行的功能。但问题在于:是ARM取代DSP,还是DSP挤掉ARM?

如果将这三者结合起来,即由DSP结合采样电路采集并处理信号,由ARM处理器作为平台,运行Linux操作系统,将经过DSP运算的结果发送给用户程序进行进一步处理,然后提供给图形化友好的人机交互环境完成数据分析和网络传输等功能,就会最大限度的发挥三者所长。

扩展了解FPGA:

FPGA 是英文 Field Programmable Gate Array (现场可编程门阵列)的缩写,它是在 PAL 、 GAL 、 PLD 等可编程器件的基础上进一步发展的产物,是专用集成电路( ASIC )中集成度最高的一种。 FPGA 采用了逻辑单元阵列 LCA ( Logic Cell Array )这样一个新概念,内部包括可配置逻辑模块 CLB ( Configurable Logic Block )、输出输入模块 IOB ( Input Output Block )和内部连线( Interconnect )三个部分。用户可对 FPGA 内部的逻辑模块和 I/O 模块重新配置,以实现用户的逻辑。它还具有静态可重复编程和动态在系统重构的特性,使得硬件的功能可以像软件一样通过编程来修改。作为专用集成电路( ASIC )领域中的一种半定制电路, FPGA 既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。可以毫不夸张的讲, FPGA 能完成任何数字器件的功能,上至高性能 CPU, 下至简单的 74 电路,都可以用 FPGA 来实现。 FPGA 如同一张白纸或是一堆积木,工程师可以通过传统的原理图输入法,或是硬件描述语言自由的设计一个数字系统。通过软件仿真,我们可以事先验证设计的正确性。在 PCB 完成以后,还可以利用 FPGA 的在线修改能力,随时修改设计而不必改动硬件电路。使用 FPGA 来开发数字电路,可以大大缩短设计时间,减少 PCB 面积,提高系统的可靠性。 FPGA 是由存放在片内 RAM 中的程序来设置其工作状态的,因此工作时需要对片内的 RAM  进行编程。用户可以根据不同的配置模式,采用不同的编程方式。加电时, FPGA 芯片将 EPROM 中数据读入片内编程 RAM 中,配置完成后, FPGA 进入工作状态。掉电后, FPGA 恢复成白片,内部逻辑关系消失,因此, FPGA 能够反复使用。 FPGA 的编程无须专用的 FPGA 编程器,只须用通用的  EPROM 、 PROM 编程器即可。当需要修改 FPGA 功能时,只需换一片 EPROM 即可。这样,同一片 FPGA ,不同的编程数据,可以产生不同的电路功能。因此, FPGA 的使用非常灵活。可以说, FPGA 芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。目前 FPGA 的品种很多,有 XILINX 的  XC 系列、 TI 公司的 TPC 系列、 ALTERA 公司的 FIEX 系列等。

深入了解DSP与ARM的区别与联系相关推荐

  1. ARM、DSP、FPGA的区别

    https://blog.csdn.net/godloveyuxu/article/details/80027501 DSP: DSP(digital singnal processor)是一种独特的 ...

  2. 从BES蓝牙耳机开发中谈DSP开发与嵌入式ARM的区别

    对比下DSP开发与嵌入式ARM的区别,DSP开发,发开算法,注意链接文件的使用. 一先看BES的DSP开发 1 lds链接文件之代码段text 存放可执行代码和浮点数常量 2 data数据段 3 .b ...

  3. FPGA、DSP、ARM能力值对比

    1.1 FPGA.DSP.ARM能力值对比 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)FPGA.DSP.ARM能力值对比: 5)结束语. 1.1.2 本节引言 &q ...

  4. DSP与单片机的区别

    以前刚学习单片机时,经过一订的编程,能实现很多不同的功能,当时就觉得单片机真的是神通广大.后来接触到DSP,发现DSP处理数字在通信上,更加方便.于是我就很好奇的问自己,DSP和单片机,究竟有什么区别 ...

  5. TI达芬奇系列TMS320DM8148浮点DSP C674x + ARM Cortex-A8高性能视频处理器;

    由广州创龙自主研发的SOM-TL8148是体积极小的TMS320DM8148浮点DSP+ARM双核核心板,86mm*60mm,性能强.成本低.性价比高.采用沉金无铅工艺的8层板设计,专业的PCB La ...

  6. TI达芬奇系列TMS320DM8168浮点DSP C674x + ARM Cortex-A8高性能视频处理器

    TL8168-EVM是一款广州创龙基于浮点DSP C674x + ARM Cortex-A8高性能视频处理器设计的DSP+ARM架构的开发平台,该平台主要用于评估处理器的多通道音视频采集.处理.编码压 ...

  7. TI达芬奇系列TMS320DM8168浮点DSP C674x + ARM Cortex-A8高性能视频处理器,用于视频基础设施

    由广州创龙自主研发的SOM-TL8168是体积极小的TMS320DM8168浮点DSP+ARM双核核心板,86mm*60mm,性能强.成本低.性价比高.采用沉金无铅工艺的10层板设计,专业的PCB L ...

  8. TI达芬奇系列TMS320DM8148浮点DSP C674x + ARM Cortex-A8高性能视频处理器开发板规格书

    TL8148-EasyEVM是一款广州创龙基于TI TMS320DM8148(浮点DSP C674x + ARM Cortex-A8)SOM-TL8148核心板设计的开发板,它为用户提供了SOM-TL ...

  9. 微型计算机原理与接口技术 董洁,基于DSP和ARM的谐波检测

    摘要: 电能作为一种最方便传输和转换的能源形式,目前从人们的生活到生产的各个环节都得到了广泛的应用.电能是国民经济发展的重大支柱,其应用程度已经成为衡量一个国家经济发达水平的标志.同时,随着人们生活水 ...

最新文章

  1. Linux系统的启动过程
  2. hdu 3564(线段树+LIS)
  3. 高端中餐美食餐饮海报PSD模板,看着就有食欲
  4. GetCommandLineW()作用
  5. RabbitMQ学习之(二)_Centos6下安装RabbitMQ及管理配置
  6. 证书到期了_您的PMP证书到期了吗?
  7. iso硬盘安装 凤凰os_X86平台国产OS 对比评测 | 凤凰os安装教程_什么值得买
  8. miui怎么用第三方图标包_【教程纪】原生ROM养老指南:图标篇
  9. ldoce5 android,朗文Longman 5词典界面修改优化补丁终极版(直接显示词典功能)
  10. Autojs.pro 7.0 - 免root 连点器
  11. SPSS实现数据归一化
  12. 【教程】使用腾讯云轻量应用服务器搭建Jitsi Meet视频会议系统,轻松召开私域视频会议!
  13. C++11的6种内存序总结
  14. java+jsp+mysql实现学习资源推荐系统LearningResourceRS 个性化推荐系统 个性化学习网站推荐系统 协同过滤推荐算法 SSH(Spring+Struts+Hiber)开发框架
  15. 小学计算机课题研究方案,课题研究方案范文《小学信息技术课堂有效教学的探索》...
  16. linux 中du和df的使用
  17. Power BI中突出显示矩阵的最大值与最小值
  18. 微信小程序-创建自己的小程序帐号
  19. Linux系统安全加固指南(万字长文)
  20. Graylog服务器rpm安装

热门文章

  1. Ng第十二课:支持向量机(Support Vector Machines)(一)
  2. F - 娜娜梦游仙境系列——多民族王国
  3. html中显示变量的数组,javascript如何判断变量是不是数组?
  4. [网络安全提高篇] 一一五.Powershell恶意代码检测 (3)Token关键词自动提取
  5. [系统安全] 三十一.恶意代码检测(1)恶意代码攻击溯源及恶意样本分析
  6. OpenGL之利用模型视图矩阵和投影矩阵让球体自动旋转
  7. G6 图可视化引擎——入门教程——前言
  8. 《数据库原理与应用》(第三版)第12章 函数和游标 基础 习题参考答案
  9. JS实现的ajax发送数据重复
  10. ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 —— 小车指定花式动作