35、指令流水线与调度技术详解

指令流水线与调度技术详解

1. 指令执行基础

简单计算机一次只能处理一条指令,其处理流程为:先取指令,接着将指令解码为操作码和操作数指定符,然后从寄存器组(或内存)读取操作数,执行操作码指定的算术运算,最后将结果写回寄存器组(或内存),之后再取下一条指令。

而现代计算机能够同时执行多条不同指令的部分操作。例如,处理器在将两条指令的结果写回寄存器的同时,可能正在对另外三条指令进行算术运算,为两条指令读取操作数,对四条指令进行解码,还在取另外四条指令。不过,可能会有五条指令因等待内存读取结果而延迟。

这种处理器通常从单一控制流中取指令,并非多个程序并行运行,而是单个程序的相邻指令同时进行解码和执行,这就是指令级并行(ILP),它是20世纪最后十年处理器速度大幅提升的重要基础。

2. 指令级并行技术
  • 流水线机器 :在同一周期内,一条指令进行写回操作,下一条指令进行算术“执行”操作,上一条指令进行操作数读取操作,以此类推。
  • 超长指令字(VLIW)机器 :在同一处理器周期内发出多条指令,编译器必须确保这些指令之间没有数据依赖关系。
  • 超标量机器 :如果两条或多条指令之间没有数据依赖关系(可在指令解码硬件中快速检查),则并行发出这些指令;否则,按顺序发出指令。因此,即使数据依赖的指令相邻,程序仍能正确运行,但如果编译器将非数据依赖的指令相邻调度,程序运行速度会更快。
  • 动态调度机器 :在指令执行时对其进行重新排序,以便
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值