目录
一、数据表示与校验码(⭐⭐⭐)
1、原码、反码、补码(符号位0表示正数,符号位1表示负数)
- 原码:最高为表示符号,0有两种形式;表示简单直观、乘法规则简单、但加法运算不便。
- 反码:正数的反码=其原码,负数的反码为其原码除了符号位其余全部取反。
- 补码(简化运算部件的设计):正数的补码=其原码,负数的补码为其反码+1。
- 移码(与前几种不同,1表示+,0表示-):正数的移码=其对应的原码符号位取反,负数的移码=其对应的补码符号位取反。(用于浮点运算的阶码)
【A】(移码)+【B】(移码)=【A+B】(补码)
【A】(移码)+【B】(移码)=【A+B】(移码)+2^(n-1)
- 二进制有字长的限制,运算结果超过模数的部分会自动舍弃
- 真值:机器数对应的实际数值
- 机器数:各种数值在计算机中表示的形式,其特点是使用二进制计数制,数的符号用0和1表示,小数点则隐含,不占位置。
假设为一个字节 | 数值为1 | 数值为-1 | 1+(-1) |
原码 | 0000 0001 | 1000 0001 | 1000 0010 |
反码 | 0000 0001 | 1111 1110 | 1111 1111 |
补码 | 0000 0001 | 1111 1111 | 0000 0000 |
移码 | 1000 0001 | 0111 1111 | 1000 0000 |
假设为一个字节 | 真值为+0.1101 | 真值为-0.1101 |
原码 | 0.1101000 | 1.1111000 |
反码 | 0.0010111 | 1.0000111 |
补码 | 0.0011000 | 1.0001000 |
2、n位定点小数、整数的取值范围(定点表示法中小数点不占存储位)
码制 | 定点整数 | 定点小数 |
原码 | ||
反码 | ||
补码 | ||
移码 |
3、浮点数表示
表示方法为N=M×R^E,其中E称为阶码,M称为尾数。
- 数值范围由阶码E确定,数值精度由尾数M确定
- 尾数的表示采用规格化方法
浮点数的运算:
- ①对阶(使两个数的阶码相同,小阶向大阶看齐,较小阶码增加几位,尾数就右移几位)
- ②尾数计算(相加,若是减运算,则加负数)
- ③结果规格化(即尾数表示规格化,带符号尾数转换为1.0xxx(负数)或0.1xxx(正数))
4、逻辑运算
- ①逻辑与&:0和1相与,只要有一个为0结果就为0,两个都为1才为1
- ②逻辑或|:0和1相或,只要有一个为1结果就为1,两个都为0才为0
- ③异或:相同则为0,不同则为1
- ④逻辑非!:0的非是1,1的非是0
- ⑤逻辑左移<<:二进制数整体左移n位,高位若溢出则舍去,低位补0
- ⑥逻辑右移>>:二进制数整体右移n位,地位溢出则舍去,高位补0
5、校验码
1、奇偶校验码
- ①通过数‘1’的个数,判断奇/偶是否成立
- 可检错不可纠错,码距=2
2、循环冗余校验码
- ①补0(多项式最高次项为补0的个数)
- ②除数(多项式的系数)
- ③运算(进行异或运算)
- 可检错不可纠错,码距=2
3、海明码
- ①数据位是n位,校验位是k位,则n和k必须满足以下关系:2^k>=n+k+1
- 可检错不可纠错,码距=3
二、计算机硬件组成(⭐⭐⭐)
1、计算机硬件组成
1、计算机系统基本硬件由五部分组成:运算器、控制器、存储器、输入设备(如鼠标键盘)、输出设备(如显示器)
- 输入设备和输出设备合称为外部设备(外设)
- 存储器:分为内部存储器(内存容量小,速度快,临时存放数据)和外部存储器(容量大,速度慢,长期保存数据)
2、主机:CPU+主存储器(主机!=机箱,主机是计算机组成原理的专有名词)
3、中央处理单元CPU:由运算器、控制器、寄存器组和内部总线组成
- CPU的主要功能:从内存中取出一条指令,并指出下一条指令在内存中的位置;对指令进行译码或测试,并产生相应的操作控制信号,以便启动规定的动作;指挥并控制CPU、内存和输入输出设备之间数据的流动。 (实现程序控制、操作控制、时间控制、数据处理功能)
2、运算器(完成运算)
- ①算术逻辑单元(ALU):负责处理数据,实现对数据的算数运算和逻辑运算。
- ②累加寄存器(AC):但运算器执行运算时,为ALU提供工作区(暂存结果)。
- ③数据缓冲寄存器(DR):对内存储器进行读写操作时,用DR暂时存放有内存储器读写的数据(中转站),并将不同数据分隔开。
- ④状态条件寄存器(PSW):存放ALU运算结果的特征标志,可做条件,用于判断是否控制程序转移。
3、控制器(控制整个CPU工作)
- ①程序计数器(PC):即地址寄存器,用来存放当前正在执行的指令地址或下一条指令地址,也有计数的功能。
- ②指令寄存器(IR):用来存放当前正在执行的指令,以便在指令执行的过程中控制完成一条指令的全部功能。
- ③指令译码器(ID):指令分为操作码和地址码两部分,对ID中的操作码进行分析解释,产生相应的控制信号,控制各部件工作,从而完成所需的功能。
- ④时序部件:掌控系统中各个部分的时序关系,确保各项任务能够在指定时间被执行,
4、主存储器(存放计算机运行期间所需要的程序和数据,CPU可随时访问)
5、程序员可见/不可见
- 程序员可见:通用寄存器(ALU、AC、DR、PSW)、程序计数器
- 程序员不可见:指令寄存器、存储器数据寄存器(MDR)、存储器地址寄存器(MAR)、ID、地址寄存器、时序部件
三、层次化存储结构(cache)(⭐⭐⭐)
1、Cache(高速缓存)
- Cache(高速缓存):位于CPU和主存之间,提高CPU访问效率,容量小,速度为内存的5-10倍,其内容是主存内存的副本拷贝,对于程序员来说是透明的。
- 工作原理:将某些主存块复制到Cache中,缓和CPU与主存之间的速度矛盾。
- 替换算法:随机替换算法(RAND)、先进先出算法(FIFO)、近期最少使用算法(LRU)、最优替换算法(OPT)(无法实现,只作为衡量的标准)
2、Cache的地址映射
1、地址映射:Cache与主存的映射有专门硬件自动实现。
- 全相联映射:优点:空间利用充分,命中率高。缺点:查找标记最慢。
- 直接映射:优点:速度最快。缺点:空间利用不充分,命中率低。
- 组相联映射:以上两者特点兼顾,效果最好。
2、Cache命中率:随着Cache容量增加,命中率也会增加,但效率降低了。
- 命中率与Cache的容量、组织方式、块的大小有关。
- 平均存取时间=h×T+(1-h)×t(h=命中率,T=Cache存取时间,t=主存存取时间)
- 访问效率=Cache存取时间/平均存取时间
四、存储器的分类(⭐⭐)
- DRAM(动态随机存储器):是主存的主要构成
- SRAM(静态随机存储器):用来作为高速缓存存储器(Cache)
- EEPROM:即插即用,常用在接口卡中存放硬件设置数据
1、按位置分类
- ①内存:容量小,速度快,存储所需的程序和数据
- ②外存: 容量大,速度慢(磁盘,U盘)
2、按材料分类
- ①磁存储器:(磁性介质)
- ②半导体存储器:(双极性和MO型,静态和动态两类)
- ③光存储器:光盘
3、按工作方式分类
- ①读写存储器:
- ②只读存储器:固定只读存储器、可编程只读存储器、可擦可编程只读存储器、电擦除只读存储器、闪速存储器(掉电后不易丢失)
4、按访问方式分类
- ①按地址访问的存储器
- ②按内容访问的存储器
5、按寻址方式分类
- ①随机存储器:访问任意单元时间相同
- ②顺序存储器:访问时间与存储器位置有关
- ③直接存储器:磁道寻址为随机访问,磁道内为顺序访问
- ④虚拟存储器:由主存和辅存构成
五、输入/输出技术(⭐⭐⭐)
(在微机系统中,BIOS保存在主板ROM上)
1、常见的内存与接口的编码方式
1、内存与接口的独立的编址方式:
- 优点:容易区分,不占用地址空间。
- 缺点:用以接口的指令太少,功能太弱。
2、内存与接口的统一的编址方式:
- 优点:用于存储器的指令全部用于接口。
- 缺点:不易区分,影响速度
2、CPU与外设之间的数据传送方式
1、程序查询方式:需要CPU,顺序工作
- 无条件传送方式:无条件和CPU交换数据
- 程序查询方式:CPU利用程序查询,准备好再传
2、中断方式:需要CPU,并行工作
- 当I/O接口准备好就接收数据或向CPU传送数据就会发出中断信号通知CPU。(CPU无需等待,提高利用率)
- 为了方便实现多级中断镶套,使用堆栈来保护最有效
- 中断向量:提供中断服务程序的入口地址
- 中断响应时间:发出中断请求开始到进入中断服务程序
- 保存现场:返回来执行源程序
3、直接存储器存取方式(DMA方式):工作不需要CPU(由CPU启动和结束,其余不需要CPU参与),并行工作
- 在主存和外设间进行,不需要CPU参与,完全由硬件完成交换数据
六、总线结构(⭐⭐)
总线结构:一组能为多个部件分时共享的公共信息传送线路
- 优点:减少连线数目、简化系统结构、减小体积、便于设计制造、降低成本。
1、通常分为以下三类:
- 内部总线:分为芯片内总线和原件级总线
- 系统总线:数据总线、地址总线、控制总线(三总线结构)
- 外部总线:通信总线
2、其他分类:
- 串行总线:适用于长距离传输
- 并行总线:适用于短距离高速传输
- 单总线:控制简单、扩充方便、但是速度效率不高
- 同步总线、异步总线
1、总线带宽
- ①时钟周期=1/时钟频率
- ②最短传输周期=n×时钟周期
- ③总线最大数据传输率(总线带宽)=(总线宽度/8)/最短传输周期
2、系统总线(内总线):(ISA)工业标准总线、(EISA)、(PCI)
3、CPU查询数据: CPU在内存里寻找数据时,先通过地址线找到地址,再通过数据线将数据取出来。
- ①数据线数目=存储单元数目
- ②(地址线数量)——(存储容量字节=2^地址线数量)
七、指令系统(⭐⭐⭐)
- 指令的组成:一条指令由操作码和操作数两部分组成,操作码决定完成操作,操作数指参加运算的数据及其所在的单元地址。
- 计算指令执行过程:取指令——分析指令——执行指令三个步骤,首先将程序计数器PC中的指令地址取出,送入地址总线,CPU依据指令地址去内存中取出指令内容存入寄存器IR;而后由指令译码器进行分析,分析指令操作码;最后执行指令,取出指令执行所需的源操作数。
1、寻址方式
- 立即寻址方式:操作数就包含在指令中(直接给出操作数本身)
- 直接寻址方式:操作数存放在内存单元中(直接给出操作数所在内存的地址)
- 寄存器寻址方式:操作数存放在某一寄存器中(指令中给出存放操作数的寄存器地址)
- 间接寻址方式:指令中给出的是操作数地址的地址。
- 寄存器间接寻址:操作是存放在内存单元中,操作数所在存储单元的地址在某一寄存器中。
- 隐含寻址:不是明显的给出操作数地址,而是在指令中隐含着地址。
- 获取操作数的速度:立即寻址>寄存器寻址>直接寻址>寄存器间接寻址>间接寻址
2、Flynn分类(重点)
Flynn的分类依据是指令流和数据流,其特点是:
- ①单个处理元的指令是否独立
- ②单个处理元的数据是否独立
- ③是否有多个处理单元
体系结构类型 | 结构 | 特点 | 代表 |
单指令流单数据流(SISD) | 控制部分:一个 处理器:一个 主存模块:一个 | 指令部件只对一条指令译码,并只对一个指令部件分配数据 | 单核PC机 单处理系统 |
单指令流多数据流(SIMD) | 控制部分:一个 处理器:多个 主存模块:多个 | 各处理器以异步的形式执行同一条指令发 | 阵列处理机 向量处理机 |
多指令流单数据流(MISD)(理论) | 控制部分:多个 处理器:一个 主存模块:多个 | 多个指令对一个数据流进行操作 | 实施容错计算机 |
多指令流多数据流(MIMD) | 控制部分:多个 处理器:多个 主存模块:多个 | 能够实现作业、指令、等各级全面并行 | 超级计算机 多核计算机 |
CPU依据指令周期的不同阶段区分在内存中以二进制编码形式存放的指令和数据。
- 单个处理器+单条指令+单条数据=SISD
- 多个处理器+单条指令+单条数据=SIMD
- 多个处理器+独立指令+独立数据=MIMD
3、CISC和RISC(重点)
指令系统类型 | CISC(复杂指令计算机) | RISC(简单指令计算机) |
指令种类 | 多,丰富 | 少,精简 |
指令复杂度 | 频率差别大 | 频率差别小(接近) |
指令长度 | 可变长格式(变化) | 定长格式(固定) |
寻址方式 | 复杂多样 | 少 |
实现(编码)方式 | 微程序控制技术 | 硬布线逻辑控制为主 |
通用寄存器数量 | 一般 | 多,大量(为了提高效率) |
流水线技术 | 不支持 | 支持 |
其他 | 研制时间长 | 优化编程 |
4、指令的流水线处理(重点)
1、指令的控制方式(取指、分析、执行)
1、顺序执行方式:
- 一共n条指令,每条需要3t。
- 总耗时=n×3t=3nt
2、一次重叠执行方式:
- 除了第一个指令3t执行完,其余只需要2t就行,因为每个指令的第一都在前一条指令最后执行时候一起开始了。
- 总耗时=3t +(n-1)×2t=(1+2n)t
3、流水线执行方式:
- 将指令分成不同段,每段由不同的部分去处理,因此可以产生叠加的效果,所有的部件去处理指令的不同段
2、流水线方式
- ①流水周期(△t)为执行时间最长的一段(△t)
- ②流水执行时间
- 理论:1条指令的执行时间+(指令数-1)×流水周期(公式=(t1+t2+t3......+tn)+(n-1)×△t)
- 实践:(公式=(k+n-1)×△t,k为工序数)
- ③流水吞吐率(tp)=指令条数 / 指令流水时间
- ④流水最大吞吐率=1 / 流水时间
- ⑤流水加速比=不使用流水执行时间 / 使用流水线的执行时间
- ⑥流水效率=被占用的空格时间 / 总的空格时间(总的空格时间=工序数 × 流水线执行时间)
- ⑦流水线异步控制影响效率
3、经典例题
八、计算机可靠性(⭐⭐)
1、可靠性概述
- 可靠性与失效率的关系为:R(t)=e^(−λt)(λ=失效率)
- 平均无故障时间:MTBF=1/λ(MTBF= 平均无故障时间,λ=失效率)
- 平均修复时间:A=MTBF/(MTTR+MTBF)(MTTR=平均故障修复时间)
2、可靠性模型
1、串联系统
- 系统可靠性:R=R1 x R2 x...xRn
- 系统失效率:λ=λ1+λ2+λ3+....λn
2、并联系统
- 系统可靠性:R=1-(1-R1) x(1-R2)x(1-Rn)
3、混合系统
- 系统可靠性:R=R×(1-(1-R)^n)×(1-(1-R)^n)×........(1-(1-R)^n)