-
进制转换
-
2进制转10 进制:按权展开法,各位上的数*2的位权次方之和就是10进制,个位是0,小数位是-1开始。别的进制转10进制也是如此。
-
10转2进制:使用短除法(除基取余发),二进制除以2,16进制除以6。几进制就是除几。
-
2进制,8进制,16进制之间的相互转换,3 个二进制数代表一个8进制,4个二进制代表一个16进制。8421 分别对应4位二进制的取值。
-
小数部分类似,十进制的小数0.1表示1/10,二进制的小数0.1表示1/2,二进制算十进制也就是0.11页就是 1/2+1/4,0.75算出二进制是通过乘以2,得到1就取1,直到位数是0,结果是0.11
-
-
码制
-
正数的原码 反码 补码都一样。移码是符号位取反。1
-
负数的 反码是原码除符号位以外 取反,补码是反码+1,移码是补码符号位取反。
-
-
定点整数和定点小数
-
定点整数,只有整数没有小数,纯整数。
-
定点小数,只有小数没有整数,纯小数。
-
-
定点小数,定点整数原/反/补/移码的取值范围
-
注意负数次方表示的多少分之一。
-
定点整数的补移码的负零,表示-2的(n-1)次方。这个值先看符号位得到负数,然后把符号位当做数值来算的得到一个正数,然后加上负号得来的。
-
定点小数的补移码的负零,表示-1.
-
-
以H结尾的数字是16进制。
-
浮点数的表示格式,浮点数包含小数和整数,尾数是定点小数,决定浮点数的精度,用基数次方来表示有多少个这样的小数。
-
指数也叫做阶码
-
基数表示多少进制
-
尾数的符号位叫做数符,表示整个浮点数是的正负
-
阶码的符号位叫做阶符,正的表示多个个负的表示多少分之一。
-
运算过程是 对阶>尾数计算>结果格式化
-
对阶一般是低阶向高阶看齐(结果就是尾数右移,尾数变小)。低阶向高阶看齐是为了保持符号位不变。
-
-
计算优先级 单目运算符(!,--,++,~)>算数运算符(+,-,乘,除,%)>关系运算符(>,<,==,>=,<=,!=)>逻辑运算符(与或非)>赋值运算符 (=)
-
码字,传输过程允许出现的数据,码字是人为规定的。
-
码距,任意两个码字之间,亦或的结果是1的位数的最小值,就是码距。
-
一串二进制异或的结果是0,说明他们有偶数个1,亦或的结果是1就是奇数个1。
-
00,偶数个1,结果0,偶数个1
-
11,偶数个1,结果0,偶数个1
-
01,奇数个1,结果1,奇数个1
-
10,奇数个1,结果1,奇数个1
-
-
奇偶校验,一种用一位作为校验码,来检查N位数据是否有数据位发生反转的校验方式
-
奇校验,数据位里面有奇数个1校验位就是0,偶数个1,校验位就是1
-
偶校验,数据位里面有奇数个1校验码就是1,偶数个1,校验码就是0
-
发起方使用奇校验,接收方就使用奇校验,发起方使用偶校验,接收方就使用偶校验,两个选定一个,不会都用。
-
奇偶校验只能感知奇数个二进制位变化,不能感知偶数个二进制位变化。
-
奇偶校验只能感知变化,不能纠错,因为不知道错误位。
-
校验数据的方式,接收方使用 数据+校验位做异或运算,如果约定的奇校验,得到的1的个数是奇数就通过。
-
奇偶校验校验码一般在首位。
-
-
CRC(Cyclic Redundancy Check)冗余循环校验
-
CRC可以校验奇数或者偶数个二进制位的变化,但是不知道变化的位置,不能纠错。
-
CRC校验码一般在末尾。
-
CRC校验码部分叫做FCS,帧校验序列。
-
使用 模2除法,模2除法是通过亦或算去余数的。
-
-
CRC的计算和验证过程
-
如上图原始数据是10110011,除数是11001,5位,余数必须要比除数小,所以是4位,所以在数据位后面补4个0000,然后做模二除法。
-
除法的过程不比较大小,只要求对应位数异或,位数够就商1,不够商0。
-
我们看第一次下落补全的红色0的时候,余数数01,这时候如果下落的是01,那么余数就是0,就除尽了。后面的多了的0是有些余数位数更多的时候用的。这里余数最多有4位,最大值是1001,也就是倒数第二次余数是1,最后一次下落000的情况。余数最大值是1111,必须除数的后4位是1111才会出现。
-
所以,把补得红色的0换成最后的余数0100,再次做模二除法一定可以除尽,接受方收到数据以后也就是通过判断是否除尽来确认是否有变化的。
-
上面只是说明了不变的情况一定可以除尽,但是为什么变化一定除不尽?我们其实有一个大前提,数据长度是一定的。不想hash数据长度是不定的。hash有重复,这个不会。
-
如果数据长度一定,那么通过余数 和除数是可以唯一的得到原文的。上面图倒着看余数是0100,后面两位是00是补位的,01才是余数所以可以唯一的确定倒数第二行的数据11001的最后两位一定和0100的前两位对其,我们就可以的到倒数第三行是11000,这样倒推上去,只要长度满足,就得到了原文。能用校验码,除数,原文长度就表示原文,这么神奇的吗?还是我的推导过程错了?所以CRC是找到了任意长度字符内循环的规律?
-
除数有什么限制?除数额第一位必须是1,最后以为必须是1?
-
-
海明校验
- 海明码可以校验一位差错的变化,并且可以知道异常位置,可以纠错。
- 海明码纠错吗生产和验证过程
-
CPU 的组成
-
指令的结构
-
寻址方式
-
CISC(Complex Instruction Set Computer)复杂指令系统计算机,
-
RISC(Reduced Instruction Set Computer)精简指令系统计算机。
-
CISC和RISC区别
-
微码,解析复杂执行的一小段程序。
-
流水线概念
流水线周期:为流水线各阶段时间中最大的一个。
流水线执行时间理论计算公式: (t1+t2+t3...+tk)+(n-1)*t t为周期
流水线执行时间实践公式: kt+(n-1)t t为周期
流水线吞吐率: 执行的指令数量/(执行时间*单位时间)
流水线最大吞吐率: 1/ (周期*单位时间)
流水线加上比:
流水线加速比:
刘淑娴效率:
-
RAM(Random Access Memory) 随机访问内存
-
ROM(Read-Only Memory)只读内存
-
BIOS(Basic Input Output System) 基本输入输出系统
-
层次化存储结构
-
三级存储结构指的是 cache,内存,外存
-
寄存的容量一般是 byte ,缓存cache容量是MB
-
层次化存储结构分类
-
缓存和主存平均访问时间
-
缓存和主存之间的映射方式
重点:主存和缓存之间的映设由 硬件电路直接完成
-
直接相连映像,主存每个区的特定也只能放到缓存的指定页。
-
全相联映像,主存的任意页都能放到缓存的任意页。
-
组相联映像,对应组的主从页可以放到对应缓存的同组的任意页。
-
三种映像对比
-
主存编址方式和计算
-
按字节编址就是8个bit一组,也就是1Byte一般写作1B(大写的B表示byte),小写的b表示bit.
-
数据传输控制方式
重点在于DMA是CPU执行完当前总线周期即释放总线控制权,此时DMA芯片接手。
-
程序中断方式的过程
IO设备发出中断信号->CPU保存上下文到栈->通过中断向量表找到信号发起的IO服务程序
-
总线的特点:分时双工
-
数据传输方式
-
单工:只能单项通信,比如http协议
-
半双工:可以双向通信,但是同一时间只能单向通信,比如对讲机
-
全双工: 可以双向通信,并且发送数据的时候也可以接受数据,socket 连接发送和接受数据。
-
频分双工:按照一定频率,切换接受和发送数据,让半双工看起来和全双工一样的可以同事发送和接受数据。
-
时分双工:按照时间换动态的切换发送和接受数据。和频分双工类似都是用半双工模拟全双工的效果,区别在于对于发送和接受数据量差异较大的情况比较适用。
-
-
可靠性
-
MTTF(Mean Time Between Failure):平均无故障时间
-
MTTR(Mean time to repair):平均修复时间
-
MTBF(Mean Time Between Failure):平均故障间隔时间,等于MTTR+MTTF
-
-
系统可靠性分析-和可靠性指标
-
串并联可靠性的计算,下图R是可用性
-
性能指标
重点:主频是一秒钟有能完成的周期数。
CPI 是完成一个指令需要的平均周期数。
IPS(每秒可以完成的指令数)=主频/CPI
吞吐量:是一定时间处理的请求数.
吞吐量:是单位时间完成的请求数.