计算机组成原理
1. 计算机组成原理
1.1 计算机组成原理概述
1.1.1 软硬件发展
机器字长:计算机一次整数运算所能处理的二进制位数
操作系统位数:其所依赖的指令集的位数
CPU:运算器+控制器
存储器+控制器+运算器
层次结构
虚拟机器 M4 高级语言机器
虚拟机器 M3 汇编语言机器
虚拟机器 M2 操作系统机器
传统机器 M1 机器语言机器
微程序机器 M0 微指令系统
存储器
存储器:MAR(地址寄存器)—>存储体<—>MDR(数据寄存器)
译码器:n位地址—>2^n 个存储单元
最大容量:2^n 存储字长
实际容量:存储单元个数 存储字长 bit
CPI 执行一条指令所需的时钟周期数
指令耗时: CPI x CPU时钟周期
MIPS 每秒可以执行多少百万条指令
数据通路带宽:数据总线一次所能并行传送信息的位数
吞吐量:系统在单位时间内处理请求的数量
响应时间:用户向计算机发出请求,到系统对该请求做出响应并获得它所需要的结果的等待时间
2. 进位计数法
2.1 BCD 码
BCD 码:4位二进制数表示1位十进制数,使二进制与十进制之间的转换得以快捷的进行。
8421码
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
---|---|---|---|---|---|---|---|---|---|
0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 |
5+8=13
0101+1000=1101, 1101+0110=0001 0011=13(加6强行进制)
余3码
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
---|---|---|---|---|---|---|---|---|---|
0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 | 1010 | 1011 | 1100 |
2421码
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
---|---|---|---|---|---|---|---|---|---|
0000 | 0001 | 0010 | 0011 | 0100 | 1011 | 1100 | 1101 | 1110 | 1111 |
大端模式:存储单元内先存储高位字节、后存储低位字节的顺序
小端模式:存储单元内先存储低位字节、后存储高位字节的顺序
字符串:ABCDEFGH
大端模式:
A B C D
E F G H
小端模式:
D C B A
H G F E
2.2 校验
码距:两个合法码字对应位上数字的不同位的个数
奇偶校验码:保证一段数据中出现奇数/偶数个1
海明码:k+n 位
循环冗余校验码 CRC:K+R位,模2余法,余数
[X]补 —> [-X] 补 连同符号位一起取反加1
补码: 正负数的相加,-2^n ~ 2^n-1, -1~ 1-2^-n
-2^n:1,0000, -1:1,0000
移码:符号位取反的补码,为了保证浮点数的机器0为全0,易于比较大小
2.3 符号数
2.3.1 溢出
设A的符号位是A_s,B的符号位是B_s,结果的符号位是V_s, V=A_s B_s ~V_s+~(A_s B_s)V_s
如果V=0,表示无溢出,如果V=1,表示有溢出。
双符号位:00表示正,11表示负,低位符号位参与移位,高位符号位表示符号
2.3.2 乘法
原码一位乘法:ACC, MQ:数值位 加法+右移,符号位:亦或
补码一位乘法:Booth算法
2.3.3 强制类型转换
有符号数<—>无符号数:不改变数据内容,改变解释方式
长位—>短位:高位截断,保留低位
短—>长: 符号扩展(负数补1,正数补0)
2.3.4 除法
原码不恢复余数法:
被除数减去除数 |x|+[-| y |]_补,若结果为正,商1,左移,再减去除数;若结果为负,商0,左移,再加上除数。若最终余数为负,需恢复余数。
补码加减交替法:被除数和除数同号,则被除数减去除数;异号则被除数加上除数。余数和除数同号,商1,余数左移1位减去除数;余数和除数异号,商0,余数左移1位加上除数,重复n次。商末位恒置1.
2.4 浮点数
阶码:常用补码或者移码表示
尾数:常用原码或者补码表示
规格化浮点数: 1/2<=|M|<=1,移码+原码,隐藏1
int->float:可能损失精度
float->int:可能溢出以及损失精度
2.5 基本逻辑符号
运算器:
MQ
ACC
ALU
X
PSW
2.5.1 加法器
一位全加器:
Ai, B_i, C{i-1} —> S_i, C_i
Si: 输入中有奇数个1 (异或)
C_i=(A+B)C{i-1}+AB: A和B中有一个1且C为1 或者 A和B都为1 才产生进位
串行加法器:只有一个全加器,逐位进行计算
并行加法器:串行进位的并行加法器、并行进位的并行加法器、4位CLA加法器(单级先行进位方式、多级先行进位方式)
3. 存储系统
存储器和CPU的协同工作:
- 存储器的简单模型以及寻址的概念
- 主存与CPU的连接
- 双口RAM和多模块存储器
- 高速缓冲存储器
- 虚拟存储器
半导体存储器:
- 静态SRAM、动态DRAM的工作原理
3.1 存储系统
层次化结构:CPU—Cache—主存—辅存
3.2 半导体存储芯片
地址线— 译码驱动—存储矩阵—读写电路—数据线
片选线—读写控制线
地址线:单向,10位
数据线:双向,4位。2^10*4位
片选线:选择芯片
易失性:静态SRAM和动态DRAM
DRAM的刷新:
RAM 读写周期:地址线—片选线—数据线
只读ROM:
3.3 主存连接原理
总容量 1KB
按字节寻址:1K个单元,每个单元1B
按字寻址:256个单元,每个单元4B
按半字寻址:512个单元,每个单元2B
按双字寻址:128个单元,每个单元8B
主存容量扩展—位扩展(8个1Kx1位—>1Kx8位)、字扩展(译码器:8个1Kx8位—>8Kx8位)
3.4 双口RAM和多模块存储器
存储器加快读写时间
双口RAM:空间并行
多模块存储器:时间并行,多体并行存储器,流水线
3.5 高速缓冲存储器
高速缓冲存储器:组相联映射:按号分组,组内随意放,某一主存块j按模Q映射到缓存的第i组的任意一块
地址: 主存字块标记,组地址,字块内地址
替换算法: 近期最少使用算法(LRU), 最不经常使用算法(LFU)
写策略:写回法+写分配法、全写法+非写分配法
3.6 虚拟存储器
段页式虚拟存储器:段号+段内页号+页内地址
4. 指令系统
指令格式
指令的寻址方式
CISC和RISC
4.1 指令格式
指令基本格式
地址码的个数
定长操作码和扩展操作码
操作类型
指令基本格式
指令格式:操作码字段(OP), 地址码字段(A)
地址码字段(A):四地址指令,三地址指令,二地址指令,一地址指令,零地址指令
扩展操作码
15条四地址指令:xxxx,xxxx,xxxx,xxxx,xxxx
15条三地址指令:1111,xxxx,xxxx,xxxx,xxxx
15条二地址指令:1111,1111,xxxx,xxxx,xxxx
15条一地址指令:1111,1111,1111,xxxx,xxxx
16条零地址指令:1111,1111,1111,1111,xxxx
操作类型
转移操作:陷阱与陷阱指令
4.2 寻址方式
寻址方式:
- 指令寻址
- 数据寻址
指令寻址
程序计数器PC给出:PC+1
转移指令:跳跃寻址
数据寻址
寻址特征+形式地址:直接寻址、间接寻址、寄存器寻址(R)、偏移寻址、堆栈寻址
偏移寻址:基址寻址(基址寄存器)、变址寻址(变址寄存器)、相对寻址(程序计数器)
4.3 CISC和RISC
CISC:一条指令完成一个复杂的基本功能,x86
RISC:一条指令完成一个基本功能,ARM,手机、平板
5. 中央处理器
CPU的功能和结构
指令执行过程
数据通路的功能和基本结构
控制器的功能和工作原理
指令流水线
5.1 CPU的功能和结构
CPU=运算器+控制器
控制器的功能:取指令,分析指令,执行指令,中断处理
运算器:算术逻辑单元、通用寄存器组、暂存寄存器(主存的数据)
5.2 指令执行过程
时钟周期:
机器周期:若干个时钟周期
指令周期:若干个机器周期,取指周期+间址周期+执行周期+中断周期
数据流:数据总线+地址总线+控制总线
指令执行方案:流水线方案
5.3 数据通路的功能和基本结构
数据通路:数据在功能部件之间传送的路径
系统总线、内部总线
CPU内部单总线
CPU内部多总线
专用数据通路方式
主存数据寄存器MDR、主存地址寄存器MAR、程序寄存器PC、指令分析器IR、累加寄存器ACC
5.4 控制器的功能和工作原理
控制器的功能:
从主存中取出一条指令
对指令进行译码
指挥并控制CPU、主存等设备之间的数据流动方向
CU的设计:硬布线、微程序 ROM
CPU控制方式:同步控制方式、异步控制方式
一条机器指令对应一个微程序
微程序:ROM、微指令,下地址
IF:取址
ID:译码
EX:执行
M:数据
WB:写回
影响流水线的因素:结构相关、数据相关、控制相关
6. 总线
总线概述
总线仲裁
总线操作与定时
总线标准
6.1 总线概述
总线:一组能为多个部件时共享的公共信息传送线路
总线:片内总线、系统总线、通信总线
系统总线:单总线(系统总线)、双总线(I/O总线)、三总线(I/O总线,DMA总线)、四总线(桥,CPU总线、系统总线、高速总线、扩充总线)
总线仲裁:集中仲裁方式
即插即用、热插拔
7. 输入输出系统
接口—端口
DMA