您的位置 首页 ADAS

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

DSP处理器与通用处理器的比较1对密集的乘法运算的支持GPP不是设计来做密集乘法任务的,即使是一些现代的GPP,也要求多个指令周期来做一次乘法。而DSP处理器使用专门的硬件来实现单周期乘法。DSP处理

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

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处理器在指令集和硬件方面都支撑饱满核算、舍入和移位。

5 专门的寻址办法
DSP处理器往往都支撑专门的寻址形式,它们对一般的信号处理操作和算法是很有用的。例如,模块(循环)寻址(对完结数字滤波器延时线很有用)、位倒序寻址(对FFT很有用)。这些十分专门的寻址形式在GPP中是不常运用的,只要用软件来完结。

6 履行时刻的猜测
大多数的DSP运用(如蜂窝电话和调制解调器)都是严厉的实时运用,一切的处理有必要在指定的时刻内完结。这就要求程序员准确地确认每个样本需求多少处理时刻,或许,至少要知道,在最坏的情况下,需求多少时刻。
假如计划用低本钱的GPP去完结实时信号处理的使命,履行时刻的猜测大约不会成为什么问题,应为低本钱GPP具有相对直接的结构,比较简略猜测履行时刻。可是,大多数实时DSP运用所要求的处理才能是低本钱GPP所不能供给的。
这时候,DSP对高功用GPP的优势在于,即使是运用了高速缓存的DSP,哪些指令会放进去也是由程序员(而不是处理器)来决议的,因而很简略判别指令是从高速缓存仍是从存储器中读取。DSP一般不运用动态特性,如搬运猜测和推理履行等。因而,由一段给定的代码来猜测所要求的履行时刻是彻底开门见山的。然后使程序员得以确认芯片的功用约束。

7 定点DSP指令集
定点DSP指令集是按两个方针来规划的:
使处理器能够在每个指令周期内完结多个操作,然后进步每个指令周期的核算功率。
将存贮DSP程序的存储器空间减到最小(因为存储器对整个体系的本钱影响甚大,该问题在对本钱灵敏的DSP运用中尤为重要)。
为了完结这些方针,DSP处理器的指令集一般都答应程序员在一个指令内阐明若干个并行的操作。例如,在一条指令包含了MAC操作,即一起的一个或两个数据移动。在典型的比如里,一条指令就包含了核算FIR滤波器的一节所需求的一切操作。这种高功率支付的价值是,其指令集既不直观,也不简略运用(与GPP的指令集比较)。
GPP的程序一般并不介意处理器的指令集是否简略运用,因为他们一般运用象C或C++等高级言语。而关于DSP的程序员来说,不幸的是首要的DSP运用程序都是用汇编言语写的(至少部分是汇编言语优化的)。这里有两个理由:首要,大多数广泛运用的高级言语,例如C,并不适合于描绘典型的DSP算法。其次,DSP结构的杂乱性,如多存储器空间、多总线、不规则的指令集、高度专门化的硬件等,使得难于为其编写高功率的编译器。
即运用编译器将C源代码编译成为DSP的汇编代码,优化的使命依然很重。典型的DSP运用都具有很多核算的要求,并有严厉的开支约束,使得程序的优化必不可少(至少是对程序的最要害部分)。因而,考虑选用DSP的一个要害因素是,是否存在满意的能够较好地习惯DSP处理器指令集的程序员。

8 开发东西的要求
因为DSP运用要求高度优化的代码,大多数DSP厂商都供给一些开发东西,以协助程序员完结其优化作业。例如,大多数厂商都供给处理器的仿真东西,以准确地仿真每个指令周期内处理器的活动。不管关于确保实时操作仍是代码的优化,这些都是很有用的东西。
GPP厂商一般并不供给这样的东西,首要是因为GPP程序员一般并不需求具体到这一层的信息。GPP缺少准确到指令周期的仿真东西,是DSP运用开发者所面对的的大问题:因为简直不或许猜测高功用GPP关于给定使命所需求的周期数,然后无法阐明怎么去改进代码的功用。


微处理器(Microprocessor)的分类

通用处理器(GPP)

选用冯.诺依曼结构,程序和数据的存储空间合二而一
8-bit Apple(6502),NEC PC-8000(Z80)
8086/286/386/486/Pentium/Pentium II/ Pentium III
PowerPc 64-bit CPU(SUN Sparc,DEC Alpha, HP)
CISC 杂乱指令核算机, RISC 精简指令核算机
采纳各种办法进步核算速度,进步时钟频率,高速总线,多级Cashe,协处理器等

Single Chip Computer/ Micro Controller Unit(MCU)

除开通用CPU所具有的ALU和CU,还有存储器(RAM/ROM)寄存器,时钟,计数器,定时器,串/并口,有的还有A/D,D/A
INTEL MCS/48/51/96(98)
MOTOROLA HCS05/011

DSP

选用哈佛结构,程序和数据分隔存储
选用一系列办法确保数字信号的处理速度,如对FFT的专门优化

MCU与DSP的简略比较

MCU DSP
等级低 高级 等级低 高级
指令周期(ns) 600 40 50 5
乘加时刻(ns) 1900 80 50 5
US$/MIPS 1.5 0.5 0.15 0.1

飞速开展的数字信号处理器
  因为超大规模集成电路技能的迅猛开展,曩昔二十年中,数字信号处理技能,即DSP(Digital Signal Processor)技能也得到了日新月异的开展,这种开展趋势在往后十年内仍将坚持下去。据国际半导体交易核算安排发布的核算与猜测陈述,2001~2006年可编程DSP商场的预期增长率为27.2%。预期2006年DSP商场将到达141.9亿美元,且增长率是逐年递加的,2005年的增长率预期为34%。到2010年,DSP芯片的集成度将会进步11倍,单个芯片大将会集成5亿只晶体管。现在DSP的生产工艺正在由0.35μm转向0.25μm、0.18μm、0.13μm,到2005年或许到达0.075μm。

   集成度的进步使得硅片的面积进一步缩小,然后导致DSP芯片本钱下降,价格下降。价格下降促进需求的上升和运用范畴的扩展。DSP已从军用转向民用,在核算机、通讯、消费类电子产品方面即所谓3C范畴得到了广泛的运用。DSP在通讯范畴运用最多,占72%,核算机占3%,消费类、办公主动化各占2%,从趋势上看,工业(特别是变频电机操控)中的运用,以及消费类产品中运用的比例会有所上升。
  在通讯范畴,DSP产品涵盖了从3G无线基站到无线局域网的广泛运用,数字化电视也离不开DSP。DSP在言语处理中的运用也是尽人皆知的,包含言语的紧缩与解压,言语的组成,言语的辨认等。
  核算机的硬盘驱动器在运用DSP技能今后可大大进步存取速度,进步容量和缩小体积,以致于往后有或许用于掌上电脑。在PC机中,DSP可加快图形处理功用。今后的PC机,或许每台PC中含有不只一颗DSP芯片。在核算机外设中,激光打印机、扫描仪、光盘机等需求很多数据传输的设备,都有或许用到DSP技能。
  DSP技能开展的另一趋势是速度更快,功耗更低,DSP片外的速度能到达几十兆赫现已近于极限,为了下降体系的噪声,进步体系抗干扰才能,片外时钟有进一步下降的趋势,即外部运用几兆赫的振荡器就够了,而片内则用压控振荡器加锁相环的技能,把片内时钟速度进步到100MHz、200MHz甚至更高,会有更多的DSP片内时钟到达1GHz。预期到2010年,同类水平的DSP的功耗将降到本来的1/3。
DSP与CPU
  假如用一般核算机中的CPU来处理算法,做乘法和加法都要调用相应的乘法、加法函数,假如是浮点数运算,一般CPU需求将浮点运算交给协处理处理,尽管协处理器的浮点运算速度或许很快,但加上CPU将输入参数传出,再将运算成果取回的时刻,会显得速度很慢;做循环时,要有循环变量,每次循环变量加1后再判别是否现已循环了n次,这一进程是比较慢的。

  而DSP则在硬件规划上针对这类核算采纳了一些共同的规划,以求最快的运算速度,以致于趋于模仿电路的延迟时刻。
  DSP能在一个时钟周期内完结乘法和加法运算,并能并行地一起将下面运算要用到的两个参数传入相应的运算用寄存器。在乘法及乘加指令的履行办法上,DSP的小数乘法在算法上分定点算法DSP与浮点算法DSP。在定点类DSP中,小数点的方位是固定的,不管定点的DSP仍是浮点的DSP,乘法器都是用硬件逻辑完结的,乘法能够在一个指令周期内完结。
  在循环方面,DSP有比如重复n次(Repeat n),或循环n次(DO Loop n)等指令,使DSP能敏捷完结n次循环,而不用每次都查看是不是现已循环n次了。这便是DSP在做数字信号处理方面的优势与独到之处。也是DSP差异于CPU的当地。
  DSP与CPU在结构方面的另一差异是,DSP往往选用哈佛结构,而传统的CPU多为冯.诺曼结构(Von Neuman)。冯.诺曼结构指的是将程序与数据共同编址,不差异存储器的程序空间和数据空间。而哈佛结构指将程序空间与数据空间分隔编址,这样在DSP处理数据空间运算与数据传输的一起能够并行地从程序空间读取下一条指令。选用哈佛结构,将程序空间与数据空间分隔编址的优点是速度快,读程序和读写数据能够一起进行。
  DSP在内核规划方面还有一个特色是选用多重流水线结构,流水线结构的层次深度能够从3级到6级。程序的履行进程大致可分为读指令、指令译码、指令履行等几个阶段。DSP在第一个时钟周期内读第一条指令,在第二个周期译码第一条指令一起在第二个周期内读入第二条指令,在第三个时钟周期内履行第一条指令,译码第二条指令,一起读入第三条指令,这样尽管履行一条指令仍需求三个周期,可是因为并行的流水线处理,看起来如同每条指令都是在一个周期内完结的,这便是流水线结构。
DSP的特色

DSP在体系结构上与通用微处理器有很大的差异。下面是几个要害的不同点:
单周期指令:大多数DSP都具有流水结构,它能够在一个时钟周期内履行一条句子。
快速乘法器:信号处理算法往往很多用到乘加(multiply-accumulate,MAC)运算。DSP有专用的硬件乘法器,它能够在一个时钟周期内完结MAC运算。硬件乘法器占用了DSP芯片面积的很大一部分。(与之相反,通用微处理器选用一种较慢的、迭代的乘法技能,它能够在多个时钟周期内完结一次乘法运算,可是占用了较少了硅片资源)。
多总线:DSP有分隔的代码和数据总线(一般用术语“哈佛结构”表明),这样在同一个时钟周期内能够进行屡次存储器拜访——这是因为数据总线也往往有好几组。有了这种体系结构,DSP就能够在单个时钟周期内取出一条指令和一个或许两个(或许更多)的操作数。
地址发生器:DSP有专用的硬件地址发生单元,这样它能够支撑许多信号处理算法所要求的特定数据地址形式。这包含前(后)增(减)、环状数据缓冲的模地址以及FFT的比特倒置地址。地址发生器单元与主ALU和乘法器并行作业,这就进一步添加了DSP能够在一个时钟周期内能够完结的作业量。
硬件辅佐循环:信号处理算法常常需求履行严密的指令循环。对硬件辅佐循环的支撑,能够让DSP高效的循环履行代码块而无需让流水线停转或许让软件来测验循环停止条件。
数据格局:除了规范的整数型格局外,DSP一般支撑定点和(或)浮点数。对数据格局和精度的挑选取决于运用程序所需,例如:
16位定点DSP能够满意语音信号处理和操控所需
24位和32位定点DSP能够满意高质量音频信号处理所需
32位浮点DSP能够满意图形和图画处理所需

DSP的特色:
DSP处理器选用哈佛结构和改进的哈佛结构。
哈佛结构便是将程序代码和数据的存储空间分隔,各有自己的地址和数据总线。之所以选用哈佛结构,是为了并行进行指令和数据处理,然后能够大大地进步运算的速度。为了进一步进步信号处理的功率,在哈佛结构的基础上,又加以改进。使得程序代码和数据存储空间之间能够进行数据的传输,称为改进的哈佛结构。

选用流水技能。
流水技能是将各指令的各个过程堆叠起来履行。DSP处理器所选用的将程序存储空和数据存储空间的地址与数据总线分隔的哈佛结构,为选用流水技能供给了很大的便利。

为了进步DSP处理器的运算速度,它们无例外地设置了硬件乘法器,以及MAC(乘而且累加)一类的指令。
DSP处理器都为DMA独自设置了彻底独立的总线和操控器,这是和通用的CPU很不相同,其意图是在进行数据传输是彻底不影响CPU及其相关总线的作业。
在DSP处理器中,设置了专门的数据地址发生器来发生所需的数据地址。数据地址的发生与CPU的作业是并行的,然后节约CPU的时刻,进步信号的处理速度。
DSP处理器为了本身作业的需求和外部环境的和谐作业。往往都设置了丰厚的外设。如时钟发生器。定时器等。
定点DSP处理器和浮点DSP处理器。定点DSP中常常要考虑溢出问题,在浮点DSP根本上能够不考虑。与定点DSP处理器比较,浮点DSP处理器的速度更快,尤其是作浮点运算。在实时性要求很到的场合。往往考虑浮点DSP处理器。而浮点DSP处理器的价格比较高,开发难度更大。

为什么CCS需求装置Driver?
CCS是敞开的软件渠道,它能够支撑不同的硬件接口,因而不同的硬件接口有必要经过规范的Driver同CCS衔接。
Driver装置的常见问题?
请仔细阅览“装置手册”和Driver盘中的Readme。 1)关于SEED-XDS,装置Readme中的过程,将I/O口设为240/280/320/340。 2)关于SEED-XDSPP,装置Readme中的过程,将I/O口设为378或278。3)关于SEED-XDSUSB,有必要衔接方针板,装置Readme中的过程,将I/O口设为A,USB衔接后,主机将主动激活相应的Driver。 4)关于SEED-XDSPCI,装置Readme中的过程,将I/O口设为240,PCI接口板刺进主机后,主机将主动激活相应的Driver。 5)关于Simulator,需求挑选不同的CFG文件,以模仿不同的DSP。 6)关于C5402 DSK,将I/O口设为请仔细阅览“装置手册”和Driver盘中的Readme。 1)关于SEED-XDS,装置Readme中的过程,将I/O口设为240/280/320/340。 2)关于SEED-XDSPP,装置Readme中的过程,将I/O口设为378或278。留意主机BIOS中并口的型式有必要同xds510pp.ini中共同。 3)关于SEED-XDSUSB,有必要衔接方针板,装置Readme中的过程,将I/O口设为240/280/320/340,USB衔接后,主机将主动激活相应的Driver。 4)关于SEED-XDSPCI,装置Readme中的过程,将I/O口设为240/280/320/340,PCI接口板刺进主机后,主机将主动激活相应的Driver。 5)关于Simulator,需求挑选不同的CFG文件,以模仿不同的DSP。 6)关于C5402 DSK,将I/O口设为378或278。 7)关于C6211/6711 DSK,将I/O口设为378或278。 8)关于C6201/C6701 EVM,将I/O口设为0。

Link的cmd文件的效果是什么?
Link的cmd文件用于DSP代码的定位。因为DSP的编译器的编译成果是未定位的,DSP没有操作体系来定位履行代码,每个客户规划的DSP体系的装备也不尽相同,因而需求用户自己界说代码的装置方位。以C5000为例,根本格局为:
-o sample.out
-m sample.map
-stack 100
sample.obj meminit.obj
-l rts.lib
MEMORY {
PAGE 0: VECT: origin = 0xff80, length 0x80
PAGE 0: PROG: origin = 0x2000, length 0x400
PAGE 1: DATA: origin = 0x800, length 0x400
}
SECTIONS {
.vectors : {} >PROG PAGE 0
.text : {} >PROG PAGE 0
.data : {} >PROG PAGE 0
.cinit : {} >PROG PAGE 0
.bss : {} >DATA PAGE 1
}
怎么将OUT文件转换为16进制的文件格局?
DSP的开发软件集成了一个程序,能够从履行文件OUT转换到编程器能够承受的格局,使得编程器能够用次文件烧写EPROM或Flash。关于C2000的程序为DSPHEX;关于C3x程序为HEX30;关于C54x程序为HEX500;关于C55x程序为HEX55;关于C6x程序为Hex6x。以C32为例,根本格局为:
sample.out
-x
-memwidth 8
-bootorg 900000h
-iostrb 0h
-strb0 03f0000h
-strb1 01f0000h
-o sample.hex
ROMS {
EPROM: org = 0x900000,len=0x02000,romwidth=8
}
SECTIONS {
.text: paddr=”boot”
.data: paddr=”boot”
}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/adas/226882.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部