计算机组成原理——考试知识点梳理
时间:2022-09-19 01:00:00
计算机组成原理
- 第一章 计算机系统概论
-
- 1.1 计算机开发过程
- 1.2 计算机硬件的基本组成
- 1.3 各硬件部件
- 1.4 计算机系统的层次结构
- 1.5 计算机性能指标
- 1.6 软件分类与工作流程
- 第二章 操作方法和操作器
-
- 2.1 数值与编码
- 2.2 定点数的表示和操作
- 2.3 浮点数的表示和运算
- 2.4 算术逻辑单元ALU
- 第三章 存储系统
-
- 3.1 存储系统的基本概念
- 3.2 半导体随机存储器
- 3.3 主存储器和CPU的连接
- 3.4 高速缓冲存储器
- 第四章 指令系统
- 第五章 中央处理器
- 第六章 总线系统
- 第七章 外围设备
- 第八章 输入输出系统
第一章 计算机系统概论
1.1 计算机开发过程
1.1.1 什么是计算机系统?
硬件 软件
1.1.2 硬件的发展
第一代:电子管时代
第二代:晶体管时代
第三代:中小型集成电路时代
第四代:大规模集成电路时代
1.1.3 软件的发展
1.1.4 目前的发展趋势
- 更微型,多用途
- 更巨型、超高速
1.2 计算机硬件的基本组成
1.2.1五大部分
- 输入设备:将信息转换成机器能识别的形式
- 输出设备:将结果转化为熟悉的形式
- 存储数据和程序
- 操作员:算术操作、逻辑操作
- 控制器:指挥各部件,使程序运行
1.2.2 冯·若依曼计算机
存储程序概念:以二进制代码的形式提前将指令输入计算机的主存储器,并按位置顺序执行。
冯·诺依曼计算机设计思想:按地址顺序执行存储程序。
软硬逻辑在计算机系统中等效。
冯机特点:
①五部分组成:I/O、存储器、计算器、控制器
②指令与数据以同等地位存于存储器,可按地址寻访
③指令和数据都是二进制的表示
④指令由操作代码和地址代码组成
⑤存储程序
⑥以运算器为中心,IO通过运算器与存储器相连
1.2.3 现代计算机结构
以存储器为中心
CPU=运算器 控制器
1.3 各硬件部件
1.3.1 主存
- 存储体
存储单元:存储器有多个单元,每个存储单元存储一串二进制代码
存储字:存储单元中二进制代码的组合
存储字长:单元中二进制代码位数
存储元:存储二进制电子元件(电容器),每个可存储1bit。 - MAR
地址寄存器:用于指示要读写的存储单元。
其位数反映了存储单元的数量 - MDR
数据寄存器:临时存储要读写的数据
其位数=存储字长
1.3.2 运算器
- ACC
累计计数器:存储操作数、操作结果 - MQ
乘客寄存器:乘法和除法使用 - X
通用寄存器:存储操作数 - ALU
算数逻辑单元:用电路实现各种算术操作,逻辑操作
1.3.3 控制器
- PC
程序计数器:存储下一个指令的地址 - IR
指令寄存器:存储当前执行的指令 - CU
控制单元:分析指令,给出控制信号
1.4 计算机系统的层次结构
1.4.1 五层
M四、高级语言机
编译程序翻译汇编语言
M三、汇编语言机
编程翻译
M2.操作系统机器
向上提供广义指令系统调用
M1:传统机器
执行二进制指令
M0:微程序机
硬件执行微指令
1.4.2 三级语言
-
高级语言、汇编语言、机器语言
-
编译程序-将高级语言翻译成汇编语言,或直接翻译成机器语言
-
汇编程序-将汇编语言翻译成机器语言
-
解释程序-高级语言翻译为机器语言(翻译一句执行一句)
翻译程序统称为汇编、编译和解释
1.5 计算机性能指标
1.5.1 存储容量
MAR位数反映了存储单元的数量
MDR 每个存储单元的大小
1.5.2 CPU
时钟周期:CPU最小单位时间
主频:1/时钟周期,Hz
CPI:执行指令所使用的周期数
CPU执行时间:操作程序所需的时间=(指令条数IC*CPI)/主频
MIPS:每秒执行多少百万条指令?=主频/平均CPI
MFOPS:每秒执行多少百万浮点运算?
1.5.3 其他
吞吐量:系统在单位时间内处理请求的数量,取决于主存存取周期
响应时间:发送请求得到结果的时差,包括CPU时间和等待时间
1.6 软件分类与工作流程
1.6.1 软件分类
-
系统软件
OS,语言处理、服务程序、数据库管理系统
程序用于提高使用效率,发挥和扩大计算机功能和用途。 -
应用软件
工程设计、数据处理、自动控制、企业管理
编制的程序用于解决某些问题。
1.6.2 工作过程
- 程序和数据转入主存,程序从起始地址执行
- 第一个指令从起始地址取出,译码执行并计算下一个指令
- 取出下一条指令,再取值,译码,循环往复,直到结束
第二章 操作方法和操作器
2.1 数值与编码
2.1.1 进位计数制
2.1.2 真值和机器数
真实值:机器数表示的实际值
2.1.3 BCD码
- 8421码
每四个二进制对应一个十进制,每个权值对应8421
0000~1001 分别对应 0~9
如果加法后溢出,则需要 0110修正(强制进位) - 余3码
即8421码 (0011)3 - 2421码
2421对应权值
0~4 最高位为0,5~9 最高位为1
2.1.4 字符与字符串
-
ASCII码
七位二进制表示字符代码,奇偶校准位在最高位置
在字节中存储一个字符,但多余的最高位为0
共128字符,0~31、127 控制/通信字符32~126 可印字符 -
汉字表示和编码
区位码:四位十进制数,前两位为区,后两位为位
国际码:区位码 2020H
内码:国际码 8080H -
字符串
从低地址到高地址逐字存储,常用 ‘\0’ 作为结束标志
对于多字节数据(汉字),可/小端存储模式
大端模式:低地址单元存储最高有效的数据字节
小端模式:高地址单元存储数据最高有效字节
2.1.5 校验码
-
奇偶校验码
码字:由若干代码组成的一个字
码距:各合法码字间的最小距离 -
海明码
-
循环冗余校验码
2.2 定点数的表示和运算
原码除法:
1.恢复余数法
实现方法:
ACC 存储 被除数/余数
ALU实现运算
MQ 存取 商 初试默认全零 每次默认商1
X通用寄存器 存储 除数
过程:每次都商1 即被除数-除数负值的补码 若结果符号位为负,就加正值补码恢复原来的被除数/余数 重新商0 再做减法,逻辑左移 循环结束
2.加减交替法
硬件存放与1相同
过程:若新余数为负 则商0,余数左移并+除数正值补码 ,若为正值,则商1余数左移并+余数负值补码(等价余数左移-除数),最后若余数为负,需商0并+正值补码得到正确的余数。
补码除法:
加减交替法:
判断被除数和除数是否同号 ,若同号 商1减去除数 ,反之商0 加上除数
下轮余数判断相同
强制类型转换
1.无符号数与有符号数转化,不改变内容,改变解释方式
2.长整数变短整数,高位截断,低位保留
3.短整数变长整数,符号扩展有符号数符号位为1,前面补1;无符号数补位补0
数据存储与排列
大小端模式
大端方式:低位地址存高位更方便人类阅读
小端方式:低位地址存低位更方便机器处理
边界对齐
字=存储字长
半字=1/2字
1字节=8bit
每次访存只能读/写1个字
边界对齐空间换时间,空间填充
2.3 浮点数的表示和运算
浮点数表示
阶码和尾数
阶码包括阶符和阶码的数值部分
尾数包括数符和尾数的数值部分
浮点数的真值:N=r^E*M
r阶码的底一般为2
阶码E反映浮点数的表示范围以及小数点实际位置
尾数M数值部分位数n反映浮点数的精度
尾数规格化
尾数最高位为0:尾数算数左移一位,阶码-1,直到尾数最高位是有效值(左规)
右规:当浮点数运算结果尾数出现溢出时,将尾数算数右移一位,阶码+1
原码尾数规格化
正数为0.1xxxx… 其最大值为0.1111…1;最小值为0.10…0。
表示范围为:1/2<=M<=1-2^-n.
负数为1.1xxxx… 其最大值为1.100…0;最小值为1.11…1。
表示范围为:-(1-2^-n)<=M<=1/2
补码尾数规格化
正数为0.1xxxx… 其最大值为0.1111…1;最小值为0.10…0。
表示范围为:1/2<=M<=1-2^-n.
负数为1.0xxxx… 其最大值为1.011…1;最小值为1.00…0。
表示范围为:-1 <= M <= -(1/2+2^-n)
IEEE 754
移码:补码基础将符号位取反
移码定义为:移码=真值+偏置值
偏置值=2^(n-1) 此时真值取0,移码为1000 0000
偏置值=2^(n-1) -1 此时真值取1,移码为1000 0000
标准:数符 阶码,移码表示 尾数数值,原码表示(隐藏表示最高位1,表示1.M)
2.4 算术逻辑单元ALU
第三章 存储系统
3.1 存储系统的基本概念
3.1.1 层次结构
- 高速缓存(cache)
- 主存储器(主存、内存)
- 辅助存储器(辅存、外存)
- 主存——辅存:实现了虚拟存储系统,解决存储容量不够的问题
- cache——主存:解决了主存与CPU速度不匹配的问题
3.1.2 分类
- 按层次结构
- 按存储介质
半导体存储器、磁表面存储器、光存储器 - 按存取方式
随机存取存储器RAM(如内存)、顺序存取存储器SAM(如磁带)、直接存取存储器DAM(如磁盘)、相联存储器CAM(可按内容访问,如快表) - 按信息可更改性
读/写存储器、只读存储器ROM - 断电信息是否消失
易失性存储器(如内存、cache)、非易失性存储器(如磁盘、光盘) - 信息读出后是否被破坏
破坏性读出(如DRAM芯片)、非破坏性读出(如SRAM芯片、磁盘)
3.1.3 存储性能指标
- 存储容量=存储字长*字长
- 单位成本=总成本/总容量
- 数据传输率(主存带宽)=数据的宽度/存储周期
- 存取周期=存储时间+恢复时间
3.2 半导体随机存储器
3.2.1 半导体存储芯片
- 存储矩阵:大量相同的位存储单元组成
- 译码驱动:地址信号翻译成对应的存储单元的选通信号
- 读写电路:完成读写操作
- 读/写控制线:决定芯片是R/W
- 片选线:确定哪个芯片被选中
- 地址线:单项输入,位数与存储字的个数有关
- 数据线:双向,位数与读出或写入的数据位数有关
- 数据线数与地址线数共同反映存储芯片容量大小
- 半导体随机存储器根据存储原理不同分为SRAM高速缓存与DRAM主存
3.2.2 SRAM与DRAM
SRAM
- 使用双稳态触发器MOS记忆信息
- 非破坏性读出、易失性存储器
- 存取速度快、集成度低、功耗大、成本高、常用来组成高速缓存
- 同时送行列地址
DRAM
-
利用电荷存储信息
-
破坏性读出、易失性存储器
-
存取速度慢、集成度高、功耗低、容量大、成本低,常用来组成主存
-
分两次送行列地址(地址线复用)
-
刷新方法 DRAM特有
①刷新单位是行
②集中刷新
刷新时间固定 存在死区
读写不受刷新影响,存取速度快
死区不能访问存储器
③分散刷新
将每行刷新分散到各个工作周期
没有死区
存取周期长,降低整机速度
④异步刷新
集中与分散的结合
缩短死时间、又提高整机速度
⑤透明刷新
刷新安排在译码阶段,不存在死亡时间 -
存储器的读写周期
RAM读周期:两次连续读操作必须间隔时间
RAM写周期:数据总线的信息能可靠的写入存储器
3.2.3 只读存储器ROM
ROM特点
- 随机存储、非易失性存储器
- 结构简单、位密度比可读写存储器高
ROM类型
-
掩膜式只读存储器MROM:真只读,不可重写
可靠性高、集成度高、价格便宜、灵活性差 -
可编程只读存储器PROM:写一次不可修改
-
可擦除可编程只读寄存器:EPROM:可以多次重写
紫外线擦除所有信息UVEPROM
电擦除特定信息EEPROM -
闪速存储器Flash Memory:可以多次快速擦除重写(U盘、SD卡)
可长期保存信息、可重写
价格便宜、集成度高
擦写速度快 -
固态硬盘SSD:可以多次快速擦除重写
3.3 主存储器和CPU的连接
主存容量的扩展:
- 字扩展:多个存储芯片串联 4片16K8位 = 64K8位
- 位扩展:多个存储芯片并联 8片8K1位 = 64K8位
- 字位扩展:增加存储字数量,增加存储字长
存储器与CPU连接
- 地址线选择:芯片容量不同地址线不同,CPU低位直接相连,高位做扩充芯片
- 数据线连接:CPU线数与存储器线数相同直接连接,不同就位扩展
- 读写线连接:高电平为读,低电平为写
- 片选线连接:决定哪一片存储芯片被选中
3.4 高速缓冲存储器
空间局部性原理:将要使用的信息是空间附近的信息
时间局部性原理:将要使用的信息是现在使用的信息
3.4.1 cache与主存映射方式
-
全相联映射
主存数据可以任意存放
增加一个有效位 -
直接映射
每个主存块 只能放到一个特定的位置
cache块号=主存块号%cache块数
标记+行号/主存块号 块长
空间利用不充分,命中率降低 -
组相联映射
分若干组,可以放到组内任意位置
组号=主存块号%组数
标记+组号/主存块号 块长
3.4.2 cache 替换算法
直接映射直接替换,不需算法,算法以全相联为例
- 随机算法RAND:随机确定替换的cache块
实现简单、但没有局部性原理,命中率低 - 先进先出算法FIFO:替换最早进入的
容易实现、但没有局部性原理,命中率低 - 近期最少使用LRU:设置一个计数器记录多久没有访问,替换计数器最大的
需要注意的是当命中时,命中行的计数器清零,且比其低的计数器加1,其余不变 - 最不经常使用算法LFU:替换计数器记录访问次数最少的
不符合局部性原理(一段时间一直使用将次数升高,但后续不再使用却因权值太高不好替换)不如LRU
3.4.3 cache 写策略
写命中
写不命中
多级cache(通常分为三级)