计算机组成原理
3、5设计,2、4计算,9出题
第一章
冯诺依曼结构(普林斯顿结构)特点:存储程序
冯诺依曼存储程序概念:
- 计算机应由运算器、存储器、控制器、输入设备和输出设备基本部件组成
- 计算机内部用二进制表示指令和数据
- 将编好的程序和原始数据事先存入存储器,然后再启动计算机工作,这是存储程序的基本含义
练习:
冯诺依曼计算机的程序和数据靠输入设备输入内存保存
冯诺依曼计算机工作时控制流驱动数据流工作
计算机硬件组成
CPU(中央处理器):运算器+控制器
主机:CPU+内存储器(主存储器)
输入设备:
将原始数据和编好的程序送入计算机
并将它们转换成计算机内部能识别和接受的信息方式
输出设备:
辅助存储器也可视为输出设备
存储器:
存储系统:cache(高速缓存)、主存储器、辅助存储器(从高到低)
存储器存储数据和指令
运算器:
核心:算术逻辑运算部件(ALU)
寄存器(累加寄存器(ACC)、暂存器)
控制器:
是计算机指挥中心,按照预先步骤控制部件工作
1.总线结构(小、微型机的典型结构):
2.大中型计算机的典型结构
计算机系统:
硬件系统和软件系统
软件系统:
系统软件和应用软件
高级语言设计的程序为源程序
计算机工作过程:
计算机性能指标:
1.机器字长:字长越长,精度越高
2.数据通路宽度
3.主存容量
4.运算速度(MIPS和MFLOPS)
MIPS = 指令条数 / ( 执行时间 x
1
0
6
10^6
106) = 主频 / CPI = 主频 x IPC
MEFLOPS = 浮点操作次数 / ( 执行时间 x
1
0
6
10^6
106)
计算题:
总CPI=每个CPI*占的比例
MIPS=主频/CPI
时钟周期=1/主频
每个指令的总时间周期=所有的指令 CPI*条数 的和
总CPI=总时间周期/指令总条数
练习:
第二章
计算机中的数值数据
原码表示法:
第一位0正1负,后面为真值,多用于浮点数存储
补码表示法:
浮点数
0.0110——>0.0110;
-0.0110——>1.1010 ( 1.1001(+1) )
整数
正数同理
-1101——>10011 ( 10010(+1) )
反码表示法:
正数同理
-1101——>00010
浮点数
定点表示法:
若有n+1位
原码定点范围 -(1- 2 − n 2^{-n} 2−n) ~ (1- 2 − n 2^{-n} 2−n)
补码定点范围 -1~(1- 2 − n 2^{-n} 2−n)) 1.00…00(n个0) 代表 负数的-1
浮点表示法(类似科学计数法)
如二进制小数 111.01 = 0.11101 * 2^3 = 0.011101 * 2^4
纯小数部分为尾码 m5,整数的乘数的2的幂数为阶码 e5
移码:
(+0) = (-0) = 10……0
其余要减去偏置量
IEEE 754 标准浮点数
偏置值127
ms表示正负,默认1. 00……
数据校验码
奇偶校验码
根据为奇校验和偶校验与信息中的1个数在奇偶校验位添1或0
海明校验码(以PPT为准)
第三章 指令系统
指令格式
寻址技术
指令寻址
数据寻址
练习
op 6位 | MOD 2位 | A 8位
1)4C20H 2)2244H 3)3547H 4)6F23H
1)010011 00 20H
MOD = 0 直接寻址 目标为 A 即 20H
2)001000 10 44H
MOD = 2 相对寻址 PC+2+A = 1234H + 2H + 44H = 127AH
3)001101 01 47H
MOD = 1 间接寻址 47H
4)011011 11 23H
MOD = 3 变址寻址 Rx + A = 113CH + 23H = 115FH
第四章 数值的机器运算
加法器
串行加法器、并行加法器
定点加减运算
原码加减
略
补码加减
[y]补 变 [-y]补
对 y 包括符号位全部取反 末尾加1
溢出
采用符号位
两相同符号数相加,正+正——> 1开头(正溢)
同理,负+负 ——> 0开头(负溢)
采用进位位
C5 为 符号位进位,C1 为最高位进位
**溢出 **= C5 ⊕ C1
采用变形补码
双符号位 S1 S2
符号数移位
正数移位
正数正常移位即可
负数移位
原码:左移删去X1,最右端补0。右移X1位补0
补码:左移同原码,右移X1位补1
练习
[x]补 = 1 1110100,[y]补 = 1 0110000
求 z = 2*x + y/2
2*x = 1 1101000
y/2 = 1 1011000
z = 1 100000
符号数的舍入操作
1.恒舍:只保留p位
2.冯诺依曼舍入:末尾为1
3.上舍下入
4.查表舍入
原码一位乘
练习
补码一位乘
要点:若为 [x]补 x [y]补,则 B为 [x]补 , c为 [y]补
题目: 1.10010 X 11.00110
浮点数加减
通过移位规格化
3.4 (未规格化)左移尾数
5.6 (溢出)右移尾数
练习
X:00 111 00.11101
Y:00 101 00.10100
Y -> 00 111 00.00101
X + Y -> 00 111 01.00010(溢出,即使尾数右移,阶码+1也会溢出)
练习
x = 00 01 00.1101
y = 00 11 11.0110
x -> 00 11 00.0011
x+y = 00 11 11.1001(未规格化)
左规 00 10 11.0010(左移尾数1位,阶码 -1)
十进制整数加法运算
8421码加法
4位二进制 表示 十进制1位
当二进制大于9时 +6 向前进 1
5 + 7
0101 + 0111 = 1100 (+0110)= 1 0010 = 1 2
运算器结构
ALU:算术逻辑运算单元(多功能函数发生器)——运算器核心部件
74181:四位ALU , 能执行16位算术运算和16种逻辑运算(组内并行进位)
74182:组间并行进位
第五章 存储系统
存储系统组成
1.按存储器在计算机系统中的作用分类
- 高速缓冲存储器
- 主存储器
- 辅助存储器
2.按存取方式分类
- 随机存取存储器RAM
- 只读存储器ROM
- 顺序存取存储器SAM
- 直接存取存储器DAM
3.按存储介质分类
- 磁芯存储器
- 半导体存储器
- 磁表面存储器
- 光存储器
4.按信息的可保存性分类
- 易失性存储器
- 非易失性存储器
层次结构
由高速缓冲存储器、主存储器、辅助存储器构成的三级存储系统可以分为两个层次。
高速缓存和主存间称为Cache-主存存储层次(Cache存储系统);
主存-辅存存储层次(虚拟存储系统)。
-
Cache存储系统是为解决主存速度不足而提出来的。
-
虚拟存储系统是为解决主存容量不足而提出来的。
主存储器
主存储器是整个存储系统的核心,它用来存放计算机运行期间所需要的程序和数据,CPU可直接随机地对它进行访问。
字节编址计算机的地址
大端方案和小端方案:
- 大端方案将高字节存放在低地址
- 小端方案将高字节存放在高地址
大端与小端方案
半导体随机存储器和只读存储器
•主存储器通常分为RAM和ROM两大部分。RAM可读可写,ROM只能读不能写。
•静态RAM,即SRAM(Static RAM),其存储电路以双稳态触发器为基础;动态RAM,即DRAM(Dynamic RAM),其存储电路以电容为基础。
•1.刷新间隔
为了维持MOS型动态记忆单元的存储信息,每隔一定时间必须对存储体中的所有记忆单元的栅极电容补充电荷,这个过程就是刷新。
一般选定MOS型动态存储器允许的最大刷新间隔为2ms,也就是说,应在2ms内,将全部存储体刷新一遍。
•2.刷新方式
- 集中式
- 分散式
- 异步式
(1)集中刷新方式
- 刷新时间=存储体矩阵行数×刷新周期
缺点是在集中刷新期间必须停止读/写,这一段时间称为“死区”,而且存储容量越大,死区就越长。
(2)分散刷新方式
(3)异步刷新方式
3.刷新控制
RAM芯片:
1024 x 4:10根地址线、4根数据线(log2 (2^10)=10)
DRAM芯片:
每增加一根地址线,增加两位地址,增加4倍容量
ROM:
5.4 主存容量扩展
1.位扩展
只在位上扩展(加大字长),即扩展数据线,如 64k x 1 扩展到 64k x 8
练习:
2K x 4 扩展到 2K x 8
2.子扩展
如 16k x 8 扩展到 64k x 8
练习:
3.字和位同时扩展
练习:
实现片选的方法:
- 线选法
- 全译码法
- 部分译码法
1.线选法
选中的芯片位置置0 其他位置置1,如 xxxx 地址,选择0#,则为 1110,选择1#,则为 1101
2.全译码法
3.部分译码
练习
5.7 高速缓冲存储器
高速缓冲存储器的工作原理
1.程序访问的局部性:
- 时间局部性
- 空间局部性
2.工作原理
高速缓冲存储器的地址映象方法:
−应用某种函数把主存地址映象为Cache地址,称为地址映象。
- 全相联映象
- 直接映象
- 组相联映象
全相联映射:
把所有用到的主存地址直接表示,标记位数等于块号位数,字地址位等于地址总数
分为 | 块号位 | 字地址 |
直接映射:
分为 | 区号位 | 区内块号位 | 字地址 |
组相联映象:
分为 | 区号位 | 区内组号位 | 字地址 |
先找组号,然后对区号找
练习:
4 M B = 22 4MB = 22 4MB=22位,每块为 32 ∗ 8 / 8 = 32 B 32*8 / 8 = 32B 32∗8/8=32B 大小
块在Cache和主存一样大,因此字地址位为 l o g 2 ( 32 ) log2(32) log2(32)= 5 位
由 4 4 4块一组得 16 K B / ( 4 ∗ 32 B ) 16KB / (4*32B) 16KB/(4∗32B) = 2 7 2^7 27 组,即组号位为 7 位
区号位: 2 22 / 2 5 ∗ 2 7 = 2 10 2^{22} / 2^5 * 2^7 = 2^{10} 222/25∗27=210,即 10 位
结果 | 10 | 7 | 5 |
练习:
刚开始为空 入 0 1 2 5 分别在 0 1 2 3 区(对主存地址 mod 4 可得)
0 1 2 -> 0 5 2 -> 4 5 2 -> 4 5 6 -> 4命中 -> 4 5 6 7 -> 4 1 2 7
-> 4命中 -> 1命中 -> 4 1 2 3 -> 4 1 2 7 -> 2命中
4 / 15 = 26.7%
练习:
129号即129字节 因为主存块大小为 32B,按字节编址
即129字节在 第四块,16/2 = 8组
4 mod 8 = 4
练习:
0 -> 0 4 -> 8 4 -> 8 2 -> 0 2 -> 0 6 -> 8 6 -> 6命中 - >4 6 -> 4 8
LRU 最近少使用(命中)的优先替代
练习:
主存
2
32
2^{32}
232 字节 , 即$ 2^{32} * 8 / (4*32) = 2^{28}$块
4
k
/
4
=
2
10
4k / 4 = 2^{10}
4k/4=210 行 ,
2
28
/
2
10
=
2
18
2^{28} / 2^{10} = 2^{18}
228/210=218 区
回写额外一个标记位一个有效位
$(18+1+1)*1k(即2^{10}) + 4k * 32 $=
148
k
148k
148k字
Cache性能
练习:
(1) ( 2000 − 100 ) / 2000 = 95 (2000-100)/ 2000 = 95 (2000−100)/2000=95%
(2) 45 ∗ 95 45*95 45∗95% + 200 ∗ 5 + 200 * 5 +200∗5%$ = 52.75nm$
(3)$45/52.75 = 85.3 $%
第六章
6.1 CPU组成
6.2 控制器组成
-
指令部件
¤⑴ 程序计数器(PC)
¤ ⑵ 指令寄存器(IR)
¤ ⑶ 指令译码器(ID)
¤ ⑷ 地址形成部件
-
时序部件
¤⑴脉冲源
¤⑵节拍信号发生器
¤⑶启停控制逻辑
-
微操作信号发生器(CU 控制单元)
-
中断控制逻辑
硬件实现方法
- 组合逻辑型
- 存储逻辑型
- 组合逻辑和存储逻辑结合型
6.3 时序系统
1.取指令阶段
2.分析取数阶段
3.执行阶段
取指周期
6.4 微程序控制
1.微命令和微操作
- 微命令是微操作的控制信号
- 微操作是微命令的操作过程
2.微指令和微地址
-
微指令是指控制存储器中的一个单元的内容,即控制字,它是若干个微命令的集合。
一条微指令通常至少包含两大部分信息:
① 操作控制字段,又称微操作码字段,用以产生某一步操作所需各微操作控制信号。
② 顺序控制字段,又称微地址码字段,用以控制产生下一条要执行的微指令地址。
-
微地址是存放控制字的控制存储器的单元地址。
3.微周期
- 从控制存储器中读取一条微指令并执行相应的微命令所需的全部时间称为微周期。
4.微程序
- 微指令的集合,一条机器指令对应于一段微程序。
微指令编码
字段编码法会把兼容的微命令分到不同段和把互斥微指令分到一段内
对于 18 段:
2 4 − 1 = 15 2^4 - 1 = 15 24−1=15
256 / 15 = 17.0666 = 18 256 / 15 = 17.0666 = 18 256/15=17.0666=18
微程序控制器的基本组成
微程序控制器比组合逻辑控制器多出几个部件:
- 控制存储器( C M CM CM)
- 微指令寄存器( μ I R μ IR μIR )
- 微地址形成部件
- 微地址寄存器( $μ MAR $)
练习
24 24 24 位
4 4 4 个互斥类分 4 4 4 段
5 < 2 3 − 1 = 3 位 5 < 2^3 - 1 = 3位 5<23−1=3位
8 < 2 4 − 1 = 4 位 8 < 2^4 - 1 = 4位 8<24−1=4位
14 < 2 4 − 1 = 4 位 14 < 2^4 - 1 = 4位 14<24−1=4位
3 < 2 2 − 1 = 2 位 3 < 2^2 - 1 = 2位 3<22−1=2位
外部条件: 3 < 2 2 − 1 = 2 位 3 < 2^2 - 1 = 2位 3<22−1=2位
24 - 3 - 4 - 4 - 2 - 2 = 9位 地址
所以为 | 3 | 4 | 4 | 2 | 2 | 9 |
总容量为 2 9 ∗ 24 = 12 K 2^9 * 24 = 12K 29∗24=12K
练习
可得
b、i、j 互斥,无相同指令,2位可表示
e、f、h 互斥,2位可表示
a、c、d、g 分别 1 位
2 + 2 + 4 = 8 位
练习
50位
1024 = 10位 地址
直接编码得条件字段 8 位
操作控制字段 40 - 8 = 32 位
| 32 | 8 | 10 |
第九章
9.1 主机与外设
接口内可能有多个端口
9.2 程序查询
1.程序查询方式
- 程序查询方式是一种程序直接控制方式,这是主机与外设间进行信息交换的最简单方式,输入和输出完全是通过CPU执行程序来完成的。
2.程序中断方式
- 外设在作好输入/输出准备时,向主机发中断请求,主机接到请求后就暂时中止原来执行的程序,转去执行中断服务程序对外部请求进行处理,在中断处理完毕后返回原来的程序继续执行。
3.直接存储器存取(DMA)方式
- 当一组完成,再中断
4.I/O通道控制方式
- 通过通道控制程序运行
程序查询思想
- 由CPU执行一段输入、输出程序来实现主存与外设之间的数据传送方式,叫做程序直接控制方式。
- 根据外设的不同性质,这种传送方式又可分为无条件传送和程序查询方式两种。
9.3 中断(出题)
中断优点(d)
中断与调用子程序(d)
中断源和中断请求信号
中断源是指中断的来源,即任何引起计算机中断的事件
中断请求信号的传送
(1) 独立请求线
(2) 公共请求线
(3) 二维结构
中断优先级与判优方法
把全部中断源按中断的性质和处理的轻重缓急安排优先级,并进行排队。
CPU响应中断的条件
- CPU接收到中断请求信号
- CPU允许中断
- 一条指令执行完毕
中断隐指令
中断隐指令所完成的操作主要有:
(1) 保存断点
(2) 暂不允许中断
(3) 引出中断服务程序
中断周期
中断处理
中断现场的保护和恢复
中断全过程分为五个阶段:(d)
- 中断请求、中断判优、中断响应、中断处理、中断返回。
9.4 DMA(出题)
DMA为什么不能完全取代中断?
中断有处理异常事件的能力,DMA不能
DMA方式中需要用到中断方式在这里插入图片描述