1.某计算机采用5级指令流水线,如果每级执行时间是2ns,求理想情况下该流水线的加速比和吞吐率。
解:
流水线的加速比:指采用流水线技术时指令的执行速度与等效的不采用流水线技术的指令执行速度之比,理想情况加速比等于流水线的级数。
因此理想情况,加速比等于流水线级数,为5。
吞吐率:指每秒钟能处理的指令数量。
每级执行时间为2ns,计算得出吞吐率1s/2ns=10^9ns/2ns=5*10^8。
2.设浮点数字长为16位,其中阶码5位(含一位阶符),尾数11位(含一位数符),将十进制数+13/128写成:二进制定点数和浮点数,并分别写出它在定点机和浮点机中的机器数形式。
解:
先讲+13/128转为二进制:13=1101,128是2的七次方,因此将1101小数点左移七位,二进制形式为:0.0001101000(11位尾数)
定点数表示为 :x=0.0001101000
二进制定点数 :x=0.0001101000
浮点数规格化表示:x=0.1101000000×2^(-11),此处-11为二进制,实际上是指向左移三位
在定点机和浮点机中需要原码补码反码,
定点机中:[x]原=[x]补=[x]反=0.0001101000
浮点机中:[x]原=1,0011;0.1101000000
[x]补=1,1101;0.1101000000
[x]反=1,1100;0.1101000000
3.假设某字长为8位的计算机中,带符号整数采用补码表示,x=-68,y=-80,x和y分别存放在寄存器A和B中。请回答下列问题(要求最终用十六进制表示二进制序列):
(1)寄存器A和B中的内容分别是什么?
内容应为x和y值的二进制序列,要求用16进制表示二进制序列,补码表示:
二进制:[x]原=1,1000100,[x]补=1,0111100,十六进制:BCH
同理[y]补=B0H。
(2)若x和y相加后的结果存放在寄存器C中,则寄存器C中的内容是什么?运算结果是否正确?此时,溢出标志(OF)、符号标志(SF)和零标志(ZF)各是什么?加法器最高位的进位C。是什么?
①[x+y] 补=[x] 补+[y] 补=10111100B+10110000B=101101100B,除去最高位后01101100结果为6CH,因此,寄存器C中的内容为6CH。
寄存器C中的内容为6CH,对应的真值为+108,而x+y的正确结果应是-148,故结果不正确。
溢出标志位(OF)可采用以下任意一条规则判断得到。规则1:若两个加数的符号位相同,但与结果的符号位相异,则溢出。规则2:若最高位上的进位和次高位上的进位不同,则溢出。通过这两个规则都能判断出结果溢出,即溢出标志位(OF)为1,说明寄存器C中的内容不是正确的结果。
结果的第一位0为符号标志(SF),表示结果为整数。
因为结果不为0,所以零标志ZF=0。
综上,溢出标志(OF)为1,符号标志(SF)为0,零标志(ZF)为0。④加法器最高位向前的进位Cn为1。
(3)若x和y相减后的结果存放在寄存器D中,则寄存器D中的内容是什么?运算结果是否正确?此时,溢出标志(OF)、符号标志(SF)和零标志(ZF)各是什么?加法器最高位的进位Cn是什么?
[x-y]补=[x]补+[-y]补=10111100B+01010000B=100001100去除最高位1后00001100,结果为CH,对应真值为12,结果正确。无溢出,OF为0,SF为0,ZF=0.进位Cn为1.
(4)若将加法器最高位的进位Cn作为进位标志(CF),则能否直接根据CF的值对两个带符号整数的大小进行比较?
不能。从(2)和(3)的例子就可得出,带符号整数-68和-80时,C。为1,而带符号数-68和80时,Cn一样为1,所以若将加法器最高位的进位Ca作为进位标志(CF).无法直接根据CF的值判断两个带符号整数的大小。
4.已知计算机的字长为32位,存储器的容量为1MB.如果按字节、半字、字、双字寻址,寻址范围各是多少?
解:将存储器容量单位换算为bit,
1MB=8Mbit,
按字节(8bit)寻址:8Mbit/8bit=1MB,
按半字(16bit)寻址:8Mbit/16bit=0.5MB=512KB
按字(32bit)寻址:8Mbit/32bit=0.25MB=256KB
按双字(64bit)寻址:8Mbit/64bit=0.125MB=128KB
5.假设机器字长为 16 位,其中阶码 6 位(包含两位阶符),尾数 10 位(包含两位数符)。已知十进制数 x=125,y=-18.125,试计算[x-y]补。(其结果用二进制真值表示,舍入时采用 0 舍 1入法)。
先将x和y用浮点数表示:
x=0.1111101×2^111,y=-145/8=-0.10010001×2^101
[x]补=00,0111;00.11111010,[y]补=00,0101;11.01101111[-y]补.=00.0101;00.10010001
(1)对阶:
[∆ ]补=[jx]补-[jx]补=[jx]补+[-jy]补。=000111+111011=000010所以y的阶码要低2,故应该y向x对齐,y尾数需要右移两位,(注意:数符也算在尾数内,参与右移)阶码加2
[y]补=00,0111;11.11011011,[-y]补=00,0111;00.00100101
(2)尾数求和:
00.11111010+00.00100101=01.00011111
(3).规格化:尾数出现00.0XX...X或11.1XX....X时左规,尾数左移一位,阶码减一。
尾数出现01.XX....X或10.XX....X时右规,尾数右移,阶码加一。
结果尾数部分出现“01”,需右规,右规后,结果为00,1000;00.10001111。
(4)舍入处理:
右规时末位丢1,因此末位加一得00,1000;00.10010000.
(5)溢出判断:
结果处阶符为00,无溢出。
最后结果二进制真值表示为:10010000。
6.已知有效信息位为1100,试用生成多项式G(x)=1011将其编成CRC码。
计算CRC码的方法是将数据左移校验码位数的位数,然后进行模二除法运算,得到的余数就是CRC码。
本题中:有效信息M(x)=1100=x^3+x^2,可知n=4。
G(x)=1011=x^3+x+1。由于G(x)为k+1位,可知k=3。
故将有效信息左移k位,即3位后得1100000,再被G(x)模2除,过程如下:
最终得到的余数为10,由于k=3,因此在左边补一位0得到010,将010添加到有效信息位之后,得到CRC码1100010.
7.设某机主存容量为16MB,Cache的容量为8KB,每字块有8个字,每字32位。设计一个四组相联映射的Cache组织。
(1)画出主存地址字段中各段的位数。
(2)设Cache初态为空,CPU依次从主存第0,1,2,...,99号单元读出100个字(主存一次读出一个字),并重复此次序读10次,问命中率是多少?
(3).若Cache的速度是主存的五倍,试问有Cache和无Cache相比,速度提高多少倍?
(4).系统的效率是多少?
解:(1)组相联映射中,主存地址字段有主存字块标记,组地址,字块内地址。
字块内地址:每块8个字,即2^3个字,得出字地址有3位,每个字32位,32位是4字节,2^2,得出字节地址2位,字块内地址位数=字地址位数+字节地址位数。2+3=5位。
组地址:根据Cache容量8KB=2^13Byte,每字块有8个字,每字4字节,即每块有4×8=2^5字节,四组相联映射中,每组有四块=2^7字节,组数:2^13/2^7=2^6组,因此组地址为6。
主存字块标记:主存容量16MB=2^24B,得主存地址位数24,主存字块标记=主存地址位数-组地址位数-字块内地址位数=24-6-5=13.
(2)第一轮读取:Cache初态为空,每块有8个字,读0号字时,Cache为空未命中,访问主存后将数据调入一个块中,有8个字,接着读取1~7号字命中,同理读取第8号字时未命中,访问主存,在这一轮读取中,第0、8/16、...、96号等13个单元未命中。
第二至第10轮读取中:数据已经保存在Cache中,因此全部命中。
共读取了1000次未命中13次,命中率:1-0.013=0.987
(3)设主存存取周期为5t,Cache存取周期为t,访问1000次,无Cache所需时间为T=5×1000t,有Cache所需时间为T1=13×5t+(1000-13)×t,
速度提高的倍数:T/T1-1≈3.75
(4)由(2)中命中率为0.987,CPU存取周期为5t,Cache存取周期t,
在一个周期t中:存取效率为t/(0.987×t+(1-0.987)×5t)×100%=95%。
补充:关于全相联映射,主存地址格式的设计有主存字块标记和字块内地址,字块内地址算法同上,主存字块标记为主存地址位数-字块内地址位数。
直接映射方式下:主存地址格式包括主存字块标记、Cache字块地址和字块内地址,字块内地址算法同上,Cache字块地址位数等于Cache能包含的块的个数,例:某Cache容量包含2^10块,则Cache字块地址位数为10,主存字块标记=主存地址位数-Cache地址位数。
8. 设有一个60k×8位的RAM芯片(1)试问该芯片共有多少个基本单元电路(简称存储基元)?
该RAM芯片共有60k*8=480k个基本单元电路。
(2)如果采取连续编址,地址线需要多少根(位),编址范围是多少?
2^15<60k<2^16,向上取整为16根。编制范围0~60k-1
(3)拟采用8k×4位的芯片通过字位扩展实现该RAM,写出一种合理的编组方式 2 片8k×4位的芯片通过位扩展编为一组 , 8 组存储编组通过子扩展实现60k×8位的RAM)
9.接收到海明码1100100按配偶原则配置,检查是否出错。
解:按配偶原则配置,应使1、3、5、7位中1的个数为偶数,2、3、6、7中1的个数为偶数,4、5、6、7中1的个数为偶数,即以下P1、P2、P3都为0.则无错。
P1=1⊕3⊕5⊕7
P2=2⊕3⊕6⊕7
P3=4⊕5⊕6⊕7
P1=0,P2=1,P4=1,P4P2P1=110,第110B位出错,即第六位出错。