计算机组成原理第五版.docx
《计算机组成原理第五版.docx》由会员分享,可在线阅读,更多相关《计算机组成原理第五版.docx(20页珍藏版)》请在冰点文库上搜索。
计算机组成原理第五版
第2章作业参考答案
1、
(1)-35(=23)6
(2)127(3)-127⑷-1
[-35]原=10100011
[127原=01111111-127]原=11111111[-1]原=10000001
[-35]反=11011100
[127]反=0111111*127艮=10000000[-1]反=11111110
[-35]补=11011101
[127]补=01111111[-127}卜=10000001[-1]补=11111111
2
当&=0时,x0,满足x>-0.5的条件,即:
若a7=0,S6ao可取任意值
当3=1时,x<0,若要满足x>-0.5的条件,则由补码表示与其真值的关系,可知:
6
x1(ai2i7)1a621a522a423a324a225a,26a02
i0
要使x>-0.5,所以要求a6=1,并且assb不能全部为0
所以,要使x>-0.5,则要求a7=0;或者sv=a6=1,并且a>£0至少有一个为1
3、
由题目要求可知,该浮点数的格式为:
313023220
S
E(移码表示)
M(补码表示)
注:
由于S是数符,已表示了尾数的符号,所以为了提高表示精度,M(23位)不
必存储符号位,只需存小数点后面的有效数值位即可。
(1)最大数的二进制表示为:
0111111111111……11132个1)
(2)最小数的二进制表示为:
1111111110000……00032个0)
(3)非IEEE754标准的补码表示的规格化数是指其最高有效位与符号位相反
可编辑范本
故有:
最大正数为:
0
11111111
1111…
…1113个1)=+(1-2-23)2127
最小正数为:
0
00000000
1000…
…000(2个0)=+0.52-128
最大负数为:
1
00000000
0111…
…111(2个1)=-(0.5+2-23)2-128
最小负数为:
1
11111111
0000…
…000(2个0)=-12127
所以其表示数的范围是:
+0.52-128+(1-2-23)2127以及-12127-(0.5+223)2-128
4、IEEE754标准32位浮点的规格化数为
X=(-1)S1.M2e-127
(1)27/64
27/64=272-6=(11011)22-6=(1.1011匕2-2
所以S=0,E=e+127=125=(011111012,M=1011
32位的规格化浮点数为:
00111110110110000000000000000000即十六进制的(3ED80000)6
(2)-27/64
-27/64=-(1.1011》2-2
所以S=1,E=e+127=125=(011111012,M=1011
32位的规格化浮点数为:
10111110110110000000000000000000即十六进制的(BED80000〉6
5、[x+y]补=凶补+[y]补
(1)x=11011,y=00011
可编辑范本
[x+y]补=0011011+0000011=0011110没有溢出,x+y=11110
⑵x=11011,y=-10101
[x+y]补=0011011+1101011=0000110
0011011
+_1101011
0000110
没有溢出,x+y=00110
(3)x=-10110,y=-00001
x+y=-10111
[x+y]补=1101010+1111111=1101001;没有溢出,
6、[x-y]补=[x]补+[-y]补
(1)x=11011,y=-11111
[-y]补=0011111
[x-y]补二0011011+0011111=0111010;
0011011
+_0011111
0111010
正溢出,x-y=+111010
⑵x=10111,y=11011
[-y]补=1100101
[x-y]补二0010111+1100101=1111100;
0010111
+_1100101
可编辑范本
1111100
没有溢出,x-y=-00100
⑶x=11011,y=-10011[-y]补=0010011[x-y]补=0011011+0010011=0101110;正溢出,x-y=+101110
7、
(1)x=11011,y=-11111
用原码阵列乘法器
11011
11111
11011
11011
11011
11011
110111101000101
[xy]符号=01=1
所以[xy]原=11101000101
用直接补码阵列乘法器:
凶补=011011,[y]补=100001
(0)11011
(1)00001
(0)11011
可编辑范本
(0)00000
(0)00000
(0)00000
(0)00000
0⑴⑴(0)⑴⑴
0
(1)
(1)0⑴⑴11011
y]补=10010111011
将乘积中的符号位用负权表示,其他的负权位化为正权,得:
[X
⑵x=-11111,y=-11011
用原码阵列乘法器
11111
11011
11111
11111
00000
11111
111111101000101
[xy]符号=11=0
所以[xy]原=01101000101
用直接补码阵列乘法器:
凶补=100001,[y]补=100101
(1)00001
(1)00101
可编辑范本
(1)00001
(0)00000
(0)00000
(0)00000
1(0)(0)(0)(0)⑴
100
(1)
(1)000101
将乘积中的符号位用负权表示,其他的负权位化为正权,得:
[xy]补=01101000101
8
(1)x=11000,y=-11111
用原码阵列除法器计算,符号位单独处理,商的符号位=01=1
设a=(|x|2-5),b=(|y|2-5),则a,b均为正的纯小数,且x*y的数值=(a宁b);
余数等于(a宁b)的余数乘以
下面用不恢复余数法的原码阵列除法器计算a-b
[a]补=[凶2-5]补=0.11000,[b]补=["|25]补=0.11111,[-b]补=1.00001
过程如下:
0.11000
+[-b]补1.00001
1.11001余数为负,商为0
1.10010——余数和商左移一位(0)
+[b]补0.11111
0.10001――余数为正,商为1
可编辑范本
1.00010——余数和商左移一位(01)
+[-b]补1.00001
0.00011——商为1
0.00110——(011)
+[-b]补1.00001
1.00111——商为0
0.01110——(011()
+[b]补0.11111
1.01101——商为0
0.11010——(01100
+[b]补0.11111
过程如下:
0.
0
1
0
1
1
+[-b]补
1.
0
0
1
1
1
1.
1
0
0
1
n
0
余数为负,商为0
1.
0
0
1
0
n
^余数禾口商左移——*彳位(0)
0
余数和商左移位(0)
+[b]补
0.
1
1
0
0
1
1.
1
1
1
0
4
1
余数为负,商为0
1.
1
1
0
1
n
余数和口商左移——位(00i
0
余数和商左移位(00>
+[b]补
0.
1
1
0
0
1
0.
1
0
0
1
1-
-商为1
1.
0
0
1
1
0-
——(001)
+[-b]补
1.
0
0
1
1
1
0.
0
1
1
0
1-
-商为1
0.
1
1
0
1
0-
——(0011)
+[-b]补
1.
0
0
1
1
1
0.
0
0
0
0
1-
-商为1
0.
0
0
0
1
0-
——(00111
+[-b]补
1.
0
0
1
1
1
1.
0
1
0
0
1—
-—商为0——(001110
即:
a*b勺商为0.01110
余数为1.010012-5,因为1.01001为负数,加b处理为正数,
1.01001+b=1.01001+0.110040.0001Q所以a十b的余数为0.000102-5
可编辑范本
所以,(x-y)的=葡.01110,原码为:
1.01110余数为0.00010
9、
(1)x=2-0110.100101y=2-010(-0.011110)
Ex=-011,Ey=-010,所以[Ex]补=1101,[Ey]补=1110
Mx=0.100101,My=-0.011110,所以[Mx]补=0.100101,[My]补=1.100010
[x]浮=11010.100101[y]浮=11101.100010
Ex对阶后[x]浮=11100.01001Q1),[y]浮=11101.100010
对阶后的尾数相加:
Mx+My=0.0100101)+1.100010
0.010010
(1)
+1.100010
1.110100
(1)
x+y=1.110100
(1)21110,化为规格化数(左移2位)为:
x+y=1.01001021100,即:
x+y=-0.1011102-4
对阶后的位数相减:
Mx-My=Mx+(-My)=0.01001Q1)+0.011110
0.010010
(1)
+0.011110
0.110000
(1)
x-y=0.110000
(1)21110,已经是规格化数,采用0舍1入法进行舍入处理:
x-y=0.11000121110,即:
x-y=0.1100012-2
可编辑范本
(2)x=2-101(-0.010110)y=2-100(0.010110)
Ex=-101,Ey=-100,所以[Ex]补=1011,[Ey]补=1100
Mx=-0.01011QMy=0.01011Q所以[Mx]补=1.101010,[My]补=0.010110
[x]浮=10111.101010[y]浮=11000.010110
Ex对阶后[x]浮=11001.1101010),[y]浮=11000.010110
对阶后的尾数相加:
Mx+My=1.110101+0.010110
1.110101
+0.010110
0.001011
x+y=0.00101121100,化为规格化数(左移2位)为:
x+y=0.10110021010,即:
x+y=0.1011002-6
对阶后的位数相减:
Mx-My=Mx+(-MJ=1.110101+1.101010
1.110101
+1.101010
1.011111
x-y=1.01111121100,已经是规格化数,所以
x-y=-0.1000012-4
10
(1)
13
23
24
16
16
Mx=
13
1101
24
0.110100,Ex=0011
16
可编辑范本
94
My=1001240.100100,Ey=0100
16
Ex+Ey=0011+0100=0111
[xy]符=01=1,乘积的数值=|Mx||My|:
0.1101
0.1001
01101
00000
00000
01101
00000
001110101
所以,xy=-0.0111010120111,规格化处理(左移一位),并采用0舍1入法进行
舍入:
xy=-0.11101120110
即:
2324—=-0.11101126
1616
32
23
15
16
将x、y化为规格化数:
0.011010,Ex=1110
0.111100,Ey=0011
Ex-Ey=Ex+(-Ey)=1110+1101=1011[xy]符=00=0,下面用加减交替法计算尾数MxMy:
可编辑范本
[Mx]补=0.011010,[My]补=0.111100,[-My]补=1.000100
0.011010
+[-My]补1.000100
1.011110余数为负,商为0
0.111100——余数和商左移一位(0)
+[My]补0.111100
1.111000余数为负,商为0
1.110000——余数和商左移一位(00)
+[My]补0.111100
0.101100余数为正,商为1
1.011000——余数和商左移一位(001)
+[-My]补1.000100
0.011100——商为1
0.111000——(0011)
+[-My]补1.000100
1.111100——商为0
1.111000——(00110
+[My]补0.111100
0.110100——商为1
1.101000——(001101
+[-My]补1.000100
0.101100——商为1
可编辑范本
+[-My]补1.000100
0.011100——商为1——(00110111
MxMy的商为0.0110111余数为0.0111002-7,由于x化为0.01101(Mx是尾数
右移2位才得到,所以xy真正的余数是0.0111002-7再尾数左移2位,即
_9_10
0.01110029=0.111000210
所以,xy的商为:
0.011011121011,规格化处理后为:
0.11011121010=0.1101112-6,余数为0.1110002-10
11、
不考虑181ALU的函数发生器,而是从简单的全加器出发,贝
若设4位的二进制数为A=A3AAAo,B=B3B2B1Bo,并设Gi=AiBi,R=AiBi,由
全加器进位输出的逻辑函数Ci+1=AiBi+C(ABi)可知:
(由于进位输出函数还可以写成Ci+1=AiBi+Ci(Ai+Bi),故Pi=Ai+Bi也可)
(1)串行进位方式:
Bo)=G0+P0C0
B1)=G1+P1C1
B2)=G2+P2C2
B3)=G3+P3C3
e=AoBo+Co(Ao
C2=A1B1+C1(A1
C3=A2B2+C2(A2
C4=A3B3+C3(A3
(2)并行进位方式:
e=G0+P0C0
C2=G1+P1C1=G1+P1(Gq+PqCo)=G1+P1Gq+P1PoCq
C3=G2+P2C2=G2+P2(G1+P1Go+P1PoCo)=G2+P2G1+P2P1G0+P2P1P0C0
可编辑范本
C4=G3+P3C3=G3+P3G2+P3P2G1+P3P2P1G0+P3P2P1P0C0
12、
(1)-5
-5=-(101)2=-(1.01)222
所以
S=1
E=e+127=2+127=129=(81)i6=(100000012
M=(01000000000000000000000)
故浮点格式为:
1100000010100000000000000000000用十六进制表示为:
⑵-1.5
-1.5=-(1.0=-(1.1)220
所以
S=1
E=e+127=0+127=(7F)16=(01111111)
M=(10000000000000000000000)
故浮点格式为:
1011111111000000000000000000000用十六进制表示为:
⑶384
384=(180)6=(110000000)=(1.1)228
所以
(C0A00000)6
(BFC00000)6
S=0
可编辑范本
E=e+127=8+127=135=(87)16=(10000111)
M=(10000000000000000000000)
故浮点格式为:
0100001111000000000000000000000用十六进制表示为:
⑷1/16
1/16=(1.0)224
所以
S=0
E=e+127=-4+127=(7B)16=(01111011)
M=(00000000000000000000000)
故浮点格式为:
0011110110000000000000000000000用十六进制表示为:
(5)-1/32
-1/32=-(1.0)22-5
所以
S=1
E=e+127=-5+127=(7A)16=(01111010)
M=(00000000000000000000000)
故浮点格式为:
1011110100000000000000000000000用十六进制表示为:
13
(1)11000001111000000000000000000000
(43C00000)6
(3D800000)6
(BD000000)i6
可编辑范本
S=1
E=(83)i6=131e=E-127=131-127=4
1.M=(1.11)2
所以,该浮点数为-(1.1024=-(11100沪-28
⑵00111111010100000000000000000000
S=0
E=(7E)16=126e=E-127=126-127=-1
1.M=(1.101》
所以,该浮点数为(1.101)2-1=(0.1101》=0.8125
14
IEEE754标准中,32位二进制数仍然有232种不同的组合,但是由于在IEEE754
标准中,阶码为全1并且尾数为非0的情况不表示一个数。
尾数23位,尾数非
0有2^-1种组合,再配合符号位,共有2(223-1)种组合不表示一个数
所以,该格式最多能表示不同的数的个数为:
15该运算器电路由3部分组成:
ALU完成定点加减法运算和逻辑运算;专用阵列乘法器完成乘法运算;专用阵列除法器完成除法运算。
具体逻辑电路略。
16
该ALU能完成8种运算,故使用3个控制参数SS。
运算器中含有:
(1)一个4位的加法器:
完成加法、减法、加1和传送4种操作,其中加1操作
可编辑范本是把加数固定为1利用4位的加法器实现;传送是把加数固定为0,利用4位
加法器实现。
(2)—个4位的求补器:
完成求补操作。
(3)求反、逻辑乘和逻辑加分别设计专门的逻辑电路实现。
具体电路略
17、
181ALU中的有些操作是冗余的或可由其他操作替代的,现要求简化为8种运算,故对181的运算种类进行简化,得到4种逻辑运算和4种算术运算,具体功能表如下:
控制参数
运算
S2S1S0
000
逻辑0
001
AB
010
A+B
011
AB
100
A加B
101
A减B减1
110
A+A
111
A
而181其他的逻辑运算和算术运算都可以由以上的运算间接得到,例如:
逻辑运算中:
A通过对“A”求反得到;AB通过对“A+B”求反得到;AB通过对“AB”与“A”进行逻辑与实现;AB通过对“AB”取反得到;B通过
可编辑范本
“AB”并让A固定为全1得到;AB通过对“AB”与“A”进行逻辑与实现;AB通过对前面得到的AB再取反得到;通过对“AB”取反得到;B通过“AB”并让A固定为全0得到;逻辑1通过对“逻辑0”取反得到;AB通过对前面得到的AB再取反得到
算术运算中:
减1操作可通过“A减B减1”并令B固定为0来实现;
18
余3码编码的十进制加法规则是:
两个1位十进制数的余3码相加,如结果无进位,则从和数中减去3(即加上1101);如结果有进位,则和数中加上3(加上0011),即得和数的余3码。
设参加运算的两个一位的十进制数分别为Ai和Bi,它们的余3码分别为A0Ai3和Bi0Bi3,其二进制加法的和的编码为S。
S3,进位为Ci+1,修正之后,和对应的余3码为Fi0Fi3,进位为CYi+1,则根据余3码的运算规则,有:
当Ci+1=0时,Fi3Fi2Fi1Fi°=Si3S2S1S°+1101;当Ci+1=1时,Fi3Fi2Fi1Fi0=Si3S2S1S°+0011,由此可画出逻辑电路图如下:
可编辑范本
1.11001——商为0——(011000
即:
a十b勺商为0.1100Q
余数为1.110012-5,因为1.11001为负数,加b处理为正数,
1.11001+b=1.11001+0.1111=0.1100Q所以a十b的余数为0.110002-5
所以,(x-y)的商1.11000,原码为:
1.1100Q余数为0.11000
⑵x=-01011,y=11001
商的