TI的浮点DSP

2019-07-23 16:00发布

     TMS320C3XTI的第三代产品,也是第一代浮点DSP芯片。TMS320C3X中目前具有TMS320C30TMS320C31TMS320C32三种。TMS320C31TMS320C30的简化和改进型,它在TMS320C30的基础上去掉了一般用户不常用的一些资源,降低了成本,是一个性能价格比较高的浮点处理器,在国内已得到了较广泛的应用。TMS320C32TMS320C31的进一步简化和改进。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
9条回答
comeon201208
2019-07-23 20:28
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)可由软件设置为输入或输出,这两个引脚也用作TMS320C30的互锁操作,用于多处理器之间的通信。
除了主总线之外,TMS320C30还有一条扩展总线。扩展总线的数据线为24位,地址线为13位,其操作可与主总线操作同时进行,也可独立于主总线。与主总线相比,扩展总线上的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条指令都是并行操作指令,每条并行指令由两条指令用符号“||”连接,并行操作指令可使“||”前后的两条指令并行完成。需要注意的是,并不是任意两条指令都可构成并行指令。

一周热门 更多>