计算机组织与体系结构答案.docx
- 文档编号:9146705
- 上传时间:2023-05-17
- 格式:DOCX
- 页数:15
- 大小:22.44KB
计算机组织与体系结构答案.docx
《计算机组织与体系结构答案.docx》由会员分享,可在线阅读,更多相关《计算机组织与体系结构答案.docx(15页珍藏版)》请在冰点文库上搜索。
计算机组织与体系结构答案
计算机组织与体系结构答案
【篇一:
计算机组成与体系结构(a)参考答案】
/p>参考答案
使用班级:
12060341x,12060342x,12060343x
一、填空题(每空1分,本题共10分)
1.虚拟内存,缓存机制2.硬件,硬件3.页式,段式
4.算术运算,逻辑运算5.尾数,阶码
二、选择题(每题2分,本题共20分)
1.c2.b3.b4.c5.c6.c7.a8.d9.a10.a
三、简答题(每题10分,本题共30分)
1.(6分)计算机中的流水线是把一个重复的过程分解为若干个子过程,每个子过程与其他子过程并行进行。
由于这种工作方式与工厂中的生产流水线十分相似,因此称为流水线技术
2.(7分)人们通常把构成计算机的物理装置称为计算机的硬件,其主要功能是:
存放控制计算机运行的程序和数据,对信息进行加工处理,实现与外界的信息交换。
软件是计算机程序及其相关文档的总称。
软件是对硬件功能的完善与扩充,一部分软件又是以另一部分软件为基础的再扩充。
3.(7分)结构相关,是指令在重叠执行的过程中,
硬件资源满足不了指令重叠执行的要求,发生硬
件资源冲突而产生的相关。
4.微程序控制器原理框图如下图所示。
它主要由
控制存储器、微地址寄存器、微命令寄存器和地
址转移逻辑三大部分组成。
在采用微程序控制的计算机中:
(1)将整个指令
系统对应的微程序放入控制存储器中;
(2)从控
制存储器中逐条取出取机器指令用的微指令,
将主存中的机器指令存入指令寄存器中;(3)根
据指令寄存器中的操作码,经过微地址形成部件,
得到这条指令对应的微程序入口地址,并送入微
地址寄存器;(4)从控制存储器中逐条取出对应
的微指令并执行之(5)执行完对应于一条机器指
令的一段微程序后又回到取指微程序的入口地
址,继续第
(2)、(3)、(4)、(5)步。
--------------(10分)
四、设计题(每题10分,本题共20分)
1.如图
2.二地址指令为14条:
操作码(4位)地址1(6位)地址2(6位)
0000a1a2
…
1101-------------(2分)
单地址指令为126条:
操作码(10位)地址(6位)
1110000000a1
…
1110111111
1111000000
…
1111111101-------------(6分)
零地址指令的格式为128条:
操作码(16位)
1111111110000000
…
1111111110111111
1111111111
000000
…
1111111111111111---------------(10分)
五、计算题(每题10分,本题共20分)
1.
(1)这个cache存储系统的等效访问周期:
等效存储容量:
s=64mb
(2)这个cache存储系统的访问效率:
e=tc/t=10/11=0.91
2.数值部分的运算如图
【篇二:
计算机组织与体系结构答案中文版(第七版)】
nit2
1,设a,b,c的内存地址分别是a[i],b[i],c[i],i从1到1000
loadm(a[i])
addm(b[i])
storm(c[i])
2,aloadm
(2)00000001|000000000010
b一次
3,在ias机上读取一个值的过程如下:
ir中操作码?
控制总线,存储器地址x?
mar,mar中值?
地址总线x中数据?
数据总线,数总线地址?
mbr
写入一个值:
ir中操作码?
控制总线,存储器地址x?
mar,mar值?
地址总线mbr值?
数据总线,数据总线值?
x
4,程序代码:
loadm(0fa)
addm(0fb)
loadm(0fa)
jump+m(08d,0:
19)
load–m(0fa)
addm(0fb)
程序代码意图:
首先装入0fa值,然后与0fb相加,再装入0fa值,若ac中值非负,取0fa左指令再装入-(0fa)将0fb的值相加后装入ac中
5,如图所示
6,便于同时存取两个连续地址序号的存储单元,提高访问速度
7,
(1)存储器数据传输率快了32倍
(2)数据通道最大数目增大了一倍
(3)单通道最大数据传输速率提升了5倍。
各种技术的使用,提升了整机的性能。
8,回答正确,但是不适合用户理解。
mac机的时钟速率是1.2ghz,p4为2.4ghz,而时钟速率在一定程度上反映了计算机的执行速度,所以p4的机器可能是目前最符合用户要求的机型。
9,在这种表示方法中,10个管表示了十个数字,而使用二进制可以表示错误!
未找到引用源。
个数字
10,(画图)略
11,mips=错误!
未找到引用源。
*错误!
未找到引用源。
12,∵mips=错误!
未找到引用源。
*错误!
未找到引用源。
∴cpi(vax)=5,cpi(ibm)=1.39
ic≈错误!
未找到引用源。
13,cpi=(1+2+2+2)/错误!
未找到引用源。
=7*错误!
未找到引用源。
mips=错误!
未找到引用源。
*错误!
未找到引用源。
=错误!
未找到引用源。
*错误!
未找到引用源。
=5.71*错误!
未找到引用源。
t=7*错误!
未找到引用源。
*错误!
未找到引用源。
=1.75*错误!
未找到引用源。
14,a:
算术平均法适用于较多程序,抖动较大
调和平均发适用于较少程序,抖动较小
rb=4/(1/100+10+5+1)=0.25mips
rb=4/(0.1+1+10+8)=0.21
rb=4/(0.2+0.2+0.5+1)=2.1
故cab
第三章
1步骤一
存储器cpu寄存器
100111pc
25940ac
3260011ir
50003
6
步骤二
存储器cpu寄存器
100112pc
259400003ac
3260011ir
50003
6
步骤三
存储器cpu寄存器
100112pc
259400003ac
3265940ir
50003
6
9400003
步骤四
存储器cpu寄存器
100113pc
259400006ac
3265940ir
500033+3=6
6
9400003
步骤五
存储器cpu寄存器
100113pc
259400006ac
32626ir
50003
6
9400003
步骤六
存储器cpu寄存器
100114pc
259400006ac
32626ir
50003
60006
3.2步骤一中详细解释:
pc中内容为300,将pc?
mar,然后将第一条指令装入数据总线,数据总线?
mbr,mbr?
ir
3.3(a)最大可直接寻址的容量是错误!
未找到引用源。
b
(b),1,取一次指令要两次访问存储器
2,将降低存储器容量
(c)程序计数器和指令寄存器各需要2
4位和8位。
3.4
(a)0~(错误!
未找到引用源。
)
(b)0~(错误!
未找到引用源。
)
(c)i/o模块与cpu互连的特点
(d)错误!
未找到引用源。
个,1个。
因为总共只有16位cpu地址,故处理器只能支持(16-i/o端口位数)的位数
3.5
t=1/2*错误!
未找到引用源。
外部数据总线l1=16,l=32
(1)f=1/t=2*错误!
未找到引用源。
∴v=错误!
未找到引用源。
*f≈错误!
未找到引用源。
b/s
(2)能提高性能,由公式v=1/t*错误!
未找到引用源。
可知f与l变大都可以提高传输速率
3.6
(1)电传输入?
inpr
inpr?
cpu(经i/o模块)
cpu?
outr(经i/o模块)
outr?
电传输出
(2)设置优先级,cpu处理为1,cpu通过i/o模块向外输出或者输入为2,电传输入/输出为3.设置中断允许位,当优先级较低的操作遇到高优先级操作的中断请求时,置ien=1,允许中断,从而实高速cpu处理与低速i/o处理的协调。
3.7
(1)错误!
未找到引用源。
(2)传指令时,为相同的传输速率
传数据时,仍然为错误!
未找到引用源。
倍差
3.8这段时间一定比时钟周期小。
因为链式反应在一个时钟周期开始的时候应判断各主控方的优先级,只有该时间周期小于时钟周期才能即调整优先级又实现各主控方各自的操作。
3.9减小工作量,提高效率。
因为不用判断优先级为16的设备的tr线,任一高优先级设备可抢占该设备时间片,只有tr0-tr15都无效时,tr16自然使用时间片。
3.10
(1)因为中断就是为了提高高速设备的使用效率,平衡高低速设备。
故优先级越低,其
速率就越低,其余高优先级操作耗时都比其少,所以tr16的平均等待时间就最低。
(在该特定设备中)
(2)若其余操作一直请求使用时间片,这种条件下不成立。
3.11
(a)时钟周期t=1/f=100ns
读总线周期=2.5t=250ns
(b)250–20=230ns
处理器至少应在230ns时将数据放到总线上
3.13
(a)总线时钟周期=1/f*109ns=200ns
write信号宽度=50*200=1000
(b)
(c)
3.14
(a)原周期=4+4*3=16时钟周期
4*2/16=50%
(b)原周期=4+3*3+13=26时钟周期
4*2/26=30.8%
3.15
(a)intel8088的总线宽度为8位
时钟周期t=1/f=1/8m=125ns
4*8/4t=64m位/s
(b)2*8/4t=32m位/s
3.16
若使用偶对齐的字,取操作数需要4个存储器周期(包括取指令),4*4/4m=4ms
若使用偶对齐的字,取操作数需要8个存储器周期(包括取指令),8*4/4m=8ms
3.17
1*20%+2*40%+4*40%=2.6
处理速率相对16位微处理器提高了1.6倍
3.18
处理器处理完一条指令后才会进入中断处理周期
9*t=9/f=9/10m=900ns
第四章
4.1
m=64,k=4
组数v=m/k=64/4=16=2d,d=4
块数4k=2s,s=12
标记=s-d=8位
块大小=2w=128*8=210,w=10
主存地址=
4.2
k=2
块大小=行大小=2w=16,w=4
【篇三:
计算机组织与系统结构第四章习题答案】
(2)因为是按字节编址,所以主存地址共16位,6位选片,10位片内选址。
(3)显然,位方向上扩展了2倍,字方向扩展了64倍。
下图中片选信号cs为高电平有效。
a15
…
a10a9
…
a0
d7
…
d0
we
(2)若采用异步刷新方式,每单元刷新间隔不超过2ms,则产生刷新信号的间隔是多少时间?
若采
用集中刷新方式,则存储器刷新一遍最少用多少读写周期?
参考答案:
a17
a16a15
……
a0
d7
…
d0
(1)数据寄存器最少应有多少位?
(2)地址寄存器最少应有多少位?
(3)共需多少个eprom芯片?
(4)画出该只读存储器的逻辑框图。
参考答案:
(1)数据寄存器最少有16位。
(4)该只读存储器的逻辑框图如下(假定按字编址,图中片选信号cs为高电平有效)。
a14a13a12
…
a0
d15
…
d8d7
…
d0
cpu地址线共16位,故存储器地址空间为0000h~ffffh,其中,8000h~ffffh为ram区,
we
因为rom区在0000h~7fffh,ram区在8000h~ffffh,所以可通过最高位地址a15来区分,当a15为0时选中rom芯片;为1时选中ram芯片,此时,根据a14和a13进行译码,得到4个译码信号,分别用于4组字扩展芯片的片选信号。
(图略,可参照图4.15)
7.假定一个存储器系统支持4体交叉存取,某程序执行过程中访问地址序列为3,9,17,2,51,37,13,4,8,41,
67,10,则哪些地址访问会发生体冲突?
参考答案:
对于4体交叉访问的存储系统,每个存储模块的地址分布为:
bank0:
0、4、8、12、16……
bank1:
1、5、9、13、17…37…41…bank2:
2、6、10、14、18……bank3:
3、7、11、15、19…51…67
如果给定的访存地址在相邻的4次访问中出现在同一个bank内,就会发生访存冲突。
所以,17和9、37和17、13和37、8和4发生冲突。
8.现代计算机中,sram一般用于实现快速小容量的cache,而dram用于实现慢速大容量的主存。
以
前超级计算机通常不提供cache,而是用sram来实现主存(如,cray巨型机),请问:
如果不考虑成本,你还这样设计高性能计算机吗?
为什么?
参考答案:
不这样做的理由主要有以下两个方面:
①主存越大越好,主存大,缺页率降低,因而减少了访问磁盘所需的时间。
显然用dram芯片比用sram芯片构成的主存容量大的多。
②程序访问的局部性特点使得cache的命中率很高,因而,即使主存没有用快速的sram芯片而是用dram芯片,也不会影响到访问速度。
9.分别给出具有下列要求的程序或程序段的示例:
(1)对于数据的访问,几乎没有时间局部性和空间局部性。
(2)对于数据的访问,有很好的时间局部性,但几乎没有空间局部性。
(3)对于数据的访问,有很好的空间局部性,但几乎没有时间局部性。
(4)对于数据的访问,空间局部性和时间局部性都好。
参考答案(略):
可以给出许多类似的示例。
例如,对于按行优先存放在内存的多维数组,如果按列优先访问数组元素,则空间局部性就差,如果在一个循环体中某个数组元素只被访问一次,则时间局部性就差。
10.假定某机主存空间大小1gb,按字节编址。
cache的数据区(即不包括标记、有效位等存储区)有64kb,
块大小为128字节,采用直接映射和全写(write-through)方式。
请问:
(1)主存地址如何划分?
要求说明每个字段的含义、位数和在主存地址中的位置。
(2)cache的总容量为多少位?
参考答案:
(1)主存空间大小为1gb,按字节编址,说明主存地址为30位。
cache共有64kb/128b=512行,因
此,行索引(行号)为9位;块大小128字节,说明块内地址为7位。
因此,30位主存地址中,高14位为标志(tag);中间9位为行索引;低7位为块内地址。
(2)因为采用直接映射,所以cache中无需替换算法所需控制位,全写方式下也无需修改(dirty)位,
11.假定某计算机的cache共16行,开始为空,块大小为1个字,采用直接映射方式。
cpu执行某程序时,
依次访问以下地址序列:
2,3,11,16,21,13,64,48,19,11,3,22,4,27,6和11。
要求:
(1)说明每次访问是命中还是缺失,试计算访问上述地址序列的命中率。
主存块号=字号。
因此,映射公式为:
cache行号=主存块号mod16=字号mod16。
开始cache为空,所以第一次都是miss,以下是映射关系(字号-cache行号)和命中情况。
2-2:
miss,3-3:
miss,11-11:
miss,16-0:
miss,21-5:
miss,13-13:
miss,64-0:
miss、replace,48-0:
miss、replace,19-3:
miss、replace,11-11:
hit,3-3:
miss、replace,22-6:
miss,4-4:
miss,27-11:
miss、replace,6-6:
miss、replace,11-11:
miss、replace。
只有一次命中!
(2)cache采用直接映射方式,数据区容量不变,为16个字,每块大小为4个字,所以,cache共有
4行;主存被划分为4个字/块,所以,主存块号=[字号/4]。
因此,映射公式为:
cache行号=主存块号mod4=[字号/4]mod4。
以下是映射关系(字号-主存块号-cache行号)和命中情况。
2-0-0:
miss,3-0-0:
hit,11-2-2:
miss,16-4-0:
miss、replace,21-5-1、13-3-3:
miss,64-16-0、48-12-0、19-4-0:
miss,replace,11-2-2:
hit,3-0-0:
miss、replace,
22-5-1:
hit,4-1-1:
miss、replace,27-6-2:
miss、replace,6-1-1:
hit,11-2-2:
miss、replace。
命中4次。
由此可见,块变大后,能有效利用访问的空间局部性,从而使命中率提高!
12.假定数组元素在主存按从左到右的下标顺序存放。
试改变下列函数中循环的顺序,使得其数组元素的
访问与排列顺序一致,并说明为什么修改后的程序比原来的程序执行时间短。
intsum_array(inta[n][n][n]){inti,j,k,sum=0;for(i=0;in;i++)for(j=0;jn;j++)for(k=0;kn;k++)sum+=a[k][i][j];
returnsum;}
参考答案:
intsum_array(inta[n][n][n]){inti,j,k,sum=0;for(k=0;kn;k++)for(i=0;in;i++)for(j=0;jn;j++)sum+=a[k][i][j];
returnsum;
}
修改后程序的数组元素的访问与排列顺序一致,使得空间局部性比原程序好,故执行时间更短。
13.分析比较以下三个函数的空间局部性,并指出哪个最好,哪个最差?
参考答案:
对于函数clear1,其数组访问顺序与在内存的存放顺序完全一致,因此,空间局部性最好。
对于函数clear2,其数组访问顺序在每个数组元素内跳越式访问,相邻两次访问的单元最大相差3个int型变量(假定sizeof(int)=4,则相当于12b),因此空间局部性比clear1差。
若主存块大小比12b小的话,则大大影响命中率。
对于函数clear3,其数组访问顺序与在内存的存放顺序不一致,相邻两次访问的单元都相差6个int型变量(假定sizeof(int)=4,则相当于24b)因此,空间局部性比clear2还差。
若主存块大小比24b小的话,则大大影响命中率。
14.以下是计算两个向量点积的程序段:
floatdotproduct(floatx[8],floaty[8]){
floatsum=0.0;inti,;
for(i=0;i8;i++)sum+=x[i]*y[i];returnsum;}
要求:
(1)试分析该段代码中数组x和y的时间局部性和空间局部性,并推断命中率的高低。
(2)假定该段程序运行的计算机的数据cache采用直接映射方式,其数据区容量为32字节,每个主
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 组织 体系结构 答案