数字信号处理技术及其应用 教学课件 ppt 作者 刘丽钧 2.7 流水线

上传人:E**** 文档编号:89505179 上传时间:2019-05-26 格式:PPT 页数:19 大小:357.50KB
返回 下载 相关 举报
数字信号处理技术及其应用 教学课件 ppt 作者 刘丽钧 2.7 流水线_第1页
第1页 / 共19页
数字信号处理技术及其应用 教学课件 ppt 作者 刘丽钧 2.7 流水线_第2页
第2页 / 共19页
数字信号处理技术及其应用 教学课件 ppt 作者 刘丽钧 2.7 流水线_第3页
第3页 / 共19页
数字信号处理技术及其应用 教学课件 ppt 作者 刘丽钧 2.7 流水线_第4页
第4页 / 共19页
数字信号处理技术及其应用 教学课件 ppt 作者 刘丽钧 2.7 流水线_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《数字信号处理技术及其应用 教学课件 ppt 作者 刘丽钧 2.7 流水线》由会员分享,可在线阅读,更多相关《数字信号处理技术及其应用 教学课件 ppt 作者 刘丽钧 2.7 流水线(19页珍藏版)》请在金锄头文库上搜索。

1、2.7 流水线,流水线操作 延迟分支转移 条件执行 双寻址存储器与流水线 单寻址存储器与流水线 流水线的等待周期,六级深度流水线:,这六级流水线是独立的,在任何一个周期内,可以有16 条不同的指令同时工作,每条指令工作在不同的流水线上。,时间,分支转移指令流水线:,由下图可知: 周期1:用分支转移指令的地址al加载PAB。 周期2和周期周期3:取得双字分支转移指令(取指)。 周期4和周期5:i3和i4指令取指。由于这两条指令处在分支转移指令的后面,虽然已经取指,但不能进入译码级,且最终被丢弃。分支转移指令进入译码级,用新的值(bl)加载PAB。 周期6和周期7:双字分支转移指令进入流水线的执行

2、级。在周期6,j1指令取指。 周期8和周期9:由于i3和i4指令是不允许执行的,所以这两个周期均花在分支转移指令的执行上。这就是为什么执行分支转移指令要用4个周期。 周期10:执行j1指令。,延迟分支转移与流水线:,C54x允许紧跟延迟分支转移指令后面的两条单字、单周期指令i3和i4执行完毕。这样,只有周期6和周期7花在延迟分支转移指令上,从而使延迟分支转移指令变成一个2周期指令。,利用分支转移指令B: LD x,A ADD y,A STL A,s LD s,T MPY z,A STL A,r B next 共8个字,10个T,利用延迟分支转移: LD x,A ADD y,A STL A,s

3、LD s,T BD next MPY z,A STL A,r 共8个字,8个T,延迟分支转移举例:,条件执行与流水线:,由下图可见: 周期4:XC指令的地址a4加载到PAB。 周期5:取XC指令的操作码。 周期7:当XC指令在流水线中进行到寻址级时,求解XC指令所规定的条件。如果条件满足,则后面的两条指令i5和i6进入译码级并执行;如果条件不满足,则不对i5和i6指令译码。,双操作存储器(DARAM)与流水线: 双操作存储器:在一个单周期内可以对片内存储器 访问二次。由几个独立的存储器块组成,当访问不 同的块时而不会发生冲突。 1)当流水线中的一条指令访问一个块时,处于同 一周期的另一条指令可

4、以无冲突的访问另一块。 2)处于流水线不同阶段的两条指令可以同时访问 同一块。,DARAM能够在单周期内允许被访问两次那是因为第一次访问在前半周期,第二次访问在后半周期。 利用PAB/PB取指 前半周期 利用DAB/DB读取第一个数据 前半周期 利用CAB/CB读取第二个数据 后半周期 利用EAB/EB将数据写入存储器 后半周期 如果CPU同时访问DARAM的同一存储器块就会发生时序上的冲突,此时CPU通过将访问延迟一个周期或重新排列访问次序来自动消除这些冲突。,单寻址存储器(SARAM)与流水线: 1)单寻址读/写存储器(SARAM) 2)单寻址只读存储器(ROM或DROM) 单寻址存储器也

5、是分块的,CPU可以在单周期内对每个存储器块访问一次,同时访问不同的单操作存储器块就会发生冲突。这是,在这个周期只执行第一个访问,而在下一个周期执行第二个访问,这使得流水线有一个周期的延迟。,不能自动消除的流水线冲突: 辅助寄存器(AR0-AR7) 重复块长度寄存器(BK) 堆栈指针(SP) 暂存器(T) 处理器工作方式状态寄存器 (PMST) 状态寄存器(ST0和ST1) 块重复计数器(BRC) 存储器映象累加器(AG,AH,AL,BG,BH,BL),只有某些MMR写操作会冲突:,举例: STLM #lk,AR1 LD *AR1,B,W表示写到AR1,N表示指令需要AR1的值,STM #lk

6、,AR1 LD AR1,B,STLM是一个周期。STM用二个周期,并且一旦常数 译码后,马上就写到AR1中。,例2: STLM A,AR0 STM #10,AR1 LD *AR1,B,第二条指令的写自动延迟一个周期,但第三条指令需要 AR1的内容,由于AR1的内容还没有修改好,故有冲突。 解决冲突的办法是在STLM指令后插入一条NOP指令 或任意一条与程序无关的单字指令。,STLM A,AR0 NOP STM #10,AR1 LD *AR1,B,第一条 NOP 第三条 第四条,可以看出插入一条NOP后解决了冲突的问题。,等待周期表给出了对存储器映像寄存器以及控制字段进行写操作的各种指令所需要插

7、入的等待周期表。 双字或三字指令都提供隐含的保护周期。 例1:LD GAIN,T STM #input,AR1 MPY *AR1+,A 由于STM是一条双字指令,隐含一个等待周期,故对 AR1来讲,等待周期为0。 例2:STLM B,AR2 NOP STM #input,AR3 MPY *AR2+,*AR3+,A 查等待周期表,STLM指令后应插入2个NOP,但由于 下条指令STM隐含1个等待周期,故只需插入一个NOP。,例3:MAC X,B STLM B,ST0 NOP NOP NOP ADD table,A,B 例4:RPTB endloop-1 RSBX BRAF nop nop nop nop nop nop ,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号