分支指令的 MIPS 关键路径

MIPS critical path of a branch instruction

假设我有一个 MIPS 处理器执行 beq 指令,例如beq $t1, $t2, label

我正在尝试找出这条指令的关键路径。假设每个组件都有相同的延迟。我对关键路径的想法如下:

Path 1: Add -> ............ -> Add -> Mux

Path 2: IM -> Control -> Mux -> ALU -> Mux

Path 3: IM -> Registers -> Mux -> ALU -> Mux

考虑到它必须等待一些信号准备就绪,我该如何着手填写路径 1 的其余部分(或其他路径,如果它们是错误的)?

如果我们假设所有组件的延迟都相同(并忽略门延迟),那么路径 3 是否不是关键路径还有什么原因吗?

如果您希望能够比较路径,请选择所有感兴趣的路径都必须经过的一个点,然后在每条路径中从那里开始计数。在您的情况下,最简单和最明显的一点可能是 PC 闩锁,因为这是您图表上最左边的东西。这些路径都是从那一点开始的循环,经过不同的块,最后都在下一条指令的同一点结束。

如果一条路径必须等待来自其他路径的信号,那么它不是关键路径——它正在等待的路径更为关键。 (最)关键路径将是不必等待来自其他路径的任何信号的路径,因为在关键路径到达那里之前,其他信号将始终存在。