SOFT2流水线和中断.ppt
《SOFT2流水线和中断.ppt》由会员分享,可在线阅读,更多相关《SOFT2流水线和中断.ppt(132页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Chapter 10,Slide 1SOFT2流水线和中断 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望第一部分第一部分C6000 DSP的流水线学习的流水线学习学习目标学习目标一、为什么使用流水线?一、为什么使用流水线?二、二、C6000流水线各级介绍流水线各级介绍三、取指包三、取指包四、代码通过流水线的过程举例四、代码通过流水线的过程举例五、串行、部分并行和完全并行代码通过五、串行、部分并行和完全并行代码通过 流水线的过程举例流水线的过程举例六、六、Velo
2、ciTI与标准与标准VLIW为什么使用流水线为什么使用流水线微处理器结构复杂性换取速度提高微处理器结构复杂性换取速度提高.指令分子操作,不同部件来完成,对于指令分子操作,不同部件来完成,对于每个部件而言,每隔每个部件而言,每隔1个时钟周期就可个时钟周期就可进入进入1条新指令条新指令.同一时间,多条指令交同一时间,多条指令交迭在不同部件内处理迭在不同部件内处理.C6000:多个指令包并行执行多个指令包并行执行.流水线基本描述流水线基本描述C6000 所有指令按照所有指令按照3级(级(stage)流水)流水线运行线运行 取指(取指(取指(取指(FetchFetch)译码(译码(译码(译码(Deco
3、deDecode)执行(执行(执行(执行(ExecuteExecute)流水线基本描述流水线基本描述每一级均包含几个节拍(每一级均包含几个节拍(Phase)所有指令取指级有所有指令取指级有所有指令取指级有所有指令取指级有4 4个节拍;个节拍;个节拍;个节拍;所有指令译码级有所有指令译码级有所有指令译码级有所有指令译码级有2 2个节拍;个节拍;个节拍;个节拍;执行级对不同类型的指令节拍执行级对不同类型的指令节拍执行级对不同类型的指令节拍执行级对不同类型的指令节拍数目不同数目不同数目不同数目不同流水线基本描述流水线基本描述流水线操作以流水线操作以CPU周期为单位周期为单位.1个流水线节拍个流水线节
4、拍 1个个CPU时钟周期时钟周期.随着节拍,代码流经随着节拍,代码流经C6000内部流水线内部流水线的各个部件的各个部件.流水线取指级(流水线取指级(PF级)级)程序取指(程序取指(PF)分为)分为4个节拍:个节拍:PG:PG:程序地址产生程序地址产生程序地址产生程序地址产生(P Program address rogram address g generate)enerate)PS:PS:程序地址发送程序地址发送程序地址发送程序地址发送(P Program address rogram address s send)end)PW:PW:程序访问等待程序访问等待程序访问等待程序访问等待(P P
5、rogram access ready rogram access ready w wait)ait)PR:PR:程序接收程序接收程序接收程序接收(P Program fetch packet rogram fetch packet r receive)eceive)流水线取指级(流水线取指级(PF级)级)流水线译码级(流水线译码级(D级)级)程序译码(程序译码(D)分为)分为2个节拍:个节拍:DPDP:(Instruction:(Instruction D Dis isp patch)atch)确定指令到功能单元路线确定指令到功能单元路线确定指令到功能单元路线确定指令到功能单元路线 DC:D
6、C:(Instruction(Instruction d de ec code)ode)指令在功能单元译码指令在功能单元译码指令在功能单元译码指令在功能单元译码流水线译码级(流水线译码级(D级)级)指令指令指令指令NOPNOP由于与功能单元无关,因此不分配功能单元由于与功能单元无关,因此不分配功能单元由于与功能单元无关,因此不分配功能单元由于与功能单元无关,因此不分配功能单元流水线执行级(流水线执行级(E级)级)根据定点和浮点流水线分成不同的节拍根据定点和浮点流水线分成不同的节拍 定点:执行级定点:执行级定点:执行级定点:执行级5 5个节拍(个节拍(个节拍(个节拍(E1E1E5E5)浮点:执行
7、级浮点:执行级浮点:执行级浮点:执行级1010个节拍(个节拍(个节拍(个节拍(E1E1E10E10)完成完成不同类型指令不同类型指令所需节拍数目不同所需节拍数目不同流水线执行级(流水线执行级(E级)级)执行节拍描述E1完成单周期指令E2完成乘法指令E3E4E5数据读入寄存器E6跳转发生单周期指令单周期指令E1节拍中所有的操作都能运行完毕.读取操作数运算结构存储乘法指令乘法指令16bit16bit 乘法指令乘法指令E1:读取操作数,乘法运算开始:读取操作数,乘法运算开始E2:乘法运算结束,保存结果:乘法运算结束,保存结果LD指令指令存储指令存储指令存储指令存储指令E1E1:计算数据存储目的地址:
8、计算数据存储目的地址:计算数据存储目的地址:计算数据存储目的地址E2E2:地址发送至数据存储器:地址发送至数据存储器:地址发送至数据存储器:地址发送至数据存储器E3E3:读相应地址的存储器:读相应地址的存储器:读相应地址的存储器:读相应地址的存储器E4E4:读取数据达:读取数据达:读取数据达:读取数据达CPUCPU核边界核边界核边界核边界E5E5:读取数据加载寄存器:读取数据加载寄存器:读取数据加载寄存器:读取数据加载寄存器跳转指令跳转指令尽管跳转指令在一个执行节拍即能完成.但在分支代码真正开始执行前会有5个时钟周期的延迟间隙.指令类型和延迟间隙(指令类型和延迟间隙(delay slots)类
9、型类型描述描述延迟间隙延迟间隙ISCISC单周期指令单周期指令0 0IMPYIMPY乘法指令乘法指令1 1LDLD取指令取指令4 4B B跳转指令跳转指令5 5C62xx总流水线节拍总流水线节拍 E2-E6E2-E6结果延迟节拍结果延迟节拍结果延迟节拍结果延迟节拍取指包取指包256-bit256-bit片内程序数据总线片内程序数据总线片内程序数据总线片内程序数据总线取指包取指包代码通过流水线的过程举例代码通过流水线的过程举例点积代码点积代码程序取指开始程序取指开始程序取指结束程序取指结束指令分配指令分配指令译码指令译码执行(执行(E1)MVK完成,完成,LD E1指令类型和延迟间隙(指令类型和
10、延迟间隙(delay slots)类型类型描述描述延迟间隙延迟间隙ISCISC单周期指令单周期指令0 0IMPYIMPY乘法指令乘法指令1 1LDLD取指令取指令4 4B B跳转指令跳转指令5 5第二个第二个LD进入进入E1MPY到达到达E1ADD到达到达E1MPY/ADD指令完成指令完成使使ADD延迟执行延迟执行ADD进入进入E1NOP与延迟间隙与延迟间隙类型类型描述描述延迟间隙延迟间隙NOPNOP数数ISCISC单周期指令单周期指令0 00 0IMPYIMPY乘法指令乘法指令1 11 1LDLD取指令取指令4 44 4B B跳转指令跳转指令5 55 5添加添加NOP使用多周期使用多周期NO
11、P代码性能代码性能内核循环:第一个 LD 1 第二个 LD 5 MPY 2 ADD/SUB 2 B 6 总周期数:16*40=640+2=642优化后串串行、部分并行和完全并行代码通过行、部分并行和完全并行代码通过流水线的过程举例流水线的过程举例串行代码串行代码串行执行串行执行部分并行代码部分并行代码部分并行执行部分并行执行部分并行执行(第一执行包进入部分并行执行(第一执行包进入DC)部分并行执行(第二执行包进入部分并行执行(第二执行包进入E1)完全并行代码完全并行代码完全并行执行完全并行执行完全并行执行完全并行执行一定记住一定记住 B:5个延迟间隙个延迟间隙 LD:4个延迟间隙个延迟间隙 M
12、PY:1个延迟间隙个延迟间隙流水线的性能考虑流水线的性能考虑一个取指包仅有一个执行包时的流水线一个取指包仅有一个执行包时的流水线一个取指包中有多个执行包时的流水线操作一个取指包中有多个执行包时的流水线操作一个取指包中有多个执行包时的流水线操作一个取指包中有多个执行包时的流水线操作多周期多周期NOP对流水线运行的影响对流水线运行的影响NOP时不使用功能单元的空操作时不使用功能单元的空操作空操作的周期数由该指令选择的操作数空操作的周期数由该指令选择的操作数决定决定如果如果NOP和其它指令并行使用,将给其和其它指令并行使用,将给其它指令加入额外的延迟间隙它指令加入额外的延迟间隙多周期多周期NOP对流
13、水线运行的影响对流水线运行的影响例:单周期例:单周期NOP与其它代码在一个与其它代码在一个EP中中多周期多周期NOP对流水线运行的影响对流水线运行的影响例:多周期例:多周期NOP与其它代码在一个与其它代码在一个EP中中产生除它的执行包内部指令操作之外的空产生除它的执行包内部指令操作之外的空操作操作多周期多周期NOP对流水线运行的影响对流水线运行的影响跳转指令可以影响跳转指令可以影响跳转指令可以影响跳转指令可以影响多周期多周期多周期多周期NOPNOP的执行的执行的执行的执行.当一个跳转指令延当一个跳转指令延当一个跳转指令延当一个跳转指令延迟间隙结束时,多迟间隙结束时,多迟间隙结束时,多迟间隙结束
14、时,多周期周期周期周期NOPNOP指令不管指令不管指令不管指令不管是否结束,这时跳是否结束,这时跳是否结束,这时跳是否结束,这时跳转都将废弃多周期转都将废弃多周期转都将废弃多周期转都将废弃多周期NOP.NOP.访问存储器对流水线运行的影响访问存储器对流水线运行的影响C6000片内为哈佛结构片内为哈佛结构有独立的程序存储空间和数据存储空间有独立的程序存储空间和数据存储空间程序读取和数据读取在流水线中有相同操作程序读取和数据读取在流水线中有相同操作均是由不同的节拍来完成均是由不同的节拍来完成访问存储器对流水线运行的影响访问存储器对流水线运行的影响数据加载的数据加载的LD指令和取指分配比较指令和取指
15、分配比较访问存储器对流水线运行的影响访问存储器对流水线运行的影响存储器阻塞:当存储器没有准备好对存储器阻塞:当存储器没有准备好对CPU的访问请求进行响应时,会发生存的访问请求进行响应时,会发生存储器阻塞储器阻塞 程序存储器访问:发生在程序存储器访问:发生在程序存储器访问:发生在程序存储器访问:发生在PWPW阶段阶段阶段阶段 数据存储器访问:发生在数据存储器访问:发生在数据存储器访问:发生在数据存储器访问:发生在E3E3阶段阶段阶段阶段访问存储器对流水线允许的影响访问存储器对流水线允许的影响大部分的大部分的C62x系列系列DSP片内存储器的组片内存储器的组织形式为交叉存储方案织形式为交叉存储方案
16、分为若干存储体(分为若干存储体(bank)4个个bank的交叉存储器的交叉存储器LDB/LDH/LDW访问存储器对流水线允许的影响访问存储器对流水线允许的影响C6211、C6711、C64x 系列系列DSP采用采用2级级高速缓存(高速缓存(Cache)结构,不存在数据)结构,不存在数据存储器访问时的存储器访问时的bank冲突问题冲突问题片内存储器组织形式不同,因器件而异片内存储器组织形式不同,因器件而异VelociTI与标准与标准VLIWVelociTI与标准与标准VLIWVelociTI与标准与标准VLIW 定义定义定义定义:取指包:取指包:取指包:取指包:8 8个个个个32-bit32-b
17、it指令指令指令指令VLIWVLIW:甚长指令字(:甚长指令字(:甚长指令字(:甚长指令字(256-bit256-bit)EPEP:执行包:执行包:执行包:执行包指令:指令:指令:指令:32-bit32-bit操作码操作码操作码操作码VelociTIVelociTI:TITI的的的的VLIWVLIW结构结构结构结构VelociTI与标准与标准VLIW VelociTI VelociTI 可减小代可减小代可减小代可减小代码尺寸达到码尺寸达到码尺寸达到码尺寸达到8 8:1 1较少的程序取指较少的程序取指较少的程序取指较少的程序取指较少的功耗较少的功耗较少的功耗较少的功耗较低的存储器成本较低的存储器
18、成本较低的存储器成本较低的存储器成本VelociTI的的EP/FP编排编排执行包不能超出取指包边界执行包不能超出取指包边界执行包不能超出取指包边界执行包不能超出取指包边界汇编器在编排执行包时,对于不汇编器在编排执行包时,对于不汇编器在编排执行包时,对于不汇编器在编排执行包时,对于不够够够够8 8条指令的取指包,用条指令的取指包,用条指令的取指包,用条指令的取指包,用NOPNOP填填填填充。充。充。充。休息!休息!第二部分第二部分C6000 DSP的中断学习的中断学习学习目标学习目标中断概述中断概述中断及中断源的类型中断及中断源的类型中断控制中断控制中断的响应和处理中断的响应和处理中断概述中断概
19、述Interrupts are used to interrupt normal program flow so that the CPU can respond to events.The events can occur at anytime.中断概述中断概述处理器需要怎样做支持中断处理器需要怎样做支持中断 Storage of interrupt requestsStorage of interrupt requests Program controlled enabling and maskingProgram controlled enabling and masking Force
20、d branch to a new programForced branch to a new program Saving the program stateSaving the program state Cause identificationCause identification State restorationState restoration 引自:引自:引自:引自:Encyclopedia of Computer Science and EngineeringEncyclopedia of Computer Science and Engineering中断概述中断概述中断事
21、件中断事件32个个中断源中断源同时处理同时处理14个(个(15)中断事件选择中断事件选择外中断信号外中断信号 4(8/12)个个控制寄存器控制寄存器 8个个中断事件中断事件C6201/6202/6701的中断事件的中断事件(16/18)中断事件中断事件C6211/6711的中断事件的中断事件(13)中断源中断源按优先级分为三类按优先级分为三类按优先级分为三类按优先级分为三类CPU IntCPU Int RESET RESET NMI NMIreservedreservedreservedreserved INT4 INT4 INT5 INT5INT6INT6INT7INT7INT8INT8IN
22、T9INT9INT10INT10INT11INT11INT12INT12INT13INT13INT14INT14INT15INT15优先级优先级优先级优先级HighHighLowLow与中断有关的控制寄存器与中断有关的控制寄存器与中断有关的控制寄存器与中断有关的控制寄存器控制控制/状态寄存器状态寄存器 CSR大小端位(大小端位(Endian)Little-endian ordering,in which bytes are ordered from right to left,the most significant byte having the highest addressBig-end
23、ian ordering,in which bytes are ordered from left to right,the most significant byte having the lowest address大小端位由DSP的EN管脚设置GIE位和位和PGIE位位用处:中断返回时,恢复被嵌套中断中GIE位的设置。B(.unit)IRP.unit=.S2IRP的值被放入的值被放入PFC(program fetch counter).并且把并且把PGIE恢复到恢复到GIE中,中,PGIE保持不变保持不变.中断管脚中断管脚C621x,C671x and C64x 器件没有器件没有IACK
24、 and INUM 管脚管脚.C6xC6xRESETRESETINT4INT4NMINMIIACKIACKINUM3INUM3INT5INT5INT6INT6INT7INT7INUM2INUM2INUM1INUM1INUM0INUM04个可屏蔽的外部中断2个不可屏蔽中断中断响应和标识CPU 中断及中断源类型中断及中断源类型CPU IntCPU Int RESET RESET NMI NMIreservedreservedreservedreserved INT4 INT4 INT5 INT5INT6INT6INT7INT7INT8INT8INT9INT9INT10INT10INT11INT11
25、INT12INT12INT13INT13INT14INT14INT15INT15SourcesSources(HPI)(HPI)DSPINT DSPINTTINT0TINT0TINT1TINT1SD_INTSD_INTEXT_INT4EXT_INT4EXT_INT5EXT_INT5EXT_INT6EXT_INT6EXT_INT7EXT_INT7DMA_INT0DMA_INT0DMA_INT1DMA_INT1DMA_INT2DMA_INT2DMA_INT3DMA_INT3XINT0XINT0RINT0RINT0XINT1XINT1RINT1RINT1DescriptionDescriptionH
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SOFT2 流水线 中断
限制150内