摘要:TMS320VC5510是美国TI公司推出的新一代数字信号处理器,它具有更高的代码执行效率和更低的功耗,其最高指令执行速度可达800MIPS。文中详细介绍了TMS320VC5510的特点参数、内部结构、片内资源以及相关的应用信息资料。
关键词:DSP 定点 CPU TMS320VC5510
1 概述
TMS320VC5510 是Texas Instrument(TI)公司采用新一代定点DSP核构成的数字信号处理器,与TMS320C54X相比,它功耗更低,代码执行效率更高,在0.9V 下,其DSP核的功耗为0.05mW/MIPS,最高执行指令速度可达800MIPS。为了保护用记在软件方面的投资,TMS320C55X的指令与 TMS320C54X的指令可以完全兼容。
TMS320VC5510是TI公司推出的第一个基于TMS320C55X核的数字信号处理器(Digital Signal Processor,DSP),它具有以下资源及特点:
●高性能,低功耗;
●6.25/200MHz的指令周期;
●160/200MHz的时钟频率;
●每周期执行1或2条指令;
●双MAC(multiply-and-accumulate unit,乘并累加单元)结构;
●双算术逻辑单元;
●3组内部数据读总线;
●2组内部数据写总线;
●可设置的指令高速缓冲存储器(Cache),容量为24k字节;
●在片RAM共160k×16bit;
8块双访问RAM(Dual-Access RAM),每块容量为4k×16bit,共64k字节。
32块单访问RAM(Single-Access RAM),每块容量为4k×16bit,共256k字节。
●16k×16bit的在片ROM;
●8M×16bit外部最大可寻址空间;
●32bit的外部存储器接口(External Memory Interface,EMIF)可以对下列存储器无缝接口:
异步SRAM;
异步EPROM;
同步DRAM(SDRAM);
同步突发式SRAM(Synchronous Burst SRAM,SBSRAM);
●可对6个器件功能域(Device Functional Domains)进行低功耗控制编程。
●丰富的在片外设,包括:
2个16位的定时器;
6通道DMA控制器;
3组多通道缓冲串行口;
可编程的数字锁相环发生器;
16位并行增强型主机接口(Enhanced Host Port Interface);
8个通用的I/O口及通用输出信号XF。
●支持IEEE Std 1149.1(JTAG)边界扫描逻辑(Boundary Scan Logic);
●3.3V的I/O电压;
●1.6V的CPU核心电压;
●240脚MicroStar BGA封装。
2 TMS320VC5510的内部结构
图1是TMS320VC5510的内部结构。从图1可以看出,TMS320VC5510主要是由CPU、外设总线控制器、DMA控制器、片上外设和片上存储单元等几大部分组成。
3 TMS320VC5510的CPU结构
TMS320VC5510的强大数据处理能力得益于它高度并行的CPU结构,图2给出了TMS320VC5510的CPU功能框图。
TMS320VC5510的CPU由指令缓冲单元(IU)、程序流程单元(PU)、地址数据流程单元(AU)和数据处理单元(DU)等4个部分和12组总线构成。
3.1 CPU内部总线
CPU 各个单元的数据交换是通过总线来完成的,在CPU内部有12个独立总线,分别为:3组数据读总线,2组数据写总线,5组数据地址总线,1组程序读总线和1 组程序写总线。此外,对片内功能器件和DMA操作等还有专用的总线。这样的总线结构使得TMS320C55X的CPU可以在一个总线周期内同时进行了3个数据读和2个数据写的操作,从而大大提高了系统数据并行处理的能力。此外,CPU内部的DMA控制器可以独立于CPU的操作而在一个周期内进行2组数据传送。表1列了邮TMS320VC5510的CPU内部的12组总线。
TMS320VC5510中的程序空间和数据空间是分开的,数据读和数据写都有各自分开的地址总线,这种并行结构允许CPU在一个周期内进行读和写,因此,TMS320C55X的CPU处理速度很高。
3.2 CPU内部的功能单元
指令缓站单元(I单元)的主要功能是将指令流从存储器中取出并送入CPU。在每一个CPU周期中,指令缓冲单元都从32位的程序读数据总线上取出4个字节的程序代码,同时将已经接收并存放在指令缓冲队列(Instruction buffer queue)前端的最多6个字节程序代码送入指令解码控制器(Instruction decoder control)中进行解码。指令解码控制器将解码信息送入P单元(程序流程单元)、A单元(地址数据流程单元)和D单元(数据处理单元)。
程序流程单元(P单元)用于控制指令执行的次序。它内部的程序地址发生器可产生从程序存储器中取指令的地址。该单元还包括管理程序流水线的逻辑,4个状态寄存器用于控制和监视CPU的各个特性。在程序流程单元中,程序地址发生器产生24位地址。因为程序流程单元支持字节寻址方式,所以代码存放在存储器中无须进行对齐操作。24位的地址总线使TMS320C55X的寻址空间可达16M字节。程序流程单元还可控制分支、调用、重复和中断等。
地址数据流程单元(A单元)用来产生对数据空间进行读写操作所需的地址。该单元包括所有产生2组数据写地址总线和3组数据读地址总线上 的地址所需的逻辑单元和寄存器。此外,在地址数据流程单元中还有一个16位的算术逻辑单元(ALU)。
数据计算单元(D单元)是TMS320VC5510中CPU的重要部分,DSP应用系统的大量数据在这个单元进行处理。在这个单元中,3组数据读数据总线上的数据用作2个MAC器件的输入或40位的算术逻辑单元的输入。MAC器件运算的结果可以存放在4个40位的累加器中。数据计算单元的这种并行性将减少 TMS320C55X在执行信号处理算法时所需的周期数。TMS320C55X之所以比TMS320C54X的性能有很大的提高,其中关键的一点是 TMS320C55X采用了并行的双MAC结构,且每个MAC器件中均包括一个乘法器和一个专门的加法器,在单周期内,每一个MAC单元均可执行17× 17位的乘法运算和一个40位的加法运算。MAC单元的输入是3组数据读数据总线上的数据,这3组数据一般是两组数据流和一组常系数数据流。MAC运算结果可以存放在数据计算单元的40位累加器中。这种双MAC结构使TMS320C55X在进行信号处理时的性能得到很大的提高。
4 片内存储器
与TMS320C54X不同,TMS320VC5510支持统一编址,也就是程序和数据可以处在物理地址相同的空间。TMS320VC5510片内存储器的总空间为352k字节(176k字)。
4.1 片内双访问RAM(DARAM)
TMS320VC5510 的片内DARAM共64k,位于片内的000000H~00FFFFH空间,这64k的DARAM又分为8个部分,见表2。每一DARAM空间在一个机器周期内可以被访问2次,该访问可以是2个读操作,2个写操作或1个读及1个写操作。通过内部程序总线、数据总线和DMA总线可对DARAM进行访问。
表1 TMS320C5510 CPU内部总线
总线名称 总线宽度 总线性质 功 能
BB
16位
数据读数据总线
(Data-Read Data Bus)
BB总线只能把数据送入数据处理单元(D单元),它的订功能是连结存储器和数据处理单元中的两个乘积并累加单元(MAC)
CB
16位
数据读数据总线
(Data-Read Data Bus)
CB总线上的数据可以送入程序流程单元(P单元)、数据处理单元(D单元)和地址数据流程单元(A单元)。指令如果同时读取两个操作数,则CB和DB同时被使用
DB
16位
数据读数据总线
(Data-Read Data Bus)
DB总线上的数据可以送入程序流程单元(P单元)、数据处理单元(D单元)和地址数据流程单元(A单元)。指令如果同时读取两个操作数,则CB和DB同时被使用,在只读取一操作数的情况下,使用DB总线
BAB
24位
数据读地址总线
(Data-Read Address Bus)
BAB总线上的数据是由数据读数据总线BB总线送入CPU的数据的地址
CAB
24位
数据读地址总线
(Data-Read Address Bus)
CAB总线上的数据是由数据读数据总线CB总线送入CPU的数据的地址
DAB
24位
数据读地址总线
(Data-Read Address Bus)
DAB总线上的数据是由数据读数据总线DB总线或者是DB和CB总线送入CPU的数据的地址
PB
32位
程序读数据总线
(Program-Read Data Bus)
它的功能是将4字节的程序代码送入指令缓冲单元(I单元),并在指令缓冲单元中将对指令进行解码
PAB
24位
程序读地址总线
(Program-Read Address Bus
该总线上数据是由PB总线上传送到CPU的程序代码的地址
EB
16位
数据写数据总线
(Data-Write Data Bus)
数据写数据总线的功能是将CPU内部器件(如MAC单元)的数据写入到存储器空间或I/O空间
FB
16位
数据写数据总线
(Data-Write Data Bus)
数据写数据总线的功能是将CPU内部器件(如MAC单元)的数据写入到存储器空间或I/O空间
EAB
24位
数据写地址总线
(Data-Write Address Bus)
数据写地址总线上的数据是由数据写数据总线送入CPU的数据的地址
FAB
24位
数据写地址总线
(Data-Write Address Bus)
数据写地址总线上的数据是由数据写数据总线送入CPU的数据的地址
表2 TMS320VC5510的片内DARAM
片内DARAM 地址范围
DARAM1 000000h~001FFFh
DARAM2 002000h~003FFFh
DARAM3 004000h~005FFFh
DARAM4 006000h~007FFFh
DARAM5 008000h~009FFFh
DARAM6 00A000h~00BFFFh
DARAM7 00C000h~00DFFFh
DARAM8 00E000h~00FFFFh
4.2 片内单访问RAM(SARAM)
TMS320VC5510的片内SARAM共256k,位于片内的010000H~04FFFFH空间,这256k的DARAM分为32个部分。每一个SARAM空间在一个机器周期内可以被访问1次,对SARAM的访问是通过内部程序总线、数据总线和DMA总线来实现的。
4.3 片内ROM
片内ROM共32k字节,位于片内的FF8000H~FFFFFFH空间。当DSP复位且MP/MC=0时,这32k字节ROM作为装载用户代码的程序存储器。当MP/MC=1时,在片的ROM被关闭,FF8000H~FFFFFFH的地址为外部存储器所使用。MP/MC是状态寄存器3(ST3)中的一位,该状态位由BOOTM2、BOOTM1和BOOTM0引脚上的逻辑电平所决定。DSP复位时将对这3个引脚进行采样,当且仅当这3个引脚的电平均为逻辑0 时,MP/MC被置1,否则MP/MC置0。只有到下一次硬件复位时,这些引脚才被重新采样。在程序中出现的软复位并不影响MP/MC位,但是通过软件可以设置或清除MP/MC位。ROM可以被程序总线、数据总线和DMA总线所访问。图3给出了TMS320VC5510的地址映射和存储器分配状态。
需要说明的是:图3中给出的地址均为每一块存储器空间的起始地址。它的外部存储器空间由不同的空间组成,具体使用哪一块由片选信号CE0、CE1、CE2和 CE3决定。外部空间存储器类型可以是异步SRAM、异步EPROM、同步DRAM(SDRAM)和同步突发式SRAM(Synchronous Burst SRAM或SBSRAM)。
5 TMS320VC5510的片内外设
TMS320VC5510的片内外设包括外部存储器接口(external memory interface,EMIF)、6通道DMA控制器、1个数字锁相环、2个定时器、3个多通道缓冲串行口和8个可编程的通用I/O口。下面分别说明它们的工作过程。
5.1 外部存储器接口(EMIF)
TMS320VC5510 的EMIF在DSP内核与外部存储部件之间提供了一个无缝接口。表3给出了EMIF适用的存储器类型及时间特性。对于每一种存储器类型,EMIF均支持8 位、16位和32位的读或写操作。在对存储器进行写操作时,EMIF控制字节使能信号(Byte Enable)BE3~BE0以使数据总线执行8位或16位的数据传送。在对存储器进行读的时候,32位总线宽度的所有位都被用到。
表3 EMIF存储器类型
类 型 存储器 EMIF时间特性 优 点
异步(Asynchronous) SRAM 可编程
可以方便灵活地与各同时序类型的存储器器件接口
ROM
FLASH
同步(Synchronous)
同步突发式SRAM(SBSRAM)
运行CPU时钟频率或CPU时钟频率的1/2
与高速存储器接口进可保证足够的吞吐量
同步DRAM(SDRAM) 同上
可与高速高密度的SDRAM接口
CPU对EMIF的初始化是通过外设总线控制器(Peripheral Bus Controller)来实现的。EMIF可对CPU取指令、CPU访问数据、片上的DMA控制器访问数据三组内部数据传送请求进行服务。
EMIF对不同请求的响应优先级是不同的,表4是EMIF对部分数据传送请求的优先级。
表4 EMIF服务的优先级
优先级 请 求 源
1(最高优先级) 外部(Exernal Hold)
2 紧急刷新(Urgent Refresh)
3 数据写决线E BUS
4 数据写总线F BUS
5 数据读决D BUS
6 数据读总线C BUS
5.2 DMA控制器
DMA (Direct Memory Access,数据直接存储)控制器可以使数据在存储器之间直接传送而无需经过CPU,这样可进一步提高系统的速度,DMA控制器控制着数据在内部存储器、外部存储器和外设之间的流入和流出。TMS320VC5510的DMA有6个通道,每个通道均工作在时分多路模式(Time Divesion Multiplexed fashion,TDM)。该DMA的主要功能如下:
●经初始化后,DMA的操作独立于CPU;
●6个通道可相互独立地进行数据传送;
●通道间有2组优先组结构,优先组可编程设置;
●数据可以以8位、16位和32位的宽度传送;
●数据传送可以被选定的事件所触发,这些事件包括缓冲串行口的接收和发送操作、定时器事件以及中断等;
●当数据传送完毕后,可以编程自动对通道设置寄存器重新装载而无需CPU对这些寄存器另外重表设置;
●最大数据传送率可达每时钟周期2个16位数据。
5.3 数字锁相环时钟发生器
TMS320VC5510的CPU内部集成了一个数字锁相环(Digital Phase-Locked Loop)时钟发生器,该时钟发生器可以对输入的时钟信号进行分频或倍频以产生系统所需要的频率。该时钟发生器有旁路和锁定两种工作模式。
●旁路模式(Bypass mode)
在旁路模式下,DSP芯片上 的数字锁相环被关闭,输出的时钟信号频率可以与输入时钟信号相同或是输入时钟信号的二分频或四分频。这样一来,系统的时钟频率被降低了,但同时也降低了系统的功耗。
●锁定模式(Lock mode)
在锁定模式下,数字锁相环被使能,时钟发生器提供一个与输入参考频率有关的锁相环合成频率。该合成频率由倍频系数和分频系数所决定。倍频系数的数值在 2~31之间;分频系数的数值可以是1、2、3或4。当锁定模式被初始化时,时钟发生器仍然在旁路模式工作一段时间,直到数字锁相环对输入频率实现锁定所再自动转换为锁定模式。在系统初使化时,时钟发生器被设置成旁路模式。
5.4 定时器
TMS320VC5510 内含2个16位的软件可编程定时器,该定时器可和一个4位的预定标器(前置分频器)配合使用,因此TMS320VC5510定时器的动态范围可达20位。在程序中应设置好定时器的工作模式、定时器长度及预定标器等数值后,定时器才开始工作。该定时器是一个减计数器,它可对CPU的时钟信号进行计数。此时,它还可以对外部脉冲信号进行计数。当计数器减到0时会产生下列情况之一:
(1)向CPU或DMA控制器发出中断信号。
(2)在TIN/TOU引脚输出一个脉冲信号。
如果在程序中对定时器控制寄存器进行相应地设置,定时器可以重新加载以连续计数。
5.5 缓冲串行口和I/O口
TMS320VC5510上的多通道缓冲串行口是一个高速全双工的串行口。与TMS320C54X的串行口很相似,该串行口可使DSP与系统中的其它器件进行通信,这些器件应用了系统中另外的DSP或编码解码器等。
另外,TMS320VC5510还提供一些通用的I/O口引脚。这些引脚不限于专用,它们能够提代用于各种目的的输入或输出信号,通用I/O口(General Purpose I/O,GPIO)引脚可通过IODIR和IODATA两个寄存器来设置。IODIR寄存器可决定每个通用I/O引脚是输入还是输出。IODATA寄存器可决定对每个引脚的数据读或写的状态。比如,当GPIO的某个引脚在IODIR寄存器中被设置成输入时,该引脚上的状态可以从IODATA寄存器的相应位读出;当GPIO的某个引脚在IODIR寄存器中被设置成输出时,IODATA寄存器中的相应位则可用来决定该GPIO引脚输出的状态。
6 结束语
基于最新TMS320C55X核的定点数字信号处理器TMS320VC5510具有比TMS320C54X更高的代码执行速率和更低的功耗。高度并行的结构和增强的能耗管理使得TMS320V5510具有更高的性能和更快的处理速度,这些优点将使TMS320VC5510在数字音乐播放器、移动电话和数字照机相等方面有着更广泛的应用。