T1.利用变形补码对二进制数进行计算,并且判断是否溢出,写出判断原则
解题方法概述:
1.变形补码双符号位的特点在于,正数的符号位是00,负数的符号位是11,尾数则求补码。
2.进行二进制数补码相加减,求得结果。
3.判断溢出:若符号位为00或11,则结果不溢出,若为01,则为正溢,若为10,则为负溢。
4.求真值,若第3步里求出是溢出的,那么这一步可以省略,若不是,则用补码倒求真值。
方法如下:若补码是正数,那么真值与补码完全相同
若补码是负数,从补码的右边向左边扫描,到第一个1停止,1右边的全都不变,1左边的按位取反
例题如下:
已知 x 和 y,用变形补码计算 x-y,同时指出结果是否溢出。
(1) x=11011,y=-11111
(2) x=10111,y=11011
(3) x=11011,y=-10011
解题步骤:(其他答案有点不全,故手写了一份,字丑,将就着看)
(这图片咋旋转啊,有知道的uu劳烦告知一声)
符号位判断溢出的方法
T2.用IEEE754浮点格式表示数
解题方法:
1.将该数转化成二进制数
2.求S,即符号位,仅一位,正数是0,负数是1
3.求E,即阶码,移动二进制数的小数点,使小数点在从左往右看第一个1的左边,此时2的指数就是e,再加上偏移量127,即可得到阶码E
4.求M,即尾数,将第三步中得到的数写下,不足的位数补0
例题:
将数(20.59375)10转换成754标准的32位浮点数的二进制存储格式。
1.首先分别将整数和分数部分转换成二进制数:20.59375=10100.10011
2.S=0
3.然后移动小数点,使其在第1,2位之间:
10100.10011=1.010010011x2^4
即e=4
故E=4+127=131=10000011
4.M=010010011
最后得到32位浮点数的二进制存储格式为:
0100 0001 1010 0100 1100 0000 0000 0000=(41A4C000)16
T3.cache的相联映射关系
三种相联方式全内容建议移步王道考研,我们仅以组相联为例。(相联的意思其实就是随便)
解题方法:
1.求主存物理地址:根据题目给出的条件判断,若该机器是32位则主存为32位,若该机器是64位则主存是64位,若主存容量为4MB,则主存是log2(2^22)=22位
2.标记位一般不能直接求出,而是利用主存物理地址=标记+组号+块内地址
3.组号:即给每个cache小组的编号共有多少位,若主存容量4MB,每个cache组容量1KB,那么组号就有log2(2^22/2^10)=12位
4.块内地址:即每个cache块的容量,若每个cache块的容量是16B,那么块内地址就有log2(16)=4位
例题:
一个组相联cache由64个行组成,每组4行。主存包含4K个块,
每块128字。请表示内存地址的格式。
主存地址物理地址:log2(4*2^10*128)=19
组号:log2(64/4)=4;
块内地址:log2(128)=7;
标记位(tag)=19-4-7=8;
T4.存储器的位扩展和字扩展和画图
解题思路:
1.若某存储器为1M*16位存储器,则数据寄存器有16位,地址寄存器有log2(2^20)=20位
2.求所需要的芯片个数:这个有些类似贴地砖,存储器的容量表示一般是x*y,前面的就是房间的长,在计算机里叫做字,后面的是房间的宽,在计算机里叫做位。存储器的字位扩展就是用小存储器拼接大存储器。如32K*8位的芯片组成128K*16位的存储器需要的个数为:(128K*16/32K*8)=8个
3.画图要点:优先位扩展,再进行字扩展,cpu的数据总线依次连接每一个小寄存器,地址总线依次连接每个小寄存器,多出来的几位要连接2-4译码等选择器。
T5.cpu的指令周期流程图以及微操作信号序列
解题思路:
指令周期流程图的取指令部分即前三步都是一样的:PC->AR;M->DR;DR->IR
中间画菱形表示执行指令;
后面则要依照题目要求执行指令了,AR是放地址的,DR是放地址内的内容的。
微操作信号序列:表示数据的出和进,出则角标为i,进则角标为o,中间写G。如果涉及M的话,那么就要写明此时的M是R(读出)还是W(写入)
例题:画出''SUB R1,R3''的指令周期流程图和微操作信号序列
画图如下:
T6.流水线CPU的相关题目;
解题思路:
1.时空图,就是画小台阶,但是要注意横坐标与纵坐标,结束之后要画一个向上的箭头
2.流水线吞吐率(即单位时间内执行完的指令数):用指令总数/跑完所有指令的时间(跑完指令时间算法:(指令总数+指令的步骤个数-1)*时钟周期(注意单位换算)
3.流水线加速比:(指令总数*指令的步骤个数)/((指令总数+指令的步骤个数-1)
例题:
指令流水线有取指(IF)、译码(ID)、执行(EXE)、
访存(MEM)、写回寄存器(WB)五个过程段,共有20条指令
连续输入此流水线。
(1)画出此流水线的时空图,假设时钟周期为100ns;
(2)求流水线的实际吞吐率(单位时间里执行完毕的指令数;
(3)求该流水线的加速比。
T7.磁盘相关题目
解题思路:
其实这个题目就是概念题,记住每个概念的意义,再进行计算就行。
1.柱面:即每一面磁盘磁道的个数,磁道就是很多的同心圆
2.记录面:就是磁盘有效的面
3.扇区:每圈磁道可以像切甜甜圈一样分成很多道扇形,每个扇形就是扇区
4.记录信息容量:每个磁道里面所能存储的信息总量。ps:无论是大圈还是小圈,所存储的信息容量是一样的)
5.位密度:记录信息容量/周长。故外圈的位密度小,内圈的位密度大
6.数据传输率:磁盘转速(n转/秒)*(记录信息容量)
7.平均等待时间:磁盘旋转一周所需时间的一半(这个好像是定义,我也没查到为啥是这样,记就完了)
8.存取时间=平均寻道时间(就是找路的意思)+平均等待时间
9.道密度:单位距离内的磁道个数
10.磁盘地址的格式方案:柱面号+盘面号+扇区号
11.存储容量:每个磁道的记录信息容量*每个记录面的磁道数*每个记录面
例题:某磁盘存储器有30个记录面。盘面内圈半径10厘米,外圈半径15厘米。道密度为30道/厘米,位密度为400b/厘米(内道),转速7200转/分钟。问:该存储器共有多少柱面?存储容量为多少字节?数据传输率为每秒多少字节?
T8.中断屏蔽值设置及中断处理程序的过程示意图
解题思路:
私以为中断类似在窗口排队时被别人插队。而判断能否被插队,现实里可能是依靠插队者的武力值判断,在计算机里则是依靠中断处理次序的优先级,优先级高的可以插优先级低的队。故后文也以插队进行类比。
中断屏蔽值设置:(即判断能否被插队,能插队(允许中断)则为''0'',不能插队(中断屏蔽)则为''1'')
以下面的图为例,横着的五个,就是插队的人,竖着的中断处理程序就是被插队的人。我们规定自己不能插自己的队。CPU是可以被所有人插队的。
例题:
第一问答案即上上图
第二问答案与下图类似:
每一道竖着的线就是一个中断程序,最右边是L1
The end
希望以上内容能帮到你