DSP与ARM技术比较
深入理解DSP、ARM、FPGA的区别与联系

深入了解DSP与ARM的区别与联系这些天正准备找工作的事,对于一些理论上的,或者说表面上的知识需要梳理下,所以有空整理了这篇简陋的比较,权当从另一个侧面理解下这两款主流处理器的特点了吧!DSP:DSP(digital singnal processor)是一种独特的微处理器,有自己的完整指令系统,是以数字信号来处理大量信息的器件。
一个数字信号处理器在一块不大的芯片内包括有控制单元、运算单元、各种寄存器以及一定数量的存储单元等等,在其外围还可以连接若干存储器,并可以与一定数量的外部设备互相通信,有软、硬件的全面功能,本身就是一个微型计算机。
DSP采用的是哈佛设计,即数据总线和地址总线分开,使程序和数据分别存储在两个分开的空间,允许取指令和执行指令完全重叠。
也就是说在执行上一条指令的同时就可取出下一条指令,并进行译码,这大大的提高了微处理器的速度。
另外还允许在程序空间和数据空间之间进行传输,因为增加了器件的灵活性。
其工作原理是接收模拟信号,转换为0或1的数字信号,再对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解译回模拟数据或实际环境格式。
它不仅具有可编程性,而且其实时运行速度可达每秒数以千万条复杂指令程序,源源超过通用微处理器,是数字化电子世界中日益重要的电脑芯片。
它的强大数据处理能力和高运行速度,是最值得称道的两大特色。
DSP芯片,由于它运算能力很强,速度很快,体积很小,而且采用软件编程具有高度的灵活性,因此为从事各种复杂的应用提供了一条有效途径。
其主要应用是实时快速地实现各种数字信号处理算法。
根据数字信号处理的要求,DSP芯片一般具有如下主要特点:(1)在一个指令周期内可完成一次乘法和一次加法;(2)程序和数据空间分开,可以同时访问指令和数据;(3)片内具有快速RAM,通常可通过独立的数据总线在两块中同时访问;(4)具有低开销或无开销循环及跳转的硬件支持;(5)快速的中断处理和硬件I/O支持;(6)具有在单周期内操作的多个硬件地址产生器;(7)可以并行执行多个操作;(8)支持流水线操作,使取指、译码和执行等操作可以重叠执行。
PLC,DSP,ARM,单片机有什么区别

自二十世纪六十年代美国推出可编程逻辑控制器(Programmable Logic Controller,PLC)取代传统继电器控制装置以来,PLC得到了快速发展,在世界各地得到了广泛应用。
同时,PLC的功能也不断完善。
随着计算机技术、信号处理技术、控制技术网络技术的不断发展和用户需求的不断提高,PLC在开关量处理的基础上增加了模拟量处理和运动控制等功能。
今天的PLC不再局限于逻辑控制,在运动控制、过程控制等领域也发挥着十分重要的作用。
作为离散控的制的首选产品,PLC在二十世纪八十年代至九十年代得到了迅速发展,世界范围内的PLC年增长率保持为20%~30%。
随着工厂自动化程度的不断提高和PLC市场容量基数的不断扩大,近年来PLC在工业发达国家的增长速度放缓。
但是,在中国等发展中国家PLC的增长十分迅速。
综合相关资料,2004年全球PLC的销售收入为100亿美元左右,在自动化领域占据着十分重要的位置。
PLC是由摸仿原继电器控制原理发展起来的,二十世纪七十年代的PLC只有开关量逻辑控制,首先应用的是汽车制造行业。
它以存储执行逻辑运算、顺序控制、定时、计数和运算等操作的指令;并通过数字输入和输出操作,来控制各类机械或生产过程。
用户编制的控制程序表达了生产过程的工艺要求,并事先存入PLC的用户程序存储器中。
运行时按存储程序的内容逐条执行,以完成工艺流程要求的操作。
PLC的CPU内有指示程序步存储地址的程序计数器,在程序运行过程中,每执行一步该计数器自动加1,程序从起始步(步序号为零)起依次执行到最终步(通常为END指令),然后再返回起始步循环运算。
PLC每完成一次循环操作所需的时间称为一个扫描周期。
不同型号的PLC,循环扫描周期在1微秒到几十微秒之间。
PLC用梯形图编程,在解算逻辑方面,表现出快速的优点,在微秒量级,解算1K逻辑程序不到1毫秒。
它把所有的输入都当成开关量来处理,16位(也有32位的)为一个模拟量。
一文带你了解CPLD、FPGA、DSP之间的区别与联系

一文带你了解CPLD、FPGA、DSP之间的区别与联系ARM(Advanced RISC Machines)是微处理器行业的一家知名企业,设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软件。
ARM也是单片机。
ARM 架构是面向低预算市场设计的第一款RISC微处理器,基本是32位单片机的行业标准,它提供一系列内核、体系扩展、微处理器和系统芯片方案,四个功能模块可供生产厂商根据不同用户的要求来配置生产。
由于所有产品均采用一个通用的软件体系,所以相同的软件可在所有产品中运行。
目前ARM在手持设备市场占有90以上的份额,可以有效地缩短应用程序开发与测试的时间,也降低了研发费用。
DSP(digital singnal processor)是一种独特的微处理器,有自己的完整指令系统,是以数字信号来处理大量信息的器件。
一个数字信号处理器在一块不大的芯片内包括有控制单元、运算单元、各种寄存器以及一定数量的存储单元等等,在其外围还可以连接若干存储器,并可以与一定数量的外部设备互相通信,有软、硬件的全面功能,本身就是一个微型计算机。
DSP采用的是哈佛设计,即数据总线和地址总线分开,使程序和数据分别存储在两个分开的空间,允许取指令和执行指令完全重叠。
也就是说在执行上一条指令的同时就可取出下一条指令,并进行译码,这大大的提高了微处理器的速度。
另外还允许在程序空间和数据空间之间进行传输,因为增加了器件的灵活性。
其工作原理是接收模拟信号,转换为0或1的数字信号,再对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解译回模拟数据或实际环境格式。
它不仅具有可编程性,而且其实时运行速度可达每秒数以千万条复杂指令程序,远远超过通用微处理器,是数字化电子世界中日益重要的电脑芯片。
它的强大数据处理能力和高运行速度,是最值得称道的两大特色。
由于它运算能力很强,速度很快,体积很小,而且采用软件编程具有高度的灵活性,因此为从事各种复杂的应用。
51、arm、dsp区别

应该从价格,编写程序的难易度,执行效率,外围电路这几个方面去回答。
广义的嵌入式无非几种:传统的什么51、AVR、PIC称做嵌入式微控制器;ARM是嵌入式微处理器;DSP;FPGA。
客观的讲,工作需求量上DSP的需求比ARM要多,而ARM和FPGA差不多。
DSP因为数字处理与通信领域的空前发展而火暴,MP3 射象头,应用面很广。
FPGA的兄弟一般做ANSIC(特殊芯片设计,好象是这么翻译的)。
而ARM单纯说来并不比一个单片机强多少,但是它的独特就在于不断下降的价格和提升的性能。
C51 是传统的方法,其技术已经是比价成熟的;DSP:主要是面对数字信号方面的处理,其针对性有速度快,精度高等优点;ARM:主要是目前的热点,其核心主要是应用Thumb指令,进行一定的程序设计,是SOC的一个分支;FPGA,CPLD:主要是可编程器件,其主要是应用一些编程语言,如VHDL,Verilog language进行程序编程,下载实现功能;ASIC:其主要是专用集成电路设计,主要是根据客户的需求,进行一定的设计,应用vhdl ,verilog language。
51应用广,价格便宜,运算能力,内部资源在做稍大控制时表现不足.不过它的布尔处理器是独有的.ARM是介于微处理器与微控制器之间的.运算能力接近DSP,控制模块同与普通单片机相同.而DSP强调的较大的数据处理能力,如在运行控制,图像处理方面,优势较大.我想这个问题的出发点应该是:作为Processor,这几种器件有什么有优缺点。
其实C51,ARM,DSP都不是单独作为芯片来提供给用户的,都要加一些外围电路来支持。
例如:memory controller,interrupt controller,timer,UART,SPI,I2C 等等。
所以要比较最好从processor的角度来比较他们。
(1). C51是8位的;ARM是32位的;DSP有16位的,也有更高的。
DSP、MCU、CPLD、ARM、FPGA芯片的区别

DSP、MCU、CPLD、ARM、FPGA芯片的区别1,单片机小型电脑处理器,最小可以到8个脚,价格便宜,最便宜2块钱2,PLC可变逻辑控制器,主要用在工业控制,里面是类似一个加强的单片机。
对输入输出均有做处理(抗干扰能力、带负载能力都增强).例如抗干扰,增加带负载驱动能力3,DSP 数字信号处理芯片,这个用途可做信号处理,例如图像处理,数据采集处理,它比单片要快很多,比单片机功能要强大4,FPGA、CPLD可变逻辑控制,这个做逻辑处理控制,小型的CPLD是没有中央处理器的,大型可以嵌入系统,功能在单片机之上,适合做大型的数据处理,逻辑控制。
其价格不便宜。
但是他和单片机有本质的区别。
例如单片机有内嵌外设AD,DA转换等,CPLD则需要通过控制其他外设IC。
要想诠释清楚,也非三言两语能道明,还是多看看书本吧学习可以以单片机为先,其次是FPGA,CPLD,DSP。
PLC比较简单,学会前面后面只要了解一周一般都会了一家之言,欢迎指证:DSP:数字信号处理器,处理器采用哈弗结构,工作频率较高,能大幅度提高数字信号处理算法的执行效率。
MCU:微控制器,主要用于控制系统,工作频率一般来说比DSP低,硬件上具有多个IO端口,同时也集成了多个外设,主要是便于在控制系统中的应用。
至于ARM处理器,个人认为是MCU的高级版本,ARM本身只是一个内核,目前已经有多个版本。
CPLD:复杂可编程逻辑器件FPGA:现场可编程门阵列后两者都是可编程器件,CPLD目前一半采用FLASH技术,而FPGA采用SRAM技术,这就决定了FPGA需要采用特定的配置技术。
同时FPGA的规模要比CPLD大得多,但CPLD应用起来相对要简单的多.DSP主要用做运算,如语音,图像等信号的运算处理,但基本不用做控制.MCU,FPGA,ARM主要用做控制,MCU低价低功耗,但门限很少,结构简单,不能实现复杂控制.ARM控制能力较强,但运算能力相对较弱。
CPU;MPU;MCU三者,以及ARM,DSP,FPGA三者的区别

CPU ⇒MPU ⇒MCU1 CPU(Central Processing Unit,中央处理器) (1)1.1 CPU的组成 (1)1.2 CPU的工作原理 (1)2 MPU(Microprocessor Unit,微处理器) (3)2.1 MPU的组成 (3)2.2 MPU的分类 (3)2.3 MPU的体系结构:冯.诺伊曼结构和哈佛结构 (3)2.4 MPU的典型代表:DSP(Digital Signal Processor,数字信号处理器) (4)3 MCU(Microcontroller Unit,微控制器/单片机) (5)3.1 MCU的概念 (5)3.2 MCU的概述 (5)3.3 MCU的分类 (6)3.4 MCU的架构:CISC架构和RISC架构 (6)3.5 常见的MCU (6)3.6 MCU的典型代表:ARM (9)4 CPLD(Complex Programmable Logic Device,复杂可编程逻辑器件) (10)5 FPGA(Field Programmable Gate Array,现场可编程门阵列) (10)6 DSP,ARM,FPGA的区别 (10)1 CPU(Central Processing Unit,中央处理器)中央处理器(CPU)是电子计算机的主要器件之一,其功能主要是解释计算机指令及处理计算机软件中的数据。
1.1 CPU的组成CPU由运算器、控制器和寄存器及实现它们之间联系的数据、控制及状态的总线构成。
运算器:进行算术运算和逻辑运算(部件:算数逻辑单元、累加器、寄存器组、路径转换器、数据总线)。
控制器:控制程序的执行,包括对指令进行译码、寄存,并按指令要求完成所规定的操作,即指令控制、时序控制和操作控制。
复位、使能(部件:计数器、指令暂存器、指令解码器、状态暂存器、时序产生器、微操作信号发生器)。
寄存器:用来存放操作数、中间数据及结果数据。
1.2 CPU的工作原理CPU从存储器或高速缓冲存储器中取出指令,放入指令寄存器,并对指令译码,将指令分解成一系列的微操作,然后发出各种控制命令,执行微操作,从而完成一条指令的执行。
DSP和ARM通信

DSP与ARM之间的通信
1.CAN总线:
CAN通信是串行通信。
这图为买来2812板子上面的CAN的模块。
CAN的控制部分已经在2812芯片内部。
SN65HVD230是一个电平转换器。
简单的说就是讲逻辑的0和1表达在CANH和CANL上。
CANH 和CANL有电压差的时候代表逻辑1.
这图是ARM上面的CAN接口。
DSP和ARM的can模块都差不多。
电路比较简单
个人看法:
简述:电路简单,编程简单。
串行口通信,实时性稍微比较差。
假如只有DSP和ARM两个芯片,就浪费了CAN这个功能了,假如后期假如了更多的芯片,CAN总线的功能能更好体现。
2.HPI通信
HIP通信是并行通信,占用的端口比较多。
下图是ARM和DSP的HIP通信。
这种方式的速度比较快,但是实验室买的2812似乎不支持HIP通信。
所以这个方法可以ban掉了。
看法:似乎不大可行
3.采用CPLD通信
在CPLD中划出一部分作为RAM缓存。
这个是并行通信,可以在2812中实现。
原理自己都想的清楚。
看法:实时性比较高。
由于从未涉及过CPLD,编程CPLD会比较麻烦。
接口比较多,辅助,这个也提高了编程难度。
4.SPI通信
SPI通信也是串行口通信。
具体的还没看完。
待定…,似乎也是一个好方法…..
参考文献
都是知网上一搜索就出的文件!待定。
FPGA和ARM和STM32和DSP区别

FPGA和ARM和STM32和DSP区别2012-12-02|分享越详细越好,谢谢大侠们10分钟内有问必答前往下载满意回答1.FPGA:是可编程逻辑阵列,常用于处理高速数字信号,不过随着科技的发展,现在很多FPGA CPLD可以集成mcu内核,甚至具备了ARM DSP的功能2.ARM,是一类内核的称谓,就像51一样,具体到芯片的话,会有很多不同的厂家不同等级,诸如三星、易法、飞利浦、摩托罗拉等等,其中STM32是易法半导体的一款面向工控低功耗内核为Cortex M3内核的ARM芯片3.DSP顾名思义就是数字信号处理,厂家主要是德州仪器(TI)主要用于数字型号处理等对运算速度有特殊要求的场合,诸如音频视频算法,军工等领域,但同时dsp有2000 5000 6000等系列也可满足不场合需要!其他想要了解,可以追问,相互探讨哈!追问他们主要的应用领域,那个应用广泛点呢回答应用领域的话1.FPGA一般不会用来做复杂的系统,只用来做些简单的系统如状态机实现的自动售货机...展开>等,多少还是用来做信号的高速变换和处理,毕竟它只是可编程逻辑阵列。
2.ARM和DSP就各有千秋了;ARM的系列从V3 V5 V7 V9 XSCALE,从thumb指令到arm指令(thumb arm也可同时实现),可以说遍布机会所有的领域,只要你接的价格可以接受(其实许多arm并不是很贵的),单片机所有的功能基本他都能实现,我就不用举例子,特别是现在与各种RTOS结合更是开发方便功能强大。
DSP相对arm价格要贵些,这也是可能个体厂家使用较少的一个原因吧,2000系列主要用于工控特别是2812这个用的人比较多,5000 6000主要用于手持设备、PDA、通信等领域;DSP还有一个特色就是对一些特殊算法的支持如快速福利叶变换等,所以对运算速度有特殊要求的场合一般会选择DSP;DSP因其性能和功能比较好,还广泛用于军工领域!<收起。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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)中集成度最高的一种。