[豪の学习笔记] 软考中级备考 基础复习#1
跟学视频:学以致知Learning - 软件设计师 基础阶段|考点理论精讲
Chapter 1 - 计算机系统知识
1 - 数值及其转换
二进制(B)、八进制(O)、十进制(D)、十六进制(H)
十进制转任意进制
二进制转十六进制
2 - 计算机内数据的表示
真值与机器数
真值:符合人类习惯的数字
机器数:各种数据在计算机中表示的形式称为机器数,其特点是数的符号用0、1表示,即正负号需要被“数字化”
原码
原码:用数值部分表示真值的绝对值,符号位“0/1”对应“正/负”
若机器字长n+1位,原码整数的表示范围:-(2^n - 1) <= x <= 2^n - 1
若机器字长为n+1位,则数值部分(尾数)占n位
真值0有+0和-0两种形式
反码
反码:若符号位为0,则反码与原码相同;若符号位为1,则数值位全部取反
若机器字长n+1位,反码整数的表示范围:-(2^n - 1) <= x <= 2^n - 1
真值0有+0和-0两种形式
补码
补码:正数的补码 = 原码 ;负数的补码 = 反码末位+1(要考虑进位)
若机器字长n+1位,补码整数的表示范围:-2^n <= x <= 2^n - 1
补码的真值0只有一种表示形式
移码
移码:在补码的基础上将符号位取反
移码只能用于表示整数
若机器字长n+1位,移码整数的表示范围:-2^n <= x <= 2^n - 1
定点数
定点数就是小数点的位置固定不变的数。小数点的位置通常有两种约定方式:定点整数(纯整数,小数点在最低有效数值位之后)和定点小数(纯小数,小数点在最高有效数值位之前)
浮点数
浮点数是小数点位置不固定的数,它能表示更大范围的数。在浮点表示法中,阶码通常为带符号的纯整数,尾数为带符号的纯小数
其中,M为尾数,R为基数,E为阶码
阶码,决定浮点数所能表示的数值范围
尾数,决定浮点数所能表示的数值精度
校验码
校验码:用来检测传送的数据是否出错
码距:指一个编码系统中任意两个合法编码之间至少有多少个二进制位不同
奇偶校验和循环冗余校验码
奇偶校验基本思想是:通过在编码中增加一位校验位来使编码中1的数为奇数(奇校验)或者为偶数(偶校验)从而使码距变为2。对于奇校验,它可以检测代码中奇数位出错的编码,但不能发现偶数位出错的情况,即当合法编码中奇数位发生了错误,也就是编码中的1变成0或0变成1,则该编码中1的个数的奇偶性就发生了变化,从而可以发现错误。
循环冗余校验码CRC广泛应用于数据通信领域和磁介质存储系统中。它利用生成多项式为k个数据位产生r个校验位来进行编码,其编码长度为k+r
海明码
海明码的构成方法是:在数据位之间插入k个校验码,通过扩大码距来实现检错和纠错
设数据位是n位,校验位是k位,则n和k必须满足:2^k - 1 >= n + k
3 - 计算机系统组成(五大部件)
冯诺依曼计算机特点:
1.计算机由五大部件组成
2.指令和数据以同等地位存于存储器,可按地址寻访
3.指令和数据用二进制表示
4.指令由操作码和地址码组成
5.存储程序
6.以运算器为中心
输入/输出设备与存储器之间的数据传送通过运算器完成
主存储器
存储单元:每个存储单元存放一串二进制代码
存储字(word):存储单元中二进制代码的组合
存储字长:存储单元中二进制代码的位数
存储元:即存储二进制的电子元件,每个存储元可存1bit
MAR:地址寄存器
MDR:数据寄存器
例:MAR = 4位,则总共有2*2*2*2个存储单元;
MDR = 16位,则每个存储单元可存放16bit,一个字(word) = 16bit
CPU - 运算器
运算器:用于实现算术运算、逻辑运算
ACC:累加器,用于存放操作数或运算结果
MQ:乘商寄存器,在乘除运算时用于存放操作数或运算结果
X:通用操作数寄存器,用于存放操作数,最快
ALU:算数逻辑单元,通过内部复杂的电路实现算术运算、逻辑运算
DR:数据缓存寄存器
PSW:状态条件寄存器,用来保存指令运行标志
CPU - 控制器
CU:控制单元,分析指令,给出控制信号
IR:指令寄存器,存放当前执行的指令
PC:程序计数器,存放下一条指令地址,有自动加1功能
AR:地址寄存器,保存当前CPU所访问的内存单元0地址
ID:指令译码器,对操作码进行分析
完成一条指令:取指令、分析指令、执行指令
4 - 计算机体系结构(Flynn分类法)
5 - 指令系统
指令(又称机器指令):是指计算机执行某种操作的命令,是计算机运行的最小功能单位
一台计算机的所有指令的集合构成该机的指令系统,也称为指令集
一条指令就是机器语言的一个语句,它是一组有意义的二进制代码
一条指令通常要包括操作码字段和地址码字段两部分:
操作码:指明操作的类型
地址码:主要指明操作数及运算结果存放的地址
七种寻址方式
寻找指令中操作数有效地址的方式称为寻址方式
- 立即寻址:操作数作为指令的一部分直接写在指令中,这种操作数称为立即数
- 寄存器寻址:指令所要的操作数已存储在某寄存器中,或把目标操作数存入寄存器
- 直接寻址:指令所要的操作数存放在内存中,在指令中直接给出该操作数的有效地址
- 寄存器间接寻址:操作数在存储器中,操作数的有效地址用SI、DI、BX和BP四个寄存器之一来指定
- 寄存器相对寻址:操作数在存储器中,其有效地址是一个基址寄存器或变址寄存器中的内容和指令中的8位/16位偏移量之和
- 基址加变址寻址方式:操作数在存储器中,其有效地址是一个基址寄存器和一个变址寄存器的内容之和
- 相对基址加变址寻址:操作数在存储器中,其有效地址是一个基址寄存器的值、一个变址寄存器的值和指令中的8位/16位偏移量之和
复杂指令集计算机CISC 与 精简指令集计算机RISC
CISC (Complex) | RISC(Reduced) | |
---|---|---|
指令系统 | 复杂、庞大 | 简单、精简 |
指令数目 | 一般大于200条 | 一般小于100条 |
指令字长 | 不固定 | 定长 |
可访存指令 | 不加限制 | 只有Load/Store指令 |
各种指令执行时间 | 相差较大 | 绝大多数一个周期内完成 |
各种指令使用频度 | 相差较大 | 都比较常用 |
通用寄存器数量 | 较少 | 多 |
控制方式 | 绝大多数为微程序控制 | 绝大多数为组合逻辑控制 |
指令流水线 | 可以通过一定方式实现 | 必须实现 |
指令的流水处理
指令控制方式有顺序方式、重叠方式和流水方式三种
在概念上,“流水”可以看成是“重叠”的延伸;差别仅在于“一次重叠”只是把一条指令解释分解为两个子过程,而“流水”则是分解为更多的子过程
流水线的计算
流水线周期为执行时间最长的一段
流水线计算公式:1条指令执行时间 + (指令条数 - 1) * 流水线周期
流水线的吞吐率(Though Put rate,TP):是指在单位时间内流水线所完成的任务数量或输出的结果数量。计算流水线吞吐率的最基本公式如下:
完成同样一批任务,不使用流水线所用的时间与使用流水线所用的时间之比称为流水线的加速比。计算流水线加速比的基本公式如下:
6 - 输入输出技术
CPU与外设之间的数据传送方式
- 直接程序控制方式
直接程序控制方式是指在完成数据的输入/输出中,整个输入/输出过程是在CPU执行程序的控制下完成的。这种方式还可以分为以下两种:
(1)无条件传送方式:无条件地与CPU交换数据
(2)程序查询方式:先通过CPU查询外设状态,准备好之后再与CPU交换数据
- 中断方式
中断方式利用中断机制,使I/O系统在与外设交换数据时,CPU无需等待,也不必查询I/O状态,即可以抽身出来处理其他任务,因此提高了系统效率
- 直接存储器存取方式
直接存储器存取(Direct Memory Access,DMA)方式是在存储器与I/O设备间直接传送数据,即在内存与I/O设备之间传送一个数据块的过程中,不需要CPU的任何干涉,是一种完全由DMA硬件完成I/O操作的方式
- 输入/输出处理机
输入/输出处理机(IOP)是一个专用处理机,用于完成主机的输入/输出操作。IOP根据主机的I/O命令,完成对外设数据的输入/输出
7 - 存储系统
层次结构
主存—辅存:实现虚拟存储系统,解决了主存容量不够的问题
Cache—主存:解决了主存与CPU速度不匹配的问题
分类
按位置分类,可分为内存和外存
- 内存(主存):用来存储当前运行所需要的程序和数据,速度快,容量小
- 外存(辅存):用来存储当前不参与运行的数据,容量大但速度慢
按材料分类,可分为磁存储器、半导体存储器和光存储器
- 磁存储器:用磁性介质做成,如磁芯、磁泡、磁盘、磁带等
- 半导体存储器:根据所用元件又可分为双极型和MOS型两类;根据是否需要刷新又可分为静态和动态两类
- 光存储器:由光学、电学和机械部件等组成,如光盘存储器
按工作方式,可分为读/写存储器和只读存储器
- 读/写存储器(RAM)它指既能读取数据,也能存入数据的存储器
- 只读存储器(ROM)它指工作过程中仅能读取的存储器
根据数据的写入方式,又可以细分为ROM、PROM、EPROM和EEPROM等类型
-
固定只读存储器(ROM):这种存储器是厂家生产时就写好数据的,其内容只能读出,不能改变。一般用于存放系统程序BIOS和用于微程序控制
-
可编程的只读存储器(PROM):其中的内容可以由用户一次性地写入,写入后不能再修改
-
可擦除可编程的只读存储器(EPROM):其中的内容既可以读出,也可以由用户写入,写入后还可以修改,紫外线照射擦除信息
-
电擦除可编程的只读存储器(EEPROM):与EPROM相似,EEPROM中的内容既可以读出,也可以进行改写,电擦除的方法进行数据的改写
-
闪速存储器(Flash Memory):简称闪存,闪存的特性介于EPROM和EEPROM之间,类似于EEPROM,也可使用电信号进行信息的擦除操作。整块闪存可以在数秒内删除,速度远快于EPROM
高速缓存Cache
高速缓存Cache是位于CPU和主存之间的高速存储子系统
采用高速缓存的主要目的是:提高存储器的平均访问速度,使存储器的速度与CPU的速度相匹配
Cache的存在对程序员是透明的,其地址变换和数据块的替换算法均由硬件实现
通常Cache被集成到CPU内,以提高访问速度,其特点是容量小、速度快、成本高
Cache的组成
Cache存储器部分:用来存放主存的部分复制信息
控制部分:判断CPU要访问的信息是否在Cache存储器中,若在即为命中,若不在则没有命中
Cache的三种地址映像
因为处理机都是按主存地址访问的,而应从Cache存储器中读写信息,因此就需要地址映像,即把主存中的地址映射成Cache存储器中的地址。地址映像方法有三种
1、直接映像:就是主存的块与Cache中块的对应关系是固定的。主存中的块只能存放在Cache存储器的相同块号中。因此,只要主存地址中的主存区号与Cache中的主存区号相同,则表明访问Cache命中
这种方式的优点是地址变换很简单,缺点是灵活性差
2、全相联映像:允许主存的任一块可以调入Cache的任一块的空间。在地址变换时,将主存地址高位表示的主存块号与Cache中的主存块号进行比较,若相同则为命中
这种方式的优点是主存的块调入Cache的位置不受限制,十分灵活。其缺点是无法从主存块号中直接获得Cache的块号,变换比较复杂,速度比较慢
3、组相联映像:这种方式是前面两种方式的折中。具体方法是将Cache先分成组再分块。组相联映像就是组间采用直接映像方式,而组内的块采用全相联映像方式
Cache的性能分析
Cache相关例题
主存的扩展
主存的编址
计算机组成原理中:1K = 2^10、1M = 2^20、1G = 2^30
虚拟存储器
虚拟存储器是由主存、辅存、存储管理单元及操作系统中的存储管理软件组成的存储系统。程序员使用该存储系统时,可以使用的内存空间可远远大于主存的物理空间,但实际上并不存在那么大的主存,故称其为虚拟存储器
虚拟存储器使存储系统既具有相当于外存的容量,又具有接近于主存的访问速度
磁盘存储器
8 - 总线系统
1、片内总线(内部总线)
片内总线是芯片内部的总线。它是CPU芯片内部寄存器与寄存器之间、寄存器与ALU之间的公共连接线
2、系统总线
系统总线是计算机系统内各功能部件(CPU、主存、I/O接口)之间相互连接的总线。按系统总线传输信息内容的不同,又可分为三类:数据总线、地址总线和控制总线
3、通信总线(外部总线)
用于设备一级的互连,计算机可通过该总线和其他设备进行信息与数据交换
9 - 磁盘阵列技术RAID
磁盘阵列由多台磁盘存储器组成,是快速、大容量且高可靠的外存子系统。现在常见的独立冗余磁盘阵列RAID就是一种由多块独立磁盘构成的冗余阵列。RAID技术分为几种不同的等级,分别可以提供不同的速度、安全性和性价比
10 - 计算机可靠性
计算机系统的可靠性是指从它开始运行(t=0)到某个时刻t这段时间内能正常运行的概率,用R(t)表示
串联部件的可靠度 = 各部件的可靠度的乘积
并联部件的可靠度 = 1 - 部件失效率的乘积