目录
-
R进制按权展开法 十进制转换为R进制法 二进制与八进制、十六进制之间的转换(三位二进制表示一位八进制)(四位二进制表示一位十六进制的数)
-
原码 反码 补码 移码
-
整数 小数 原码 (-(2 ^ n-1)-1)) ~ (2^ (n-1)-1) -(1- 2^ -(n-1))~ (1- 2^ -(n-1)) 反码 (-(2 ^ n-1)-1)) ~ (2^ (n-1)-1) -(1- 2^ -(n-1))~ (1- 2^ -(n-1)) 补码 (-2 ^ (n-1))~(2^ (n-1)-1 ) -1 ~ (1-2 ^-(n-1)) 移码 (-2 ^ (n-1))~(2^ (n-1)-1 ) -1 ~ (1-2 ^-(n-1))
-
浮点数的表示: 浮点数的存储: 浮点数的运算: 特点:
-
运算器 (算术逻辑单元ALU、累加寄存器AC、数据缓冲寄存器DR、状态条件寄存器PWD) 控制器(指令寄存器IR、程序指令计数器PC、地址寄存器AR、指令译码器ID,时序部件) 存储器 输入设备 输出设备 其中 运算器、控制器、寄存器组、内部控制总线构成计算机的核心中央处理单元(CPU)
-
单指令流单数据流 SISD 单指令流多数据流 SIMD 多指令流单数据流 MISD 多指令流多数据流 MIMD
-
一条指令就是机器语言的一条语句。是具有意义的二进制代码 指令的表示格式: 操作数码+地址数码 根据地址码的格式又分为 三地址指令、二地址指令、一地址指令、零地址指令
-
立即寻址方式 指令中存储的是操作数 速度快、灵活性差 直接寻址方式 指令中存储的是指向操作数的地址 间接寻址方式 指令中存储的是指向操作数地址的地址 寄存器寻址方式 寄存器中存储的是操作数 寄存器间接寻址方式 寄存器中存储的指向操作数的地址
-
两者的区别和比较(在这里不一一的细讲)
-
在执行程序的时候, 多重指令重叠进行操作的准并行处理技术 例如:一条指令完成需要经历取指、分析、执行三个过程 非流水线处理:先执行第一条指令的取指、然后分析、最后在执行。这个过程中不做任何事情。 流水线处理: 在执行第一条指令的分析的时候,执行第二条的取指。在执行第一条指令的执行的时候。 做第二条指令的分析,和第三条指令的取指操作。这样进行流水线的操作
-
指令执行完成的时间: 理论公式:(t1+t2+t3+...+tK) + (n-1)*t (t1+t2+t3+...+tk)表示的是一个指令执行完成的时间。t1,t2...表示指令的步骤 n表示指令条数。t 表示流水线周期 实际公式: k*t + (n-1)*t 字母的表示和上面的是一样的
-
超标量流水线:就是多条流水线共同作用。 有几条流水线,度就为几 吞吐率:单位时间内完成的指令数量或者输出的结果 TP = 指令数量 / 流水线运行的时间 最大吞吐率: 流水线周期的倒数。 TP = 1 / t (t为流水线周期)
-
cup 寄存器、容量小、访问速度快、成本高 Cache 按内容存取 内存(主存) 分 随机存储器(RAM) 和 只读存储器(ROM) 外存(辅存) 硬盘、U盘 光盘等 从上到下容量依次增大,但是访问速度依次减小。
-
Cache高速缓存就是在CUP和主存储器之间,用来缓冲速度的一个部件。 访问具有一定的命中率,并不是每次访问都能够访问成功 t3 = ht2 +(1-h)*t1 (这里的t3 表示系统的周期时间、t2表示Cache的访问时间,h表示访问的命中率,t1表示的是主存储器的访问时间)
-
Cache--映像分为三种存储形式 直接关联映像、全相关联映像、组相关联映像
-
按字节存储单元编址---最小的寻址单元是字节 按字存储单元编址---最小的寻址单元的是字 存储器的个数 = 总的容量 / 单个存储器的容量
-
总线的分类分为: 地址总线、数据总线、控制总线
-
可靠率的计算(串联、并联、串并联混合)
-
奇偶校验码 循环校验码CRC 海明码
数据的表示
R进制转十进制按权展开法
-
说明
其具体的操作方法是
将R进制的数转换为R的K次方 的表示形式
即幂的底数为R 指数为K -
示例
二进制转为十进制
(111000.111) 2进制
整数部分从小数点右边往左边数 权位为 0,1,2,3,4,5
小数部分 从小数点右边往左边数 权位为 -1、-2、-3所以出来就是
1*2^5 + 1*2^4 + 1*2^3 + 1*2^2 + 1*2^1 + 1*2^0 + 1*2^-1 + 1*2^-2 + 1*2^-3
八进制转十进制
(17635)从右边往左边数 权位0、1、2、3、4
所以出来就是1*8^4 + 7*8^3 + 6*8^2 + 3*8^1 + 5*8^0
-
总结
总结起来就是换算的时候,先看是什么进制,然后整数部分从右往左边数、由0开始
小数部分从左往右边数、由-1开始
十进制转换为R进制
-
说明
十进制转换为R进制是有很多的方法的,一般用我们熟知的短除法 -
示例
将余数从下到上排列起来。
二进制与八进制、十六进制的转换
-
说明
其实二进制与八进制、十六进制的转换特别简单
我们来看八进制 -
八进制
八进制逢 8 就进一,所以能够表示的最大数为 7 而 7 用二进制表示就是**111** 而 0 用二进制表示就是**000** 所以说八进制用三位的二进制表示就行。
-
转换
二转八 把数字从右往左,三位一划分。然后换成八进制就行了
八转二 从左往右 一位变三位 。就是二进制了。 -
示例:
二转八
(110 110 100 011)二进制
(6643) 八进制八转二
(35674)八进制
(011 101 110 111 100 ) 二进制
-
十六进制(A,B,C,D,E,F分别表示从10到15.)
-
说明
十六进制的表示和八进制是差不多的 十六进制最大的数是15 用二进制表示就是 1111 需要用四位的二进制才能够表示 所以和八进制的转换一样。
四位二进制表示一位十六进制
一位十六进制用四位二进制表示
就不进行演示了
码制
-
说明
常见的码制有 原码、反码、补码、移码
-
图表
在这个表中机器字长为8位。在表示里面,常常都是最高位为符号位 0表示正,1表示负
码制 数值1 数值-1 1-1 原码 0 000 0001 1 000 0001 1 000 0010 反码 0 000 0001 1 111 1110 1 111 1111 补码 0 000 0001 1 111 1111 0 000 0000 移码 1 000 0001 0 111 1111 1 000 0000 通过这个表可以看到
- 正数 的原码、反码、补码都是一样的
- 负数的反码 是原码符号位不变 其余按位取反
- 负数的补码 是在反码的基础上末尾加 1
- 正负数的移码 都是将补码符号位取反,其余不动
数值的表示范围
-
说明
关于数值的表示范围,我们先用4位数来进行演示一下。
四位数能够表示的范围:
除去最高一位是符号位,剩下的三位数二进制数最大的表示范围也就是(1 111)(-7) 到(0 000)(+7) 就是说表示的范围是(-(2^n-1 -1))到(+(2 ^n-1 -1)) 这是原码的范围。下面的反码、补码、移码也 是一样进行计算带入的。
-
图表
码制 定点整数 说明 定点小数 原码 -(2^ n-1 -1) ~ +(2^n-1 -1) -(1-2^ -(n-1))~ +(1-2^ -(n-1)) 反码 -(2^ n-1 -1) ~ +(2^n-1 -1) -(1-2^ -(n-1))~ +(1-2^ -(n-1)) 补码 -(2^ n-1) ~ +(2^n-1 -1) 定点整数的0只有一个,-0没有补码和移码的,所以上面加1这里没有加 -1 ~ (1-2 ^ -(n-1)) 移码 -(2^ n-1) ~ +(2^n-1 -1) 定点整数的0只有一个,-0没有补码和移码的。所以上面加1这里没有加 -1 ~ (1-2 ^ -(n-1))
浮点数的运算
-
浮点数的表示:
N = 尾数*基数^ 指数 (简单的说就是我们熟知的科学计数法)(3.14 * 10^3)
尾数就是 3.14 基数就是10 指数就是3
-
浮点数的运算
对阶 > 尾数计算 > 结果格式化
-
特点:
- 一般来说尾数用补码表示,阶码用移码表示。
- 尾数的位数决定数的有效精确度。位数越多表示的精确度越大。
- 指数的位数决定数的表示范围。位数越多表示的范围越大。
- 对阶的时候一般是小数向大数靠齐。
- 对阶是通过小数点左移实现的,不够一般情况下补0.
-
浮点数的存储格式
阶符 阶码 数符 数码 解码的符号 0正 1 负 阶码的数值 数字的符号 0正 1 负 数字的数值
计算机组成
-
计算机的结构
计算机主要由 运算器、控制器、存储器、输入设备、输出设备这五大部件构成 运算器和控制器等部件被集成在一起叫做中央处理单元(CPU)。 CPU是计算机的核心,用于数据的处理加工,能够完成数据的算术运算和逻辑运算以及控制的功能。 存储器分为外部存储和内部存储。 内部存储一般是指的内存。内存具有容量小访问速度快等特点。 外部存储器有很多,常见的硬盘,光碟等等。一般都是容量大而访问速度慢。 输入输出设备统称为外设。用于属于原始的指令和输出数据
-
运算器
它是计算机的数据加工处理部件。 用于完成计算机的各种数据的算术和逻辑运算。 相对控制器而言,它只是执行部件,收到控制器的指令而行动。 1. 执行所有的算术运算(包括加减乘除等基本运算和附加运算) 2. 执行所有的逻辑运算(与、或、非、零值的测试和两个值的比较等)
-
运算器组成
运算器的组成 作用 算术逻辑单元ALU 数据的算术运算和逻辑运算 累加寄存器AC AC是通用的寄存器。用于在ALU运算的时候为其开辟一个存储单元。用来暂存数据。运算器中最少要有一个累加寄存器 数据缓冲寄存器DR DR写内存的时候、暂存指令或者数据。 外部设备之间数据的中转站。CPU和主存、外设之间操作速度的缓冲 状态条件寄存器PSW 存储 状态标志和控制标志 这在汇编中我们讲过的。 重点的是状态条件寄存器在软考中有时划分为控制器有时划分为运算器
-
控制器
运算器只能够用来进行计算,而控制器是控制整个CPU的。 它决定了计算机运行中的自动化,它不仅要保证计算机的正确执行还要能够处理异常的事件。 控制器一般包括 指令控制逻辑、时序控制逻辑、总线控制逻辑、中断控制逻辑 等几个部分 指令控制逻辑要完成 取指令、分析指令、执行指令的操作 其过程分为 取指令、指令译码、按指令操作码执行、形成下一条指令地址等步骤
-
控制器的组成
控制器的组成 作用 指令寄存器 IR 存储即将执行的指令 程序计数器 PC 存储下一条要执行指令的地址 地址寄存器 AR 保存当前CPU所访问的内存单元的地址 指令译码器 ID 对指令中的操作码字段进行分析解释,识别该指令规定的操作,并向控制器发出通知 时序部件 控制每个指令执行时间,让每个指令井然有序的进行
计算机体系结构-Flynn
-
说明:
计算机体系结构分类有Flynn分类法、冯泽云分类法、Handler分类法、Kuck分类法 很多种。
我们主要介绍的是 Flynn分类法
-
Flynn分类法
体系结构类型 结构 关键特性 代表 单指令流 单数据流 SISD 控制部分:一个;处理器:一个;主存模块:一个; 单处理器系统 多指令流 单数据流 MISD 控制部分:多个;处理器:一个;主存模块:多个; 目前证明是不可能实现的。至少是不实际 目前没有,有文献说流水线计算机可以实现 单指令流 多数据流 SIMD 控制部分:一个;处理器:多个;主存模块:多个 各处理器以异步的形式执行同一条指令 并行处理机、阵列处理机、超级向量处理机 多指令流 多数据流 MIMD 控制部分:多个;处理器:多个;主存模块:多个 能够实现作业、任务、指令等各级全面并行 多并行超级计算机
指令的基本概念
-
说明
一条指令就是机器语言的一个语句,它是一组有意义的二进制代码
指令的基本格式为:
操作码字段 地址吗字段 操作码字段:
操作码字段部分指出了计算机要进行什么性质的操作、如加法、减法、乘法、取数等等。地址码字段:
地址码字段部分需要存储进行操作的数值的地址、以及操作完结果存放的位置。从其地址结构可以分为三地址指令、二地址指令、一地址指令、零地址指令。
-
示例:
op的操作数码的意思就是 +
三地址指令
OP A1 A2 A3 二地址指令
OP A1 A2 一地址指令
OP A1 零地址指令
OP
寻址方式
-
说明
常见的寻址方式有立即寻址、直接寻址、间接寻址、寄存器寻址、寄存器间接寻址
假如有一个珠宝,你非常的珍惜它。
你把它 直接放在指令的操作数里面,立即就可以拿到,叫 立即寻址
用箱子锁起来然后将钥匙放在操作叔里面。叫 直接寻址
为了防止钥匙丢失、将钥匙锁在一个小盒子里,将小盒子的钥匙放在指令里面。这样要先找到钥匙才能够打开箱子。 这种叫做 间接寻址
寄存器寻址也是一样理解。
- 图解
这张图就显示的非常清楚了
CISC和RISC两种指令集的发展方式
-
说明
CISC和RISC 是指令集发展的两种主要的方式
- 图解:
- 两者的比较
流水线的概念
-
说明
流水线是程序执行时 多种指令重叠进行操作的 一种准并行处理实现技术。
各种部件的同时处理是针对不同部件而言的。它们可同时为多条指令的不同部分进行工作。
以提高各 部件的利用率 和 指令的平均执行速度
-
图解
可以看到没有用流水线之前:按照取指、分析、执行、需要3秒才能够执行完一次指令使用了流水线之后:在第一条指令分析的时候,可以对第二条指令进行取指。在对第一条指令执行
的时候可以对第二条指令进行分析,对第三条指令进行取指。这样交替进行,三条指令执行完成也才只需要5秒。提高了各个部件的利用率,也提高了指令的平均执行速度。
流水线的计算
-
说明
流水线的计算一般就是流水线的周期、指令执行的时间等等的计算
-
流水线的周期:
流水线的周期就是 执行时间最为长的一段时间 就叫做流水线的周期
-
流水线的计算公式:
理论公式 : 1 条指令执行的时间 +(指令条数-1)* 流水线周期 (t1+t2+...+tk)+ (n-1)*t 实践公式:k*t + (n-1)*t (t为流水线周期,k为一条完成的指令所需要的步骤数)
-
图解
对上面例题的解析:一条完整的指令执行完成需要 3+2+4 = 9s 所以10条指令为90s 流水线周期 ( 4s ) 所以十条周期执行完成为 9 + (10-1)*4 = 45s 节省了一般的时间
超标量流水线以及流水线吞吐率的计算
-
说明
超标量流水线实际上很简单。就是多条流水线的叠加,多条流水线一起工作。
-
图解
这个表中的度为 2 .也就是有两条流水线。
流水线吞吐率的计算
-
流水线的吞吐率:
流水线的吞吐率是指 在 单位时间 内流水线所完成的 任务数量 或者 结果数量
-
公式:
TP = 指令条数 / 流水线执行的时间
-
最大吞吐率的公式
TP = 1/t (t是流水线周期) 也就是说最大吞吐率是流水线周期的倒数
-
图解:
层次化存储结构
-
图解
从图中可以看到。存储结构依次分为。
CPU>Cache>主存(内存)>辅存(硬盘) 并且从上到下容量依次增大,但是访问的速度依次减小。
Cache-高速缓存
-
图解
值得注意的就是这个周期时间的计算,它涉及一个Cache中命中率的问题使用 Cache + 主存储器 的时间周期的计算 t3 = h * t1 +(1-h)* t2 t3表示的是时间周期。 t1表示的Cache的周期时间 h 表示对Cache的访问命中率。t2 表示主存储器的周期时间
Cache–映像
- 图解
- 直接相连映像
- 全相连映像
- 组相关联映像
组相关联映像就是将直接相连映像和全相连映像进行结合。各取优势。
主存–编址与计算
-
存储单元
-
按 字节 编址:
存储体的存储单元是 字节存储单元,即 最小的寻址单元式一个字节
-
按 字 编址 :
存储体的存储单元是 字存储单元, 即最小的寻址单元式一个字
关于字节和字的进位关系:
1byte = 8 位(bit)
-
-
计算
存储的计算一般是计算总的容量、存储的芯片、和存储芯片的数量等等
公式: 总片数 = 总容量/单个芯片的容量
总线
- 图解
串并联和串并联组合系统
-
说明
串并联和我们初中学的串并联其实差不多。这里只是要计算可靠度
-
串联图解
-
并联图解
-
串并联组合图解
-
计算
-
串联系统的计算
由于串联一个坏了的话整条线路就不能够畅通。所以可靠率为 R = r1 * r2 * r3 * ....* rn 其实就是相当于进行求概率
-
并联系统的计算
R = 1- (1-R1) * (1-r2) * (1-r3) * ....* (1-rn)
-
组合联的计算
组合联的计算也是比较简单的。什么联就按照什么联的进行计算就行 公式都不是确定的,按照上面图片的计算就行
-
校验码
-
码距
-
奇偶校验码
奇偶校验码就是说 在原来的数据上加上1 或者0 是它构成 奇校验 或者偶校验
这样就可以知道数据的传输有没有出现错误了
-
图解
-
示例:
例如传送的数据为:11001110 进行奇偶校验码传送的时候,如果我们要进行偶校验。 那么传送的数据是11001110(1) 这样的话1的个数为偶数。 在接收的时候如果1的个数为偶数的话,那就是对的(当然也有可能两个地方同时进行改变,导致还是偶数,但是几率一般较小) 所以奇偶校验码只能够差错不能够进行矫正。
-
-
循环校验码CRC
循环校验码CRC就是说将要传送的数据,与一个多项式产生的k个数据为进行模2除法。
然后将产生的r个校验码参与编码,放在后面。
- 模2除法
- 示例
操作就是这样的。将数据用模2的除法 除以多项式所产生的编码。然后放在数据的后面。构成新的得编码进行传送。这样就可以查错了。
-
海明码
海明码比较复杂,我们一般不会考的。