280 likes | 494 Vues
TMS320C6000 系列 DSPs 简介. 使用 DSPs 的必要性 实时 DSP 系统的构成 DSPs 针对 DSP 算法的结构特点 衡量 DSPs 性能的一些常用指标 TMS320C6000 系列概况 C6000 的总体结构 C6000 的 CPU 结构特点 C6000 的片内集成外设. 使用 DSPs 的必要性. (1) 数字信号处理器( DSPs) 主要用于信号处理系统及通讯系统。 (2) 为了提高信号处理的质量,人们开始采用复杂的处理手段。如 ESPRIT 算法、基于 ARMA 模型的功率谱估计、非平稳信号分析等。这些处理手段所涉及的运算量日益变大。
E N D
TMS320C6000系列DSPs简介 • 使用DSPs的必要性 • 实时DSP系统的构成 • DSPs针对DSP算法的结构特点 • 衡量DSPs性能的一些常用指标 • TMS320C6000系列概况 • C6000的总体结构 • C6000的CPU结构特点 • C6000的片内集成外设
使用DSPs的必要性 • (1) 数字信号处理器(DSPs)主要用于信号处理系统及通讯系统。 • (2)为了提高信号处理的质量,人们开始采用复杂的处理手段。如ESPRIT算法、基于ARMA模型的功率谱估计、非平稳信号分析等。这些处理手段所涉及的运算量日益变大。 • (3)信号处理系统及通讯系统对于实时性的要求日益提高。
(4)DSPs结构针对DSP算法的特点进行了一系列优化,使其处理速度和性能得到了较大的提高。如DSPs完成FFT算法的速度比通用微处理器快2~3个数量级。 • 基于以上几点原因,DSPs得到了日益广泛的应用。
实时DSP系统的构成 其中,DSP子系统由输入/输出接口、控制处理器、DSPs、 数据传输网和存储器等部分组成,如下图所示。
控制处理器完成对整个子系统的控制。 • DSPs实现实时信号处理算法。 • 数据传输网完成各模块间的高速数据传输。 • 存储器支持数据存储。 • 输入/输出接口用于输入/输出数据的缓冲。
DSPs针对DSP算法的结构特点 • 硬件乘法器 • 在DSP算法中,最常见的运算是乘累加运算。用通用处理器程序实现乘法操作往往占用很多周期。因此在DSPs中用硬件乘法器完成乘法运算,并且多数DSPs还支持在一个周期内完成一次乘法和一次加法。硬件乘法器是DSPs区别于通用处理器的重要区别。 • 多功能单元 • 为了进一步提高速度,在CPU中设置了多个可并行操作的功能单元。如C6000系列中就有L1(2)、S1(2)、M1(2)、D1(2)等八个功能单元,从而在一个周期内最多可并行执行8条32位指令。
总线结构 • 多数通用处理器采用冯-诺依曼总线结构,由于程序和数据空间统一,取指和取数据必须分别进行。DSPs采取了程序总线和数据总线独立的哈佛总线结构,这样取指和取数据可同时进行从而节省了时间。有的DSPs甚至采用多套数据总线的修正哈佛总线结构。 • 专用寻址单元。 • DSP算法通常需要频繁地进行数据存取,因此计算地址要占用相当的时间。DSPs具有专用的计算地址的单元--地址产生器,它与ALU并行工作,不再额外占用CPU时间。
片内存储器 • 为了缓解芯片外部总线接口压力及避免总线竞争及速度不匹配等问题。DSPs一般还集成了片内程序存储器及数据RAM。 • 流水处理 • 流水技术和多功能单元都是提高DSPs程序执行效率的重要手段。
衡量DSPs性能的一些常用指标 • MFOLPS • 百万次浮点操作/秒,这是浮点DSPs处理性能的重要指标。浮点操作包括浮点数的加法、乘法、减法存取等。TMS320C67xx能达到1GFLOPS(峰值)。 • MOPS • 百万次操作/秒,可用于衡量DSPs综合性能。在200M时钟下,TMS320C6201能达2400MOPS(峰值)。 • MIPS • 百万条指令/秒,在300M时钟下, TMS320C6203能达到2400MOPS(峰值)。
MBPS • 百万位/秒,用于衡量DSPs总线或I/O口的数据吞吐率。若总线时钟位200M,则TMS320C6000的32位数据总线吞吐率为6400MBPS。
TMS320C6000系列概况 • C6000是TI公司推出的,定点浮点兼容的DSPs芯片系列。 • 定点系列是TMS320C62xx,目前有C6201、 C6202、 C6203、 C6204、 C6205和C6211。支持32位和40位定点数据。 • 浮点系列是MS320C67xx,目前有C6701和C6711两种。支持32位单精度数据和64位双精度数据。
C6000的总体结构 • C6000的结构框图如下
C6000系列DSPs的CPU具有两个数据处理通道, • 通道A包括功能单元L1、M1、S1、D1及由16个32位寄存器A0~A15组成的寄存器堆。 • 通道B包括功能单元L2、M2、S2、D2及由16个32位寄存器B0~B15组成的寄存器堆。 • C6000系列DSPs单指令字长32bit,每个指令包由8条指令组成,CPU可将同一指令包的8条指令同时送到8个功能单元,进行并行处理。 • C6000系列DSPs采用甚长指令字(Very Long Instruction Word,VLIW)结构。 • 在VLIW结构中,8个功能是并发工作的,并且共享寄存器堆。用短指令字(32位)编写的程序由TI公司提供的编译器CCS(C Compiler Studio)压缩成VLIW指令字。不同字段的操作码分别送给8个功能单元进行并行处理。由于在代码压缩时就决定了指令的并行性,所以代码
压缩的效率是决定DSPs代码执行效率的关键因素。压缩的效率是决定DSPs代码执行效率的关键因素。 TI公司推出的汇编语言级C编译器CCS,其效率达 到70%~80%,压缩代码的平均效率是其它DSPs编 译器的3倍。 • 在VLIW结构中,指令读取、指令解码、指令执行等都需要进行多级流水。不同指令的流水时间不同,要使执行效率较高,就应使流水尽量不被破坏,这就要求CCS在形成VLIW指令使要特别讲究 • 从以上两点可以看出, VLIW结构的DSPs的代码效率对编译器的代码压缩效率依赖较大。
C6000系列DSPs的CPU结构 • C62xx和C67xx系列的CPU结构相同,包括以下几个部分 • 程序取指单元(Program Fetch) • 指令分配单元(Program Dispatch) • 指令译码单元(Instruction Decode) • 32个32位寄存器,分为两组,每组 16个(Register File A、Register File B) • 两个数据通道(Data Path A、Data Path B),每个数据通道有4个功能单元L、S、M、D • 控制寄存器(Control Register) • 控制逻辑(Control Logic) • 测试、中断和仿真逻辑(Test、Emulation 、Interrupt)
从上图可见,CPU数据通路包括 • 2个通用寄存器堆(A) • 8个功能寄存器 • 2个存储器读取通路(LD1、LD2) • 2个存储器存储通路(ST1、ST2) • 两个寄存器组交叉通路(1X、2X) • 两个数据寻址通路(DA1、DA2) • 条件寄存器只能选用A1、A2、B0、B1、B2;进行循环寻址时只能选用A4~A7及B4~B7作为地址寄存器。 • 8个功能单元中每一个都有两个32位的源操作数读口,为了支持40位定点数(C62XX)或64位双精度浮点数(C67XX),L1、L2、S1、S2另配有8位或32位额外读写口。
交叉数据通路1X允许数据通路A的功能单元从寄存器组B读取操作数;交叉数据通路2X允许数据通路B的功能单元从寄存器组A读取操作数。由于每个方向上只有一条交叉通路,因此在一个周期内不允许两个以上的功能单元同时占用1X或2X。这一点在用汇编语言编程时要特别注意。交叉数据通路1X允许数据通路A的功能单元从寄存器组B读取操作数;交叉数据通路2X允许数据通路B的功能单元从寄存器组A读取操作数。由于每个方向上只有一条交叉通路,因此在一个周期内不允许两个以上的功能单元同时占用1X或2X。这一点在用汇编语言编程时要特别注意。 • 功能单元分别完成不同的操作如下表所示
C6000系列DSPs的全局控制寄存器 C6000系列的控制寄存器只能由.S2功能单元通过指令MVC进行读写。各控制寄存器的缩写、名称、意义如下表所示
C6000的片内集成外设 • DMA与EDMA DMA的主要特点 • DMA控制器独立于CPU工作,具有单周期的数据吞吐率 • 四个通道,外加辅助通道,每个通道的优先级可设定 • 32位寻址,可访问全地址空间 • 支持8/16/32bit数据传输 • 地址产生方式灵活,支持多帧传输 • DMA可在每次传输完毕后自动初始化 • 每个中断可以向CPU发出中断反馈
EDMA(Enhanced Direct Memory Access)的主要特点 • EDMA是C6211/C6711的专有特性 • EDMA基于RAM结构 • EDMA可以联接起来,组成EDMA传输链 • 具有16个通道并且通道间优先级别可编程 • 每个EDMA通道可以一设定的事件来触发
C6000的EMIF(External Memory Interface) C6000支持的存储器包括 • 同步突发静态RAM(SBSRAM) • 同步动态RAM(SDRAM) • 异步SRAM(ROM、FIFO等) • C6000的EMIF提供了对于上述存储器的无缝接口,最大寻址范围为64M分为CE0~CE3四个空间。
主机口HPI(Host-Port Interface) • 主机口是一个16bit的并行接口,外部主机是HPI的控制方,并可通过HPI直接访问CPU的存储空间及其映射的各功能寄存器。 • HPI的存取通过一组寄存器完成,包括HPI控制寄存器HPIC、 HPI地址寄存器DPIA、 HPI数据寄存器DPID • HPI到CPU存储空间的连接由专门的DMA辅助通道完成
自举逻辑控制 自举逻辑控制包括 • 选择存储映射方式,决定片内/片外存储器在地址0 • CPU对0地址处的初始化方式,主要有 • CPU直接从0地址开始执行代码,无自举过程 • 由DMA或EDMA从外部CE1空间的ROM拷贝一定数目的代码到0地址处,再开始执行。(ROM自举) • 外部主机通过HPI对存储空间初始化,然后再通过HPI唤醒CPU,CPU开始从0地址运行。(HPI自举)所有的设置引脚信号,都在Reset信号的上升沿检测。
多通道缓冲串口(MsBSP) C6000的MsBSP(Multichannel Buffered Serial Port)具有以下特点 • 支持多种协议下的直接接口 • 多达128个通道的多通道收发操作 • 数据字长支持8/12/16/20/24/32bit • 内置u率/A率压扩 • 内部时钟和帧同步信号设置灵活,信号的有效极性也可设置 • 数据收发采用多级缓冲结构,片内数据搬移可与片外通信同时进行。
Power-Down 逻辑 Power-Down 逻辑的功能是关闭芯片的一些开关操作,在不丢失数据的前提下,显著降低芯片的功耗。共有三种模式:PD1、PD2、PD3 • PD1模式用于在CPU边沿处屏蔽时钟输入 • PD2模式用于挂起PLL输出后的整个时钟系统 • PD3模式不仅暂停内部时钟系统而且还短开PLL于外时钟的连接,因而功耗最小。 外引脚PD用于反应DSP当前的PD状态
扩展总线XB(C6202、C6203)XB是在HPI的基础上发展的,同时也可用做第二条外部总线。XB既可以当作HPI增强版使用,又可以当作第二个I/O口使用。扩展总线XB(C6202、C6203)XB是在HPI的基础上发展的,同时也可用做第二条外部总线。XB既可以当作HPI增强版使用,又可以当作第二个I/O口使用。 • 在用作主机口HPI时,提供了同步/异步两种模式。同步模式相当于32bitHPI;异步模式支持多种协议。 • 在用作第二个I/O口时,可与EMIF完全独立工作,从而降低EMIF的负荷、提高数据的整体存取效率。例如CPU对EMIF上的存储器存取的同时,DMA通道对XB上主机或其它设备的访问请求进行处理