流水线与指令重排序

本文介绍了流水线技术在指令执行中的应用,通过详细阐述A=B+C的执行过程,展示了指令执行的五个步骤,并指出如何通过指令重排序来减少停顿,提高CPU性能。同时强调了重排序必须遵循happens-before规则以确保正确性。
摘要由CSDN通过智能技术生成

流水线是一种指令级并行技术。

指令执行步骤

  • 取指  IF                                (从内存中取出指令)                
  • 译码和取寄存器操作数  ID    (把指令送到指令译码器进行译码,产生相应控制信号) 
  • 执行或者有效地址计算  EX    (指挥并控制CPU、内存、I/O设备的之间的数据流动)
  • 存储器访问  MEM
  • 写回  WB

汇编指令不是一步可以执行完毕的,每个步骤涉及的硬件可能不同,所以可以使用流水线技术来执行指令。

可以看到,当第2条指令执行时,第1条指令只是完成了取值操作。假如每个步骤需要1毫秒,那么如果指令2等待指令1执行完再执行,就需要等待5毫秒。而使用流水线后,只需要等待1毫秒。

 

A = B + C 的执行过程

LW表示load,LW R1,B,把B的值加载到R1寄存器中。ADD是加法,把R1、R2的值相加,并存放到R3中。SW表示store存储,将R3寄存器的值保存到变量A中。

在ADD指令上的大叉表示一个中断,也就是在这里停顿了一下,因为R2中的数据还没准备好。由于ADD的延迟,后面的指令都要慢一个节拍。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值