DSP 图像处理算法的实现-III(2)
TMS320C6000 的 CPU 有两个数据通道 A 和 B,每个通道有 16 个 32 位字 长的寄存器(A0~A15,B0~B15),四个功能单元(L,S,M,D),每个功能 单元负责完成一定的算术或者逻辑运行。A、B 两通道的寄存器并不是完全共享, 只能通过 TM320C6000 提供的两个交换通道 1X、2X,才能实现处理单元从不 同通道的寄存器堆那里获取 32 位字长的操作数。TMS320C6000 的地址线为 32 位,存储器寻址空间是 4G。
各个部分简要介绍:
C62X 和 C67X 的数据通路包括:
2 个通用寄存器组(A 和 B)8 个功能单元(.L1,.L2,.S1,.S2,.M1,.M2,.D1,D2) 2 个存储器读取通路(LD1 和 LD2)2 个存储器存储通路(ST1 和 ST2) 2 个寄存器组交叉通路(1X 和 2X)2 个数据寻址通路(DA1 和 DA2) 1 通用寄存器组
C62X/C67X 数据通路中有 2 个通用寄存器组(A 和 B): 寄存器组 A:A0-A15,寄存器组 B:B0-B15。
8
条件寄存器: A1、A2、B0、B1 和 B2 可用于循环寻址的寄存器:A4-A7 和 B4-B7。
通用寄存器组支持 32 位和 40 位定点数据,C67X 也支持 32 位单精度和 64 位双精度浮点数据。对于 40 位和 64 位数据,需跨放在两个寄存器内。
2 功能单元
8 个功能单元分成 A、B 两组:A 组:L1、S1、M1、D1 B 组:L2、S2、 M2、D2
每个功能单元都有:2 个 32bit 读口和 1 个 32 位写口
.L1、.L2、.S1 和.S2 另有:8bit 写口和 8bit 读口,支持 40 位操作数的读写 同一周期 8 个功能单元可并行使用
各个功能单元的执行操作 功 能
浮 点 操 作 .L 单元(.L1,.L2) 32/40 位算术和比较操作 算术操作 32 位中最左边 1 或 0 的位数计数 转换操作 32 位和 40 位计数 DP→SD INT→32 位逻辑操作 DP INT→SP .S 单元(.S1,.S2) 32 位算术操作 32/40 位移位和 32 位位操作 32 位逻辑操作 转移 常数产生 寄存器与控制寄存器传递(仅.S2) .M 单元(.M1,.M2) 16×16 乘法操作 比较倒数和倒数平方根 操作 绝对值操作 SP→DP 转换 单 元 结构示意图
定 点 操 作 32×32 乘法操作 浮点乘法操作 .D 单元(.D1,.D2) 32 位加、减、线性循环寻址计算 5 位常数偏移量双字读 5 位常数偏移量取存 取 15 位常数偏移量取存(仅.D2) 3 寄存器组交叉通路 9
CPU 中有两个交叉通路 1X 和 2X
1X:允许 A 侧功能单元读取 B 组寄存器数据
2X:允许 B 侧功能单元读取 A 组寄存器数据 每侧仅有一个交叉通路,在同一周期内从另一侧寄存器组读操作数只能一 次,或者同时进行使用 2 个交叉通路(1X 和 2X)的操作。
.D 不能使用交叉通路仅 src2 可以使用另一侧寄存器数据
第三节 TMS320C6000 指令系统
C62xx 和 C67xx 共享同一个指令集。所以 C67xx 可以使用所有的 C62xx 指令,但因为 C67xx 是浮点芯片,怕以 C67xx 的指令集中有一些指令只能用于 浮点运算。TMS320C6201CPU 的设计采用了类似于 RISC 的结构,指令集简单、 运算速度快。8 个功能单元负责不同功能的运算,指令和功能单元之间存在一个 映射关系。其中,L 单元有 23 条指令,M 单元有 20 条指令,S 单元 29 有条指 令,D 单元有 26 条指令。
TMS320C6201 的大部分指令都可在单周期内完成,都可以直接对 8/16/32bit 数据进行操作。同时,TMS320C6201 指令集针对数字信号处理算法 提供了一引起特殊指令:为复杂计算提供的 40bit 的特殊操作的加法运算;有效 的溢出处理和归一化处理;简洁的位操作功能等。TMS320C6201 中最多可以有 8 条指令同时并行执行;所有指令均可条件执行。以上所有特点提高了指令的执 行效率、减小了代码长度、大大减少了因跳转引起的开销、提高了编码效率。
10
第三章 基于 TMS320C6000 系列的 C 代码优化
在 DSP 软件开发中推荐的开发流程如图 1 所示
于是我们可以份三个阶段来优化所写的 C 语言代码 第一个阶段:对第一个阶段,我们根据需要实现的功能来编写 C 语言程序,
这时的代码和硬件平台是独立的,可以进行一些基本的 C 优化,然后使用 C6000 代码剖析工具,确定 C 代码中可能存在的低效率段,为进一步改进代码性能, 进入第二阶段。
第二个阶段:在这一阶段,我们根据 TI,C6000 平台一些基本的结构特点,
11
使用特定的优化方法,改进 C 代码。这些方法包括使用编译器选项、和代码转 换字访问、软件流水和循环展开等。如果代码仍不能达到所期望的效率,则进入 第三个阶段。
第三个阶段:从 C 代码中抽出对运行时间影响最大的代码段,用线性汇编 改写这段代码。用户能使用汇编优化器优化该代码。
第一节 第一个阶段代码优化
第一阶段的优化是基于通用微处理器的 PC 机环境中的优化,主要是针对 C 程序的通用特性来考虑的。这方面的优化工作主要包括数据类型选择、数值操作 优化、快速算法、变量定义和使用优化、函数调用优化以及计算表格化等.这个 阶段的 C 代码优化,可以通过选定 CCS(Code Composer Studio)提供的 C 编 译器的选项来实现优化,所以不详细展开,但有几点与 C6000 的硬件结构有关, 需详细说明下
1 数据类型 数据类型的选择在分析和编写代码时很重要,充分考虑数据类型大小才能从
C6000 体系结构中取得最优的性能。C6x 编译器对每种数据类型都定义了数据 大小。char :8 bit ; short : 16 bit ; int :32 bit ; long :40 bit ;float :32 bit ;double :64 bit 基于每一种数据类型的大小,在书写 C 代码时,应注意以下原则。(1) 要避免 把 int 和 long 数据类型当成相同大小来处理,因为 C6x 编译器对 long 数据使 用 40 bit 操作数;(2) 定点乘法,尽量采用 short 型作为输入,因为 C6x 上是一
16 的乘法器;个 16?(3) 用于循环的计数器,数据类型采用 int 或者 unsigned int
以避免汇编器产生不必要的符号扩展指令;(4) 当在浮点 DSP 装置中使用浮点 指令时,例如 C67x 应使用-mv6700 编译器开关,使得代码产生器符合浮点的 硬件装置代码。
2 数值操作优化
C 程序中主要有以下数值操作优化:(1)用比特的移位操作来代替 2 次幂整 数的乘除法运算更为有效;(2 )当使用浮点设备时, 尽量使用浮点数据类型,这 能够减小定点处理单元的负担;(3) 尽量避免数值的上下溢出,除非是算法本身 的需要。
3 快速算法
12
本优化方法是用快速算法实现各种变换。例如离散傅立叶变换(DFT)是数字 图像处理中应用十分广泛的一种变换,具有很好的实用性,其快速算法——快速 傅立叶变换(FFT)对其计算速度又有非常大的改进,从而使得该算法得到了更 加广泛的应用。
4 变量定义和使用优化
C 程序中对于需要多次重复使用的变量,如 for 循环中的变量值,一般可以 设置成 register 变量,从而提高效率。另外在 C 语言中指针和数组是可以相互 替代的,而对于数组的寻址非常耗时,特别是多维数组,因此可以通过降低数组 的维数,再指针化, …… 此处隐藏:4639字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [建筑文档]2018年公需课:专业技术人员创新能力与
- [建筑文档]2013年福建教师招考小学数学历年真题
- [建筑文档]高中信息技术课flash知识点总结 - 图文
- [建筑文档]电工实训 - 图文
- [建筑文档]最高院公告案例分析100篇(民商篇)
- [建筑文档]南开中学高2017级14-15学年(上)期末
- [建筑文档]五粮液集团战略分析
- [建筑文档]鲁教版(2012秋季版)九年级化学 酸碱
- [建筑文档]超星尔雅2017中国哲学概论自整理题库答
- [建筑文档]关于成为海口金盘饮料公司材料独家供货
- [建筑文档]LNG学习资料第一册 基础知识 - 图文
- [建筑文档]四年级品社下册《好大一个家》复习资料
- [建筑文档]现阶段领导权力腐败的特点及发展趋势
- [建筑文档]魏晋南北朝诗歌鉴赏—嵇康
- [建筑文档]坚持追求真爱是理智的行为 正方一辩稿
- [建筑文档]湘西州刑释解教人员帮教安置工作存在的
- [建筑文档]园林工程试题库及答案
- [建筑文档]计算机长期没有向WSUS报告状态
- [建筑文档]日语最新流行语
- [建筑文档]B62-016 景观进场交底专题会议
- 2018年中考语文课内外古诗词鉴赏专题复
- 高考试题研究心得体会
- C语言基础题及答案
- 电气控制及PLC习题及答案
- 都昌小学家长学校汇报材料
- GMAT作文模板正确使用方法
- 俄军办坦克大赛:中国99式有望与豹2A6
- 成本会计练习题
- 酒店餐饮业最流行的5S管理方法
- 2014-2015学年山东省菏泽市高二(下)
- 《黄鹤楼送孟浩然之广陵》教案、说课、
- 2013年结构化学自测题 有答案版
- 2011西安世界园艺博览会游览解说词(附
- 窗口文明单位示范单位创建活动总结
- 2018满分超星尔雅就业课后练习期末答案
- 韶山市城市总体规划-基础资料
- 苏教版第三单元知识点归纳
- 第4章 曲轴模态分析
- 加大查办案件力度的思考
- 武汉CPC导轨介绍




