




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 TMS320C55xTMS320C55x DSPDSP 并行处理技术分析与并行处理技术分析与 TMS320C55x DSP 并行处理技术分析与应用 类别:单片机/DSP TMS320C55x DSP 是一种高性能的数字信号处理器,其强大的并行处理能力能够进一步提高其运算能力。本文介绍了 C55xDSP 的内核结构以及用户自定义并行指令时必须遵守如下 3 条并行处理基本规则,并介绍了 6 种典型的并行处理应用。利用本文介绍的方法使用并行处理能力将有效提高程序执行效率,同时降低系统功耗。 德州仪器公司(TI)的 TMS320C55x(简称 C55x)DSP 内核是在 TMS320C54x(简称
2、C54x)基础上开发出来的,并可以兼容 C54x 的源代码。C55x 的内核电压降到了 1V,功耗降到0.05mW/MIPS,是 C54x 的 1/6。C55x 的运行时钟可以达到 200MHz,是 C54x 的两倍,再加上 C55x 在 C54x 结构上作了相当大的扩展,程序执行时可以大量采用并行处理,这样使得 C55x 的实际运算能力可以达到 300MIPS 以上。 C55x DSP 已越来越多地应用于各种手持便携终端当中。以下我们将通过详细介绍C55x 的 CPU 内核结构,讨论其并行处理技术的应用。 C55x DSP 内核结构 C55x DSP 是一款采用改良型哈佛结构,高度模块化的数
3、字信号处理器拥有比普通DSP 更为丰富的硬件资源,能够有效提高运算能力。其内核结构如图 1 所示,整个处理器内部分为 5 个大的功能单元:存储器缓冲单元(M 单元)、指令缓冲单元(I 单元)、程序控制单元(P 单元)、地址生成单元(A 单元)和数据计算单元(D 单元),各个功能单元之间通过总线连接。C55x DSP 中有 1 条 32 位程序数据总线(P 总线),1 条 24 位程序地址总线(PA 总线),5 条 16 位的数据总线(B、C、D、E、F 总线)和 5 条 24 位的数据地址总线(BA、CA、DA、EA、FA 总线)。这种高度模块化的多总线结构使得 C55x DSP 拥有超强的并
4、行处理能力。 M 单元主要管理数据区(包括 I/O 数据区)与中央处理器(CPU)之间的数据传送,使得高速 CPU 与外部相对低速的存储器之间在吞吐量上的瓶颈可以得到一定程度的缓解。 I 单元从程序数据总线接收程序代码,并将其放入指令缓冲队列(IBQ)中,然后利用指令译码器将指令缓冲队列中的程序代码进行译码,最后再将译码后的指令送给 P 单元、A 单元、D 单元进行处理。 P 单元主要是通过判断是否满足条件执行指令的条件来控制程序地址的产生,达到控制程序流程的目的。程序控制单元中还含有程序控制寄存器、循环控制寄存器、中断寄存器和状态寄存器等硬件寄存器。通过循环控制寄存器的设置,可以直接控制程序
5、中的循环次数等,而不必像在普通 DSP 中一样在外部对循环条件进行判断,从而可以有效提高运行效率。 A 单元的功能是产生读写数据空间的地址。地址生成单元由数据地址产生电路(DAGEN)、16 位的算术逻辑单元(ALU)和一组寄存器构成。C55x DSP 地址产生与其他功能模块分开,保证不会因为地址产生的原因使得单条指令需要在多个时钟周期内完成,提高了 DSP 的运行效率。A 单元中的寄存器包括数据页寄存器、辅助寄存器、堆栈指针寄存器、循环寻址寄存器和临时寄存器等。 D 单元是 C55x DSP 中主要的数据执行部件,完成大部分数据的算术运算工作。它由移位器、40 位 ALU、两个 17 位的乘
6、累加器(MAC)和若干寄存器构成。数据计算单元的两个乘累加器能够并行使用,可以有效提高 DSP 运行效率。D 单元中的寄存器包括累加器和两个用于维特比译码的专用指令寄存器。 并行处理基本准则 如图 1 所示 C55x DSP 内核结构可知,整个处理器的地址及数据运算由 P 单元、A单元和 D 单元完成。这三个单元相对独立,各自通过总线与数据区及程序区相连。这种相互独立的模块化结构,在硬件特性上确保这三个单元在同一时钟周期内能够进行并行处理,完成各自不同的运算操作。 在 C55x DSP 指令集中有一些固定搭配的并行执行指令(主要是利用 D 单元双 MAC 结构的并行指令),这些被固定使用的并行
7、指令之间使用“:”符号连接。除了这些固有的并行指令外,用户也可以根据 CPU 结构特征自行定义并行指令,并行的两条指令之间需使用“|”符号连接,以区分指令集中的并行指令。 用户自定义并行指令时,必须遵守如下 3 条并行处理基本规则: 规则 1: 保证不产生硬件冲突,包括操作数、寄存器、总线及各运算模块的冲突。在对 C55x DSP 的所有操作中,对 P、A、D 三个单元进行操作的指令类型有 14 类,这14 类操作指令之间有很大一部分可以相互并行运行。经过我们对 C55x DSP 硬件电路结构的分析,在只考虑硬件模块冲突的情况下,我们得出如图 2 所示的 C55xDSP 并行处理能力分析图。图
8、中将 14 类操作指令组成了一个 1414 的矩阵,列出了每一类指令与其自身及其他 13 类指令并行执行的能力。图中画有(符号的空格代表不能并行执行,相反没有任何符号的空格代表可以并行执行。 在考虑并行处理的硬件冲突时,还需要考虑总线资源的冲突。总线资源的冲突通常发生在数据总线和常量总线,C55x DSP 中含有 5 条数据总线和 2 条常量总线,各条总线与各运算模块的连接如图 3 所示。 数据总线中,C、D 总线是读数据总线,通过这两条总线进行数据读取;E、F 总线是写数据总线,通过这两条总线进行数据写操作;另外还有一条特殊的 B 总线,这条总线可以进行读或写操作,但是它只能被 CDP 寄存
9、器使用,而其它辅助寄存器无法使用 B总线。 两条常量总线分别是 KA、KD 总线。KA 常量总线用于产生地址数据。P 单元的 KA 常量总线负责产生程序地址,例如跳转指令 B #Routine2 中,常量#Routine2 就是通过 KA常量总线被送到 P 单元的。A 单元的 KA 常量总线负责产生数据存储区地址,例如在指令 Mov*SP(#7),Brc0 中,偏移量#7 就是通过 KA 常量总线被送到 A 单元的。KD 总线用于传送参与运算的常量数据,例如指令 ADD #123,AC0 中,常量 123 就是通过 KD 总线传送的。 规则 2:受指令缓冲队列(IBQ)的限制,并行语句的总长度
10、不能超过 6个字节。 I 单元中的译码器只能将 IBQ 中的 16 个字节的程序进行译码。如果一条并行语句的长度超过 6 个字节,则需要在两个时钟周期内对其进行两次译码。因此必须将两条并行语句的总长度限制在 6 个字节。 规则 3:当需要寻址两个及以上数据存储区数据时,必须使用双重 AR 间接寻址方式。 采用双重 AR 间接寻址方式,可以通过使用 2 个不同的辅助寄存器(AR0AR7)同时访问数据存储区中两个不同的数据。在这种寻址方式下,我们可以通过两条不同的数据总线,在同一时钟周期内寻址两个不同数据,并将其输入不同的运算模块进行计算。 常用并行处理应用 在编程实现过程中,对每一个并行处理都进
11、行仔细分析将能达到事半功倍的效果。下面是我们总结出的几种典型并行处理应用: 1. D 单元双 MAC 结构的并行处理 在 C55x DSP 的 D 单元中采用了双 MAC 的结构,其结构如图 4 所示。这里有 3 条数据总线(B、C、D 数据总线)与两个 MAC 模块相连。在同一时钟周期里,可以同时通过 3条数据总线将三个不同地址的数据传入两个 MAC 模块中进行并行计算。 通常情况下,两个 MAC 模块的运算总共需要 4 个数据,而这里的总线数却只有 3 条,所以在并行使用双 MAC 结构时,两个 MAC 模块必须共用一组数据,而另外两组数据分别分配给两个 MAC 模块。这使得双 MAC 结
12、构的并行应用受到一定的限制。 C55x 的双 MAC 结构比较典型的应用如不同数据的相同算法处理和同一数据的不同算法处理。下面是对不同数据进行相同 FIR 滤波的实例: MAC *AR0+,*CDP+,AC0 :MAC *AR1+,*CDP+,AC1 其中 AR0 和 AR1 寄存器分别指向输入的两组数据,CDP 寄存器指向 FIR 滤波器的抽头系数。C55x DSP 的指令集中还含有其它与双 MAC 模块并行处理的专用指令,在此就不再仔细分析。 2. 存储区数据装载指令与存储指令的并行 A 单元、P 单元和 D 单元均可以对存储器中数据实现装载及存储。数据的装载与存储使用的是不同总线,不会发
13、生硬件冲突,易于实现并行处理。以下是在 D 单元内实现两个数据装载与存储的实例: MOV AC0,*AR1 |MOV *AR2,AC1 此例是在 D 单元内对 AC0 进行存储并装载数据到 AC1。程序执行时,将数据通过 D总线读入 AC1 寄存器,同时将 AC0 数据通过 E 总线写入存储器,这样就避免了硬件冲突,满足并行规则 1。两条指令总长度为 4 字节,小于 IBQ6 个字节的限制,满足了并行规则 2。两条指令均采用双重间接寻址,满足了并行规则 3。通过上机调试,这条并行指令确实能够正确编译并执行。 3. A 单元中 ALU 运算与 D 单元中 ALU、MAC 和移位运算的并行 下面我
14、们以一个实例来进行说明: ADD T0,AR1 |MOV HI(AC0 MOV HI(AC0 |ADD AC0,AC1 这是一个 D 单元移位操作模块与 D 单元 ALU 模块的并行处理实例。它在移位操作模块中完成寄存器 AC0 的移位,然后将移位后的值通过 E 总线存储到存储器中,同时在ALU 模块中完成寄存器 AC0 与 AC1 的加法运算,然后将结果存放于 AC1。这两条指令不存在硬件冲突,满足并行规则 1。两条指令总长度为 5 个字节,小于 IBQ6 字节的限制,满足并行规则 2。这里只需使用一个存储器中的数据,不需满足并行规则 3。通过上机调试,这条并行指令能够正确编译并执行。 5.
15、 程序控制操作与运算操作的并行 P 单元程序控制模块与其他的算术运算模块相对较独立,不易发生硬件冲突,便于进行并行处理。下面是一个程序控制指令与算术运算指令的并行: ADD *AR2,AC0 |RPTBLOCAL JUMP1 这是一个 D 单元 ALU 模块与 P 单元程序控制模块的并行实例。它在 D 单元 ALU 中将 D 总线送来的数据与 AC0 相加并存入 AC0,同时完成程序循环控制。程序执行中不存在硬件模块和总线的冲突,满足并行规则 1;两条指令总长度为 5 字节,满足并行规则 2;此例只使用一个存储器中的数据,不需要满足并行规则 3。通过上机调试,这条并行指令能够正确编译并执行。
16、6. 使用常量对存储器进行初始化 D 单元拥有两条写总线(E、F 总线),在通常情况下我们只使用了其中的一条写总线造成资源浪费。假如我们需要对某块数据存储区清零,通常的做法如下: RPT #9 MOV #0,*AR1+ 这段程序对存储区数据逐一清零,每次只使用了 D 单元的 E 总线,总共需要 10 个时钟周期才能完成。在这种情况下,如果我们充分利用 E、F 总线,将有效地降低这段程序的运算量。具体实现如下: MOV #0,AC0 |RPT #4 MOV AC0,DBL(*AR1+) 这段程序与上一段的最大不同点在于,一个时钟周期内通过 E、F 总线将两个初始数据同时传送到指定的数据区,同时初始化
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 运城市中医院神经根病诊断考核
- 巴彦淖尔市人民医院胎儿窘迫诊断与处理考核
- 2025第三人民医院种植维护管理考核
- 2025广东省事业单位集中招聘高层次和急需紧缺人才第二轮滚动招聘(龙门县招聘岗位综合类)直接业务考核考试参考题库及答案解析
- 忻州市中医院感染科护理安全考核
- 2025年新能源车辆运输服务合同模板
- 2025年新能源行业绿色技术研发与创新成果转化路径报告
- 2025阜阳阜南县开发第六批专项岗位扶持退役军人80人再就业考试参考试题及答案解析
- 2025国家高速列车技术创新中心、高速列车(青岛)技术创新中心有限公司招聘考试参考题库及答案解析
- 2025年新能源汽车动力电池安全测试与认证方法研究报告
- 海上卫勤课件
- 2025年云南交投集团下属保山管理处收费员等岗位招聘(62人)备考考试题库附答案解析
- 2025团校入团培训考试题库(考点梳理)附答案详解
- 工伤预防安全知识培训课件
- 冲压车间职工管理制度
- 2025-2026学年(人教版)初中数学七年级上册第一次月考 (1-2章)(含答案)
- 2025年公安部交管局三力测试题库及答案
- 离婚协议书规范模板及填写指南
- 中国人寿上海分公司社招笔试信息
- 2025天津泰达热电能源管理有限公司及所属企业招聘12人考试参考题库及答案解析
- 有机半导体课件
评论
0/150
提交评论