当前位置: 首页 > 产品大全 > 吉林大学《计算机系统结构》第三章 指令级并行(曲冠南老师版)学习笔记

吉林大学《计算机系统结构》第三章 指令级并行(曲冠南老师版)学习笔记

吉林大学《计算机系统结构》第三章 指令级并行(曲冠南老师版)学习笔记

第三章:指令级并行(ILP)

一、 基本概念

指令级并行(Instruction-Level Parallelism, ILP)是指处理器通过挖掘指令之间潜在的并行性,在同一时刻或同一时间段内执行多条指令的能力。它是现代高性能处理器的核心技术之一,旨在提高指令吞吐率,从而提升程序执行速度。

核心目标: 在保持程序语义不变的前提下,让处理器在单个时钟周期内完成尽可能多的工作(指令)。

二、 开发ILP的主要技术途径

曲老师课程中重点讲解了通过硬件和编译技术相结合来开发ILP。

1. 流水线技术(Pipelining)
基础: 将指令执行过程分解为多个独立的阶段(如取指、译码、执行、访存、写回),让不同指令的不同阶段在时间上重叠执行。
挑战与提升: 结构冒险、数据冒险、控制冒险。更深流水线(超流水线)可以提高时钟频率,但也增加了冒险发生的概率和复杂度。

2. 多发射技术(Multiple Issue)
处理器每个时钟周期可以启动(发射)多条指令进入执行阶段。

  • 静态多发射(由编译器主导): 编译器在编译时对指令进行调度和打包,形成“超长指令字(VLIW)”或“显式并行指令计算(EPIC)”风格的指令包。硬件相对简单,但对编译器依赖极高。
  • 动态多发射(由硬件主导): 硬件在运行时动态检查指令间的依赖关系,并调度多条不相关的指令同时执行。这是现代主流高性能CPU(如Intel/AMD的x86处理器)采用的方式。
  • 超标量(Superscalar): 典型代表。处理器核心包含多个功能单元(如多个ALU、多个load/store单元),硬件调度逻辑在每个周期动态判断可以并行发射的指令组合。

3. 动态调度(Dynamic Scheduling)
硬件在运行时(而非编译时)对指令执行顺序进行重排,以避免停顿,提高功能单元利用率。核心思想是 “乱序执行(Out-of-Order Execution, OoO)”

  • 关键技术: 记分牌算法、Tomasulo算法及其现代变种。
  • Tomasulo算法核心组件:
  • 保留站(Reservation Stations): 缓存已发射但等待操作数就绪的指令。
  • 公共数据总线(CDB): 用于广播结果,实现寄存器重命名。
  • 寄存器重命名(Register Renaming): 用物理寄存器编号代替指令中的逻辑(架构)寄存器编号,消除写后写(WAR)和写后读(WAW)假数据相关,只保留真数据相关(RAW)。

4. 分支预测(Branch Prediction)
为解决控制冒险(分支指令导致的流水线清空)带来的性能损失,需高精度预测分支方向(跳转/不跳转)和目标地址。

  • 静态分支预测: 由编译器根据启发式规则进行预测(如循环后向分支预测为“跳转”)。
  • 动态分支预测: 硬件根据程序运行历史进行预测。
  • 分支历史表(BHT): 记录最近分支指令的跳转情况(1位或2位饱和计数器)。
  • 分支目标缓冲区(BTB): 缓存最近跳转分支的目标地址,实现快速目标获取。
  • 高级技术: 两级自适应预测器、锦标赛预测器、基于神经网络的预测器等。

5. 推测执行(Speculative Execution)
在分支结果最终确定之前,处理器基于分支预测的结果,提前执行预测路径上的指令。

  • 关键点: 推测执行的指令结果在分支确认前不能提交(Commit),必须保留回滚的能力。通常与寄存器重命名和重排序缓冲区(ROB)结合使用。
  • 重排序缓冲区(ROB): 维护指令原始顺序,确保推测执行的指令在分支确认正确后按序提交,错误时能迅速清空其产生的影响。

三、 ILP面临的限制

尽管技术不断发展,但ILP的挖掘存在理论和技术上的天花板。

  • 程序固有的并行性限制: 程序中存在大量的真数据相关和控制相关。
  • 硬件复杂度与功耗限制: 动态调度、多发射、推测执行等硬件逻辑极其复杂,晶体管数量和功耗剧增,收益增长曲线逐渐平缓(边际效益递减)。
  • 存储器墙(Memory Wall): 处理器速度远快于主存,Cache缺失导致的停顿严重限制了ILP的发挥。
  • 精确异常处理的要求: 必须保证在发生中断或异常时,能精确恢复到某条指令的状态,这增加了乱序执行和推测执行的复杂性。

四、 本章小结与启示

指令级并行是单核处理器性能提升的经典路径。从简单的五级流水线到复杂的动态调度超标量推测执行处理器,其发展史是计算机体系结构学家与半导体工程师智慧的集中体现。曲冠南老师的讲解深入剖析了从基本概念到核心算法(如Tomasulo)的内在逻辑。
理解ILP技术,不仅是为了掌握高性能CPU的工作原理,更重要的是认识到:任何技术都有其适用边界。 当单核ILP提升遇到瓶颈时,计算机体系结构的研究重点便转向了线程级并行(TLP)数据级并行(DLP),即多核处理器和众核/向量处理器(如GPU),这构成了后续章节的重要基础。

---
注:本笔记根据曲冠南老师授课内容及《计算机系统结构》经典教材整理,侧重于核心概念与原理框架的理解。具体算法细节、性能公式及电路实现需结合课件与教材深入学习。

如若转载,请注明出处:http://www.360tiemo.com/product/44.html

更新时间:2026-01-13 01:07:08

产品大全

Top