C54x DSP的流水线操作以及优化指南

2019-07-28 19:03发布

流水线操作是指各个指令以机器周期为单位,相差一个时间周期、连续并行发生的一系列总线操作,对于多总线的Harvard结构有可能使用同一条指令,在不同的机器周期内占用不同的总线资源;也可以不同指令在同一机器周期内占用不同的总线资源。基于C54x DSP的处理器平台,其流水线的特点会在具体的开发过程中可以利用来做优化。
1.'C54xx的六级流水指令




友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
13条回答
biechedan
1楼-- · 2019-07-29 12:10
例: ORM #20, PMST ; OVLY=1 (2w, 2c)


biechedan
2楼-- · 2019-07-29 15:53
4)情况3,提前安排写操作
# 对MMR及有关的状态寄存器状态位都是在初始化时设置的,在整个运行期间不发生变化;
# 通常写入和读出之间差6个周期以上,可以避免冲突;
# 推荐常用指令:(这些指令可以把流水线冲突减到最小)


biechedan
3楼-- · 2019-07-29 20:53
 精彩回答 2  元偷偷看……
biechedan
4楼-- · 2019-07-29 23:39
保护性指令列表
Protected Instructions Name
Pipeline Phase

STM #K, MMR
Read
2w/2c
POPM MMR
Read
1w/1c
MVDK Smem, dmad
Read
2w/2c
MVDD Xmem, Ymem
Read
1w/1c
MVMM MMR(src), MMR(dst)
Write
1w/1c
ST #K, Smem
Read
2w/2c
POPD Smem
Read
1w/1c
MVMD MMR, Smem
Read
2w/2c
biechedan
5楼-- · 2019-07-30 03:01
②应用等待周期表
# 等待周期表,给出了对MMR以及控制字段进行写操作时的各种指令所需插入的等待周期数;
下图给出对MMRs标准写操作所需的最大等待周期数


biechedan
6楼-- · 2019-07-30 03:47
4、Notes注意点

# 利用在线帮助正确使用指令,尽量避免流水线的冲突;

# 应用CCS编译时的流水线冲突提示:

Project →Build Option →Compiler → Diagnostics

Warn on Pipeline Conflicts

一周热门 更多>