首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

TI芯片选用指南

TI芯片选用指南

TMS320C2000

结构特点

  • 16-bit定点DSP
  • 哈佛结构支持两个分开的总线结构
  • 双访问RAM允许在同一个周期内读或写RAM两次
  • 工作于3.3V

综合介绍

TI的TMS320C2000 DSP是基于320C2xLP核。C2xLP核具有4级流水,工作在40MHz。具有JTAG仿真模块。

C2xLP有一个中心算术逻辑单元(CALU),及32-bit的累加器(Acc)。Acc也是CALU的一个输入。Acc的其他输入包括16316-bit的乘法器通过定标移位器,以及输入数据定标移位器。软件可以通过进位位旋转Acc的内容,来实施位操作和测试。

为了实现小数的算术运算和验证小数的乘积,C2xLP的乘积寄存器的输出通过乘积移位器,以抑制运算中产生的多出来的bit。该乘积定标移位器允许作128个乘积累加而不会产生溢出。基本的乘积累加(MAC)周期,包括将一个数据存储器的值乘以一个程序存储器的值,并将结果加给累加器。当C2000循环执行MAC,则程序计数器自动增量,并将程序总线释放给第二个操作数,从而达到单周期执行MAC。

C2xLP可以访问64000个16-bit的I/O口。C2000的外设,诸如串口、软件等待状态发生器等都映射为数据或I/O空间。用户程序必须使用其他的I/O地址来访问映射在I/O空间的片外外设。C2000系列中的多数芯片可以产生0-7个等待状态。

C2000系列由C20x和C24x系列组成。C20x的目标是低性能的电信设备,而C24x的目标是数字化的马达控制。

C24x系列的芯片具有事件管理器,以便支持马达控制。该事件管理器具有三个加/减定时器和九个比较器,可以和波形产生逻辑配合产生12PWM的输出。支持同步的和异步的PWM产生。它还支持一个空间向量PWM状态机,用开关功率晶体管来实现,以延长晶体管的寿命和降低功耗。一个关机段产生单元也有助于保护功率晶体管。此外,事件管理器还集成了四个采集输入,其中的两个用于光编码器正交脉冲的直接输入。

C24x系列的芯片还集成有10-bit的A/D变换器,在500ns的时间内对模拟信号作变换。另外还有8个或16个复用输入通道。有些新的C24x系列的芯片还有自动排序的能力,按顺序作16个变换,一个独立的采样/保持(S/H)预定标器,通过支持不同的输入阻抗,给用户以极大的灵活性。有些C24x系列的芯片有8K-32K字的闪烁存储器(flash)。

寻址模式

立即数寻址、分页的存储器直接寻址(指令里的7-bit和数据页指针的9-bit形成数据存储器的地址)、寄存器间接寻址(使用8个辅助寄存器中的一个)、辅助寄存器自动增量或减量寻址。没有循环缓冲。

特殊指令

MAC和数据移动指令(MACD)增加了将片内RAM的数据块移向MAC单元。当CPU使用输入的数据值时,CPU将该数据值移至下一个存储器单元。MACD也是使用循环缓冲器的一个替代方法,对于卷积和横向滤波器是很有用的。C2000可以作单指令循环、乘法并累加前一个积、乘法并减去前一个积、累加前一个积并移动数据、多条件转移和调用、存长立即数到数据存储器、向左或向右旋转累加器、数据块移动。

开发支持

TI的Code Composer4.10是一个集成的开发环境,支持编辑、建立、调试、分析和项目管理。这个价值为1995美圆的开发环境包括ANSI C编译器、汇编器、连接器、软仿真器、实时分析器,数据是可视化的。TI的仿真器支持JTAG非插入式的边界扫描仿真。该公司也分别提供C编译器、汇编器、连接器、软仿真器、实时分析器和应用程序库。第三方可以提供评估模块、仿真器、以及应用算法。

TMS320C5000

结构特点

16-bit定点DSP
C55x有双MAC单元;C54x有单MAC单元
C55的指令长度可变,且没有排队的限制
C55x有12组总线;C54x有8组总线
工作于0.9V和300MHz
综合介绍


C5000是16-bit定点DSP系列,包括旧有的C5x、当前主流的C54x和最新的C55x。

C55x和C54x源代码兼容,而C5x和C2x源代码兼容。C54x关注于低功耗,而C55x则将低功耗提到一个新水平:300MHz的C55x和120MHz的C54x相比,性能提高5倍,而功耗则降到六分之一。尽管C5x还在全线生产,但公司已经将新设计转向C54x 和C55x。C54x 和C55x采用改进的哈佛结构。

C55x 具有12组独立的总线,而C54x则有8组。它们都有一组程序总线和相应的程序地址总线。C54x总线的宽度为16-bit,而C55x总线的宽度为32-bit。C55x有三组数据读总线和两组数据写总线,而C54x有两组数据读总线和一组数据写总线。每组数据总线都有其相应的地址总线。C55x的数据地址总线的宽度为24-bit,而C54x的数据地址总线的宽度为16-bit。

C54x使用两个辅助寄存器算术单元,在每个周期内产生一个或两个数据存储器地址。这四组内部总线和两个地址发生器使其可以进行多操作数运算。

C55x的地址-数据流单元(ADFU)包含了专门的硬件来管理五组数据总线。该ADFU也可以作为通用的16-bit ALU,用于简单的算术运算。该ALU从指令缓冲单元(IU)接收立即数,和存储器、ADFU寄存器、数据计算单元(DCU)寄存器、程序流单元(PFU)寄存器作双向通信。无论是ALU,还是三个地址寄存器ALU(ARAU)中的一个,都可以修改作间接寻址的九个地址寄存器。这三个ARAU为C55x的三组数据读总线提供独立的地址。这种并行性保证了在每个CPU周期内DCU去读两个16-bit的操作数和一个16-bit的系数。

C55x的DCU包含了两个MAC单元,在单周期内作两个17217-bit的MAC运算。它还包含了一个40-bit的ALU和四个40-bit的累加器寄存器、一个桶型移位器、以及专门的Viterbi算法硬件。每个MAC单元包含一个乘法器和带32-或40-bit饱和逻辑的加法器。三个数据读总线将两个数据流和一个公共系数流送给两个MAC单元。用户可以用ALU作32-bit的运算,或分开作两个16-bit的运算。除开接受从DCU的40-bit Acc寄存器来的输入外,ALU还从IU接受立即数,并和存储器、ADFU寄存器、PFU寄存器作双向通信。

C54x是单17217-bit MAC机器,有一个40-bit的加法器、两个40-bit的Acc和一个分开的40-bit的ALU。与C55x相类似,C54x的ALU也可以作成两个16-bit的配置,完成两个单周期运算。乘法器输出处的40-bit的加法器允许作非流水的MAC运算,以及并行的两个加法和乘法。单周期归一化和指数编码支持浮点数运算。

两个系列的结构都支持一个桶型移位器,将40-bit的Acc的值左移或右移最多达31bit。该桶型移位器将移位后的值送给DCU的ALU,以便作进一步的运算。指令集中关于二操作数、三操作数和32-bit操作数的指令,支持结构的并行性。八个可以独立寻址的辅助寄存器和软件堆栈提高了C编译器的效率。

C55x可以执行可变长度的指令,这和C54x有显著的不同。C54x的指令长度为固定的16-bit,而C55x的指令长度则从8到48 bit。C55x的IU缓存64 byte的代码,且有一个解码逻辑来确认可变长度指令中各指令的区别。局部循环指令使用指令缓冲队列来循环执行代码块。指令缓冲队列还可以在执行条件程序流控制指令的条件测试时,推测性地提取指令。指令解码器按排列顺序对指令解码,而不是执行动态时序,从而可以在预定的时间得到结果。

C55x的PFU跟踪程序的执行点,并为多达16Mbyte的程序存储器产生24-bit的地址。该单元的硬件,可用于循环、灵活性转移、条件执行、以及流水保护。单独的程序计数器可以保证从子程序或中断服务子程序快速返回。该PFU还包括管理指令流水和四个CPU状态寄存器的逻辑。它以硬件方式可以提供四层块循环嵌套。其硬件还支持条件循环。PFU处理流水控制冒险,并对读后写及写后读提供保护。当在指令流中这种冒险发生时,流水保护逻辑就插入一些周期,保证程序的正确执行。集成的软件等待状态发生器使用户可以使用较慢的外部存储器。

该系列的所有DSP都支持片内双访问RAM(DARAM),用户可以将其配置为程序存储器或数据存储器。C55x还有扩展的同步突发性RAM、同步DRAM和异步SRAM及DRAM。片内的锁相环(PLL)允许用户抑制时钟,但C55x核还可以激活与自动管理片内外设和存储器的功耗。当程序不再访问片内存储器时,它们就会被切换到低功率模式。处理器对片内外设也提供类似的控制。

C55x还设置了用户可控的低功率IDLE域,包括CPU、DMA、外设、外部存储器接口、指令队列、以及时钟发生电路。

寻址模式



C54x支持单数据存储器操作数寻址和32-bit操作数寻址,还使用并行指令支持双数据存储器操作数寻址。它也提供立即数寻址、存储器映射寻址、循环寻址和位倒序寻址。

在C54x的基础上,C55x还支持绝对值寻址、寄存器间接寻址、直接寻址,即位移模式。C55x的ADFU包括专门的寄存器,支持使用间接寻址指令的循环寻址。可以同时使用五个独立的循环缓冲器和三个独立的缓冲器长度。这些循环缓冲器没有地址排队的限制。C54x支持两个任意长度的循环缓冲器。

特殊指令

C54x有专门功能指令,如FIR滤波器、单指令或块指令循环、八个并行指令(如并行存储或乘加)、乘法累加和减(十个乘法指令)、八个双操作数存储器搬移。C55x还有专门的指令,充分利用增加的功能单元和并行能力的优点。用户定义的并行机制,允许将执行两个操作的指令加以组合。



开发支持



eXpressDSP软件技术包括DSP集成开发工具:可升级的实时软件基础、可重复使用的应用软件接口标准、以及不断增加的第三方的软件模块。Code Composer Studio是一个集成的DSP开发工具套件,包括C5000的C编译器、DSP/BIOS、实时数据交换技术等。
TMS320C6000
结构特点

第一块C64x可以达到750MHz
超长指令字(VLIW)结构具有与RISC类似的特点
C编译器与结构结合紧密
8个功能块提高了并行性
综合介绍



TI的TMS320C6000是基于超长指令字(VLIW)结构的通用DSP系列。该结构包括定点的C62x、浮点的C67x和新的C64x。

C64x和C62x代码兼容,但结构有显著的加强,其初期的工作频率可达750MHz。C67x在C62x八个功能块中的六个上增加了浮点功能,因此其指令集是不同的。

C6000没有专门的MAC单元,而是使用分开的乘法和加法指令来实现MAC操作。尽管该操作需要两个指令周期,但其流水的效果仍然是单周期执行。这种结构包含两个数据通道,以便和各有四个功能单元的两组相匹配。

C62x和C64x包含两个乘法单元(M)、六个32-bit的算术单元、40-bit的ALU和40-bit的桶型移位器。C64x的M单元每个时钟周期执行两个16316-bit的乘法,而C62x则只能执行一个乘法。此外,C64x的每个M单元可以在每个周期内作四个838-bit的乘法。M单元的位计数和旋转硬件,可以支持bit水平的算法。

C64x的其他单元各有其强大的功能。例如,逻辑单元(L)可以作byte移位和四个8-bit的绝对值减法。该绝对值差指令对于运动估计算法是很有好处的。M单元和S单元都具有双向可变bit的移位功能。C64x除S单元和L单元外,D单元也可以执行32-bit的逻辑指令。L单元和D单元可以装入5-bit的常数,而S单元可以装入16-bit的常数。C64x的每个功能单元组都各有其32个32-bit的寄存器组,而在C62x中,每个功能单元组都各只有16个32-bit的寄存器组。每个程序可以将通用寄存器用于数据、数据地址指针,或条件代码。

在所有的C6000器件中,用户可以将寄存器A4-A7及B4-B7用于循环寻址。程序可以使用任何寄存器作为循环计数器,从而将标准的条件寄存器释放作他用。在C64x中,两个功能单元组中的任何一个都可以使用另一个的寄存器组。而在C62x中,功能单元组是通过一组数据总线来执行该过程的。

在C62x中,除两个D单元外的所有功能单元都有访问另一个功能单元组的数据交叉通道。在C64x中,允许每个功能单元组中的多个单元通过数据交叉通道,同时读同一个交叉通道信源。也就是说,一个功能单元组中的一个、多个、乃至全部单元,可以在一个VLIW执行包中使用交叉通道的操作数。而在C62x中,每个数据通道、每个执行指令包,只有一个功能单元可以访问对方寄存器组的操作数。

C62x的寄存器组打包16-至40-bit的定点数和64-bit的浮点数。用户可以将多于32-bit的值存储在寄存器对中。C64x的寄存器支持C62x的所有数据类型,以及打包的8-bit类型和64-bit定点数。打包的数据类型存储四个8-bit或两个16-bit的值于一个32-bit寄存器中,将四个16-bit的值存于一个64-bit的寄存器对中。

C64x的每个乘法器可能返回多达64-bit的结果,因此,从乘法器到寄存器组多了一个写口。

C6000系列支持没有分开的X-和Y-存储器空间。它们提供的实际上是单一的64-或32-bit数据通道的数据存储器,用于从存储器到寄存器组装入数据。另外的两个32-bit通道(C64x则是64-bit),则用于将数据从寄存器存储到存储器。一组32-bit的地址总线支持这些数据通道。

C64x可以使用非排队的存取方式,访问按byte边界的字或双字。但C62x则要求按32-或64-bit边界排队。一组32-bit的地址总线对程序存储器寻址,但一个数据通道则是256-bit宽。这个宽度允许C62x在每个周期提取,但不一定是执行,八个32-bit的指令。TI称这种方式为取包。C62x的结构不允许跨过取包边界去取包,其结果是编译产生NOP指令来铺垫取包。

C64x的结构则在指令分配单元里解决了这个问题,取消了执行包边界的限制,从而也就取消了填充的NOP指令。CPU可以在每个周期内执行1-8条指令,但数据的独立性、指令的反应时间、以及资源的冲突对性能的发挥有所限制。多包的执行允许充分的并行、串行和并/串行的组合。因此,要求八个串行指令和八个并行指令具有同样的长度。从而使编译器和汇编器的优化起着重要的作用。

编程工具用指令的最低位将指令包中的指令连接起来。如果该位置位,则指令并行执行。汇编优化器作指令的独立性检查和实施并行。从而保证代码按照编程的要求,在独立的功能块中运行,不再需要硬件来作独立性检查。

C6211和C6711是业界首先具有片内cache存储器L1和L2的DSP。C6211有两层cache,一层是4Kbyte的程序和数据cache,第二层cache是统一的64Kbyte的数据和指令RAM。C6211还具备16个通道的DMA控制器,各自进行独立的传输。

C6202、C6203和C6204具有32-bit的扩展总线,作为外部存储器的接口(EMIF),取代16-bit的主机接口。第二组用于I/O的总线降低了EMIF的负担,提高了数据的通过率。EMIF和扩展总线是相互独立的,允许CPU并发地访问各口。

寻址模式



C6000可以作线性寻址和循环寻址。但和其他具有专门的地址发生单元不同,C6000使用其一个或多个功能单元来计算地址。

特殊指令



所有的C6000处理器条件执行所有的指令,从而减少转移和保持流水。

C64x的MPYU4指令执行四个838-bit的无符号数乘法。ADD4执行四个8-bit的加法。所有的功能单元都可以执行双16-bit的加法/减法、比较、移位、最大值/最小值、以及绝对值运算。两个M单元及其他六个功能单元中的四个,都支持四个8-bit加法/减法、比较、平均、最大值/最小值、以及bit扩展运算。还增加了直接对打包的8-bit和16-bit数据作运算的指令。M单元里的bit计数和旋转硬件,扩展了对bit层算法的支持,例如二进制语法、图象矩阵计算、以及加密算法等。

C64x的转移-地址递减(BDEC)和检测为正转移(BPOS)指令将转移指令和地址递减及目标寄存器检测指令分别组合起来。另外一条指令可以减少设置函数调用返回地址所需的指令数量。双16-bit算术指令和八个功能单元中的六个以及位倒序指令组合起来,将FFT所需的周期数减少一半。Galois乘法指令(GMPY4)使用Chien搜索法为C62x提供Reed Solomon编码。特殊的平均指令可以将运动补偿的性能提高七倍。

C64x提供数据打包和解包,在四个8-bit或两个16-bit硬件扩展时保证很高的性能。解包指令为并行的16-bit运算准备8-bit数据。打包指令则保证并行的结果的输出精度。



开发支持



eXpressDSP软件技术包括DSP集成开发工具:可升级的实时软件基础、可重复使用的应用软件接口标准、以及不断增加的第三方的软件模块。Code Composer Studio是一个集成的DSP开发工具套件,包括C6000的C编译器、DSP/BIOS、实时数据交换技术等。
返回列表