《大话处理器》连载——微架构(17) 指令调度
2011-08-23 21:00
211 查看
在前面乱序设置陷阱的利子中,如果没有那个聪明的士兵,乱序也就无从谈起。同样,处理器的乱序执行内核也需要一个调度器,分析指令间中的相关性,分析指令什么时候能开始执行。
指令什么时候能开始执行呢?
对于一条指令来说,它有操作码和操作数,操作码描述指令要做什么,处理器会安排一个功能单元(function unit)去执行它。操作数描述指令要处理什么数据,经过寄存器重命名后,目的寄存器总是新的,因此只需要关注源操作数是否准备好即可。所以,指令能否开始执行,依赖于2个条件:
1. 是否有空闲的功能单元去执行这条指令
2. 该指令的源操作数是否已经准备好
只要满足这2条要求,指令就可以去执行,而不需要等待前面的指令完成。这样处理器就完成了乱序调度以及并行调度。
以前面经过寄存器重命名的指令为例,
处理器会记录指令源操作数的准备状态,当指令1完成后,处理器会通知所有依赖F5的指令,F5已经准备好了,指令2需要的2个源操作数F5和F2都已准备好,它就可以被发送到指令的执行队列中去执行。同样,指令3也可以准备执行,如果处理器中有多个加法单元,指令2和指令3就可以同时执行。指令2完成后,F6也准备好了,指令4就可以去执行,指令4执行完后,F8就准备好了,F5早就准备好了,指令5就可以去执行。
在这个调度的例子中,5条指令4个cycle就可以完成,而使用顺序内核,则需要5个cycle。
处理器内部需要一个Buffer来缓存指令,以供乱序调度,这个Buffer就是保留站(Reservation Station),完成寄存器重命名后的指令被放置在保留站中,等到操作数和功能单元都准备好时,保留站中的指令就能被分派出去执行。
指令什么时候能开始执行呢?
对于一条指令来说,它有操作码和操作数,操作码描述指令要做什么,处理器会安排一个功能单元(function unit)去执行它。操作数描述指令要处理什么数据,经过寄存器重命名后,目的寄存器总是新的,因此只需要关注源操作数是否准备好即可。所以,指令能否开始执行,依赖于2个条件:
1. 是否有空闲的功能单元去执行这条指令
2. 该指令的源操作数是否已经准备好
只要满足这2条要求,指令就可以去执行,而不需要等待前面的指令完成。这样处理器就完成了乱序调度以及并行调度。
以前面经过寄存器重命名的指令为例,
序号 | 指令 | 源操作数依赖性描述 | 执行顺序 |
1 | add F5, F1, F2 | 假设F1、F2已准备好 | 1 |
2 | add F6, F5, F2 | F5需要依赖指令1 | 2 |
3 | add F7, F1, F5 | F5需要依赖指令1 | 2 |
4 | add F8, F1, F6 | F6需要依赖指令2 | 3 |
5 | add F9, F8, F5 | F5需要依赖指令1 F8需要依赖指令4 | 4 |
在这个调度的例子中,5条指令4个cycle就可以完成,而使用顺序内核,则需要5个cycle。
处理器内部需要一个Buffer来缓存指令,以供乱序调度,这个Buffer就是保留站(Reservation Station),完成寄存器重命名后的指令被放置在保留站中,等到操作数和功能单元都准备好时,保留站中的指令就能被分派出去执行。
相关文章推荐
- 《大话处理器》连载——微架构(18) 指令的顺序提交
- 《大话处理器》连载——微架构(3) 从子弹射击到指令执行
- 《大话处理器》连载——微架构(7) 流水线上的冒险——数据冒险
- 《大话处理器》连载——微架构(12) 指令的相关
- 《大话处理器》连载——微架构(8) 流水线上的冒险——控制冒险
- 《大话处理器》连载——微架构(4) 史上最经典的5级流水线
- 《大话处理器》连载——微架构(21) 指令并行的“绿营”和“蓝营”
- 《大话处理器》连载——微架构(5) DSP更深的流水线
- 深入理解Yarn的架构及作业调度机制
- Linux-2.6.32 NUMA架构之内存和调度
- 《云计算架构技术与实践》连载(16):2.4云计算解决方案典型架构组合及落地应用场景之2.4.1桌面云
- ARM处理器架构的Thumb指令集中关于IT指令的使用
- 基于Oracle的私有云架构探析(连载一)
- 【C语言】17-预处理指令3-文件包含
- Quartz.NET开源作业调度架构
- Beej’s Guide Network to Programming 系列连载17
- 《BREW进阶与精通――3G移动增值业务的运营、定制与开发》连载之17---BREW核心思想之电子商务
- wanchain区块链连载(一)架构浅析
- 道cpu、道指令、道编程基本原理17
- 《大话处理器》连载—PC机结构探秘(6)显示设备——脸面(1)