TI公司三大系列DSP内部结构之比较

发布时间:2012-04-04 08:45:03

TI公司三大系列DSP内部结构之比较

摘要:本文介绍了德州仪器(TI)公司的三大主流系列DSP的内部结构,并对它们进行了对比性说明。

关键词:TIDSP;内部结构;比较

AbstractThis paper introduces the Texas instruments (TI) company three mainstream series DSP internal structure, and to them of kriging instructions.

KeywordsTIDSPInternal structurecomparison

TI公司的DSP芯片

德州仪器(Texas Instruments),简称TI,是全球领先的半导体公司,为现实世界的信号处理提供创新的数字信号处理(DSP)及模拟器件技术。除半导体业务外,还提供包括传感与控制、教育产品和数字光源处理解决方案。TI总部位于美国得克萨斯州的达拉斯,并在25多个国家设有制造、设计或销售机构[1]。本文主要介绍的是TI公司的DSP芯片。

TI公司常用的DSP芯片可以归纳为三大系列:

1TMS320C2000系列,称为DSP控制器,集成了flash存储器、高速A/D转换器以及可靠的CAN模块及数字马达控制的外围模块,适用于三相电动机、变频器等高速实时工控产品等需要数字化的控制领域。

2TMS320C5000系列,这是16位定点DSP。主要用于通信领域,如IP电话机和IP电话网关、数字式助听器、便携式声音/数据/视频产品、调制解调器、手机和移动电话基站、语音服务器、数字无线电、小型办公室和家庭办公室的语音和数据系统。

3TMS320C6000系列DSP 采用新的超长指令字结构设计芯片。其中2000年以后推出的C64x,在时钟频率为1.1GHz时,可达到8800MIPS以上,即每秒执行90亿条指令。其主要应用领域为:①数字通信 完成FFT、信道和噪声估计、信道纠错、干扰估计和检测等。②图像处理 完成图像压缩、图像传输、模式及光学特性识别、加密/解密、图像增强等[2]

TMS320C2000系列DSP

TMS320C2000器件是具有高性能集成外设(针对实时控制应用而设计)的32位微处理器。其优化的内核可在严苛控制应用所需的速度下,执行多种复杂的控制算法。这些功能强大的集成外设与SPIUARTI2CCANMcBSP通信外设配合使用,TMS320C2000器件成为最理想的单芯片控制解决方案。TI 提供了定点和浮点 C2000 微处理器,它们具有各种外设和存储器配置,可满足不同的控制应用要求。TMS320C2000系列主要包括24X 16位、28X 32两个子系列[3]

TMS320C2000MCU系列拥有32位架构、高级外设、高度的模拟集成以及从32256引脚等多个封装版本,能使各种应用实现卓越的性能及实时控制功能。功能齐备的独特外设拥有无与伦比的片上12.5 MSPS ADC、高分辨率PWM以及显著增强的捕获单元等众多特性优异的组件。C28X 32位内核具有单周期32*32位硬件乘法器以及单周期原子指令执行能力。

TMS320C2000MCU具备96个中断矢量,可帮助项目的设计实现终极灵活性。其中C28X微处理器内核专为实时控制而精心设计,其快速中断能实现10个周期的上下文环境开关。通过改进的哈佛结构,32位数据与外设总线可确保内核、存储器以及外设能够实现高效互动。高度安全的内存、RAMROM能保护自己的知识产权不被盗用。其中,部分器件还提供6通道DMA.

新型Delfino MCU TMS320F283XX系列拥有集成型硬件浮点处理单元,从而可提供原生浮点处理功能。某些Piccolo 32位微处理器中的控制律加速器(CLA)能够为更丰富的应用提供浮点功能。对于其他定点F28XX微处理器而言,IQ Math库允许浮点代码至IQ Math代码的快速转换,从而缩短从仿真到最终产品的开发时间。定点处理器需要缩放及转(scaling and shifting)以保持计算的数字精度,而该IQ Math库免除了此类需求,并可充分利用C28x微处理器的32位架构优势。IQ MathC28X MCU编译器全面支持,并包含了数十种算法、三角法则以及数值转换函数等[4-5]

TMS320C2000器件平台拥有业界领先的独特外设接口,不仅可显著改善系统性能,而且还能能大幅提高灵活性。

1TMS320C2000微处理器平台可支持多达16条模拟输入通道,其12ADC采样速率高达12.5MSPS,堪称业界最快的嵌入式ADC;

2)基于32位定时器的增强型捕获单元可实现高精度传感及更高灵活性;

3)高分辨率的PWM生成器可为300MHz Delfino器件提供最高150ps以及最低56ps的精度,从而能够控制电源电子产品实现无与伦比的高精度。

4)全面可编程的跳变区检测(trip-zone detection)与死时生成器(dead-time generator)能针对故障与浪涌电流情况提供全面的系统保护。

1 TMS320C2000系列的功能结构图

TMS320C5000系列DSP

  TMS320C5000是一个低功耗高性能,16位定点,速度40200MIPSDSP器件。其中,TMS320C5000包括旧有的C5x、当前主流的C54x和最新的C55x主要用途是有线和无线通信、IP、便携式信息系统、寻呼机、助听器等[6]
C55xC54x源代码兼容,而C5xC2x源代码兼容。C54x关注于低功耗,而C55x则将低功耗提到一个新水平:300MHzC55x120MHzC54x相比,性能提高5倍,而功耗则降到六分之一。尽管C5x还在全线生产,但公司已经将新设计转向C54x C55xC54x C55x采用改进的哈佛结构。
  C55x 具有12组独立的总线,而C54x则有8组。它们都有一组程序总线和相应的程序地址总线。C54x总线的宽度为16-bit,而C55x总线的宽度为32-bitC55x有三组数据读总线和两组数据写总线,而C54x有两组数据读总线和一组数据写总线。每组数据总线都有其相应的地址总线。C55x的数据地址总线的宽度为24-bit,而C54x的数据地址总线的宽度为16-bit
  C54x使用两个辅助寄存器算术单元,在每个周期内产生一个或两个数据存储器地址。这四组内部总线和两个地址发生器使其可以进行多操作数运算[7]
  C55x的地址-数据流单元(ADFU)包含了专门的硬件来管理五组数据总线。该ADFU也可以作为通用的16-bit ALU,用于简单的算术运算。该ALU从指令缓冲单元(IU)接收立即数,和存储器、ADFU寄存器、数据计算单元(DCU)寄存器、程序流单元(PFU)寄存器作双向通信。无论是ALU,还是三个地址寄存器ALUARAU)中的一个,都可以修改作间接寻址的九个地址寄存器。这三个ARAUC55x的三组数据读总线提供独立的地址。这种并行性保证了在每个CPU周期内DCU去读两个16-bit的操作数和一个16-bit的系数。
  C55xDCU包含了两个MAC单元,在单周期内作两个17217-bitMAC运算。它还包含了一个40-bitALU和四个40-bit的累加器寄存器、一个桶型移位器、以及专门的Viterbi算法硬件。每个MAC单元包含一个乘法器和带32-40-bit饱和逻辑的加法器。三个数据读总线将两个数据流和一个公共系数流送给两个MAC单元。用户可以用ALU32-bit的运算,或分开作两个16-bit的运算。除开接受从DCU40-bit Acc寄存器来的输入外,ALU还从IU接受立即数,并和存储器、ADFU寄存器、PFU寄存器作双向通信。
  C54x是单17217-bit MAC机器,有一个40-bit的加法器、两个40-bitAcc和一个分开的40-bitALU。与C55x相类似,C54xALU也可以作成两个16-bit的配置,完成两个单周期运算。乘法器输出处的40-bit的加法器允许作非流水的MAC运算,以及并行的两个加法和乘法。单周期归一化和指数编码支持浮点数运算。
  两个系列的结构都支持一个桶型移位器,将40-bitAcc的值左移或右移最多达31bit。该桶型移位器将移位后的值送给DCUALU,以便作进一步的运算。指令集中关于二操作数、三操作数和32-bit操作数的指令,支持结构的并行性。八个可以独立寻址的辅助寄存器和软件堆栈提高了C编译器的效率。
  C55x可以执行可变长度的指令,这和C54x有显著的不同。C54x的指令长度为固定的16-bit,而C55x的指令长度则从848 bitC55xIU缓存64 byte的代码,且有一个解码逻辑来确认可变长度指令中各指令的区别。局部循环指令使用指令缓冲队列来循环执行代码块。指令缓冲队列还可以在执行条件程序流控制指令的条件测试时,推测性地提取指令。指令解码器按排列顺序对指令解码,而不是执行动态时序,从而可以在预定的时间得到结果。

C55xPFU跟踪程序的执行点,并为多达16Mbyte的程序存储器产生24-bit的地址。该单元的硬件,可用于循环、灵活性转移、条件执行、以及流水保护。单独的程序计数器可以保证从子程序或中断服务子程序快速返回。该PFU还包括管理指令流水和四个CPU状态寄存器的逻辑。它以硬件方式可以提供四层块循环嵌套。其硬件还支持条件循环。PFU处理流水控制冒险,并对读后写及写后读提供保护。当在指令流中这种冒险发生时,流水保护逻辑就插入一些周期,保证程序的正确执行。集成的软件等待状态发生器使用户可以使用较慢的外部存储器。
  该系列的所有DSP都支持片内双访问RAMDARAM),用户可以将其配置为程序存储器或数据存储器。C55x还有扩展的同步突发性RAM、同步DRAM和异步SRAMDRAM。片内的锁相环(PLL)允许用户抑制时钟,但C55x核还可以激活与自动管理片内外设和存储器的功耗。当程序不再访问片内存储器时,它们就会被切换到低功率模式。处理器对片内外设也提供类似的控制。
C55x还设置了用户可控的低功率IDLE域,包括CPUDMA、外设、外部存储器接口、指令队列、以及时钟发生电路[8]

2 C54x功能结构图

3 TMS320C54x的总线结构

TMS320C6000系列DSP

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

C64xC62x代码兼容,但结构有显著的加强,其初期的工作频率可达750MHzC67xC62x八个功能块中的六个上增加了浮点功能,因此其指令集是不同的。C6000没有专门的MAC单元,而是使用分开的乘法和加法指令来实现MAC操作。尽管该操作需要两个指令周期,但其流水的效果仍然是单周期执行。这种结构包含两个数据通道,以便和各有四个功能单元的两组相匹配。   

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

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

在所有的C6000器件中,用户可以将寄存器A4-A7B4-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条指令,但数据的独立性、指令的反应时间、以及资源的冲突对性能的发挥有所限制。多包的执行允许充分的并行、串行和并/串行的组合。因此,要求八个串行指令和八个并行指令具有同样的长度。从而使编译器和汇编器的优化起着重要的作用[9]。  

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

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

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

4 TMS320C6000系列CPU结构

参考文献

[1]张雄伟,曹铁勇. DSP芯片的原理与开发应用[M]. 北京:电子工业出版社, 2000

[2]David Skolnick,Noam Loenie. DSP结构[J].电子产品世界,1998,6:41-43

[3]梅亮,林辉,薛丽蓉. MATLAB7.0TI C2000 DSP系统设计中的应用[J]. 微处理机, 2009(1):167-169

[4]张芳兰. TMS320C2XX用户指南[M]. 北京:电子工业出版社, 1999

[5]德州仪器公司. TMS320C2XX用户指南[M].美国:德州仪器出版社, 1997

[6]张卫宁,编译. TMS320C28X 系列DSPCPU与外设()[M]. 北京:清华大学出版社,2004:272-376

[7]吴冬梅,张玉杰. DSP技术及应用[M]. 北京:北京大学出版社,2006

[8]刘益成. TMS320C54x DSP应用程序设计与开发[M]. 北京:北京航空航天大学出版社,2002

[9]孙承龙. DSP使用教程[M]. 北京:电子工业出版社, 2011

[10] 马琳. DSP的广泛应用及技术发展趋势[J].电子与信息化. 1996,7:14-16

TI公司三大系列DSP内部结构之比较

相关推荐