跳转至

2.流水线CPU设计

流水线介绍

流水线餐厅和流水线洗衣房

流水线是节省整体时间,而不是节省某一个人的时间。

一个任务有多个步骤。 阶段之间是有相互依赖的。

没有对个人任务的效率有提升。

什么是流水线

如何加速指令执行(机器语言)

  • 缩短每一条指令的执行时间
    • 更高速的设备
    • 更好的计算模式
    • 提高指令中每个微操作的并行性
    • 减少解释过程中的节拍数
  • 减少整个程序的执行时间(机器语言)
    • 通过改变控制机制,使得两个、多个甚至整个程序的同时执行,减少整个程序的执行时间。

流水线定义

通过开发指令之间更多的并行来提高CPU效率。

将指令的执行过程划分为三个阶段:

取指(IF) 译码(ID) 执行(EX)

顺序执行(Sequential execution) 更简单的控制,节省设备

重叠执行(Overlapping execution) 同时执行,效率更高

流水线的特点 流水线将整个过程划分为多个 流水线适合大量的重复的单个过程。只有在任务可以持续性地提供输入,流水线的效率才能得到极致的体现。

流水线的分类

静态流水线(Static pipelining)

只能同时执行相同类别的

动态流水线(Dynamic pipelining)

线性流水线:

非线性流水线

循序流水线

乱序流水线

标量流水线处理器

矢量流水线处理器

流水线执行

IF 取指 PC=PC+4

ID

EX 执行

MEM 访存

WB

流水线和ISA设计

RISC-V ISA的流水线设计 + 所有的指令都是32位 + 更好地去取指和译码 + 更少的更规律的指令格式 + 访存地址 + 内存操作数

单周期时钟周期取时间最长的指令。 流水线时钟周期取时间最长的阶段。

流水线冲突

结构冲突 有一个需要使用的元件繁忙

数据冲突 指令之间的数据依赖 需要等待之前的指令执行完保存数据之和才能进一步执行。

控制冲突


最后更新: 2023年11月15日 17:30:52
创建日期: 2023年11月15日 17:30:52