资源描述
计算机组织和体系结构答案
【篇一:计算机组成和体系结构(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位)
0000 a1a2
…
1101 -------------(2分)
单地址指令为126条:
操作码(10位)地址(6位)
1110 000000 a1
…
1110 111111
1111 000000
…
1111 111101 -------------(6分)
零地址指令格式为128条:
操作码(16位)
1111 111110 000000
…
1111 111110 111111
1111 111111
000000
…
1111 111111 111111 ---------------(10分)
五、 计算题 (每题10分,本题共20分)
1. (1)这个cache存放系统等效访问周期:
等效存放容量: s=64mb
(2)这个cache存放系统访问效率: e=tc/t =10/11 =0.91
2. 数值部分运算 图
【篇二:计算机组织和体系结构答案 汉字版(第七版)】
nit 2
1,设a,b,c内存地址分别是a[i],b[i],c[i],i从1到1000
load m (a[i])
add m (b[i])
stor m(c[i])
2, a load m (2) 00000001|
b 一次
3,在ias机上读取一个值过程以下:
ir中操作码?控制总线,存放器地址x?mar,mar中值?地址总线 x中数据?数据总线,数总线地址?mbr
写入一个值:
ir中操作码?控制总线,存放器地址x?mar,mar值?地址总线 mbr值?数据总线,数据总线值?x
4,程序代码:load m(0fa)
add m(0fb)
load m(0fa)
jump +m(08d,0:19)
load –m(0fa)
add m(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.25 mips
rb=4/(0.1+1+10+8)=0.21
rb=4/(0.2+0.2+0.5+1)=2.1
故 cab
第三章
1 步骤一
存放器cpu寄存器
1 0011 1pc
2 5940 ac
3 260011ir
5 0003
6
步骤二
存放器cpu寄存器
1 0011 2pc
2 5940 0003ac
3 260011ir
5 0003
6
步骤三
存放器cpu寄存器
1 0011 2pc
2 5940 0003ac
3 265940ir
5 0003
6
940 0003
步骤四
存放器cpu寄存器
1 0011 3 pc
2 5940 0006 ac
3 265940ir
5 0003 3+3=6
6
940 0003
步骤五
存放器cpu寄存器
1 0011 3pc
2 5940 0006ac
3 2626 ir
5 0003
6
940 0003
步骤六
存放器cpu寄存器
1 0011 4pc
2 5940 0006ac
3 2626 ir
5 0003
6 0006
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 = 100 ns
读总线周期 = 2.5t = 250 ns
(b)250 – 20 = 230 ns
处理器最少应在230ns时将数据放到总线上
3.13
(a)总线时钟周期 = 1 / f * 109 ns =200 ns
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 =125 ns
4 * 8 / 4t = 64m 位/s
(b)2 * 8 / 4t = 32m 位/s
3.16
若使用偶对齐字,取操作数需要4个存放器周期(包含取指令), 4 *4 / 4m = 4 ms
若使用偶对齐字,取操作数需要8个存放器周期(包含取指令), 8 *4 / 4m = 8 ms
3.17
1 * 20% + 2 * 40% + 4 * 40% = 2.6
处理速率相对16位微处理器提升了1.6倍
3.18
处理器处理完一条指令后才会进入中止处理周期
9 * t = 9 / f = 9 / 10m = 900 ns
第四章
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行号 = 主存块号 mod 16 = 字号 mod 16。 开始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行号 = 主存块号 mod 4 = [字号/4] mod 4。
以下是映射关系(字号-主存块号-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. 假定数组元素在主存按从左到右下标次序存放。试改变下列函数中循环次序,使得其数组元素
访问和排列次序一致,并说明为何修改后程序比原来程序实施时间短。 int sum_array ( int a[n][n][n]) { int i, j, k, sum=0; for (i=0; i n; i++) for (j=0; j n; j++) for (k=0; k n; k++) sum+=a[k][i][j];
return sum; }
参考答案:
int sum_array ( int a[n][n][n]) { int i, j, k, sum=0; for (k=0; k n; k++) for (i=0; i n; i++) for (j=0; j n; j++) sum+=a[k][i][j];
return sum;
}
修改后程序数组元素访问和排列次序一致,使得空间局部性比原程序好,故实施时间更短。
13. 分析比较以下三个函数空间局部性,并指出哪个最好,哪个最差?
参考答案:
对于函数clear1,其数组访问次序和在内存存放次序完全一致,所以,空间局部性最好。
对于函数clear2,其数组访问次序在每个数组元素内跳越式访问,相邻两次访问单元最大相差3个int型变量(假定sizeof(int)=4,则相当于12b),所以空间局部性比clear1差。若主存块大小比12b小话,则大大影响命中率。
对于函数clear3,其数组访问次序和在内存存放次序不一致,相邻两次访问单元全部相差6个int型变量(假定sizeof(int)=4,则相当于24b)所以,空间局部性比clear2还差。若主存块大小比24b小话,则大大影响命中率。
14. 以下是计算两个向量点积程序段:
float dotproduct (float x[8], float y[8]) {
float sum = 0.0; int i,;
for (i = 0; i 8; i++) sum += x[i] * y[i]; return sum; }
要求:
(1)试分析该段代码中数组x和y时间局部性和空间局部性,并推断命中率高低。
(2)假定该段程序运行计算机数据cache采取直接映射方法,其数据区容量为32字节,每个主
展开阅读全文