计算机组成原理(知识点+易错点,超详细)|第五章 中央处理器(下)

目录

 

5.5 异常和中断机制

5.5.1 异常和中断的基本概念

5.5.2 异常和中断的分类

5.5.3 异常和中断响应过程

5.6 指令流水线

5.6.1 指令流水线的基本概念

5.6.2 流水线的基本实现

5.6.3 流水线的冒险与处理

5.6.4 流水线的性能指标

5.6.5 高级流水线技术

5.7 多处理器的基本概念

5.7.1 SISD、SIMD、MIMD 的基本概念

5.7.2 硬件多线程的基本概念

5.7.3 多核处理器的基本概念

5.7.4 共享内存多处理器的基本概念

考试重难点总结


第五章(下)来啦!(上)可见博主上篇博客,觉得内容有帮助的朋友们可以点赞收藏一波~

5.5 异常和中断机制

5.5.1 异常和中断的基本概念

异常和中断是 CPU 处理异步事件的核心机制,其核心区别在于触发源同步性

  • 异常:由 CPU 内部指令执行引发的同步事件,例如:
    • 指令执行错误(如除以零、无效操作码)
    • 访存越界或非法内存访问
    • 系统调用(如 Linux 中的 int 0x80
  • 中断:由外部设备或定时器触发的异步事件,例如:
    • 键盘输入、鼠标点击
    • 磁盘完成数据传输
    • 时钟周期性中断

两者的处理流程均包括检测、响应、处理、恢复四个阶段,但异常通常与当前指令直接相关,而中断独立于当前指令。

5.5.2 异常和中断的分类

类型细分类型触发条件典型场景处理方式
内中断(异常)故障(Fault)指令执行前检测到的错误缺页错误、未对齐访存修正后返回原指令
 自陷(Trap)程序主动触发系统调用(如 syscall)、断点调试处理后继续执行下一条指令
 终止(Abort)不可恢复的严重错误硬件故障、奇偶校验错误强制终止程序
外中断可屏蔽中断外部设备通过中断控制器发送信号网卡接收数据、打印机完成任务可通过中断掩码禁用
 不可屏蔽中断紧急事件(如电源故障)系统复位、硬件错误必须立即响应

关键区别

  • 内中断的优先级通常高于外中断
  • 自陷是唯一由程序主动触发的异常类型
  • 终止类异常会导致程序崩溃

5.5.3 异常和中断响应过程

  1. 检测阶段

    • CPU 在每条指令执行结束后检查异常 / 中断标志位
    • 外部中断需通过中断控制器(如 PIC/APIC)传递信号
  2. 保护现场

    • 保存通用寄存器、段寄存器、标志寄存器内容
    • 压栈保存当前栈帧指针(SP)和程序计数器(PC)
  3. 跳转处理

    • 根据中断向量表(IVT)或异常类型获取处理程序入口地址
    • 特权级切换(如从用户态到内核态)
  4. 恢复现场

    • 从中断处理程序返回时,执行 IRET 指令
    • 恢复寄存器状态并跳回原程序继续执行

示例:当发生缺页异常时,CPU 会暂停当前进程,触发页错误处理程序,从磁盘加载缺失页后返回原指令重新执行。

5.6 指令流水线

5.6.1 指令流水线的基本概念

核心思想:将指令执行划分为多个独立阶段,每个阶段并行处理不同指令。

  • 理想加速比k 阶段流水线的加速比为 k(实际因冒险降低)
  • 吞吐率1 / 时钟周期时间(假设无阻塞)

示例:一条 5 阶段流水线(取指、译码、执行、访存、写回)可将指令执行时间从 5 个周期缩短至 1 个周期(理想情况)。

5.6.2 流水线的基本实现

典型阶段划分

阶段操作所需资源
取指(IF)从内存读取指令指令缓存(I-Cache)、PC 寄存器
译码(ID)解析指令操作码和操作数寄存器堆、指令译码器
执行(EX)算术逻辑运算或地址计算ALU、移位器
访存(MEM)读写数据内存数据缓存(D-Cache)
写回(WB)将结果写入寄存器寄存器堆

 

流水线示意图

plaintext

Cycle 1: IF1  
Cycle 2: IF2, ID1  
Cycle 3: IF3, ID2, EX1  
Cycle 4: IF4, ID3, EX2, MEM1  
Cycle 5: IF5, ID4, EX3, MEM2, WB1  
...

5.6.3 流水线的冒险与处理

冒险类型原因典型场景解决方法
结构冒险资源冲突(如同时访存)指令取指和数据访存同时发生分离 I-Cache 和 D-Cache
数据冒险后续指令依赖前序指令结果ADD R1, R2, R3 followed by SUB R4, R1, R5数据转发(Forwarding)、插入气泡(Stall)
控制冒险分支指令导致的执行路径不确定BEQ 指令需要判断条件分支预测(静态 / 动态)、延迟槽技术

数据转发示例

  • 执行阶段的结果直接传递给后续指令的执行阶段
  • 避免等待写回阶段完成
  • 数据转发(旁路)技术
    • 转发路径:EX阶段结果直接传递给下一指令的EX阶段输入,避免等待WB阶段
    • 局限性:无法解决LOAD-USE冒险,需插入气泡(暂停1周期)。
  • 分支预测策略对比
    类型准确率硬件开销适用场景
    静态预测简单循环(默认不跳转)
    动态预测复杂分支模式(如两位饱和计数器)

5.6.4 流水线的性能指标

指标定义公式
吞吐率单位时间完成的指令数1 / 时钟周期时间
加速比非流水线时间 / 流水线时间T_non-pipelined / T_pipelined
效率各阶段利用率的平均值(指令数 × 阶段数) / (阶段数 × 总周期数)

示例:100 条指令通过 5 阶段流水线,总周期数为 104,则效率为 (100×5)/(5×104) ≈ 96.15%

5.6.5 高级流水线技术

  1. 超标量流水线

    • 每个周期发射多条指令(如 Intel Core i7 支持 4 发射)
    • 需要动态调度和寄存器重命名技术
  2. 超流水线

    • 将阶段进一步细分(如将执行阶段拆分为 ALU1 和 ALU2)
    • 主频提升但指令延迟增加
  3. 动态调度

    • 通过 Tomasulo 算法重排指令顺序以避免冒险
    • 需保留站(Reservation Station)和重排序缓冲(ROB)

5.7 多处理器的基本概念

5.7.1 SISD、SIMD、MIMD 的基本概念

架构类型指令流数据流并行性典型应用
SISD无并行传统单核 CPU
SIMD数据级并行(如向量运算)GPU、数字信号处理器(DSP)
MIMD任务级并行多核 CPU、集群系统

对比示例

  • SIMD 适合矩阵乘法(同一指令作用于多个数据元素)
  • MIMD 适合 Web 服务器处理多用户请求

5.7.2 硬件多线程的基本概念

技术类型实现方式特点
细粒度多线程交替执行多个线程的指令提高资源利用率,但主频可能下降
粗粒度多线程一个线程阻塞时切换到另一线程适合长延迟操作(如访存)
同时多线程(SMT)硬件支持多线程指令同时发射如 Intel 超线程技术(HTT)

5.7.3 多核处理器的基本概念

  • 片上多核(CMP):多个独立核心集成在同一芯片
  • 共享资源:L2/L3 缓存、内存控制器、总线
  • 优势
    • 相比单核 CPU 提高并行处理能力
    • 降低单核复杂度,提升能效比
  • 挑战
    • 缓存一致性问题(如 MESI 协议)
    • 核间通信延迟

5.7.4 共享内存多处理器的基本概念

类型特点典型代表
SMP(对称多处理器)所有处理器共享内存和总线,地位平等Intel Xeon 服务器
NUMA(非统一内存访问)处理器访问本地内存更快AMD EPYC 服务器

SMP 工作原理

  1. 所有处理器通过高速总线连接到共享内存
  2. 操作系统负责调度任务到任意处理器
  3. 缓存一致性协议(如 MESI)确保数据同步

缓存一致性协议MESI

状态含义触发条件
Modified缓存行独占且已修改写入数据
Exclusive缓存行独占但未修改读取未共享数据
Shared缓存行被多个核心共享其他核心读取相同数据
Invalid缓存行无效其他核心修改数据

考试重难点总结与建议

  1. 异常与中断对比​(简答题高频考点):

    • 同步性:异常与指令同步(如除零),中断异步(如外设请求);
    • 响应时机:异常需立即处理,中断需等待当前指令执行完毕
    • 建议:结合流程图对比两者处理流程(如保存现场步骤是否包含通用寄存器)。
  2. 流水线冒险解决方案​(计算题重点):

    • 数据冒险:掌握RAW(读后写)、WAW(写后写)、WAR(写后读)的识别与处理方法;
    • 控制冒险:理解延迟槽技术(MIPS架构)与动态分支预测的硬件实现(分支目标缓冲器BTB)。
  3. 多核处理器设计​(综合题方向):

    • 缓存一致性:通过MESI协议解决多核间数据不一致问题;
    • 性能优化:分析多级缓存(如L1私有、L2共享)对访存延迟的影响。
    • SIMD 与 MIMD 的并行粒度差

  4. 真题演练建议

    • 流水线效率计算:注意公式效率 = (指令数×流水段数) / (总周期数×流水段数)
    • 中断嵌套过程:结合中断屏蔽字分析多重中断响应顺序(参考王道习题)。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值