第五章C6000系列DSPs的集成外设1
DSP大作业 C500C6000的比较

TMS320C54x是TI公司为实现低功耗、高速实时信号处理而专门设计的16位定点数字信号处理器,采用改进的哈佛结构,具有高度的操作灵活性和运行速度,适应于远程通信等实时嵌入式应用的需要,现已广泛地应用于无线电通信系统中。
C54x硬件结构基本上可分为3大块:(1)CPU 包括算术逻辑运算单元(ALU)、乘法器、累加器、移位寄存器、各种专用寄存器、地址生成器及内部总线。
(2)存储器系统ROM、SARAM、DARAM、外接存储器接口。
(3)片内外设与专用硬件电路包括片内的定时器、各种类型的串口、主机接口、片内锁相环(PLL)时钟发生器及控制电路。
C54X硬件结构如下图:TMS320C54x主要特性1.CPU部分(1)先进的多总线结构(1条程序总线、3条数据总线和4条地址总线)。
(2)40位的ALU,包括1个40位的桶形移位寄存器和2个独立的40位累加器。
(3)17×17位并行乘法器。
(4)比较、选择、存储单元(CSSU),用于加法/比较选择。
(5)指数编码器(6)双地址生成器,8个辅助寄存器和2个ARAU(辅助寄存器运算单元)。
2.存储器系统(1)具有192K字可寻址存储空间:64K字程序存储器空间、64K字数据存储空间及64K字I/O空间。
(2)片内双寻址RAM(DARAM)。
CPU可以在一个机器周期内对同一DARAM块读出1次和写入1次。
(3)片内单寻址RAM(SARAM)3.片内外设(1)软件可编程等待状态发生器(2)可编程分区转换逻辑电路(3)片内锁相环(PLL)时钟发生器(4)串口C54x系列DSP串口分4种:标准同步串口(SP)、带缓冲的串行口(BSP)、时分复用(TDM)串行口和多通道带缓冲串行口(McBSP)。
(5)8位或16位主机接口(HPI)(6)外部总线关断控制,以断开外部的数据总线、地址总线和控制信号。
(7)数据总线具有总线保持特性(8)可编程的定时器4.指令系统(1)单指令重复和块指令重复操作。
TMS320C6000系列DSPs简介

C6000系列DSPs的CPU结构
• C62xx和C67xx系列的CPU结构相同,包括以下 几个部分
– 程序取指单元(Program Fetch) – 指令分配单元(Program Dispatch) – 指令译码单元(Instruction Decode) – 32个32位寄存器,分为两组,每组 16个(Register
TMS320C6000系列DSPs简介
• 使用DSPs的必要性 • 实时DSP系统的构成 • DSPs针对DSP算法的结构特点 • 衡量DSPs性能的一些常用指标 • TMS320C6000系列概况 • C6000的总体结构 • C6000的CPU结构特点 • C6000的片内集成外设
使用DSPs的必要性
– 数据收发采用多级缓冲结构,片内数据搬移可与片 外通信同时进行。
• 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口使用。
– 在用作主机口HPI时,提供了同步/异步两种模式。 同步模式相当于32bitHPI;异步模式支持多种协议。
c2000,c5000,c6000系列DSP编程方法

二、TI公司三大系列内部结构的简介 1、C2000系列的内部结构1,C2000系列基于改进的哈佛结构,支持分开的程序空间和数据空间。
还有第三个空间,即I/O空间,用于片外总线接口。
外设总线映射到数据空间,因此,运行在数据空间的所有指令,都可以运行于所有的外设寄存器。
C2000系列的CPU包括:一个32位的中心算术逻辑单元(CALU)、一个32位的累加器(ACC)、CALU具有输入和输出数据定标移位器、一个16x16位乘法器、一个乘积定标移位器、数据地址产生逻辑:包括8个辅助寄存器和1个辅助寄存器算术单元(ARAU)、程序地址产生单元C2000系列采用2xLPASIC核,其内部设有6组16位的数据与程序总线。
这6组总线是:PAB(ProgramAddr.Bus)程序地址总线DRAB(Data-ReadAddr.Bus)数据读地址总线; DWAB(Data-WriteAddr.Bus)数据写地址总线; PRDB(ProgramReadBus)程序读总线;DRDB(DataReadBus)数据读总线;DWEB(DataWriteBus)数据写总线。
将数据读地址总线(DRAB)和数据写地址总线(DWAB)分开,CPU就可以在同一个机器周期内读和写数据。
C2000系列具有以下类型的片内存储器:双访问RAM(DARAM),即一个机器周期内可以访问两次的存器;FlashEEPROM或工厂掩模的ROM。
C2000系列的存储器分为单独可选择的4个空间,总共的地址范围为224K字:程序存储器(64K字);局部数据存储器(32K字);全局数据存储器(64K字);输入/输出(64K字)。
2、C5000系列的内部结构C5000系列中央处理单元CPU包括算术逻辑单元、乘法器、累加器、移位寄存器、各种专门用途的寄存器、地址发生器、比较选择单元、指数编码器。
具体内容如下①先进的多总线结构,具有1条程序存储器数据总线、3条数据存储器数据总线和4条地址总线;②40位算术逻辑单元(ALU),包括40位的桶形移位寄存器和2个独立的40位的累加器;③17位乘17位的并行乘法器与一个40位的专用加法器结合在一起,用于单周期乘/累加操作;④比较、选择和存储单元(CSSU),用于Viterbi操作(一种通信的编码方式)中的加/比较选择;⑤指数编码器用于在单周期内计算40位累加器的指数值;⑥2个地址生成器,包括8个辅助寄存器和2个辅助寄存器算术单元[6]。
C6000 DSP软件开发环境CCS介绍

CCS-RTDX(1)
}
RTDX,即Real-time Data Exchange
} } }
提供了一种实时,连续的观测手段,不打断DSP运行 不打断DSP运行的情况下,主机和DSP间传递数据 回传到主机的数据可以在“OLE自动化客户”中显示
CCS-RTDX(2)
CCS小结
} } }
不仅仅是代码生成工具,对软件开发的各个阶段 都有支持 提供底层实时操作系统DSP/BIOS 提供RTDX新的实时调试手段,与CCS集成,不需 要自己添加额外的用于调试的硬件 8Kbyte/s(XDS510),2Mbyte/s(XDS560)
}
包括Host方和Target方
} }
Target方编程接口 RTDX target API Host方编程接口 RTDX COM API(组件对象模型COM是 windows下一种编程技术)
CCS的文件与环境变量
} } }
.pjt .lib .obj .out .wks 可编辑文件:.c .asm .h .cmd (.sa) 三个环境变量:C6X_A_DIR,C6X_C_DIR, PATH
提供通常的RTOS的功能(任务调度,任务间通讯) 提供驱动程序模型,层次化地设计应用程序 DSP/BIOS以CCS插件的形式提供一些实时分析工具
} } }
程序跟踪:观察任务的调度、切换 性能监视:观察CPU的负载
}
状态统计:对事件做统计 提供RTDX(实时数据交换),不打断DSP运行的情况下实现主 机和DSP的数据交换
C6000 DSP软件开发环境 --CCS介绍
田黎育
内容安排
} 1、DSP软件开发环境发展历史 } 2、CCS中代码开发流程 } 3、RTDX(实时数据交换技术) }4
有关C6000DSP的Cache的操作教学内容

有关C6000D S P的C a c h e的操作篇幅之一 TI C64x+ DSP CACHE 一致性分析与维护作者: DSP 技术应用工程师陈永康摘要在各种数字信号处理系统中,CACHE被广泛用于弥补Core与存储器之间的速度差异。
在CACHE 的使用过程中,存在不同类型存储器之间数据是否一致的问题。
本文着重分析TI高性能C64x+ DSP系列中各级CACHE之间数据一致性问题以及如何进行一致性维护。
1. 概述CACHE作为Core和低速存储器之间的桥梁,基于代码和数据的时间和空间相关性,以块为单位由硬件控制器自动加载Core所需要的代码和数据。
如果所有程序和数据的存取都由Core完成,基于CACHE的运行机制,Core始终能够得到存储器中最新的数据。
但是当有其它可以更改存储器内容的部件存在时,例如不需要Core干预的直接数据存取(DMA)引擎,就可能出现由于CACHE的存在而导致Core或者DMA不能够得到最新数据的现象,也就是CACHE一致性的问题。
2. C64x+ 存储器组织结构TI对高性能C64x核进行了改进,使其性能大大提升,称之为C64x+DSP核。
基于C64x+核开发的DSP芯片,所有部件都以交换网络(SCR)为核心连接起来。
SCR上的部件分为两类:Master和Slave。
Master包括Core、EDMA以及串行高速IO(sRIO),EMAC等外设。
Master可以直接通过SCR发起到Slave的数据传输。
Slave包括每一个Core的内存,DDR2外存以及其它不能直接发起数据传输的外设,Slave之间的数据传输,需要通过DMA协助完成。
各款基于C64x+DSP的数据手册上详细描述了SCR的配置和Master、Slave的情况。
C64x+系统的存储器框图如图 1所示。
存储器被分成了三级:第一级是L1,包含数据存储器(L1D)和代码存储器(L1P);第二级是代码和数据共用存储器(L2);第三级是外部存储器,主要是DDR2存储器。
DSPC5000结构与外围功能

视频硬件扩展 - C5510、C5509
为 C55x DSP 系列仔细定制的三种硬件扩展是: 离散余弦变换 (DCT)/反向 DCT 像素插值 运动估值 提供不寻常的视频编解码器性能,从而释放了一半以上的 CPU 带宽来处理附加功能,如颜色空间转换、用户接口功 能、TCP/IP 以及视频处理。 高度优化的 C 编程等效、可使用 C 调用的函数,这些函数作 为 TMS320C55x DSP 图像/视频处理库 (IMGLIB) 的一部分来 提供,可从 TI 基础库下载。
全速 USB 2.0 (12Mbps) - C5509
与其它符合 USB 的设备的无缝互操作性。由 USB 实现者论坛 认证以确保数据传输速率高达 12Mbps。 仅用于控制传输的两个控制端点 用于其它类型的传输的十四个通用端点,这些传输可以是: 大量、中断和异步传输 用于快速数据吞吐量的可选双缓冲存储器方案 用于在通用端点和 DSP 存储器之间传输数据,而不会中断 CPU 的专用 DMA 通道。
新型 C55x™ DSP 结构的最新动态
新型 C55x™ DSP 结构的最新动态
新型 C55x DSP 系列以 C54x 系列为基础构建,是业界功耗最 低的 DSP。C55x DSP 内核支持新的编程功能,同时保持与 现有 C54x 代码的完整软件兼容性。C55x DSP 内核的创建 旨在推动未来从便携式因特网设备到高速无线再到基础设 施等数字应用,其特定功能包括:
结果是极其高效的电量使用和更低的系统成本。通过使用较少电量并散发更少的热量, C55x DSP 内核赋予设计人员有关电路板设计的更高灵活性。 C55x DSP 内核最具创新的特色之一是其支持可变长度指令(基于新的字节寻址方案): 指令长度可以是 8、16、24、32、40 或 48 位。 指令提取从 16 位增加到 32 位。 片上指令缓冲存储器单元会自动取出指令以最充分使用每个时钟周期。 C55x DSP 内核存储器总线活动的降低可以降低电量要求,同时在每个时钟周期,更长的指 令可以执行更多的功能,从而提高了性能并降低了系统成本。 C55x DSP 内核对于增强并行功能的关注使以下设备的周期效率得到改进: 附加硬件 - 双 17 x 17 位 MAC、另一个 16 位 ALU、四个新的数据寄存器(可用于简单计算 )以及四个 40 位累加器,这使每个周期能完成更多的工作,从而显著地降低整体的电 量要求。 新指令功能: 自动并行指令 隐式或内置并行指令 用户编程并行指令 提高正交性的附加指令 附加总线和扩展寻址 - 为确保吞吐量可以获取理论上新的计算硬件使之成为可能的最大吞 吐量,C55x DSP 内核采用以下总线: 三条 16 位数据读总线 两条 16 位数据写总线 一条 32 位程序总线 六条 24 位地址总线
TMS320C6000系列DSP程序固化方式分析

TMS320C6000系列DSP程序固化方式分析TMS320C6000系列DSP程序固化方式分析引言本章内容主要针对TMS320C6000系列芯片,其他类型芯片可能会有差别,但总体思路应该都有指导作用。
随着近年来数字信号处理器(DSP)技术的迅猛发展,其中,TI公司推出的TMS320C6000系列DSP器件更是在许多需要进行大量数字信号处理运算并兼顾高实时性要求的场合得以应用。
TMS320C6000系列DSP的系统设计过程中,DSP器件的程序加载是较难解决的问题之一。
C6000系列DSP的加载方式包括不加载、主机加载和EMIF加载3种。
不加载[No boot]:方式仅限于存储器0地址不是必须映射到RAM空间的器件,否则在RAM空间初始化之前CPU会读取无效的代码而导致错误;主机加载[Host boot]:要求必须有一外部主机控制DSP的初始化,这将增加系统的成本和复杂度,在很多实际场合是难以实现的;EMIF加载[EMIF boot]:DSP与外部ROM/Flash接口较为自由,但片上Bootloader工具自动搬移的代码量有限(1 KB/64 KB)。
本文讨论的就是在EMIF加载方式下的程序各种不同的固化方式。
包括在线烧写,使用CCS提供的FlashBurn工具,使用专有烧写工具[编程器],一、DSP加载方式的选择DSP使用哪种加载方式进行启动,是通过硬件配置的方式选择,当DSP的RESET引脚无效后,DSP读入外围的配置引脚信息,确定加载启动的具体方式。
具体的配置管脚设定可以参考< >literature number: SPRS200二、EMIF加载方式启动过程当RESET变成高电平的时候,在CE1空间开始的1K字节的ROM 代码通过EDMA 被复制到地址为0 的地方(用DSP EMIF最慢的时序),在此期间DSP核一直处于“停止”状态。
数据被存储成系统所用的字节序格式。
在这种情况下,EMIF自动的把要搬移的8位宽数据拼接为32位指令字。
C6000与C2000系列DSP之间串行数据通讯的研究与实现(精)

C6000与C2000系列DSP之间串行数据通讯的研究与实现TMS320C6711是TI公司TMS320C6000系列32位浮点DSP,它具有专用硬件逻辑的CPU、片内存储器、片内外设,支持汇编和C语言的单独或混合编程。
该系列DSP最主要的特点是采用了VLIW体系结构,因此可以单周期发射多条指令,实现很高的指令级并行效率。
其计算和处理速度非常快,系统单指令周期可达到6.67ns,被广泛用于DSL、无线基站、雷达声纳、数字图像处理等方面。
在TMS320C6711中有2个多通道缓冲串行接口McBSP,McBSP不仅可以配制成串行TMS320C6711是TI公司TMS320C6000系列32位浮点DSP,它具有专用硬件逻辑的CPU、片内存储器、片内外设,支持汇编和C语言的单独或混合编程。
该系列DSP最主要的特点是采用了VLIW体系结构,因此可以单周期发射多条指令,实现很高的指令级并行效率。
其计算和处理速度非常快,系统单指令周期可达到6.67ns,被广泛用于DSL、无线基站、雷达声纳、数字图像处理等方面。
在TMS320C6711中有2个多通道缓冲串行接口McBSP,McBSP不仅可以配制成串行接口,还可以独立配制成通用的输入(GPI)、输出(GPO)和输入输出端口(GPIO)。
其优点是数据处理能力强大,但控制接口少,片内集成外部设备少,控制能力较弱。
TI公司的TMS320LF2407为16位定点DSP微控制器,内嵌有看门狗定时器(WDT)、CAN总线控制器、模数转换器(ADC)、串行外设接口(SPI)、异步串行口(SCI)等多种外设模块,并有大量输入输出引脚(GPIO),可以满足控制系统多方面的控制需求。
但由于TMS320LF2407的指令周期最短为25ns(40MHz 主频),对于数据处理运算量特别大的系统,其运算速度略显不足。
多数数字图像处理应用系统既要求系统有强大的数据处理能力,以满足对图像处理的实时性要求,又要求系统有强大的控制能力,以便实现对外部众多设备的控制。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
64MB~ 3C20 0000~7FFF FFFF 1GB 256MB 8000 0000~8FFF FFFF 256MB 9000 0000~9FFF FFFF 256MB A000 0000~AFFF FFFF 256MB B000 0000~BFFF FFFF 1GB C000 0000~FFFF FFFF
双路组相联
直接映射
Cache RAM 4KB
snoop address
L1 program cache(L1P) data controller
address
Program Address(32bit)
Program Data (256b)
数据地址 32bit; 数据8, 16, 32bit
Cache RAM 4KB
4KB
L1D结构
2路组联想
L1P结构
直接映射
L1D CPU访问时间 单周期
L1P CPU访问时间 单周期
L1D 行容量
32B
L1P 行容量
64B
L1D置换策略
2路LRU(最近很少使用)
L1P存储体构造
1256bit存储体 L1D存储体构造 64bit宽度双口RAM
L1P读缺失的分配 L1P中分配一行
2
TMS320C6713 – 225MHz Audio DSP
TMS320C6713 Floating-Point DSP
EMIF
McBSP 0
OR
McASP 0
Level 1 Program
Cache 4K Bytes
Enhanced DMA Controller (EDMA) 16 Channel
第五章 C6000系列DSPs的集成 外设与硬件开发
1
• (1) 片内程序存储器和数据存储器 • (2)外部存储器接口(EMIF)的设计 • (3) 直接存储器访问(DMA)和扩展的直
接存储器访问(EDMA) • (4)多通道缓冲串口(McBSP) • (5)主机口(HPI)和PCI接口 • (6)芯片的设置和其他片内集成外设
6
621x/671x/64x的片内2级存储器
TMS320C6713 Floating-Point DSP
EMIF
McBSP 0
OR
McASP 0
Level 1 Program
Cache 4K Bytes
Enhanced DMA Controller (EDMA) 16 Channel
Level 2 Cache/Memory 256K Bytes SRAM
存储器组描 组大小 十六进制地址范围 述
McBSP0 数据 McBSP1 数据 保留
McASP0 数据 McASP1 数据 保留
EMIF CE0
EMIF CE1
EMIF CE2
EMIF CE3 保留
64MB 3000 0000~33FF FFFF
64MB 3400 0000~37FF FFFF
64MB 3800 0000~3BFF FFFF 1MB 3C00 0000~3C0F FFFF
Level 2 Cache/Memory 256K Bytes SRAM
McBSP1
OR
IIC 1
HPI
OR
GPIO McASP 1
IIC 0
2 Timers PLL
Power Down Logic
Boot Configuration
C67xTM DSP Core
Level 1 Data Cache
256KB 0190 0000~0193 FFFF
存储器组描 组大小 十六进制地址范围 述
Timer 0 寄存器
256KB 0194 0000~0197 FFFF
Timer 1 寄存器
256KB 0198 0000~019B FFFF
中断向量寄 存器
配置寄存器
512B 4B
019C 0000~ 019C 01FF 019C 0200~019C 0203
L1P读命中的分配 L1P中读取数据
L1P写缺失的分配 不支持L1P写
L1P写命中的分配 支持L1P写
L1PL2申请
2次存取/L1P行
L1P协议
读分配L1Pຫໍສະໝຸດ 储器单周期RAML1P L2申请时CPU 5周期 阻塞
L1D读 缺失的分配 L1D中分配一行
L1D读命中的分配 L1D中读取数据
L1D写缺失的分配 L1D中不分配,数据送入
256KB~ 0004 0000~017F FFFF 24MB 256KB 0180 0000~0183 FFFF
128KB 0184 0000~0185 FFFF
128KB 0186 0000~0187 FFFF
256KB 256KB
0188 0000~018B FFFF
018C 0000~018F FFFF
(1) L1P和L1D相互独立,只能作为Cache被CPU访问
(2) L2是一个统一的程序/数据空间,可以整体作为 SRAM映射到存储空间,也可整体作为第2级Cache, 或者是二者按比例的一种组合
11
621x/671x片内存储器结构
片内cache RAM 结构 2级缓存
L1D容量
4KB
L1P容量
相联(associative): 是在每一组(set)中行帧的数目。行帧是Cache 中保存缓 存数据(一行)、联合寻址标记和行状态数据的一个位置。状态数据指明 该行有效或重写。重写指的是Cache的一行保存的数据有效且被CPU修改 过,但是这种修改没有在下一更高级内存中更新
侦听snoop:是一种高级存储器查询低级存储器以确定两者是否含有同一 地址的数据的方法。在两级存储器系统中,当数据从高级存储器中移出 时,必须侦听低级存储器来确定逐出的地址是否与低级存储器中的同一 地址不一致。
5
存储器组描 述
I2C0寄存器
组大小 16KB
十六进制地址范围 01B4 0000~01B4 3FFF
I2C1寄存器 16KB 01B4 4000~01B4 7FFF
保留
16KB 01B4 8000~01B4 FFFF
McASP0 寄存器
McASP1 寄存器 保留
16KB 01B4 C000~01B4 FFFF 16KB 01B5 0000~01B5 3FFF 160KB 01B5 4000~01B7 BFFF
L1D
L1D写命中的分配 数据送入L1D命中区
L1DL2申请
2次存取/L1D行
L1D协议
读分配
L1D L1D申请时 4周期 CPU阻塞
12
621x/671x片内存储器结构(续1)
L2容量
64KB
L2 cache容量 0/16/32/64KB
L2 SRAM容量 64/48/32/16/0KB
L2结构
McBSP1
OR
IIC 1
HPI
OR
GPIO McASP 1
IIC 0
2 Timers PLL
Power Down Logic
Boot Configuration
C67xTM DSP Core
Level 1 Data Cache
4K Bytes
• 片内采用2级高速缓 存结构,程序和数据 拥有各自独立的高速 缓存。
有
GPIO
有
内部集成的电路模块I2C总线 2组
锁相环(PLL)控制器
有
3
存储器映射
• C6000DSP系统通过EMIF(外部存储器接口)可以使用外 部存储器。
• L1P、L1D、L2分别由各自的控制器控制 • C6000DSP总的存储地址范围为4GB(相应使用32位内
部地址表示0000 0000~FFFF FFFF)。每种存储器映射 都被分为片内程序存储器、片内数据存储器、片外存 储器、片内外设空间 • C6211/C6711/C6713只有1种存储器映射方式:片内存 储器始终位于地址0处,可以当作程序或数据存储空间 • C6211/C6711/C6713的存储器映射方式只需2位进行设 置,即通过对主机口的HD[4:3]设置引导方式,利用电 阻上拉或下拉设置引导方式
10
C6713DSP的片内存储器配置
内部存储器结 构 哈佛结构(L1) Unified (L2)
注意:
存储器总量 程序存储器 数据存储器
(KB)
L1P(KB)
L1D(KB)
264
4 (Cache)
(L1P)
4 (Cache)
(L1D)
Unified 存储器L2(KB)
64(映射/Cache) 192(映射)
Program fetch
C6713 CPU
Data path A Data path B
L2 cache controller
L1 data cache(L1D) controller
address data data snoop address
RAM 64KB
EDMA
9
直接映射cache:包含能缓存特定的高级存储器的唯一Cache行。这并 不意味着该cache 像它所缓存的存储器一样包含很多行,而是指一 个存储器地址只能由专门的行来缓存。例如,一个存储器地址被 缓存在直接映射cache位置A,清除cache之后再缓存,它还是只能 被缓存在位置A。
PLL寄存器 8KB 01B7 C000~01B7 DFFF
保留
QDMA 寄存器 保留
保留
520KB ~4MB
52B
01B7 E000~01FF FFFF 0200 0000~0200 0033