文章目录
计算机组成与体系结构
数据的表示(++++)
进制转换
- R进制转十进制使用按权展开法,其具体操作方式为:
- 将R进制数的每一位数值用R形式表示,即幂的底数是R,指数为k,k与该位和小数点之间的距离有关。当该位位于小数点左边,k值是该位和小数点之间数码的个数,而当该位位于小数点右边,k值是负值,其绝对值是该位和小数点之间数码的个数加1
- 例如二进制10100.01 = 1×24 + 1×22 + 1×2-2
- 例如七进制604.01=6×72 + 4×70 + 1×7-2
- 十进制转R机制使用短除法。例如将94转换为二进制数
- 2 | 94 余0
- 2 | 47 1
- 2 | 23 1
- 2 | 11 1
- 2 | 5 1
- 2 | 2 0
- 1
- 结果倒着来看,为1011110
- 小数部分乘R,取整,结果顺着来看
- 二进制转八进制与十六进制
- 2->8:把二进制数从低位到高位每3位为一份分开,然后算出每一份的数
- 2->16:把二进制数从低位到高位每4位为一份分开,然后算出每一份的数
- 小数部分从小数点开始每x位为一份分开
- 八进制与十六进制转二进制反着来
码制
-
分别是原码,反码,补码,移码
码制 数值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表示正数,1表示负数
-
反码:
- 正数的反码等于它本身
- 负数的反码等于除符号位其他位取反
-
补码:
- 正数的补码等于它本身
- 负数的补码等于在反码的基础上+1
-
移码:
- 在补码的基础上符号位取反
-
数值表示范围
码制 定点整数(最高位符号位) 定点小数(小数点在符号位后面) 原码 -(2n-1-1) ~ +(2n-1-1) -(1-2-(n-1)) ~ +(1-2-(n-1)) 反码 -(2n-1-1) ~ +(2n-1-1) -(1-2-(n-1)) ~ +(1-2-(n-1)) 补码 -2n-1 ~ +(2n-1-1) -1 ~ +(1-2-(n-1)) 移码 -2n-1 ~ +(2n-1-1) -1 ~ +(1-2-(n-1)) - 补码和移码比原码和反码少一个数:-0
-
定点整数:
- 当n=8时
- 原码:-127~127,二进制:1111 1111 ~ 0111 1111
- 补码:1000 0000 ~ 0111 1111
- 其中-128的补码为1000 0000是人为规定的
-
定点小数:
- 当n=8时
- 原码:-0.1111111 ~ +0.1111111,二进制:1.111 1111 ~ 0.111 1111
- 补码:1.000 0000 ~ 0.111 1111
- 其中-1的补码为1.000 0000是人为规定的
浮点的运算
- 浮点数的表示:N=尾数*基数指数(阶码)(科学计数法)
- 运算过程:对阶 > 尾数计算 > 结果格式化
- 特点:
- 一般尾数用补码,阶码用移码
- 阶码的位数决定数的表示范围,位数越多范围越大
- 尾数的位数决定数的有效精度,位数越多精度越高
- 对阶时,小数向大数看齐
- 对阶是通过较小数的小数点左移实现的
运算器与控制器(++++)
计算机结构
- 五大部件:运算器,控制器,存储器,输入设备,输出设备
- CPU由运算器、控制器、寄存器组和内部总线组成
- 运算器包含:
- 算数逻辑单元ALU:数据的算术运算和逻辑运算
- 累加寄存器AC:通用寄存器,为ALU提供一个工作区,用在暂存数
- 数据缓冲寄存器DR:写内存时,暂存指令或数据
- 状态条件寄存器:存状态标志与控制标志(争议:也有将其归为控制器的)
- 控制器包含:
- 程序计数器PC:存储下一条要执行指令的地址
- 指令寄存器IR:存储即将执行的指令
- 指令译码器ID:对指令中的操作码字段进行分析解释
- 时序部件:提供时序控制信号
指令的基本概念
- 一条指令就是机器语言的一个语句,它是一组有意义的二进制代码,指令的基本格式如下:
- 操作码字段 | 地址码字段
- 操作码部分指出了计算机要执行什么性质的操作,如加法、减法、取数存数等。地址码字段需要包含各操作数的地址及操作结果的存放地址等,从其地址结构的角度可以分为三地址指令、二地址指令、一地址指令和零地址指令
- OP | A1 | A2 | A3
- OP | A1 | A2
- OP | A1
- OP
- OP代表操作
- 例如:a+b=c -> + | a | b | c
寻址方式
- 立即导址方式
- 特点:操作数直接在指令中,速度快,灵活性差
- 直接寻址方式
- 特点:指令中存放的是操作数的地址
- 间接寻址方式
- 特点:指令中存放了一个地址,这个地址对应的内容是操作数的地址
- 寄存器寻址方式
- 特点:寄存器存放操作数
- 寄存器间接导址方式
- 特点:奇存器内存放的是操作数的地址
Flynn分类法(++)
- 按并行程度进行分类
- S:single单一,I:instructions指令,D:data,M:Multiple多的
体系结构类型 | 结构 | 关键特性 | 代表 |
---|---|---|---|
单指令流单数据流 SISD | 控制部分:一个 | 处理器:一个 | 主存模块:一个 | 单处理器系统 | |
单指令流多数据流 SIMD | 控制部分:一个 | 处理器:多个 | 主存模块:多个 | 各处理器以异步的形式执行同一条指令 | 并列处理机、阵列处理机、超级向量处理机 |
多指令流单数据流 MISD | 控制部分:多个 | 处理器:一个 | 主存模块:多个 | 被证明不可能,至少是不实际 | 目前没有,有文献称流水线计算机为此类 |
多指令流多数据流 MIMD | 控制部分:多个 | 处理器:多个 | 主存模块:多个 | 能够实现作业、任务、指令等各级全面并行 | 多处理机系统、多计算机 |
CISC与RISC(++)
指令系统类型 | 指令 | 寻址方式 | 实现方式 | 其他 |
---|---|---|---|---|
CISC(复杂) | 数量多,使用频率差别大,可变长格式 | 支持多种 | 微程序控制技术(微码) | 研制周期长 |
RISC(精简) | 数量少,使用频率接近,定长格式,大部分为单周期指令操作寄存器,只有Load/Store操作内存 | 支持方式少 | 增加了通用寄存器,硬布线逻辑控制为主,适合采用流水线 | 优化编译,有效支持高级语言 |
- CISC:复杂指令集计算机 Complex Instruction Set Computer 复杂,指令数量多,频率差别大,多寻址
- RISC:精简指令集计算机 Reduced Instruction Set Computing 精简,指令数量少,操作寄存器,单周期,少寻址,多通用寄存器,流水线
流水线技术(++++)
- 流水线概念:
- 相关参数计算:流水线执行时间计算、流水线吞吐率、流水线加速比、流水线效率
- 流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术,将空余的时间片利用起来。各种部件同时处理是针对不同指令而言的,它们可同时为多条指令的不同部分进行工作以提高各部件的利用率和指令的平均执行速度
- 流水线计算:
- 流水线周期为执行时间最长的一段
- 流水线计算公式为:
- 1条指令执行时间+(指令条数 - 1) * 流水线周期
- 一条指令k个步骤给充足时间执行公式:k * 流水线周期 + (指令条数 - 1) * 流水线周期
- 例题:
- 一条指令的执行过程可以分解为取指、分析和执行三步,在取址时间t取指=3△t、分析时间t分析=2△t、执行时间t执行=4△t的情况下,若按串行方式执行,则10条指令全部执行完需要()△t;若按流水线的方式执行,流水线周期为()△t,则10条指令全部执行完需要()△t
- 答案:90,4,45
- 超标量流水线:由两条流水线组成,度为2,能同时进行两个操作比如两个取址
- 流水线吞吐率:
- 流水线的吞吐率(Though Put rate,TP)是指在单位时间内流水线所完成的任务数量或输出的结果数量。计算流水线吞吐率的最基本的公式如下:
- TP=指令条数 / 流水线执行时间
- 流水线最大吞吐率:
- TP(max)=Lim(n->∞) n / ((k+n-1)*△t)=1 / △t
- 流水线的吞吐率(Though Put rate,TP)是指在单位时间内流水线所完成的任务数量或输出的结果数量。计算流水线吞吐率的最基本的公式如下:
存储系统(++++)
层次化存储结构
- (速度快,容量小)CPU—Cache—内存(主存)—外存(辅存)(速度慢,容量大)
- CPU:寄存器,最快,但容量小,成本高
- Cache:按内容存取,在计算机的存储系统体系中,Cache是访问速度最快的层次(若有寄存器,则寄存器最快),使用Cache改善系统性能的依据是程序的局部性原理
- 如果以h代表Cache的访问命中率,t1表示Cache的周期,t2表示主存周期,以读操作为例,使用"Cache+主存"的系统平均周期为t3,则:
- t3 = h×t1+(1-h)×t2
- 其中,(1-h)又称为失效率(未命中率)
- 映像:
- 直接相联映像:硬件电路较简单,但冲突率很高
- 全相联映像:电路难于设计和实现,只适用于小容量的cache,冲突率较低
- 组相联映像:直接相联与全相联的折中
- 地址映像是将主存与Cache的存储空间划分为若干大小相同的页(或称为块)
- 例如,某机的主存容量为1GB,划分为2048页,每页512KB;Cache容量为8MB,划分为16页,每页512KB
- 主存分为128个区,每个区16页,直接相联映像只能存每个区对应页数的内容,而且一次只能放一个区的对应页数
- 组相联映像在直接相联映像的基础上把多个页分为一组,每个组存对应组的内容
- 例如,某机的主存容量为1GB,划分为2048页,每页512KB;Cache容量为8MB,划分为16页,每页512KB
- 如果以h代表Cache的访问命中率,t1表示Cache的周期,t2表示主存周期,以读操作为例,使用"Cache+主存"的系统平均周期为t3,则:
- 内存:分为随机存储器(RAM)和只读存储器(ROM)
- 外存:硬盘,光盘,U盘等
编址与计算
- 按字编址:存储体的存储单元是字存储单元,即最小寻址单位是一个字,2字节
- 按字节编址:存储体的存储单元是字节存储单元;即最小寻址单位是字节,1字节(Byte) = 8位(bit)
- 根据存储器所要求的容量和选定的存储芯片的容量,就可以计算出所需芯片的总数,即:
- 总片数 = 总容量 / 每片的容量
- 例题:
- 若内存地址区间为4000H ~43FFH,每个存储单元可存储16位二制数,该内存区域用4片存储器芯片构成,则构成该内存所用的存储器芯片的容量是多少?
- 答案:容量:43FFH - 4000H + 1 (区间计算要+1)= 400H = 210 × 16bit,有4片于是每片为210 × 4bit
总线系统(+)
- 总线是计算机各种功能部件之间传送信息的公共通信干线,它是由导线组成的传输线束, 按照计算机所传输的信息种类
- 一条总线同一时刻仅允许一个设备发送,但允许多个设备接收
- 总线的分类:
- 数据总线(Data Bus):在CPU与RAM之间来回传送需要处理或是需要储存的数据
- 地址总线(Address Bus):用来指定在RAM ( Random Access Memory)之中储存的数据的地址
- 控制总线(Control Bus):将微处理器控制单元(Control Unit)的信号,传送到周边设备,一般常见的为USB Bus和1394 Bus
串联系统与并联系统可靠性(+)
- 串联系统可靠性:所有系统可靠性的乘积 R=R1×R2×R3…×Rn
- 并联系统可靠性:1-每个系统出错概率相乘 R=1-(1-R1)×(1-R2)×…×(1-Rn)
- N模混合系统:串并联结合
校验码(+++)
- 码距:任何一种编码都由许多码字构成,任意两个码字之间最少变化的二进制位数就称为数据校验码的码距
- 例如,用4位二进制表示16种状态,则有16个不同的码字,此时码距为1,如0000与0001。
奇偶校验
- 奇偶校验码的编码方法是:由若干位有效信息(如一个字节),再加上一个二进制位(校验位)组成校验码
- 奇校验:整个校验码(有效信息位和校验位)中"1"的个数为奇数
- 偶校验:整个校验码(有效信息位和校验位)中"1"的个数为偶数
- 奇偶校验,可检查1位的错误,不可纠错
循环冗余校验CRC
- CRC校验,可检错,不可纠错
- CRC的编码方法是:在k位信息码之后拼接r位校验码。应用CRC码的关键是如何从k位信息位简便地得到r位校验位(编码),以及如何从k+r位信息码判断是否出错
- 用模2除法,在运算过程中不计进位的除法,对好位即可(最高位须对其)
- 例题:
- 信息码为1 0111 0101,多项式为X4+X2+1,求冗余位
- 最高项指数为4,所以被除数补4个0 -> 1 0111 0101 0000
- 除数为把2带入多项式得出的结果的二进制(X的n次方就是第n+1位为1,其他位为0),所以是10101
- 然后用模2除法计算,最后的余数即为冗余位,也就是CRC校验码(4位),补到之前的4个0处后,就是使用了CRC的报文
- 信息码为1 0111 0101,多项式为X4+X2+1,求冗余位
海明校验码
- 海明校验,可检错,也可纠错
- 海明校验码的原理是:在有效信息位中加入几个校验位形成海明码,使码距比较均匀地拉大,并把海明码的每个二进制位分配到几个奇偶校验组中。当某一位出错后,就会引起有关的几个校验位的值发生变化,这不但可以发现错误,还能指出错误的位置,为自动纠错提供了依据
- 2r >= m+r+1,r:校验位,m:数据位