目录
数据的表示
进制
进制有二进制、八进制、十进制、十六进制
二进制是Binary,简写为B
八进制是Octal,简写为O
十进制为Decimal,简写为D
十六进制为Hexadecimal,简写为H
二进制转八进制为三位二进制数为一位八进制数,因为三位二进制由大到小为0-7;同理,二进制转十六进制为四位二进制数为一位八进制数。
一般在进制转换中,先把十进制转为二进制再转为其他进制。
二进制的原码、反码、补码、移码
所有码中,除了移码以外其他码正数的符号位都为0,负数为1;移码则反过来了。在补码中0有唯一编码:[+0]补 = 00000000。
原码:数字转换成二进制
反码:正数补码和源码完全相等;负数反码:符号位1不变,后面的位置在原码基础上取反
补码:正数补码和原码、反码一样;负数的补码:在负数反码的基础上加1
移码:移码是对补码的符号位取反
注:[[x]补]补 = [x]原
码制 | 定点整数(以8位为例) | 定点小数(以8位为例) |
---|---|---|
原码 | -127~127 | -(1-1/127)~(1-1/127) |
反码 | -127~127 | -(1-1/127)~(1-1/127) |
补码 | -128~127 | -(1-1/128)~(1-1/128) |
移码 | -128~127 | -(1-1/128)~(1-1/128) |
浮点数
表示
阶符 | 阶码 | 数符 | 尾数 |
运算过程
对接>尾数计算>结果格式化
特点
- 一般尾数用补码,阶码用移码
- 阶码的位数决定数的表示范围,位数越多范围越大
- 尾数的位数决定数的有效精度,位数越多精度越高
- 对阶时,小数向大数看齐
- 对阶是通过较小数的尾数右移实现的
规格化
若尾数M>=0,则其规格化的尾数形式为M=0.1XXXX,其中,X可为0,也可为1,即将尾数限定在区间[0.5,1]。
若尾数M<0,则其规格化的尾数形式为M=1.0XXXX,其中,X可为0,也可为1,即将尾数限定在区间[-1,-0.5]。
工业标准IEEE754
是由IEEE制定的有关浮点数的工业标准。
运算器控制器
运算器
- 算术逻辑单元ALU : 数据的算术运算和逻辑运算
- 累加寄存器AC :通用寄存器, 为ALU 提供一个工作区, 用在暂存数据
- 缓冲寄存器DR : 写内存时, 暂存指令或数据
- 状态条件寄存器PSW : 存状态标志与控制标志( 争议: 也有将其归为控制器的)
控制器
- 程序计数器PC : 存储下一要执行指令的地址
- 指令寄存器IR : 存储即执行的指令
- 指令译码器ID: 对指令中操作码字段进行分析解释
- 时序部件:提供时序控制信号
Flynn分类法
体系结构类型 | 结构 | 关键特性 | 代表 |
---|---|---|---|
单指令流单数据流 SISD | 控制部分:一个 处 理 器 :一个 主存模块:一个 | 单处理器系统 | |
单指令流多数据流 SIMD | 控制部分:一个 处 理 器 :多个 主存模块:多个 | 各处理器以异步的形式执行同一条指令 | 并行处理机 阵列处理机 超级向量处理机 |
多指令流单数据流 MISD | 控制部分:多个 处 理 器 :一个 主存模块:多个 | 被证明是不可能的,至少是不实际的 | 目前没有,有文献称流水线计算机为此类 |
多指令流多数据流 MIMD | 控制部分:多个 处 理 器 :多个 主存模块:多个 | 能够实现作业、任务、指令等各级全面并行 | 多处理机系统 多计算机 |
寻址方式
立即寻址方式
操作数就在指令中,速度快,灵活性差
直接寻址方式
指令中存放的是指令的地址
间接寻址方式
指令中存放了一个地址,这个地址对应的内容是操作数的地址
寄存器寻址方式
寄存器存放操作数
寄存器间接寻址方式
寄存器存放的是操作数的地址
CISC和RISC
指令系统类型 | 指令 | 寻址方式 | 实现方式 | 其他 |
---|---|---|---|---|
CISC(复杂) | 数量多,使用频率差别大,可变长格式 | 支持多种 | 微程序控制技术(微码) | 研制周期长 |
RISC(精简) | 数量少,使用频率接近,定长格式,大部分为单周期指令,操作寄存器,只有Load/Store操作内存 | 支持方式少 | 增加了通用寄存器;硬布线逻辑控制为主适合采用流水线 | 优化编译,有效支持高级语言 |
流水线技术
执行一条指令的过程:取指 分析 执行
流水线执行时间计算
流水线周期
为执行过程中时间最长的一段
计算公式
第一条指令执行时间 + (指令条数 - 1)* 流水线周期
- 理论公式:(t1+t2+...+tk)+(n - 1) * t
- 实践公式:k * t + (n - 1) * t
超标量流水线
如果超标二倍,即 取指取指 分析分析 执行执行,这样执行,如果要执行10条指令,那么时间为常规执行5条指令的时间。
流水线吞吐率
单位时间内流水线所完成的任务数量或输出的结果数量
最基本的公式
指令条数/流水线执行时间
流水线最大吞吐率(看最后的等于)
存储系统
按速度快慢排序,快为先:CPU>Cache>内存(主存)>外存(硬盘)
CPU
寄存器:寄存器,最快,但容量小,成本高
Cache
按内容存取
以h代表对Cache的访问命中率,t1表示Cache的周期时间,t2表示主存储器周期时间,以读操作为例,使用“Cache+主存储器”的系统的平均周期为t3,则:
t3 = h * t2 + (1 - h) * t2
其中,(1-h)又称失败率(未命中率)。
地址映像
直接相联映像:硬件电路较简单,但冲突率很高。
全相联映像:电路难于设计和实现,只适用于小容量的cache,冲突率比较低。Cache中的页可以随意放置,没有分组的束缚。
组相联映像:直接相联与全相联的折中。
地址映像是将主存与Cache的存储空间划分为若干大小相同的页(或称为块)
内存(主存)
分两类:随机存储器(RAM)、只读存储器(ROM)
外存(硬盘)
硬盘、u盘、光盘等
总线系统
一条总线同一时刻仅允许一个设备发送,但允许多个设备接收。
数据总线(DB)
在CPU与RAM之间来回传送需要处理或是需要储存的数据
地址总线(AB)
用来指定在RAM中储存数据的地址
控制总线(CB)
将微处理器控制单元的信号,传送到周边设备,一般常见的为USB Bus和1394 Bus
可靠性(R)
串联
R = R1 * R2 * ... * Rn;
并联系统
R = 1 - (1 - R1) * (1 - R2) * ... * (1 - Rn)
校验码
码距
任何一种编码都由许多码字构成,任意两码字之间最少变化的二进制位数就称为数据校验码的码距
如,用4位二进制表示16种状态,则有16个不同的码字,此时的码距为1,如0000和0001
码距=2具有检错能力
>=3有可能有纠错能力
奇偶校验码
由若干位有效信息(如一个字节),再加上一个二进制位(校验位)组成校验码。
奇校验:整个校验码(有效信息位和校验位)中“1”的个数为奇数
偶校验:整个校验码(有效信息位和校验位)中“1”的个数为偶数
可检查一位错误,但不可纠错,码距为2
循环校验码(CRC)
模2除法,相同为0,不同为1
若生成的多项式为:
则再原始报文末尾加四个0后用11011除以。最后留下的余数即为结果。
海明校验码
利用了奇偶校验并在其基础上升级,可检错,可纠错
其中,m为数据位(有效信息位),r为校验位