上午考试
第一章、计算机组成原理与体系结构(6分)
1、数据的表示
1.1、 x进制转化为10进制转换(按权展开法)
1、x进制转化为10进制
2、注意
(1)x进制转10进制,底数就是x,也就是权
(2)如果出现0,则不用计算0
3、例子

1.2、10进制转换为x进制(使用短除法)
1、把这个108十进制转换为2进制,使用短除法

2、注意
(1)如果是x进制,则除数为x进制
(2)最后取余等于0或者等于本身
(3)要记余数,最后余数取反
(4)什么时候停止:被除数小于权(除数)
1.3、技巧
1.3.1、二进制转换为八进制
1、三个二进制对应一个八进制
2、1个八进制对应3个二进制
1.3.2、二进制转换为十六进制
1、十六进制中:A=10,B=11,C=12,D=13,E=14,
2、十进制中16==十六进制中的10。
3、4个二进制对应一个十六进制位。
1.4、原码、反码、补码、移码
1、正数的原码、反码、补码都是其本身
2、负数原码—>补码:在原码全部取反+1(补码—>原码也相同)
注意
(1)如果不够符号位,直接补0
(2)如果为负数,首位(符号位)为1
(3)如果为正数,首位(符号位)为0
1.4.1、反码
1、反码正数与原码相同
2、反码负数,除符号位,其他位数取反(1==0,0==1)
1.4.2、补码
1、补码正数与原码相同
2、补码是在反码的基础上+1
3、使用补码进行加减法运算
1.4.3、移码
1、移码是将补码的符号位取反
2、数值的表示范围
2.1、定点小数、定点整数
1、定点整数
1、就是小数点在数字的最右边(一般数学都忽略)
2、小数点不占用,位数。所以就不会影响数据
2、定点小数
1、就是小数点在符号后面。
2、小数点不占用,位数。所以就不会影响数据
2.2、范围
1、学会带入计算就好
2、最高位是符号位,不参与计算

补充:
1、8个比特位=1个字节,一个字节的范围是-127~127
2、补码和移码少一个数,为0
2.3、浮点数运算
1、浮点数表示

2、特点
-
1、一般尾数用补码,阶码用移码,这里的解码也就是指数
-
2、阶码的位数决定数的表示方式,位数越多,范围越大(就是x次方)
-
3、尾数的位数决定数的有效精度,位数月多越精确(小数点“.”后面的数)
-
4、对阶时,小数向大数看齐(两个数,阶码要一样,就小的阶码,对大的阶码。)
-
5、对阶是通过小数的尾数右移实现
3、运算过程
1、对阶
2、尾数计算
3、结果格式化
4、对阶例子
(1)例子对阶

(2)浮点数存储

3、计算机结构
3.1、计算机五大件
3.1.1、CPU
1、组成:运算器、控制器
2、运算器内容
(1)算术逻辑单元ALU:数据的算术运算和逻辑运算
(2)累加寄存器AC:通用寄存器,为ALU提供一个工作区,暂存数据
(3)数据缓冲存储器DR:在内存中,暂存指令或数据
(4)状态条件寄存器:例如进位、溢出。特殊在软考中,有时是运算器中、有时是在控制器中,存状态标志与控制标志
3、控制器
(1)程序计数器PC:存程序中指令多少数,CPU将要使用的下一条地址。
(2)指令寄存器IR:存储即将执行的指令
(3)地址寄存器DR:记录CPU所要访问的地址
(4)指令译码器IR:堆指令中的操作码字段继续努力分析和解释
(5)时序部件:提供时序的顺序
(6)帮记:①记录有多少条代码,和下一条的代码,②记录当前代码执行,③要怎么翻译,④是什么时间顺序
3.1.2、存储
1、内部存储和、外部存储
2、硬盘为外部辅助存储
4、计算机体系结构分类—Flynn
4.1、分类
S:single
I:instruct
S:stream
D:datea
| 体系结构类型 | 结构 | 关键特征 | 代表 |
|---|---|---|---|
| 单指令流单数据流SISD | 控制部分:1个、处理器:1个、主存模块:1个 | 单处理器系统 | |
| 单指令流多数据流SIMD | 控制部分:1个、处理器:多个、主存模块:多个 | 各处理器以异步的形式执行同一条指令 | 并行处理机、阵列处理机、超级向量处理机 |
| 多指令流单数据流MISD | 控制部分:多个、处理器:1个、主存模块:多个 | 被证明不可能,至少是不实际 | 目前没有,有文献称流水线计算机为此类 |
| 多指令流多数据流MIMD | 控制部分:多个、处理器:多个、主存模块:多个 | 能够实现作业、任务、指令等各级全面并行 | 多处理机系统多计算机 |
5、指令的基本概念
1、一条指令就是机器语言的一个语句,它是一组有意义的二进制代码,指令的基本格式如下
| 操作码字段 | 地址码字段 |
|---|
2、操作码:要执行的内容。例如加法、减法、取数、存数等。
3、地址码字段:包含各操作数的地址及操作结果的存放地址(操作数地址+结果存放地址)
- 地址结构的角度:三地址指令、二地址指令、一地址指令和零地址指令。
- 如图
6、寻址方式
1、立即寻址方式
1、特点:操作数直接在指令中,速度快,灵活性差(珠宝就在面前,直接拿)
2、直接寻址方式
1、指令中存放的是操作数的地址(珠宝放在保险箱里,我们通过钥匙来打开箱子得到珠宝)
3、间接寻址方式
1、指令里存放了一个地址,这个地址对应的内容就是操作数的地址(珠宝放在第1个保险箱里,我们把钥匙放在第2个保险箱里,我们用第二个钥匙来获取珠宝)
2、我们就相当于要寻找两次地址
3、如图

4、寄存器寻址方式
1、就是寄存器存放操作数
2、和上面的直接寻址方式一样,只是这个放在寄存器中
3、图例

5、寄存器间接寻址方式
1、寄存器内存中存放的是操作数的地址
2、和上面的间接寻址方式一样,只是这个放在寄存器中
3、图例

7、CISC与RISC
1、内容
1、CISC:是复杂指令级计算器
2、RISC是精简指令级计算器
3、区别
| 指令系统类型 | 指令 | 寻址方式 | 实现方式 | 其他 |
|---|---|---|---|---|
| CISC(复杂) | 数量多,使用频率差别大,可变长格式 | 支持多种 | 微程序控制技术(微码) | 研制周期长 |
| RISC(精简) | 数量少,使用频率接近,定长格式,大部分为单周期指令,操作寄存器,只有Load/Store操作内存 | 支持方式少 | 增加了通用寄存器;硬布线逻辑控制为主;适合采用流水线 | 优化编译,有效支持高级语言 |
2、比较
1、维度
- 指令数量、指令使用频率、寻址方式、寄存器、流水线支持、高级语言支持
2、CISC:复杂、指令数量多、频率差别打、多寻址
3、RISC:精简、指令数量少、操作寄存器、单周期、少寻址、多通用寄存器、流水线
8、流水线
1、概念
1、相关参数计算:流水线执行时间、流水线吞吐率、流水线加速比、流水线效率
2、流水线是指:
- 在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。
- 各种部件同时处理是针对不同指令而言的,它们可以同时为多条质指令的不同部分进行工作
- 以提高个部件的利用率和指令的平均执行速度
3、图示

2、流水线计算
1、一条指令完成分:取指、分析、执行
1、公式概念
1、流水线周期:执行时间最长的那一段时间(取指、分析执行其中最长的)
2、流水线计算公式
- *1条指令执行时间 + ( 指令条数 - 1 ) 流水线周期** //选择题可能算不出来,我们就引入实践公式
- 理论公式:
- 实践公式:
- 其中K是第一条只指令执行的时间
2、例子
1、题目

2、答案解析

3、流水线计算延伸
1、图解理论公式

2、图解实践公式

3、超标量流水线
1、度为2,就是两倍速度
2、有两个取指、两个分析、两个执行
3、如图

4、流水线吞吐率计算
1、概念
- 流水线吞吐量(Though Put rate,TP)
- 是指在单位时间内流水线所完成的任务数量或输出的结果数量。
2、流水线吞吐量公式
- 如图
3、流水线最大吞吐率公式:
- 如图
- 就是: 1/流水线周期
9、层次化存储结构
1、局部性原理是层次化存储结构的支持

10、Cache
1、概念
1、在计算机的存储系统体系中,Cache是访问速度最快的层次(若有寄存器,则寄存器最快)
2、使用Cache改善系统性能的依据是程序的局部性原理
3、如果以h代表对Cache的访问命中率,t1表示Cache的周期时间,t2表示主存储器周期时间,以读操作为例,使用“Cache+主存储器”的系统的平均周期为t3
- t3 = h x t1 +(1-h) x t2
- 其中,(1 - h )又称为失效率(未命中率)
2、映像
1、直接相联映像:硬件电路较简单,冲突率很高
2、全相联映像:电路难于设计和实现,只适用小容量的cache,冲突率较低。
3、组相邻映像:直接相联与全相联的折中
4、地址映像是将主存与Cache的存储空间划分为若干大小相同的页(或称为块)
5、例子
- 某计算机主存容量为1GB,划分为2058页,每页512KB;Cache容量为8MB,划分为16页,每页512KB
1、直接相联映像
1、这个1个页号只能存一个数据,所以冲突率特别高。例如第0页,只能存第0页的数据。
2、图示

2、全相联映像
1、这个1个页号也只能存一个数据,但是,只要第0页是空的,我们就可以把其他页存放在0页号区。这样冲突率最低,但是会更复杂。(因为记录的东西会很多)
2、图示

3、组相联映像
1、我们这里是先分区,后分组。一个组内只能放一个组内的数据,依然很复杂
2、图示

11、主存编址与计算
1、内容
1、存储单元
2、按字编址:存储体的存储单元是字存储单元,即最小寻址单位是一个字
3、按字节编址:存储体的存储单元是字节存储单元,即最小寻址单元是一个字节
4、根据存储器所要求的容量和选定的存储芯片的容量,就可以计算出所需芯片的总数:即
- 总片数 = 总容量 / 每片的容量
2、例子

解答

12、总线
1、概念
1、一条总线同一时刻仅允许一个设备发送,但允许多个设备接受
2、总线的分类
1、数据总线(Data Bus)
1、在CPU与RAM之间来回传送所需要处理或是需要存储的数据
2、地址总线(Address Bus)
1、用来指定在RAM(Random Access Memory)之中存储的数据的地址
3、控制总线(Control Bus)
1、将微处理器控制单元(Control Unit)的信号,传送到周边设备,一般常见的为USB Bus 和 1394Bus
13、串联系统与并联系统
这里考察的是可靠性
1、串联系统
1、R为可靠性
2、串联系统的可靠性:所有R相乘
3、失效性:所有失效性相加
3、图解

2、并联系统
1、如图

3、N混合模式
1、就是一个串联,一个并联。这样
2、如图:

14、校验码
1、校验码基础知识
1、码距
- 任何一种编码都由许多码字构成
- 任意两个码字之间最少变化的二进制位数就成为数据校验码的码距
- 用4位二进制表示16种状态,则有16个不同的的码字,此时码距为1。
- 个人理解:就是有几位二进制位发生改变,就有几个码距。
2、例子
1、我要 01 —> 10 这个数据的码距是多少?

2、0000—>0001,此时码距为多少?

2、奇偶校验
1、方法
1、有若干位有效信息(如1个字节),再加上1个二进制位(校验位)组成校验码。
2、奇校验
1、整个校验码(有效信息和校验位)中的“1”的个数为奇数。
2、例子
题目:1011 这个数据进行奇校验
- 1011【1】这里+1
- 所有的1便成了偶数。
- 这个就检验出了错误。
3、偶校验
1、整个校验码(有效信息和校验位)中的“1”的个数为偶数。
2、例子
题目:1010这个数据进行偶校验
- 1010【1】 这里+1
- 其中所有的1便成了奇数
- 这个就检验出了错误
4、注意
1、奇偶校验,可以检查出1位错误,但是不可以纠错
2、例子
题目:1011 这个数据进行奇校验
- 1011【1】这里+1
- 所有的1便成了偶数。
- 这个就检验出了错误。
- 但是不能纠错
3、循环校验码CRC
1、内容
1、CRC的编码办法是:在k位信息码之后拼接r为校验码。应用CRC码的关键是如何从k位信息简便地得到r位校验码(编码),以及如何从k+r位信息码判断是否除错
2、循环冗余校验码规则如下:
- 把待编码的N位有效信息表示为多项式M(X)
- 把M(X)左移K位,得到M(X)xX的k次方。这样空出了K位,以便拼装K位余数(即校验位)
- 选取一个K+1位的产生多项式G(X),对M(X)xX的K次方,做模2除
- 把左移K位以后的有效信息与余数R(X)做模2加减,拼接为CRC码,此时CRC码共有N+K位
3、把接收到的CRC码用约定的生成多项式G(X)去除,如果正确,则余数为0;如果某一位除错,则余数不为0,不同的位数出错其余数不同,余数和出错位序号之间有一位的关系
2、什么是模2除法?
- 在做除法运算的过程中不计其进位的除法
- 就是进位,借位都不计算
- 然后最后的余数补在被除数后面。
- 除尽正确,除不尽有问题
- 例子
3、例子
1、题目

2、多项式怎么算?

3、过程

4、注意
1、CRC校验,可检错,不可纠错
4、海明校验码
1、原理
1、在有效信息位中加入几个校验位形成海明码,
- 使码距比较均匀地拉大,
- 并把海明码的每个二进制分配到几个奇偶校验组中。
2、当某一位出错后,
- 就会硬气有关的几个校验位的值发生变化
- 这不但可以发现错误,
- 还能指出错误的位置
- 位自动纠错提供了依据
2、公式
$$
2^r ≥ m+r+1== 2^r-1≥m+r
$$
1、其中r是校验位,也是我们需要掌握的。要几个校验位才能检错和纠错
2、m是数据位
3、图解原理

4、例子







4112121