单数据路径和管道数据路径的区别
1. 单周期数据路径
Single Datapaths 相当于原来的单周期数据通路 数据存储器只有一个地址输入。实际的内存操作可以通过 MemRead 和 MemWrite 控制信号来确定。指令和数据有单独的存储器有 2 个用于基于 PC 的计算的加法器和一个 ALU。控制信号相同。
2. 管道数据路径
管道的目标是允许同时执行多条指令。我们可能需要在一个循环中执行多个操作。递增 PC 并同时添加寄存器。获取一条指令,同时另一条读取或写入数据。
与单周期数据路径一样,管道处理器需要复制同一时钟周期所需的硬件元素。
Single Datapath 和 Pilpeline Datapath 之间的区别:
编号 | 单周期数据通路 | 管道数据通路 |
---|---|---|
1 | 指令不细分 | 指令每阶段分为一个 |
2 | 时钟周期对于最低指令足够长 | 时钟周期短但对于最低指令足够长 |
3 | 只能同时执行 1 条指令。 | 有与管道阶段一样多的指令 |
4 | 每条指令有 1 个周期,即 CPI = 1 | 每条指令有固定数量的时钟周期,每个管道阶段一个,即 CPI = k |
5 | 控制单元为整个指令生成信号。控制单元为整个指令产生信号; | 这些信号通过管道寄存器从一个管道传播到另一个管道。 |
6 | 有重复的硬件,因为可以将一个功能单元用于每条指令最多一个子任务。 | 有重复的硬件,因此对可以同时在管道中的指令没有限制。 |
7 | 不需要额外的寄存器。 | 需要额外的寄存器来将一个管道级的结果提供给下一个管道级。 |
8 | 绩效是基准。 | 性能比单个周期要快到明显快。 |