第5章 计算机、微型计算机的组成及工作过程
课程:1A003 计算机组织与系统结构(第二部分) 来源:田浩然上传的资料
本章概述
本章从冯·诺依曼计算机基本结构出发,系统介绍计算机五大组成部件(运算器、控制器、存储器、输入设备、输出设备)的功能与工作原理,深入讲解指令执行的完整过程(取指-译码-执行),对比硬布线控制器与微程序控制器两种实现方式,最后介绍微型计算机的特点、分类和主要技术指标。
5.1 计算机的产生与发展
计算机发展的关键里程碑
- ENIAC(Electronic Numerical Integrator And Computer):第一台电子数字积分计算机,概念产生的重要意义
- EDVAC(Electronic Discrete Variable Automatic Computer):冯·诺依曼结构(stored-program computer,存储程序计算机),首次采用存储程序概念,开创了程序设计时代
- 4004 微处理器(1971):世界上第一个微处理器,2250 晶体管,4.2mm × 3.2mm
- 8008 微处理器(1973):3500 晶体管
- Pentium 微处理器(1993):320 万晶体管
- Itanium 2:2.14 亿晶体管,1GHz 主频,0.18 微米线宽,328 个寄存器
冯·诺依曼结构的核心贡献:存储程序——将指令和数据一同存入存储器,计算机自动依次取出执行。在此之前的计算机(如 ENIAC)不具备存储程序的功能,需要通过手动接线来编程。
5.2 计算机的组成
5.2.1 冯·诺依曼计算机五大部件
冯·诺依曼计算机由五大部件组成:
输入设备 → 存储器 ↔ 运算器
↕
控制器
↕
输出设备
| 部件 | 功能 |
|---|---|
| 运算器 | 算术运算(加减乘除)和逻辑运算(非与或等) |
| 控制器 | 取指令、分析指令、执行指令,控制各部件协同工作 |
| 存储器 | 存放指令和数据 |
| 输入设备 | 程序和数据输入 |
| 输出设备 | 输出结果 |
各部件之间通过三组信号连接:
- 命令和应答信号
- 状态和请求信号
- 数据通路(程序数据输入 / 结果输出)
5.2.2 存储器
核心概念区分:地址 vs 内容
- 计算机中的指令和数据都表现为二进制数码,必须存入存储器的不同区域才能被区分
- 以字节(或字)为单位将存储器划分为存储单元,每个单元赋予一个序号(从零开始的无符号整数),称为存储单元的地址
- 存储单元中存放的数据或指令称为存储单元的内容
- 地址是识别不同存储单元的唯一标识
关键要点:
- 地址的位数由控制器地址线的位数确定
- 如果控制器有 n 条地址线,最多能管理 2ⁿ 个存储单元
- 按字节编址时,每个存储单元存放 8 位二进制数
- 每个存储单元的地址都是唯一的
- 读写存储器时必须先给出地址,然后才能访问内容
- 地址和内容都是二进制码,但完全是两个不同概念——类比高级语言中的变量名和变量值
5.2.3 运算器
组成结构:
- ALU(Arithmetic Logic Unit,算术逻辑部件):核心部件,完成算术运算和逻辑运算
- X、Y 寄存器:ALU 的输入寄存器(数据暂存器)
- Z 寄存器:ALU 的输出寄存器
- 累加器
- 通用寄存器组:R0、R1、…、Rn-1
- 标志寄存器 F(Flags):存放运算结果状态
- 结果是否为零(ZF)
- 是正还是负(SF)
- 有无进位(CF)
- 是否溢出(OF)
- 等等
工作过程:
- ALU 对 X、Y 中的数据进行运算,结果送到 Z
- X、Y 中的数据可来自通用寄存器,也可来自存储器
- Z 中的数据可送往通用寄存器,也可送往存储器
5.2.4 控制器
六大组成部分:
| 部件 | 全称 | 功能 |
|---|---|---|
| IR | Instruction Register 指令寄存器 | 存放正在执行或即将执行的指令 |
| PC | Program Counter 程序计数器 | 存放下一条指令的存储单元地址,具有自动增量计数功能 |
| MAR | Memory Address Register 存储器地址寄存器 | 访存时缓存存储单元的地址 |
| MDR | Memory Data Register 存储器数据寄存器 | 访存时缓存对存储单元读/写的数据 |
| ID | Instruction Decoder 指令译码器 | 对 IR 中的指令进行译码,确定是哪一条指令 |
| 控制电路 | — | 产生时序脉冲信号,在时序脉冲同步下发出操作控制命令 |
5.2.5 微型计算机的组成
微型计算机 = CPU + 存储器 + I/O 接口 + 输入/输出设备
- 主机:包含除输入/输出设备以外的所有部件,能独立工作
三大系统总线:
| 总线 | 全称 | 方向 | 功能 |
|---|---|---|---|
| AB | Address Bus 地址总线 | 单向(CPU→其他) | 传输地址,选择要访问的存储单元或 I/O 端口 |
| DB | Data Bus 数据总线 | 双向 | 传输数据,CPU↔存储器/IO 之间双向流动 |
| CB | Control Bus 控制总线 | 部分单向部分双向 | 传输控制信号、时序信号、状态信号等 |
地址总线、数据总线、控制总线通常统称为系统总线(System Bus)。
5.3 指令系统与程序示例
指令格式示例(简化模型)
每条机器指令 2 个字节:
- 第一个字节:高 4 位 = 操作码,低 4 位 = 寄存器号(或 0000)
- 第二个字节:存储单元地址
四条示例指令
| 汇编指令 | 操作码 | 功能 |
|---|---|---|
LOAD R1, M1 | 0000 | 将 M1 的内容送入 R1 |
ADD R1, M2 | 0001 | R1 的内容加上 M2 的内容,结果送回 R1 |
STORE M3, R1 | 0010 | 将 R1 的内容送入 M3 中 |
JMP L | 0011 | 无条件转向 L 处继续执行 |
程序示例:(M1) + (M2) → (M3),然后跳转到 L
汇编语言程序 机器语言程序(二进制) 功能
─────────────────────────────────────────────────────
LOAD R1, M1 00001011 00000101 (M1)→R1
ADD R1, M2 00011011 00000110 (R1)+(M2)→R1
STORE M3, R1 00101011 00000111 (R1)→M3
JMP L 00110000 00010001 转 L 处
假设:M1、M2、M3 地址分别为 5、6、7;内容分别为 12、34、0;地址 L 为 17;R1 编号为 1011。
5.4 计算机的工作过程
5.4.1 指令执行的五大步骤
计算机执行程序的过程,就是不断重复”取指令→执行指令”的循环:
- 取指令:控制器把 PC 中的指令地址送往 MAR,发读命令;存储器读出指令,经 MDR 送往控制器,保存在 IR 中
- 指令译码:ID 对 IR 中的指令进行译码,分析操作性质;控制电路向有关部件发出微命令
- 取操作数(如需):控制器根据指令地址字段形成数据地址,送 MAR,发读命令;数据经 MDR 送往运算器
- 执行运算并存结果(如需):运算器执行运算,结果如需写回存储器,则送地址到 MAR、数据到 MDR,发写命令
- 形成下一条指令地址:一条指令执行完毕后,PC 增量形成下一条指令地址(顺序执行),或根据转移指令修改 PC
控制器不断重复上述过程,每重复一次,就执行了一条指令,直到整个程序执行完毕。
5.4.2 机器周期的概念
机器周期定义:计算机通过内部总线进行一次信息传输,从而完成一个或几个微操作所需要的时间。
取指令的两个机器周期:
以 LOAD 指令为例,取指阶段:
| 周期 | 步骤 | 操作 | 是否占用内部总线 |
|---|---|---|---|
| T1 | (i) | 控制器发 PCOUT、MARIN,PC→MAR | 是 |
| T1 | (ii) | 控制器发 M读,存储器→MDR(通过 DBUS) | 否(走外部数据总线) |
| T1 | (iii) | 控制器发 PC加,PC 自增 | 否 |
| T2 | (iv) | 控制器发 MDROUT、IRIN,MDR→IR | 是 |
第(i)(ii)(iii)步可在同一个机器周期内完成(前三步不冲突),第(iv)步占用内部总线,需要另一个机器周期。 取指令共需要 2 个机器周期。
5.4.3 各指令的执行过程分析
LOAD R1, M1 执行阶段(2 个机器周期):
- T3:IR 地址段→MAR(发 IROUT、MARIN),发 M读,M1→MDR
- T4:MDR→R1(发 MDROUT、R1IN)
ADD R1, M2 执行阶段(4 个机器周期):
- T3:M2→Y
- T4:R1→内部总线(ALU 的 B 端),ALU 执行加法
- T5:结果→Z
- T6:Z→R1
STORE M3, R1 执行阶段(2 个机器周期):
- T3:IR 地址段→MAR,R1→MDR
- T4:发 M写,MDR→M3
JMP L 执行阶段(1 个机器周期):
- T3:IR 地址段→PC(即 L→PC)
5.5 控制器的两种实现方式
5.5.1 硬布线控制器(Hardwired Control)
组成:
- 环形脉冲发生器:循环产生节拍脉冲信号(T1, T2, T3, …)
- 指令译码器:确定 IR 中存放的是哪一条指令
- 微命令编码器:在不同节拍脉冲同步下产生相应的微命令信号
工作原理:
- 用 T_i 表示第 i 个机器周期的节拍脉冲
- 用操作码编码(如 00、01、10、11 对应 LOAD、ADD、STORE、JMP)
- 每个微命令 = 若干个 (T_i × 指令操作码) 的逻辑或
示例:MARIN 微命令的逻辑表达式
MARIN = T1 + T3 · (LOAD + ADD + STORE)
即:所有指令的 T1 周期都需要 MARIN,LOAD/ADD/STORE 三条指令的 T3 周期也需要 MARIN。
特点:
- 优点:指令执行速度快(无需访问控制存储器)
- 缺点:规整性差、灵活性差(修改指令系统需要重新设计电路)
- 常用于 RISC 结构的机器中
5.5.2 微程序控制器(Microprogrammed Control)
基本思想(M.V.Wilkes,1951 年提出):
- 将指令执行所需的微命令以代码形式编成微指令
- 微指令事先存放在 CPU 内部的控制存储器(Control Memory,一般为 ROM)中
- 若干条微指令组成一段微程序,解释执行一条机器指令
- CPU 执行程序时,从控制存储器中取出微指令,由其包含的微命令控制相关操作
关键概念:
- 微指令:一条控制信号序列 + 下址字段
- 微程序:若干条微指令组成,对应一条机器指令的执行
- 控制存储器:存放全部微程序的 ROM,在 CPU 内部
微指令格式示例(16 位控制信号):
控制信号排列:
PCOUT MARIN M读 PC加 MDROUT IRIN IROUT PCIN R1IN YIN R1OUT MDRIN M写 add ZOUT End
T1 周期微指令(取指第 1 步):
1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0
(发出 PCOUT、MARIN、M读、PC加 四个微命令)
T2 周期微指令(取指第 2 步):
0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0
(发出 MDROUT、IRIN 两个微命令)
特点:
- 优点:规整性好、灵活性强(修改控制存储器内容即可改变指令系统)
- 缺点:指令执行速度较慢(每条指令都要启动一串微指令,多次访问控制存储器)
- 实质:用程序方法产生和组织微命令信号(将程序技术引入 CPU),用存储逻辑控制代替组合逻辑控制(将存储逻辑引入 CPU)
5.6 微型计算机的特点、分类与技术指标
5.6.1 微型计算机的特点
- 体积小、重量轻、功耗低
- 50 年代占地上百平方米、耗电上百千瓦的计算机能力 ≈ 如今一片大规模集成电路
- MC 68000(16位):6.25 × 7.14 mm²,功耗 1.2W,功能媲美过去的小型机 CPU
- Pentium II:750 万晶体管,203 mm²,266 MHz,功耗 38.2W
- 可靠性高,使用环境要求低
- 软件丰富
- 结构设计灵活、便于组装
- 价格便宜
5.6.2 微型计算机的分类
按微处理器位数(字长)分类:
- 4 位机、8 位机、16 位机、32 位机 等
- 位片式微型计算机:若干个位片组合而成,一片=一位,不同位片数组成不同字长。结构灵活。
- 典型产品:MC 10800(4位)、AM2900 系列(4位)、F100220 系列(8位)
按组装形式分类:
| 类型 | 特点 | 典型产品 |
|---|---|---|
| 单片机(Microcontroller) | CPU + 存储器 + I/O 接口全部在一块芯片上;容量不大,I/O 不多;嵌入到仪器仪表、家电中实现智能化 | MCS-51 系列(8031/8051/8751)、MCS-96 系列(8096/8796/8098)、MC 6805、Z8 |
| 单板机 | CPU + 存储器 + I/O 接口全部安装在一块 PCB 上;配有小键盘和数码管;ROM 中装有监控程序 | TP 801 (Z80)、ET3400 (6800)、KD86 (8086) |
| 多板机 | 各部件在不同 PCB 上,组装在机箱内;可配多种外设和丰富软件;形成完整系统 | 台式 PC 机 |
5.6.3 主要技术指标
1. 字长
- 计算机一次最多能处理的二进制数的位数
- 通常与 CPU 内部寄存器、加法器的位数一致
- 常见:4位、8位、16位、32位 等
- 直接影响计算机的规模、造价和运算精度
2. 主存容量
- 主存储器所能存储的信息总量,一般以字节为单位
- 微型机主存容量一般可达 512MB,最大允许容量可达 4GB(32位地址空间)
3. 运算速度
- 早期:综合折算法(加减乘除各占比例折算)
- 现在普遍采用:MIPS(Million Instructions Per Second,每秒百万条指令)
- 以加减运算这类短指令为基准
- 高性能微处理器已达 1000 MIPS 以上
4. 主频率(主频)
- 主时钟信号的频率,倒数 = 时钟周期
- 一般来说主频高的计算机运算速度也快
- 高性能微型机主频已达 3.0 GHz 以上
5. 平均无故障运行时间(MTBF)
- Mean Time Between Failures
- 机器工作时间 ÷ 故障次数(统计平均值)
- 该值越大,可靠性越高
- 微型机 MTBF 已可达数千甚至上万小时
知识关联
- Structured Computer Organization — Tanenbaum 的经典教材,更深入的六层抽象模型
- CSAPP — 程序员视角的计算机系统
- 计算机体系结构-量化研究方法 — 更高层次的量化分析
- SICP — 存储程序概念的抽象层提升
- 与 操作系统课程(一)—— 绪论与操作系统概述 衔接:计算机硬件组成→操作系统软件管理
- 与 C++ 编程 关联:C++ 中的变量名和变量值 = 存储器中的地址和内容的高层抽象
学习要点
- 冯·诺依曼结构五大部件必须熟记
- 取指令-执行指令的循环过程是理解计算机工作原理的核心
- 硬布线 vs 微程序两种控制器的对比是常考点
- 地址 vs 内容的区别是理解存储器的基础
- 三大总线(地址/数据/控制)的方向和功能需要明确区分
- 微程序控制器的本质:用软件思想来做硬件控制