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
创建日期: 2023年11月15日 17:30:52