计算机系统知识
一、数据的表示
1、进制转换
十进制(D) 0~9
二进制(B) 0,1
十六进制(H) 0~9,A,B,C,D,E,F
R 进制 ——> 十进制 :按权展开法
十进制 ——> R 进制 :短除法(除基取余法)
十进制 ——> 二进制(小数) :乘2取整法
十进制 ——> 二进制 :减法(以94为例)
20=1, 21=2, 22=4, 23=8, 24=16, 25=32, 26=64, 27=128, 28=256, 29=512, 210=1024
94-64=30(26=64)
30-16=14(24=16)
14-8=6(23=8)
6-4=2(22=4)
2-2=0(21=2)
结束
位号 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|
取值 | 1 | 0 | 1 | 1 | 1 | 1 | 0 |
94转为二进制为1011110
二进制 ——> 八、十六进制 (以10001110为例) 逆过来也适用
- 二——>八
(0)10 001 110 (三位数一组,转为十进制,高位补0)
2 1 6 (八进制结果) - 二——>十六
1000 1110 (四位数一组,转为十进制)
8 E (十六进制结果)
2、码制(原码/反码/补码/移码)
原码:最高位是符号位,其余低位表示数值的绝对值
反码:正数的反码与原码相同,负数的反码是其绝对值按位取反(符号位不变)
补码:正数的补码与原码相同,负数的补码是其反码末位加1(符号位不变)
移码:补码的符号位按位取反(常用于表示浮点数中的阶码)
n:机械字长 | 码制 | 定点整数(纯整数) | 定点小数(纯小数) | 数码个数 |
---|---|---|---|---|
+0,-0,都是0 | 原码 | -(2n-1-1) ~ +(2n-1-1) | -(1-2-(n-1)) ~ +(1-2-(n-1)) | 2n-1 |
所以个数要减1 | 反码 | -(2n-1-1) ~ +(2n-1-1) | -(1-2-(n-1)) ~ +(1-2-(n-1)) | 2n-1 |
+0,-0被 | 补码 | -2n-1 ~ +(2n-1-1) | -1 ~ +(1-2-(n-1)) | 2n |
利用起来了 | 移码 | -2n-1 ~ +(2n-1-1) | -1 ~ +(1-2-(n-1)) | 2n |
是人为规定的
n=8时:-128的补码为10000000;-1的补码为10000000
3、浮点数的表示
N=尾数 * 基数指数(阶码)
浮点数的表示格式如下:
阶符 | 阶码 | 数符 | 尾数 |
---|
运算过程:
对阶 > 尾数计算 > 结果规格化
尾数≥0,将尾数限定在[0.5 , 1]之间,尾数M=0.1XXX…X(X可为0/1)
尾数<0,将尾数限定在[-1 , -0.5]之间,尾数M=0.1XXX…X(X可为0/1)
特点:
1.一般尾数用补码,阶码用移码(工业标准IEEE754中,尾数用原码)
2.阶码的位数决定数的表示范围,位数越多范围越大
3.尾数的位数决定数的有效精度,位数越多精度越高对阶时,小数向大数看齐
4.对阶是通过较小数的尾数右移实现的
4、逻辑运算
关系运算符及其优先级
<<=>=> 优先级相同(高)
==!= 优先级相同(低)
1:真 ;0:假
逻辑或(||):都为0时为0
逻辑与(&&):都为1时为1
逻辑非(!):取反
逻辑异或(⊕):相同为0,不同为1
优先级(低—>高)
赋值运算符>逻辑与>逻辑或>关系运算符>算术运算符>逻辑非
短路原则
例:(m=a>b)&&(n=c>d)
当a=1,b=2,c=3,d=4,m和n的原值为1时,由于"a>b"的值为0,因此m=0,而"n=c>d"不被执行,因此n的值不是0而仍保持原值1
二、校验码
1、校验码基础知识
码距:任何一种编码都由许多码字构成,任意两个码字之间最少变化的二进制位数就称为数据校验码的码距
2、奇偶校验码
- 编码方式:由若干位有效信息(如一个字节),再加上一个二进制位(校验位)组成校验码
- 奇校验:整个校验码(有效信息位和校验位)中"1"的个数为奇数
偶校验:整个校验码(有效信息位和校验位)中"1"的个数为偶数 - 奇偶校验,可检查1位(奇数位)的错误,不可纠错
3、CRC循环冗余校验码(掌握特点即可,具体编码过程考试中未涉及)
- CRC校验,可检错,不可纠错
- 编码方法:在k位信息码之后拼接r位校验码
- 把接收到的CRC码用约定的生成多项式G(X)去除(模二除法),如果正确,则余数为0;如果某一位出错,则余数不为0。不同的位数出,梦个数不同,余数和出错位序号之间有惟一的对应关系
4、海明校验码
- 海明校验,可检错,也可纠错
- 构成方法:在数据位之间的特定位置上插入k个校验位,通过扩大码距来实现检错和纠错
- 数据位:n位 ; 校验位:k位
2k-1≥n+k 2k≥n+k+1 - 海明码的校验关系表(软件设计师教程(第五版)P11)
具体过程例题(软件设计师教程(第五版)P12)
三、CPU(中央处理单元)的组成(运算器与控制器)
1、计算机结构
2、CPU结构
1、运算器
- 算术逻辑单元ALU:数据的算术运算和逻辑运算
- 累加寄存器AC:通用寄存器,为ALU提供一个工作区,用来暂存数据
- 数据缓冲寄存器DR:写内存时,暂存指令或数据
- 状态条件寄存器PSW:存状态标志与控制标志
(争议:也有将其归为控制器的)
2、控制器
- 程序计数器PC:存储下一条要执行指令的地址
- 指令寄存器IR:存储即将执行的指令
- 指令译码器ID:对指令中的操作码字段进行分析解释
- 时序部件:提供时序控制信号
- 地址寄存器AR:保存当前CPU所访问的内存单元的地址(不常考)
四、指令系统
1、寻址方式
- 指令的基本概念
一条指令就是机器语言的一个语句,它是一组有意义的二进制代码
指令的基本格式如下:
操作码字段 | 地址码字段 |
---|
- 寻址方式
①立即寻址方式
特点:操作数直接在指令中,速度快,灵活性差
②直接寻址方式
特点:指令中存放的是操作数的地址
③间接寻址方式
特点:指令中存放的是操作数的地址的地址
④寄存器寻址方式
特点:寄存器存放操作数
⑤寄存器间接寻址方式
特点:寄存器内存放的是操作数的地址
2、CISC与RISC
- CISC与RISC是指令集发展的两种途径
指令系统类型 | 指令 | 寻址方式 | 实现方式 | 其它 |
---|---|---|---|---|
CISC(复杂指令集计算机) | 数量多,使用频率差别大,可变长格式 | 支持多种 | 微程序控制技术(微码) | 研制周期长 |
RISC(精简指令集计算机) | 数量少,使用频率接近,定长格式,大部分为单周期指令,操作寄存器,只有Load/Store 操作内存 | 支持方式少 | 增加了通用寄存器;布线逻辑控制为主;适合采用流水线 | 优化编译,有效支持高级语言 |
-
CISC与RISC比较,分哪些维度?
指令数量、指令使用频率,寻址方式,寄存器,流水线支持,高级语言支持CISC:复杂,指令数量多,频率差别大,多寻址
RISC:精简,指令数量少,操作寄存器,单周期,少寻址,多通用寄存器,流水线
3、流水线技术
-
概念
①相关参数计算:流水线执行时间计算、流水线吞吐率、流水线加速比、流水线效率(后两个只在高级考试中出现,不需要了解)
②流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术
③流水处理时空图 -
流水线计算
①流水线周期 t :为执行时间最长的一段(即 取指、分析(指令译码、取操作数)、执行 这些步骤中时间最长的)②执行时间公式(n:指令条数;t:周期;k:步骤有几段(段数))
第1条指令执行时间+(指令条数-1)*流水线周期理论公式:(t1+t2+ ··· +tn)+(n-1)*t
红色部分为第1条指令执行时间,即流水线建立时间实践公式:k*t+(n-1)*t
默认用理论公式,若无答案再用实践公式③吞吐率计算
流水线的吞吐率(Though Put rate,TP)是指在单位时间内流水线所完成的任务数量或输出的结果数量。基本公式:TP=指令条数/流水线执行时间
最大吞吐率:TPmax = limn->∞n / ((k+n-1)*t) = 1/t(即流水线周期的倒数)
五、存储系统
1、层次化存储结构
虚拟存储体系由主存-辅存两级存储器构成
局部性原理是层次化存储结构的支撑
时间局部性:刚被访问的内容,立即又被访问(循环体)
空间局部性:刚被访问的内容,临近的空间很快被访问(顺序结构)
2、存储器的分类
1、按位置分类
- 内存(主存):用来存储当前运行所需要的程序和数据,速度快,容量小
- 外存(辅存):用来存储当前不参与运行的数据,容量大但速度慢
2、按存取方式分类
- 按内容存取
相联存储器(如Cache) - 按地址存取
①随机存取存储器RAM(如内存)
②顺序存取存储器SAM(如磁带)
③直接存取存储器DAM(如磁盘)
3、按工作方式分类
- 随机存取存储器RAM(如内存DRAM)
- 只读存储器ROM(如BIOS)
DRAM:动态随机存取存储器
SRAM:静态随机存取存储器
Cache:高速缓存
EEPROM:电可擦可编程只读存储器
3、高速缓存Cache
1、概念
- 在计算机的存储系统体系中,Cache是访问速度最快的层次
(若有寄存器,则寄存器最快) - 使用Cache改善系统性能的依据是程序的局部性原理
时间局部性
空间局部性 - 如果以h代表对Cache的访问命中率,t1表示Cache的周期时间,t2表示主存储器周期时间,以读操作为例,使用 “Cache+主存储器” 的系统的平均周期为t3,则:
t3 = h*t1 + (1 - h)*t2
其中,(1-h)又称为失效率(未命中率)
2、映像
-
地址映像是将主存与Cache的存储空间划分为若干大小相同的页(或称为块)。
例如,某机的主存容量为1GB,划分为2048页,每页512KB;Cache容量为8MB,划分为16页,每页512KB -
①直接相联映像:硬件电路较简单,但冲突率很高
②全相联映像:电路难于设计和实现,只适用于小容量的cache,冲突率较低
③组相联映像:直接相联与全相联的折中
注:主存与Cache之间的地址映射由 硬件 直接完成
冲突率 | 电路复杂度 | |
---|---|---|
直接相联映像 | 高 | 简单 |
全相联映像 | 低 | 复杂 |
组相联映像 | 中 | 折中 |
3、主存编址计算
-
存储单元
存储单元个数 = 最大地址 - 最小地址 + 1 -
编址内容
按字编址:存储体的存储单元是字存储单元,即最小寻址单位是一个字按字节编址:存储体的存储单元是字节存储单元,即最小寻址单位是一个字节
-
总容量=存储单元个数 * 编址内容
-
根据存储器所要求的容量和选定的存储芯片的容量,就可以计算出所需芯片的总数,即:
总片数=总容量 / 每片的容量
六、输入/输出技术
1、数据传输控制方式
- 程序控制(查询)方式:分为无条件传送和程序查询方式两种
方法简单,硬件开销小,但I/O能力不高,严重影响CPU的利用率 - 程序中断方式:与程序控制方式相比,中断方式因为CPU无需等待而提高了传输请求的响应速度
- DMA(直接存储器存取)方式:DMA方式是为了在主存与外设之间实现高速、批量数据交换而设置的。DMA方式比程序控制方式与中断方式都高效
(DMAC向总线裁决逻辑提出总线请求;CPU执行完当前总线周期即可释放总线控制权。此时DMA响应,通过DMAC通知I/O接口开始DMA传输)
CPU是在一个总线周期结束时响应DMA请求的 - 通道方式(考试中未出现)
- I/O处理机(考试中未出现)
从1~5,效率越来越高
2、中断处理过程
- CPU无需等待也不必查询I/O状态
- 当I/O系统准备好以后,发出中断请求信号通知CPU
- CPU接到中断请求后,保存正在执行程序的现场(保存现场,相应的状态信息会保存到栈当中),打断的程序当前位置即为断点
- (通过中断向量表)转入I/O中的服务程序的执行,完成I/O系统的数据交换(中断向量表保存中断服务程序的入口地址)
- 返回被打断的程序继续执行(恢复现场)
七、总线系统
1、总线的特点
分时双工
一条总线同一时刻仅允许一个设备发送,但允许多个设备接收。
2、总线的分类
- 数据总线(Data Bus):在CPU与RAM之间来回传送需要处理或是需要储存的数据
- 地址总线(Address Bus):用来指定在RAM (Random Access Memory)之中储存的数据的地址
- 控制总线(Control Bus):将微处理器控制单元(Control Unit)的信号,传送到周边设备
八、系统可靠性分析
1、可靠性指标
平均无故障时间→(MTTF)MTTF=1/λ,λ为失效率
平均故障修复时间→(MTTR)MTTR=1/μ,μ为修复率
平均故障间隔时间→(MTBF)MTBF=MTTR+MTTF
系统可用性→ MTTF/(MTTR+MTTF)*100%
- 在实际应用中,一般MTTR很小,所以通常认为MTBF ≈ MTTF
- 可靠性可以用可以用MTTF/ (1+MTTF)来度量
2、可靠性参数计算
1、串联系统
R=R1 *R2 *… *Rn
2、并联系统
R=1-(1-R1) *(1-R2) *… * (1-Rn)
3、N模混合系统
R* (1-(1-R)3)* (1-(1-R)2)
九、系统性能设计
1、性能指标
- 字长(32bit)和数据通路宽度(一次性数据线路能通过的数据量,bit)
- 主存容量和存取速度
- 运算速度
-
主频(数据在1秒当中通过的次数,2.4GHz)与
CPU时钟周期(每一次通过花费的时间,1/主频)
1s/2.4GHz(单位为s) -
CPI与IPC
平均每条指令的平均时钟周期个数(CPI,clock per instruction)每(时钟)周期运行指令条数(IPC,instruction per clock)
-
MIPS与MFLOPS
百万条指令每秒(MIPS,Million Instructions Per Second)
MIPS=指令条数/(执行时间 *106)=主频/CPI=主频 *IPC每秒百万个浮点操作(MFLOPS,Million Floating-point Operations per Second)
MFLOPS=浮点操作次数/(执行时间 *106)
-
- 吞吐量(某一时间间隔内所完成的任务量)与吞吐率(单位时间内所完成的任务量)
- 响应时间(RT)与完成时间(TAT)
- 兼容性