计算机组成原理
复习指南
作者:FuZY
时间:June 22, 2025
版本:V1-正式版
Q 群:1019314204
前言
资料说明
本书参考了《计算机组成原理(第 7 版)》的内容,方便学习和复习相关知识。
本书的内容主要包括运算方法、存储系统、指令系统、中央处理器、总线系统、外围设备、输入输出系统
等方面的内容。
使用说明
本资料仅供学习和交流使用,禁止用于任何商业用途。
本资料的内容仅供参考,作者不对任何因使用本资料而产生的后果负责。
禁止将本资料用于任何不正当的用途,包括但不限于考试作弊、抄袭等行为。
资料备份
Github 连接:https://ifuzyi.github.io/NOTES/计算机组成原理.html
网站连接:https://study.fuzy.site
QQ 群:1019314204
FuZY
2025 6 1
目录
1
1 部分 * 知识
1 章 概论 3
1.1 计算机系统性能评价 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 计算机系统的层次结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2 章 运算方法和运算器 4
2.1 数据与文字的表示方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1.1 定点数的表示方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1.2 浮点数的表示方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.1.3 校验码. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2 定点加减法运算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2.1 补码加减法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2.2 补码乘除法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2.3 溢出概念与检测方法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3 章 储存系统 11
3.1 存储器的编址和端模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.2 静态随机存取存储器 (SRAM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.2.1 存储器容量的扩充 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.3 多模块交叉存储器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.4 cache 存储器. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.4.1 cache 的命中率. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.4.2 主存与 cache 的地址映射. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.4.3 cache 的替换策略 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.4.4 cache 的写操作策略 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.5 虚拟存储器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.5.1 页式虚拟存储器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.6 段式虚拟存储器和段页式虚拟存储器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.6.1 cache 与虚存的异同 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
4 章 指令系统 19
4.1 指令格式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.1.1 扩展操作码技术 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
4.2 指令和数据的寻址方式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.2.1 指令的寻址方式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.2.2 操作数基本寻址方式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.3 典型指令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.3.1 RISC 指令系统 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
5 章 中央处理器 23
5.1 CPU 的功能和组成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
5.1.1 CPU 的功能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
5.1.2 CPU 的基本组成. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
5.1.3 CPU 中的主要寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
5.2 微程序控制器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
5.2.1 微命令编码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
5.2.2 微指令格式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
5.3 流水线技术与流水处理器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
5.3.1 线性流水线的性能指标 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
6 章 总线系统 28
6.1 总线的性能指标 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
6.2 总线仲裁 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
7 章 外围设备 30
7.1 硬盘存储设备 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
7.2 显示设备 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
8 章 输入/输出系统 32
8.1 I/O 接口与外设间的数据传送方式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
8.2 程序中断方式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
8.2.1 单级中断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
8.2.2 多级中断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
8.3 DMA 方式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2
2 部分 * 练习
1 章 计算机系统概述 36
2 章 运算方法和运算器 38
3 章 存储系统 42
4 章 指令系统 46
5 章 中央处理器 49
6 章 总线系统 51
7 章 外围设备 53
8 章 输入/输出系统 55
ii
第一部分
知识
1 部分目录
1 概论 3
1.1 计算机系统性能评价 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 计算机系统的层次结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2 运算方法和运算器 4
2.1 数据与文字的表示方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2 定点加减法运算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3 储存系统 11
3.1 存储器的编址和端模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.2 静态随机存取存储器 (SRAM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.3 多模块交叉存储器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.4 cache 存储器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.5 虚拟存储器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.6 段式虚拟存储器和段页式虚拟存储器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
4 指令系统 19
4.1 指令格式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.2 指令和数据的寻址方式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.3 典型指令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
5 中央处理器 23
5.1 CPU 的功能和组成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
5.2 微程序控制器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
5.3 流水线技术与流水处理器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
6 总线系统 28
6.1 总线的性能指标 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
6.2 总线仲裁 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
7 外围设备 30
7.1 硬盘存储设备 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
7.2 显示设备 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
1 部分目录
8 输入/输出系统 32
8.1 I/O 接口与外设间的数据传送方式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
8.2 程序中断方式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
8.3 DMA 方式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2
1 概论
1 概论
1.1 计算机系统性能评价
吞吐量:计算机在时间间隔内能处理的信息量,单位字节/秒(B/s
响应时间:从输入有效到系统产生响应的时间度量,单位:微秒 𝜇𝑠10
6
秒)、纳秒 𝑛𝑠10
9
秒)
利用率:给定时间内系统实际使用时间的比率,用百分比表示。
处理机字长:指处理机运算器中一次能够完成二进制数运算的位数,决定了寄存器和数据总线的位数。
总线宽度:一般指 CPU 中运算器与存储器之间进行互连的内部总线二进制位数。
存储容量存储器中所有存储单元的总数目,通常用 KBMBGBTB 来表示。其中 K=2
10
M=2
20
G=2
30
T=2
40
B=8 位(1 个字节)
存储器带宽:存储器的速度指标,单位时间内从存储器读出的二进制数信息量,一般用字节数/秒表示。
主频/时钟周期CPU 的工作节拍受主时钟控制,主时钟不断产生固定频率的时钟,主时钟的频率(f)叫
CPU 的主频。度量单位是 MHzGHz
时钟周期:主频的倒数称为 CPU 时钟周期(T,即 T=
1
𝑓
,度量单位是微秒 𝜇𝑠 、纳秒 𝑛𝑠
CPU 执行时间:表示 CPU 执行一段程序所占用的 CPU 时间,可用下式计算:
CPU 执行时间 = CPU 时钟周期数 × CPU 时钟周期长(T
CPI:每条指令周期数,即执行一条指令所需的平均时钟周期数。
CPI =
执行某段程序所需的 CPU 时钟周期数
程序包含的指令条数
MIPS:每秒百万条指令数,表示单位时间内执行的指令数目。
MIPS =
指令条数
程序执行时间 × 10
6
=
𝑓
CPI × 10
6
MFLOPS:每秒百万次浮点操作次数,用来衡量机器浮点操作
1.2 计算机系统的层次结构
冯·诺依曼结构的主要思想:
计算机应由运算器、控制器、存储器、输入设备和输出设备五个基本部件组成。
内部以二进制表示指令和数据。
采用“存储程序”工作方式。
3
2 运算方法和运算器
2 运算方法和运算器
2.1 数据与文字的表示方法
2.1.1 定点数的表示方法
定点数:小数点位置固定不变的数,包含定点整数和定点小数
定点整数:小数点固定在最高位数的前面,即整数表示。𝑥
𝑛
𝑥
𝑛1
· · · 𝑥
1
𝑥
0
定点小数:小数点固定在最高位数的后面,即纯小数表示。𝑥
𝑛
.𝑥
𝑛1
· · · 𝑥
1
𝑥
0
真值:正、负号加某进制数绝对值的形式称为真值,即数的实际值
机器数:真值按某种编码方式进行编码后的数值。
1. 无符号数的编码
相当于正整数,其数值表示:
𝑥 = 𝑥
𝑛
𝑥
𝑛1
· · · 𝑥
0
𝑥
𝑖
{0, 1}, 0 𝑖 𝑛
真值为 𝑥
𝑛
2
𝑛
+ 𝑥
𝑛1
2
𝑛1
+ · · · + 𝑥
1
2
1
+ 𝑥
0
2
0
数值范围:0 𝑥 2
𝑛+1
1
2. 原码表示法
(a). 定点小数
若定点小数的原码形式为 𝑥
𝑛
.𝑥
𝑛1
. . . 𝑥
1
𝑥
0
, 则:
[𝑥]
=
𝑥 0 𝑥 < 1
1 𝑥 = 1 + |𝑥| −1 < 𝑥 0
式中 [𝑥]
是机器数,𝑥 是真值。
𝑛 + 1 位原码,最大值:1 2
𝑛
,最小值:(1 2
𝑛
)
(b). 定点整数
若定点整数的原码形式为 𝑥
𝑛
𝑥
𝑛1
. . . 𝑥
1
𝑥
0
, 则:
[𝑥]
=
𝑥 0 𝑥 < 2
𝑛
2
𝑛
𝑥 = 2
𝑛
+ |𝑥| −2
𝑛
< 𝑥 0
式中 [𝑥]
是机器数,𝑥 是真值。
𝑛 + 1 位原码,最大值:2
𝑛
1,最小值:(2
𝑛
1)
4
2 运算方法和运算器 2.1 数据与文字的表示方法
3. 反码表示法
(a). 定点小数
若定点小数的反码形式为 𝑥
𝑛
.𝑥
𝑛1
. . . 𝑥
1
𝑥
0
, 则:
[𝑥]
=
𝑥 0 𝑥 < 1
(2 2
𝑛
) + 𝑥 = (2 2
𝑛
) |𝑥| −1 < 𝑥 0
式中 [𝑥]
是机器数,𝑥 是真值。
𝑛 + 1 位反码,最大值:1 2
𝑛
,最小值:(1 2
𝑛
)
(b). 定点整数
若定点整数的反码形式为 𝑥
𝑛
𝑥
𝑛1
. . . 𝑥
1
𝑥
0
, 则:
[𝑥]
=
𝑥 0 𝑥 < 2
𝑛
(2
𝑛+1
1) + 𝑥 = (2
𝑛+1
1) |𝑥| −2
𝑛
< 𝑥 0
式中 [𝑥]
是机器数,𝑥 是真值。
𝑛 + 1 位反码,最大值:2
𝑛
1,最小值:(2
𝑛
1)
4. 补码表示法
补码的定义:
任意一个数 𝑋 的补码记为 [𝑥]
,其定义为:
[𝑥]
= 𝑋 + 𝑀 (mod 𝑀)
𝑋 > 0
𝑋 + 𝑀 > 𝑀 (自动丢失), [𝑥]
= 𝑋 (mod 𝑀)
𝑋 < 0
𝑋 + 𝑀 = 𝑀 | 𝑋 | < 𝑀, [𝑥]
= 𝑋 + 𝑀 (mod 𝑀)
(a). 定点小数
若定点小数的补码形式为𝑥
𝑛
· 𝑥
𝑛1
· · · 𝑥
1
𝑥
0
,则:
[𝑥]
=
𝑥 0 𝑥 < 1
2 + 𝑥 = 2 |𝑥| −1 𝑥 0
(mod 2)
式中
[
𝑥
]
是机器数,𝑥 是真值。
𝑛 + 1 位补码,最大值:1 2
𝑛
,最小值:1
(b). 定点整数
若定点整数的补码形式为𝑥
𝑛
𝑥
𝑛1
· · · 𝑥
1
𝑥
0
,则:
[𝑥]
=
𝑥 0 𝑥 < 2
𝑛
2
𝑛+1
+ 𝑥 = 2
𝑛+1
|𝑥| −2
𝑛
𝑥 0
(
mod 2
𝑛+1
)
式中 [𝑥]
是机器数,𝑥 是真值。
𝑛 + 1 位补码,最大值:2
𝑛
1,最小值:2
𝑛
5. 移码表示法
移码通常用于表示浮点数的阶码。
假设定点整数移码形式为 𝑥
𝑛
𝑥
𝑛1
· · · 𝑥
1
𝑥
0
时,移码的定义是:
[𝑥]
= 2
𝑛
+ 𝑥, 2
𝑛
𝑥 < 2
𝑛
(2.1)
5
2 运算方法和运算器 2.1 数据与文字的表示方法
码制转换
1. 原码与反码之间的转换
正数:[𝑥]
= [𝑥]
负数:符号数符号除外,各位取反
2. 反码与补码之间的转换
正数:[𝑥]
= [𝑥]
负数:在反码的基础上,末位加 1
3. 原码与补码之间的转换
正数:[𝑥]
= [𝑥]
负数:符号数符号除外,各位取反,末位加 1
4. 真值与原码之间的转换
正数的原码:在其二进制代码前加上符号位 0
负数的原码:在其二进制代码前加上符号位 1
5. 真值与反码之间的转换
正数的反码:在其二进制代码前加上符号位 0
负数的反码:在其二进制代码前加上符号位 1,其余位按位取反。
6. 真值与补码之间的转换
正数的补码:在其二进制代码前加上符号位 0
负数的补码:在其二进制代码前加上符号位 1,其余位按位取反,最后末位加 1
7. 移码与补码之间的转换
0 𝑥 < 2
𝑛
时,[𝑥]
= [𝑥]
+ 2
𝑛
2
𝑛
𝑥 0 时,[𝑥]
= 2
𝑛
+ [𝑥]
2
𝑛+1
= [𝑥]
2
𝑛
补码与移码只差一个符号位
2.1: 8 位定点整数
真值 x(十进制) 真值 x(二进制) [x] [x] [x] [x]
-128 -1 0 0 0 0 0 0 0 - - 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-127 -0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1
-1 -0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0
+1 + 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1
+127 + 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
2.2: 8 位定点小数
真值 x(十进制) 真值 x(二进制) [x] [x] [x] [x]
1 -1 . 0 0 0 0 0 0 0 - - 1. 0 0 0 0 0 0 0 0. 0 0 0 0 0 0 0
2
7
1 -0 . 1 1 1 1 1 1 1 1. 1 1 1 1 1 1 1 1. 0 0 0 0 0 0 0 1. 0 0 0 0 0 0 1 0. 0 0 0 0 0 0 1
2
7
-0 . 0 0 0 0 0 0 1 1. 0 0 0 0 0 0 1 1. 1 1 1 1 1 1 0 1. 1 1 1 1 1 1 1 0. 1 1 1 1 1 1 1
0 0. 0 0 0 0 0 0 0
1. 0 0 0 0 0 0 0
0. 0 0 0 0 0 0 0
1. 1 1 1 1 1 1 1
0. 0 0 0 0 0 0 0 0
0. 0 0 0 0 0 0 0 1. 0 0 0 0 0 0 0
+2
7
+0 . 0 0 0 0 0 0 1 0. 0 0 0 0 0 0 1 0. 0 0 0 0 0 0 1 0. 0 0 0 0 0 0 1 1. 0 0 0 0 0 0 1
1 2
7
+0 . 1 1 1 1 1 1 1 0. 1 1 1 1 1 1 1 0. 1 1 1 1 1 1 1 0. 1 1 1 1 1 1 1 1. 1 1 1 1 1 1 1
6
2 运算方法和运算器 2.1 数据与文字的表示方法
2.1.2 浮点数的表示方法
计算机中一个任意进制数 𝑁 可以写成:
𝑁 = ±𝑀 × 𝑅
±𝐸
𝑀:尾数,是一个纯小数
𝐸:浮点的指数,是一个整数
𝑅:基数,对于二进制数值的机器是一个常数,一般规定 𝑅 28 16
一个机器浮点数由阶码和尾数及其符号位组成:
尾数:用定点小数表示,给出有效数字的位数,决定了浮点数的表示精度;
阶码:用定点整数形式表示,指明小数点在数据中的位置,决定了浮点数的表示范围。
浮点数的标准格式:(1)
𝑠
× 𝑚 × 2
𝑒
为便于软件移植,使用 IEEE(电气和电子工程师协会)标准:IEEE754 标准:尾数用原码;阶码用移码;基为 2
按照 IEEE754 的标准,32 位浮点数和 64 位浮点数的标准格式为:
规格化处理
尾数为 2 进制的规格化:绝对值大于或等于 1/2
二进制原码尾数的规格化数的表现形式:
正数:0.1𝑋 𝑋 𝑋 𝑋 𝑋 𝑋
负数:1.1𝑋 𝑋 𝑋 𝑋 𝑋 𝑋
二进制补码尾数的规格化的表现形式:
正数:0.1𝑋 𝑋 𝑋 𝑋 𝑋 𝑋
负数:1.0𝑋 𝑋 𝑋 𝑋 𝑋 𝑋
把不满足规格化要求的尾数,变成满足规格化要求的尾数的操作过程,叫作浮点数的规格化处理,
过尾数移位和修改阶码实现。1.𝑀
隐藏位技术
0 值浮点数的尾数数值最高位必定为 1在保存浮点数到内存前,通过尾数左移,强行把该位去掉。
1.𝑋 𝑋𝑋 𝑋 𝑋 𝑋 𝑋 .𝑋 𝑋 𝑋 𝑋 𝑋 𝑋 𝑋 𝑋
规格化浮点数的真值
一个规格化的 32 位浮点数x的真值为:
𝑥 = (1)
𝑆
× (1.𝑀) × 2
𝐸127
𝑒 = 𝐸 127
个规格化的 64 位浮点数x的真值为:
𝑥 = (1)
𝑆
× (1.𝑀) × 2
𝐸1023
𝑒 = 𝐸 1023
7
2 运算方法和运算器 2.1 数据与文字的表示方法
32 位浮点数,IEEE754 定义:
2.3: 单精度浮点数编码规范(IEEE 754
符号位 阶码 E 尾数 M 数值表示 N
0/1 255 0 NaN(非数)
0 255 0 +∞
1 255 0 −∞
0/1 1-254 m (1)
𝑠
× (1.𝑚) × 2
𝐸127
0/1 0 0 (1)
𝑠
× (0.𝑚) × 2
126
0/1 0 0 ±0
例题 2.1.
若浮点数 x 的二进制存储格式为 (40𝐴𝐴0000)
16
,求其 32 位浮点数的十进制值。
二进制:0100,0000,1010,1010,0000,0000,0000,0000
符号位 𝑆 = 0
阶码 𝐸 = 1000, 0001
尾数 𝑀 = 010, 1010, 0000, 0000, 0000, 0000
指数 𝑒 = 𝐸 127 = 129 127 = 2
规格化尾数 1.𝑀 = 1.0101, 0100, 0000, 0000, 0000, 0000 = 1.010101
真值
𝑥
=
(
1
)
0
× (
1
.
010101
) ×
2
2
=
101
.
0101
=
(
5
.
3125
)
10
例题 2.2.
十进制数 5.3125 转换成 32 位浮点数的二进制格式来存储
首先将 5.3125 转换为二进制数:(5.3125)
10
= (101.0101)
2
规格化处理:1.010101 × 2
2
𝑒 = 2
符号位 𝑆 = 0,阶码 𝐸 = 2 + 127 = 129 = 1000, 0001
尾数 𝑀 = 010, 1010, 0000, 0000, 0000, 0000
最终存储格式为:0100,0001010,1010,0000,0000,0000,0000
2.1.3 校验码
奇偶校验码: k 位数据码之外增 1 位校验位,使 k+1 位码字中取值为 1 的位数保持为偶数(偶校验)
或奇数(奇校验)
海明码: 用于多位并行数据检错纠错处理。为 n 数据位设立 k 个校验位,使 n+k 位组成的码字能发现并
改正 n 位中任何一位出错;能发现 n+k 位中任何两位同时出错,但已无法改。
假设欲检测的有效信息为 n 位,需增加的校验位为 k 位,校验码的长度为 n+k 位,则
2
𝑛
𝑛 + 𝑘 + 1
CRC : 循环冗余校验码(CRC 码)通过对数据进行多项式除法运算得到的余数来实现。
8
2 运算方法和运算器 2.2 定点加减法运算
2.2 定点加减法运算
2.2.1 补码加减法
补码加法公式:
[𝑥]
+ [𝑦]
= [𝑥 + 𝑦]
(mod 2
𝑛+1
)
补码减法公式:
[𝑥 𝑦]
= [𝑥]
[𝑦]
= [𝑥]
+ [(𝑦)]
[𝑦]
[𝑦]
的法则是:对 [𝑦]
包括符号位在内“各位取反,末位加 1,则可得到 [𝑦]
[𝑦]
=
[𝑦]
+ 1 = 𝑦
0
𝑦
1
· · · 𝑦
𝑛
+ 1 𝑦是定点整数
[𝑦]
+ 2
𝑛
= 𝑦
0
𝑦
1
· · · 𝑦
𝑛
+ 2
𝑛
𝑦是定点小数
例题 2.3.
𝑥 = +1010,𝑦 = 0101,使用补码求 𝑥 𝑦
[𝑥]
= 00101
[𝑦]
= 11011
[𝑦]
= [𝑦]
+ 1 = 00100 + 00001 = 00101
[𝑥]
0 1 0 1 0
+ [𝑦]
1 0 1 0 1
[𝑥 𝑦]
0 1 1 1 1
𝑥 𝑦 = +1111
2.2.2 补码乘除法
补码扩充
在补码的基础上,增加符号位,符号位为 1 表示负数,为 0 表示正数。
𝑋 𝑋 𝑋 𝑋 = 𝑋 𝑋 𝑋 𝑋 𝑋 𝑋 𝑋 𝑋
补码乘以 2
将补码各位左移 1 位,最低位补 0,最高位丢弃
𝑋 𝑋 𝑋 . . . 𝑋 = 𝑋 𝑋 . . . 𝑋0
𝑋 𝑋 不同, 则发生溢出。
补码除以 2
最高位(符号位)保持不变,其余各位右移 1 位,最低位丢弃。
𝑋 𝑋 . . . 𝑋 𝑋 𝑋 = 𝑋 𝑋 𝑋 . . . 𝑋 𝑋
9
2 运算方法和运算器 2.2 定点加减法运算
2.2.3 溢出概念与检测方法
两个正数相加,结果大于机器字长所能表示的最大正数,称为正溢(上溢)
两个负数相加,结果小于机器字长所能表示的最小负数,称为负溢(下溢)
溢出逻辑表达式为:𝑉 = 𝑥
𝑛
𝑦
𝑛
𝑠
𝑛
+ 𝑥
𝑛
𝑦
𝑛
𝑠
𝑛
其中 𝑥
𝑛
𝑦
𝑛
分别为 𝑥 𝑦 的符号位,𝑠
𝑛
𝑥 + 𝑦 的符号位。
[𝑥]
0 1 1 1 1
+ [𝑦]
0 0 0 0 1
[𝑥 + 𝑦]
1 0 0 0 0
[𝑥]
1 1 1 1 1
+ [𝑦]
1 0 0 0 0
[𝑥 + 𝑦]
1 0 1 1 1 1
变形补码法
采用双符号位法,使模 2
𝑛+1
补码所能表示的数的范围扩大一倍。
[𝑥]
= 2
𝑛+2
+ 𝑥 (𝑚𝑜𝑑 2
𝑛+2
)
[𝑥]
+ [𝑦]
= [𝑥 + 𝑦]
(𝑚𝑜𝑑 2
𝑛+2
)
当以变形补码运算,运算结果的二符号位相异时,表示溢出;相同时,表示未溢出。故溢出逻辑表达式为:
𝑉 = 𝑆
𝑓 1
𝑆
𝑓 2
其中 𝑆
𝑓 1
𝑆
𝑓 2
分别为最高符号位和第二符号位。
[𝑥]
X X X X X X
± [𝑦]
X X X X X X
𝑆
𝑓 1
𝑆
𝑓 2
X X X X
10
3 储存系统
3 储存系统
3.1 存储器的编址和端模式
端模式:
大端模式将一个字的高有效字节放在内存的低地址端,低有效字节放在内存的高地址端。
小端模式将一个字的低有效字节放在内存的低地址端,高有效字节放在内存的高地址端。高字节存储在低
地址,低字节存储在高地址。
3.2 静态随机存取存储器 (SRAM)
11
3 储存系统 3.3 多模块交叉存储器
3.2.1 存储器容量的扩充
1. 位扩展:2
𝑀
× 𝑁
1
2
𝑀
× 𝑁
2
所需芯片数:𝑑 =
𝑁
2
𝑁
1
地址总线数:𝑀
数据总线数:𝑁
2
2. 字扩展:2
𝑀1
× 𝑁 2
𝑀2
× 𝑁
所需芯片数:𝑑 =
2
𝑀2
2
𝑀1
= 2
𝑀2𝑀1
地址总线数:𝑀
2
(片内 𝑀
1
, 片选 𝑀
2
𝑀
1
)
数据总线数:𝑁
3. 字位扩展:2
𝑀
1
× 𝑁
1
2
𝑀
2
× 𝑁
2
所需芯片数:𝑑 =
2
𝑀
2
×𝑁
2
2
𝑀
1
×𝑁
1
= 2
𝑀
2
𝑀
1
×
𝑁
2
𝑁
1
地址总线数:𝑀
2
(片内 𝑀
1
, 片选 𝑀
2
𝑀
1
)
数据总线数:𝑁
2
3.3 多模块交叉存储器
设模块存取一个字的存储周期为 T,顺序方式存储器连续读取 m 个字所需时间为:𝑡
𝑠
= 𝑚 × 𝑇
设模块存取一个字的存储周期为 T总线传送周期为 τ存储器的交叉模块数为 m为了实现流水线方式存
取,应当满足 𝑇 𝑚𝜏,连续读取 m 个字所需的时间为: 𝑡
𝑝
= 𝑇 + (𝑚 1)𝜏
12
3 储存系统 3.4 cache 存储器
3.4 cache 存储器
ache 是一种高速缓冲存储器,是为了解决 CPU 和主存之间速度不匹配而采用的一项重要技术。
CPU cache 之间的数据交换是以字为单位,而 cache 与主存之间的数据交换是以块为单位。
3.4.1 cache 的命中率
𝑁
𝑐
表示 cache 完成存取的总次数,𝑁
𝑚
表示主存完成存取的总次数, 定义为命中率,则有
=
𝑁
𝑐
𝑁
𝑐
+ 𝑁
𝑚
𝑡
𝑐
表示命中时的 cache 访问时间,𝑡
𝑚
表示未命中时的主存访问时间,1 表示未命中率(缺失率),则
cache/主存系统的平均访问时间 𝑡
𝑎
𝑡
𝑎
= 𝑡
𝑐
+ (1 )𝑡
𝑚
𝑟 = 𝑡
𝑚
/𝑡
𝑐
表示主存与 cache 的访问时间之比,𝑒 表示访问效率,则有
𝑒 =
𝑡
𝑐
𝑡
𝑎
=
𝑡
𝑐
ℎ𝑡
𝑐
+ (1 )𝑡
𝑚
=
1
+ (1 )𝑟
=
1
𝑟 + (1 𝑟)
3.4.2 主存与 cache 的地址映射
cache 的数据块大小称为行,用 𝐿
𝑖
表示,其中 𝑖 = 0, 1, 2, . . . , 𝑚 1,共有 𝑚 = 2
𝑟
行。主存的数据块大小称
为块, 𝐵
𝑗
表示,其中 𝑗 = 0, 1, 2, . . . , 𝑛 1共有 𝑛 = 2
𝑠
块。行与块是等长的,每个块(行) 𝑘 = 2
𝑤
个连续
的字组成,字是 CPU 每次访问存储器时可存取的最小单位。此外,还需要设置一个有效位
标记
𝑠
字地址
𝑤
13
3 储存系统 3.4 cache 存储器
1. 全相联映射方式
主存中一个块的地址 (块号) 与块的内容 () 一起存于 cache 的行中,其中块地址存于 cache 行的标记 (tag)
部分中。这种带全部块地址一起保存的方法,可使主存的一个块直接复制到 cache 中的任意一行上。
2. 直接映射方式H
一个主存块只能拷贝到 cache 的一个特定行位置上去。cache 的行号 𝑖 和主存的块号 𝑗 有如下函数关系:
𝑖 = 𝑗 mod 𝑚
式中,𝑚 cache 中的总行数。直接映射方式中, s 位的主存块地址分成两部分: r 位主存区内块号作
cache 的行地址,sr 位区号作为标记 (tag) 与块数据一起保存在该行。
标记 𝑠 𝑟 𝑟 字地址 𝑤
14
3 储存系统 3.4 cache 存储器
3. 组相联映射方式
cache 分成 𝑢 组,每组有 𝑣 行。主存块存放到哪个组是固定的,取决于主存块在主存区中是第几块。至
于存到该组哪一行是灵活的,即有如下函数关系:
𝑚 = 𝑢 × 𝑣
组号𝑞 = 𝑗 mod 𝑢
内存地址中,𝑠 位块号划分成两部分:低 𝑑 (2
𝑑
= 𝑢) 主存区内块号用于表示 cache 组号 (而不是 cache
),高 𝑠𝑑 位区号作为标记 (tag) 与块数据一起存于此组的某行中。
标记 𝑠 𝑑 组号 𝑑 字地址 𝑤
3.4.3 cache 的替换策略
当一个新的主存块需要拷贝到 cache,而允许存放此块的行位置都被其他主存块占满时,就要产生替换。
对直接映射的 cache 来说,因一个主存块只有一个特定的行位置可存放,所以解决问题很简单,只要把此特
定位置上的原主存块换出 cache 即可。对全相联和组相联 cache 来说,就要从允许存放新主存块的若干特定行中
选取一行换出。如何选取就涉及替换策略,又称替换算法。
1. LFU 算法
将一段时间内被访问次数最少的那行数据换出。
每行设置一个计数器,新行调入后从 0 开始计数,每访问一次,被访行的计数器增 1。当需要替换时,对
这些特定行的计数值进行比较,将计数值最小的行换出,同时将这些特定行的计数器都清零。
2. LRU 算法
将近期内长久未被访问过的行换出。
每行设置一个计数器,cache 每命中一次,命中行计数器清零,其他各行计数器增 1当需要替换时,比较
各特定行的计数值,将计数值最大的行换出。
3. 随机替换
从特定的行位置中随机地选取一行换出。
15
3 储存系统 3.4 cache 存储器
3.4.4 cache 的写操作策略
1. 写回法 (write back, copy back)
CPU cache 命中时,只修改 cache 的内容,而不立即写入主存;只有当此行被换出时才写回主存。
每个 cache 行必须配置一个修改位,以反映此行是否被 CPU 修改过。
2. 全写法 (write through)
当写 cache 命中时,cache 与主存同时发生写修改。
3. 写一次法 (write once)
写命中与写未命中的处理方法和写回法基本相同,只是第一次写命中时要同时写入主存。
例题 3.1.
主存地址为 32 位,按字节编址,主存和 Cache 之间采用直接映射方式,主存块大小为 4 个字,每字 32 位,
采用回写 (Write Back) 方式,则能存放 4K 字数据的 Cache 的总容量的位数至少是多少?
主存块大小为 4 个字,每字 32 = 块大小为 4 × 32 = 128𝑏 = 16𝐵
按字节编址,块大小为 16𝐵(2
4
𝐵) = 块地址为 4
Cache 的存储容量为 4K 字,每块 4 个字 =Cache 的行数为
4𝐾
4
= 1𝐾 = 2
10
按字节编址,行数为 2
10
= 行号为 10
直接映射方式中,行号 𝑟 = 4 位,字地址 𝑤 = 10 = 标记位为 32 4 10 = 18
采用回写 (Write Back) 方式 = 每行有一个修改位
每行有一个有效位和一个修改位 = Cache 行标记项包含 18 + 1 + 1 = 20
Cache 行标记项 20 位,行数为 2
10
=Cache 的标记阵列容量为 20 𝑏 × 2
10
= 20𝐾𝑏
Cache 的存储容量为 4K 字,每字 32 =Cache 的存储容量为为 4𝐾 × 32𝑏 = 128𝐾𝑏
Cache 的总容量为 20𝐾𝑏 + 128𝐾 𝑏 = 148𝐾 𝑏
16
3 储存系统 3.5 虚拟存储器
3.5 虚拟存储器
3.5.1 页式虚拟存储器
页式虚拟存储系统中,虚地址空间被分成等长的页,称为逻辑页;主存空间也被分成同样大小的页,称为物
理页。相应地,虚地址分为两个字段:高字段为逻辑页号,低字段为页内地址 (偏移量)实存地址也分为两个字
段:高字段为物理页号,低字段为页内地址。通过页表可以把虚地址 (逻辑地址) 转换成物理地址。
专用于页表缓存的高速存储部件通常称为转换后援缓冲器 (TLB)又称为快表。而保存在主存中的完整页表
则称为慢表。TLB 的作用与主存和 CPU 之间的 cache 作用相似,存储慢表中部分信息的副本。地址变换时,根
据逻辑页号同时查快表和慢表。
虚拟地址
逻辑页号 页内地址
实存地址
物理页号 页内地址
TLB
逻辑页号 物理页号 有效位
3.1: 虚拟存储器、TLB cache 发生事件的可能组合
TLB 页表 cache 可能发生吗?如果可能,发生背景是什么?
命中 命中 缺失 可能,但若 TLB 命中就无须检查页表
缺失 命中 命中 可能,TLB 缺失,但在页表中找到表项;在 cache 中找到数据
缺失 命中 缺失 可能,TLB 缺失,但在页表中找到表项;未在 cache 中找到数据
缺失 缺失 缺失 可能,TLB 缺失并随之发生缺页;在 cache 中一定找不到数据
命中 缺失 缺失 不可能:如果页不在内存中,TLB 不可能命中
命中 缺失 命中 不可能:如果页不在内存中,TLB 不可能命中
缺失 缺失 命中 不可能:如果页不在内存中,数据不可能在 cache 中存在
17
3 储存系统 3.6 段式虚拟存储器和段页式虚拟存储器
3.6 段式虚拟存储器和段页式虚拟存储器
1. 段式虚拟存储器
段起址 有效位 段长
有效位:指明该段是否已经调入实存。
段起址:指明在该段已经调入实存的情况下,该段在实存中的首地址。
段长:记录该段的实际长度。
2. 段页式虚拟存储器
基号 N 段号 S 段内逻辑页号 P 页内地址偏移量 D
3.6.1 cache 与虚存的异同
cache-主存和主存-辅存 存储层次的相同点
(a). 出发点相同 二者都是为了提高存储系统的性能价格比而构造的分层存储体系,都力图使存储系
统的性能接近高速存储器,而价格和容量接近低速存储器。
(b). 原理相 都是利用了程序运行时的局部性原理把最近常用的信息块从相对慢速而大容量的存储
器调入相对高速而小容量的存储器。
cache-主存和主存-辅存 存储层次的不同点
(a). 侧重点不同 cache 主要解决主存 CPU 的速度差异问题;而就性能价格比的提高而言,虚存主
要是解决存储容量问题,另外还包括存储管理、主存分配和存储保护等方面。
(b). 数据通路不 CPU cache 主存之间均可以有直接访问通路,cache 命中时可直接访问
存;而虚存所依赖的辅存与 CPU 间不存在直接的数据通路,当主存不命中时只能通过调页解
决,CPU 最终还是要访问主存。
(c). 透明性不同 cache 的管理完全由硬件完成,对系统程序员和应用程序员均透明;而虚存管理由软
(操作系统) 和硬件共同完成,由于软件的介入,虚存对实现存储管理的系统程序员不透明,
只对应用程序员透明 (段式和段页式管理对应用程序员“半透明”)
(d). 未命中时的损失不同 于主存的存取时间是 cache 的存取时间的 510 倍,而主存的存取速度
通常比辅存的存取速度快上千倍,故主存未命中时系统的性能损失要远大于 cache 未命中时的损
失。
18
4 指令系统
4 指令系统
4.1 指令格式
指令格式,则是指令字用二进制代码表示的结构形式,通常由操作码字段和地址码字段组成。
操作码字段 OP 地址码字段 A
操作码字段表征指令的操作特性与功能。
地址码字段通常指定参与操作的操作数的地址。
四地址指令
OP 𝐴
1
𝐴
2
𝐴
3
𝐴
4
三地址指令
OP 𝐴
1
𝐴
2
𝐴
3
二地址指令
OP 𝐴
1
𝐴
2
一地址指令
OP A
零地址指令
OP
1. 零地址指令:只有操作码,没有地址码。
2. 一地址指令:只给出一个操作数地址,另一个操作数地址和目的地址则是隐含的。这个隐含的地址就是运
算器的累加寄存器 AC
操作:( 𝐴𝐶)𝑂𝑃(𝐴) ( 𝐴𝐶)
3. 二地址指令:有两个地址码字段 𝐴
1
𝐴
2
分别指明参与操作的两个数在内存中或运算器中通用寄存器的
地址,其中地址 𝐴
1
兼作存放操作结果的地址。
操作:( 𝐴
1
)𝑂𝑃( 𝐴
2
) (𝐴
1
)
4. 三地址指令:𝐴
1
为被操作数地址,也称源操作数地址;𝐴
2
为操作数地址,也称终点操作数地址;𝐴
3
为存
放操作结果的地址。
操作:( 𝐴
1
)𝑂𝑃( 𝐴
2
) (𝐴
3
)
5. 四地址指令:𝐴
1
为第一地址码,存放第一操作数;𝐴
2
为第二地址码,存放第二操作数;𝐴
3
为第三地址码,
存放操作结果;𝐴
4
为第四地址码,存放下条要执行指令的地址。
操作:( 𝐴
1
)𝑂𝑃( 𝐴
2
) (𝐴
3
)
19
4 指令系统 4.2 指令和数据的寻址方式
在二地址指令格式中,从操作数的物理位置来分,指令可以分为三种类型:
存储器-存储器(SS)型指令:
指令操作中涉及的操作数都在内存单元中,操作结果也保存在内存中。执行这类指令需要多次访存。
寄存器-寄存器(RR)型指令:
指令操作中涉及的操作数都在寄存器中,操作结果也保存在寄存器中。执行这类指令不需要访问存储器,
速度很快。
寄存器-存储器(RS)型指令:
执行这类指令时,既要访问内存单元,又要访问寄存器。
4.1.1 扩展操作码技术
通过扩展操作码技术向地址码字段扩展操作码的长度。
例题 4.1.
设某等长指令字结构机器的指令长度为 16 位,包括 4 位基本操作码字段和三个 4 位地址字段。
OP 𝐴
1
𝐴
2
𝐴
3
4 4 4 4
三地址指令的操作码占用 4 位操作码编码空间的 00001110 2
4
1 = 15 种组合,剩下一个编码 1111
用于把操作码扩展到 A1 地址域,即从 4 位操作码扩展到 8 位。
二地址指令的操作码占用 8 位操作码编码空间的 1111, 00001111, 1101 2
8
2 = 14 种,剩下两个
编码 1111, 1110 1111, 1111 用于把操作码扩展到 A2 地址域,即从 8 位操作码扩展到 12 位。
一地址指令的操作码占用 12 位操作码编码空间的 1111, 1110, 00001111, 1111, 1110 2
12
1 = 31
编码,剩下一个编码 1111,1111,1111 用于把操作码扩展到 A3 地址域,即从 12 位操作码扩展到 16 位。
零地址指令的操作码占 16 位操作码编码空间的 1111,1111,1111,00001111,1111,1111,1111 2
4
=
16 种编码。
4.1: 扩展操作码实例
20
4 指令系统 4.2 指令和数据的寻址方式
4.2 指令和数据的寻址方式
4.2.1 指令的寻址方式
1. 顺序寻址方式:
使用程序计数器(又称指令指针寄存器)PC 来计数指令的顺序号,该顺序号就是指令在内存中的地址。
2. 跳跃寻址方式:
下条指令的地址码不是由程序计数器给出,而是由本条指令给出。程序跳跃后,按新的指令地址开始顺序
执行。指令计数器的内容也必须相应改变,以便及时跟踪新的指令地址。
4.2: 指令寻址方式
4.2.2 操作数基本寻址方式
单地址指令的结构:
操作码 OP 变址 X 间址 I 形式地址 A
形式地址
A
,也称偏移量,是指令字结构中给定的地址量。
寻址方式特征位由间址位和变址位组成:
如果这条指令无间址和变址的要求,则形式地址就是操作数的有效地址;
如果指令中指明要间址或变址变换,则形式地址要经过指定方式的变换,才能形成有效地址。
1. 隐含寻址:不是明显地给出操作数的地址,而是在指令中隐含着操作数的地址。
2. 立即寻址:指令的地址字段指出的不是操作数的地址,而是操作数本身。
3. 直接寻址:在指令格式的地址字段中直接指出操作数在内存的地址 A
4. 间接寻址:指令地址字段中的形式地址 A 不是操作数 D 的真正地址,而是操作数地址的指示器。
5. 寄存器寻址:指令中给出的操作数地址不是内存的地址单元号,而是通用寄存器的编号。
6. 寄存器间接寻址:指令格式中的寄存器内容不是操作数,而是操作数地址,该地址指明的操作数在内存中。
7. 偏移寻址:直接寻址和寄存器间接寻址方式的结合。
相对寻址:隐含引用的专用寄存器是程序计数器 (PC)
基址寻址:被引用的专用寄存器含有一个存储器地址,地址字段含有一个相对于该地址的偏移量。
变址寻址:地址域引用一个主存地址,被引用的专用寄存器含有对那个地址的正偏移量。
8. 段寻址:由一个基地址再加上某些寄存器提供的偏移量来形成实际的物理地址。
9. 堆栈寻址:堆栈有寄存器堆栈和存储器堆栈两种形式,它们都以先进后出的原理存储数据。
21
4 指令系统 4.3 典型指令
4.1: 基本寻址方式
方式 算法 主要优点 主要缺点
隐含寻址 操作数在专用寄存器中 无需访存 数据范围有限
立即寻址 操作数 =A 无需访存 操作数幅值有限
直接寻址 EA=A 简单 地址范围有限
间接寻址 EA=(A) 地址范围大 多重存储器访问
寄存器寻址 EA=R 无需访存 地址范围有限
寄存器间接寻址 EA=(R) 地址范围大 额外存储器访问
偏移寻址 EA=A+(R) 灵活 复杂
段寻址 EA=A+(R) 灵活 复杂
堆栈寻址 EA= 栈顶 无需给出存储器地址 需要堆栈指示器
4.3: 基本寻址方式示意图
4.3 典型指令
4.3.1 RISC 指令系统
RISC 指令系统的特点:
选取使用频率最高的一些简单指令,指令条数少;
指令长度固定,指令格式种类少,寻址方式种类少;
只有取数/存数指令访问存储器,其余指令的操作都在寄存器之间进行。
22
5 中央处理器
5 中央处理器
5.1 CPU 的功能和组成
5.1.1 CPU 的功能
1. 指令控制:程序的顺序控制,程序中指令的相互顺序不能任意颠倒。
2. 操作控制:一条指令有若干操作信号实现的部件,从而控制这些部件按指令的要求进行动作。
3. 时间控制:对指令的各种操作实施时间的定时。
4. 数据加工:对数据进行算术运算和逻辑运算处理。
23
5 中央处理器 5.1 CPU 的功能和组成
5.1.2 CPU 的基本组成
1. 控制器
由程序计数器 PC、指令寄存器 IR、指令译码器、时序产生器和操作控制器组成,完成协调和指挥整个计
算机系统的操作。
主要功能:
从指令 cache 中取出一条指令,并指出下一条指令在指令 cache 中的位置。
对指令进行译码或测试,并产生相应的操作控制信号,以便启动规定的动作。
指挥并控制 CPU、数据 cache 和输入/输出设备之间数据流动的方向。
2. 运算器
由算术逻辑单元 ALU通用寄存器、数据缓冲寄存器 DR 和状态条件寄存器 PSWR 组成,是数据加工处理
部件。
主要功能:
执行所有的算术运算。
执行所有的逻辑运算,并进行逻辑测试,如零值测试或两个值的比较。
24
5 中央处理器 5.2 微程序控制器
5.1.3 CPU 中的主要寄存器
1. 指令寄存器 IR
存当前正在执行的一条指令。当执行一条指令时,先将它从指令 cache(指存)读出,传送至 IR
IR 中指令操作码字段经过指令译码器译码,向操作控制器发出具体操作的特定信号。
在执行该指令的过程中,IR 的内容不允许发生变化,以保证实现指令的全部功能。
2. 程序计数器 PC (指令计数器)
程序开始执行前,将起始地址(程序的第一条指令所在的地址)送入 PC
执行指令时,CPU 自动修改 PC 的内容,使 PC 中总是存放将要执行的下一条指令的地址(指令顺序
执行,PC+1
执行转移指令时,后继指令地址由转移指令来规定,因此 PC 具有寄存器和计数两种功能。
3. 数据地址寄存器 AR / MAR
保存当前 CPU 所访问的数据 cache(数存)单元的地址。
4. 数据缓冲寄存器 DR / MDR
暂存 ALU 的运算结果,作为 ALU 运算结果和通用寄存器之间信息传送中时间上的缓冲。
暂存数据存储器读出的一个数据字或来自外部接口的数据字,补偿 CPU 和内存、外围设备之间在操
作速度上的差别。
5. 通用寄存器组
ALU 执行算术或逻辑运算时,为 ALU 提供一个工作区。
通用寄存器组中的寄存器既可以存放源操作数,又可以存放结果操作数,因此在指令格式中要对寄存
器号加以编址。
通用寄存器还可以用作地址指示器、变址寄存器、堆栈指示器等。
6. 程序状态字寄存器 PSWR (状态条件寄存器)
是一个由各种状态条件标志拼凑而成的寄存器。
保存由算术指令和逻辑指令运算或测试结果建立的各种条件信息,如运算结果进位标志、运算结果溢
出标志等。
保存中断和系统工作状态,以便使 CPU 和系统能及时了解机器运行状态和程序运行状态。
5.2 微程序控制器
微命令:控制部件向执行部件发出的各种控制命令。
微操作:执行部件接受微命令后所进行的操作。
相容性微操作:在同时或同一个 CPU 周期内可以并行执行的微操作。
相斥性微操作:不能在同时或同一个 CPU 周期内并行执行的微操作。
微指令:机器的一个 CPU 周期中,一组实现一定操作功能的微命令的组合。
操作控制字段,又称微操作码字段,用以产生某一步操作所需的各个微操作控制信号。
顺序控制字段,又称微地址码字段,用以控制产生下一条要执行的微指令地址。
字段 1 字段 2 字段 3 字段 4 . . . 判别测试字段(P 字段) 下地址字段
操作控制字段 顺序控制字段
微地址:存放微指令的控制存储器的单元地址。
微程序:一系列微指令的有序集合,一段微程序对应一条机器指令。
25
5 中央处理器 5.3 流水线技术与流水处理器
5.2.1 微命令编码
1. 直接表示法
控制字段中的每一位表示一个微命令。
2. 编码表示法
(a). 把相斥性微命令编为一组;
(b). 对微命令进行编码,留出一个代码表示本段不发出微命令
(c). 增设微命令译码器。
3. 混合表示法
把直接表示法与字段编码法混合使用,以便能综合考虑微指令字长、灵活性、执行速度等方面的要求。
5.2.2 微指令格式
1. 水平型微指令:次能定义并执行多个并行操作微命令的微指令。
控制字段 判别测试字段 下地址字段
2. 垂直型微指令:微指令中设置微操作码字段,采用微操作码编译法,由微操作码规定微指令的功能。
例题 5.1.
某机采用微程序控制方式,微指令字长 24 位,采用水平型编码控制的微指令格式,断定方式。共有微命
30 个,构成 4 个互斥类,各包含 5 个、8 个、14 个和 3 个微命令,外部条件共 3 个。
1. 控制存储器的容量应为多少?
2. 设计出微指令的具体格式。
微命令 30 个,采用直接表示法需要 30 位,指令长度不够,因此采用编码表示法。
操作控制字段:
互斥类 I 5 个微命令,编码为 𝑙𝑜𝑔2(5 + 1) = 3 位。
互斥类 II 8 个微命令,编码为 𝑙𝑜𝑔2(8 + 1) = 4 位。
互斥类 III 14 个微命令,编码为 𝑙𝑜𝑔2(14 + 1) = 4 位。
互斥类 IV 3 个微命令,编码为 𝑙𝑜𝑔2(3 + 1) = 2 位。
操作控制字段长度为 3 + 4 + 4 + 2 = 13 位。
外部条件 3 个,采用直接表示法,判别测试字段长度为 3 位。
下地址字段长度为 24 13 3 = 8 位。
控制存储器的容量为 2
8
× 24 = 6144 位。
操作控制字段 顺序控制字段
3 4 4 2 判别测试字段 下地址字段
13 3 8
26
5 中央处理器 5.3 流水线技术与流水处理器
5.3 流水线技术与流水处理器
5.3.1 线性流水线的性能指标
设过程段 𝑆
𝑖
所需的处理时间为 𝜏
𝑖
,缓冲寄存器的延时为 𝜏
𝑙
,线性流水线的时钟周期定义为
𝜏
𝑚
= max{𝜏
𝑖
} + 𝜏
𝑙
= 𝜏
𝑚
+ 𝜏
𝑙
5.1
: 线性流水线的三个阶段
一个具有 𝑘 级过程段的流水线处理 𝑛 个任务需要的时钟周期数 𝑇
𝑘
𝑇
𝑘
= 𝑘 + (𝑛 1)
其中,𝑘 个时钟周期用于处理第一个任务。𝑘 个周期后,流水线被装满,剩余的 𝑛1 个任务只需 𝑛1 个周期就能完
成。如果用非流水线的硬件来处理这
𝑛
个任务,时间上只能串行进行,则所需时钟周期数
𝑇
𝐿
可以大致估算为
𝑇
𝐿
= 𝑛 · 𝑘
𝑇
𝐿
𝑇
𝑘
的比值定义为 𝑘 级线性流水线的加速比 𝑆
𝑘
𝐶
𝑘
=
𝑇
𝐿
𝑇
𝑘
=
𝑛 · 𝑘
𝑘 + (𝑛 1)
𝑛 𝑘 时,𝐶
𝑘
𝑘。这就是说,理论上 𝑘 级线性流水线处理加速的最大值为 𝑘。因而称流水线的级数 𝑘 为潜
在加速比。
若指令流水线的时钟周期长为 Δ𝑡,则指令流水线的吞吐率为
𝑇
𝑃
=
𝑛
𝑇
𝑘
· Δ𝑡
=
𝑛
(𝑘 1 + 𝑛) · Δ𝑡
27
6 总线系统
6 总线系统
6.1 总线的性能指标
总线宽度:数据总线的根数。
寻址能力:取决于地址总线的根数。
传输率:也称为总线带宽,通常指总线所能达到的最高数据传输率,单位是 Bps(每秒传送字节数)
𝐷
𝑟
= 𝐷 × 𝑓 /𝑁
𝐷:数据宽度。
𝑓 :总线时钟频率。
𝑁:一次数据传送所需的时钟周期数。
总线上数据传送方式:
正常传送:每个传送周期先传送数据的地址,再传送数据。
突发传送:支持成块连续数据的传送,只需给出数据块的首地址,后续数据地址自动生成。
载能力:总线上能够连接的设备数。
例题 6.1.
总线在一个总线周期中并行传送 2 个字节的数据,假设 1 个总线周期等于 2 个总线时钟周期,总线时钟频
率为 100MHz,则总线带宽是多少?
𝐷
𝑟
= 𝐷 ×
𝑓
𝑁
= 2字节 ×
100MHz
2
= 100MB/s
28
6 总线系统 6.2 总线仲裁
6.2 总线仲裁
1. 集中式仲裁:总线仲裁逻辑集中于一个单元。
(a). 链式查询方式
只用很少几根线就能按一定优先次序实现总线仲裁,很容易扩充设备。
询问链的电路故障很敏感。
需要 3 根线(BSBRBG
(b). 计数器定时查询方式
每次计数可以从“0”开始,也可以从中止点开始。
需要 𝑙𝑜𝑔
2
𝑛 + 2 根线(设备地址线和 BSBR
(c). 独立请求方式
响应时间快。
对优先次序的控制灵活。
可以用屏蔽(禁止)某个请求的办法。
当代总线标准普遍采用独立请求方式。
2. 分布式仲裁:每个设备都有自己的仲裁逻辑。
29
7 外围设备
7 外围设备
7.1 硬盘存储设备
记录面:磁盘用于存储数据的表面,通常有多个记录面。
磁道:记录面上的同心圆。最外一个同心圆称为 0 磁道,最里面的一个同心圆称为 n 磁道。
扇区:磁道被分割成的若干个扇形区域。
柱面:同一位置的磁道在不同记录面上的集合。
磁盘地址:由记录面号 (磁头号)、柱面号 (磁道号) 和扇区号三部分组成。
盘面号 (磁头号) 柱面号 (磁道号) 扇区号
储存密度
道密度:沿磁盘半径方向单位长度上的磁道数,单位为道/英寸。
位密度:磁道单位长度上能记录的二进制代码位数,单位为位/英寸。
面密度:位密度和道密度的乘积,单位为位/英寸 ²
存储容量:一个磁盘存储器所能存储的字节总数。
平均寻址时间:从读写命令发出后,磁头从某一起始位置移动至新的记录位置,再到磁道上需要访问的扇
区移动到磁头下方所需的时间。
寻道时间/找道时间/定位时间 (𝑇
𝑠
)磁盘接到读/写指令后将磁头定位至所要访问的磁道上所需的时间。
等待时间/寻区时间/潜伏期/旋转延迟 (𝑇
𝑤
)寻道完成后,磁道上需要访问的扇区移动到磁头下方所需
的时间。若 𝑟 表示磁盘旋转速率 (/),则平均等待时间为 1/(2𝑟)
平均存取时间 (𝑇
𝑎
):存取 (访问) 时间是从读/写指令发出到开始第一笔数据读/写时所用的平均时间,
平均存取时间 平均寻道时间 + 平均等待时间。
平均读写操作时间:
𝑇
𝑎
= 𝑇
𝑠
+ 𝑇
𝑤
+ 𝑇
𝑑
= 𝑇
𝑠
+
1
2𝑟
+
𝑏
𝑟 𝑁
𝑇
𝑑
:数据传送时间
𝑏
𝑟 𝑁
𝑏 为传送的字节数,𝑟 为磁盘旋转速率,𝑁 为每磁道字节数。
数据传输率 𝐷
𝑟
:磁盘存储器在单位时间内向主机传送数据的字节数。
𝐷
𝑟
= 𝑛𝑁 (字节/) 𝑛 :磁盘旋转速度 (/) 𝑁 :每磁道容量 (字节)
𝐷
𝑟
= 𝐷 · 𝑣 (字节/) 𝐷 :位密度 𝑣 :磁盘旋转线速度
30
7 外围设备 7.2 显示设备
例题 7.1.
磁盘组有 𝑘 + 1 片磁盘,每片有 2 个记录面,最上最下两个面不用。存储区域内径 𝑎cm,外径 𝑏cm道密
度为 𝜌cm,内层位密度 𝐷 /cm,转速 𝑛 /秒。问:
1. 共有多少柱面?
2. 盘组总存储容量是多少?
3. 数据传输率多少?
1. 有效储存区域半径为
𝑏𝑎
2
柱面数 = 磁道数 = 道密度 × 有效半径 =𝜌 ×
𝑏𝑎
2
2. 内层磁道周长为 2 × 𝜋 ×
𝑎
2
= 𝜋𝑎
每磁道容量 = 内层磁道周长 × 内层位密度 =𝜋𝑎 × 𝐷
每记录面容量 = 磁道数 × 每磁道容量 =𝜌 ×
𝑏𝑎
2
× 𝜋𝑎𝐷
磁盘组有 𝑘 + 1 片磁盘,每片有 2 个记录面,最上最下两个面不用 = 记录面数为 2𝑘
磁盘容量 = 记录面数 × 每记录面容量 =2𝑘 × 𝜌 ×
𝑏𝑎
2
× 𝜋𝑎𝐷
3. 数据传输率 𝐷
𝑟
= 磁盘旋转速度 (/)× 每磁道容量
𝐷
𝑟
= 𝑛 × 𝜋𝑎 × 𝐷 = 𝑛𝜋𝑎𝐷 (字节/)
7.2 显示设备
1. 分辨率 𝑟:指显示器所能表示的像素个数。
2. 灰度级 𝐶:指黑白显示器中所显示的像素点的亮暗差别,在彩色显示器中则表现为颜色的不同。
3. 刷新率 𝑓 :指每秒钟刷新图像的次数。
4. 刷新存储器:为了不断提供刷新图像的信号,必须把一帧图像信息存储在刷新存储器。
刷存容量 𝑀 = 𝑟 × 𝐶
刷存带宽 𝐵 = 𝑀 × 𝑓
31
8 输入/输出系统
8 输入/输出系统
8.1 I/O 接口与外设间的数据传送方式
1. 无条件传送方式 (简单 I/O 方式)
2. 程序查询 (轮询) 方式
3. 程序中断方式
4. 直接内存访问 (DMA) 方式
5. 通道和输入/输出处理器
8.2 程序中断方式
8.2.1 单级中断
在单级中断系统中,所有的中断源都属于同一级,所有中断源触发器排成一行,其优先次序是离 CPU 近的
优先权高。
8.2.2 多级中断
级中断系统是指计算机系统中有相当多的中断源,根据各中断事件的轻重缓急程度不同而分成若干级别,
一中断级分配给一个优先权。一般说来,优先权高的中断级可以打断优先权低的中断服务程序,以程序嵌套方
式进行工作。
32
8 输入/输出系统 8.3 DMA 方式
当执行第 𝑖 级中断时,优先权高的中断𝑖 + 1, . . . , 𝑛可以中断该中断的执行,优先权低的中断0, . . . , 𝑖
能中断该中断的执行。
中断屏蔽字 𝑀
𝑛
𝑀
𝑛1
. . . 𝑀
0
表示某一级中断对所有中断级别(0 n)的屏蔽状态。其中,每个位 𝑀
𝑖
控制
𝑖 级中断:当 𝑀
𝑖
= 0 时,允许第 𝑖 级中断执行。当 𝑀
𝑖
= 1 时,屏蔽第 𝑖 级中断执行。
对于第 𝑘 级中断,其屏蔽字的设置规则如下:优先级高于 𝑘 的中断对应的 𝑀 = 0(允许执行) 𝑀
𝑛
, . . . , 𝑀
𝑘+1
=
0。优先级不高于 𝑘(即相同或更低优先级)的中断对应的 𝑀 = 1(屏蔽执行),即 𝑀
𝑘
, . . . , 𝑀
0
= 1
在执行第 𝑘 级中断服务程序时,此屏蔽字生效: 𝑀
𝑖
= 0则允许第 𝑖 级中断执行。 𝑀
𝑖
= 1则屏蔽第 𝑖
级中断执行。
例题 8.1.
设有 4 级中断:𝐿
0
𝐿
1
𝐿
2
𝐿
3
中断屏蔽字为 𝑀
3
𝑀
2
𝑀
1
𝑀
0
𝑀
𝑖
= 1 (0 𝑖 4) 表示对 𝐿
𝑖
级中断进行
屏蔽。现要求中断处理优先级从高到低的顺序是 𝐿
0
𝐿
1
𝐿
2
𝐿
3
,则各级中断的屏蔽字是什么?
𝑀
3
𝑀
2
𝑀
1
𝑀
0
𝐿
0
1 1 1 1
𝐿
1
1 1 1 0
𝐿
2
1 1 0 0
𝐿
3
1 0 0 0
33
8 输入/输出系统 8.3 DMA 方式
8.3 DMA 方式
1. 成组连续传送方式
2. 周期挪用方式
3. 透明 DMA 方式
34
第二部分
练习
2 部分目录
1 计算机系统概述 36
2 运算方法和运算器 38
3 存储系统 42
4 指令系统 46
5 中央处理器 49
6 总线系统 51
7 外围设备 53
8 输入/输出系统 55
1 计算机系统概述
1 计算机系统概述
例题 1.1.
某计算机主频为 1.2GHz,其指令分为 4 类,在基准程序中所占比例及 CPI 如下表所示,求该机的 MIPS
数是多少?
指令类型 所占比例 CPI
A 50% 2
B 20% 3
C 10% 4
D 20% 5
𝐶𝑃𝐼 = 50% × 2 + 20% × 3 + 10% × 4 + 20% × 5 = 3(周期/指令)
𝑀 𝐼 𝑃𝑆 =
𝑓
𝐶𝑃𝐼 × 10
6
=
1.2 × 10
9
3 × 10
6
= 400百万条指令/
36
1 计算机系统概述
例题 1.2.
程序 P 在机器 M 上的执行时间是 20 秒,编译优化后:
执行的指令数减少到原来的
70%
CPI 增加到原来的 1.2
求优化后 P M 上的执行时间是多少?
𝑇
1
= 𝐼
1
× 𝐶𝑃𝐼
1
× 𝑇
𝑐𝑦𝑐𝑙𝑒
𝐼
2
= 0.7 × 𝐼
1
𝐶𝑃𝐼
2
= 1.2 × 𝐶𝑃𝐼
1
𝑇
2
= 𝐼
2
× 𝐶𝑃𝐼
2
× 𝑇
𝑐𝑦𝑐𝑙𝑒
= 0.7 × 𝐼
1
× 1.2 × 𝐶𝑃𝐼
1
× 𝑇
𝑐𝑦𝑐𝑙𝑒
= 0.84 × 𝑇
1
= 16.8
例题 1.3.
冯·诺依曼型计算机的主要设计思想是什么?它包括哪些主要组成部分?
1. 采用二进制形式表示指令和数据
2. 采用存储程序方式
3. 由五大部件组成计算机系统,由运算器、控制器、存储器、输入设备、输出设备组成
37
2 运算方法和运算器
2 运算方法和运算器
例题 2.1.
字长 8 位,写出下列各整数的原码、反码、补码表示。
(请注意规则:直接二进制表示,中间不能有空格)
1. 35 的原码是 ,反码是 ,补码是
2. 128 的原码是 ,反码是 ,补码是
3. 127 的原码是 ,反码是 ,补码是
4. 1 的原码是 ,反码是 ,补码是
1. 35
10
= 100011
2
原码 = 10100011 符号位 1,数值位 0100011
反码 = 11011100 在原码基础上数值位按位取反
补码 = 11011101 在反码基础上加 1
2. 128
10
= 10000000
2
原码 : 不存在/溢出
反码 : 不存在/溢出
补码 = 10000000
3. 127
10
= 1111111
2
原码 = 11111111 符号位 1,数值位 0100011
反码 = 10000000 在原码基础上数值位按位取反
补码 = 10000001 在反码基础上加 1
4. 1
10
= 1
2
原码 = 10000001 符号位 1,数值位 0100011
反码 = 11111110 在原码基础上数值位按位取反
补码 = 11111111 在反码基础上加 1
38
2 运算方法和运算器
例题 2.2.
在某字长为 8 位的计算机中,已知整型变量 𝑥𝑦 的机器数分别为 [𝑥]
= 11110100[𝑦]
= 10110000
整型变量 𝑧 = 2 × 𝑥 + 𝑦/2,则 𝑧 是多少?(结果用 16 进制表示)
因为在计算机中,所以结果的表示要用补码。
2 × 𝑥
= 11101000 (左移 1 , 无溢出)
𝑦/2
= 11011000 (右移 1 , 无溢出)
𝑧
= 11101000 + 11011000
= 1 11000000 (无溢出)
= 𝐶0𝐻 (16 进制表示)
例题 2.3.
IEEE 32 位浮点数表示下列十进制数:
1. 1.5
2. 384
3. 1/16
(结果用十六进制表示)
1. 1.5
10
= 1.1
2
= 1.1 × 2
0
𝑆 = 1 𝑒 = 0 𝐸 = 0 + 127 = 127 𝑀 = 1
32 位浮点数的二进制储存格式为:
1011, 1111, 1100, 0000, 0000, 0000, 0000, 0000
= 𝐵𝐹𝐶00000𝐻
2. 384
10
= 110000000
2
= 1.1 × 2
8
𝑆 = 1 𝑒 = 8 𝐸 = 8 + 127 = 135 𝑀 = 1
32 位浮点数的二进制储存格式为:
0100, 0011, 1100, 0000, 0000, 0000, 0000, 0000
= 43𝐶00000𝐻
3. 1/16
10
= 0.0625
10
= 0.0001
2
= 1.0 × 2
4
𝑆 = 0 𝑒 = 4 𝐸 = 4 + 127 = 123 𝑀 = 0
32 位浮点数的二进制储存格式为:
0011, 1101, 1000, 0000, 0000, 0000, 0000, 0000
= 3𝐷800000𝐻
39
2 运算方法和运算器
例题 2.4.
下列数使用了 IEEE 32 位浮点格式,相等的十进制数是多少?
1. 𝐶1𝐸00000𝐻
2. 3𝐹500000𝐻
1. 32 位浮点数的二进制储存格式为:1100, 0001, 1110, 0000, 0000, 0000, 0000, 0000
𝑆 = 1 𝐸 = 131 𝑒 = 131 127 = 4 𝑀 = 11
浮点数是:1.11 × 2
4
= 11100 相等的十进制数是:28
2. 32 位浮点数的二进制储存格式为:0011, 1111, 0101, 0000, 0000, 0000, 0000, 0000
𝑆 = 0 𝐸 = 126 𝑒 = 126 127 = 1 𝑀 = 101
浮点数是:1.101 × 2
1
= 0.1101
相等的十进制数是:0.8125
例题 2.5.
已知 𝑥 𝑦(真值),用变形补码法计算 𝑥 + 𝑦,同时指出结果是否溢出。
1. 𝑥 = 11011𝑦 = 00111
2. 𝑥 = 11011𝑦 = 10101
3. 𝑥 = 10110𝑦 = 00001
1. [𝑥]
= 0011011
[𝑦]
= 0000111
[𝑥]
0 0 1 1 0 1 1
+ [𝑦]
0 0 0 0 1 1 1
0 1 0 0 0 1 0
符号位出现 01,发生正溢出。
2. [𝑥]
= 0011011
[𝑦]
= 1101011
[𝑥]
0 0 1 1 0 1 1
+ [𝑦]
1 1 0 1 0 1 1
1 0 0 0 0 1 1 0
符号位为 00,没有发生溢出,𝑥 + 𝑦 = 00110
3. [𝑥]
= 1101010
[𝑦]
= 1111111
[𝑥]
1 1 0 1 0 1 0
+ [𝑦]
1 1 1 1 1 1 1
1 1 1 0 1 0 0 1
符号位为 11,没有发生溢出,[𝑥 + 𝑦]
= 1101001𝑥 + 𝑦 = 10111
40
2 运算方法和运算器
例题 2.6.
已知 𝑥 𝑦(真值),用变形补码法计算 𝑥 𝑦,同时指出结果是否溢出。
1. 𝑥 = 11011𝑦 = 11111
2. 𝑥 = 10111𝑦 = 11011
3. 𝑥 = 11011𝑦 = 10011
1. [𝑥]
= 0011011
[𝑦]
= 0011111
[𝑥]
0 0 1 1 0 1 1
+ [𝑦]
0 0 1 1 1 1 1
0 1 1 1 0 1 0
符号位为 01,发生正溢出。
2. [𝑥]
= 0010111
[𝑦]
= 1100101
[𝑥]
0 0 1 0 1 1 1
+ [𝑦]
1 1 0 0 1 0 1
1 1 1 1 1 0 0
符号位为 11,没有发生溢出,[𝑥 𝑦]
= 1111100𝑥 𝑦 = 00100
3. [𝑥]
= 0011011
[𝑦]
= 0010011
[𝑥]
0 0 1 1 0 1 1
+ [𝑦]
0 0 1 0 0 1 1
0 1 0 1 1 1 0
符号位为 01,发生正溢出。
41
3 存储系统
3 存储系统
例题 3.1.
设有一个具有 20 位地址和 32 位字长的存储器,则该存储器能存储 个字节的信息。如果存储器
512K×8 SRAM 芯片组成,需要 片,还需要 位地址作芯片选择。
存储器容量 = 2
20
× 32 = 2
25
= 2
22
字节 = 4MB
需要芯片数 =
512𝐾 × 8
2
20
× 8
= 8
片选地址线 = log
2
2
20
512𝐾
= 1
例题 3.2.
32K×8 位的 E2PROM 芯片组成 128K×16 位的只读存储器,则数据寄存器至少 位,地址寄存
器至少 位,共需要 E2PROM 芯片。
数据寄存器 = 16
地址寄存器 = log
2
128𝐾 = 17
芯片数 =
128𝐾 × 16
32𝐾 × 8
= 8个芯片
42
3 存储系统
例题 3.3.
16K×8 位的 DRAM 芯片构成 64K×32 位的存储器,则该 DRAM 芯片的地址引脚有 个,
据引脚有 个。
由于 DRAM 容量很大,地址线的数目相当多,为减少芯片引脚的数量,将地址分为行、列两部分分时传
送。芯片地址引脚的数量为地址线数量的一半。
地址线数
=
log
2
16
𝐾
=
14
地址引脚 = 𝑓 𝑟𝑎𝑐地址线数2 = 7
数据线数 = 8
数据引脚 = 数据线数 = 8
例题 3.4.
设存储器容量为 64M,存储器字长为 64 位,模块 𝑚 = 8,分别用顺序和交叉方式进行组织。存储周期
𝑇 = 100ns,数据总线宽度为 64 位,总线传送周期 𝜏 = 50ns。求:顺序存储器和交叉存储器的带宽各是多
Bps?
数据量 𝑞 = 64 × 8 = 512b = 64B
顺序存储时间 𝑡
1
= 𝑇 𝑚 = 100ns × 8 = 8 × 10
7
s
顺序存储带宽 𝑊
1
=
𝑞
𝑡
1
=
64B
8×10
7
s
= 80MBps
交叉存储时间 𝑡
2
= 𝑇 + (𝑚 1)𝜏 = 100ns + (8 1)50ns = 4.5 × 10
7
s
交叉存储带宽 𝑊
2
=
𝑞
𝑡
2
=
64B
4.5×10
7
s
142.2MBps
例题 3.5.
已知 cache 存储周期 40ns主存存储周期 200nscache/主存系统平均访问时间为 50ns cache 的命中率。
cache 的命中率为
cache 命中时访问时间为 𝑡
𝑐
= 40nscache 未命中时访问时间为 𝑡
𝑚
= 200ns
平均访问时间 𝑡
𝑎
= 𝑡
𝑐
+ (1 )𝑡
𝑚
50ns = × 40ns + (1 ) × 200ns
解得: =
15
16
= 93.75%
所以 cache 的命中率为 93.75%
例题 3.6.
CPU 执行一段程序时,cache 完成存取的次数为 2420 次,主存完成存取的次数为 80 次,已知 cache 存储
周期为 40ns,主存存储周期为 240ns,求 cache/主存系统的效率和平均访问时间。
命中率 =
𝑁
𝑐
𝑁
𝑐
+𝑁
𝑚
=
2420
2420+80
= 96.8%
平均访问时间 𝑡
𝑎
= × 40𝑛𝑠 + (1 ) × 240𝑛𝑠 = 46.4𝑛𝑠
43
3 存储系统
例题 3.7.
假设某计算机的 CPU 主频为 80MHzCPI 4并且平均每条指令访存 1.5 次,主存和 Cache 之间交换的
块大小为 16BCache 的命中率为 99%存储器总线的宽度为 32 位。则该计算机的 MIPS 数是多少?平均
每秒 Cache 缺失的次数是多少?在不考虑 DMA 传送的情况下,主存带宽至少达到多少才能满足 CPU
访存要求?
𝑀 𝐼 𝑃𝑆 =
𝑓
𝐶 𝑃𝐼 ×10
6
=
80𝑀 𝐻𝑧
4×10
6
= 20百万条指令/
命中率 = 99% = 0.99
平均每条指令访存次数为 20 × 10
6
× 1.5 × (1 99%) = 3 × 10
5
按平均情况计算主存带宽 ×10
5
× 16𝐵 = 4.8𝑀 𝐵/𝑠
主存带宽至少达到 4.8𝑀𝐵/𝑠 才能满足 CPU 的访存要求。
例题 3.8.
某计算机的主存地址位数为 32 位,按字节编址。假定 Cache 中最多存放 128 个主存块,采用直接映射方
式、全写法(Write Through,块大小为 64B,则该 Cache 的容量是多少字节?
按字节编址,块大小为 64B = 字地址 𝑙𝑜𝑔
2
64 = 6
Cache 中最多存放 128 个主存块 = 行号 𝑙𝑜𝑔
2
128 = 7
标记位数 = 主存地址位数 - 行号 - 地址 = 32 7 6 = 19
标记位 (19bit) 行号 (7bit) 块的字号/字地址 (6bit)
采用 Write Through 策略 = cache 无控制位(修改位)
CAM (内容可寻址存储器)中只保存 cache 有效位(1bit)和标记位(19bit
CAM 容量为 (1𝑏𝑖𝑡 + 19𝑏𝑖𝑡) × 128 = 2560𝑏𝑖𝑡 = 320𝐵
数据块容量为 128 × 64𝐵 = 8192𝐵
Cache 总容量为 320𝐵 + 8192𝐵 = 8512𝐵
例题 3.9.
主存容量为 4MB,虚存容量为 1GB,则虚地址 位,物理地址 位。如页面大
4KB,则页表长度是
主存容量为 4MB = 物理地址位数 𝑙𝑜𝑔
2
4𝑀 𝐵 = 22
虚存容量为 1GB = 虚地址位数 𝑙𝑜𝑔
2
1𝐺𝐵 = 30
页面大小为 4KB = 页表长度 = 𝑙𝑜𝑔
2
1𝐺𝐵
4𝐾 𝐵
= 18
例题 3.10.
设某系统采用页式虚拟存储管理,页表存放在主存中。如果一次主存访问需要 50ns,那么完成一次数据
访问需用多少时间?如果增加 TLB忽略查找 TLB 表项占用的时间,并且 75% 的页表访问命中 TLB
成一次数据访问的时间又是多少?
完成一次数据访问:50𝑛𝑠[访问页表] + 50𝑛𝑠[查找主存] = 100𝑛𝑠
增加 TLB 后:75% × 50𝑛𝑠[TLB 命中] + (1 75%) × 100𝑛𝑠 = 50𝑛𝑠 + 12.5𝑛𝑠 = 62.5𝑛𝑠
44
3 存储系统
例题 3.11.
理, 2KB 16 页, 8 页。
位,主存物理空间
逻辑地址 = 逻辑页号 + 页内地址 = 𝑙𝑜𝑔
2
16 + 𝑙𝑜𝑔
2
2𝐾 𝐵 = 4 + 11 = 15
实存地址 = 物理页号 + 页内地址 = 𝑙𝑜𝑔
2
8 + 𝑙𝑜𝑔
2
2𝐾 𝐵 = 3 + 11 = 14
主存物理空间 = 页数 × 页大小 = 8 × 2𝐾 𝐵 = 16𝐾 𝐵
例题 3.12.
某计算机的存储系统 cache、主存和磁盘构成。Cache 的访问时间为 15ns;如果被访问的单元在主存中
但不在 cache 中,需要用 60ns 的时间将其装入 cache,然后再进行访问;如果被访问的单元不在主存中,
则需要 10ms 的时间将其从磁盘中读入主存,然后再装入 cache 中并开始访问。若 cache 的命中率为 90%
主存的命中率为 60%,求该系统中访问一个字的平均时间。
cache 命中 𝑡
𝑐
= 15𝑛𝑠
cache 未命中,主存命中 𝑡
𝑚
= 15𝑛𝑠 + 60𝑛𝑠 = 75𝑛𝑠
cache 未命中,主存未命中 𝑡
𝑑
= 15𝑛𝑠 + 60𝑛𝑠 + 10𝑚𝑠 = 10000075𝑛𝑠
平均访问时间 𝑡
𝑎
= 90% × 𝑡
𝑐
+ (1 90%) × 60% × 𝑡
𝑚
+ (1 90%) × (1 60%) × 𝑡
𝑑
= 400021𝑛𝑠
例题 3.13.
在一个分页虚存系统中,用户虚地址空间为 32 页,页长 1KB主存物理空间为 16KB。已知用户程序
10 页长,若虚页 0123 已经被分别调入到主存 87410 页中,请问虚地址 0AC5H 1AC5H
应的物理地址是多少?
虚页号 0 1 2 3
主存页号 8 7 4 10
页长 1KB = 页内地址为 10
虚存 32 = 逻辑页号为 5
物理页
16𝐾 𝐵
1𝐾 𝐵
= 16 = 物理页号为 4
虚地址:
5 bit(逻辑页号) 10 bit(页内地址)
主存地址:
4 bit(主存页号) 10 bit(页内地址)
1. 虚地址 0AC5H = 0000 1010 1100 0101 B
虚页号为 2 ,对应主存页号为 4
物理地址为 0001 0010 1100 0101 B = 12C5 H
2. 虚地址 1AC5H = 0001 1010 1100 0101 B
虚页号为 6 ,无对应主存页号,即无物理地址
45
4 指令系统
4 指令系统
例题 4.1.
一种单地址指令格式如下所示,其中 I 为间接特征,X 为寻址模式,D 为形式地址。IXD 组成该指令
的操作数有效地址 E。设 R1 为变址寄存器,R2 为基址寄存器,PC 为程序计数器,请在下表中第一列位
置填入适当的寻址方式名称。请填写寻址方式
寻址方式 I X 有效地址 E
0 00 𝐸 = 𝐷
0 01 𝐸 = (𝑃𝐶) + 𝐷
0 10 𝐸 = (𝑅1) + 𝐷
0 11 𝐸 = (𝑅2) + 𝐷
1 00 𝐸 = (𝐷)
1 11 𝐸 = ((𝑅2) + 𝐷)
1. 直接寻址
2. 相对寻址
3. 变址寻址
4. 基址寻址
5. 间接寻址
6. 基址间接寻址
46
4 指令系统
例题 4.2.
根据操作数所在位置,指出其寻址方式:
1. 操作数在寄存器中,为 寻址方式。
2. 操作数地址在寄存器中,为 寻址方式。
3. 操作数在指令中,为 寻址方式。
4. 操作数的物理地址在指令中,为 寻址方式。
5. 操作数的地址为某一寄存器内容与位移量之和,可以是 寻址方式。
1. 寄存器寻址
2. 寄存器间接寻址
3. 立即寻址
4. 直接寻址
5. 相对寻址、基址寻址、变址寻址
例题 4.3.
设某机字长 32 位,CPU 中有 16 32 位通用寄存器,设计一种能容纳 64 种操作的指令系统。如果采
用通用寄存器作基址寄存器,则单字长 RS 型指令的 [最大] 存储空间是多少?
64 种操作指令 = 需要 6 位操作码
16 个寄存器 = 需要 4 位寄存器号
字长 32 位,单字长 RS 型指令 = 偏移量为 32 6 4 4 = 18
RS 型指令 = 一个操作数在寄存器中,另一个操作数基址寻址
操作码 (6bit) 通用寄存器 (4bit) 基址寄存器 (4bit) 偏移量 (18bit)
32 位寄存器 = 基址范围 2
32
= 4𝐺
偏移量 18 = 偏移范围 2
18
= 256𝐾
存储空间 = 基址范围 + 偏移范围 = 4𝐺 + 256𝐾
间, 定, 多, 式。
操作码 (6bit) 通用寄存器 (4bit) 隐含寻址 偏移量 (22bit)
32 位寄存器 = 基址范围 2
32
= 4𝐺
偏移量 22 = 偏移范围 2
22
= 4𝑀
最大存储空间 = 基址范围 + 偏移范围 = 4𝐺 + 4𝑀
47
4 指令系统
例题 4.4.
某机器字长 16 位,主存按字节编址,转移指令采用相对寻址,由两个字节组成, 1 字节为操作码字段,
2 字节为相对位移量字段。假定取指令时,每取一个字节 PC 自动加 1。若某转移指令所在主存地址为
2000H,相对位移量字段的内容为 06H,则该转移指令成功后的目标地址是多少?
指令运行前:
PC 2000H OP
2001H 06H
指令运行后:
2002H OP
2001H 06H
PC 2002H
转移指令采用相对寻址
改指令执行后的目标地址 EA=A+(PC) = 06H + 2002H = 2008H
例题 4.5.
某计算机有 16 通用寄存器,采用 32 位定长指令字,操作码字段(含寻址方式位)为 8 位,Store 指令
(存数指令)的源操作数和目的操作数分别采用寄存器直接寻址和基址寻址方式。若基址寄存器可使用任
一通用寄存器,且偏移量用补码表示,则 Store 指令中偏移量的取值范围是多少?
16 个通用寄存器 = 需要 4 位寄存器号
32 位定长指令字 = 偏移量为 32 8 4 4 = 16
操作码 (8bit) 源寄存器 (4bit) 基址寄存器 (4bit) 偏移量 (16bit)
偏移量采用补码表示
偏移量的取值范围为 2
15
2
15
1
例题 4.6.
某指令系统指令字长为 8 位,每一地址码 3 位,采用扩展操作码技术。若指令系统具 2 条二地址指
令,10 条零地址指令,则最多可有 条一地址指令。
指令字长为 8 位,地址码长 3 = 操作码长度为 2
OP(2bit) 𝐴
1
(3bit) 𝐴
2
(3bit)
2 条二地址指令:00XX XXXX, 01XX XXXX
可用于扩展指令:10XX XXXX, 11XX XXXX
一地址指令:10XX XXXX 11XX XXXX
10 条零地址指令:
1111 1000 1111 1111 8 条)
1111 0000 1111 0001 2 条)
一地址指令:
1000 0XXX 1011 1XXX 8 条)
1100 0XXX 1110 1XXX 6 条)
其中 1111 0XXX 1111 1XXX 用于扩展为零地址指令
最多可有 8 + 6 = 14 条一地址指令
48
5 中央处理器
5 中央处理器
例题 5.1.
1. CPU 中,保存当前正在执行的指令的寄存器是
2. 保存即将执行的指令地址的寄存器是
1. 指令寄存器(IR
2. 程序计数器(PC
例题 5.2.
假设某机器有 80 条指令,平均每条指令由 4 条微指令组成,其中有一条取指微指令是所有指令公用的。
已知微指令长度为 32 位,则控制存储器的容量是多少字节?
1 条指令由 4 条微指令组成,其中 1 条取指微指令是所有指令公用的 = 每条指令有 3 条微指令是独有的
公用取值微指令 独有微指令 I 独有微指令 II 独有微指令 III
总微指令数为 80 × 3 + 1 = 241 条微指令
微指令长度为 32 = 每条微指令占 4 字节
控制存储器容量为 241 × 4 = 964 字节
49
5 中央处理器
例题 5.3.
已知某机采用微程序控制方式,控存容量为 512×48 位。微程序可在整个控存中实现转移,控制微程序转
移的条件共 4 个(条件不需要编码),微指令采用水平型格式,后继微指令采用断定方式。则微指令由哪
几个字段构成,分别为多少位?
CAM 容量为 512 × 48 = 微指令长度为 48
微指令格式为水平型 = 微指令由操作控制字段、判别测试字段和下地址字段构成
4 个转移条件不需要编码 = 判别测试字段为 4
后继微指令采用断定方式 = 下地址字段 𝑙𝑜𝑔
2
512 = 9
操作控制字段 = 微指令长度 - 判别测试字段 - 下地址字段 = 48 4 9 = 35
微指令字段构成为:
操作控制字段 (35bit) 判别测试字段 (4bit) 下地址字段 (9bit)
例题 5.4.
会造成流水线断流的相关冲突有
资源/结构冲突
数据冲突
控制冲突
例题 5.5.
今有 4 级流水线,分别完成取指、指令译码并取数、运算、送结果四步操作。假设完成各步操作的时间依
次是 100ns100ns80ns 50ns,则流水线的操作周期应设计为 ns
流水线时钟周期 𝜏 = max(100 𝑛𝑠, 100𝑛𝑠, 80𝑛𝑠, 50𝑛𝑠) = 100𝑛𝑠
例题 5.6.
CPU 主频为 1.03GHz采用 4 级指令流水线,每个流水线的执行需要 1 个时钟周期。假定 CPU 执行了
100 条指令,在其执行过程中,没有发生任何流水线阻塞,此时流水线的吞吐率为多少?
时钟周期数:
𝑇
𝑘
= 𝑘 + (𝑛 1) = 100 + (4 1) = 103
吞吐率:
𝑇
𝑃
=
𝑛
𝑇
𝑘
· Δ𝑡
=
𝑛
(𝑘 1 + 𝑛) · Δ𝑡
=
100
103 ·
1
1.03×10
9
= 1𝐺𝐼𝑃𝑆
50
6 总线系统
6 总线系统
例题 6.1.
总线的仲裁分为 两类。
集中式仲裁
分布式仲裁
例题 6.2.
2、集中式仲裁分为哪几种?其中:
1. 响应时间最快的是哪一种?
2. 对电路故障最敏感的是哪一种?
3. 当代总线标准采用的是哪一种?
链式查询方式、计数器定时查询方式、独立请求方式
1. 独立请求方式
2. 链式查询方式
3. 独立请求方式
例题 6.3.
总线的一次信息传送,大致可以分为以下阶段:
总线请求
总线仲裁
寻址(目的地址)
信息传送
状态返回(或错误报告)
51
6 总线系统
例题 6.4.
某总线在一个总线周期中并行传送 8 个字节的信息,假设一个总线周期等于 2 个总线时钟周期,总线时
钟频率为 70MHz,总线带宽是 Bps
总线带宽 𝐷
𝑟
= 𝐷 × 𝑓 /𝑁 = 8𝐵 × 70𝑀 𝐻𝑧/2 = 280MBps
例题 6.5.
某同步总线的时钟频率为 100MHz,宽度为 32 位,地址/数据线复用,每传输一个地址或数据占用一个时
钟周期。若该总线支持突发(猝发)传输方式,则一次 主存写 总线事务传输 128 位数据需要多少时间?
如果不采用突发(猝发)传输方式,则需要多长时间?
传地址:32 位地址线 = 1 个时钟周期
传数据:32 位数据线 =
128
32
= 4 个时钟周期
1. 突发传输方式:
只需要数据的首地址(1 个时钟周期)和数据(4 个时钟周期)
𝑇 = 5 ×
1
100𝑀 𝐻𝑧
= 50𝑛𝑠
2. 非突发传输方式:
传输
128
32
= 4 个数据 = 需要 4 个地址
需要传输 4 个地址(4 个时钟周期)和数据(4 个时钟周期)
𝑇 = 4 ×
1
100𝑀 𝐻𝑧
+ 4 ×
1
100𝑀 𝐻𝑧
= 80𝑛𝑠
52
7 外围设备
7 外围设备
例题 7.1.
一个光栅扫描图形显示器,每帧有 1024×1024 像素,可以显示 256 种颜色,则刷新存储器容量至少是
字节。
256 种颜色 = 灰度级 8
𝑀 = 𝑟 × 𝐶 = 1024 × 1024 × 8𝑏𝑖𝑡 = 8𝑀 𝑏 = 1𝑀𝐵
例题 7.2.
某磁盘存储器转速为 3000 /分,共有 4 个记录面,每道记录信息为 12288 字节,共有 275 道。问:
1. 磁盘存储器的容量是多少字节?
2. 磁盘数据传输率是多少 B/s
3. 磁盘平均等待时间是多少?
4. 给出该磁盘地址格式方案,假设每个扇区记录 1024 个字节。
1. 磁盘存储器容量 = 4 × 275 × 12288字节 = 13516800字节
2. 磁盘转速 3000/ = 50/
磁盘数据传输率 𝐷
𝑟
= 50/12288字节/ = 614400字节/
3. 磁盘平均等待时间 𝑡 =
1
2×50/
= 0.01
4. 每道记录信息为 12288 字节,每个扇区记录 1024 个字节 = 每道
12288
1024
= 12 个扇区
4 个记录面 = 记录面号 𝑙𝑜𝑔
2
4 = 2
275 道磁道 = 道号 𝑙𝑜𝑔
2
275 9
12 个扇区 = 扇区号 𝑙𝑜𝑔
2
12 4
总共 2 + 9 + 4 = 15
14 13 12 4 3 0
记录面号 (2bit) 道号 (9bit) 扇区号 (4bit)
53
7 外围设备
例题 7.3.
某双面磁盘,每面有 220 道,已知磁盘转速为 4000 /分,数据传输率为 185000B/s,求磁盘总容量。
磁盘转速 = 4000/ =
4000
60
/ =
200
3
/
道容量 = =
185000𝐵/𝑠
200
3
/
= 2775B/
磁盘总容量 =面数 × 道数 × 道容量 = 2 × 220 × 2775𝐵 = 1221000𝐵
例题 7.4.
已知某磁盘存储器转速为 2400 /分,每个记录面有 200 磁道,平均找道时间为 60ms每道存储容量为
96Kb,求磁盘的存取时间与数据传输率(数据传输率单位为 B/s
磁盘转速 𝑟 = 2400/ = 40/
磁盘平均存取时间 𝑇
𝑎
= 𝑇
𝑠
+
1
2𝑟
= 60𝑚𝑠 +
1
2×40
== 72.5𝑚𝑠
数据传输率 𝐷
𝑟
= 𝑟 × 𝑁 = 40/ × 96𝐾 𝑏 = 2840𝐾𝑏/𝑠 = 480𝐾𝐵/𝑠
例题 7.5.
若显示器分辨率为 1024×768,颜色深度为 24 位,帧频(刷新频率)为 72Hz,则刷新存储器的存储容
MB,刷新存储器的带宽约是 Bps
刷新存储器容量 𝑀 = 𝑟 × 𝑐 = 1024 × 768 × 24𝑏𝑖𝑡 = 18𝑀𝑏 = 2.25𝑀𝐵
刷新存储器带宽 𝐵 = 𝑀 × 𝑓 = 2.25𝑀𝐵 × 72𝐻𝑧 = 162𝑀 𝐵/𝑠
54
8 输入/输出系统
8 输入/输出系统
例题 8.1.
设某机有 5 级中断:L0L1L2L3L4,其中断响应优先次序从高到低为 L0L1L2L3L4。中
断屏蔽字为 M4M3M2M1M0Mi=10i4)表示对 Li 级中断进行屏蔽,现在要求中断处理优先级从
到低的顺序是 L1L3L0L4L2。则各级中断的中断屏蔽字为:
L0 的中断屏蔽字:
L1 的中断屏蔽字:
L2 的中断屏蔽字:
L3 的中断屏蔽字:
L4 的中断屏蔽字:
最先执行的是 ,最早执行完毕的是
𝑀4 𝑀3 𝑀2 𝑀1 𝑀0
𝐿1 1 1 1 1 1
𝐿3 1 1 1 0 1
𝐿0 1 0 1 0 1
𝐿4 1 0 1 0 0
𝐿2 0 0 1 0 0
整理得
𝑀4 𝑀3 𝑀2 𝑀1 𝑀0
𝐿0 1 0 1 0 1
𝐿1 1 1 1 1 1
𝐿2 0 0 1 0 0
𝐿3 1 1 1 0 1
𝐿4 1 0 1 0 0
L0 的中断屏蔽字:10101
L1
的中断屏蔽字:
11111
L2 的中断屏蔽字:00100
L3 的中断屏蔽字:11101
L4 的中断屏蔽字:10100
执行过程为:开始 L0 开始 L1 中断 L0 完成 L1 开始 L3 中断 L0 完成 L3 完成 L0
开始 L2 开始 L4 中断 L2 完成 L4 完成 L2
最先执行的是 L0 ,最早执行完毕的是 L1
55