计算机组成与结构
本文最后更新于:2026年2月28日 下午
考试内容
1. 计算机系统概论
1.1 计算机系统的层次结构
计算机系统的基本组成
硬件 系统和 软件 系统共同构成了一个完整的计算机系统。硬件指的是有形的物理设备,是计算机系统中实际物理装置的总称。软件指的是在硬件上运行的程序和相关的数据及文档。
硬件 和 软件 关系:硬件是计算机的物理部分,它提供了运行软件所需的基础设施,而软件则是 指令集,指导 硬件如何工作以执行特定的任务。
1.2 计算机硬件的基本组成
冯诺依曼结构
冯·诺依曼提出的 “存储程序” 的思想奠定了当代计算机的基本结构,以此概念为基础的各类计算机通称为 冯·诺依曼机,其特点如下:
- 计算机 硬件 系统由 运算器、存储器、控制器、输入设备 和 输出设备 5 大部件 组成。
- 指令和数据 以同等地位存储在 存储器 中,形式上没有区别,但计算机应能区分它们。
- 指令和数据均用 二进制代码 表示,指令包含操作码和地址码,操作码指出操作的类型,地址码指出操作数的地址。
- 以 运算器 为中心,其他部件配合其工作。
1.3 计算机的主要技术指标
衡量一台计算机性能的好坏,通常参考以下几个主要技术指标:
- 机器字长:指CPU一次能并行处理的二进制位数(即数据总线的宽度)。
- 意义:字长直接影响计算机的计算精度、数据处理能力和运算速度。字长越长,精度越高,处理能力越强。通常,字长越长,计算机的档次也越高。例如,早期的计算机是8位、16位,现在个人计算机通常是64位。
- 存储容量:衡量计算机存储器(主要是内存)所能容纳信息量多少的指标。
- 单位:以字节(Byte,简称B)为基本单位。常用单位有KB、MB、GB、TB等,它们之间的关系是\(1KB = 2^{10}B = 1024B\),依次类推。
- 意义:内存容量决定了计算机能直接处理的数据量和能运行的程序规模。容量越大,能运行大型软件的能力越强,速度也越快。
- 运算速度:衡量计算机进行数值计算或信息处理快慢的指标。表示方法有多种:
- 主频(时钟频率):指CPU内核工作的时钟频率,即CPU在每秒内发出的脉冲数。单位是赫兹(Hz),常用MHz或GHz表示。主频在很大程度上决定了计算机的运算速度,主频越高,速度越快。
- 每秒百万条指令(MIPS):即每秒能执行多少百万条指令。这是一个用指令执行速度来表示的指标。
- 每秒百万次浮点运算(MFLOPS):专门用于衡量计算机进行浮点运算的速度,常用于科学计算领域。
- 存取周期:指存储器进行两次独立的读或写操作所需的最短时间间隔。这个时间越短,存取速度越快,说明存储器的性能越好。由于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)、访存控制信号
主存容量扩展:
- 位扩展:增加字长(数据线宽度)
- 字扩展:增加存储单元数量(地址空间)
- 字位同时扩展:既增加字数又增加位长
片选方式:
- 线选法: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中。
局部性原理:
- 时间局部性:刚访问过的数据近期很可能再次访问
- 空间局部性:刚访问过的数据附近的数据很可能被访问
工作过程:
- CPU访问存储器时,先检查Cache
- 若命中(Cache中有数据),直接访问Cache
- 若不命中(脱靶),访问主存,并将该数据所在块调入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 | |
3.4.2 两个关键层次
| 层次 | 解决的问题 | 实现方式 |
|---|---|---|
| Cache-主存层次 | CPU与主存速度不匹配 | 硬件自动完成 |
| 主存-辅存层次 | 主存容量不足 | 操作系统+硬件(虚拟存储器) |
3.5 虚拟存储器、相联存储器与存储保护技术
3.5.1 虚拟存储器概述
概念:虚拟存储器是主存与辅存(磁盘)构成的存储层次,为用户提供比实际主存大得多的虚拟地址空间。
核心思想:按需调页——当前运行的程序部分驻留主存,其余在磁盘上。
特点:
- 程序员在虚拟地址空间中编程,不受主存限制
- 地址转换由硬件(MMU)和操作系统共同完成
- 缺页处理由操作系统负责
3.5.2 虚拟存储器的实现方案
| 方案 | 特点 | 地址转换 |
|---|---|---|
| 分页式 | 固定大小页(如4KB),无外部碎片 | 页表:虚页号→页框号 |
| 分段式 | 按逻辑段划分,大小可变 | 段表:段号→段基址+段内偏移 |
| 段页式 | 分段+段内分页 | 先查段表,再查页表 |
3.5.3 页表与地址转换
页表项内容:
- 装入位(有效位)
- 访问标志/使用位
- 修改位(脏位)
- 存取权限位
- 主存页框号或磁盘地址
地址转换过程:
- 由虚页号查页表
- 若装入位有效,得到页框号
- 物理地址 = 页框号 × 页大小 + 页内偏移
3.5.4 快表(TLB)
TLB(Translation Lookaside Buffer)是存放常用页表项的相联存储器(特殊Cache)。
作用:避免每次地址转换都访问主存中的页表,加速地址转换。
特点:按内容访问(相联存储器),而非按地址访问。
3.5.5 存储保护
两类保护机制:
- 访问越界保护:检查地址是否在允许范围内
- 存取方式违例保护:检查操作权限(读/写/执行)
本章考试重点分析
| 章节 | 高频考点 | 常见题型 |
|---|---|---|
| 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 指令格式设计步骤
- 需求分析:确定指令条数、类型、寻址方式
- 操作码设计:选择定长或变长操作码
- 地址码设计:确定地址码个数和长度
- 指令长度确定:是定长还是变长
- 编码分配:给每条指令分配二进制编码
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 | |
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 程序查询方式
工作流程:
- CPU向I/O接口发出命令字,启动外设
- CPU循环读取状态寄存器,检查外设是否准备好
- 若准备好,则执行数据传送
- 否则继续查询等待
特点:
- 优点:硬件开销小,控制简单,易于实现
- 缺点:CPU长期处于查询等待状态,效率极低;无法处理突发事件
适用场景:对实时性要求不高、数据量小的简单系统
6.3.2 程序中断方式
工作流程:
- CPU启动外设后,继续执行主程序
- 外设准备好数据时,通过中断请求信号向CPU申请服务
- CPU执行完当前指令后,响应中断,保存现场(断点、寄存器)
- CPU执行中断服务程序,完成数据传送
- 恢复现场,返回主程序继续执行
特点:
- 优点:CPU与I/O部分并行,提高了效率;能处理随机事件
- 缺点:响应中断需要保存/恢复现场,有一定开销;大量中断会降低性能
6.3.3 DMA(直接存储器访问)方式
工作流程:
- CPU对DMA控制器进行初始化(设置传送方向、内存地址、传送字节数等)
- DMA控制器接管总线控制权(总线请求→总线响应)
- DMA控制器直接控制外设与内存之间的数据传送,不经过CPU
- 传送完成后,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 中断响应与处理过程
中断响应流程(硬件完成):
- CPU执行完当前指令,检测中断请求信号
- 若允许中断且优先级足够,则进入中断响应周期
- 关中断(禁止其他中断)
- 保存断点(PC值)和程序状态字(PSW)
- 根据中断类型,查找中断向量表,获取中断服务程序入口地址
- 转去执行中断服务程序
中断服务程序流程(软件完成):
- 保护现场(保存CPU内部寄存器内容)
- 执行中断处理(数据传送、错误处理等)
- 恢复现场(恢复寄存器内容)
- 开中断
- 中断返回(IRET指令)
6.5.3 中断优先级与中断嵌套
当多个中断同时发生时,需要优先级机制决定响应顺序。中断优先级原则:
- 不同优先级:高优先级中断可以打断低优先级中断(中断嵌套)
- 相同优先级:按固定顺序(轮询)或预先设定顺序处理
中断屏蔽字:通过设置中断屏蔽寄存器,可以动态改变中断的响应顺序。例如,设置屏蔽字后,某些低优先级中断即使发生也不会被响应。
6.5.4 DMA控制技术
DMA控制器的组成:
- 地址寄存器:存放内存地址(每次传送后自动增减)
- 字节计数器:记录剩余传送字节数
- 控制/状态寄存器:接收CPU命令,报告状态
- 数据缓冲寄存器:暂存传送的数据
DMA传送过程:
text
1 | |
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年。