二讲流水线介绍.ppt
BIT/TI,第二讲 流水线介绍,1,第二讲 流水线介绍,BIT/TI,第二讲 流水线介绍,2,学习内容,描述C62xx流水线操作定义:取指包、执行包、延迟间隙观察串联、部分串联和并行代码流过流水线情况比较VeiociTI和标准VLIW,BIT/TI,第二讲 流水线介绍,3,题目,一、为什么使用流水线?二、C62xx流水线各级介绍三、取指包四、代码通过流水线的过程举例五、串行、部分并行和完全并行代码通过 流水线的过程举例六、VelociTI与标准VLIW,BIT/TI,第二讲 流水线介绍,4,一、为什么使用流水线?,BIT/TI,第二讲 流水线介绍,5,非流水与流水的CPU,BIT/TI,第二讲 流水线介绍,6,二、C62xx流水线各级介绍,BIT/TI,第二讲 流水线介绍,7,流水线基本级描述,BIT/TI,第二讲 流水线介绍,8,程序取指(PF-级),程序取指(PF)分为4个节拍:PG:程序地址产生 PS:程序地址发送 PW:程序访问等待 PR:程序接收,BIT/TI,第二讲 流水线介绍,9,译码(D级),译码分成2个节拍:DP:确定指令到功能单元路线(指令分配)DC:指令在功能单元译码,BIT/TI,第二讲 流水线介绍,10,C62xx指令类型和执行周期,C62xx所有指令仅需要1个周期执行,但有些指令的结果被延迟。,BIT/TI,第二讲 流水线介绍,11,执行(E级),BIT/TI,第二讲 流水线介绍,12,取指令(LD)执行节拍,虽然取指令只需一个周期执行操作(E1),但结果延迟4个周期,BIT/TI,第二讲 流水线介绍,13,C62xx总流水线节拍,E2-E6结果延迟节拍,BIT/TI,第二讲 流水线介绍,14,三、取指包,BIT/TI,第二讲 流水线介绍,15,取指包,BIT/TI,第二讲 流水线介绍,16,C62xx系统方框图,256-bit片内程序数据总线,BIT/TI,第二讲 流水线介绍,17,四、代码通过流水线过程举例,BIT/TI,第二讲 流水线介绍,18,点积代码,BIT/TI,第二讲 流水线介绍,19,程序取指开始,BIT/TI,第二讲 流水线介绍,20,程序取指结束,BIT/TI,第二讲 流水线介绍,21,指令分配,BIT/TI,第二讲 流水线介绍,22,指令译码,BIT/TI,第二讲 流水线介绍,23,执行(E1),BIT/TI,第二讲 流水线介绍,24,MVK完成,LDE1,BIT/TI,第二讲 流水线介绍,25,指令类型和延迟间隙(delay slots),BIT/TI,第二讲 流水线介绍,26,第二个LD进入E1,BIT/TI,第二讲 流水线介绍,27,MPY到达E1,BIT/TI,第二讲 流水线介绍,28,ADD到达E1,BIT/TI,第二讲 流水线介绍,29,MPY/ADD指令完成,BIT/TI,第二讲 流水线介绍,30,使ADD延迟执行,BIT/TI,第二讲 流水线介绍,31,ADD进入E1,BIT/TI,第二讲 流水线介绍,32,NOP与延迟间隙,BIT/TI,第二讲 流水线介绍,33,添加NOP,BIT/TI,第二讲 流水线介绍,34,使用多周期NOP,BIT/TI,第二讲 流水线介绍,35,代码性能,内核循环:第一个 LD 1 第二个 LD 5 MPY 2 ADD/SUB 2 B 6 总周期数:16*40=640+2=642,优化后,BIT/TI,第二讲 流水线介绍,36,五、串行、部分并行和完全并行代码通过流水线的过程举例,BIT/TI,第二讲 流水线介绍,37,串行代码,BIT/TI,第二讲 流水线介绍,38,串行执行,BIT/TI,第二讲 流水线介绍,39,部分并行代码,BIT/TI,第二讲 流水线介绍,40,部分并行执行,BIT/TI,第二讲 流水线介绍,41,部分并行执行(第一执行包进入DC),BIT/TI,第二讲 流水线介绍,42,部分并行执行(第一执行包进入E1),BIT/TI,第二讲 流水线介绍,43,部分并行执行(第二执行包进入E1),BIT/TI,第二讲 流水线介绍,44,完全并行代码,BIT/TI,第二讲 流水线介绍,45,完全并行执行,BIT/TI,第二讲 流水线介绍,46,完全并行执行,BIT/TI,第二讲 流水线介绍,47,记住:,B:5个延迟间隙 LD:4个延迟间隙 MPY:1个延迟间隙,BIT/TI,第二讲 流水线介绍,48,六、VelociTI与标准VLIW,BIT/TI,第二讲 流水线介绍,49,VelociTI与标准VLIW,BIT/TI,第二讲 流水线介绍,50,VelociTI(定义),定义:取指包:8个32-bit指令VLIW:甚长指令字(256-bit)EP:执行包指令:32-bit操作码VelociTI:TI的VLIW结构,BIT/TI,第二讲 流水线介绍,51,VelociTI与标准VLIW比较,VelociTI 可减小代码尺寸达到8:1较少的程序取指较少的功耗较低的存储器成本,BIT/TI,第二讲 流水线介绍,52,VelociTI的EP/FP编排,执行包不能超出取指包边界汇编器在编排执行包时,对于不够8条指令的取指包,用NOP填充。,BIT/TI,第二讲 流水线介绍,53,总结,C62xx流水线操作取指包、执行包、延迟间隙串行、部分并行和完全并行代码通过流水线VelociTI结构,