计算机系统结构自考02325考前抱佛脚&复习(应用题)

课程:计算机系统结构2012年版
主编:李学干
代码:02325
出版社:机械工业出版社
题型构成:选择10,填空20,简答30,应用题40

1 Amdahl定律 ⭐

练习题1-1
将计算机系统中某一功能的处理速度提高到原来的40倍,该功能的处理时间仅占整个系统运行时间的20%,则采用此提高性能的办法后,能使整个系统的性能提高多少?

解题思路与步骤:
这个解释起来有点麻烦,记住公式就好,一般不会考
1、系统加速比:
:可改进比例,简单理解就是某部件可改进部分占整个系统的比例
:部件加速比,简单理解就是某部件改进后比改进前提高的倍数
2、,所以肯定是一个百分数比例值

答案:
由题可知,可改进比例,部件加速比
根据Amdahl定律可知:
总加速比
采用此提高性能的方法后,能使整个系统的性能提高到原来的1.24倍

2 浮点数尾数RM ⭐⭐

练习题2-1
,在不包括符号位在内的,且非负阶、正位数、规格化条件下,分别计算最小尾数值、最大尾数值、可表示的最小值、可表示的最大值和可表示数的个数。

解题思路与步骤:
这个解释起来也太难了(其实我也不懂在讲啥),可能会考,记住公式表格就行

最小尾数值:
最小值:
最大尾数值:
最小阶值:
最大阶值:
阶的个数:
最大值:, 的最大阶值次方,乘以最大尾数值
尾数个数:
数的个数:

:阶值的位数
:尾数的计算机位数
:浮点数尾数的基数
:基数的计算机位数
:进制的尾数有个位数
一般题目会直接给出 尾数的位数和尾数的基数,计算出来的结果如果数太大,直接保留分数或指数放那就好了,不用再进一步计算了

练习题2-1.jpeg

答案:

最小尾数值:
最大尾数值:
最小值:
最大值:
数的个数:

3 ROM查表舍入法 ⭐

练习题3-1
由3位数(其中最低位为下溢处理的附加位)经ROM查表舍入法,下溢处理成2位结果,设计使下溢处理平均误差接近于0的ROM表,列出ROM编码表的地址与内容的对应关系。

答案:
3位数的ROM下溢处理表共有个地址,地址码为000~111,每个地址存放一个处理结果。下溢处理平均误差接近于0的RMO表如下表所示。

地址 000 001 010 011 100 101 110 111
内容 00 01 01 10 10 11 11 11

4 哈夫曼压缩原理 ⭐⭐⭐

练习题4-1
某模型机共有7条指令,使用频度分别为:0.01,0.12,0.07,0.08,0.13,0.03,0.56。
(1)画出哈夫曼树。
(2)进行哈夫曼编码。
(3)计算平均编码长度。

解题思路与步骤:
1、把所有指令频度值从小到大排序。
2、从左下往右上开始画图,每次取最小的两个值,小的放左边,大的放右边,相加得到一个值,这个值再跟其他值比较继续相加,直到最后两个值相加得到一个根结点值为1的一棵二叉树。
3、如果遇到相同的值,则取哪一个都行,如果相加后的值,比其他中的有两个或以上的值更大,其他中这两个更小的值在这个值的下面一层继续相加。
4、最后一般左边标1,右边标0,因为右边值大,也就是使用频度大,编码从0,到01,10,11这样子从小到大从短到长去编码,让短码不可能是长码的前缀,从而保证了解码的唯一性和实时性,当然你也可以反过来左边标0,右边标1,所以说哈夫曼编码是不唯一的,但你算出来最后的平均码长的值是一定唯一的。
5、平均码长就是我们对这些指令进行编码后,根据使用频度的不同比例对应的长度来累加求得总的一个编码长度,。

答案:
(1)频度从小到大排序:0.01,0.03,0.07,0.08,0.12,0.13,0.56


练习题4-1.jpeg

(2)由图可得哈夫曼编码:
频度    编码
0.56   0
0.13   100
0.12   101
0.08   111
0.07   1100
0.03   11010
0.01   11011

(3)平均码长=

5 扩展操作码 ⭐⭐

练习题5-1
某机指令字长16位,设只有单地址指令和双地址指令两类,若每个地址字段为6位,且双地址指令有x条,则单地址指令最多可以有多少条?

解题思路与步骤:
1、一条指令是由操作码+地址码组成,也有可能出现无地址码都是操作码的指令。
2、每个地址字段为6位,总长16位,从最低位到最高位画出双地址和单地址各自的示意图。
3、由示意图可得出双地址和单地址的操作码位数。
4、先满足要求最多的指令,也就是先计算双地址指令的操作码可表示的所有指令条数,再依次往下满足单地址指令(如果有无地址指令条数,单地址前十位的操作码就不能都用光了,用光了就不能表示无地址指令)。
5、满足双地址指令后,剩下的可表示不同状态的指令条数就可以给单地址指令使用。
6、理解下组合,你有3种颜色,我有4种颜色,我们各拿出一种组合在一起,可以表示出12种颜色,, 所以前四个操作码剩余指令条数的状态值*多出6位操作码的所有状态值=所有可表示的状态值,也就是单地址全部可表示的指令条数。

练习题5-1.jpeg

答案:
双地址指令最多可表示 条指令
有题意可知,双地址指令有x条,则剩余16-x条指令状态没使用
单地址指令最多可以有 条

练习题5-2
经统计,某计算机的14条指令的使用频度分别为:0.01,0.15,0.12,0.03,0.02,0.04,0.02,0.04,0.01,0.13,0.15,0.14,0.11,0.03.分别求出用等长码、哈夫曼码、只有两种码长的扩展操作码,这三种编码方式的操作码平均码长。

解题思路与步骤:
1、等长码就是长度都相等的编码,14条指令要都囊括进去,也就是说我们要表示出14种状态至少需要多少位,1位表示两种状态,3位表示种状态,也就是求2的最小整数次方>=14,得到答案4位。
2、画出哈夫曼树前面已经讲过,由哈夫曼树的图可知,三位操作码有6条,四位操作码有1条,五位操作码有5条,六位操作码有2条。
3、要求用两种码长的扩展操作码,我们知道高频率的位数越短越好,所以我们用三位来表示高频率的,可以表示条指令,囊括了这6条指令,但不能把一个四位的操作码囊括进来,否则只剩一位可以扩展,观察下后面还有5+2=7条指令,只剩一位可以扩展意味着后面都要用总得6位也就是多出3位来表示这7条指令,但看图可以看出五位数量最多,用五位的话,算下多出两位可表示种状态,前面三位的还剩两种状态,所以总得可以表示2*4=8种状态,正好囊括5条5位,2条六位,1条四位,最后这8条指令。

答案:
14条指令的等长操作码的平均码长:位,即4位
哈夫曼编码图:

练习题5-2.jpeg

由图可得哈夫曼编码平均码长:
由图可得只有两位的扩展操作码平均码长:

6 存储器频宽 ⭐⭐

练习题6-1
设主存每个分体的存取周期为,宽度为4个字节。采用模m多分体交叉存取,但实际频宽只能达到最大频宽的0.6倍。现要求主存实际频宽为4MB/s,问主存模数m应取多少方能使两者速度基本适配(m取2的幂)?

解题思路与步骤:
可能会考,记住公式就好

  :存储体的字长,单位是位或字节
:存储周期,也就是连续启动一个存储体所需要的间隔时间
   :并行工作的存储体数,就是有几个存储体的意思
:最大频宽,频宽分为最大频宽(极限频宽)和实际频宽(看数据的传送速率,是否满负荷工作)
1、想象一下,假如一条公路宽20米,一辆车宽2米,那3条这样的公路最大可以容纳辆车,最大频宽就是每个单位时间最多可以通过30辆车
2、实际频宽只能达到最大频宽的0.6倍,也就是:实际频宽=最大频宽*0.6
3、模数m一般取2的幂,要容纳,要囊括,求得的m肯定要取大于等于的一个数,所以得到的频宽比实际更大

答案:
由题意得
解得,m取2的幂则m应取成4

7 并行主存系统 ⭐

练习题7-1
程序存放在模32单字交叉存储器中,设访存申请队的转移概率为25%,求每个存储周期能访问到的平均字数。当模数为16呢?由此可得到什么结论?

解题思路与步骤:
应该不会考吧,记住公式结论就好

:转移概率(鬼知道是什么东西)
m :模数
B  :每个存储周期能访问到的平均字数

答案:
每个存储周期平均能访问到的字数为

将,代入上式,可求得

即每个存储周期平均能访问到4个字

将,代入上式,可求得

即每个存储周期平均能访问到3.96个字

由此看出,两者非常接近,也就是说,此时提高模数m对提高主存实际频宽的作用已不显著。实际上,模数m的进一步增大,会因工程实现上的问题,导致实际性能可能比模16的还要低,且价格更高。所以,模数m不宜太大。若为25%,可计算出当m=8的时候,其B已经接近3.6了。
关键词:非常接近,模增大出问题,性能低价格高,m=8,B=3.6

8 中断 ⭐⭐⭐⭐

练习题8-1
假设某系统有四个中断级,中断级屏蔽位“1”对应于开放,“0”对应于屏蔽,各级中断处理程序的中断级屏蔽位设置如下表:

练习题8-1-1.jpeg

(1)当中断响应优先次序为,其中断处理次序是什么?
(2)如果所有的中断处理都需要3个单位时间,当正在运行主程序时,同时发生2、3级中断请求,过两个单位时间又同时有1、4级中断请求,试画出中断响应处理时空图。

解题思路与步骤:
1、要注意1和0对应的是开放还是屏蔽,优先级最高的就是把别的级屏蔽掉,假如0对应屏蔽,优先级最高的一定是全0,然后是第二优先级对于优先级最高的那位要变1开放出来,第三优先级就会有两个0变1,依次类推,最后一级除了自己0屏蔽都是1开放,处于同一优先级的是屏蔽(大家都是同等级的,凭啥......)
3、纵轴时间t,横轴由 |中断请求| 、 |用户程序| 、 |中断处理程序| 组成
4、 左边中断请求用① ② ③ ④ ⑤ ⑥和,中断请求花了几个,就在中断处理程序画几条"—",不需要说明时间就画一条“—”,中断处理程序被中断但又没有执行需要"L",
5、记住最重要的一点,中断嵌套的时候,被中断的那一级在下一级中断全部处理完成后,一定要回去被中断的那一级,不管这级这时候执不执行,然后才能继续判断优先级执行下去!!!题目中如果②不是最后一级后面还有更低级的中断请求,且② 全部执行完后,是要先回到中间那用户程序的,因为② 把用户程序给中断了,所以不管后面是否有中断请求,②执行完先回到用户程序后再继续

答案:
(1)中断处理的次序依次是:
(2)CUP运行程序的过程示意图

练习题8-1-2.jpeg

(中断请求③把中断请求②给中断了,所以③全部执行完后一定要回到②)

9 极限通道流量 ⭐⭐⭐⭐⭐

练习题 9-1
如果通道在数据传送期中,选择设备需9.8us,传送一个字节数据需0.2us,某低速设备每隔500us发出一个字节数据请求,至多可接几台这种低速设备?对于A~F这6种高速设备,一次通信传送的字节数不少于1024个字节,则哪些设备可挂,哪些设备不能挂?其中,A~F设备每发一个字节数据传送请求的时间间隔分别如下图所示

设备 A B C D E F
发请求间隔时间/ 0.2 0.25 0.5 0.19 0.4 0.21

解题思路与步骤:
极限通道流量:一台设备在单位时间内传送的字节数,能达到的最大流量。
(可以理解为速度或速率,v=s/t嘛,总的传送的数量除以所花的时间,就是极限流量)
:选择一次设备的时间,传送数据前要先有个选择设备的时间
:传送一个字节的时间,传送K个字节就是时间,传送N个字节就是时间
字节多路通道:选择一台设备只传送一个字节

数组多路通道:选择一台设备传送K个字节,不一定传送完了

选择通道:选择一台设备把N个字节全部传送完

字节多路通道适用于连接[大量的]像光电机等字符类[低速设备]
数组多路通道适用于连接[多台磁盘等高速设备],数据宽度为[定长块]
选择通道适用于连接[优先级高的磁盘等高度设备],数据宽度为[可变长块]
1、,
2、先判断是哪种通道,题目说是低速设备,所以是字节多路通道
3、这台低速设备每隔发出一个字节请求,也就是速率是,想象一下每60秒跑180米,那速度就是3m/s
4、实际的通道流量就是所挂设备的速率之和,那m台设备一起请求的速率就是,极限通道流量应该要实际通道流量
5、A~F这6种高速设备,不少于1024个字节,高速不定长块,说明是选择通道

答案:
(1)根据题意低速设备每隔500us发出一个字节数据请求,所以此通道是字节多路通道
此通道极限流量为:
在各设备均被启动后,满负荷的最坏情况下,要想在宏观上不丢失设备的信息,极限通道流量应该要实际通道流量

也就是
所以,最多可挂50台设备

(2)根据题意A~F这6种高速设备,一次通信传送的字节数不少于1024个字节,所以此通道是选择通道
此通道极限流量为:
把代入,得
(N为1024,N越大,左边就越小越忽略,整个分母越接近0.2,但总是比0.2大。上面分子的N是总量,单位为byte,下面分母的N没有单位,只是一个倍数,值与上面的N一样而已)
根据题目给的A~F设备每发一个字节数据传送请求的时间间隔表,可得各台设备的速率表

设备 A B C D E F
设备速率/

由上面计算可知,极限通道流量,所以只能挂B、C、E、F这四台设备,A和D因为超过了,所以不能挂

练习题9-2
某字节多路通道连接有5台设备,它们的数据传送速率如下表所示

设备号 1 2 3 4 5
100 50 40 25 20

(1)求上述5个设备都工作时的通道实际最大流量和实际的工作周期。
(2)如果设计的通道工作周期使通道极限流量恰好与通道最大实际流量相等,以满足流量设计的基本要求,同时让传送速率越高的设备响应的优先级越高。从5个设备同时发出请求开始,画出此通道响应和处理各设备请求的时间示意图。

解题思路与步骤:
1、通道实际最大流量就是极限通道流量,直接告诉我们传送速率而不是每隔多少us发出请求的时间,所以不用倒数求速率,直接相加就是所有设备一起工作的最大流量235KB/s
2、求得的单位是KB/s,,得到的单位是B/s,1s=1000ms(毫秒),得到的单位是B/ms
3、周期T就是速率F的倒数,速度(有方向)/速率(无方向)用来表示运动的快慢,周期用来表示用时的长短。举个栗子,时钟秒针转一圈花60秒,速率F就是每60秒1圈=
4、画间隔时间示意图就是每隔多少微秒us发出请求,1号设备的时间:,依次类推1/0.05=20,1/0.04=25......
5、通道周期示意图纵轴为设备号,横轴为时间,时间下面画一行刻度尺,时间间隔选取一个差不多量度,设备号间隔时间发出请求画向上箭头

答案:
(1)通道实际最大流量:
实际的工作周期:
(2)如果让所有的字节通道流量恰好与设备对通道的要求的实际最大流量相等,则有
因为字节多路通道,所以
通道周期示意图:

9-2.jpeg

10 存储系统价格 ⭐

练习题10-1
有一个由Cache和主存组成的两级存储系统:主存的容量为100MB,访问时间为200ns,主存每MB的价格为1元;Cache的容量为4MB,访问时间为10ns,Cache每MB的价格为50元。该系统运行某程序,在一段时间内,访问Cache的次数为1980次,访问主存的次数为20次。要求
(1)计算该存储系统每MB的平均价格。
(2)计算系统运行该程序时Cache的命中率。
(3)计算该存储系统的平均访问时间。
(4)计算该存储系统的访问效率

答案:
主存容量,主存访问时间,单位价格,访问主存的次数。
Cache容量,Cache访问时间,访问Cache的次数。
(1)每MB的平均价格
(2)命中率
(3)平均访问时间
(4)访问效率

11 页面替换算法 ⭐⭐⭐⭐

11.1 FIFO替换算法

练习题11-1
有一个虚拟存储器,主存有0~3四页位置,程序有0~7八个虚页,采用全相联映像和FIFO替换算法。给出如下程序页地址流:2,3,5,2,4,0,1,2,4,6.
(1)假如2,3,5页已先后装入主存的第3,2,0页位置,请画出上述页地址流工作过程中,主存各页位置上所装程序各页页号的变化过程图,并标出命中时刻。
(2)求出此期间虚存总的命中率H。

解题思路与步骤:
1、存储体系:cache-主存-辅存构成三级存储层次,因主存容量满足不了而增设辅存,而高速缓冲(cache)存储器是为了弥补主存速度的不足,使整个系统看起来速度接近cache,容量接近辅存
2、虚拟存储器就是因主存容量满足不了而提出来的一个概念,在主存-辅存体系结构中,虚拟存储器中使用地址映像变换和替换算法,这种方式也一样适用于cache-主存体系结构
3、FIFO先进先出有点计算机基础的都懂不说了,考的话大概率考LRU,要注意的就是题目中页面2再次访问的时候已经在主存里了,要替换的时候页面2还是最先进来的替换出去
4、全相联映像就是任意主存块装入任意cache块,意思就是任意虚页装入任意实页
5、画图,主存页面,页地址流,初始状态放对应主存页面的位置
6、主存页面满了的情况,要被替换的页面后面标*,访问的虚页已经存在主存中即命中,写上H
7、命中率H就是命中的比去总的(命中的+未命中的)

答案:


练习题11-1.jpeg
11.2 LRU替换算法

解题思路与步骤:
由于程序具有局部性原理(时间局部性:刚使用的页面大概率会再用,空间局部性:用了这块数据大概率会用临近的数据,把整页都装入)
LRU就是近期最少使用算法,也称为最近最久未使用算法
没找到合适的例题,考也是配合cache组相联映像,看练习题12-1即可

11.3 堆栈型替换算法

练习题11-3-1
设某个程序包含5个虚页,其页地址流为2,3,2,1,5,2,4,5,3,2,5,2。当使用LRU算法替换时,为获得最高的命中率,至少应该分配给该程序几个实页?列出分配不同实页时的命中率。

解题思路与步骤:
LRU,OPT属于堆栈型算法,FIFO算法不是
1、先写出页地址流,然后下面按题目5页画5行
2、跟FIFO,LRU要替换出去的保持位置标*不同,问堆栈型过程的时候,要按最近最久未使用放最下面,最后进入的放最上面,超出页面的替换掉
3、简单做法就是按当前的地址流页号从右往左数,遇到已经包含的则跳过再往左,下面的一列列页数顺序也按从上至下放入即可,比如第五列51232,最后一个2已经包含了,则从上至下也5123
4、最下面标页数,从n=1标到5页,看某列是否命中,只需要看这列对应的页数,是否跟前面一列的页数一模一样(不考虑顺序),一样说明命中了,不一样说明没命中,比如倒数第3列,n=1时,2明显跟3不一样,n=2时,23跟35不一样,n=3时,235跟354不一样,所以n=1,2,3的时候未命中。n=4和5的时候,2354和3542是一样的,23541和35421也是一样,所以n=4和5命中了

答案:


11-3-1.jpeg

12 cache相联映像 ⭐⭐⭐⭐

练习题12-1
某cache-主存存储层次,主存有8块(0~7),cache有4块(0~3),采用组相联映像,组内块数是2块,使用LRU替换算法。
(1)画出主存,cache块的影响对应关系示意图。
(2)对于如下主存块地址流:0,1,3,2,7,3,5,7,4,6,画出cache内各块的实际替换过程图,并计算此期间cache的命中率H。

解题思路与步骤:
[地址的映像]就是将每个[主存块]按某种规则装入[cache]中,[地址的变换]就是每次[访cache]时怎样将[主存地址]变成[cache地址]。
全相联映像:任意主存块映射到任意cache块,冲突率低,利用率高,硬件代价大,查表慢
直接映像:主存分区,区号+块号得到cache块,冲突率高,节省硬件成本低
组相联映像:cache分组,主存也先分组后再分区,区号+组号+块号得到cache块,组间直接映像,组内各块全相联映像,冲突率适中,都适中
(直接映像:主存各个区的第0块可以装入cache第0块,依次类推。组相联映像:主存各个区的第0组可以装入cache的第0组,主存各个区的第0组里的任意块可以装入cache第0组的任意块,配合下面答案图片理解)

1、先把cache按每两块分组,主存也按每两块分组,至于主存分区,先保证主存的组数与cache的组数对应,画图可看出cache分成了两组,则主存每两组为一个分区,假如主存是16块(0~15),则应该分成四个分区
2、左边画上[组][块][cache],右边画上[主存][块][组][区],主存的组数要与cache的组数相对应,题目只有0组和1组,分区就一直往上加,组间直接映像连线,然后组内全相联映像的涂上对应的标识
3、由图可以看出,主存的0、1、4、5只能放入cache的0、1里面,主存的2、3、6、7只能放入cache的2、3里面,用LRU算法,得出命中率

答案:


练习题12-1.jpeg

13 标量流水机时空图 ⭐⭐⭐⭐⭐

*练习题13-1
现有一个4段流水线,各段经过时间依次为,,,。
(1)计算在连续输入10条指令时的吞吐率和加速比和效率。
(2)将第2段分解成3个子段,每个子段都为,再计算在连续输入10条指令时的吞吐率和加速比和效率。
(3)假如第2段不能再细分了,采用给第2段设置3套重复部件,再计算在连续输入10条指令时的吞吐率和加速比和效率。

解题思路与步骤:
吞吐率:流水线单位时间里能流出的任务数或结果数
加速比:[流水方式]相对于[非流水顺序方式]速度提高的比值
效率:流水线中[设备的实际使用时间]占[整个运行时间]之比
1、先画出最原始的流水线时空图

练习题13-1-1.jpeg

纵坐标是部件,横坐标是时间,每格单位就是
指令1在输入,经过,的,,,6个流出结果。
指令2因为的时间卡住了,就在的前一个输入,也就是的时候输入,之后在指令1输出结果的后隔了,也就是(指令4的左边那个点结束)指令2出结果,可以观察到从第2条指令开始每隔出一个结果。
2、由图我们可以得到第1条指令的耗费时间为,剩余的指令条数所耗费的时间为,完成了n个任务,总任务除以总时间就可以得到吞吐率
3、不用流水线就是指令2要在指令1出结果的时候才输入,也就是全部按不重叠顺序流入,那耗费的时间就是,非流水顺序方式所用时间除以流水方式所用时间就可以得到加速比
4、效率说白了就是数格子,用到的格子越充满整个格子效率就越高,设备的实际使用时间就是按顺序非流水方式所耗费的时间,一个格子一个格子数也就是,整个运行时间就是从到最后一个任务吐出的时间的总时间乘以有多少个部件设备参加这次流水,即
5、画出流水线细分瓶颈段[结构示意图]和[流水时空图]

练习题13-1-2.jpeg

等于就是把第二段这个部件分成3个子部件,指令1经过流出后,每隔就可以流出一个任务结果,由图很容易得出
吞吐率
加速比
效率

6、画出流水线设置重复部件(瓶颈子过程并联)[结构示意图]和[流水时空图]

练习题13-1-3.jpeg

有三个同样的部件2一起参与流水,这样子的话,部件1处理完指令1后,立马输入指令2,指令2在部件1处理完后,因为第二段部件还在处理指令1,那就交给同样的第二段部件,也就是上面那一层2b去处理,同样指令3也是,后面指令4流入部件1处理完后,部件2a刚好空出来,继续处理指令4,依次处理完所有指令
7、由图可以看出,设置重复部件后也是每隔就可以流出一个任务,吞吐率与加速比跟细分瓶颈段是一样的,只是设置重复部件最后瓶颈那段的效率要观察一下,第10条指令使用2a部件,2b,2c空闲着等待最后指令10流出结束,但我们把2a的最后两个切割各分给2b和2c,可以看出跟细分瓶颈段是一样的,都是斜向上每隔
8、自己补充完图就可以很容易看出效率了,指令10那儿部件1结束就是,再经过,指令10流出,也就是横坐标,纵坐标6个部件,分母底乘高得到面积,分子一样的,每条指令用了,10条就是用了
效率

答案:
(1)根据公式:
吞吐率
(就是瓶颈段的最大时间,假如还有一个,,就是5,观察图可以发现第一个结果流出后每次都要等待最大的这个5才继续流出后续各个任务)
加速比
效率

(2)根据公式:
吞吐率
加速比
效率

(3)根据公式:
吞吐率
加速比
效率

练习题13-2
流水线由4个功能部件组成,每个功能部件的延迟时间都为,当输入10个数据后,间隔又输入10个数据,如此周期性地工作,求此时流水线的吞吐率,并画出其时空图。

解题思路与步骤:
就正常画出流水线时空图,需要注意的有两点:1从开始输入到输入最后一个任务就开始计算间歇的时间。2还有计算吞吐率的时候因为是呈周期性变化,所以不能在就计算吞吐率,在下一次任务执行前机器还在等待工作没停止,所以是经过才完成一个周期任务

答案:

练习题13-2.jpeg

周期性工作时的流水线平均吞吐率为

练习题13-3
向量A和B各有6个元素,计算向量点积。
(1)若在顺序方式下,一次“加”需要,一次“乘”需要,求执行完A*B所需要的时间。
(2)在如下图所示的静态双功能流水线上计算A*B,其中,组成加法流水线,组成乘法流水线,流水线的输出结果可以直接返回到输入或暂存于相应的缓冲寄存器中,其延迟时间和功能切换所需要的时间都可以忽略不计。设计合理的算法,使完成A*B的时间最少。画出流水时空图,并标出全部算完的时间。

练习题13-3-1.jpeg

解题思路与步骤:
1、两个向量各有6个元素做向量点积运算,也就是
2、静态多功能流水线是先执行同样的运算任务再继续执行另一个运算任务,所以先做乘法运算,乘法完了再做加法运算,
3、乘完6个数相加变3个数,3个数前两个先相加再加上最后剩余的那个数。注意只需要的输入参数完整,符合此次运算就可以立马开始运算,3、4出结果那一刻立马做1,2和3,4的加法运算

答案:


练习题13-3-2.jpeg

14 非线性流水线的任务调度 ⭐⭐⭐⭐

练习题14-1
某4段的流水处理机需要7拍才能完成一个任务,其预约表如下所示。
(1)写出延迟禁止表,冲突向量,画出流水线状态转移图。
(2)求出最小平均延迟和最大吞吐率及调度方案。
(3)按最佳调度方案,输入6个任务,求实际的吞吐率

段号\时间

解题思路与步骤:
1、数每行的间隔拍数,可以得到经过6拍,经过4拍,经过2拍再用这个功能段号工作
2、去掉重复的,写出延迟禁止表F={2,4,6},也就是经过2拍,4拍,6拍这些间隔拍数禁止使用
3、从右往左按位,把F按顺序地从左往右,开放也就是不冲突为0,禁止也就是会冲突为1,写出初始冲突向量C=(101010)
4、根据延迟禁止表F得到允许的拍数1,3,5,7
5、冲突向量按允许拍数右移,也就是101010按1,3,5,7右移,如果右边移动的位数没0被移出就不要移动,如果此次过程中0已经被小的允许拍数右移动出去了,大的允许拍数没发现其他0也不要右移动,比如允许是1,2这种情况,1把101010的最后一个0移出,2就不要移动了。其他情况刚好有0可以移出去就右移。右移后前面补0表示前一个任务流出流水线不会发生冲突,得到一个右移后的任务向量,101010右移1位就是010101
6、右移后的任务向量010101,与初始冲突向量做按位 或 运算,得到下一个新的冲突向量,101010 | 010101得到111111,新的冲突向量与可允许拍数做右移运算后再与 初始冲突向量 做按位或运算,一直重复循环,直到返回初始冲突向量 或者 上一层冲突向量 或者 没有0可以移动的时候停止,得到状态转移图,比如这题中101010右移5位得到任务向量000001,101010 | 0000001 得到新的冲突向量101011,新的冲突向量101011右移1位没有0所以没有,右移3位有0,所以得到任务向量000101,与初始冲突向量做或运算(不是与新的冲突向量101011哦),得到101010 | 000101得到101111(图少了一个1。。。),会回到3那,继续右移5回到自己那,右移7回到初始冲突向量那,完成所有循环
7、调度方案:可形成一个周期就是一个调度方案(初始状态必须要从初始冲突向量自身出发完成一个循环)
最小平均延迟:每拍需要花费,那也就是计算平均拍数
最大吞吐率:每拍完成的任务数
实际吞吐率:从初始状态出发回到初始状态,每全部拍数完成所要求的任务数

答案:
(1)延迟禁止表F={2,4,6},初始冲突向量C=(101010),状态转移图如下:


练习题14-1.jpeg

(2)调度方案表:
(1,7) 4
(3,7) 5
(5,7) 6
(3,5) 4
(5,3) 4
(3,5,7) 5
(5,3,7) 5
(5) 5
(7) 5
由调度方案表可得最小平均延迟4拍
最大吞吐率1/4
最佳调度方案(1,7)、(3,5)、(5,3)

(3)按(1,7)调度方案输入6个任务,全部完成的时间为,实际吞吐率
按(3,5)调度方案输入6个任务,全部完成的时间为,实际吞吐率
按(5,3)调度方案输入6个任务,全部完成的时间为,实际吞吐率
可见,最佳方案应为(1,7)调度方案,实际吞吐率

15 向量的处理机并行链接技术 ⭐

练习题15-1
求向量D=A*(B+C),向量为浮点数,各向量元素个数均为N,参照CRAY-1方式分解为3条向量指令:
① V3 <— 存储器;访存取A送入V3寄存器组
②V2 <— V0+V1;B+C —> K
③ V4 <— V2*V3;K*A —> D
当采用下列3种方式工作时,各需要多少拍才能得到全部结果?
(1)①、②和③串行执行
(2)①和②并行执行后,再执行③
(3)采用链接技术

解题思路与步骤:
CRAY-1访主存时间需要6拍,送入寄存器时间需要1拍
浮点加时间需要6拍
浮点乘时间需要7拍
1、第一步访存A需要6拍,送入V3寄存器需要1拍,总的要7拍
2、第二步浮点加法需要6拍,送入V2寄存器需要1拍,总的要7拍
3、第三步浮点乘法需要7拍,送入V4寄存器需要1拍,总的要8拍
4、向量处理机,元素个数为N
5、链接技术就是无相关数据全部并行处理,一二步无关联,所以访存A需要1拍,访存A和浮点加一起处理,需要6拍,送V3,送V2需要1拍,浮点乘法需要7拍,送V4需要1拍,1+6+1+7+1 这个应该没疑问,然后前面还加一个1。。。。启动访存和送浮加(启动浮加)一起做

答案:
(1)①、②和③串行执行需要的时间为
7+N+7+N+8+N = 22+3N(拍)
(2)①和②并行执行后,再执行③所需要的时间为
{7+N}+8+N = 15+2N(拍)
(3)采用链接技术所需要的时间为
{1+6+1}+8+N = 16+N(拍)

16 向量处理机累加和 ⭐

17 网络拓扑结构 ⭐⭐⭐⭐⭐

17.1 立方体

不会考大题,但可能考单选题
cube0就是从右往左第1位,做比特翻转0变1,1变0,比如000得到001,也就是0变1
cube1就是从右往左第2位,做比特翻转0变1,1变0,比如000得到010,也就是0变2
cube2就是从右往左第3位,做比特翻转0变1,1变0,比如000得到100,也就是0变4
多级立方体可能考大题
多级立方体与多级混洗网络不同,多级立方体是交换开关内,对cubeN两个端口,做比特翻转处理,然后对应连接即可,入端是不变的,看图自己画一遍,很简单滴

多级立方体对各个交换开关的控制方式有级控制、单元控制和部分级控制
不同的多级互连网络,在所用的交换开关、拓扑结构和控制方式上各有不同。

17.2 PM2I

PM2I,P就是Prime,M就是Minus,就是加减的意思

比如i等于4,个处理器
当i等于0,就是,
当i等于1,就是,
当i等于2,就是,
当i等于3,就是,

:(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16)
:(0,2,4,6,8,10,12,14,16)(1,3,5,7,9,11,13,15)
:(0,4,8,12,16)(1,5,9,13)(2,6,10,14)(3,7,11,15)
:(0,8)(1,9)(2,10)(3,11)(4,12)(5,13)(6,14)(7,15)

也就是5号处理器可以与
4,6
3,7
1,9
13号处理器互连
再结合图,看图自己画一遍,很简单滴

17.3 混洗

最左边那位移到最右边去,看图,很简单滴
多级混洗网络,入端连接处就开始做混洗,交换开关内不变,三位的情况会经过三次一模一样的混洗后,得到原本的数据,比如入端001,变010,变100,再变回001出端,也就是1->2->4->1,三位是0~7,做同样处理,看图自己画一遍,很简单滴

17.4 蝶形

最高位和最低位对调,看图,很简单滴
多级蝶形网络,入端不变,交换开关内不变,跟另一交换开关做蝶形,比如8是1000,交换一下是0001,变成1, 9是1001,交换一下还是1001,按这规则中间蝶形自己画一遍,很简单滴

18 阵列处理机并行存储器的无冲突访问 ⭐

19 多处理机并行算法 ⭐⭐⭐

题目给一个公式,用乘法加法分配律,想办法让并行处理越多越好,增大宽度,减小高度,就是减小高
处理机机数P:画完图后看哪一层级用的处理机数最多,就是需要的最大数量
级别Tp:数每一层级的符号运算,做了多少层符号运算
加速比Sp:用了减少高的方法的层级比给定原本公式的计算层级快了多少,就是用给定原本层级/树形方法层级
设备利用率Ep:加速比Sp/处理机机数P

20 FORK语句 ⭐⭐⭐

练习题20-1
如果有下面程序







(1)试用FORK、JOIN语句将其改写成能在多处理机上并行执行的程序。
(2)画出该程序在两台处理机上运行的资源时间图。

解题思路与步骤:
1、从上至下找出出现数据相关的指令,按顺序和多处理机数量判断是否能并行执行,XY这两条指令有X数据相关,不能并行执行,YZ没有相关可并行,MN数据M相关不能并行,NO可以并行,最后剩下一条P。
2、可并行执行的几条指令最开始前写上FORK I(并行处理机的指令序号)
3、在各并行执行指令结束后写上JOIN N(多处理机数量)
4、在并行执行指令的最后一台处理机JOIN N完后写上GOTO I(下一条要执行的指令序号),比如第二台处理机执行的时间久,那并行结束后,应该由第二台处理机来处理下一条指令,指令执行时间相同则按顺序前面的处理机继续执行下一条指令。
5、画图,纵轴处理机写上CPU1,CPU2等,横轴时间t。
6、FROK,JOIN,GOTO都有个小启动的时间,多处理机间用虚线表示并行执行,在该指令执行这段时间处理机上写上执行指令序号。
7、一般10,20,30这样子标注指令序号,指令执行时间长短:加<减<乘<除。

答案:
(1)10 
     FORK 30
   20 
     JOIN 2
     GOTO 40
   30 
     JOIN 2
   40 
     FORK 60
   50 
     JOIN 2
     GOTO 70
   60 
     JOIN 2
   70 

(2)资源时间图


练习题20-1.jpeg

⭐和⭐⭐记住公式,考的次数少概率低但不一定不考

⭐⭐⭐或以上的一定要掌握,务必再练习三道以上类似题目

你可能感兴趣的:(计算机系统结构自考02325考前抱佛脚&复习(应用题))