计算机组成与结构

本文最后更新于:2026年2月28日 下午

考试内容

1. 计算机系统概论

1.1 计算机系统的层次结构

计算机系统的基本组成

硬件 系统和 软件 系统共同构成了一个完整的计算机系统。硬件指的是有形的物理设备,是计算机系统中实际物理装置的总称。软件指的是在硬件上运行的程序和相关的数据及文档。

硬件软件 关系:硬件是计算机的物理部分,它提供了运行软件所需的基础设施,而软件则是 指令集指导 硬件如何工作以执行特定的任务。

计算机系统的层次结构

1.2 计算机硬件的基本组成

冯诺依曼结构

冯·诺依曼提出的 “存储程序” 的思想奠定了当代计算机的基本结构,以此概念为基础的各类计算机通称为 冯·诺依曼机,其特点如下:

  1. 计算机 硬件 系统由 运算器存储器控制器输入设备输出设备 5 大部件 组成。
  2. 指令和数据 以同等地位存储在 存储器 中,形式上没有区别,但计算机应能区分它们。
  3. 指令和数据均用 二进制代码 表示,指令包含操作码和地址码,操作码指出操作的类型,地址码指出操作数的地址。
  4. 运算器 为中心,其他部件配合其工作。

1.3 计算机的主要技术指标

衡量一台计算机性能的好坏,通常参考以下几个主要技术指标:

  1. 机器字长:指CPU一次能并行处理的二进制位数(即数据总线的宽度)。
    • 意义:字长直接影响计算机的计算精度数据处理能力运算速度。字长越长,精度越高,处理能力越强。通常,字长越长,计算机的档次也越高。例如,早期的计算机是8位、16位,现在个人计算机通常是64位。
  2. 存储容量:衡量计算机存储器(主要是内存)所能容纳信息量多少的指标。
    • 单位:以字节(Byte,简称B)为基本单位。常用单位有KB、MB、GB、TB等,它们之间的关系是\(1KB = 2^{10}B = 1024B\),依次类推。
    • 意义内存容量决定了计算机能直接处理的数据量和能运行的程序规模。容量越大,能运行大型软件的能力越强,速度也越快。
  3. 运算速度:衡量计算机进行数值计算或信息处理快慢的指标。表示方法有多种:
    • 主频(时钟频率):指CPU内核工作的时钟频率,即CPU在每秒内发出的脉冲数。单位是赫兹(Hz),常用MHz或GHz表示。主频在很大程度上决定了计算机的运算速度,主频越高,速度越快。
    • 每秒百万条指令(MIPS):即每秒能执行多少百万条指令。这是一个用指令执行速度来表示的指标。
    • 每秒百万次浮点运算(MFLOPS):专门用于衡量计算机进行浮点运算的速度,常用于科学计算领域。
  4. 存取周期:指存储器进行两次独立的操作所需的最短时间间隔。这个时间越短,存取速度越快,说明存储器的性能越好。由于CPU的速度远快于内存,存取周期是影响整个计算机系统速度的重要瓶颈之一。

1.4 计算机发展简史、计算机分类、计算机的应用以及计算机发展趋势

2. 运算方法与运算部件

2.1 带符号数据的表示方法与加减运算

2.2 加法器与算术逻辑运算部件工作原理

2.3 二进制乘法运算、二进制除法运算、浮点运算方法

2.4 数据校验码的原理与实现方法

3. 主存储器与存储系统

3.1 半导体随机存储器

半导体随机存储器是主存的核心,根据存储单元工作原理的不同,主要分为SRAM和DRAM两大类。

3.1.1 SRAM与DRAM的对比

对比维度 SRAM(静态RAM) DRAM(动态RAM)
存储单元结构 6晶体管触发器(双稳态锁存器) 1晶体管+1电容(1T1C)
存储原理 双稳态电路锁存状态 电容存储电荷
数据保持 不断电即可保持 需定期刷新(2ms内)
破坏性读出 否(非破坏性) 是(读出后需重写/再生)
速度 极快(接近CPU) 较慢(纳秒级)
集成度 低(6管/单元) 高(1管/单元)
功耗 较大 较小
成本 高(约DRAM的10倍以上)
主要用途 Cache、寄存器 主存、显存

3.1.2 DRAM的刷新机制

DRAM使用栅极电容存储信息,电容电荷只能维持约2ms,因此必须定期刷新。

刷新方式

  • 分散刷新:每次读写完刷新一行,但会延长存取周期
  • 集中刷新:2ms内集中刷新所有行,存在"死区"无法访问
  • 异步刷新:利用CPU空闲时间逐行刷新,每行刷新间隔≤2ms

地址线复用技术:DRAM将行地址和列地址分两次送入,使地址线数量减半,减少芯片引脚。

3.1.3 只读存储器(ROM)

类型 全称 特点
MROM 掩模式ROM 厂家写入,不可更改,适合批量生产
PROM 可编程ROM 用户写入一次,不可更改
EPROM 可擦除PROM 紫外线擦除(UVEPROM)或电擦除(EEPROM),可多次重写
Flash Memory 闪存 电可擦除,块为单位,U盘、SSD使用
SSD 固态硬盘 控制单元+Flash芯片,速度快、功耗低

3.2 存储控制与并行主存系统

3.2.1 主存储器与CPU的连接

连接原理

  • 地址线:低位接芯片内寻址(字选),高位用于片选(选择存储芯片)
  • 数据线:位数需匹配,不足时进行位扩展
  • 控制线:读/写命令线、片选线(CS/CE)、访存控制信号

主存容量扩展

  1. 位扩展:增加字长(数据线宽度)
  2. 字扩展:增加存储单元数量(地址空间)
  3. 字位同时扩展:既增加字数又增加位长

片选方式

  • 线选法:n条线→n个选片信号,电路简单但地址不连续
  • 译码片选法:n条线→2ⁿ个选片信号,地址可连续

3.2.2 存取周期与带宽

  • 存取时间:执行一次读/写操作的时间
  • 存取周期:连续两次独立读/写的最小时间间隔
    • 存取周期 = 存取时间 + 恢复时间
  • 存储器带宽:每秒进出信息的最大数量(数据传输率)

3.2.3 双端口RAM

作用:优化多核CPU访问同一内存条的速度,有两组独立的地址线、数据线、控制线。

访问冲突处理

  • 不同地址存取 → 正常
  • 同一地址读出 → 正常
  • 同一地址写入 → 错误(置"忙"信号)
  • 一读一写同一地址 → 错误(置"忙"信号)

3.2.4 多模块存储器

多模块存储器利用空间并行技术提高吞吐率。

1. 单体多字存储器

  • 多个存储模块看作整体,一套读写电路
  • 每次并行读出多个字(如4个字)
  • 缺点:只能连续读取,若信息不连续会读入无用数据

2. 多体并行存储器

编址方式 原理 特点 应用
高位交叉编址 高位地址选择模块,模块内地址连续 连续地址在同一模块,无并行加速 较少使用
低位交叉编址 低位地址选择模块,地址交叉存放 连续访问在不同模块,可流水并行 常用(如四体交叉)

低位交叉编址的工作原理

  • 存取周期为T,存取时间为r,总线传输周期为r
  • 为使流水线不间断,需模块数 m ≥ T/r
  • 连续访问m个地址,总时间 = m×r + (T-r) ≈ T + (m-1)×r
  • 判断模块:地址对m取余(或看二进制低log₂m位)

3.3 高速缓冲存储器的原理与实现方法

Cache位于CPU与主存之间,由SRAM构成,速度接近CPU,容量较小。

3.3.1 工作原理

基本思想:利用程序访问的局部性原理,将主存中当前活跃的数据块复制到Cache中。

局部性原理

  • 时间局部性:刚访问过的数据近期很可能再次访问
  • 空间局部性:刚访问过的数据附近的数据很可能被访问

工作过程

  1. CPU访问存储器时,先检查Cache
  2. 若命中(Cache中有数据),直接访问Cache
  3. 若不命中(脱靶),访问主存,并将该数据所在块调入Cache

性能指标

  • 命中率 H = 命中次数 / 总访存次数
  • 平均访存时间 = 命中时间 + 不命中率 × 不命中损耗

3.3.2 地址映射方式

地址映射指主存块与Cache块之间的对应关系。

映射方式 原理 优点 缺点
全相联映射 主存块可映射到任意Cache块 冲突率低,空间利用率高 比较电路复杂,速度慢
直接映射 主存块只能映射到固定Cache块(取模) 电路简单,速度快 冲突率高,易频繁替换
组相联映射 分组,组间直接映射,组内全相联 折中方案,平衡冲突与速度 复杂度介于两者之间

组相联映射是现代CPU最常用的方式。例如:4路组相联,即每组有4个Cache块。

主存块号 块内地址

全相联:标记位(主存分区号) 块内地址

直接:标记位 行号 块内地址

组相联:标记位 组号 块内地址

3.3.3 替换策略

当Cache满且需要调入新块时,需选择一块替换出去。

策略 原理 特点 命中率
RAND(随机) 随机选择一块替换 硬件简单,但命中率低
FIFO(先进先出) 替换最早调入的块 易实现,但不符合局部性(抖动现象) 中等
LRU(最近最少使用) 替换最长时间未使用的块 符合局部性,命中率高 约90%

LRU实现方法:为每个块设置计数器,访问时计数器清零,其他块计数器加1,替换时选计数器最大的。

3.3.4 写策略

策略(写命中时) 原理 特点
写直达法(全写法、write-through) 写Cache同时写主存 一致性易维护,但速度慢
写回法(write-back) 只写Cache,替换时才写回主存 速度快,但需脏位标记

写不命中:

写分配法:调入Cache,在Cache中修改

非写分配法:只写入主存,不调入Cache

3.4 存储系统层次结构

3.4.1 层次结构模型

计算机存储系统采用层次化结构,从上到下速度递减、容量递增、成本递减:

1
2
3
4
5
6
7
8
9
10
11
12
13
   CPU

寄存器 (最快、最小、成本最高)

L1 Cache (约1ns)

L2/L3 Cache

主存 (DRAM,约50-100ns)

固态硬盘 (SSD)

机械硬盘/磁带 (最慢、最大、成本最低)

3.4.2 两个关键层次

层次 解决的问题 实现方式
Cache-主存层次 CPU与主存速度不匹配 硬件自动完成
主存-辅存层次 主存容量不足 操作系统+硬件(虚拟存储器)

3.5 虚拟存储器、相联存储器与存储保护技术

3.5.1 虚拟存储器概述

概念:虚拟存储器是主存与辅存(磁盘)构成的存储层次,为用户提供比实际主存大得多的虚拟地址空间。

核心思想:按需调页——当前运行的程序部分驻留主存,其余在磁盘上。

特点

  • 程序员在虚拟地址空间中编程,不受主存限制
  • 地址转换由硬件(MMU)和操作系统共同完成
  • 缺页处理由操作系统负责

3.5.2 虚拟存储器的实现方案

方案 特点 地址转换
分页式 固定大小页(如4KB),无外部碎片 页表:虚页号→页框号
分段式 按逻辑段划分,大小可变 段表:段号→段基址+段内偏移
段页式 分段+段内分页 先查段表,再查页表

3.5.3 页表与地址转换

页表项内容

  • 装入位(有效位)
  • 访问标志/使用位
  • 修改位(脏位)
  • 存取权限位
  • 主存页框号或磁盘地址

地址转换过程

  1. 由虚页号查页表
  2. 若装入位有效,得到页框号
  3. 物理地址 = 页框号 × 页大小 + 页内偏移

3.5.4 快表(TLB)

TLB(Translation Lookaside Buffer)是存放常用页表项的相联存储器(特殊Cache)。

作用:避免每次地址转换都访问主存中的页表,加速地址转换。

特点:按内容访问(相联存储器),而非按地址访问。

3.5.5 存储保护

两类保护机制:

  1. 访问越界保护:检查地址是否在允许范围内
  2. 存取方式违例保护:检查操作权限(读/写/执行)

本章考试重点分析

章节 高频考点 常见题型
3.1 半导体随机存储器 SRAM与DRAM对比、DRAM刷新、ROM分类 选择、填空、简答
3.2 并行主存系统 低位交叉编址、存取周期计算、芯片扩展(位/字扩展) 计算、设计题
3.3 Cache 地址映射(直接/组相联)、替换策略(LRU)、写策略、平均访存时间计算 计算、分析题
3.4 层次结构 局部性原理、层次结构特点 简答
3.5 虚拟存储器 页表、TLB、缺页处理、地址转换 计算、分析题

4.指令系统。

4.1 指令系统基本概念

4.1.1 指令系统的定义与地位

指令系统(Instruction Set Architecture,ISA)是一台计算机中所有机器指令的集合,它是计算机系统中软件与硬件之间的主要接口。指令系统定义了计算机能够执行的各种操作、操作数的来源与去向、以及指令的格式和寻址方式。

从层次结构看:

  • 软件层面:程序员(汇编语言程序员或编译器)通过指令系统来编写程序,了解计算机的功能。
  • 硬件层面:CPU的设计者根据指令系统的要求实现具体的电路,完成指令规定的功能。
  • 指令系统一旦确定,就划定了软硬件的边界:软件必须遵守指令系统,硬件必须实现指令系统。

4.1.2 指令系统的基本要求

一个优秀的指令系统应满足以下四个基本要求:

要求 含义 说明
完备性 指令齐全,能实现所有基本操作 算术、逻辑、移位、转移、I/O等
有效性 程序高效运行 占用内存少、执行速度快
规整性 指令格式统一、规则 便于编程和编译
兼容性 同一系列机器指令系统一致 旧程序可在新机器运行

4.1.3 指令系统的演变趋势

  • 早期:指令系统简单,手工编程
  • 1960-70年代:CISC(复杂指令系统计算机)——指令越来越多、功能越来越强
  • 1980年代后:RISC(精简指令系统计算机)——简化指令,提高执行效率
  • 现代:RISC与CISC相互融合(如x86用CISC指令集但内部转为RISC微指令执行)

4.2 指令类型、指令格式、指令寻址方式

4.2.1 指令的构成

一条指令通常包含两个部分:

操作码:指明计算机要执行什么操作

  • 固定长度操作码:简化译码,但灵活性差
  • 可变长度操作码:压缩指令平均长度,但译码复杂

地址码:指明操作数地址、结果存放地址、下条指令地址

  • 地址码个数可变(0地址、1地址、2地址、3地址)

4.2.2 指令类型(按功能分类)

类型 包含指令示例 功能描述
数据传送类 MOV、LOAD、STORE、PUSH、POP 在寄存器、存储器之间传送数据
算术运算类 ADD、SUB、MUL、DIV、INC、DEC 执行加减乘除、自增自减等算术运算
逻辑运算类 AND、OR、NOT、XOR、移位指令 执行按位与、或、非、异或、左移、右移
程序控制类 JMP、JZ、CALL、RET、INT 改变程序的执行顺序(分支、循环、子程序调用)
输入输出类 IN、OUT 与外部设备交换数据(仅用于独立编址的I/O)
处理器控制类 HALT、NOP、CLC、STC、EI、DI 控制CPU的工作状态(停机、空操作、标志位操作、中断开关)

4.2.3 指令格式

根据地址码的个数,指令格式可分为:

格式 结构 说明 优点 缺点 示例
三地址指令 OP A1, A2, A3 (A1) OP (A2) → A3 不破坏源操作数,结果独立存放 指令长度长,占用空间大 科学计算
二地址指令 OP A1, A2 (A1) OP (A2) → A1(或A2) 指令较短,最常用 源操作数可能被覆盖 通用计算机
一地址指令 OP A1 (ACC) OP (A1) → ACC 指令短 需要隐含使用累加器 早期简单CPU
零地址指令 OP 操作数隐含在堆栈顶 指令最短,无地址码 运算依赖堆栈,访问次数多 堆栈机

指令长度

  • 定长指令:所有指令长度相同(如RISC的32位),便于译码和流水线。
  • 变长指令:指令长度随操作码和地址数变化(如x86的1~15字节),节省存储空间,但译码复杂。

4.2.4 指令寻址方式

寻址方式是指令中如何指定操作数的有效地址的方法。常见寻址方式如下:

寻址方式 有效地址计算公式 优点 缺点 典型应用
立即寻址 操作数 = 指令中的立即数 不需访存,速度快 立即数大小受限 提供常数
直接寻址 EA = A(指令中的形式地址) 简单 地址范围小,不易修改 访问固定变量
间接寻址 EA = (A) 可扩大寻址范围,便于指针 需两次访存,速度慢 指针操作
寄存器寻址 操作数在寄存器中 不需访存,极快 寄存器数量有限 临时变量
寄存器间接寻址 EA = (R) 只需一次访存,便于数组 需先加载地址到寄存器 数组遍历
变址寻址 EA = (R) + A 支持数组,形式地址固定,寄存器可变 计算地址需加法 数组访问
基址寻址 EA = (R) + A 用于程序重定位,基址由系统管理 与变址类似但用途不同 多道程序
相对寻址 EA = (PC) + A 便于代码位置无关,常用于转移指令 地址范围受位移量限制 条件转移
堆栈寻址 操作数在栈顶(隐含) 指令短,适合表达式求值 只能访问栈顶 子程序调用、表达式

特别说明

  • 变址寻址 vs 基址寻址:从形式上看都是 (R) + A,但用途不同。变址寻址中,变址寄存器由用户控制,常用于数组;基址寻址中,基址寄存器由操作系统控制,用于程序在内存中的浮动。
  • 间接寻址 vs 寄存器间接寻址:间接寻址中的地址存放在内存中,而寄存器间接寻址的地址存放在寄存器中,后者更快。

4.3 指令优化与指令系统设计技术

4.3.1 操作码优化

定长操作码:若指令字长固定,操作码字段长度固定,n位可表示最多2ⁿ种操作。优点是译码简单,缺点是编码空间浪费。

扩展操作码(变长操作码):在指令字长固定的前提下,让操作码长度可变。高频指令用短操作码,低频指令用长操作码,从而压缩平均操作码长度。

扩展操作码设计示例: 假设指令字长16位,操作码字段初始为4位,地址码每个4位。可以有如下分配:

  • 15条三地址指令:操作码 0000~1110(4位),后面12位为三个地址码。
  • 15条二地址指令:操作码 1111 0000~1111 1110(8位,前4位为1111,后4位从0000~1110),后面8位为两个地址码。
  • 15条一地址指令:操作码 1111 1111 0000~1111 1111 1110(12位),后面4位为一个地址码。
  • 16条零地址指令:操作码 1111 1111 1111 0000~1111(16位),无地址码。

哈夫曼编码思想:在统计指令使用频率的基础上,使用哈夫曼树生成最短平均码长的操作码,但硬件译码较复杂,实际中常采用规整的扩展操作码。

4.3.2 指令格式设计步骤

  1. 需求分析:确定指令条数、类型、寻址方式
  2. 操作码设计:选择定长或变长操作码
  3. 地址码设计:确定地址码个数和长度
  4. 指令长度确定:是定长还是变长
  5. 编码分配:给每条指令分配二进制编码

4.3.3 指令格式设计原则

  • 尽量规整:同类指令格式一致,便于译码
  • 支持编译优化:设计时应考虑编译器生成代码的便利性
  • 正交性:操作码与寻址方式组合自由
  • 可扩展性:预留编码空间,便于后续扩展

4.4 精简指令系统技术(RISC)

4.4.1 RISC 的起源与设计思想

历史背景:1980年代初,研究人员(John Cocke, David Patterson等)发现CISC架构存在以下问题:

  • 指令系统庞大,许多复杂指令很少使用(二八定律:80%的程序只用20%的指令)。
  • 复杂指令导致硬件设计复杂,占用大量芯片面积,不利于提高主频和实现流水线。
  • 微程序控制的速度低于硬布线控制。
  • 编译优化困难,因为指令格式不规整。

因此,他们提出RISC(Reduced Instruction Set Computer)理念:简化指令系统,让每条指令都能在一个机器周期内执行,通过编译器组合简单指令完成复杂操作

核心设计哲学

  • 简单就是快:硬件实现简单,可以运行在更高的时钟频率。
  • 少即是多:精选最常用的指令,让编译器优化代码。
  • 让常用指令更快:用硬件直接实现高频指令。
  • 软件硬件协同:编译器负责复杂操作的合成。

4.4.2 RISC 的主要特征

特征 详细说明
精简的指令数量 通常少于100条,只包含最常用的指令(load、store、add、sub、branch等)
统一的指令格式 指令长度固定(一般为32位),操作码位置固定,简化译码
丰富的通用寄存器 通常有32个以上通用寄存器,减少访存次数
Load/Store 架构 只有load和store指令可以访问内存,算术运算指令操作数必须来自寄存器
简单的寻址方式 通常只有2~3种最简单的寻址方式(如寄存器寻址、立即数寻址、相对寻址)
指令执行周期数少 大多数指令在一个机器周期内完成(CPI≈1),易于流水线化
硬布线控制器 多采用组合逻辑控制,速度快,不用微程序
优化的编译支持 编译器负责指令调度、寄存器分配、延迟分支处理等
流水线友好 指令规整,便于实现深度流水线和超标量

4.4.3 RISC 与 CISC 的详细对比

对比项 RISC CISC
指令条数 少(<100) 多(200~300+)
指令格式 定长,规整 变长,复杂
指令执行时间 大多数单周期(CPI≈1) 多周期,CPI可变
访存指令 仅LOAD/STORE 算术指令可直接操作内存
通用寄存器数 多(≥32) 少(8~16)
寻址方式 少(2~3种) 多(10~20种)
控制器实现 硬布线为主 微程序为主
编译器复杂度 高(需做大量优化) 较低(硬件承担复杂操作)
代码密度 较低 较高(一条复杂指令可代替多条简单指令)
功耗 低(适合嵌入式/移动) 较高(但现代工艺下已改善)
典型代表 ARM、MIPS、RISC-V、PowerPC x86、VAX、Motorola 68000

4.4.4 典型 RISC 架构介绍

  • ARM:低功耗、高性能,统治移动设备市场。采用条件执行、Thumb压缩指令、NEON SIMD扩展。
  • MIPS:经典的5级流水线教学范例,设计简洁优雅。
  • RISC-V:开源指令集架构,模块化设计,基础指令集极小,可自由扩展。
  • PowerPC:由IBM、苹果、摩托罗拉联合开发,曾用于Mac和游戏机。
  • SPARC:采用寄存器窗口技术,减少过程调用开销。

4.4.5 RISC 的优缺点

优点

  • 设计简单,开发周期短,易于验证。
  • 易于实现流水线,提高指令吞吐率。
  • 控制逻辑简单,有利于提高主频。
  • 低功耗,适合移动和嵌入式设备。
  • 大量寄存器便于编译优化。

缺点

  • 代码密度低,占用更多内存空间(但内存成本已大幅下降)。
  • 对编译器要求高,需要智能编译技术。
  • 某些复杂操作需多条指令模拟,效率可能不如CISC的一条指令。

4.4.6 RISC 与 CISC 的融合趋势

现代处理器设计已不再严格区分RISC和CISC,而是相互借鉴:

  • CISC 的 RISC 化:x86处理器内部将CISC指令动态翻译为RISC风格的微操作(μops),在RISC核心上执行,同时采用大量通用寄存器(寄存器重命名)。
  • RISC 的 CISC 化:RISC架构引入一些复杂指令(如SIMD、加密指令)来提升性能,这些指令可能多周期执行。
  • 混合架构:现代处理器既保持CISC指令集的兼容性,又利用RISC核的高性能和低功耗优势。

本章考试重点分析

章节 高频考点 常见题型
4.1 基本概念 指令系统定义、软硬件界面、指令系统要求 选择、填空、简答
4.2 指令格式与寻址 寻址方式识别与有效地址计算、指令格式分析、扩展操作码设计 计算、分析、设计题
4.3 指令优化与设计 扩展操作码设计、指令格式设计步骤、正交性/规整性 设计题、简答
4.4 RISC技术 RISC特征、与CISC对比、典型架构、优缺点 简答、对比题、分析题

5.中央处理器(CPU)

5.1 CPU的结构与功能

5.2 微程序控制计算机的工作原理和微程序设计技术

5.3 硬布线控制计算机的工作原理和硬布线控制器设计技术

5.4 流水线工作原理

指令流水线 | 计算机考研杂货铺

6.输入输出设备与输入输出系统

6.1 输入输出系统的基本功能与组成

6.1.1 I/O系统的基本功能

输入输出系统(I/O System)的核心作用是实现主机与外部设备之间的信息交换,主要包括:

功能 说明
数据缓冲 解决CPU与外设之间的速度不匹配问题。外设速度远低于CPU,需要设置缓冲区(如数据缓冲寄存器DBR)来暂存数据
数据格式转换 外设数据格式(串行、并行、编码方式)与CPU内部格式(并行、二进制)不一致时进行转换
设备选择 通过地址译码或设备编号,从众多外设中选择要与CPU通信的设备
通信控制 实现CPU与设备之间的联络、同步,确保数据正确传输

6.1.2 I/O系统的组成结构

I/O系统由以下几部分构成:

1
2
3
CPU ─── 系统总线 ─── I/O接口 ─── 外设控制器 ─── 外设

└── 数据寄存器、状态寄存器、控制寄存器

1. I/O接口:连接CPU和外设之间的逻辑部件,负责协议转换、数据缓冲和状态通信。每个接口都包含:

  • 数据寄存器:暂存传输的数据
  • 状态寄存器:记录设备当前状态(忙/闲、准备好等)
  • 控制寄存器:接收CPU发送的控制命令

2. I/O设备:具体的输入输出设备,如键盘、显示器、磁盘等。设备本身通常有自己的控制器(如磁盘控制器)。

I/O设备

  • 输入设备:键盘、鼠标
  • 输出设备:显示器、打印机
  • 存储设备:硬盘、U盘

3. I/O总线

  • 用于传输数据、地址和控制信号

4.I/O软件(驱动程序)

  • 操作系统提供的设备管理程序

6.1.3 I/O编址方式

CPU如何区分不同的I/O设备?主要有两种编址方式:

编址方式 特点 指令类型 优点 缺点 典型架构
统一编址(存储器映射I/O) 将I/O端口视为内存单元的一部分,占用部分内存地址空间 使用普通访存指令(LOAD/STORE)访问I/O 无需专用I/O指令,指令丰富;易于扩展 占用内存地址空间;译码电路稍复杂 ARM、MIPS、RISC-V
独立编址(I/O映射I/O) I/O端口与内存地址空间分离,有独立的地址空间 使用专用I/O指令(IN/OUT) 不占用内存地址空间;指令清晰 需要专用I/O指令;编程稍复杂 x86

6.2 辅助存储器和输入输出设备工作原理

6.2.1 辅助存储器(外存)

辅助存储器用于长期保存程序和数据,其特点是容量大、非易失性、速度慢于主存。

1. 磁表面存储器(磁盘)

磁盘是最经典的磁表面存储器,包括硬磁盘和软磁盘。其工作原理如下:

  • 结构:由涂有磁性材料的盘片、读写磁头、主轴电机和寻道机构组成
  • 信息组织
    • 盘片被划分为若干同心圆,每个同心圆称为磁道(Track)
    • 每个磁道被划分为若干扇区(Sector),是磁盘的最小读写单位
    • 多个盘片叠放,同一柱面位置的所有磁道构成柱面(Cylinder)
  • 寻址方式:柱面号 → 磁头号 → 扇区号(CHS寻址)
  • 读写原理:磁头悬浮在盘片表面,通过电磁感应读写数据。写入时,电流通过磁头线圈产生磁场,磁化盘片表面;读出时,磁头感应盘片表面的磁场变化产生感应电流

磁盘性能指标

  • 寻道时间:磁头移动到目标磁道的时间
  • 旋转延迟:目标扇区旋转到磁头下方的时间(平均为旋转半周的时间)
  • 传输时间:数据在磁头和内存之间传输的时间
  • 平均访问时间 = 寻道时间 + 旋转延迟 + 传输时间

2. 固态硬盘(SSD)

固态硬盘基于NAND Flash闪存技术,没有机械部件。其特点如下:

  • 优点:速度快(无寻道和旋转延迟)、功耗低、抗震性强、噪音小
  • 缺点:单位成本高、写入次数有限(需磨损均衡算法)
  • 组成:控制芯片 + 闪存芯片阵列

6.2.2 输入设备工作原理

设备 工作原理
键盘 采用矩阵扫描方式,按键时触发开关信号,键盘控制器生成扫描码,经串行通信发送给主机
鼠标 光学鼠标通过LED照射表面,CMOS传感器拍摄图像,DSP比较连续图像差异计算位移量
扫描仪 CCD(电荷耦合器件)或CIS(接触式图像传感器)将光信号转换为电信号,经模数转换生成数字图像

6.2.3 输出设备工作原理

1. 显示器

类型 工作原理 特点
LCD(液晶显示器) 利用液晶分子的光电效应,通过电压控制液晶排列方向,改变透光率 轻薄、功耗低
OLED 有机发光二极管自发光,每个像素独立发光 对比度高、响应快、可弯曲
CRT(阴极射线管) 电子枪发射电子束轰击荧光屏发光 笨重、功耗高、已淘汰

显示技术指标

  • 分辨率:水平像素数 × 垂直像素数(如1920×1080)
  • 刷新率:每秒刷新图像的次数(Hz),如60Hz、144Hz
  • 色深:每个像素用多少位表示颜色(如24位真彩色)

2. 打印机

类型 工作原理 特点
针式打印机 打印针击打色带,在纸上形成点阵 可打印多联纸、噪声大、速度慢
喷墨打印机 通过喷嘴喷射墨滴到纸上 彩色效果好、耗材较贵
激光打印机 静电原理:充电→曝光→显影→转印→定影 速度快、成本低(批量打印)

6.3 I/O数据传送控制方式

CPU与外设之间数据传送的效率直接影响系统性能。根据CPU参与程度的不同,I/O控制方式可分为四种,从低到高演进:

6.3.1 程序查询方式

工作流程

  1. CPU向I/O接口发出命令字,启动外设
  2. CPU循环读取状态寄存器,检查外设是否准备好
  3. 若准备好,则执行数据传送
  4. 否则继续查询等待

特点

  • 优点:硬件开销小,控制简单,易于实现
  • 缺点:CPU长期处于查询等待状态,效率极低;无法处理突发事件

适用场景:对实时性要求不高、数据量小的简单系统

6.3.2 程序中断方式

工作流程

  1. CPU启动外设后,继续执行主程序
  2. 外设准备好数据时,通过中断请求信号向CPU申请服务
  3. CPU执行完当前指令后,响应中断,保存现场(断点、寄存器)
  4. CPU执行中断服务程序,完成数据传送
  5. 恢复现场,返回主程序继续执行

特点

  • 优点:CPU与I/O部分并行,提高了效率;能处理随机事件
  • 缺点:响应中断需要保存/恢复现场,有一定开销;大量中断会降低性能

6.3.3 DMA(直接存储器访问)方式

工作流程

  1. CPU对DMA控制器进行初始化(设置传送方向、内存地址、传送字节数等)
  2. DMA控制器接管总线控制权(总线请求→总线响应)
  3. DMA控制器直接控制外设与内存之间的数据传送,不经过CPU
  4. 传送完成后,DMA控制器向CPU发出中断请求,报告传送结束

特点

  • 优点:数据传送不占用CPU,效率极高;适合大数据量块传送
  • 缺点:需要DMA控制器硬件支持;传送期间CPU无法使用总线(但可继续内部运算)

6.3.4 通道方式

工作原理:通道是一个专门负责I/O的处理器(I/O处理器),它有自己的指令系统,能够独立执行通道程序,控制多台外设与内存之间的数据交换。

特点

  • 优点:进一步解放CPU,可实现更复杂的I/O管理
  • 缺点:硬件成本较高,适合大型机系统

6.3.5 四种方式的对比

控制方式 CPU参与程度 数据传输单位 适用场景 效率
程序查询 全程参与 字/字节 简单系统 极低
程序中断 启动+结束时参与 字/字节 随机事件、小数据量 较高
DMA 启动+结束时参与 数据块 高速外设(磁盘)
通道 启动+结束时参与 数据块 大型机、多外设 极高

6.4 总线与输入输出接口技术

6.4.1 总线的基本概念

总线是连接计算机各部件的一组公共信号线,是信息传输的公共通道。采用总线结构可以简化系统设计,提高模块化程度。

总线的分类

分类方式 类型 说明
按位置 片内总线 CPU芯片内部的总线
系统总线 连接CPU、主存、I/O接口的总线(数据总线、地址总线、控制总线)
通信总线 连接计算机系统之间的总线
按数据传输方式 并行总线 多根线同时传输多位数据(速度快,但距离受限)
串行总线 单根线逐位传输(速度慢,但距离远、成本低)

6.4.2 总线结构

单总线结构:所有部件都连接到同一组总线上。优点是结构简单、易于扩展;缺点是总线成为系统瓶颈,多个部件同时请求时需仲裁。

多总线结构:采用多级总线(如CPU总线、内存总线、I/O总线),通过桥接器连接。优点是缓解总线竞争,提高带宽;缺点是结构复杂、成本高。现代计算机普遍采用多总线结构。

6.4.3 总线仲裁

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

仲裁方式 原理 特点
链式查询 按物理位置串联,优先级固定(离控制器越近优先级越高) 电路简单,但优先级固定,故障敏感
计数器定时查询 计数器轮流查询各设备,优先级可改变 灵活性好,但电路复杂
独立请求方式 每个设备有独立的请求线和授权线 响应快,优先级可编程,但连线多

6.4.4 总线通信控制

总线通信控制解决数据传送的同步问题,主要有两种方式:

方式 原理 特点
同步通信 由统一时钟控制,双方按约定时序工作 速度快、控制简单,但速度受最慢设备限制
异步通信 无统一时钟,通过握手信号(请求/应答)协调 适应性强,速度可动态调整,但控制复杂

6.4.5 I/O接口技术

接口的基本功能

  • 数据缓冲(速度匹配)
  • 信号格式转换(电平转换、串并转换)
  • 地址译码(设备选择)
  • 提供状态信息(忙/闲、出错)

常见接口标准

接口 类型 特点 典型应用
USB 串行 即插即用、热插拔、可供电 键盘、鼠标、U盘、打印机
PCIe 串行(高速) 点对点、高带宽 显卡、SSD、网卡
SATA 串行 专用于存储设备 硬盘、光驱
HDMI 串行 音视频一体化 显示器、电视
RS-232C 串行 传统串行通信标准 工业控制、调试接口

6.5 程序中断与DMA控制技术

6.5.1 中断的基本概念

中断是指CPU在执行程序过程中,由于内部或外部事件(如外设请求、运算错误)的触发,暂时中止当前程序的执行,转去执行处理该事件的程序(中断服务程序),处理完毕后返回原程序继续执行的过程。

中断的分类

分类 类型 来源
按产生位置 内部中断(异常) CPU内部:除零、溢出、缺页、非法指令等
外部中断(硬件中断) CPU外部:I/O设备、定时器、电源等
按可否屏蔽 可屏蔽中断 可通过指令屏蔽(如普通I/O中断)
不可屏蔽中断(NMI) 必须响应(如电源故障、内存校验错)

6.5.2 中断响应与处理过程

中断响应流程(硬件完成):

  1. CPU执行完当前指令,检测中断请求信号
  2. 若允许中断且优先级足够,则进入中断响应周期
  3. 关中断(禁止其他中断)
  4. 保存断点(PC值)和程序状态字(PSW)
  5. 根据中断类型,查找中断向量表,获取中断服务程序入口地址
  6. 转去执行中断服务程序

中断服务程序流程(软件完成):

  1. 保护现场(保存CPU内部寄存器内容)
  2. 执行中断处理(数据传送、错误处理等)
  3. 恢复现场(恢复寄存器内容)
  4. 开中断
  5. 中断返回(IRET指令)

6.5.3 中断优先级与中断嵌套

当多个中断同时发生时,需要优先级机制决定响应顺序。中断优先级原则:

  • 不同优先级:高优先级中断可以打断低优先级中断(中断嵌套)
  • 相同优先级:按固定顺序(轮询)或预先设定顺序处理

中断屏蔽字:通过设置中断屏蔽寄存器,可以动态改变中断的响应顺序。例如,设置屏蔽字后,某些低优先级中断即使发生也不会被响应。

6.5.4 DMA控制技术

DMA控制器的组成

  • 地址寄存器:存放内存地址(每次传送后自动增减)
  • 字节计数器:记录剩余传送字节数
  • 控制/状态寄存器:接收CPU命令,报告状态
  • 数据缓冲寄存器:暂存传送的数据

DMA传送过程

text

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
1. 预处理阶段(CPU完成):
CPU向DMA控制器写入:
- 内存起始地址
- 传送字节数
- 传送方向(读/写)
- 启动DMA传送

2. 数据传送阶段(DMA控制器完成):
- DMA控制器向CPU申请总线控制权
- CPU响应后让出总线(总线响应)
- DMA控制器控制外设与内存直接传送数据
- 每传送一个字,地址寄存器+1,计数器-1

3. 后处理阶段(CPU完成):
- 传送完毕,计数器=0
- DMA控制器向CPU发出中断请求
- CPU执行中断服务程序,处理结束事宜

DMA传送方式

方式 原理 特点
停止CPU访问 DMA控制器获得总线控制权后,CPU暂停访问内存 简单,但CPU效率低
周期窃取(周期挪用) DMA利用CPU不访问内存的周期传送数据 CPU效率高,实现较复杂
交替分时访问 CPU和DMA交替使用总线周期 不需要总线请求/响应,但速度受限

6.5.5 中断与DMA的对比

对比项 中断方式 DMA方式
数据传送路径 CPU → 内存(需CPU参与) 外设 ↔︎ 内存(不经过CPU)
CPU参与程度 每次传送都需要CPU干预 仅启动和结束时需CPU参与
传送单位 字/字节 数据块
适用场景 小数据量、随机事件 大数据量、高速外设
响应速度 较慢(需保存/恢复现场) 快(硬件直接控制)
硬件复杂度 简单 需要DMA控制器

本章考试重点分析

章节 高频考点 常见题型
6.1 I/O系统基础 I/O编址方式对比、I/O接口组成 选择、填空、简答
6.2 外设原理 磁盘访问时间计算、SSD与磁盘对比、显示器技术指标 计算、简答
6.3 I/O控制方式 四种方式对比、各自优缺点、适用场景 选择、简答、对比题
6.4 总线与接口 总线分类、仲裁方式、同步/异步通信、常见接口标准 选择、简答
6.5 中断与DMA 中断响应流程、中断嵌套、DMA传送过程、中断与DMA对比 简答、分析题

7.计算新结构与新型计算技术

7.1 多处理机与多核处理器、超标量、超流水技术

7.2 量子计算机等新概念和新技术

二、参考书目

1.《计算机组成原理》(第三版),唐朔飞主编,高等教育出版社,2020年;

2.《计算机组成与结构》(第五版),王爱英主编,清华大学出版社,2013年。


计算机组成与结构
http://viper2383.github.io/2026/02/28/计算机组成与结构/
作者
w1per3
发布于
2026年2月28日
许可协议