结构2_流水线(20100915)

上传人:mg****85 文档编号:49800389 上传时间:2018-08-03 格式:PPT 页数:46 大小:1.56MB
返回 下载 相关 举报
结构2_流水线(20100915)_第1页
第1页 / 共46页
结构2_流水线(20100915)_第2页
第2页 / 共46页
结构2_流水线(20100915)_第3页
第3页 / 共46页
结构2_流水线(20100915)_第4页
第4页 / 共46页
结构2_流水线(20100915)_第5页
第5页 / 共46页
点击查看更多>>
资源描述

《结构2_流水线(20100915)》由会员分享,可在线阅读,更多相关《结构2_流水线(20100915)(46页珍藏版)》请在金锄头文库上搜索。

1、第2章 数字信号处理器结构1、处理器(基本结构)2、指令控制单元与流水线3、处理单元与数据通道4、存储器结构5、Cache、VLIW结构、SIMD结构、中断 机制、片上通用外设结构 BIT/TI1第二节 指令控制单元与流水线l1、指令控制单元l2、指令流水线BIT/TI21、指令控制单元组合逻辑电路时序逻辑电路组成:如何控制?BIT/TI32、流水线非流水与流水的CPUBIT/TI42、流水线流水线基本级描述(Fetch)(Decode)(Execute)BIT/TI53、指令流水线执行BIT/TI64、C62x指令流水线lC6000的指令、译码、执行阶段都分为更细 的子阶段,或称为节拍l取指

2、级有4个节拍(phase)l译码级有2个节拍l执行级对不同类型指令有不同数目的节拍,最长为5节拍。 BIT/TI74、C62x指令流水线:取指l流水线取指级的4个节拍分别如下:lPG:程序地址产生(Program address generate )lPS:程序地址发送(Program address send)lPW:程序访问等待(Program access ready wait)lPR:程序取指包接收(Program fetch packet receive)BIT/TI84、C62x指令流水线: 取指BIT/TI94、C62x指令流水线: 取指取指包通过流水线取指级的各节拍流程8条指令

3、组成一个取指包,共256bitBIT/TI104、C62x指令流水线:译码l流水译码级的2个节拍lDP:指令分配(Instruction dispatch),确定指令 到功能单元路线lDC:指令译码(Instruction decode),指令在 功 能单元译码BIT/TI114、C62x指令流水线:译码各节拍流水线译码框图BIT/TI124、C62x指令流水线:执行C62x/C64x所有指令仅需要1个周期执行, 但有些指令的结果被延迟。(C67x有功能单 元等待时间)延迟间隙BIT/TI134、C62x指令流水线:执行BIT/TI144、C62x指令流水线: 执行BIT/TI154、C62x

4、指令流水线:执行BIT/TI164、C62x指令流水线:执行l乘法指令 MPY .M1 A1,A2,A3读A1,A2E2M1a M1bM1a M1b写A3下一个乘法指令MPY .M1 A1,A2,A3E1乘法指令MPY:Why “NOP 1”?BIT/TI174、C62x指令流水线:执行取数据指令(LD):Why “Nop 4”? 虽然取指令只需一个周期执行操作(E1),但 结果延迟4个周期BIT/TI184、C62x指令流水线:执行取跳转指令 B:Why “NOP 5”?E1 E2 E3 E4 E5 E6 B目的地址的指令PG PS PW PR DP DC E1NOP 5BIT/TI194、

5、C62x指令流水线E2-E6结果延迟节拍 C67,E1E10C62x/C64x总流水线节拍BIT/TI204、C62x指令流水线l在周期7,取指包FPn的指令达到E1,同时FPn +1的指 令正在译码,FPn+2的指令处在DP,FPn+3,n+4, n+5,n+6分别处在取指的4个节拍阶段 BIT/TI215、流水线等待时间l流水线等待时间(latency)l是一条流水线的二次启动之间的时间单位(时钟 周期)数。l等待时间为k是指二次启动之间有k个时钟周期 的间隔 l延迟间隙(delay slots)l是指一条指令在第一个执行节拍E1以后占用的 CPU周期数。l根据延迟间隙可确定指令的执行周期

6、。 BIT/TI226、流水线冲突l冲突l在同一时间,试图二次或更多次启动使用同一流 水线段将会引起冲突(collision)。l流水线冲突l是指在一条流水线里试图同时使用同一硬件的资 源冲突。l冲突将破坏流水线的正常流水执行,降低流水 线的工作效率,因此在指令流的安排时要尽量 避免资源冲突。l充分利用流水线是DSP高性能的一个重要因素 。l当程序中的算法保持流水线充满,这时的流水 线最有效 BIT/TI236、流水线冲突例子BIT/TI246、流水线冲突例子BIT/TI25代码通过流水线过程举例BIT/TI26点积代码BIT/TI271、程序取指开始BIT/TI282、程序取指结束BIT/T

7、I293、指令分配BIT/TI304、指令译码BIT/TI315、执行(E1)BIT/TI326、MVK完成,LDE1BIT/TI33指令类型和延迟间隙(delay slots)BIT/TI347、第二个LD进入E1BIT/TI358、MPY到达E1BIT/TI369、ADD到达E1BIT/TI3710、MPY /ADD指令完成问题?BIT/TI3811、使ADD延迟执行BIT/TI3912、ADD进入E1BIT/TI40NOP与延迟间隙BIT/TI41添加NOPBIT/TI42使用多周期NOPBIT/TI43代码性能内核循环: 第一个 LD 1第二个 LD 5MPY 2ADD/ SUB 2B 6总周期数:16*40=640+2=642优化后642周期3410ns (200MHz )30周期150ns (200MHz)BIT/TI44一个综合的例子B2BIT/TI45记住:l B: 5个延迟间隙l LD: 4个延迟间隙l MPY: 1个延迟间隙lC64: .M单元的非乘法指令 1个延迟间隙 .M单元的扩展乘法指令 3个延迟间隙BIT/TI46

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

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