-
更新
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 |
输入输出技术
CPU 与外设之间的数据传输方式
-
直接程序控制方式直接程序控制方式是指在完成数据的输入/输出中,整个输入/输出的过程是在 CPU 执行程序的控制下完成的。这种方式还可以分为以下两种:
- 无条件传输方式:无条件地与 CPU 交换数据。
- 程序查询方式:先通过 CPU 查询外设状态,准备好之后再与 CPU 交换数据。
-
中断方式中断方式利用中断机制,使 I/O 系统在与外设交换数据时,CPU 无须等待,也不必查询 I/O 状态,即可以抽身出来处理其他任务,因此提高了系统效率。
-
直接存储器存取方式(DMA)是在存储器与 I/O 设备间直接传送数据,即在内存与 I/O 设备之间传送一个数据块的过程中,不需要 CPU 的任何干涉,是一种完全由 DMA 硬件完成 I/O 操作的方式。
-
输入/输出处理机(IOP)是一个专用处理机,用于完成主机的输入/输出操作。IOP 根据主机的 I/O 命令,完成对外设数据的输入/输出。
存储系统
层次结构
1 | CPU |
主存 - 辅存(硬件 + 操作系统):实现虚拟系统存储,解决了主存容量不够的问题
Cache - 主存(硬件自动完成):解决了主存与 CPU 速度不匹配的问题
分类
-
按位置分类:可以分为内存和外存内存(主存):用来存储当前运行所需要的程序和数据,速度快、容量小。外存(辅存):用来存储当前不参与运行的数据,容量大,速度慢。
-
按材料分类,可分为磁存储器、半导体存储器和光存储器。磁存储器:用磁性介质做成,如磁芯、磁泡、磁盘、磁带等半导体存储器:根据所用元件又可分为双极型和 MOS 型两类;根据是否需要刷新又可分为静态和动态两类。光存储器:由光学、电学和机械部件等组成,如光盘存储器。
-
按工作方式分,可分为读/写存储器和只读存储器。读/写存储器(RAM)它指既能读取数据也能存入数据的存储器。只读存储器(ROM)工作过程中仅能读取的存储器。
-
固定只读存储器(ROM)。这种存储器是在厂家生产时就写好数据的,其内容只能读出,不能改变。一般用于存放系统程序 BIOS和用于微程序控制。
-
可编程的只读存储器(PROM)。其中的内容可以由用户一次性地写入,写入后不能再修改。
-
可擦除可编程的的只读存储器(EPROM)。其中的内容既可以读出,也可以由用户写入,写入后还可以修改,紫外线照射擦除信息。
-
电擦除可编程的的只读存储器(EEPROM)。与 EPROM 相似,EEPROM 中的内容既可以读出,也可以进行改写,电擦除的方法进行数据的改写。
-
闪存存储器(Flash Memory)。简称闪存,闪存的特性介于 EPROM 和 EEPROM 之间,类似于 EEPROM,也可以使用电信号进行信息的擦除操作。整块闪存可以在数秒内删除,速度远快于 EPROM。
高速缓存 -Cache
高速缓存(Cache)是位于 CPU 和主存之间的高速存储子系统。
目的:提高存储器的平均访问速度,使存储器的速度与 CPU 的速度相匹配。
地址变换和数据块的替换算法均由硬件实现。
通常被集成到 CPU 内,以提高访问速度,其主要特点是容量小、速度快、成本高。
Cache 的组成
-
Cache 存储器部分:用来存放主存的部分复制信息。
-
控制部分的功能:判断 CPU 要访问的信息是否在 Cache 存储器中,若在,即为命中,若不在则没有命中。
Cache 的三种地址映射
地址映像:把主存中的地址映射成 Cache 存储器中的地址
-
直接映射:就是主存的块与 Cache 中块的对应关系是固定的。主存中的块只能存放在 Cache 存储器的相同块号中。因此,只要主存地址中的主存区号与 Cache 中的主存区号相同,则表明访问 Cache 命中。优点:地址变换很简单,缺点:灵活性差。Cache 分块,主存分区,每个区再分块,并且每个区的块数和 Cache 的分块相同。
-
全相联映像:允许主存中的任一块可以调入 Cache 的任一块的空间。在地址变换时,将主存地址高位表示的主存块号与 Cache 中的主存块号进行比较,若相同则为命中。优点:主存的块调入 Cache 的位置不受限制,十分灵活。其缺点是无法从主存块号中获得 Cache 的块号,变换比较复杂,速度比较慢
-
组相联映像:这种方式是前面两种方式的折中。具体方法是将 Cache 先分成组再分块。组组相联映像就是组间采用直接映像方式,而组内的块采用全相联映像方式。
Cache 的性能分析
若 H 为 Cache 的命中率,tc 为 Cache 的存取时间,tm 为主存的访问时间,则 Cache 的等效访问时间 ta 为
1 | ta = H * tc + (1 - H) * tm |
使用 Cache 比不使用 Cache 的 CPU 访问存储器速度提高的倍数 r 可以用下式求得
1 | r = tm / ta |
主存的扩展
位扩展
字扩展
主存的编址
内存地址从 AC000H 到 C7FFFH,共有 ?K 个地址单元,如果该内存地址按字(16bit)编址,由 28 片存储器芯片构成。已知构成此内存的芯片每片有 16K 个存储单元,则该芯片每个存储单元存储 ?位。
1K=2^10
1M=2^20
1G=2^30
1 | C7FFFH - AC000H + 1 |
1 | 112K * 16 = 28 * 16K * 存储位数 |
虚拟存储器
虚拟存储器是由主存、辅存、存储管理单元及操作系统中的存储管理软件组成的存储系统。程序员使用该存储系统时,可以使用的内存空间可远大于主存的物理空间,但实际上并不存在那么大的主存,顾称其为虚拟存储器。
虚拟存储器使存储系统既具有相当于外存的容量又具有接近于主存的访问速度。
磁盘存储器
存取时间 = 寻道时间 + 等待时间(平均定位时间 + 转动延迟)
注意:寻道时间是指磁头移动到磁道所需的时间;等待时间为等待读写的扇区转到磁头下方所用的时间。
总线系统
-
片内总线(内部总线)片内总线是芯片内部的总线。它是 CPU 芯片内部寄存器与寄存器之间、寄存器与 ALU 之间的公共连接线。
-
系统总线系统总线是计算机系统内各功能部件(CPU、主存、I/O 接口)之间相互连接的总线。按系统总线传输信息内容的不同,又可以分为 3 类:数据总线、地址总线和控制总线。
-
通信总线(外部总线)用于设备一级的互连,计算机可通过该总线和其他设备进行信息与数据交换。
磁盘阵列技术(RAID)
磁盘阵列由多台磁盘存储器组成,是快速、大容量且高可靠的外存子系统。现在常见的独立冗余磁盘阵列(RAID)就是一种由多块独立磁盘构成的冗余阵列。RAID 技术分为几种不同的等级,分别可以提供不同的速度、安全性和性价比。
RAID 级 | 说明 |
---|---|
RAID-0 | 一种不具备容错能力的磁盘阵列 |
RAID-1 | 是采用镜像容错技术改善可靠性的一种磁盘阵列 |
RAID-2 | 是采用海明码进行错误检测的一种磁盘阵列 |
RAID-3 | 减少了用于检验的磁盘存储器台数,从而提高了磁盘阵列的有效容量,一般只有一个检验盘 |
RAID-4 | 是一种可以独立地对组内各磁盘进行读写的磁盘阵列,该阵列也只用一个检验盘 |
RAID-5 | 是对 RAID-4 的一种改进,他不设置专门的检验盘。同一台磁盘上既记录数据,也记录检测信息。这就解决了前面多台磁盘机争用一台检验盘的问题 |
RAID-6 | 采用两级数据冗余和新的数据编码以解决数据恢复问题,在两个磁盘出现故障时仍然能够正常工作。在进行写操作时,分别进行两个独立的校验运算,形成两个独立的冗余数据,并写入两个不同的磁盘。 |
计算机可靠性
计算机系统的可靠性是指从它开始运行(t=0)到某个时刻 t 这段时间内能正常运行的概率,用 R(t) 表示
1 | 串联部件的可靠度 = 各部件的可靠度的乘积 |