找回密码
 注册
搜索
查看: 846|回复: 5

[综合资料] tms320c6000简介

[复制链接]
发表于 2007-1-12 11:21:25 | 显示全部楼层 |阅读模式
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、实时数据交换技术等。


[此贴子已经被作者于2007-1-5 11:21:47编辑过]
如有问题请致电(010)82600386-20
发表于 2008-9-9 13:22:02 | 显示全部楼层
没有资料?
点评回复

使用道具 举报

发表于 2008-9-15 17:43:18 | 显示全部楼层
怎么实现64位的计算啊?有64位的变量吗?
点评回复

使用道具 举报

发表于 2008-11-6 01:40:59 | 显示全部楼层
不错,我看的懂[em02]
点评回复

使用道具 举报

发表于 2008-11-11 10:15:44 | 显示全部楼层
很不错
点评回复

使用道具 举报

发表于 2008-12-11 15:46:19 | 显示全部楼层
没有上传附件 .
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-11-25 10:13 , Processed in 0.049552 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表