简单MIPS指令的执行及动态调度

本文详细介绍了MIPS指令的5个时钟周期,包括取指令、指令译码、执行、访问存储器和写回操作。接着讨论了采用计分板机制的动态调度方法,阐述了发射、读操作数的步骤以及计分板技术的构成和作用。最后,探讨了Tomasulo方法,该方法通过操作数跟踪、寄存器重命名来减少流水线中的冒险,以提高执行效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简单MIPS指令的5个时钟周期

1.      取指周期(IF)

IR <- Mem[PC] ;

NPC <- PC + 4 ;

操作:根据PC指向的地址从Memory中取指令并装载到寄存器(IR)中,同时PC+4以获得下一条指令的地址。IR中保存下一个时钟周期需要的指令,NPC中保存下一条指令的PC。

2.      指令译码/读寄存器周期(ID)

A <- Regs[rs];

B <- Regs[rt] ;

Imm <- IR的立即数字段进行符号扩展

操作:分析指令并访问寄存器堆读寄存器,读寄存器和分析指令可以并行执行。

3.      执行/有效地址周期(EX)

操作:ALU对上一个时钟周期准备好的操作数进行计算。

4.      访问存储器/转移完成指令(MEM)

操作:在需要时访问存储器,如果是load命令,从存储器中读数据,并装入到寄存器中;如果是store命令,则将寄存器中的数据写入到存储器中。

5.      写回周期(WB)

操作:将结果写回到寄存器。

 

采用计分板机制的动态调度法

        将指令译码流水段(ID)分为:

1.      发射:译码指令,并检测数据结构冒险的情况;

2.      读操作数:等到不存在数据冒险时,读出操作数。

计分板技术:

在动态流水线中,所有的指令在发射阶段均是按序发射的,但在读操作数阶段,有可能会产生停顿或旁路,而影响轮序执行。计分板技术就是在资源单元充足,没有数据相关存在的情况下,允许乱序执行的一种技术。

计分板技术就是负责指令发射和执行的,也负责所有冒险的检测和解除。

计分板由三部分组成:

1.      指令状态表;

2.      功能单元状态表

3.      寄存器结果状态表

 

用Tomasulo方法进行动态调度

        通过对操作数进行跟踪,使指令在操作数可用时立即开始执行,以减少RAW冒险;通过引入寄存器重命名较少WAW和WAR冒险。

        在Tomasulo算法中,寄存器重命名是通过保留站实现的,保留站为等待发射的指令保留操作数。基本思想:当操作数可用时,保留站马上取操作数并将其缓存,从而避免从寄存器中读操作数;指令执行时直接从保留站中取操作数;当对寄存器的后续写操作在执行过程中发生重叠时,可对寄存器重命名,消除冒险,实现轮序执行。

           Tomasulo算法运用了两种不同的技术:寄存器重命名技术和源操作数缓存技术。


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值