本章详细介绍计算机硬件系统的各个组成部分,包括CPU的结构和工作原理、存储系统的层次结构、总线系统、I/O系统以及指令流水线技术。理解硬件系统的组成和工作原理是掌握计算机系统知识的关键。
本章重点:
本章难点:
CPU的主要功能:
CPU的基本组成:
CPU内部结构:
┌───────────────────────────────────────────────────────────────┐
│ 控制单元(CU) │
│ 指令译码 | 时序控制 | 操作控制 | 程序计数器 │
└─────────────────────────────┬─────────────────────────────────┘
│
┌─────────────────────────────▼─────────────────────────────────┐
│ 运算器(ALU) │
│ 算术运算 | 逻辑运算 | 移位运算 | 比较运算 │
└───────────────────────────────────────────────────────────────┘
↑↓
┌─────────────────────────────┴─────────────────────────────────┐
│ 寄存器组 │
│ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ │
│ │ PC │ │ IR │ │ ACC │ │ MQ │ │ 通用 │ │ 段 │ │ 标志 │ │
│ │ │ │ │ │ │ │ │ │寄存器│ │寄存器│ │寄存器│ │
│ └─────┘ └─────┘ └─────┘ └─────┘ └─────┘ └─────┘ └─────┘ │
└───────────────────────────────────────────────────────────────┘
程序计数器(PC):存放下一条要执行的指令地址,具有自动加1功能。
指令寄存器(IR):存放当前正在执行的指令。
累加器(ACC):存放运算的操作数和结果。
存储器地址寄存器(MAR):存放要访问的存储单元地址。
存储器数据寄存器(MDR):存放从存储器读出或写入的数据。
程序状态字(PSW):存放程序运行状态标志(零标志、进位标志、符号标志、溢出标志等)。
一条指令的执行分为三个阶段:取指、译码、执行。
指令执行流程:
开始
│
▼
┌────────┐
│ 取指 │ ← 根据PC从内存取指令到IR
│ Fetch │ PC = PC + 1
└────┬───┘
│
▼
┌────────┐
│ 译码 │ ← 分析指令操作码
│ Decode │ 确定操作类型
└────┬───┘
│
▼
┌────────┐
│ 执行 │ ← 执行指令规定的操作
│Execute │ (运算、访存、跳转等)
└────┬───┘
│
▼
结束
示例:加法指令 ADD M(将内存M单元内容加到ACC中)
执行步骤: 1. 取指:PC → MAR,读内存,指令 → MDR → IR,PC + 1 2. 译码:分析操作码为加法 3. 取数:指令地址码 → MAR,读内存,数据 → MDR 4. 执行:ACC内容 + MDR内容 → ACC
计算机采用多层次存储体系,在速度、容量和成本之间取得平衡。
存储器层次结构(金字塔):
┌─────────┐
│ 寄存器 │ 最快、最小、最贵
├─────────┤
│ Cache │ 高速缓冲存储器
├─────────┤
│ 主存 │ 内存(RAM/ROM)
├─────────┤
│ 磁盘 │ 外存(硬盘/SSD)
├─────────┤
│ 磁带 │ 备份存储
└─────────┘
最慢、最大、最便宜
速度:快 ←——————————————————→ 慢
容量:小 ←——————————————————→ 大
价格:高 ←——————————————————→ 低
局部性原理:
RAM(随机存取存储器):
ROM(只读存储器):
内存编址:
内存编址示例(32位地址空间):
地址(十六进制) 内容
────────────────────────────────
0x00000000 [字节0]
0x00000001 [字节1]
0x00000002 [字节2]
... ...
0xFFFFFFFF [字节4G-1]
字长32位(4字节)的存储:
地址0x1000:字节0 | 字节1 | 字节2 | 字节3
↓ ↓ ↓ ↓
低位 高位
Cache的工作原理:
CPU访问数据时,首先查看Cache,如果命中(Hit)则直接读取;如果不命中(Miss)则从主存调入Cache。
Cache访问流程:
CPU请求数据
│
▼
┌─────────┐
│ 访问Cache│
└────┬────┘
│
┌─┴─┐
↓ ↓
命中 未命中
│ │
│ ▼
│ ┌─────────┐
│ │访问主存 │
│ │调入Cache│
│ └────┬────┘
│ │
└───────┘
│
▼
返回数据
地址映射方式:
替换算法:
写策略:
总线:连接计算机各部件的公共信息传输通道,是多个系统功能部件间传输数据的介质。
总线的优点:
总线的分类:
总线分类: 按层次: ├─ 片内总线(芯片内部) ├─ 系统总线(CPU-内存-I/O) └─ 通信总线(计算机之间) 按功能: ├─ 数据总线(DB):传输数据,双向 ├─ 地址总线(AB):传输地址,单向 └─ 控制总线(CB):传输控制信号
当多个主设备同时请求使用总线时,需要仲裁机制决定哪个设备获得总线使用权。
集中式仲裁:
分布式仲裁:各设备通过仲裁算法自主决定
链式查询仲裁:
总线请求 ───┬─── 设备A
├─── 设备B
└─── 设备C
总线允许 ───→ 设备A ──→ 设备B ──→ 设备C
(优先级最高) ↓ (优先级最低)
...
总线忙 ←──── 获得总线的设备
系统总线:
外部总线:
I/O接口的功能:
CPU不断查询设备状态,直到设备准备好才进行数据传输。
特点:
设备准备好后向CPU发出中断请求,CPU响应中断后进行数据传输。
特点:
中断处理流程:
设备完成数据准备
│
▼
发出中断请求
│
▼
CPU响应中断 ←────── 若中断允许
│
▼
保存现场(寄存器入栈)
│
▼
执行中断服务程序
│
▼
恢复现场(寄存器出栈)
│
▼
返回主程序(中断返回)
DMA(Direct Memory Access,直接存储器访问):在DMA控制器的控制下,直接在内存和外设之间传输数据,无需CPU干预。
特点:
DMA工作流程:
1. CPU设置DMA控制器:
- 内存起始地址 → DMA
- 传输字节数 → DMA
- 传输方向 → DMA
2. DMA控制器接管总线:
内存 ◄────────────► I/O设备
DMA控制
3. 传输完成,DMA向CPU发中断
通道:专用的I/O处理器,有自己的指令系统(通道指令),可以独立执行I/O操作。
特点:
流水线技术:将指令执行过程分解为若干阶段,每个阶段由独立的硬件完成,多条指令重叠执行。
非流水线 vs 流水线: 非流水线执行: 时间 → 指令1:[取指][译码][执行][写回] 指令2: [取指][译码][执行][写回] 指令3: [取指][译码][执行][写回] 流水线执行: 时间 → 指令1:[取指][译码][执行][写回] 指令2: [取指][译码][执行][写回] 指令3: [取指][译码][执行][写回] 指令4: [取指][译码][执行][写回] 理想情况:每个时钟周期完成一条指令
流水线性能指标:
结构冲突:多条指令争用同一硬件资源。
数据冲突:指令之间存在数据依赖关系。
RAW冲突示例: ADD R1, R2, R3 # R1 = R2 + R3 SUB R4, R1, R5 # R4 = R1 - R5(需要R1的值) 如果不等待,SUB会使用错误的R1值 解决 - 数据转发: ADD的运算结果直接送到SUB的执行阶段, 不必等到写回阶段
控制冲突:分支指令改变执行顺序,导致预取的指令无效。
1. 程序计数器PC的作用是( )
A. 存放指令 B. 存放下一条指令地址 C. 存放操作数 D. 存放运算结果
2. 以下存储器中,速度最快的是( ) A. 硬盘 B. 内存 C. Cache D. 寄存器
3. DMA方式的特点是( ) A. CPU全程参与 B. 无需CPU参与 C. 只在开始和结束时需要CPU D. 由通道控制
4. Cache的地址映射方式不包括( ) A. 直接映射 B. 全相联映射 C. 组相联映射 D. 间接映射
5. 流水线中的数据冲突是指( ) A. 硬件资源冲突 B. 指令间数据依赖 C. 分支指令导致 D. 存储器访问冲突
1. CPU由_______、_______和_______三大部分组成。
2. 存储器的三个主要指标是_______、_______和_______。
3. 总线按功能分为_______总线、_______总线和_______总线。
4. I/O控制方式有_______、_______、_______和_______四种。
5. 流水线冲突分为_______冲突、_______冲突和_______冲突。
1. 简述指令的执行过程。
2. 比较SRAM和DRAM的特点。
3. 简述Cache的工作原理和地址映射方式。
4. 什么是DMA?简述其工作过程。
5. 什么是流水线技术?它有哪些优势?
1. 某计算机Cache有16行,主存有256块,采用直接映射方式。问主存第100块应映射到Cache的哪一行?
2. 某流水线有5个阶段,每个阶段耗时1个时钟周期。执行100条指令,非流水线方式和流水线方式各需要多少时钟周期?加速比是多少?
参考答案:
一、选择题:1.B 2.D 3.C 4.D 5.B
二、填空题:
1. 运算器、控制器、寄存器组 2. 速度、容量、价格 3. 数据、地址、控制 4. 程序查询、中断、DMA、通道 5. 结构、数据、控制