计组第一章.docx
《计组第一章.docx》由会员分享,可在线阅读,更多相关《计组第一章.docx(12页珍藏版)》请在冰豆网上搜索。
计组第一章
第一章
4.冯.诺依曼型计算机的主要设计思想是什么?
它包括哪些主要组成部分?
解:
冯.诺依曼型计算机的主要设计思想是:
存储程序和程序控制。
存储程序:
将解题的程序(指令序列)存放到存储器中;
程序控制:
控制器顺序执行存储的程序,按指令功能控制全机协调地完成运算任务。
主要组成部分有:
控制器、运算器、存储器、输入设备、输出设备。
5.什么是存储容量?
什么是单元地址?
什么是数据字?
什么是指令字?
解:
存储容量:
指存储器可以容纳的二进制信息的数量,通常用单位KB、MB、GB来度量,存储容
量越大,表示计算机所能存储的信息量越多,反映了计算机存储空间的大小。
单元地址:
单元地址简称地址,在存储器中每个存储单元都有唯一的地址编号,称为单元地
址。
数据字:
若某计算机字是运算操作的对象即代表要处理的数据,则称数据字。
指令字:
若某计算机字代表一条指令或指令的一部分,则称指令字。
6.什么是指令?
什么是程序?
解:
指令:
计算机所执行的每一个基本的操作。
程序:
解算某一问题的一串指令序列称为该问题的计算程序,简称程序。
7.指令和数据均存放在内存中,计算机如何区分它们是指令还是数据?
解:
一般来讲,在取指周期中从存储器读出的信息即指令信息;而在执行周期中从存储器中读出的
信息即为数据信息。
8.什么是内存?
什么是外存?
什么是CPU?
什么是适配器?
简述其功能。
解:
内存:
一般由半导体存储器构成,装在底版上,可直接和CPU交换信息的存储器称为内存储
器,简称内存。
用来存放经常使用的程序和数据。
外存:
为了扩大存储容量,又不使成本有很大的提高,在计算机中还配备了存储容量更大的
磁盘存储器和光盘存储器,称为外存储器,简称外存。
外存可存储大量的信息,计算
机需要使用时,再调入内存。
CPU:
包括运算器和控制器。
基本功能为:
指令控制、操作控制、时间控制、数据加工。
适配器:
连接主机和外设的部件,起一个转换器的作用,以使主机和外设协调工作。
第二3.有一个字长为32位的浮点数,阶码10位(包括1位阶符),用移码表示;尾数22位(包括1位尾符)用补码表示,基数R=2。
请写出:
(1)最大数的二进制表示;
(2)最小数的二进制表示;
(3)规格化数所能表示的数的范围;
(4)最接近于零的正规格化数与负规格化数。
解:
(1)11111111110111111111111111111111
(2)11111111111000000000000000000000
(3)11111111110111111111111111111111~01111111111000000000000000000000
(4)00000000000000000000000000000001~0000000000111111*********1111111
4.将下列十进制数表示成浮点规格化数,阶码3位,用补码表示;尾数9位,用补码表示。
(1)27/64
(2)-27/64
解:
(1)27/64=11011B×
=0.011011B=0.11011B×
浮点规格化数:
11110110110000
(2)-27/64=-11011B×
=-0.011011B=-0.11011B×
浮点规格化数:
11111001010000
5.已知X和Y,用变形补码计算X+Y,同时指出运算结果是否溢出。
(1)X=0.11011Y=0.00011
(2)X=0.11011Y=-0.10101
(3)X=-0.10110Y=-0.00001
解:
(1)先写出x和y的变形补码再计算它们的和
[x]补=00.11011[y]补=00.00011
[x+y]补=[x]补+[y]补=00.11011+00.00011=0.11110
∴x+y=0.1111B无溢出。
(2)先写出x和y的变形补码再计算它们的和
[x]补=00.11011[y]补=11.01011
[x+y]补=[x]补+[y]补=00.11011+11.01011=00.00110
∴x+y=0.0011B无溢出。
(3)先写出x和y的变形补码再计算它们的和
[x]补=11.01010[y]补=11.11111
[x+y]补=[x]补+[y]补=11.01010+11.11111=11.01001
∴x+y=-0.10111B无溢出
6.已知X和Y,用变形补码计算X-Y,同时指出运算结果是否溢出。
(1)X=0.11011Y=-0.11111
(2)X=0.10111Y=0.11011
(3)X=0.11011Y=-0.10011
解:
(1)先写出x和y的变形补码,再计算它们的差
[x]补=00.11011[y]补=11.00001[-y]补=00.11111
[x-y]补=[x]补+[-y]补=00.11011+00.11111=01.11010
∵运算结果双符号不相等∴为正溢出
X-Y=+1.1101B
(2)先写出x和y的变形补码,再计算它们的差
[x]补=00.10111[y]补=00.11011[-y]补=11.00101
[x-y]补=00.10111+11.00101=11.11100
∴x-y=-0.001B无溢出
(3)先写出x和y的变形补码,再计算它们的差
[x]补=00.11011[y]补=11.01101[-y]补=00.10011
[x-y]补=[x]补+[-y]补=00.11011+00.10011=01.01110
∵运算结果双符号不相等∴为正溢出
X-Y=+1.0111B
7.用原码阵列乘法器、补码阵列乘法器分别计算X×Y。
(1)X=0.11011Y=-0.11111
(2)X=-0.11111Y=-0.11011
解:
(1)用原码阵列乘法器计算:
[x]补=0.11011[y]补=1.00001
(0) 1 1 0 1 1
×)
(1) 0 0 0 0 1
----------------------------------
(0) 1 1 0 1 1
(0) 0 0 0 0 0
(0) 0 0 0 0 0
(0) 0 0 0 0 0
(0) 0 0 0 0 0
(0)
(1)
(1)(0)
(1)
(1)
-----------------------------------------
(1) 0 0 1 0 1 1 1 0 1 1
[x×y]补=1.0010111011
∴x×y=-0.1101000101
8.用原码阵列除法器计算X÷Y。
(1)X=0.11000Y=-0.11111
(2)X=-0.01011Y=0.11001
解:
(1)[x]原=[x]补=0.11000 [-∣y∣]补=1.00001
被除数X 0.11000
+[-∣y∣]补1.00001
----------------------
余数为负1.11001→q0=0
左移1.10010
+[|y|]补 0.11111
----------------------
余数为正0.10001→q1=1
左移1.00010
+[-|y|]补1.00001
----------------------
余数为正0.00011→q2=1
左移0.00110
+[-|y|]补1.00001
----------------------
余数为负1.00111→q3=0
左移0.01110
+[|y|]补 0.11111
----------------------
余数为负1.01101→q4=0
左移0.11010
+[|y|]补 0.11111
----------------------
余数为负1.11001→q5=0
+[|y|]补 0.11111
----------------------
余数0.11000
故[x÷y]原=1.11000即x÷y=-0.11000B
余数为0.11000B×
9.设阶为5位(包括2位阶符),尾数为8位(包括2位数符),阶码、尾数均用补码表示,完成下列取值的[X+Y],[X-Y]运算:
(1)X=
×0.100101Y=
×(-0.011110)
(2)X=
×(-0.010110)Y=
×(0.010110)
解:
(1)将y规格化得:
y=
×(-0.111100)
[x]浮=1101,00.100101[y]浮=1101,11.000100[-y]浮=1101,00.111100
①对阶
[ΔE]补=[Ex]补+[-Ey]补=1101+0011=0000
∴Ex=Ey
②尾数相加
相加 相减
00.100101 00.100101
+11.000100 +00.111100
------------ --------------
11.101001 01.100001
[x+y]浮=1101,11.101001 左规[x+y]浮=1100,11.010010
∴x+y=
×(-0.101110)
[x-y]浮=1101,01.100001 右规[x-y]浮=1110,00.1100001
舍入处理得[x-y]浮=1110,00.110001
∴x-y=
×0.110001
(2)[x]浮=1011,11.101010[y]浮=1100,00.010110[-y]浮=1100,11.101010
①对阶
[ΔE]补=[Ex]补+[-Ey]补=1011+0100=1111
∴△E=-1[x]浮=1100,11.110101(0)
②尾数相加
相加 相减
11.110101(0) 11.110101(0)
+00.010110 +11.101010
-------------- ------------------
00.001011(0) 11.011111(0)
[x+y]浮=1100,00.001011(0)左规[x+y]浮=1010,00.1011000
∴x+y=
×0.1011B
[x-y]浮=1100,11.011111(0)
∴x-y=
×(-0.100001B)
13.某加法器进位链小组信号为C4C3C2C1,低位来的信号为C0,请分别按下述两种方式写出C4C3C2C1的逻辑表达式。
(1)串行进位方式
(2)并行进位方式
解:
(1)串行进位方式:
C1=G1+P1C0其中:
G1=A1B1,P1=A1⊕B1
C2=G2+P2C1 G2=A2B2,P2=A2⊕B2
C3=G3+P3C2 G3=A3B3,P3=A3⊕B3
C4=G4+P4C3 G4=A4B4,P4=A4⊕B4
(2)并行进位方式:
C1=G1+P1C0
C2=G2+P2G1+P2P1C0
C3=G3+P3G2+P3P2G1+P3P2P1C0
C4=G4+P4G3+P4P3G2+P4P3P2G1+P4P3P2P1C0
其中G1-G4,P1-P4表达式与串行进位方式相同。
第三章
1.有一个具有20位地址和32位字长的存储器,问:
(1)该存储器能存储多少个字节的信息?
(2)如果存储器由512K×8位SRAM芯片组成,需要多少芯片?
(3)需要多少位地址作芯片选择?
解:
(1)∵220=1M,∴该存储器能存储的信息为:
1M×32/8=4MB
(2)(1000/512)×(32/8)=8(片)
(3)需要1位地址作为芯片选择。
2.已知某64位机主存采用半导体存储器,其地址码为26位,若使用256K×16位的DRAM芯片组成该机所允许的最大主存空间,并选用模块板结构形式,问:
(1)每个模块板为1024K×64位,共需几个模块板?
(2)个模块板内共有多少DRAM芯片?
(3)主存共需多少DRAM芯片?
CPU如何选择各模块板?
解:
(1). 共需模块板数为m:
m=
÷
=64(块)
(2).每个模块板内有DRAM芯片数为n:
n=(
/
)×(64/16)=16(片)
(3)主存共需DRAM芯片为:
16×64=1024(片)
每个模块板有16片DRAM芯片,容量为1024K×64位,需20根地址线(A19~A0)完成模块
板内存储单元寻址。
一共有64块模块板,采用6根高位地址线(A25~A20),通过
6:
64译码器译码产生片选信号对各模块板进行选择。
3.用16K×8位的DRAM芯片组成64K×32位存储器,要求:
(1)画出该存储器的组成逻辑框图。
(2)设存储器读/写周期为0.5μS,CPU在1μS内至少要访问一次。
试问采用哪种刷新方式比较合理?
两次刷新的最大时间间隔是多少?
对全部存储单元刷新一遍所需的实际刷新时间是多少?
解:
(1)组成64K×32位存储器需存储芯片数为
N=(64K/16K)×(32位/8位)=16(片)
每4片组成16K×32位的存储区,有A13-A0作为片内地址,用A15A14经2:
4译码器产生片选信号
,逻辑框图如下所示:
(2)依题意,采用异步刷新方式较合理,可满足CPU在1μS内至少访问内存一次的要求。
设16K×8位存储芯片的阵列结构为128行×128列,按行刷新,刷新周期T=2ms,则异步
刷新的间隔时间为:
则两次刷新的最大时间间隔发生的示意图如下
可见,两次刷新的最大时间间隔为tmax
tmax=15.5-0.5=15(μS)
对全部存储单元刷新一遍所需时间为tR
8.存储器容量为64M,字长64位,模块数m=8,分别用顺序方式和交叉方式进行组织。
存储周期T=100ns,数据总线宽度为64位,总线周期τ=10ns.问顺序存储器和交叉存储器的带宽各是多少?
解:
信息总量:
q=64位×8=512位
顺序存储器和交叉存储器读出8个字的时间分别是:
t2=mT=8×100ns=8×10
(s)
t1=T+(m-1)
=100+7×10=1.7×10
(s)
顺序存储器带宽是:
W2=q/t2=512÷(8×10
)=64×10
(位/S)
交叉存储器带宽是:
W1=q/t1=512÷(1.7×10
)=301×10
(位/S)
9.CPU执行一段程序时,cache完成存取的次数为2420次,主存完成存取的次数为80
次,已知cache存储周期为40ns,主存存储周期为240ns,求cache/主存系统的效率和平均访问时间。
解:
先求命中率h
h=nc/(nc+nm)=2420÷(2420+80)=0.968
则平均访问时间为ta
ta=0.968×40+(1-0.968)×240=46.4(ns)
r=240÷40=6
cache/主存系统的效率为e
e=1/[r+(1-r)×0.968]=86.2%
10.已知Cache存储周期40ns,主存存储周期200ns,Cache/主存系统平均访问时间为50ns,求Cache的命中率是多少?
解:
∵ta=tc×h+tr×(1-h)
∴h=(ta-tr)/(tc-tr)=(50-200)/(40-200)=15/16=0.94
tR=0.5×128=64 (μS)
第四章
1.ASCll码是7位,如果设计主存单元字长为32位,指令字长为12位,是否合理?
为什
么?
解:
指令字长设计为12位不是很合理。
主存单元字长为32位,一个存储单元可存放4个ASCII码,
余下4位可作为ASCII码的校验位(每个ASCII码带一位校验位),这样设计还是合理的。
但是,设计指令字长为12位就不合理了,12位的指令码存放在字长32位的主存单元中,
造成19位不能用而浪费了存储空间。
2.假设某计算机指令长度为20位,具有双操作数、单操作数、无操作数三类指令形式,每个操作数地址规定用6位表示。
问:
若操作码字段固定为8位,现已设计出m条双操作数指令,n条无操作数指令,在此情况下,这台计算机最多可以设计出多少条单操作数指令?
解:
这台计算机最多可以设计出256-m-n条单操作数指令
3.指令格式结构如下所示,试分析指令格式及寻址方式特点。
解:
指令格式及寻址方式特点如下:
①单字长二地址指令;
②操作码OP可指定
=64条指令;
③RR型指令,两个操作数均在寄存器中,源和目标都是通用寄存器(可分别指定16个寄存器
之一);
④这种指令格式常用于算术逻辑类指令。
4.指令格式结构如下所示,试分析指令格式及寻址方式特点。
解:
指令格式及寻址方式特点如下:
①双字长二地址指令;
②操作码OP可指定
=64条指令;
③RS型指令,两个操作数一个在寄存器中(16个寄存器之一),另一个在存储器中;
④有效地址通过变址求得:
E=(变址寄存器)±D,变址寄存器可有16个。
5.指令格式结构如下所示,试分析指令格式及寻址方式特点。
解:
指令格式及寻址方式特点如下:
①单字长二地址指令;
②操作码OP可指定
=16条指令;
③有8个通用寄存器,支持8种寻址方式;
④可以是RR型指令、SS型指令、RS型指令、
6.一种单地址指令格式如下所示,其中I为间接特征,X为寻址模式,D为形式地址。
I,X,D组成该指令的操作数有效地址E。
设R为变址寄存器,R1为基值寄存器,PC为程序计数器,请在下表中第一列位置填入适当的寻址方式名称。
解:
①直接寻址
②相对寻址
③变址寻址
④基址寻址
⑤间接寻址
⑥基址间址寻址
7.某计算机字长16位,主存容量为64K字,采用单字长单地址指令,共有40条指令,试采用直接、立即、变址、相对四种寻址方式设计指令格式。
解:
40条指令需占用操作码字段(OP)6位,这样指令余下长度为10位。
为了覆盖主存640K字的地
址空间,设寻址模式(X)2位,形式地址(D)8位,其指令格式如下:
寻址模式定义如下:
X=00直接寻址有效地址E=D(直接寻址为256个存储单元)
X=01立即寻址D字段为操作数
X=10变址寻址有效地址E=(RX)+D(可寻址64K个存储单元)
X=11相对寻址有效地址E=(PC)+D(可寻址64K个存储单元)
其中RX为变址寄存器(16位),PC为程序计数器(16位),在变址和相对寻址时,位移量D可 正可负。
15.根据操作数所在位置,指出其寻址方式(填空):
(1)操作数在寄存器中,为(A)寻址方式。
(2)操作数地址在寄存器,为(B)寻址方式。
(3)操作数在指令中,为(C)寻址方式。
(4)操作数地址(主存)在指令中,为(D)寻址方式
(5)操作数的地址,为某一寄存器内容与位移量之和可以是(E,F,G)寻址方式。
解:
A:
寄存器直接;B:
寄存器间接;C:
立即;
D:
直接; E:
相对; F:
基值;G:
变址
第五章
1.请在括号内填入适当答案。
在CPU中:
(1)保存当前正在执行的指令的寄存器是(指令寄存器IR);
(2)保存当前正要执行的指令地址的寄存器是(程序计数器PC);
(3)算术逻辑运算结果通常放在(通用寄存器)和(数据缓冲寄存器DR)。
2.参见下图(课本P166图5.15)的数据通路。
画出存数指令"STAR1,(R2)"的指令周期
流程图,其含义是将寄存器R1的内容传送至(R2)为地址的主存单元中。
标出各微操作信
号序列。
解:
"STAR1,(R2)"指令是一条存数指令,其指令周期流程图如下图所示:
3.参见课本P166图5.15的数据通路,画出取数指令"LDA(R3),RO"的指令周期流程图,
其含义是将(R3)为地址的主存单元的内容取至寄存器R0中,标出各微操作控制信号序列。
6.假设某机器有80条指令,平均每条指令由4条微指令组成,其中有一条取指微指令是所有指
令公用的。
已知微指令长度为32位,请估算控制存储器容量。
解:
微指令条数为:
(4-1)×80+1=241条
取控存容量为:
256×32位=1KB