-
更新
1 | 25-04-06 初始记录 |
数值及其转换和数据的表示
二进制(B)、八进制(O)、十进制(D)、十六进制(H)
任意进制 -> 十进制:位权展开
十进制 -> 任意进制:短除法
二进制 -> 十六进制:4 位转 1 位
2^12 | 2^11 | 2^10 | 2^9 | 2^8 | 2^7 | 2^6 | 2^5 | 2^4 | 2^3 | 2^2 | 2^1 | 2^0 | 2^-1 | 2^-2 | 2^-3 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
4096 | 2048 | 1024 | 512 | 256 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 | 0.5 | 0.25 | 0.125 |
计算机内数据的表示
真值与机器数
真值:符合人类习惯的数字
机器数:各种数据在计算机中表示的形式称为机器数,其特点是数的符号用 0、1 表示。即正负号需要被“数字化”
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
两种形式。
补码
补码:若符号位为 0,则补码与原码相同。若符号位为 1,则补码=反码末位 +1。
若机器字长 n+1 位,补码整数的表示范围:
-2^n <= x <= 2^n -1
真值 0 只有一种形式00000000
。定点整数补码[x]补 = 10000000
表示-2^7
移码
移码:补码的基础上将符号位取反。注意:移码只能用于表示整数。
若机器字长 n+1 位,补码整数的表示范围:
-2^n <= x <= 2^n -1
定点数 和 浮点数
定点数:就是小数点的位置固定不变的数。小数点的位置通常有两种约定方式:定点整数(纯整数,小数点在最低有效数值位之后)和定点小数(纯小数,小数点在最高有效数值位之前)
1 | 5D - 0,01001. |
浮点数:小数点位置不固定的数,他能表示更大范围的数。在浮点表示法中,阶码通常为带符号的纯整数,尾数为带符号的纯小数。浮点数通常表示为 N=MR^E
。其中,M 称为尾数,R 称为基数,E 称为阶码。
阶码(E) | 码价 | 数符 | 尾数(M) |
---|
阶码,决定浮点数所能表示的数值范围
尾数, 决定浮点数所能表示的数值精度
校验码
校验码:用来检测传送的数据是否出错。
码距:指一个编码系统中任意两个合法编码之间至少有多少个二进制位不同。
奇偶校验
发现错误。
循环冗余校验码 CRC
应用于数据通信领域和磁介质存储系统中。长度 k(数据位) + r(校验位)
海明码
海明码的构成方法是:在数据位之间插入 k 个校验码,通过扩大码距来实现检错和纠错。
设数据位是 n 位,校验位是 k 位,则 n 和 k 必须满足以下关系:
2^k -1 >= n+k
计算机系统组成
五大部件
输入设备、输出设备、存储器、运算器、控制器。输入/输出设备与存储器之间的数据传输通过运算器完成。
冯·诺依曼计算机的特点:
-
计算机由五大部件组成(输入设备、输出设备、存储器、运算器、控制器)
-
指令和数据以同等地位存于存储器,可按地址寻访
-
指令和数据用二进制表示
-
指令由操作码和地址码组成
-
存储程序
-
以运算器为中心
输入设备:将信息转换为机器能识别的形式 0/1
输出设备:将结果转换为人们熟知的形式
主存储器:存放数据和程序
运算器:算术运算、逻辑运算
控制器:指挥各部件、使程序得以运行
主存储器
存储体、MAR、MDR
存储单元:每个存储单元存放一串二进制代码。
存储字:存储单元中二进制代码的组合。
存储字长:存储单元中二进制代码的位数。
存储元:即存储二进制的电子元件,每个存储元可存 1 bit。
MAR:地址寄存器(标记存储单元的个数)
MDR:数据寄存器
1 | MAR = 4位 -> 总共有 2*2*2*2 个存储单元 |
CPU - 运算器
运算器:用于实现算术运算(如:加减乘除)、逻辑运算(如:与或非)
ACC:累加器,用于存放操作数,或运算结果。
MQ:乘商寄存器,在乘、除运算时,用于存放操作数或结果运算。
X:通用的操作数寄存器,用于存放操作数。
ALU:算术逻辑单元,通过内部复杂的电路实现算术运算、逻辑运算。
DR:数据缓存寄存器。
PSW:状态条件寄存器,用来保存指令运行标志。
CPU - 控制器
CU:控制单元,分析指令,给出控制信号。
IR:指令寄存器,存放当前执行的指令。
PC:程序计数器,存放下一条指令地址,有自动加 1功能。
AR:地址寄存器,保存当前 CPU 所访问的内存单元地址。
ID:指令译码器,对操作码进行分析。
计算机体系结构
Flynn 分类法
体系结构类型 | 结构 | 关键特性 | 代表 |
---|---|---|---|
单指令流单数据流 SISD | 控制部分:一个 处理器:一个 主存模块:一个 |
单处理器系统 | |
单指令流多数据流 SIMD | 控制部分:一个 处理器:多个 主存模块:多个 |
各处理器以异步的形式执行同一条指令 | 并行处理机 阵列处理机 超级向量处理机 |
多指令流单数据流 MISD | 控制部分:多个 处理器:一个 主存模块:多个 |
被证明不可能,至少是不实际 | 目前没有,有文献称流水计算机为此类 |
多指令流多数据流 MIMD | 控制部分:多个 处理器:多个 主存模块:多个 |
能够实现作业、任务、指令等各级全面屏行 | 多处理机系统 多计算机 |
指令系统
指令
指令(又称机器指令):是指令计算机执行某种操作的命令,是计算机运行的最小功能单位。
一台计算机的所有指令的集合构成该机的指令系统,也称为指令集。
指令格式
一条指令就是机器语言的一个语句,它是一组有意义的二进制代码。
一条指令通常要包括操作码字段(操作的类型)和地址码字段(操作数及运算结果存放的地址)两部分。
七种寻址方式
-
立即寻址:操作数作为指令的一部分直接写在指令中,这种操作数称为立即数。
-
寄存器寻址:指令所要的操作数已存储在某寄存器中,或把目标操作数存入寄存器。
-
直接寻址:指令所要的操作数存放在内存中,在指令中直接给出该操作数的有效地址。
-
寄存器间接寻址:操作数在存储器中,操作数的有效地址用 SI、DI、BX 和 BP 四个寄存器之一来制定。
-
寄存器相对寻址:操作数在存储器中,其有效地址是一个基址寄存器或变址寄存器中的内容和指令中的 8 位/16 位偏移量之和。
-
基址加变址寻址方式:操作数在存储器中,其有效地址是一个基址寄存器和一个变址寄存器的内容之和。
-
相对基址加变址寻址:操作数在存储器中,其有效地址是一个基址寄存器的值、一个变址寄存器的值和指令中的 8 位/16 位偏移量之和。
复杂指令集计算机 - CISC、精简指令集计算机 - RISC
CISC(Complex) | RISC(Reduced) | |
---|---|---|
指令系统 | 复杂、庞大 | 简单、精简 |
指令数目 | 一般大于 200 条 | 一般小于 100 条 |
指令字长 | 不固定 | 定长 |
可访存指令 | 不加限制 | 只有 Load/Store 指令 |
各种指令执行时间 | 相差较大 | 绝大多数一个周期内完成 |
各种指令使用频度 | 相差较大 | 都比较常用 |
通用寄存器数量 | 较少 | 多 |
控制方式 | 绝大多数为微程序控制 | 绝大多数为组合逻辑控制 |
指令流水线 | 可以通过一定方式实现 | 必须实现 |
指令的流水处理
指令控制方式有顺序方式、重叠方式和流水方式三种。
流水线的计算
列:若指令流水线把一条指令分为取指、分析和执行三部分,且三部分的时间分别是取指 2ns,分析 2ns,执行 1ns。那么,流水线周期是多少?100 条指令全部执行完毕需要的时间是多少?
流水线周期为执行时间最长的一段
流水线计算公式为:1 条指令执行时间 +(指令条数 -1) 流水线周期*
1 | 流水线周期:2ns |
流水线的吞吐率(TP):是指在单位时间内流水线所完成的任务数量或输出的结果数量。计算公式:TP=指令条数/流水线执行时间
1 | TP = 100 / [2ns + 2ns + 1ns + (100 - 1) * 2ns] = 100 / 103 |
流水线的加速比:完成同样一批任务,不使用流水线所用的时间与使用流水线所用的时间之比。计算公式:S=不使用流水线执行时间/使用流水线执行时间
1 | S = (2ns + 2ns + 1ns) * 100 / [2ns + 2ns + 1ns + (100 - 1) * 2ns] = 500 / 103 |