SOFT2流水线和中断

上传人:资****亨 文档编号:280270987 上传时间:2022-04-21 格式:PPT 页数:132 大小:1.72MB
返回 下载 相关 举报
SOFT2流水线和中断_第1页
第1页 / 共132页
SOFT2流水线和中断_第2页
第2页 / 共132页
SOFT2流水线和中断_第3页
第3页 / 共132页
SOFT2流水线和中断_第4页
第4页 / 共132页
SOFT2流水线和中断_第5页
第5页 / 共132页
点击查看更多>>
资源描述

《SOFT2流水线和中断》由会员分享,可在线阅读,更多相关《SOFT2流水线和中断(132页珍藏版)》请在金锄头文库上搜索。

1、实时数字信号处理技术实时数字信号处理技术 C6000 软件开发(软件开发(2)流水线和中断流水线和中断北京理工大学电子工程系北京理工大学电子工程系 李云杰李云杰(O)010-68940716第一部分第一部分C6000 DSP的流水线学习的流水线学习学习目标学习目标一、为什么使用流水线?一、为什么使用流水线?二、二、C6000流水线各级介绍流水线各级介绍三、取指包三、取指包四、代码通过流水线的过程举例四、代码通过流水线的过程举例五、串行、部分并行和完全并行代码通过五、串行、部分并行和完全并行代码通过 流水线的过程举例流水线的过程举例六、六、VelociTI与标准与标准VLIW为什么使用流水线为什

2、么使用流水线微处理器结构复杂性换取速度提高微处理器结构复杂性换取速度提高.指令分子操作,不同部件来完成,对于指令分子操作,不同部件来完成,对于每个部件而言,每隔每个部件而言,每隔1个时钟周期就可个时钟周期就可进入进入1条新指令条新指令.同一时间,多条指令交同一时间,多条指令交迭在不同部件内处理迭在不同部件内处理.C6000: 多个指令包并行执行多个指令包并行执行.流水线基本描述流水线基本描述C6000 所有指令按照所有指令按照3级(级(stage)流水)流水线运行线运行 取指(取指(取指(取指(FetchFetch) 译码(译码(译码(译码(DecodeDecode) 执行(执行(执行(执行(

3、ExecuteExecute)流水线基本描述流水线基本描述每一级均包含几个节拍(每一级均包含几个节拍(Phase) 所有指令取指级有所有指令取指级有所有指令取指级有所有指令取指级有4 4个节拍;个节拍;个节拍;个节拍; 所有指令译码级有所有指令译码级有所有指令译码级有所有指令译码级有2 2个节拍;个节拍;个节拍;个节拍; 执行级对不同类型的指令节拍执行级对不同类型的指令节拍执行级对不同类型的指令节拍执行级对不同类型的指令节拍数目不同数目不同数目不同数目不同流水线基本描述流水线基本描述流水线操作以流水线操作以CPU周期为单位周期为单位.1个流水线节拍个流水线节拍 1个个CPU时钟周期时钟周期.随

4、着节拍,代码流经随着节拍,代码流经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 Program

5、 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

6、: DC: (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:乘法运算结束,保存结

8、果:乘法运算结束,保存结果LD指令指令存储指令存储指令存储指令存储指令E1E1:计算数据存储目的地址:计算数据存储目的地址:计算数据存储目的地址:计算数据存储目的地址E2E2:地址发送至数据存储器:地址发送至数据存储器:地址发送至数据存储器:地址发送至数据存储器E3E3:读相应地址的存储器:读相应地址的存储器:读相应地址的存储器:读相应地址的存储器E4E4:读取数据达:读取数据达:读取数据达:读取数据达CPUCPU核边界核边界核边界核边界E5E5:读取数据加载寄存器:读取数据加载寄存器:读取数据加载寄存器:读取数据加载寄存器跳转指令跳转指令尽管跳转指令在一个执行节拍即能完成. 但在分支代码真正

9、开始执行前会有5个时钟周期的延迟间隙.指令类型和延迟间隙(指令类型和延迟间隙(delay slots)类型类型类型类型描述描述描述描述延迟间隙延迟间隙延迟间隙延迟间隙ISCISC单周期指令单周期指令单周期指令单周期指令0 0IMPYIMPY乘法指令乘法指令乘法指令乘法指令1 1LDLD取指令取指令取指令取指令4 4B B跳转指令跳转指令跳转指令跳转指令5 5C62xx总流水线节拍总流水线节拍 E2-E6E2-E6结果延迟节拍结果延迟节拍结果延迟节拍结果延迟节拍取指包取指包256-bit256-bit片内程序数据总线片内程序数据总线片内程序数据总线片内程序数据总线取指包取指包代码通过流水线的过程

10、举例代码通过流水线的过程举例点积代码点积代码程序取指开始程序取指开始程序取指结束程序取指结束指令分配指令分配指令译码指令译码执行(执行(E1)MVK完成,完成,LD E1指令类型和延迟间隙(指令类型和延迟间隙(delay slots)类型类型类型类型描述描述描述描述延迟间隙延迟间隙延迟间隙延迟间隙ISCISC单周期指令单周期指令单周期指令单周期指令0 0IMPYIMPY乘法指令乘法指令乘法指令乘法指令1 1LDLD取指令取指令取指令取指令4 4B B跳转指令跳转指令跳转指令跳转指令5 5第二个第二个LD进入进入E1MPY到达到达E1ADD到达到达E1MPY/ADD指令完成指令完成使使ADD延迟

11、执行延迟执行ADD进入进入E1NOP与延迟间隙与延迟间隙类型类型类型类型描述描述描述描述延迟间隙延迟间隙延迟间隙延迟间隙NOPNOP数数数数ISCISC单周期指令单周期指令单周期指令单周期指令0 00 0IMPYIMPY乘法指令乘法指令乘法指令乘法指令1 11 1LDLD取指令取指令取指令取指令4 44 4B B跳转指令跳转指令跳转指令跳转指令5 55 5添加添加NOP使用多周期使用多周期NOP代码性能代码性能内核循环: 第一个 LD 1 第二个 LD 5 MPY 2 ADD/ SUB 2 B 6 总周期数: 16*40=640+2=642优化后串串行、部分并行和完全并行代码通过行、部分并行和

12、完全并行代码通过流水线的过程举例流水线的过程举例串行代码串行代码串行执行串行执行部分并行代码部分并行代码部分并行执行部分并行执行部分并行执行(第一执行包进入部分并行执行(第一执行包进入DC)部分并行执行(第二执行包进入部分并行执行(第二执行包进入E1)完全并行代码完全并行代码完全并行执行完全并行执行完全并行执行完全并行执行一定记住一定记住 B:5个延迟间隙个延迟间隙 LD:4个延迟间隙个延迟间隙 MPY:1个延迟间隙个延迟间隙流水线的性能考虑流水线的性能考虑一个取指包仅有一个执行包时的流水线一个取指包仅有一个执行包时的流水线一个取指包中有多个执行包时的流水线操作一个取指包中有多个执行包时的流水

13、线操作一个取指包中有多个执行包时的流水线操作一个取指包中有多个执行包时的流水线操作多周期多周期NOP对流水线运行的影响对流水线运行的影响NOP时不使用功能单元的空操作时不使用功能单元的空操作空操作的周期数由该指令选择的操作数空操作的周期数由该指令选择的操作数决定决定如果如果NOP和其它指令并行使用,将给其和其它指令并行使用,将给其它指令加入额外的延迟间隙它指令加入额外的延迟间隙多周期多周期NOP对流水线运行的影响对流水线运行的影响例:单周期例:单周期NOP与其它代码在一个与其它代码在一个EP中中多周期多周期NOP对流水线运行的影响对流水线运行的影响例:多周期例:多周期NOP与其它代码在一个与其

14、它代码在一个EP中中产生除它的执行包内部指令操作之外的空产生除它的执行包内部指令操作之外的空操作操作多周期多周期NOP对流水线运行的影响对流水线运行的影响跳转指令可以影响跳转指令可以影响跳转指令可以影响跳转指令可以影响多周期多周期多周期多周期NOPNOP的执行的执行的执行的执行. .当一个跳转指令延当一个跳转指令延当一个跳转指令延当一个跳转指令延迟间隙结束时,多迟间隙结束时,多迟间隙结束时,多迟间隙结束时,多周期周期周期周期NOPNOP指令不管指令不管指令不管指令不管是否结束,这时跳是否结束,这时跳是否结束,这时跳是否结束,这时跳转都将废弃多周期转都将废弃多周期转都将废弃多周期转都将废弃多周期

15、NOP.NOP.访问存储器对流水线运行的影响访问存储器对流水线运行的影响C6000片内为哈佛结构片内为哈佛结构有独立的程序存储空间和数据存储空间有独立的程序存储空间和数据存储空间程序读取和数据读取在流水线中有相同操作程序读取和数据读取在流水线中有相同操作均是由不同的节拍来完成均是由不同的节拍来完成访问存储器对流水线运行的影响访问存储器对流水线运行的影响数据加载的数据加载的LD指令和取指分配比较指令和取指分配比较访问存储器对流水线运行的影响访问存储器对流水线运行的影响存储器阻塞:当存储器没有准备好对存储器阻塞:当存储器没有准备好对CPU的访问请求进行响应时,会发生存的访问请求进行响应时,会发生存

16、储器阻塞储器阻塞 程序存储器访问:发生在程序存储器访问:发生在程序存储器访问:发生在程序存储器访问:发生在PWPW阶段阶段阶段阶段 数据存储器访问:发生在数据存储器访问:发生在数据存储器访问:发生在数据存储器访问:发生在E3E3阶段阶段阶段阶段访问存储器对流水线允许的影响访问存储器对流水线允许的影响大部分的大部分的C62x系列系列DSP片内存储器的组片内存储器的组织形式为交叉存储方案织形式为交叉存储方案分为若干存储体(分为若干存储体(bank)4个个bank的交叉存储器的交叉存储器LDB / LDH / LDW访问存储器对流水线允许的影响访问存储器对流水线允许的影响C6211、C6711、C64x 系列系列DSP采用采用2级级高速缓存(高速缓存(Cache)结构,不存在数据)结构,不存在数据存储器访问时的存储器访问时的bank冲突问题冲突问题片内存储器组织形式不同,因器件而异片内存储器组织形式不同,因器件而异VelociTI与标准与标准VLIWVelociTI与标准与标准VLIWVelociTI与标准与标准VLIW 定义定义定义定义: :取指包:取指包:取指包:取指包:8 8个个个个3

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

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

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