通常有三个术语:单周期、多周期和流水线,还有数据路径和控制。
- 单周期处理器将在一个较长的周期内执行每条指令,因此它的CPI为1,它的循环时间是较大硬件电路中关键路径所需的时间,通常是加载类型指令的数据路径。
- 多周期处理器将在几个(例如4-5)较短的周期内执行每条指令,因此每条指令的CPI为4-5周期,循环时间较短,假设周期为常数,则循环时间将反映每个周期内所有硬件的关键路径的最大值。
- 流水线处理器将以5个较短的周期执行每条指令,一条指令的5个周期与其他指令的周期重叠,这样处理器可以同时执行多达5条指令。考虑到最大CPI为1,因为每个周期有1条指令完成,尽管在大多数工作负载中,各种危害使其慢下来。循环时间也是5个周期的关键路径的最大值。
- Datapath是指通常为字大小的信息,因此32位宽在32位处理器上。例如,来自ALU的两个32位输入和一个32位输出都是数据路径。例如,有些数据路径比32位短,例如,寄存器号宽5位,即时性宽16位。
- 控制路径指的是信号,通常是1位宽的信号,用于控制哪些电路被忽略。控制信号针对每种不同类型的指令设置不同。硬件是所有可能的指令所需的所有不同电路的合并。每个指令只使用一些硬件,但所有的硬件都必须存在才能执行所有不同的指令类型。大多数控制信号都被控制到某些MUX的控制,后者选择两个数据端口中的一个转发(因此忽略了另一个),有些控制信号是多位的,就像在ALU控制中一样。由于ALU操作需要几个位来区分add,or,and,sub,比较法等..
对我来说,在同一个处理器实现中使用流水线数据路径而非流水线控制是没有意义的。如果处理器是流水线的,那么这将同时适用于数据路径和控制。
单周期处理器和多周期处理器都是非流水线的,因为流水线是指从执行一条指令到另一条指令的循环的重叠。这种重叠会导致在非流水线处理器中不存在的危险,因为下一条指令在先前完成之前就开始了。