Files
Operating-System/8086/Exam/第3章 32位Pentium微处理器.md
2026-06-29 21:12:21 +08:00

16 KiB
Raw Permalink Blame History

第三章 32位 Pentium 微处理器

本章系统介绍 Pentium奔腾32 位微处理器的内部结构、寄存器组、编程模型、引脚信号以及操作模式,是从 8086 向 32 位保护模式过渡的核心章节。


一、详细内容分析

1. Pentium 处理器内部结构3.1

1.1 基本构成(四大部分)

Pentium 内部按功能可划分为以下四部分:

功能部件 组成 作用
总线接口部件 内外总线接口 与外部存储器、I/O 交换数据
存储器扩展及管理 代码 Cache、数据 Cache、转移目标缓冲器BTB、分段分页部件 高速缓存与管理虚拟地址
控制器 控制 ROM、控制部件、预取缓冲存储器、指令译码部件 指令流的驱动与解释
运算器 整数运算部件U/V 双 ALU、整数寄存器组、浮点运算部件、浮点寄存器组 数据加工

1.2 结构六大特性(重点)

  1. 超标量流水线,超标量为 2——拥有 U、V 两条独立整数流水线,每周期最多可并行执行 2 条整数指令。
  2. 分立 Cache指令数据各 8 KB——代码 Cache 与数据 Cache 分离,避免取指/取数冲突;并各有 TLB快表配合。
  3. 8 级流水线的浮点运算部件——浮点单元流水线深度 8 级,明显深于整数流水线。
  4. 动态转移预测——通过 BTBBranch Target Buffer记录分支历史预测分支目标地址减少流水线断流。
  5. 数据线内部 32 位、外部 64 位——属于 32 位机;外部数据总线加宽到 64 位以提升传输带宽。
  6. 4 种工作方式——实地址模式、保护虚地址模式(含虚拟 8086 模式)、系统管理模式。

1.3 双流水线 U / V

  • U 流水线Universal Pipeline:可执行所有整数指令,包括复杂指令。
  • V 流水线Vicinal Pipeline只能执行简单指令U 流水线的子集)。
  • 两条流水线都有独立的地址生成器、ALU可同时工作实现"超标量"。
  • 整数寄存器组 8 个 32 位寄存器EAX/EBX/ECX/EDX/ESP/EBP/ESI/EDI为 U、V 共享。

1.4 Cache 与 TLB

  • 指令 Cache 8 KB、数据 Cache 8 KB双端口结构,每个时钟可存取 32 位(数据侧 64 位)。
  • Cache 中各含一个 TLBTranslation Lookaside Buffer用于缓存最近使用的页表项加速虚实地址转换。

2. Pentium 微处理器编程结构3.2

2.1 寄存器组总览5 部分)

Pentium 寄存器组共 71 个寄存器,分为:

类别 数量 说明
基本结构寄存器 16 通用 8 + 专用 2 + 段 6
系统级寄存器 9 系统地址 4 + 控制 5CR0-CR4
调试寄存器 8 DR0DR7
模型专用寄存器 20 用于性能监控、机器检测等
浮点寄存器 18 8 × 80 位数据 + 8 × 16 位控制/状态/标记 + 2 × 16/80

2.2 基本结构寄存器(与 8086 对比)

Pentium 将 8086 的 16 位寄存器全部扩展为 32 位(在前面加 "E"),但仍兼容使用低 16 位。

通用寄存器8 个 32 位)

32 位 16 位 8 位H/L 名称
EAX AX AH / AL 累加器
EBX BX BH / BL 基址寄存器
ECX CX CH / CL 计数寄存器
EDX DX DH / DL 数据寄存器
ESP SP 堆栈指针
EBP BP 基址指针
ESI SI 源变址寄存器
EDI DI 目的变址寄存器

专用寄存器2 个)

32 位 16 位 名称
EIP IP 指令指针
EFLAGS FLAGS 标志寄存器

段寄存器6 个 16 位)

CS、DS、SS、ES、FS、GS——Pentium 比 8086 增加了 FS、GS 两个附加段寄存器,便于复杂数据访问。

2.3 标志寄存器 EFLAGS

EFLAGS 扩展为 32 位8086 仅 16 位),新增标志位含义如下:

标志 含义
VM17 虚拟 8086 方式 VM=1 时 CPU 工作在虚拟 8086 模式
RF16 恢复标志 RF=1 时即使遇断点也不产生单步异常
NT14 嵌套任务 NT=1 表示当前任务嵌套于另一任务
IOPL12、13 I/O 特权级 030 最高CPL ≤ IOPL 才能执行 I/O 指令
AC18 对齐检查 AC=1 时未对齐访问产生异常中断 17
VIF19 虚拟中断标志 IF 的虚拟映像
VIP20 虚拟中断挂起 指示虚拟中断是否挂起
ID21 标识标志 ID=1 表示支持 CPUID 指令
OF/DF/IF/TF/SF/ZF/AF/PF/CF 与 8086 相同 溢出/方向/中断允许/陷阱/符号/零/辅助进位/奇偶/进位

与 8086 相同部分:低 12 位状态标志基本保留;新增位集中在高 16 位。

2.4 段寄存器与保护模式段描述符

  • 6 个段寄存器CS/DS/SS/ES/FS/GS每个 16 位,程序员可见,但实际段信息存放在内部的 段描述符寄存器64 位,对程序员透明)。
  • 段描述符寄存器包含:32 位段基址 + 20 位段限(界限) + 12 位段属性
  • 段描述符8 字节,用于描述段的信息(基址、限长、属性)。
  • 段描述符表GDT/LDT:把多个段描述符组织成表。
  • 段选择符16 位,存于段寄存器中,指出对应描述符在描述符表中的位置(含索引、表选择、特权级)。
  • 保护模式下逻辑地址→物理地址:逻辑地址 = 段选择符 : 32 位段内偏移;由选择符查描述符表得 32 位段基址,基址 + 偏移 = 物理地址。

2.5 系统级寄存器(系统地址 + 控制)

系统地址寄存器4 个)——确定各种描述符表的基址:

寄存器 全称 格式 数量
GDTR 全局描述符表寄存器 32 位基地址 + 16 位界限 整个系统 1 个 GDT
IDTR 中断描述符表寄存器 32 位基地址 + 16 位界限 整个系统 1 个 IDT
LDTR 局部描述符表寄存器 16 位选择符 + 32 位基址 + 20 位界限 + 12 位属性 每个任务 1 个 LDT
TR 任务状态寄存器 16 位选择符 + 32 位基址 + 20 位界限 + 12 位属性 任务切换时保存/恢复机器状态

控制寄存器5 个CR0CR4——用于控制 CPU 工作模式和分页机制:

  • CR0:含 PE 位保护模式允许PE=1 进入保护模式)和 PG 位分页允许PG=1 启用分页)。
  • CR1保留未用。
  • CR2缺页Page Fault时保存导致异常的线性地址。
  • CR3页目录基址寄存器PDBDR保存页目录表的物理基址。
  • CR4扩展控制位如 PSE 4 MB 页、PAE 等)。

3. Pentium 微处理器外部结构3.3

Pentium 引脚主要分为 10 类功能:

  1. 地址线及控制A31A332 位地址A20M地址位 20 屏蔽用于实模式回绕、ADS/ADSC、AP地址偶校验、APCHK、BE7BE08 字节选通)。
  2. 数据线及控制D63D064 位数据总线、DP7DP0数据偶校验、PCHK、PEN。
  3. 总线周期控制D/C、M/IO、W/R 信号组合定义总线周期类型BRDY、NA地址请求下一流水、LOCK、SCYC 等。
  4. Cache 控制CACHE、PCD页级 Cache 禁止、PWT写直达、KENCache 行使能、WB/WT、EADS、FLUSH、INV 等。
  5. 系统控制CLK60/66.6 MHz 外部、内部 100/120/133/166/200 MHz 倍频、INIT、RESET、INTR、NMI。
  6. 总线控制HOLD/HLDADMA 申请、BREQ总线请求、BOFF强制释放
  7. 检测与处理BUSCHK、IERR、FERR、IGNNE、FRCMC。
  8. 系统管理模式SMI、SMIACT。
  9. 测试TCK、TDI、TDO、TMS、TRSTJTAG
  10. 跟踪和检查PM0PM2、BP0BP3性能监控/断点、BT0BT3分支跟踪、IU/IV/IBTU/V 流水线指令完成/分支输出、R/S、PRDY。

外部时钟为 60 或 66.6 MHz内部倍频1.5/2/2.5/3 倍)后得到 100/120/133/166/200 MHz 等频率。


4. Pentium 微处理器的操作模式3.5

Pentium 有 3 种主要操作模式

实地址模式Real Mode
保护虚地址模式 ┬─ 一般保护模式
              └─ 虚拟 8086 模式

4.1 实地址模式Real Mode

  • Pentium 与 8086 兼容,基本体系结构相同。
  • 存储空间 1 MB不允许分页,所以线性地址 = 物理地址。
  • 物理地址 = 段地址 × 16 + 偏移地址(与 8086 完全一致)。
  • 保留两个物理区域:
    • 中断向量区:0000:0000H ~ 0000:03FFH1 KB
    • 系统初始化区:0FFFF:0000H ~ 0FFFF:000FH16 字节)
  • 可以在实模式下通过设置控制寄存器切换到保护模式。

4.2 保护虚地址模式

保护概念包含三方面:

  1. 任务间存储器空间保护:每个任务有独立地址空间。
  2. 段属性及界限保护:通过段描述符中的限长、属性检查越界。
  3. 特权级保护:见下文。

存储空间

  • 32 位物理地址 → 4 GB 物理地址空间。
  • 46 位逻辑地址 → 64 TB 逻辑地址空间。

环(特权级)4 级0~3高→低

  • 0 级:最高特权级(内核/操作系统核心)。
  • 3 级:最低特权级(用户程序)。
  • 高特权级可访问低特权级数据;低特权级可调用高特权级程序(通过门机制),但不能任意访问。

保护模式存储器寻址:逻辑地址 = 选择符 + 偏移地址;通过选择符查描述符表得段基址,与偏移相加得到物理地址。

4.3 虚拟 8086 模式

  • 是保护模式下的一种子模式
  • 标志位 VM=1 时进入。
  • 使 Pentium 可以在保护模式下执行 8086 应用程序(如运行 DOS 程序),同时仍享受分页、特权级等保护特性。

4.4 分页机制(补充)

  • 保护模式下可启用分页CR0.PG=1将 32 位线性地址映射到 32 位物理地址。
  • 二级页表结构页目录Page Directory+ 页表Page Table每页 4 KB。
  • CR3 保存页目录基址CR2 保存缺页线性地址。
  • TLB 用于缓存最近用过的页表项,命中可显著加速地址转换。

5. 知识点扩展PPT 之外补充)

5.1 Pentium 的"三大技术"——考试高频

Pentium 相对 80386 的核心创新在于 RISC 化超标量设计,主要三大技术:

  1. 超标量Superscalar:双流水线 U/V单周期可发射 2 条指令。
  2. 超流水线Superpipelined:整数流水线 5 级取指、译码1、译码2、执行、写回浮点 8 级,深度流水线提高主频。
  3. 动态分支预测Branch Prediction:通过 BTB 缓存分支历史,目标地址预测准确率可达 7590%。

5.2 后继型号演进(简要)

  • Pentium Pro (P6)引入乱序执行OOO、集成 L2 Cache、RISC 微操作μop将 CISC 指令分解为 RISC 类操作。
  • Pentium IIP6 核心 + MMX 多媒体指令集Slot 1 封装。
  • Pentium III:增加 SSEStreaming SIMD Extensions70 条新指令128 位 XMM 寄存器)。
  • Pentium 4 (NetBurst)超长流水线20~31 级)、高主频、引入 SSE2/SSE3,主打频率战。
  • 新增指令Pentium 起)CPUID、RDTSC、CMPXCHG8B、RDMSR/WRMSR 等系统管理类指令MMX多媒体扩展后续 SSE 系列。

5.3 与 8086 的核心差异速查表

项目 8086 Pentium
数据总线宽度 16 位 内部 32 位 / 外部 64 位
地址总线宽度 20 位 32 位
物理地址空间 1 MB 4 GB
通用寄存器 16 位 32 位(兼容 16 位与 8 位)
段寄存器 4 个CS/DS/SS/ES 6 个(+ FS/GS
流水线 无 / 简单预取 U/V 双流水线超标量
Cache L1 分立 8K+8K
分支预测 BTB 动态预测
工作模式 实模式 实模式 + 保护模式 + 虚拟 8086

二、考点总结

必背核心(高频)

  • 【高频】Pentium 与 8086 的对比:寄存器 32 位扩展、段寄存器增加到 6 个、外部数据总线 64 位、地址线 32 位、物理空间 4 GB。
  • 【高频】Pentium 三大技术超标量U/V 双流水线2 条指令/周期)、超流水线(整数 5 级、浮点 8 级、动态分支预测BTB
  • 【高频】32 位扩展寄存器EAX/EBX/ECX/EDX/ESP/EBP/ESI/EDI、EIP、EFLAGS可继续拆分使用 AX/BX/CX/DX 与 AH/AL 等。
  • 【高频】段寄存器 6 个CS、DS、SS、ES、FS、GS段描述符 8 字节 = 32 位基址 + 20 位限 + 12 位属性。
  • 【高频】控制寄存器 CR0 的 PE/PG 位PE=1 进入保护模式PG=1 启用分页;二者组合出实模式/保护无分页/保护有分页/虚拟 8086 四种工作方式。
  • 【高频】控制寄存器 CR1CR4 作用CR1 保留CR2 保存缺页线性地址CR3 页目录基址CR4 扩展控制PSE/PAE 等)。
  • 【高频】特权级 030 最高内核、3 最低(用户);高可访问低,低通过门调用高。
  • 【高频】虚拟地址到物理地址转换
    • 实模式:物理 = 段 × 16 + 偏移1 MB 空间)。
    • 保护模式:物理 = 段描述符基址 + 32 位偏移(先分段,再分页)。
    • 启用分页后:线性地址 → 经页目录、页表 → 物理地址。

常考要点

  • 基本构成 4 部分总线接口、存储器管理Cache/BTB/分页、控制器ROM/译码/预取)、运算器(整数 U/V + 浮点)。
  • 结构特性 6 条:超标量 2、分立 Cache 8K+8K、浮点 8 级流水、动态分支预测、内 32 外 64、4 种工作方式。
  • U/V 流水线差异U 可执行全部整数指令V 只能执行简单指令;整数寄存器组共享。
  • Cache 结构:指令 8 KB + 数据 8 KB双端口每时钟取 32 位(数据 64 位),各带 TLB。
  • 预取缓冲器2 个 32 B 预取缓冲器,每次可预取 256 位32 B
  • 寄存器组组成:基本结构 16 + 系统级 9 + 调试 8 + 模型专用 20 + 浮点 18 = 共 71 个。
  • EFLAGS 新增位VM位 17、RF16、NT14、IOPL1213、AC18、VIF19、VIP20、ID21其余低位与 8086 相同。
  • IOPL 含义CPL ≤ IOPL 时才允许执行 I/O 指令与设置 IF只有特权级 0 才能修改 IOPL。
  • 系统地址寄存器GDTR基址+界限、IDTR、LDTR、TRGDT/IDT 整个系统唯一LDT 每个任务一个。
  • 段描述符与段选择符:段选择符 16 位(含索引、表选择、特权级),程序员可见;段描述符 8 字节,透明。
  • 4 种工作方式:实地址、保护虚地址、虚拟 8086、系统管理SMM由 CR0 与 EFLAGS.VM 共同决定。
  • 实模式保留区:中断向量区 0000:00000000:03FF、系统初始化区 0FFFF:00000FFFF:000F
  • 外部时钟60/66.6 MHz内部倍频到 100/120/133/166/200 MHz。
  • 引脚分类10 大类——地址线、数据线、总线周期控制、Cache 控制、系统控制、总线控制、检测与处理、系统管理、测试、跟踪检查。
  • 新增指令CPUID、RDTSC、CMPXCHG8B、RDMSR/WRMSR、MMX、SSE 系列Pentium III 起)。

简答/计算题常见考法

  1. 画出 Pentium 内部结构框图并标出 U/V 流水线、Cache、BTB、控制 ROM 等关键部件。
  2. 说明实模式/保护模式下逻辑地址到物理地址的转换过程
  3. 说明 CR0 中 PE、PG 各位组合所对应的工作状态
  4. 解释特权级 03 的含义及访问规则
  5. 比较 Pentium 与 8086 的寄存器结构(位数、名称、用途)。
  6. 说明 U/V 流水线的分工及超标量含义。
  7. 说明 BTB 与动态分支预测的作用
  8. 解释段描述符、段选择符、GDT/LDT 的关系