一、计算机组成与体系结构:
1.数据的表示
进制转换
1.1任意进制转换成十进制(按权展开法)
1.2十进制转换成任意进制(短除法)
将94转换成二进制
1.3二进制转换成八进制和十六进制
八进制:将二进制数3个3个分组,然后将分好组的数转换成十进制,所有数合在一起
十六进制:将二进制数4个4个分组,然后将分好组的数转换转换成十进制,所有数合在一起(10–>a)
四码(原反补移)
源码:
将1转换成二进制形式用1bit(也就是8个位存储)就是00000001,最高位是符号位,正数为0负数为1,-1则为10000001(原码不可以直接相加)
反码:
正数的原码和反码相同,负数的补码是符号位不变其余位置按位取反,-1的反码就是11111110,1和-1的反码相加就是11111111,要获得算术结果将反码运算结果再按反码的方式取反即可,1000000=-0
补码:
正数的原码和补码相同,负数的补码就是在反码的基础上+1,-1的补码就是11111111,补码运算1-1就是000000(高位溢出)得到算术结果0
移码:
移码:在补码的基础上,将符号位取反得到移码,符号颠倒(1表示整数,0表示负数)10000001+01111111=00000000
取值范围
原码:-127~127
反码:-127~127
补码:-128~127
具体可按公式计算:n是位数
浮点数运算
浮点数计算必须化成指数形式,先是两个浮点数指数相同然后运算然后格式化,最后的结果必须是x.xxx×10^x。
2.计算机结构
CPU结构(运算器与控制器的组成)
在计算机结构中讲到的主机有区别于我们现实中讲到的主机,计算机结构中的主机就是指CPU和主存储器
运算器:
ALU(算数逻辑单元):用于进行算数运算
AC(累加寄存器):用于算数暂时存储
DR(数据缓冲寄存器):读写的时候暂时存储数据
PSW(状态条件寄存器):存储一些信息,运算时候的标志等等
控制器:
PC(程序计数器):获取执行下一条指令地址(简单来说就是识别你代码的行号)
IR(指令寄存器):用于CPU运行指令
时令译码器:
时序部件:
3.Flynn分类法
计算机体系结构分类(Flynn)
计算机体系结构类型由指令流和数据流组合而成,共有四种:
4.CISC与RISC
指令系统类型
两种指令集
5.流水线技术
概念
流水线技术能够提高各部件的工作效率,让每个部件不会有空闲时间,极大提高响应速度。
流水线计算
流水线周期:
流水线计算分为三个阶段:取指——分析——执行,流水线周期就是三个阶段耗时中最长的。
这里有两种公式进行计算
-
理论公式
一条指令耗时+(n条指令-1×流水线周期)
-
实践公式
但是实际上在三个阶段耗时不相同时,可能会存在某个阶段执行完成在等待上一阶段执行完毕。这样,实际上所有阶段的耗时都是一个流水线周期。于是有这样的实践公式 (阶段数量+指令数-1)×一个流水线周期
应试可以先使用理论公式计算如果没有正确答案再用实践公式计算
流水线吞吐率(TP)计算:
吞吐率就是单位时间内处理任务的数量
TP = 指令条数 / 流水线执行时间(执行完所有指令的时间)
最大吞吐率:
1 / 一个流水线周期
流水线加速比:
s = 不使用流水线执行完所有指令时间 / 使用流水线执行完所有指令的时间
流水线效率:
流水线效率就是设备的利用率,因为处理指令的耗时不同总会有设备空闲下来。
公式为 E = 一个任务的耗时×任务数 / 总耗时数
例如
(Δt+Δt+Δt+3Δt)×4 / 15Δt×4
6.存储系统
层次化存储结构
CPU——cache——内存——硬盘
cache
cache能够突破冯·诺伊曼瓶颈
计算
平均时间就是 命中率×cache周期 + 失效率×存储器周期
局部性原理
- 时间局部性:循环
- 空间局部性:数组
- 工作集局部性:被频繁访问的页面集合
主存
- RAM随机
- ROM只读
主存计算(编址)
内存地址最后是H,代表前面都是十六进制,计算地质单元1+C7FFF-AC000=1C000H ,转换成10进制,再将它转换成K个地址单元需要/2^10计算出112K个。112K×16位就是总共多少位再/28片就是一片芯片有多少位,设一个芯片存xbit则 X×16k=一片芯片总共的位数就是4
磁盘结构与参数
存取时间 = 寻道时间 + 等待时间(旋转延迟时间)
旋转周期是33ms有十一块,那从一个块开始到结束需要3ms,处理这个记录需要3ms那一个记录一共需要6ms(注意这里磁盘一旦开始转动就不会停止,所以处理记录的时间,磁头就会转到下一处记录的开始)磁头需要转一圈回来读取第二条记录那意思就是处理一条记录需要一个旋转周期加3ms也就是36ms。一共有十条记录需要这么处理就是10×36ms就是360ms。这时磁头指到R10开始读取和处理一共需要6ms。总共需要360+6=366ms
优化分布之后,处理时间为6ms×11块=66ms
7.总线系统
根据所处位置的不同可以分为三种:
- 内部总线
- 系统总线
- 外部总线
8.可靠性
串联系统和并联系统
计算可靠率和失效率
串联:
可靠率 = 所有系统可靠率的乘积
失效率 = 所有系统失效率相加(在某种情况下失效)
并联:
可靠率 = 1 - 所有失效率的乘积
失效率 = 1 - 可靠率
n模冗余系统与混合系统
n模冗余系统:
已经是几乎不会考到了,考到就代公式计算即可
混合系统:
首先,总的来说可以看成是一个串联系统,那计算可靠度就是累乘公式,并联可靠度又是1-失效率的乘积,即可计算出整个系统可靠度
9.校验码
差错控制——CRC与海明校验码
码距:
编码系统中任意两个码字的最小距离。
检错与纠错:
当出现非法编码时可以检错,找到最接近的合法编码即为纠错
检测多个错误(e)要求码距 d >= e+1
纠错多个错误(t)要求码距 d >= 2t+1
循环校验码CRC
CRC就是对原始报文的生成多项式转换为二进制然后用模2除法除于原始报文,如果除尽则无错,有余数则有错。这是 一种可检错,但无法纠错的校验码
异或:
如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。
例如:
原始报文为“11001010101”,其生成多项式为“x4+x3+x+1”,CRC编码后的结果为?
首先x就是进制也就是按位展开了,“24+23+2+1”转换成2进制是11011,将原始报文除于这个11011。除法中从高位向低位除,到最后不够除需要补位一般是补生成多项式中的最高次数的位数,例题这需要补4位在原始报文末尾中加入0000,最后将余数补位到0000的位置即可得到CRC校验码。
得到CRC校验码之后,与生成多项式的二进制编码11011做摸2除法,除尽。
海明校验码
海明校验码是将校验码混合到信息当中,规定2的n次方位放校验码。当有1个信息位时,至少有3个位。
确定校验码:
2^r >= X+1+r(r是校验码位数,X是信息的位数)
海明校验码编码:
- 将信息位填入相应位置,空出校验码位置。
- 将每个信息位的位数(比如在第7位,那就是7)分解成二进制按位展开的形式(7=22+21+2^0),可见它影响到第1、2、3位的校验位。
- 将所有的信息位的位数按第二步展开后,将影响同一个校验位的信息(比如1和0和1)异或得出结果后即是校验位的填入信息
如何检错和纠错:
收到含有海明校验码的信息。会提取出校验码,如何将信息位再计算一次海明校验码如果相同则无错。不同会将提取的校验码和计算的校验码进行异或计算,得出的结果中哪一位是1代表哪一位出错。出错在二进制中取反即可纠错。