chappie 发表于 2014-12-4 11:25:25

DSP芯片特点及选择

有些图在帖子里不正常,需要的朋友下载附件。

DSP芯片特点及选择
   DSP(DigitalSignal Proceccing)芯片也称为数字信号处理器,它是仿真系统硬件构成的核心器件,它的性能对仿真功能的实现非常重要。只有选定3DSP芯片,才能设计其外围电路及系统的其它电路。总的来说,DSP芯片的选择应根据仿真系统的规模,运算速度、存贮容量而定,但一般来说,选择DSP芯片时应考虑到如下因素
(1)DSP芯片的运算速度。运算速度是DSP芯片的一个最重要的性能指标,也是选择DSP芯片时所需要考虑的一个主要因素。DSP芯片的运算速度可以用以下几种性能指标来衡量:
a.指令周期(执行一条指令所需的时间)。
b.MAC时间(一次乘法加上一次加法的时间)。
c.FFT执行时间(运行一个N点FFT程序所需的时间)。
d.MIPS(每秒执行百万条指令)。
e.MOPS(每秒执行百万次操作)。
f.MFLOPTS(每秒执行百万次浮点操作)。
g.BOPS(每秒执行十亿次操作)。
(2)DSP芯片的价格。
(3)DSP芯片的硬件资源。
(4)DSP芯片的运算精度。
(5)DSP芯片的开发工具。
(6)DSP芯片的功耗。
一般而言,定点DSP芯片的价格较便宜,功耗较低,但运算精度稍低。而浮点DSP芯片的优点是运称精度高,用C语言编程方便,开发周期短,但价格和功耗相对较高。
6.1 DSP芯片的特点和种类
   DSP芯片是一种特别适合于进行数字信号处理运算的微处理器,其主要应用是实时快速地实现各种数字信号处理算法,一般具有如下主要特点:
   (1)在一个指令周期内可完成一次乘法和一次加法;
   (2)程序和数据空间分开,可以同时访问指令和数据;
   (3)片内具有快速RAM,通常可通过独立的数据总线在两块中同时访问;
   (4)具有低开销或无开销循环及跳转的硬件支持;
   (5)快速的中断处理和硬件I/O支持;
   (6)具有在单周期内操作的多个硬件地址产生器;
   (7)可以并行执行多个操作;
   (8)支持流水线操作,使取指、译码和执行等操作可以重叠执行。
从1978年出现的第一个单片DSP以来,DSP芯片在这20几年来得到了高速发展,DSP芯片的应用也越来越广泛,根据其用途可分为通用型DSP芯片和专用型DSP芯片;按基础特性分为静态DSP芯片和一致性DSP芯片;按数据格式分为定点DSP芯片和浮点DSP芯片。
美国德州仪器公司(Texas Instruments,简称TI)推出的TMS系 列DSP芯片已经成为当今世界上最有影响的DSP芯片,TI公司在1982年推出第一代DSP芯片TMS3201×f、TMS320C1X系列,随后推出第二代DSP芯片TMS3202×f、TMS320C2X系列,第三代DSP芯片TMS320C3X系列,第四代DSP芯片TMS320C4X系列,第五代DSP芯片TMS320C5X系列,第六代DSP芯片TMS320C6X系列。
6.2 TMS320系列DSP芯片
   可编程DSP芯片是一种具有特殊结构的微处理器,为了达到快速进行数字信号处理的目的,DSP芯片一般都具有程序和数据分开的总线结构、流水线操作功能、单周期完成乘法的硬件乘法器以及一套适合数字信号处理的指令集。
6.2.1 TMS320系列DSP芯片的基本结构。
TM320系列DSP芯片基本结构包括:(1)哈佛结构;(2)流水线操作;(3)专用的硬件乘法器;(4)特殊的DSP指令;(5)快速的指令周期。
这些特点使得TMS320系列DSP芯片可以实现快速的DSP运算,并使大部分运算(例如乘法)能够在一个指令周期内完成。由于TMS320系列DSP芯片是软件可编程器件,因此具有通用微处理器具有的方便灵活的特点。
(1)哈佛结构
哈佛结构是不同于传统的冯·诺曼(Von Neuman)结构的并行体系结构,其主要特点是将程序和数据存储在不同的存储空间中,即程序存储器和数据存储器是两个相互独立的存储器,每个存储器独立编址,独立访问。与两个存储器相对应的是系统中设置了程序总线和数据总线两条总线,从而使数据的吞吐率提高了一倍。
为了进一步提高运行速度和灵活性,TMS320系列DSP芯片在基本哈佛结构的基础上作了改进,一是允许数据存放在程序存储器中,并被算术运算指令直接使用,增强了芯片的灵活性;二是指令存储在高速缓冲器(Cache)中,当执行此指令时,不需要再从存储器中读取指令,节约了一个指令周期的时间。
(2)流水线
与哈佛结构相关,DSP芯片广泛采用流水线以减少指令执行时间,从而增强了处理器的处理能力。TMS320系列处理器的流水线深度从2~6级不等。也就是说,处理器可以并行处理2~6条指令,每条指令处于流水线上的不同阶段。
(3)专用的硬件乘法器
TMS320系列DSP芯片中具有一个专用的硬件乘法器,用1~4条指令就能完成一次乘法和一次加法运算,因此,在一个指令周期内可完成乘法运算,而在通用的微处器中,乘法指令是靠一系列加法来实现的,因此,TMS320系列DSP乘法速度远远高于通用微处理器。
(4)特别的DSP指令
利用DSP的特殊指令可以将多条指令才能完成的功能用一条指令来完成,这样可大大提高运算速度。
(5)快速的指令周期
哈佛结构、流水线操作、专用的硬件乘法器、特殊的DSP指令再加上集成电路的优化设计,可使DSP芯片的指令周期在200ms以下。
6.2.2 几种TMS320系列DSP芯片的比较
(1)第一代TMS320系列DSP芯片TMS320C1X是定点DSP芯片,采用二级流水线,其主要特点如下:
·      指令周期:160ns/200ns/280ns
·      片内RAM:144字/256字(TMS320C15/E15/C17/E17)
·      片内ROM:1.5K字/4K字(TMS320C15/C17)
·      4K字片内程序EPROM(TMS320E15/E17)
·      4K字外部全速存储器扩展
·      并行乘法器:乘积为32位
·      桶形移位器:将数据从存储器移到ALU
·      并行移位器
·      允许文本交换的4×12位堆栈
·      两个间接寻址的辅助寄存器
·      双通道串行口(TMS32011,TMS320C17/E17)
·      片内压扩硬件(TMS32011,TMS320C17/E17)
·      协处理器接口(TMS320C17/E17)
·      器件封装:40脚双列直插(DIP)/44脚塑封(PLCC)
(2)第二代TMS320系列DSP芯片TMS320C2X系列是定点DSP芯片,采用三级流水线,其主要特点如下:
·      指令周期:100ns/120ns/80ns
·      片内掩膜ROM: 4K字
·      片内RAM:544字,分B0、B1和B2三块
·      程序和数据空间均为64K字
·      具有8级硬件堆栈、8个辅助寄存器
·      具有全静态双缓冲串行口,可与许多串行器件直接接口
·      与低速片外存储器通信的等待状态插入
·      采用HOLD操作的DMA
·      FFT变换用的比特反转寻址
·      扩展精度算术和自适应滤波支持
·      从外部存储器全速执行的MAC/MACD指令
·      具有在多处理器之间进行同步的能力,支持多处理器共享存储器
·      1-8umCMOS工艺,68脚PGA或PLCC封装
(3)第三代TMS320系列DSP芯片TMS320C3X系列芯片是浮点DSP芯片,采用四级流水线。其主要特点如表6-1   表6-1 三种TMS320C3X芯片的比较特征TMS320C30TMS320C31TMS320C32指令周期50/60/74ns33//40/50/60/74ns33/40/50ns数据/程序总线主总线STRB:32位数据,24位地址扩展总线IOSTRB:32位数据,13位地址STRB:32位数据,24位地址STRB0:8/16/32位STRB1:8/16/32位IOSTRB:32们内部RAM2K字2K字512字串行I/O口2个串行口1个串行口1个串行口用户程序、数据ROM4K字/16K字节无无DMA控制器单通道单通道双通道程序和数据存储器宽度32位32位程序16/32位可选数据8/16/32位可选外部中断触发电平触发电平触发电平/边沿可选中断矢量表地址固定固定用户可重定位程序引导无用户可选用户可选40/32浮点/整数乘法器有有有整数/浮点算术逻辑单元ALU有有有两个辅助寄存器算术单元(ARAU0和ARAU1)有有有
(4)第四代TMS320系列DSP芯片TMS320C4X系列芯片是浮点DSP芯片,采用五级流水线,其主要特点如下:
·      具有6个用于处理器间高速通信的通信口,每个口的最大数据吞吐量达20Mbyte/s的异步传输速率。
·      6个DMA通道实现了I/O操作与CPU操作的并行化。
·      CPU处理能力达275MOPS,数据吞吐量为320Mbyte/s,指令周期时间为40ns/50ns。
·      两条分开的外部数据、地址总线支持共享存储器系统和高速数据速率、单周期传输。
·      片内分析模块支持高效的并行处理调试。
·      片内程序高速缓冲存储器(Cache)和双向存取/单周期RAM提高了存储器访问的性能。
·      分开的内部程序、数据和DMA总线使程序和数据的I/O操作高度并行化,最大限度地保证了CPU的性能。
(5)第五代TMS320系列DSP芯片TMS320C5X系列芯片是定点DSP芯片,采用四级流水线,其主要特点如下:
·      25/35/50ns的指令周期(20~40MIPS)
·      224K×16位最大可寻址外部存储空间(64K程序、64K数据、64KI/O、32K全局)
·      算术逻辑单元(ALU),32位累加器(ACC)以及32位加法器的缓冲器(ACCB)
·      并行逻辑单元(PLU)
·      结果具有32位的16×16位并行乘法器
·      单周期乘累加指令
·      具有一个专用算术单元的8个辅助寄存器,可用于间接寻址
·      8级硬件堆栈
·      0~16位数据左移和右移
·      两个间接寻址的循环缓冲器,用于循环寻址
·      程序代码的单指令重复和程序块重复
·      全双工同步串行口,用于完成TMS320C5X与其他串行器件之间的直接直接通信
·      时分多址访问(TDM)串行口
·      内部定时器,可用软件控制
·      64K并行I/O口,其中16个有存储器映像
·      可软件编程的等待状态发生器
·      扩展保持操作,用于并发外部DMA
·      四级流水线操作,用于延迟跳转、调用、返回指令
·      比特反转寻址方式,用于FFT运算
·      JTAG扫描仿真接口(IEEE标准,P1149.1)
(6)第六代TMS320系列DSP芯片TMS320C6X系列芯是一种新型定点DSP芯片,该芯片的内部结构与以前的DSP芯片不同,内部集成了多个功能单元,可同时执行8条指令,运算能力达1600MIPS。其主要特点有:
·      运行速度快。指令周期为5ns,运算能力为1600MIPS;
·      内部结构不同于一般DSP芯片。内部同时集成了2个乘法器和6个算术运算单元,且它们之间是高度正交的,使得在一个指令周期内最大能支持8条32bit的指令;
·      指令集不同。为充分发挥其内部集成的各执行单元的独立运行能力,TI公司使用了VelociTT超长指令字(VLIW)结构。它在一条指令中组合了几个执行单元,结合其独特的内部结构,可在一个时钟周期内并行执行几个指令;
·      大容量的片内存储器和大范围的寻址能力。片内集成了512K字程序存储器和512K字数据存储器,并拥有32bit的外部存储器界面;
·      智能外设。内部集成了4个DMA接口,2个多通道缓存串口,2个32bit计时器;
·      低廉的使用成本。
根据上述比较,结合仿真系统的特点,考虑DSP的功能和性能比,选择了TI公司第三代产品TMS320C31-40浮点DSP芯片。
6.3TMS320C31-40 DSP芯片
TMS320C312-40为主频40MHZ指令周期为50ns的浮点DSP芯片,它是TMS320C30的简化和改进型,它去掉了扩展总线,一个半行口和内部的4K字ROM,增加了程序的引导功能,其内部包含了2K×32位的快速RAM块。分开的程序总线、数据总线和DMA总线使得取指、读写数据和DMA操作可并行进行,64×32位的指令Cache用来存储经常使用的代码块,这可大大减少片外访问的次数,从而提高程序运行速度,一般来讲,其运算速度为20MIPS或40MFLOPS,采用132脚的PQFP封装,其内部结构框图为图6-1。










file:///C:\Users\john\AppData\Local\Temp\msohtmlclip1\01\clip_image001.gif


file:///C:\Users\john\AppData\Local\Temp\msohtmlclip1\01\clip_image002.gif
file:///C:\Users\john\AppData\Local\Temp\msohtmlclip1\01\clip_image003.gif

file:///C:\Users\john\AppData\Local\Temp\msohtmlclip1\01\clip_image004.gif




file:///C:\Users\john\AppData\Local\Temp\msohtmlclip1\01\clip_image005.gif复                              复   外


外设 file:///C:\Users\john\AppData\Local\Temp\msohtmlclip1\01\clip_image006.giffile:///C:\Users\john\AppData\Local\Temp\msohtmlclip1\01\clip_image007.gif用             内部总线            用   设
file:///C:\Users\john\AppData\Local\Temp\msohtmlclip1\01\clip_image005.giffile:///C:\Users\john\AppData\Local\Temp\msohtmlclip1\01\clip_image008.giffile:///C:\Users\john\AppData\Local\Temp\msohtmlclip1\01\clip_image008.giffile:///C:\Users\john\AppData\Local\Temp\msohtmlclip1\01\clip_image008.gif器                              器   总
file:///C:\Users\john\AppData\Local\Temp\msohtmlclip1\01\clip_image009.gif

中央处理单元CPU
片内DMA
I/D控制 file:///C:\Users\john\AppData\Local\Temp\msohtmlclip1\01\clip_image010.giffile:///C:\Users\john\AppData\Local\Temp\msohtmlclip1\01\clip_image011.gif线



6.3.1 中央处理单元CPU
中央处理单元CPU是DSP芯片的核心组成部件,其性能直接决定了DSP的运算速度,图6-2是CPU的内部结构图。


file:///C:\Users\john\AppData\Local\Temp\msohtmlclip1\01\clip_image012.gif



file:///C:\Users\john\AppData\Local\Temp\msohtmlclip1\01\clip_image013.giffile:///C:\Users\john\AppData\Local\Temp\msohtmlclip1\01\clip_image014.giffile:///C:\Users\john\AppData\Local\Temp\msohtmlclip1\01\clip_image014.giffile:///C:\Users\john\AppData\Local\Temp\msohtmlclip1\01\clip_image014.giffile:///C:\Users\john\AppData\Local\Temp\msohtmlclip1\01\clip_image014.giffile:///C:\Users\john\AppData\Local\Temp\msohtmlclip1\01\clip_image014.giffile:///C:\Users\john\AppData\Local\Temp\msohtmlclip1\01\clip_image015.giffile:///C:\Users\john\AppData\Local\Temp\msohtmlclip1\01\clip_image015.giffile:///C:\Users\john\AppData\Local\Temp\msohtmlclip1\01\clip_image015.giffile:///C:\Users\john\AppData\Local\Temp\msohtmlclip1\01\clip_image015.gif

32位桶形移位寄存器
算术逻辑单元器

扩展精度寄存器

辅助寄存器

其它寄存器

浮点/定点
乘法器 file:///C:\Users\john\AppData\Local\Temp\msohtmlclip1\01\clip_image016.giffile:///C:\Users\john\AppData\Local\Temp\msohtmlclip1\01\clip_image017.giffile:///C:\Users\john\AppData\Local\Temp\msohtmlclip1\01\clip_image018.giffile:///C:\Users\john\AppData\Local\Temp\msohtmlclip1\01\clip_image019.gifCPU内部总线




    CPU内有一个40/32位的浮点/定点法器和一个浮点/整数算术逻辑单元,使DSP在单周期内完成乘法和一个加法运算,大大提高了DSP的运算速度。CPU内还有一组寄存器,CPU寄存器组有28个内部寄存器,他们可以由乘法器和算术逻辑单元进行操作,此寄存器组包括:
·      8个扩展精度寄存器(R7-R0)
·      8个辅助寄存器(AR7-AR0)
·      2个指针寄存器(IR0、IR1)
·      1个块大小寄存器(BK)
·      1个数据页面寄存器(DP)
·      1个堆栈寄存器(SP)
·      1个状态寄存器(ST)
·      1个CPU/DMA中断使能寄存器(IE)
·      1个CPU中断标记寄存器(IF)
·      1个I/O标记寄存器(IOF)
·      1个重复计数器(RC)和2个块重复(RS、RE)寄存器
·      1个程序计数器(PC)
6.3.2 内部存储器

DSP内部总线          








file:///C:\Users\john\AppData\Local\Temp\msohtmlclip1\01\clip_image020.gif
file:///C:\Users\john\AppData\Local\Temp\msohtmlclip1\01\clip_image021.gif
file:///C:\Users\john\AppData\Local\Temp\msohtmlclip1\01\clip_image022.gif




   64×32位的指令缓存器极大提高了重复运算的指令使用效率,减少了片外寻址(等待)的次数,它由CPU状态寄存器中的3位(bit)块定清除、使能或冻结Cache的状态。
6.3.3片内DMA
   片内DMA主要由地址生存器和控制寄存器组成。
6.3.4外设
   1个串行口,支持8/16/24/32位。
   2个32位定时器。
6.3.5 TMS320C31-40的软件资源
(1)丰富的指令系统
TMS320C31-40的汇编语言指令集特别适合于数字信号处理。所有指令占一个机器字长,大部分指令是单周器的。指令集共有113条指令,可以分为六类:数据传送类、二操作数算术/逻辑类、三操作数算术/逻辑类、程序控制类、互锁操作类及并行操作类。12条数据传送指令可从存储器中读一个字装入寄存器,将一个字从寄存器中存入存储器中及进行堆栈操作。二操作数指令有35条,提供整数、浮点、逻辑运算及多精度算术操作。17条三操作数指令可以在一个指令周期内完成具有三个操作数的运算,其中两个是源操作数,另一个是目的操作数。程序控制指令共16条,它们影响程序的流向,其中有块重复指令RPTB和单指令重复指令RPTS。除了有标准跳转指令外,还有延迟跳转指令,有些指令具有条件运算功能。5条互锁操作指令主要用来进行多处理器之间的通信。剩下的28条指令都是并行操作指令,每条并行指令由两条指令用符号“‖”连接,并行操作指令可使“‖”前后的两条指令并行完成。需要注意的是,并不是任意两条指令都可构成并行指令。
(2)灵活的程序控制
TMS320C31-40提供相当灵活的程序流控制。软件的程序控制包括重复、跳转、调用、陷阱及返回等。
重复方式可以实现无开销循环。块重复指令RPTB可以使一块代码重复执行指定的次数,而单指令重复指令RPTS使一条指令重复执行指定的次数,由于RPTS取指次数只有一次,因此减少了总线冲突的机会。但RPTS指令禁止中断。因此在需要中断的场合,一般用RPTB指令代替RPTS指令。
跳转指令分为标准跳转和延迟跳转。标准跳转首先将流水线清空然后执行跳转,这需4个周期才能执行完毕。延迟跳转并不将流水线清空,而是保证在程序跳转之前执行它下面的3条指令,这样使得跳转指令本身仅需1个指令周期。
(3)流水线操作
流水线操作是TMS320C31-40具有高性能的特性之一。5个功能单元控制TMS320C31-40的操作:取指(F)、译码(D)、读操作数(R)、执行(E)和DMA。流水线操作就是一个基本指令的取指、译码、读操作数和执行的并行操作。尽管DMA的优先级最低,但由于DMA控制器具有自己的数据和地址总线,因此,通过合适的数据结构,DMA与CPU的冲突可以减少甚至消除。
流水线冲突可以分为下列三大类:跳转冲突、寄存器冲突和存储器冲突。
(4)寻址方式多样
TMS320C31-40支持5组寻址模式和6种寻址方式。5组寻址模式为①通用寻址方式;②三操作数寻址方式;③并行寻址方式;④长立即数寻址方式;⑤条件跳转寻址方式。6种寻址方式是:①寄存器寻址;②直接寻址;③间接寻址;④短立即数寻址;⑤长立即数寻址;⑥PC指令相对寻址。
6.3.6 TMS320C31-40的特点
   TMS320C31-40具有40/32位的浮点/定点剩法器及算术逻辑单元、2K×32位的快速RAM块、64×32位的指令Cache及丰富的软件资源,特别是TMS320C31-40的5个功能4级指令流水线及I/O与CPU操作的并行性等特点使TMS320C31-40DSP芯片具有高性能,其性能特殊如下:
(1)指令周期50ns,运算速度20MIPS和40MFLOPS。
(2)二个各为1K×32位单周期存取的快速RAM。
(3)64个32位长的指令缓存器(Cache)。
(4)32位长的指令和数据,16M空间24位寻址范围(大寻址范围)。
(5)40/32位浮点/定点乘法器和算术逻辑单元。
(6)1个32位桶形移位寄存器。
(7)二个地址发生器中包含8个辅助寄存器。
(8)寄存器和二个辅助寄存器运算单元。
(9)片内DMA控制器用于并发的I/O和CPU操作。
(10)具有整数、浮点数及逻辑运算功能。
(11)单周期内完成平行的算术逻辑运算及乘法指令。
(12)具有块指令重复功能。
(13)可实现零开销的循环指令。
(14)条件转移和返回指令。
(15)支持多处理器之间的互锁功能。
(16)1条24位寻址32位数据总线。
(17)1个串行口支持8/16/24/32位数据格式的传输。
(18)两个32位长度的空时器。
(19)2个通用外部标记寄存器及4个外部断引脚。
(20)灵活的引导装载方式。
(21)132脚的PaFp封装方式。

alexy 发表于 2014-12-4 13:06:05

沙发我来坐

shuobing 发表于 2014-12-4 13:10:58

来个板凳坐坐
页: [1]
查看完整版本: DSP芯片特点及选择