"计算机组织与体系结构 - 第17讲:动态调度与Tomasulo算法"
需积分: 0 121 浏览量
更新于2024-01-13
收藏 1.11MB PDF 举报
计算机组织与体系结构是研究计算机硬件和软件之间关系的一门学科。在第17讲中,我们学习了几个重要的概念和技术,包括指令队列的取指令、操作数的运算和结果的写入、相关性、指令的动态调度以及Tomasulo算法。
首先,指令队列中的Issue阶段是指从指令队列中取指令进行执行的过程。在这个阶段,计算机会从指令队列中选择一条指令,并进行相应的操作。
其次,Execution阶段是对操作数进行运算的阶段。计算机会对所选取的指令中的操作数进行运算,并得到一个结果。
最后,Write result阶段是将运算得到的结果写入内存或者寄存器的阶段。在这个阶段,计算机会将运算得到的结果存储在指定的位置中。
接下来,我们学习了相关性的概念。相关性包括数据相关、名相关和控制相关。数据相关表示在指令执行过程中,后一条指令需要使用前一条指令的结果作为输入。名相关是指在指令执行过程中,指令的输出与后面的指令的输入具有依赖关系。控制相关是指指令执行的顺序与原始的程序顺序不一致。
为了解决相关性的问题,我们学习了指令的动态调度。动态调度是指在指令执行过程中根据相关性决定指令的执行顺序。动态调度有着很多优点,比如可以提高指令的并行度、提高CPU的利用率等。但是也存在着一些缺点,比如需要额外的硬件支持、增加了开销等。
我们还学习了乱序执行和记分牌这两个重要的概念。乱序执行是一种指令执行的方式,在这种方式下,指令的执行顺序不一定与原始的程序顺序一致。记分牌是一种实现乱序执行的硬件机制,它通过集中控制指令的流出和执行,来达到指令并行执行的目的。
记分牌主要包含三个部分:指令状态表、功能部件状态表和结果寄存器状态表。指令状态表用来记录指令的状态信息,比如指令是否在流出、读操作数、执行和写结果。功能部件状态表用来记录每个功能部件的状态,比如是否在执行指令、指令的类型等。结果寄存器状态表用来记录结果寄存器的状态,比如结果的值、是否可用等。
除了记分牌,我们还学习了另一种动态调度算法,即Tomasulo算法。Tomasulo算法是一种基于功能部件的执行顺序的动态调度算法。它采用了记分牌中的一些理念,并进行了改进。通过Tomasulo算法,我们可以实现更高效的指令执行和更好的指令重叠执行。
最后,我们学习了IBM 360/91前面板Tomasulo算法在商业计算机中的应用。IBM 360/91是一款在Cache技术出现之前推出的商业计算机。它在设计上有一些限制,比如只有四个双精度浮点寄存器、访存时间和浮点计算时间都很长等。但是它也具备一些优点,比如可以支持循环的多次迭代重叠执行等。
总而言之,在本讲中,我们学习了计算机组织与体系结构中的一些重要概念和技术,包括指令的取指令、运算和写结果,相关性,指令的动态调度以及记分牌和Tomasulo算法等。这些知识对于理解计算机的工作原理和提高计算机性能具有重要意义。
2010-10-18 上传
352 浏览量
2012-10-06 上传
2013-11-13 上传
2010-05-31 上传
2021-10-10 上传
巧笑倩兮Evelina
- 粉丝: 26
- 资源: 335
最新资源
- 平尾装配工作平台运输支撑系统设计与应用
- MAX-MIN Ant System:用MATLAB解决旅行商问题
- Flutter状态管理新秀:sealed_flutter_bloc包整合seal_unions
- Pong²开源游戏:双人对战图形化的经典竞技体验
- jQuery spriteAnimator插件:创建精灵动画的利器
- 广播媒体对象传输方法与设备的技术分析
- MATLAB HDF5数据提取工具:深层结构化数据处理
- 适用于arm64的Valgrind交叉编译包发布
- 基于canvas和Java后端的小程序“飞翔的小鸟”完整示例
- 全面升级STM32F7 Discovery LCD BSP驱动程序
- React Router v4 入门教程与示例代码解析
- 下载OpenCV各版本安装包,全面覆盖2.4至4.5
- 手写笔画分割技术的新突破:智能分割方法与装置
- 基于Koplowitz & Bruckstein算法的MATLAB周长估计方法
- Modbus4j-3.0.3版本免费下载指南
- PoqetPresenter:Sharp Zaurus上的开源OpenOffice演示查看器