21游戏网
您的当前位置:首页计算机组成原理第一次作业前三周

计算机组成原理第一次作业前三周

来源:21游戏网




1.7解:?主机:是计算机硬件的主体部分,由CPU和主存储器MM合成为主机。

?CPU:处理器,是计算机硬件的核心部件,由运算器和控制器组成;(早期的运

算器和控制器不在同一芯片上,现在的CPU内除含有运算器和控制器外还集成了CACHE)。

?主存:计算机中存放正在运行的程序和数据的存储器,为计算机的主要工作存储器,

可随机存取;由存储体、各种逻辑部件及控制电路组成。

?存储单元:可存放一个机器字并具有特定存储地址的存储单位。


?存储字:一个存储单元所存二进制代码的逻辑单位。

?存储字长:一个存储单元所存储的二进制代码的总位数。

?存储容量:存储器中可存二进制代码的总量;(通常主、辅存容量分开描述)。

?机器字长:指CPU一次能处理的二进制数据的位数,通常与CPU的寄存器位数有关。



1



?指令字长:机器指令中二进制代码的总位数。

1.8解:全面的回答应分英文全称、中文名、功能三部分。

CPUCentralProcessing Unit,处理机(器),是计算机硬件的核心部件,主要

由运算器和控制器组成。

PCProgramCounter,程序计数器,其功能是存放当前欲执行指令的地址,并可自

动计数形成下一条指令地址。

IRInstructionRegister,指令寄存器,其功能是存放当前正在执行的指令。
令序列。

ALUArithmeticLogic Unit,算术逻辑运算单元,为运算器的核心部件,其功能是

进行算术、逻辑运算。

ACCAccumulator,累加器,是运算器中既能存放运算前的操作数,又能存放运算

结果的寄存器。


MQMultiplier-QuotientRegister,乘商寄存器,乘法运算时存放乘数、除法时存


2



放商的寄存器。

X:此字母没有专指的缩写含义,可以用作任一部件名,在此表示操作数寄存器,即运

算器中工作寄存器之一,用来存放操作数;

MARMemoryAddress Register,存储器地址寄存器,在主存中用来存放欲访问的

存储单元的地址。

MDRMemoryData Register,存储器数据缓冲寄存器,在主存中用来存放从某单

元读出、或要写入某存储单元的数据。


MIPSMillionInstruction Per Second,每秒执行百万条指令数,为计算机运算速度

指标的一种计量单位。

1.9解:主机框图如P131.11所示。

1STAM 指令:PC→MARMAR→MMMM→MDRMDR→IR


OP(IR)→CUAd(IR)→MARACC→MDRMAR→MMWR


3



2ADDM 指令:PC→MARMAR→MMMM→MDRMDR→IR

OP(IR)→CUAd(IR)→MARRDMM→MDRMDR→X

ADDALU→ACCACC→MDRWR

假设主存容量256M*32位,在指令字长、存储字长、机器字长相等的条件下,ACCX

IRMDR寄存器均为32位,PCMAR寄存器均为28位。

1.11解:计算机区分指令和数据有以下2种方法:


袈通过地址来源区分,由PC提供存储单元地址的取出的是指令,由指令地址码

部分提供存储单元地址的取出的是操作数。

6.4 解:真值与不同机器码对应关系如下:

[-13/]=-0.001101

原码: 1.001 1010

补码: 1.1100110

反码: 1.1100101

4



[29/128]=0.0011101

原码: 0.001 1101

补码: 0.001 1101

反码: 0.001 1101

[100]=1100100

原码: 0110 0100

补码: 0110 0100

反码: 0110 0100

[-87]=-1010111


6.5 解:[x]补与[x]原、x的对应关系如下:

[x]

1.1100

1.1001


0.1110


1.0000


1,0101


1,1100

0,0111

1,0000

[x]

1.0100

1.0111


0.1110

罿


1,1011


1,0100

0,0111

x

-0.0100


-0.0111


0.1110

-1

-1011

-100

0,0111
载高清

-10000


5



6.9解:真值和机器数的对应关系如下:

9BH

原码

补码

反码

移码

无符号数

对应十进制数

-27

-101

-100

+27

155

FFH

罿原码

补码

反码

移码

无符号数

对应十进制

-128

256

6. 10.

解:0的机器数形式如下:(假定机器数共8位,含1位符号位在内)

真值

原码

补码

反码

移码

+0

0 000 0000

0 000 0000

0 000 0000

1 000 0000

-0

1 000 0000

0 000 0000

1 111 1111

载高清
1 000 0000

6



结论:0的原码和反码分别有+0-0两种形式,补码和移码只有一种形式,

且补码和移码数值位相同,符号位相反。

6.12意画出该浮点数的格式:

阶符1

阶码4

数符1

尾数10


?? ? 将十进制数转换为二进制:x1= 51/128= 0.0110011B= 2-1 * 0.110
011B

x3=7.375=111.011B=23*0.111011B

x4=-86.5=-1010110.1B=27*(-0.B)

则以上各数的浮点规格化数为:

1[x1]=100010.110 011 000 0

7




[x2]=101011.110110 000 0

[x3]=000110.111011 000 0

[x4]=001111.101011 010 0

2[x1]=111110.110011 000 0

[x2]=110111.001010 000 0

[x3]=000110.111011 000 0


3[x1]=011110.110011 000 0

[x2]=010111.001 010 000 0


[x3]=100110.111 011 000 0

[x4]=101111.010 100 110 0


8



6.16解:(1)无符号整数:0~ 216- 1,即:0~65535

? ?无符号小数:0~ 1 - 2-16,即:0~ 0.99998

2)原码定点小数:-1+ 2-15~1- 2-15,即:-0.99997~0.99997

3)补码定点小数:-1~1 - 2-15 ,即:-1~0.99997

4)补码定点整数:-215~215- 1 ,即:-32768~32767

螀(5)原码定点整数:-215+ 1~215 - 1,即:-32767~32767
时:

最大负数=1111111.000000 001 ,即-2-9?2-31

最小负数=0111111.111111 111,即-1-2-9?231

则负数表示范围为:-1-2-9?231——-2-9?2-31


最大正数=0111110.111111 111,即(1-2-9?231


9



最小正数=1111110.000000 001,即2-9?2-31

则正数表示范围为:2-9?2-31——1-2-9?231

7)当机器数采用补码规格化形式时,若不考虑隐藏位,则

最大负数=1000001.011111 111,即-2-1?2-32

最小负数=0111111.000000 000,即-1?231


莀最大正数=0111110.111 111 111,即(1-2-9)?231

最小正数=1000000.100000 000,即 2-1?2-32

则正数表示范围为:2-1?2-32——1-2-9?231

6.17解:算术左移一位:

[x1]=0.011 0100;正确

10



[x2]=1.1010000;溢出(丢1)出错

[x3]=1.0110010;正确

[y1]=0.0101000;溢出(丢1)出错

[y2]=1.1010000;正确

[y3]=1.0110010;溢出(丢0)出错


[z2]=1.1010001;正确

[z3]=1.0110011;溢出(丢0)出错

算术左移两位:

[x1]=0.1101000;正确

[x2]=1.010 0000;溢出(丢11)出错

11




[x3]=1.1100100;正确

[y1]=0.1010000;溢出(丢10)出错

[y2]=1.0100000;正确

[y3]=1.1100100;溢出(丢00)出错

[z1]=1.0111111;溢出(丢01)出错


[z3]=1.1100111;溢出(丢00)出错

算术右移一位:

[x1]=0.0001101;正确

[x2]=1.0110100;正确

[x3]=1.000 1100(1);丢1,产生误差

12




[y1]=0.0101010;正确

[y2]=1.1110100;正确

[y3]=1.1001100(1);丢1,产生误差

[z1]=1.1010111;正确

[z2]=1.1110100(0);丢0,产生误差


蒈算术右移两位:

[x1]=0.000011010);产生误差

[x2]=1.0011010;正确

[x3]=1.000011001);产生误差

[y1]=0.001 0101;正确

13



[y2]=1.1111010;正确

[y3]=1.110011001);产生误差

[z1]=1.1101011;正确

[z2]=1.111101000);产生误差

[z3]=1.110011001);产生误差

6.19 解:(1A=9/=0.001 0010B, B= -13/32= -0.011 0100B
[A+B]=0.0010010 + 1.1001100 = 1.1011110 ——无溢出

A+B=-0.010 0010B = -17/

?2A=19/32=0.100 1100B, B= -17/128= -0.001 0001B

?? ? ? [A]=0.1001100, [B]=1.1101111 , [-B]=0.0010001



14



[A-B]=0.1001100 + 0.0010001= 0.1011101 ——无溢出

A-B=0.101 1101B = 93/128B

3A=-3/16= -0.001 1000B, B=9/32= 0.010 0100B

?? [A]=1.1101000, [B]=0.010 0100

[A+B]=1.1101000 + 0.0100100 = 0.0001100 —— 无溢出

A+B= 0.000 1100B = 3/32
?? ? [A]=1 010 1001, [B]=0011 0101, [-B]=1 100 1011

[A-B]=1 0101001 + 1 1001011 = 0 1110100 —— 溢出

5A=115=111 0011B, B= -24= -11 000B

? ? [A]=0 1110011, [B]=1110 1000

15




[A+B]=0 1110011 + 1 1101000 = 0 1011011——无溢出

罿A+B=101 1011B = 91

6.20解:先将数据转换成所需的机器数,然后计算,最后结果转换成真值。

1[x]=0.110111[y]=1.101110x*=0.110111y*=0.101110

原码一位乘:

部分积

说明

0.000 000

+0.000 000



0.000 000

0.000 000

+0.110 111

010 111

芃右移一位
艿乘数为1,加上x*





16



0.110 111

0.011 011

+0.110 111

101 011

右移一位

乘数为1,加上x*

1.010 010

0.101 001

+0.110 111

010 101

右移一位

乘数为1,加上x*

www.

0.110 000

+0.000 000

tao

docs.co乘数为0,加上0

0.110 000

0.011 000

000 101

袂右移一位
蒀乘数为1,加上x*


17



+0.110 111



1.001 111
0.100 111

100 010

右移一位

x*×y*=0.100111 100 010z0=x0?y0=0 ?1=1

[x×y]=1.100111 100 010x·y=-0. 100 111 100 010

原码两位乘:[-x*]=1.0010012x*=1.101110

部分积

乘数y*

Cj

说明

000 . 000 000 +001 . 101 110

00 101 110

0

部分积初值为0Cj=0
根据yn-1ynCj=100,加2x*,保持Cj=0

001 . 101 110


0


000 . 011 011
www +111 . 001 001

.ta

011

o


docs.com

111 . 100 100 111 . 111 001 +111 . 001 001

00 100 010

1

右移2
根据yn-1ynCj=101,加[-x*],置Cj=1

111 . 000 010 111 . 110 000 +000 . 110 111

10 001 000

1

右移2
根据yn-1ynCj=001,加x*,保持Cj=0

000 . 100 111

10 001 0




x*×y*=0.100 111 100 010z0=x0? y0=0 ?1=1

18



[x×y]=1.100111 100 010x·y=-0. 100 111 100 010
补码一位乘:[x]=0.110111[-x]=1.001001[y]=1.010010

部分积

乘数

Yn+1

说明

00 . 000 000 00 . 000 000 +11 . 001 001

1 010 010
0 101 001

0
0

Ynyn+1=00,部分积右移1 Ynyn+1=10,部分积加[-x]

11 . 001 001



右移1

11 . 100 100 +00 . 110 111

1 010 100

1

Ynyn+1=01,部分积加[x]

00 . 011 011

00 . 000 110 www 00 . 001 101

+11 . 001 001

.ta 1 110

101

o

docs.co

11 . 001 111



右移1

11 . 100 111 +00 . 110 111

1 111 010

1

Ynyn+1=01,部分积加[x]

00 . 011 110 00 . 001 111 +11 . 001 001

0 111 101

0

右移1
Ynyn+1=10,部分积加[-x]

11 . 011 000

0 111



19




10



[x×y]=1.011000 011 110x·y= -0.100 111 100010
补码两位乘:
2[x]=001.1011102[-x]=1.001001
结果同补码一位乘,x·y= -0. 100 111 100 010 00
6.26 解:先将xy转换成机器数形式:
1x=2-011×0.101 100y=2-010×-0.011100
[x]=11010.101100, [y]=11101.100100
[Ex]=1,101,[y]=1,110, [Mx]=0.101100, [My]=1.100 100 ? ? 1)对阶:
[?E]=[Ex]+[-Ey]= 11,101+ 00,010=11,111 < 0

[Ey] [x]=11100.010110
2)尾数运算:
? [Mx]+[My]=0.010 110 + 11.100 100=11.111010
[Mx]+[-My]=0.010110 + 00.011100= 00.110 010
3)结果规格化:
? [x+y]=1111011.111010 = 1101111.010000 (尾数左
3次,阶码减3
? [x-y]=1111000.110010, 已是规格化数。

4)舍入:无
20



5)溢出:无
则:x+y=2-101×-0.110000
? ? x-y =2-010×0.110010
2x=2-011×-0.100010,y=2-010×-0.011111
? ? [x]=11011.011110, [y]=11101.100001
1)对阶:过程同(1)1),则
[x]=11101.101111
? 2)尾数运算:
? ? [Mx]+[My]=11.101111 + 11. 100001 = 11.010000
? ? [Mx]+[-My]=11.101111 + 00.011111 = 00.001110
3)结果规格化:
2 次,阶码减2
4)舍入:无
5)溢出:无
则:x+y=2-010×-0.110000
? ? x-y=2-100×0.111 000
3x=2101×-0.100101,y=2100×-0.001111
? ? [x]=01011.011011, [y]=01001.110001
1)对阶:

[?E]=00101+11100=00001>0,应Ey Ex对齐,则:

21



[Ey]+1=00100+00001=00101=[Ex]
[y]=01011.1110001
2)尾数运算:
?[Mx]+[My]=11.011011+ 11.1110001=11.0100111
?[Mx]+[-My]=11.011011+ 00.0001111=11.1000101
3)结果规格化:
? [x+y]=0010111.0100111),已是规格化数
? [x-y]=0010111.1000101=0010011.000101 (尾
数左规1次,阶码减1
4)舍入:
[x+y]=0010111.010011(舍)
则:x+y=2101×-0.101101
x-y =2100×-0.111011



22

显示全文