*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,中际赛威高科技培训系列,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,C6000,体系结构与汇编语言之三,-,流水线,C6000体系结构与汇编语言之三-流水线,1,非流水与流水的,CPU,非流水与流水的CPU,2,流水线基本级描述,流水线基本级描述,3,程序取指(,PF-,级),程序取指(,PF,)分为,4,个节拍:,PG,:程序地址产生,PS,:程序地址发送,PW,:程序访问等待,PR,:程序接收,程序取指(PF-级)程序取指(PF)分为4个节拍:,4,译码(,D,级),译码分成,2,个节拍:,DP,:,确定指令到功能单元路线(指令分配),DC,:指令在功能单元译码,译码(D级)译码分成2个节拍:,5,C6000,指令类型和执行周期,C62/C64,所有指令仅需要,1,个周期执行,但有些指令的结果被延迟。(,C67,有功能单元等待时间),C6000指令类型和执行周期C62/C64所有指令仅需要1个,6,执行(,E,级),执行(E级),7,取指令(,LD,)执行节拍,虽然取指令只需一个周期执行操作(,E1,),但结果延迟,4,个周期,取指令(LD)执行节拍虽然取指令只需一个周期执行操作(E1),8,C62/C64,总流水线节拍,E2-E6,结果延迟节拍,C67,E1E10,C62/C64总流水线节拍,9,取指包,取指包,10,取指包,取指包,11,代码通过流水线过程举例,代码通过流水线过程举例,12,点积代码,点积代码,13,程序取指开始,程序取指开始,14,程序取指结束,程序取指结束,15,指令分配,指令分配,16,指令译码,指令译码,17,执行(,E1,),执行(E1),18,MVK,完成,,LD,E1,MVK完成,LDE1,19,指令类型和延迟间隙(,delay slots,),指令类型和延迟间隙(delay slots),20,第二个,LD,进入,E1,第二个LD进入E1,21,MPY,到达,E1,MPY到达E1,22,ADD,到达,E1,ADD到达E1,23,MPY/ADD,指令完成,MPY/ADD指令完成,24,使,ADD,延迟执行,使ADD延迟执行,25,ADD,进入,E1,ADD进入E1,26,NOP,与延迟间隙,NOP与延迟间隙,27,添加,NOP,添加NOP,28,使用多周期,NOP,使用多周期NOP,29,代码性能,内核循环:第一个,LD,1,第二个,LD,5,MPY 2,ADD/SUB 2,B 6,总周期数:,16*40=640+2=642,优化后,代码性能内核循环:第一个 LD 1优化后,30,一个综合的例子,B2,一个综合的例子B2,31,记住:,B,:,5,个延迟间隙,LD,:,4,个延迟间隙,MPY,:,1,个延迟间隙,C64:.M,单元的非乘法指令,1,个延迟间隙,.M,单元的扩展乘法指令,3,个延迟间隙,记住:B:5个延迟间隙,32,