繁体   English   中英

在多周期、流水线数据路径但非流水线控制处理器中,CPI 和周期时间是多少?

[英]In a multi-cycle, pipelined datapath, but unpipelined control processor, what is the CPI and the cycle time?

我对流水线数据路径和流水线控制处理器有点困惑,这两者有什么区别? 此外,我还发现了一些网站声明了“流水线/非流水线系统”这一术语,我也想对此进行一些解释。 关于上面提到的问题,答案是“> 1,简短”,但我无法弄清楚答案背后的逻辑,所以也请帮助我。

通常,有单周期、多周期和流水线三个术语; 还有数据路径和控制。

  • 单周期处理器将在一个较长的周期内执行每条指令,因此其 CPI 为 1,其周期时间是较大硬件电路中的关键路径所花费的时间,通常是加载类型指令的数据路径。

  • 多周期处理器将在几个(例如 4-5 个)较短的周期内执行每条指令,因此每条指令的 CPI 为 4-5 个周期。 循环时间会更短,假设循环时间恒定,那么循环时间将反映每个循环中所有硬件的关键路径的最大值。

  • 流水线处理器将在 5 个较短的周期内执行每条指令,其中一条指令的 5 个周期与其他指令的周期重叠,因此处理器最多可以同时执行 5 条指令。 鉴于此,最大 CPI 为 1,因为每个周期完成 1 条指令,尽管在大多数工作负载中,各种危险会减慢它的最大值。 周期时间也是 5 个周期的关键路径中的最大值。

  • 数据路径是指通常为字大小的信息,因此在 32 位处理器上为 32 位宽。 例如,来自 ALU 的两个 32 位输入和一个 32 位输出是数据路径。 一些数据路径短于 32 位,例如,寄存器编号为 5 位宽,立即数为 16 位宽。

  • 控制路径是指通常为 1 位宽的信号,用于控制哪些电路被查看和哪些被忽略。 对于每种不同类型的指令,控制信号的设置不同。 硬件是所有可能指令所需的所有不同电路的合并。 每个单独的指令只使用一些硬件,但所有硬件都必须在那里才能执行所有不同的指令类型。 大多数控制信号都用于控制某些 MUX,后者选择两个数据路径中的一个进行转发(因此忽略另一个)。 一些控制信号是多位的,如在 ALU 控制中,因为 ALU 操作需要几个位来区分加、或、与、减、比较等。

在同一个处理器实现中拥有流水线数据路径但非流水线控制对我来说没有意义。 如果处理器是流水线的,那将适用于数据路径和控制。

单周期和多周期处理器都是非流水线的,因为流水线是指执行一条指令的周期与另一条指令的周期重叠。 这种重叠会导致非流水线处理器中不存在的危险,因为下一条指令在先前的完成之前开始。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM