|
2.4 TI浮点DSP芯片
2.4.1 TMS320C3X
TMS320C3X是TI的第三代产品,也是第一代浮点DSP芯片。TMS320C3X中目前具有TMS320C
30、TMS320C31和TMS320C32三种。TMS320C31是TMS320C30的简化和改进型,它在TMS320
C30的基础上去掉了一般用户不常用的一些资源,降低了成本,是一个性能价格比较高的
浮点处理器,在国内已得到了较广泛的应用。TMS320C32是TMS320C31的进一步简化和改
进。下面示出了三种芯片的比较。
特征 TMS320C30 TMS320C31
TMS320C32
数据/程序总线
主总线STRB:32位数据,24位地址扩展总线IOSTRB:32位数据,13位地
址 STRB:32位数据,24位地址 STRB0:8/16/32位 STRB1:
8/16/32位IOSTRB:32位
内部RAM 2K字 2K字 512字
串行I/O口 2个串行口 1个串行口 1个串行口
用户程序、数据ROM 4K字/16K字节 无 无
DMA控制器 单通道 单通道 双通道
程序和数据存储器宽度 32位 32位
程序16/32位可选数据8/16/32位可选
外部中断触发 电平触发 电平触发 电平/边沿可选
中断矢量表地址 固定 固定 用户可重定位
程序引导 无 用户可选 用户可选
TMS320C30的指令周期为50/60/74ns,TMS320C31的指令周期为33/40/50/60/74ns,TMS3
20C32的指令周期则为33/40/50ns。
2.4.1.1 TMS320C3X的硬件资源
TMS320C30的硬件资源相当丰富。其内部包含了2K×32位的快速RAM块。分开的程序总线
、数据总线和DMA总线使得取指、读写数据和DMA操作可并行进行,如CPU可以在一个周期
内完成下列操作: 在一个RAM块中存取两个数据值,进行一次外部取指,DMA装入到另一
个RAM块。64×32位的指令Cache用来存储经常使用的代码块,这可大大减少片外访问的
次数,从而提高程序运行速度。由于主总线的地址总线是24位,因此TMS320C30可以访问
多达16M的32位字的存储器空间,程序、数据和I/O空间都包含在TMS320C30这个16M字的
空间中。
TMS320C30有一个40/32位的浮点/整数乘法器,这个乘法器可以在单周期内完成24位整数
和32位浮点值的乘法,为了达到更高的性能,可以采用并行指令在单周期内完成一次乘
法和ALU操作。当乘法器进行浮点乘法时,输入是32位单精度浮点值,而输出则是40位的
扩展精度浮点数。整数乘法时,输入是24位,而输出则是32位。
TMS320C30的整数/浮点算术逻辑运算单元ALU可以进行单周期的32位整数、32位逻辑数和
40位的浮点数操作,ALU的运算结果是32位整数或40位浮点数。内部的桶形移位器可以在
单周期内进行高达32位的左移或右移。内部总线CPU1/CPU2和REG1/REG2可从存储器中取
两个操作数和从寄存器取两个操作数,这就使得对四个操作数进行乘和加/减可以在单周
期内完成。TMS320C30内有两个辅助寄存器算术单元(ARAU0和ARAU1),
它们可以在单周期内产生两个地址。ARAU
的操作是和乘法器及ALU的操作并行进行的。ARAU支持多种寻址方式。
TMS320C30提供28个寄存器,这些寄存器可以由乘法器和ALU操作,可以用作通用的寄存
器。但是,它们也有一些特殊的功能,如8个扩展精度的寄存器(R0~R7)可当累加器使
用,特别适合用于存放扩展精度的浮点结果。8个辅助寄存器(AR0~AR7)支持一系列间
接寻址方式,并且可以用作通用的32位整数和逻辑寄存器。其他寄存器提供一些系统功
能,如寻址、堆栈管理、处理器状态、中断和块重复等。
TMS320C30的外设是通过存储器映射的寄存器对外设总线进行控制的,外设总线由32位数
据总线和24位地址总线组成,允许与外设直接通信。TMS320C30的外设包括两个可支持8
/16/24/32位数据交换的串行口和两个32位定时器。串行口的时钟可以由内部产生也可由
外部提供,串行口的引脚可以配置为通用的I/O引脚,特殊的握手方式可保证TMS320C30
与串行口的同步。定时器是通用的32位定时器或事件计数器,具有两种信号方式,可由
内部或外部提供时钟,每个定时器对应有一个I/O引脚,可作为定时器的输入时钟或输出
时钟,也可配置为通用的I/O引脚。
片内的DMA功能使得CPU与I/O操作可同时进行。DMA控制器可以在存储器的任何地址进行
读写操作而不干扰CPU的操作,因此TMS320C30可与外部的慢速存储器或外设接口而不降
低CPU的吞吐量。
两个通用的外部引脚(XF0,XF1)可由软件设置为输入或输出,这两个引脚也用作TMS3
20C30的互锁操作,用于多处理器之间的通信。
除了主总线之外,TMS320C30还有一条扩展总线。扩展总线的数据线为24位,地址线为1
3位,其操作可与主总线操作同时进行,也可独立于主总线。与主总线相比,扩展总线上
的I/O口的读写周期为2个H1周期,即是主总线的2倍。扩展总线通常用于I/O操作,如A/
D、D/A等。TMS320C30内部有4K字的ROM,在微计算机方式下,程序由内部开始运行。
TMS320C31是TMS320C30的简化和改进型,它去掉了扩展总线、一个串行口和内部的4K字
ROM,增加了程序的引导功能。当MCBL/MP\引脚为高电平时,工作于微计算机自引导方式
,在这种方式下,TMS320C31可从三个特定的地址装入程序(BOOT1,BOOT2,BOOT3),
也可从串行口装入程序。与EPROM接口时,用户可用软件设定等待周期个数,当然也可用
硬件来产生等待周期,可设定是按字节(8位)、半字(16位)或字(32位)装入,应用
灵活。从串行口装入时,采用固定的32位突发方式。装入方式设置是通过复位之后设
四个外部中断之一来实现。
TMS320C32是TMS320C31的简化和改进型。简化主要是将内部的RAM由2K字减少为512字,
以降低成本。改进之处包括:外部存储器宽度可变,中断矢量表可重定位,外部中断可
由软件选择是电平触发还是边沿触发,DMA控制器增加了一个通道,此外,还增加了两种
节电运行方式。TMS320C3X均提供HOLD功能和JTAG仿真功能。
2.4.1.2 TMS320C3X的软件资源
1.丰富的指令系统
TMS320C3X的汇编语言指令集特别适合于数字信号处理。所有指令占一个机器字长,大部
分指令是单周器的。指令集共有113条指令,可以分为六类: 数据传送类、二操作数算术
/逻辑类、三操作数算术/逻辑类、程序控制类、互锁操作类及并行操作类。12条数据传
送指令可从存储器中读一个字装入寄存器,将一个字从寄存器中存入存储器中及进行堆
栈操作。二操作数指令有35条,提供整数、浮点、逻辑运算及多精度算术操作。17条三
操作数指令可以在一个指令周期内完成具有三个操作数的运算,其中两个是源操作数,
另一个是目的操作数。程序控制指令共16条,它们影响程序的流向,其中有块重复指令
RPTB和单指令重复指令RPTS。除了有标准跳转指令外,还有延迟跳转指令,有些指令具
有条件运算功能。5条互锁操作指令主要用来进行多处理器之间的通信。剩下的28条指令
都是并行操作指令,每条并行指令由两条指令用符号"||"连接,并行操作指令可使"||"
前后的两条指令并行完成。需要注意的是,并不是任意两条指令都可构成并行指令。
2.灵活的程序控制
TMS320C3X提供相当灵活的程序流控制。软件的程序控制包括重复、跳转、调用、陷阱及
返回等。
TMS320C3X重复方式可以实现无开销循环。块重复指令RPTB可以使一块代码重复执行指定
的次数,而单指令重复指令RPTS使一条指令重复执行指定的次数,由于RPTS取指次数只
有一次,因此减少了总线冲突的机会。这里需要特别注意的是,RPTS指令禁止中断,而
RPTB无此禁忌。因此在需要中断的场合,建议采用RPTB指令代替RPTS指令。
TMS320C3X提供两种类型的跳转:标准跳转和延迟跳转。标准跳转首先将流水线清空然后
执行跳转,这可保证程序计数器的正确管理,但却使跳转指令需4个周期才能执行完毕。
延迟跳转则相反,它并不将流水线清空,而是保证在程序跳转之前执行它下面的3条指令
,这样使得跳转指令本身仅需1个指令周期。当然有些指令(如CALL、RPTB等)不能出现
在延迟跳转指令下面的3条指令。延迟跳转指令在它下面3条指令完成前禁止中断。
互锁操作可用来实现多个TMS320C3X之间的通信。通过采用外部信号(XF0,XF1),互锁
操作指令提供强有力的同步机制,可用来实现忙等待循环、两个TMS320C3X之间的同步(
无需额外的硬件支撑)和多个计数器控制等。
3.流水线操作
流水线操作是TMS320C3X具有高性能的特性之一。5个功能单元控制TMS320C3X的操作:取
指(F)、译码(D)、读操作数(R)、执行(E)和DMA。流水线操作就是一个基本指令
的取指、译码、读操作数和执行的并行操作。
周期 F D R E
m-3 W
m-2 X W
m-1 Y X W
m Z Y X W ←完全重叠
m+1 Z Y X
m+2 Z Y
m+3 Z
注:W、X、Y、Z代表指令;F、D、R、E分别代表取指、译码、读操作数和执行。
图中在m周期,流水线完全重叠,4个单元的操作同时进行。5个功能单元的优先级从高到
低依次是E、R、D、F、DMA。当一条指令的处理已经准备好到流水线的下一级,但那一级
还没有准备好接收新的输入时,就出现所谓的流水线冲突。在这种情况下,低优先级的
单元处于等待状态直到高优先级的单元完成它的当前操作。尽管DMA的优先级最低,但由
于DMA控制器具有自己的数据和地址总线,因此,通过合适的数据结构,DMA与CPU的冲突
可以减少甚至消除。
流水线冲突可以分为下列三大类:跳转冲突、寄存器冲突和存储器冲突。这三类冲突都
可以采取相应的一些手段予以解决,如由于标准跳转引起的跳转冲突可以采用延迟跳转
的方法来克服。
4.寻址方式多样
TMS320C3X支持5类寻址方式,在这些类中又可采用6种寻址类型。5类寻址方式是:①通
用寻址方式;②三操作数寻址方式;③并行寻址方式;④长立即数寻址方式;⑤条件跳
转寻址方式。6种寻址类型是:①寄存器寻址;②直接寻址;③间接寻址;④短立即数寻
址;⑤长立即数寻址;⑥相对寻址。此外,TMS320C30还有两种数字信号处理中非常有用
的寻址方式,一种是圆周寻址方式,主要用于卷积和相关等运算中存储器循环缓冲;另一
种寻址方式是比特反转寻址,主要用于FFT运算。
2.4.2 TMS320C4X
TMS320C4X系列浮点处理器是专门为实现并行处理和满足其他一些实时应用的需求而设计
的。其主要性能包括275 MOPS的惊人速度和320Mbyte/s的吞吐量。
2.4.2.1 TMS320C40的主要特征
(1) 具有6个用于处理器间高速通信的通信口。每个口的最大数据吞吐量可达20Mbyte/s
的异步传输速率。处理器之间可直接对通,应用方便、灵活;
(2) 6个DMA通道实现了I/O操作与CPU操作的并行化。每个DMA通道都具备自初始化的能力
,无需CPU来完成初始化的工作,从而最大限度地保证了CPU的性能,数据可以在处理器
内存映像的任意范围内传递,具有高度的灵活性;
(3) CPU的处理能力达275
MOPS,数据吞吐量为320Mbyte/s。由于高度的并行化,TMS32
0C40 的CPU在每个周期内可以完成11次操作。指令周期的时间为40ns和50ns。40/32位的
单周期浮点/整数乘法为大运算量的算法提供了高性能。单周期IEEE浮点格式转换为IEE
E兼容的处理器提供了一个有效的界面。硬件支持除法和平方根倒数运算。具有字节和半
字长控制的能力,以实现快速数据压缩和解压。源代码与TMS320C3X兼容,可移植性好。
支持线性、循环和比特反转的寻址方式。单周期跳转、调用和返回,以实现快速程序控
制。0~31bit的单周期桶形循环左右移位;
(4) 两条分开的外部数据、地址总线支持共享存储器系统和高速数据速率、单周期传输
。端口数据传输速率高达100Mbyte/s。16G字连续的程序/数据/外设地址空间为系统设计
带来最大的灵活性。状态管脚标明存储器访问类型,以在共享存储器系统中实现快速、
智能化的总线仲裁。分离的地址、数据和控制使能管脚可实现高速总线仲裁。4组存储器
控制信号支持硬件上不同速率的存储器,使用者可以灵活有效地利用各种高、低速率存
储器;
(5) 片内分析模块支持高效的并行处理调试。为程序、数据和DMA访问提供了分离的断点
比较器,为快速调试和开发提供了片内硬中断的能力。为硬件追踪设置了非连续栈,可
方便快速地调试、开发。具有事件计数器。为标准系统连接留有JTAG界面;
(6) 片内程序高速缓冲存储器(Cache)和双向存取/单周期RAM提高了存储器访问的性能
。片内存储器包括:128字的指令高速缓冲存储器;2K字的单周期双向存取程序/数据RA
M;ROM中的引导程序支持从8/16/32位中的任一种存储器通过任一通信端口装入程序;
(7) 分开的内部程序、数据和DMA总线使程序和数据的I/O操作高度并行化,最大限度地
保证了CPU的性能。
2.4.2.2 TMS320C40的结构
TMS320C40的高性能是通过其高精度、宽动态范围的浮点处理单元,大容量的片内存储器
,高度的并行化,以及6个DMA协处理器通道体现出来的。
1.CPU
TMS320C40有一个基于寄存器的CPU,其组成部分如下:
(1) 浮点/整数乘法器
通过高度的并行化措施,TMS320C40可以在一个40ns的指令周期内对32位的整型数或40位
的浮点数完成一次乘法操作。若输入为40位的浮点数,则输出也是40位的浮点数;若输
入为32位的整型数,则乘积为64位,输出既可以是32个高有效位,也可以是32个低有
位。
(2) 算术逻辑单元(ALU)
ALU对32位的整型数、32位的逻辑数、40位的浮点数执行单周期操作,包括单周期的整型
和浮点转换。桶形移位寄存器用来完成单周期的32位左右移位。
内部总线CPU1/CPU2和REG1/REG2分别连接存储器和内部寄存器,这样就允许在单周期内
对4个整型或浮点数并行进行加/减和乘法运算。
(3) 辅助寄存器运算单元(ARAU)
2个辅助寄存器运算单元(ARAU0和ARAU1)可在单周期内产生2个地址。ARAU与乘法器及
ALU并行操作。它们支持带有偏移的寻址、变址寄存器(IR0和IR1)寻址、循环寻址和比
特反转寻址。
(4) CPU主寄存器组
TMS320C40具有32个主寄存器,其中包括12个40位的扩展精度寄存器(R0~R11),8个3
2位的辅助寄存器(AR0~AR7),1个32位的数据页指针(DP),32位变址寄存器(IR0和
IR1),32位块长寄存器(BK),32位的系统栈指针(SP),状态寄存器(ST),DMA中
断允许寄存器(DIE),CPU内部中断允许寄存器(IIE),I/O标志寄存器,32位的重复
计数器(RC)及32位的重复起始地址寄存器(RS)和重复终止地址寄存器(RE)。程序
计数器(PC)是一个32位寄存器,装有下一条要提取指令的地址。虽然PC不是CPU寄存器
组的成员,但用修改程序流的指令可对它进行修改。
(5) CPU扩展寄存器组
扩展寄存器组包括2个特殊的指针寄存器:IVTP指向中断矢量表,TVTP指向陷阱矢量表。
2.存储器组织
TMS320C40总的存储器空间可达4G×32位字。程序存储器(片内RAM或ROM和外部存储器)
、定时器、通信口和DMA通道等都包含在这一空间内。这样就使得系数、表、程序代码或
数据既可存储在RAM中,亦可存储在ROM中,从而使存储器的利用率达到最高,存储器空
间可按要求分配地址。
通过控制一个外部管脚(ROMEN),存储器起始的1M字节的地址空间(0000
0000h到000F
FFFFh)既可以映射到局部地址总线的一部分,也可以在使用装入程序时指向片内ROM
。
(1) RAM、ROM和高速缓冲存储器
TMS320C40的片内包含2个4K字节(1K×32位)的RAM区。片内ROM区保留用作引导程序区
。每一个RAM和ROM区都支持单周期内两次存取。分开的程序总线、数据总线和DMA总线,
使得指令的读取、数据的读写及DMA操作可以并行进行。例如,在一个周期内CPU可在一
个RAM块上存取2个数据,执行一次外部指令的读取,同时DMA可对另一个RAM块作直接存
储器存取。
一个128×32位的指令高速缓冲存储器用来存储经常重复的代码段,从而大大地减少了必
要的片外存取次数。这样就使代码能存储在较慢的、价格较低的片外存储器。外部总线
还可被释放,以供DMA、外部存储器操作或系统中的其他设备使用。
(2) 内部总线操作
TMS320C40的高性能在很大程度上归功于其内部总线结构及由之带来的并行性。分开的程
序总线、数据总线和DMA总线使指令的读取、数据的存取和DMA操作可以并行进行。这些
总线连结C40支持的所有物理空间。
程序计数器(PC)与32位的程序地址总线相连,指令寄存器(IR)与32位的程序数据总
线相连,在每一个机器周期内可以读取一个指令字。
32位的数据地址总线和32位的数据总线在每一个机器周期中支持两次数据的存储器操作
。数据总线通过CPU1和CPU2总线传送数据到CPU。CPU1和CPU2总线在每一机器周期可传送
2个数据存储器操作数到乘法器、ALU及寄存器组。在CPU内部还有2条寄存器总线REG1和
REG2,它们在每一机器周期内,可从寄存器组传送2个数据到乘法器。
DMA控制器由32位地址总线和32位数据总线支持。这些总线使DMA能与数据及程序总线并
行地执行存储器操作。
(3) 外部总线操作
TMS320C40具有2个外部接口:全局总线和局部总线。它们都包含1个32位的数据总线、1
个31位的地址总线和2组控制信号。这些总线都可用来对外部程序/数据存储器或I/O进行
寻址。这些总线还有一个外部 信号,用于等待状态的产生。可在软件控制下插入附加的
等待状态。
(4) 外设
TMS320C40的外设是通过存储器映射寄存器,由一专用的外设总线控制。这一外设总线可
以直接与外部设备进行通信。TMS320C40的外设包括2个定时器和2个串行口。
(5) 直接存储器访问(DMA)
6个通道的片内DMA控制器可以读写存储器中的任意单元,而不必涉及CPU的操作。因此T
MS320C40可以与相对较慢的外部存储器和外设接口而不降低CPU的处理能力。DMA控制器
有自己的地址发生器、源地址和目的地址寄存器及传输计数器。专用的DMA地址和数据总
线使CPU与DMA控制器之间的冲突降到了最低的程度。一个DMA操作包括对存储器做一块或
单个字的存取操作。DMA协处理器的一个关键特性就是它的每一个通道在进行一次数据传
输之前都有自动重新初始化的功能。
总而言之,由于有一个功能强大的CPU、大规模的存储器以及有足够宽的总线来支持其速
度,TMS320C40是一个功能强大的DSP芯片。
3.CPU寄存器、存储器和高速缓冲存储器
CPU主寄存器组包括32个寄存器,用来存放乘法器和ALU的操作数。这个寄存器组包括辅
助寄存器、扩展精度寄存器和变址寄存器等。这些寄存器支持寻址、浮点/整型操作、栈
操作、处理器状态记录、块重复、分支跳转和中断等功能。
CPU扩展寄存器组包括中断矢量表指针(IVTP)和陷阱矢量表(TVTP)。
TMS320C40能够访问的最大存储器范围为4G个32位字(16G字节)的程序、数据和I/O空间
。2个片内RAM块均为1K×32位。片内ROM块包含有自引导程序,每块都支持单周期内2次
访问操作。
1个128×32位的指令高速缓存可以装入指令代码中重复率高的部分。高速缓存大大减少
了片外操作的次数,这样就允许将指令代码存放在片外的低速、廉价的存储器中而又不
降低系统的性能。同时由于高速缓存减少了总线上程序指令的读取次数,使得在同一物
理空间内进行的数据存取速度大大加快。CPU状态寄存器中的3个比特控制着高速缓冲存
储器的清除、允许和冻结。
(1) CPU寄存器
TMS320C40提供了32个CPU主寄存器(不包括程序计数器PC)和2个扩展寄存器。
主寄存器都可以用作32位的通用寄存器,存放乘法器及ALU的操作数。除此之外,还有一
些更适合于这些寄存器的特殊功能。例如12个扩展精度特别适用于存放扩展精度的浮点
运算结果;8个辅助寄存器支持各种间接寻址方式;其余寄存器提供寻址、堆栈管理、处
理器状态、中断和块重复等系统功能。
(2) 存储器分配
TMS320C40总的存储器空间为4G字。有两种地址编排方式,其区别仅在前1M字之内,由
部引脚ROMEN的值控制:ROMEN=1时,0000 0000h~0000
0FFFh为一个可访问的片内ROM区
(保留用作引导程序),0000 01FFh~000F
FFFFh保留;ROMEN=0时,片内ROM不在C40的
存储器空间中,0000 0000h~000F FFFFh被映射到局部总线上。
(3) 指令高速缓冲存储器(Cache)
128×32位的指令高速缓存不但减少了片外取指的次数,同时也将外部总线从程序取指中
解脱出来,从而可以被DMA或其他系统部件所采用。
Cache能以完全自动的方式工作而无需用户的干预。它使用的是LRU(Least
recently used,最近最少使用)算法。
4.数据格式与浮点操作
在TMS320C40的体系结构中,数据有3种基本类型:整型、无符号整型和浮点型。TMS320
C40对有符号和无符号整型支持短格式和单精度格式,而对于浮点数则支持短格式、单精
度和扩展精度3种格式。
浮点操作具有迅速、简单、正确和精度高的特点。特别是TMS320C40可以以整型运算的速
度来执行浮点操作,同时还可以避免整型运算中的溢出等问题。
5.寻址
TMS320C40有以下5种寻址类型:
(1) 寄存器寻址: 在一个CPU的寄存器中包含有操作数;
(2) 直接寻址:数据地址由数据页指针(DP)的16个低有效位和指令字中的16个低有效
比特组成;
(3) 间接寻址:间接寻址是通过一个辅助寄存器和变址寄存器的内容来操作在存储器中
的地址。地址运算是由辅助寄存器运算单元来完成的,并且是无符号的。(辅助寄存器
和变址寄存器的所有32位都在间接寻址中用到);
(4) 立即寻址:操作数是指令字中的16个低有效位构成的1个16位的立即数;
(5) PC相对寻址:PC相对寻址用于分支转移。它用指令字中的16或24个低有效比特来替
换程序计数器(PC)的当前值。
TMS320C40的寻址方式包括:通用寻址方式、三操作数寻址方式、并行寻址方式、条件转
移寻址方式、圆周寻址方式和比特反转寻址方式。
2.4.3 TMS320C67X
这是TI公司继定点DSP芯片TMS320C62X系列后开发的一种新型浮点DSP芯片。该芯片的内
部结构在TMS320C62X的基础上加以改进,内部同样集成了多个功能单元,可同时执行8条
指令,其运算能力可达1G FLOPS。除了具有TMS320C62X系列的特点外,其主要特点还有
:
(1) 运行速度快。指令周期为6ns,峰值运算能力为1336
MIPS,对于单精度运算可达1G FLOPS,对于双精度运算可达250M FLOPS;
(2) 硬件支持IEEE格式的32 比特 单精度与64比特双精度浮点操作;
(3) 集成了32×32 比特的乘法器,其结果可为32或64比特;
(4) TMS320C67X的指令集在TMS320C62X的指令集基础上增加了浮点执行能力,可以看作
是TMS320C62X指令集的超集。TMS320C62X指令能在TMS320C67X上运行,而无需任何改变
。
与TMS320C62X系列芯片一样,由于其出色的运算能力、高效的指令集、智能外设、大容
量的片内存储器和大范围的寻址能力,这个系列的芯片适合于对运算能力和存储量有高
要求的应用场合。
|
|