流水线中哪一个是正确的?

Which one is right one in pipelining?

我正在研究CPU流水线,遇到了麻烦。
我想知道下图中哪一个是正确的流水线
在我看来,第一个甘特图有点 "structural hazard" 因为 "IF" 阶段部分重叠。我认为不允许将一个阶段用于两个指令。所以我觉得第二个是对的....
我说的对吗?

你是对的。

第一个图表在第二个周期中有两条指令被提取。除非另有说明,否则不能这样做。

在某些情况下这是允许的:

  • 取指令分为IF1IF2两个阶段,每个阶段占用1个周期。 IF1IF2 可以重叠。
  • 数据路径和指令缓存支持 2 个同时操作。