计算机操作系统:第四章_计算机硬件系统

第四章:计算机硬件系统

本章详细介绍计算机硬件系统的各个组成部分,包括CPU的结构和工作原理、存储系统的层次结构、总线系统、I/O系统以及指令流水线技术。理解硬件系统的组成和工作原理是掌握计算机系统知识的关键。

本章重点

  1. CPU的组成和工作原理
  2. 存储器层次结构
  3. 总线的分类和仲裁
  4. I/O控制方式

本章难点

  1. 指令执行过程
  2. Cache的工作原理
  3. 流水线冲突及解决

4.1.1 CPU的功能和组成

CPU的主要功能

  1. 指令控制:取指令、分析指令、执行指令
  2. 操作控制:发出各种操作命令
  3. 时间控制:对各种操作进行定时
  4. 数据加工:算术运算和逻辑运算

CPU的基本组成

CPU内部结构:

┌───────────────────────────────────────────────────────────────┐
│                      控制单元(CU)                             │
│          指令译码 | 时序控制 | 操作控制 | 程序计数器               │
└─────────────────────────────┬─────────────────────────────────┘
                              │
┌─────────────────────────────▼─────────────────────────────────┐
│                     运算器(ALU)                               │
│           算术运算 | 逻辑运算 | 移位运算 | 比较运算                │
└───────────────────────────────────────────────────────────────┘
                              ↑↓
┌─────────────────────────────┴─────────────────────────────────┐
│                     寄存器组                                   │
│  ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐      │
│  │ PC  │ │ IR  │ │ ACC │ │ MQ  │ │ 通用 │ │ 段  │ │ 标志 │     │
│  │     │ │     │ │     │ │     │ │寄存器│ │寄存器│ │寄存器│     │
│  └─────┘ └─────┘ └─────┘ └─────┘ └─────┘ └─────┘ └─────┘     │
└───────────────────────────────────────────────────────────────┘

4.1.2 主要寄存器

程序计数器(PC):存放下一条要执行的指令地址,具有自动加1功能。

指令寄存器(IR):存放当前正在执行的指令。

累加器(ACC):存放运算的操作数和结果。

存储器地址寄存器(MAR):存放要访问的存储单元地址。

存储器数据寄存器(MDR):存放从存储器读出或写入的数据。

程序状态字(PSW):存放程序运行状态标志(零标志、进位标志、符号标志、溢出标志等)。

4.1.3 指令执行过程

一条指令的执行分为三个阶段:取指、译码、执行。

指令执行流程:

  开始
   │
   ▼
┌────────┐
│  取指  │ ← 根据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

4.2.1 存储器层次结构

计算机采用多层次存储体系,在速度、容量和成本之间取得平衡。

存储器层次结构(金字塔):

              ┌─────────┐
              │  寄存器  │  最快、最小、最贵
              ├─────────┤
              │  Cache  │  高速缓冲存储器
              ├─────────┤
              │  主存   │  内存(RAM/ROM)
              ├─────────┤
              │  磁盘   │  外存(硬盘/SSD)
              ├─────────┤
              │  磁带   │  备份存储
              └─────────┘
               最慢、最大、最便宜

速度:快 ←——————————————————→ 慢
容量:小 ←——————————————————→ 大
价格:高 ←——————————————————→ 低

局部性原理

  1. 时间局部性:最近访问的数据可能很快再次被访问
  2. 空间局部性:与最近访问数据相邻的数据可能很快会被访问

4.2.2 主存储器

RAM(随机存取存储器)

  1. SRAM:静态RAM,速度快、功耗大、价格高,用作Cache
  2. DRAM:动态RAM,速度慢、功耗小、价格低,用作主存

ROM(只读存储器)

  1. ROM:掩膜ROM,出厂时写入,不可修改
  2. PROM:可编程ROM,只能写入一次
  3. EPROM:可擦除PROM,紫外线擦除
  4. EEPROM:电可擦除PROM,字节级擦除
  5. Flash:闪存,块级擦除(SSD使用)

内存编址

内存编址示例(32位地址空间):

地址(十六进制)    内容
────────────────────────────────
0x00000000        [字节0]
0x00000001        [字节1]
0x00000002        [字节2]
      ...          ...
0xFFFFFFFF        [字节4G-1]

字长32位(4字节)的存储:
地址0x1000:字节0 | 字节1 | 字节2 | 字节3
             ↓      ↓       ↓       ↓
            低位              高位

4.2.3 高速缓冲存储器(Cache)

Cache的工作原理

CPU访问数据时,首先查看Cache,如果命中(Hit)则直接读取;如果不命中(Miss)则从主存调入Cache。

Cache访问流程:

CPU请求数据
     │
     ▼
┌─────────┐
│ 访问Cache│
└────┬────┘
     │
   ┌─┴─┐
   ↓   ↓
 命中  未命中
  │     │
  │     ▼
  │  ┌─────────┐
  │  │访问主存 │
  │  │调入Cache│
  │  └────┬────┘
  │       │
  └───────┘
     │
     ▼
  返回数据

地址映射方式

  1. 直接映射:主存块只能放入Cache的特定行
  2. 全相联映射:主存块可放入Cache的任意行
  3. 组相联映射:Cache分成若干组,组内全相联

替换算法

  1. LRU(最近最少使用):替换最久未被访问的块
  2. FIFO(先进先出):替换最先调入的块
  3. Random(随机):随机选择替换块

写策略

  1. 写直达(Write Through):同时写Cache和主存
  2. 写回(Write Back):只写Cache,替换时才写回主存

4.3.1 总线的基本概念

总线:连接计算机各部件的公共信息传输通道,是多个系统功能部件间传输数据的介质。

总线的优点

  1. 简化系统结构,便于模块化
  2. 减少连线数量
  3. 便于系统扩展和升级

总线的分类

总线分类:

按层次:
  ├─ 片内总线(芯片内部)
  ├─ 系统总线(CPU-内存-I/O)
  └─ 通信总线(计算机之间)

按功能:
  ├─ 数据总线(DB):传输数据,双向
  ├─ 地址总线(AB):传输地址,单向
  └─ 控制总线(CB):传输控制信号

4.3.2 总线仲裁

当多个主设备同时请求使用总线时,需要仲裁机制决定哪个设备获得总线使用权。

集中式仲裁

  1. 链式查询:通过优先级链决定
  2. 计数器定时查询:使用计数器轮询
  3. 独立请求:每个设备有独立的请求和允许线

分布式仲裁:各设备通过仲裁算法自主决定

链式查询仲裁:

        总线请求 ───┬─── 设备A
                    ├─── 设备B
                    └─── 设备C
        
        总线允许 ───→ 设备A ──→ 设备B ──→ 设备C
                    (优先级最高)    ↓      (优先级最低)
                                   ...
        
        总线忙 ←──── 获得总线的设备

4.3.3 常用总线标准

系统总线

  1. PCI:外围组件互连,32/64位
  2. PCIe:PCI Express,串行点对点连接
  3. AGP:图形加速端口

外部总线

  1. USB:通用串行总线
  2. SATA:串行ATA,连接硬盘
  3. IEEE 1394(FireWire):高速串行总线

4.4.1 I/O接口

I/O接口的功能

  1. 数据缓冲:解决CPU与外设的速度差异
  2. 信号转换:电平转换、并串转换等
  3. 设备选择:选择要进行数据传输的设备
  4. 命令传送:传送CPU的命令
  5. 状态反馈:向CPU报告设备状态

4.4.2 I/O控制方式

CPU不断查询设备状态,直到设备准备好才进行数据传输。

特点

  1. 实现简单
  2. CPU效率低,大量时间花在查询上
  3. 适用于简单、低速设备

设备准备好后向CPU发出中断请求,CPU响应中断后进行数据传输。

特点

  1. CPU不必等待,可执行其他任务
  2. 响应需要时间(保护现场)
  3. 适用于中低速设备
中断处理流程:

设备完成数据准备
         │
         ▼
    发出中断请求
         │
         ▼
CPU响应中断 ←────── 若中断允许
         │
         ▼
    保存现场(寄存器入栈)
         │
         ▼
    执行中断服务程序
         │
         ▼
    恢复现场(寄存器出栈)
         │
         ▼
    返回主程序(中断返回)

DMA(Direct Memory Access,直接存储器访问):在DMA控制器的控制下,直接在内存和外设之间传输数据,无需CPU干预。

特点

  1. 数据传输不经过CPU
  2. 速度快,适用于高速设备
  3. CPU只在开始和结束时参与
DMA工作流程:

1. CPU设置DMA控制器:
   - 内存起始地址 → DMA
   - 传输字节数 → DMA
   - 传输方向 → DMA

2. DMA控制器接管总线:
   内存 ◄────────────► I/O设备
           DMA控制

3. 传输完成,DMA向CPU发中断

通道:专用的I/O处理器,有自己的指令系统(通道指令),可以独立执行I/O操作。

特点

  1. 通道程序控制I/O操作
  2. 可同时管理多个设备
  3. 减轻CPU负担最多
  4. 用于大型计算机系统

4.5.1 流水线基本概念

流水线技术:将指令执行过程分解为若干阶段,每个阶段由独立的硬件完成,多条指令重叠执行。

非流水线 vs 流水线:

非流水线执行:
时间 →
指令1:[取指][译码][执行][写回]
指令2:        [取指][译码][执行][写回]
指令3:                [取指][译码][执行][写回]

流水线执行:
时间 →
指令1:[取指][译码][执行][写回]
指令2:      [取指][译码][执行][写回]
指令3:            [取指][译码][执行][写回]
指令4:                  [取指][译码][执行][写回]

理想情况:每个时钟周期完成一条指令

流水线性能指标

  1. 吞吐率:单位时间内完成的指令数
  2. 加速比:非流水线时间与流水线时间之比

4.5.2 流水线冲突

结构冲突:多条指令争用同一硬件资源。

  1. 解决:资源重复(如指令Cache和数据Cache分离)

数据冲突:指令之间存在数据依赖关系。

  1. RAW(写后读):后续指令需要前面指令的结果
  2. WAR(读后写):反相关
  3. WAW(写后写):输出相关
  4. 解决:数据转发(旁路)、插入气泡(停顿)
RAW冲突示例:
ADD R1, R2, R3    # R1 = R2 + R3
SUB R4, R1, R5    # R4 = R1 - R5(需要R1的值)

如果不等待,SUB会使用错误的R1值

解决 - 数据转发:
ADD的运算结果直接送到SUB的执行阶段,
不必等到写回阶段

控制冲突:分支指令改变执行顺序,导致预取的指令无效。

  1. 解决:分支预测、延迟分支

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. 结构、数据、控制

该主题尚不存在

您访问的页面并不存在。如果允许,您可以使用创建该页面按钮来创建它。

  • 计算机操作系统/第四章_计算机硬件系统.txt
  • 最后更改: 2026/02/09 23:25
  • 张叶安