"计算机组织与体系结构 - 第17讲:动态调度与Tomasulo算法"

需积分: 0 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算法等。这些知识对于理解计算机的工作原理和提高计算机性能具有重要意义。