1

在此处输入图像描述

上图中,是不是SUB BX,4忙(乱序调度)??为什么不忙呢?因为根据乱序执行的定义,我们只是在改变调度指令的方式。只要没有依赖关系,我们就可以按任何顺序执行它们,而不是按顺序执行它们。谁能给出填充表 15.4 背后的逻辑?我可以按照表 15.3 但不能按照表 15.4

4

1 回答 1

0

在乱序处理器中,SUB BX,4 不是依赖于另一条指令结果的数据。因此它可以开始执行,因为管道 #2 可用,尽管该管道也忙于负载。它是一条多条指令在运行的流水线,而不是一个只有一条指令的两周期功能单元。MOV CX,2000 也有问题,因为它可用。

现在有一个气泡,因为加载没有完成,找不到另一条指令来执行。所以它被标记为忙碌一个周期。现在加载的结果在 DL 中可用,并且下一条指令可以在周期 4 中的管道 1 中执行。管道 #2 处于空闲状态,因为我假设 SUB 占用了两个周期。

您没有提供有关指令延迟的足够信息。

于 2020-05-29T18:30:43.610 回答