流水线中的时钟周期和单时钟周期实现
Clock cycle in pipelining and single-clock cycle implementation
有两种执行指令的机制。
- 单时钟周期实现
- 流水线。
在 MIPS 体系结构中(来自 Computer organization and design 一书),指令有 5 个阶段。
因此,在单时钟周期实现中,这意味着在一个时钟周期内,一条指令执行 5 个阶段。
例如加载指令(它有5个阶段)在一个时钟周期内执行。所以其他指令可以在这个时钟周期之后执行。
假设一个时钟周期为 10 秒。
现在,在流水线中,多条指令可以重叠。与上面示例中的一个时钟周期的时间相比,我对这个概念感到困惑。
这里要执行5条指令,需要9个时钟周期。意思是执行5条指令,需要90秒。但在单时钟周期实现中,执行5条指令只需要50秒。流水线需要更多的时钟周期。(不好)我想错了吗?还是我遗漏了什么??
这里,因此,要执行第一条指令 lw , 20()
,需要 50 秒??
我认为您的主要误解是您认为两种设计中时钟周期的持续时间相同,但事实并非如此。
让我们将单周期设计中的时钟周期表示为 X
,将流水线设计中的时钟周期表示为 Y
。
在单周期设计中,5 条指令将花费 5X
个周期,而在流水线设计中,这将花费 9Y
个周期。
现在我们需要找到X
和Y
之间的关系。
现在想想你只有一条指令要执行的情况。
在单周期设计中,这将需要 X
个周期,而在流水线设计中,这将需要 5Y
。如果两者的时钟频率相同,X
应该等于 5Y
.
现在让我们做一些替换数学:-)
单周期 - 5X
管道 - 9Y
代入 X
= 5Y
单周期 - 25Y
管道 - 9Y
给你。单周期设计比多周期设计慢 2.7 倍。
有两种执行指令的机制。
- 单时钟周期实现
- 流水线。
在 MIPS 体系结构中(来自 Computer organization and design 一书),指令有 5 个阶段。
因此,在单时钟周期实现中,这意味着在一个时钟周期内,一条指令执行 5 个阶段。
例如加载指令(它有5个阶段)在一个时钟周期内执行。所以其他指令可以在这个时钟周期之后执行。 假设一个时钟周期为 10 秒。
现在,在流水线中,多条指令可以重叠。与上面示例中的一个时钟周期的时间相比,我对这个概念感到困惑。
这里要执行5条指令,需要9个时钟周期。意思是执行5条指令,需要90秒。但在单时钟周期实现中,执行5条指令只需要50秒。流水线需要更多的时钟周期。(不好)我想错了吗?还是我遗漏了什么??
这里,因此,要执行第一条指令 lw , 20()
,需要 50 秒??
我认为您的主要误解是您认为两种设计中时钟周期的持续时间相同,但事实并非如此。
让我们将单周期设计中的时钟周期表示为 X
,将流水线设计中的时钟周期表示为 Y
。
在单周期设计中,5 条指令将花费 5X
个周期,而在流水线设计中,这将花费 9Y
个周期。
现在我们需要找到X
和Y
之间的关系。
现在想想你只有一条指令要执行的情况。
在单周期设计中,这将需要 X
个周期,而在流水线设计中,这将需要 5Y
。如果两者的时钟频率相同,X
应该等于 5Y
.
现在让我们做一些替换数学:-)
单周期 - 5X
管道 - 9Y
代入 X
= 5Y
单周期 - 25Y
管道 - 9Y
给你。单周期设计比多周期设计慢 2.7 倍。