计算机组成原理重点总结
数值表示
原码,补码,反码,移码
- 原码:正0 负1 + 机器数 [1111 1111 , 0111 1111]
- 反码:正数为原码,负数原码取反(除符号位
- 补码:正数为原码,负数反码+1(符号不变,最后一个1右边不变,左边取反
- 移码:补码的符号位取反
浮点数转换
- 十进制转浮点数
- 转2进制
- 规格化:=x*2^n
- 偏置值+阶码真值n=[阶码]移
- 浮点数代码为:符号位;阶码;尾数
- 十六进制浮点数转十进制
- 分离符号位;阶码;尾数。
- 阶码真值n=[阶码]移-偏置值
- 规格化:=x*2^n
- 去规格化,换10进制
十进制数编码
-
8421码:NBCD码,D=8b3+4b2+2b1+1b0,1010~1111非法
-
2421码:D=2b3+4b2+2b1+1b0,对9自补码:取反可得到对9补码(2421表示
-
余3码:8421码+0011,无权("1"不表示固定十进制数值),对9自补码
-
格雷码:无权
十进制 格雷码 0 0000 1 0001 2 0011 3 0010 4 0110 5 1110 6 1010 7 1011 8 1001 9 1000
压缩十进制数串:
8421表示,一个字节存两个符号在最后,1100正,1101负
-2648表示为
0000 | 0010 | 0110 | 0100 | 1000 | 1101 |
---|---|---|---|---|---|
数据校验
码距:任意两个码字之间最少变化而二进制数
奇偶校验:检测一位错误,码距2
- 偶校验:1的个数为偶->0,1的个数为奇->1,逐位异或(相同=0,不同=1)
- 奇校验:1的个数为偶->1,1的个数为奇->0,逐位异或取反,(不存在全0
- 交叉奇偶
汉明码:校验位数K,信息位N
- 校验码Pi分配到2^(i-1)上,组成新序列
- Dii位号ii=∑ [2(P新的位号-1)],即:被娇艳的每一位的新位号=2(校验他的各个校验位的位号-1)之和
循环冗余 CRC:左移N-1位,对产生多项式模2运算,余数加到原数据末尾
数值机器运算
补码加减:符号位参加运算
溢出检测:
- 一个符号位:Xs=Ys=0,Ss=1正溢出;Xs=Ys=1,Ss=0负溢出
- 进位:进位记为Cs,C1C2...Cn。C1=1,Cs=0正溢出;C1=0,Cs=1负溢出
- 变形补码(双符号位):Ss1Ss2=00,11无溢出;01正溢;10负溢出
带符号数移位:
- 原码:符号位不变,正负数均以0补入
- 补码:符号位不变
- 正数:以0补入
- 负数:左移补0,右移补1(左塞1,右塞0)
定点乘法
原码一位乘法:3个寄存器:A存部分积高位,B存被乘数,C存乘数
- 取绝对值
- 乘数最低位=1,+被乘数;=0,+0
- 累加后的部分积和乘数右移一位
- 重复2,3
- 符号异或,右移Ny次为结果
补码一位乘法:Booth乘法
- 补码表示(被乘数和部分积取双符号位,乘数Y取单符号位)
- 乘数末尾增加附加位0
- 每求一次部分积右移一次,乘数最低两位决定操作
判断位 | 操作 |
---|---|
0 0 | 部分积+0,右移一位 |
0 1 | 部分积+[X]补,右移一位 |
1 0 | 部分积+[-X]补,右移一位 |
1 1 | 部分积+0,右移一位 |
补码两位乘法:
-
矫正法:按原码运算,根据结果矫正
-
Booth法:
- 补码表示(被乘数和部分积取三符号位)
- 乘数Y数值位数为偶,取2符号位,n/2+1次累加,n/2次移位,最后一次不移位
- 乘数Y数值位数为奇,取1符号位,(n+1)/2次位移累加,最后一次位移1位
- 总结:都是最后留下2位
- 同1位
- 补码表示(被乘数和部分积取三符号位)
判断位 | 操作 |
---|---|
0 0 0 | 原部分积+0,右移两位 |
0 0 1 | 原部分积+[X]补,右移两位 |
0 1 0 | 原部分积+[X]补,右移两位 |
0 1 1 | 原部分积+2[X]补,右移两位 |
1 0 0 | 原部分积+2[-X]补,右移两位 |
1 0 1 | 原部分积+[-X]补,右移两位 |
1 1 0 | 原部分积+[-X]补,右移两位 |
1 1 1 | 原部分积+0,右移两位 |
定点除法
原码加减交替法:2符号位,3个寄存器,A存被除数,B存除数,C存商
- 求|X|,|Y|,[|Y|]变补;A=|X|,B=|Y|,C=0,CR=0
- A=A-B(+[|Y|]变补)
-
- A>=0正:Cn=1,A和C一起左移 1 位,A=A+B
- A<0负:Cn=0,A和C一起左移 1 位,A=A-B
- CR++
-
- CR != n:回到3
- CR == n:
- A>=0正:Cn=1
- A<0负:Cn=0,A=A+B(+|Y|)
补码加减交替法:2符号位,同上,以下[]均为补码
- 求[X]补,[Y]补,[-Y]补;A=[X],B=[Y],C=0,CR=0
-
- AB同号:A=A-B= [X] + [-Y](同号-B,异号+B
- AB异号:A=A+B= [X] + [Y]
-
- AB同号:Cn=1,A和C一起左移 1 位,A=A-B(同号-B,异号+B
- AB异号:Cn=0,A和C一起左移 1 位,A=A+B
- CR++
-
- CR != n:回到3
- CR == n:末位置1,Cn=1
考纲
简答
-
寻址方式
答:寄存器寻址,立即寻址,直接寻址,间接寻址,相对寻址,基础寻址,变址寻址
寄存器:位置:指定的寄存器。方法:地址码部分给出某个通用寄存器的编号,这个指定的寄存器中存放着操作数。
立即:位置:地址码字段。方法:只要取出指令就取出了可以立即使用的操作数。
直接:位置:主存储器。方法:指令中地址码字段给出的地址A就是操作数的有效地址。
间接:位置:主存储器。方法:按指令的地址码字段先从主存中取出操作数的有效地址。
变址:位置:主存储器。方法:变址寄存器中的内容与指令中给出的形式地址A相加,形成操作数有效地址。
基址:位置:主存储器。方法:基址寄存器的内容与指令中给出的位移量; D相加,形成操作数有效地址。
相对:位置:主存储器。方法:由程序计数器PC提供基准地址,指令中的地址码字段作为位移量D,两者相加后得到操作数的有效地址
-
cache或虚拟存储器的地址映射方式
直接映射,全相联映射,组相联映射
- 直接映射:
- 特点:主存中每一个块只能被放置到Cache中唯一的一个指定位置,若这个位置已有内容,产生块冲突,原来的块将无条件被替换出去。
- 优点:成本低,易实现,地址变换速度快
- 缺点:不够灵活,Cache的块冲突概率最高,空间利用率最低
- 全相联映射:
- 特点:让主存中任何一个块均可以装入到Cache中任何一个块的位置上。
- 优点:方式灵活,Cache的块冲突概率最低、空间利用率最高
- 缺点:地址变换速度慢,成本高
- 组相联映射:
- 特点:将Cache分成若干组,主存中的块直接映像装入Cache中对应组内的任何一块位置上(组间采取直接映射,组内采取全相联映射)
- 优缺点介于全相联映射和直接映射的优缺点之间。
- cache虚拟存储器异同
- 同:都需要对地址或标记进行判断。当Cache或主存已满都要使用替换算法。
- 异:Cache的容量小,保存的信息只是主存中最急需执行的若干块的副本。虚拟存储器将主存或辅存的地址空间统一编址,形成一个庞大的存储空间。在这个大空间里,用户可以自由编程。虚拟存储器是利用辅助硬件找出虚地址和实地址之间的对应关系,并判断这个虚地址指示的存储单元内容是否已装入主存。Cache是用主存地址的块号字段访问Cache标记,并将取出的标记和主存地址的标记字段相比较。若相等,说明访问Cache有效,称Cache命中,若不相等,说明访问Cache无效,称Cache不命中或失效。虚拟存储器的判断是如果已在主存中,则通过地址变换,CPU 可直接访问主存的实际单元;如果不在主存中,则把包含这个字的一页或一个程序段调入主存后再由CPU访问。
- 直接映射:
-
汉字国标码,区位码,机内码,字型码区别与联系
国标码是一个四位十六进制数,区位码是一一个四位的十进制数,每个国标码或区位码都对应着一个唯一的汉字或符号,但因为十六进制数很少用到,所以常用的是区位码,汉字或字符在计算机内部的表示就是机内码
国标码是汉字信息交换的标准编码,但因其前后字节的最高位为0,与ASCII码发生冲突,因此不方便在计算机中直接使用。汉字的机内码采用变形国标码
汉字字型码用于汉字在显示屏或打印机输出
计算
-
定点数算术运算
-
浮点数算术运算
-
磁介质存储器性能参数计算
-
\[数据传输率=\frac{每一道的容量}{旋转一圈的时间}(b/s) \]
-
\[平均存取时间 T_{a}\approx \frac{0+道间移动时间\times (每一面磁道数-1)}{2} \]
-
\[非格式化容量=最大位密度\times 最内圈磁道周长\times 总磁道数 \]
-
\[格式化容量=每道扇区数\times 扇区容量\times 总磁道数 \]
-
-
显示器有关参数计算
-
\[视频带宽=水平分辨率\times垂直分辨率\times场频\times1.344 \]
-
字符显示器:
-
\[字符窗口=(x+x_{字距})\times (y+y_{行距}) \]
-
\[缓存容量(字节)=行数\times 每行字符数 \]
-
-
CRT显示器:
-
\[缓存容量=一帧内字符量 \]
-
\[字符发生器容量(ROM)=可显示ASCII字符种类数\times 8(B) \]
-
缓存采用随机存储器,存放的是字符的ASCII码
-
缓存地址与屏幕位置:屏幕显示位置自左至右,从上到下,相应的缓存地址由低到高,每个地址码对应一个字符现实位置。屏幕坐标(X,Y),则缓存地址=(X*80+Y)
-
字符点阵存放在字库中,根据字符的ASCII码逐行读出点阵显示。
-
计数器
- 点:横向间隔+字间间隔
- 字:一行x个字符显示+水平回扫折合
- 行:纵向间隔+排间间隔
- 排:y列字符+垂直回扫这和
-
图形显示器需将Q每个像素的信息都存放在VRAM 中,而字符显示器只需将要显示的ASCII码存放在VRAM中,字符的点阵来自字符发生器ROM
-
-
-
-
总线有关参数计算
\[总线带宽B=数据总线宽度W\times \frac{总线时钟频率F}{完成一次数据传送所用的时钟周期数N} \]\[例题考法:B= \frac {总线宽度(位)} {8(位/字节)} \times 工作频率 = 一个时钟周期传送的字节数(字节)\times 频率 \]- 带宽的影响因素有:
- 总线宽度
- 传送距离
- 总线发送和接收电路工作频率限制
- 数据传送形式
- 带宽的影响因素有:
设计
-
存储器设计(选片,字位扩展
- 位扩展:64k X 1 → 64k X 8
- 字扩展:16k X 8 → 64k X 8
-
微程序 或 微操作序列设计
-
中断优先级设置及响应