没有合适的资源?快使用搜索试试~ 我知道了~
单片机与DSP中的TMS320C55x DSP并行处理技术分析与应用
1 下载量 157 浏览量
2020-12-06
19:21:32
上传
评论
收藏 92KB PDF 举报
温馨提示
试读
3页
C55x DSP内核结构 C55x DSP是一款采用改良型哈佛结构,高度模块化的数字信号处理器拥有比普通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总线)。这种高度模块化的多总线结构使得
资源详情
资源评论
资源推荐
单片机与单片机与DSP中的中的TMS320C55x DSP并行处理技术分析与应并行处理技术分析与应
用用
C55x DSP内核结构 C55x DSP是一款采用改良型哈佛结构,高度模块化的数字信号处理器拥有比普通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内核结构内核结构
C55x DSP是一款采用改良型哈佛结构,高度模块化的数字信号处理器拥有比普通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拥有超强的并行处理能力。
M单元主要管理数据区(包括I/O数据区)与中央处理器(CPU)之间的数据传送,使得高速CPU与外部相对低速的存储器之间
在吞吐量上的瓶颈可以得到一定程度的缓解。
I单元从程序数据总线接收程序代码,并将其放入指令缓冲队列(IBQ)中,然后利用指令译码器将指令缓冲队列中的程序代
码进行译码,最后再将译码后的指令送给P单元、A单元、D单元进行处理。
P单元主要是通过判断是否满足条件执行指令的条件来控制程序地址的产生,达到控制程序流程的目的。程序控制单元中
还含有程序控制寄存器、循环控制寄存器、中断寄存器和状态寄存器等硬件寄存器。通过循环控制寄存器的设置,可以直接控
制程序中的循环次数等,而不必像在普通DSP中一样在外部对循环条件进行判断,从而可以有效提高运行效率。
A单元的功能是产生读写数据空间的地址。地址生成单元由数据地址产生电路(DAGEN)、16位的算术逻辑单元(ALU)和一
组寄存器构成。C55x DSP地址产生与其他功能模块分开,保证不会因为地址产生的原因使得单条指令需要在多个时钟周期内
完成,提高了DSP的运行效率。A单元中的寄存器包括数据页寄存器、辅助寄存器、堆栈指针寄存器、循环寻址寄存器和临时
寄存器等。
D单元是C55x DSP中主要的数据执行部件,完成大部分数据的算术运算工作。它由移位器、40位ALU、两个17位的乘累
加器(MAC)和若干寄存器构成。数据计算单元的两个乘累加器能够并行使用,可以有效提高DSP运行效率。D单元中的寄存器
包括累加器和两个用于维特比译码的专用指令寄存器。
并行处理基本准则并行处理基本准则
C55x DSP内核结构可知,整个处理器的地址及数据运算由P单元、A单元和D单元完成。这三个单元相对独立,各自通过
总线与数据区及程序区相连。这种相互独立的模块化结构,在硬件特性上确保这三个单元在同一时钟周期内能够进行并行处
理,完成各自不同的运算操作。
在C55x DSP指令集中有一些固定搭配的并行执行指令(主要是利用D单元双MAC结构的并行指令),这些被固定使用的并
行指令之间使用“::”符号连接。除了这些固有的并行指令外,用户也可以根据CPU结构特征自行定义并行指令,并行的两条指
令之间需使用“||”符号连接,以区分指令集中的并行指令。
用户自定义并行指令时,必须遵守如下3条并行处理基本规则:
规则1: 保证不产生硬件冲突,包括操作数、寄存器、总线及各运算模块的冲突。在对C55x DSP的所有操作中,对P、
A、D三个单元进行操作的指令类型有14类,这14类操作指令之间有很大一部分可以相互并行运行。经过我们对C55x DSP硬
件电路结构的分析,在只考虑硬件模块冲突的情况下,我们得出如图2所示的C55xDSP并行处理能力分析图。将14类操作指
令组成了一个14×14的矩阵,列出了每一类指令与其自身及其他13类指令并行执行的能力。图中画有(符号的空格代表不能并
行执行,相反没有任何符号的空格代表可以并行执行。
在考虑并行处理的硬件冲突时,还需要考虑总线资源的冲突。总线资源的冲突通常发生在数据总线和常量总线,C55x
DSP中含有5条数据总线和2条常量总线。
数据总线中,C、D总线是读数据总线,通过这两条总线进行数据读取;E、F总线是写数据总线,通过这两条总线进行数
据写操作;另外还有一条特殊的B总线,这条总线可以进行读或写操作,但是它只能被CDP寄存器使用,而其它辅助寄存器无
法使用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)的限制,并行语句的总长度不能超过6个字节。 I单元中的译码器只能将IBQ中的1~6个字节
weixin_38574132
- 粉丝: 7
- 资源: 909
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0