计算机组成与体系结构
数据的表示
进制转换
R进制转十进制使用按权展开法
十进制转R进制使用短除法
二进制转八进制/十六进制:转八进制从后往前每次去三位,转十六进制每次取四位,不足补零
编码
原码:一个数的二进制表达,一共八位,最高位是符号位(0是正数,1是负数)
反码:正数和原码相同,负数符号位相同其他位按位取反。
补码:正数和原码相同,负数在反码的基础上+1
移码:在浮点运算的阶码计算才会用到,在补码的基础上将首位取反
数值表示范围:
| 整数 | |
|---|---|
| 原码 | -(2n-1-1)~2n-1-1 |
| 反码 | -(2n-1-1)~2n-1-1 |
| 补码 | -2n-1~2n-1-1*(因为(+0= - 0)) |
浮点数运算
浮点数表示(科学计数法):
N=M*Re
M是尾数,e是指数,R是基数。
计算过程:①对阶(低阶换成高阶)→②尾数计算→③结果格式化(确保尾数的第一个位置0<X<10)
计算机结构
CPU包括:运算器(进行运算)和控制器(控制CPU的交互)
运算器包括
①算术逻辑单元ALU
②累加寄存器AC:通用寄存器,存储计算的值
③数据缓中寄存器DR:对内存储器进行读写操作的时候,用来暂存数据
④状态条件寄存器PSW:存储运算过程中的相关标志位
控制器包括
①程序计数器PC:获取下一指令地址
②指令寄存器IR
③指令译码器
④时序部件
Flynn分类法
按指令流和数据流分类:
CISC与RISC
流水线技术
概念:
在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。各种部件同时处理是针对不同指令而言的,它们可同时为多条指令的不同部分进行工作,以提高各部件的利用率和指令的平均执行速度。
具体步骤:→取指→分析→执行→
流水线技术总时间计算
流水线周期为执行时间最长的一段
流水线计算公式为:
1条指令的执行时间+(指令条数-1)*流水线周期
理论公式:(t1+t2+……+tk)+(n-1)*∆t
实践公式:(k+n-1)*∆t
可以用流水线来理解,流水线上产品的移动速度是按耗时最长的工序走的。其他工序可能完成了要等会儿所以流水线周期和每个部分的耗时就变成了执行时间最长的一个工序时长
care:考试的时候先算理论公式,如果没有再计算实践公式。
流水线吞吐率(TP)概念
单位时间内流水线所完成的任务数量或输出的结果数量
流水线吞吐率计算:
TP=指令条数/流水线执行时间
流水线最大吞吐率(理想状态下,忽略启动的影响):
TPMAX=lim_(n→∞)〖(n/(k+n−1)∆t)^n 〗=1/∆t
流水线的加速比概念
完成同样一批任务,不使用流水线所用的时间与使用流水线所用的时间之比。
S=不使用流水线执行时间/使用流水线执行时间
流水线的效率概念
流水线的设备利用率。在时空图上,流水线的效率定义为n个任务占用的时空区与k个流水段总的时空区之比
E=n个任务占用的时空区/k个流水段的总的时空区=T0/kTk
T0=(t0+t1+……+tn)xn
Tk根据时空图
存储系统
层次化存储结构
care:寄存器容量小,速度快,容量和速度相对取反。
Cache概念
提高CPU数据输入和输出的速率,CPU与存储系统间数据传送带宽限制。
在计算机的存储系统体系中,Cache是访问速度最快的层次
使用Cache提升系统性能的的依据是局部性原理
计算同时使用Cache+主存储器系统的平均周期
T3=hXT1+(1-h)T2
T1:Cache的周期时间。
T2:主存储器周期时间。
h:对Cache的访问命中率
局部性原理:
某个时间段集中的访问某个空间的特性。
时间局部性:重复访问一个空间
空间局部性:访问一个空间的时候,下一个指令会访问他临近的空间
工作集理论:工作集是进程运行时被频繁访问的页面集合
存储器
随机存储器特点:断点则丢失信息(eg:内存)
主存-编制
n*m位存储器:有n个存储空间,每个存储空间有m个bit位容量
磁盘结构与参数
存取时间三寻道时间+等待时间(平均定位时间+转动延迟)
注意:寻道时间是指磁头移动到磁道所需的时间;等待时间为等待读写的扇区转到磁头下方所用的时间。
总线系统
根据总线所在位置的不同分类为
内部总线(芯片范围)
系统总线(插件板范围):数据总线(传输数据)、地址总线、控制总线
外部总线(连接外设范围)
可靠性
串联系统与并联系统
串联系统:组件中一个失效全部失效
可靠度:R=R1xR2x……xRn
失效率:X=X1xX2x……Xn
并联系统:一个失效其他还能运行
可靠度:R=1-(1-R1)x(1-R2)x……x(1-Rn)
失效率:1-R
模冗余系统
混合系统
Rx(1-(1-R)3)x(1-(1-R)2)
校验码
码距
整个编码系统中任意两个码字的最小距离,一个码字要改变几位才能变为另外一个码字
eg:
用1位长度的二进制编码,如A=1,B=0,AB之间的最小码距是1,如果A→B的时候发生了错误变成0,系统无法检错。
用2位长度的二进制编码,如A=11,B=00,AB之间的最小码距是2,如果A→B发生了错误,变成了01,系统可以查错,但是因为不知道是A还是B错,所以无法纠错
用三位则可以同时实现纠错和检错
码距、检错、纠错的关系
在一个码组内为了检测e个误码,要求最小码距>e+1
在一个码组内为了纠正t个误码,要求最小码距>2t+1
循环校验码CRC
只能检错,不能纠错
在尾部加入校验位,让编码后的数据能够与循环校验码的生成多项式相除余数为0
他的除法是使用模2除法(异或运算)
具体题目解法:
将题目中的多项式转换为对应二进制,在原始报文后面加上多项式长度-1个0,进行模2除法,将最后余数替换一次修改报文后面的0。
海明校验码
校验位在整个信息编码2n
eg: