系统结构复习.docx
《系统结构复习.docx》由会员分享,可在线阅读,更多相关《系统结构复习.docx(22页珍藏版)》请在冰豆网上搜索。
![系统结构复习.docx](https://file1.bdocx.com/fileroot1/2023-1/7/a2a9a232-51d8-4909-a52c-4bf5a2e4ef7e/a2a9a232-51d8-4909-a52c-4bf5a2e4ef7e1.gif)
系统结构复习
第一章导论(1填1选)
计算机换代的标志:
1计算机的器件;2计算机系统的结构
Flynn按指令流和数据流的多倍性对计算机系统结构进行分类:
1.单指令流单数据流(SISD)体系结构2.单指令流多数据流(SIMD)体系结构3.多指令流单数据流(MISD)体系结构
4.多指令流多数据流(MIMD)体系结构
习题1.9有一个经解释实现的计算机,可以按功能划分成4级。
每一级为了执行一条指令需要下一级的N条指令解释。
若执行第1级的一条指令要Kns时间,那么执行第2、第3、第4级的一条指令各需要用多少时间?
[分析]计算机按功能
分成级时,最底层是第l级,向上依次为第2、第3和第4级;解释方式的执行是在低级机器级上用它的一串语句或指令来仿真高一级机器级上的一条语句或指令的功能,而且是通过对高级机器级程序中的每条语句或指令逐条加以解释来实现的。
[解答]执行第2、第3、第4级的一条指令各需KNns、KN2ns、KN3ns的时间。
习题1.10有一个计算机系统可按功能分成4级,各级的指令都不相同,每一级的指令都比其下一级的指令在效能上强M倍,即第i级的一条指令能完成第i-1级的M条指令的计算量。
现若需第i级的N条指令解释第i+l级的一条指令,而有一段第l级的
程序需要运行的时间为Ks,问在第2、3和4级上一段等效的程序各需要运行多长时间?
[分析]因为从功能意义上讲,第i级的一条指令能完成第i-1级的M条指令的计算量,但第i级的一条指令的执行,都是靠第i-1级的N条指令的执行来解释完成。
已知,第1级的一段程序运行时间为Ks。
第2级的一段程序从功能等效上讲,所需的指令条数应当是第1级上指令数的1/M。
而由第1级解释时又需要执行N条指令,所以,第2级一段等效程序的运行就需要K·
的时间。
第3、4级则可依次类推。
[解答]第2、3和4级上的一段等效程序分别需要K·
、K·
s和K·
的时间。
第二章指令系统(2填1选)
1.浮点数表示(阶基、阶码、最大\小尾数值)
题2.5
(1)浮点数系统使用的阶基rp=2。
阶码位数p=2,尾数基值rm=10,以rm为基的尾数位数m’=1,按照使用的位数来说,等价于m=4。
试计算在非负阶、正尾数、规格化数情况下的最小尾数值、最大尾数值、最大阶值、可表示的最小值和最大值及可表示数的个数。
(2)对于rp=2,p=2,rm=4,m’=2,重复以上计算。
[分析]因为尾数基值rm=10,所以,rm进制尾数的每个数位只能取0~9中的一个值,即每个数位能取的最大值为9。
[解答]
(1)在非负阶、正尾数、规格化数的情况下,
最小尾数值为rm-1=l0-1=0.1
最大尾数值为1-rm-m’=1-10-1=0.9
最大阶值为2
-1=2
可表示的最小值为=rm-1=10-1=0.1
可表示的最大值为r
·(1-r
)=103
(1-10-1)=900
可表示的数的个数为2
·r
·
=
(2)最小尾数值为rm-1=4-1=0.25
最大尾数值为1-rm-m’=1-4-2=15/16
最大阶值为2
-1=22-1=3
可表示的最小值为rm-1=4-1=0.25
可表示的最大值为r
·(1-r
)=
可表示的数的个数为2
·r
·
=4
2.操作码的设计(定长、哈弗曼、扩展编码)
【例2.3】一个处理机有I1~I10共10条指令,经统计,各指令在程序中的使用频度分别为:
p1=0.25,p2=0.20,p3=0.15,p4=0.10,p5=0.08,p6=0.08,p7=0.05,p8=0.04,p9=0.03,p10=0.02。
(1)计算这10条指令的操作码编码的最短平均码长。
(2)写出这10条指令的操作码的哈夫曼编码,并计算编码的平均码长和信息冗余量。
(3)采用3/7扩展编码和2/8扩展编码编写这10条指令的操作码,并分别计算平均码长和信息冗余量。
问哪一种扩展编码较好?
说明其理由。
解
(1)由给出的使用频度p1~p10,可计算出I1~I10的操作码编码的最短平均码长为
(2)根据给出的使用频度,在应用哈夫曼算法构造哈夫曼树的过程中,选择2个频度最小的结点合并时,有2个以上的结点可供合并,因此,可生成结构不同的哈夫曼树。
为加深领会哈夫曼树生成过程,我们给出2棵哈夫曼树,分别如图2.1和图2.2所示。
图2.1哈夫曼树(a)
图2.2哈夫曼树(b)
由哈夫曼树得到的2种哈夫曼编码如表2.1所示。
表2.12种哈夫曼编码
Ii
pi
哈夫曼编码(a)
lai
哈夫曼编码(b)
lbi
I1
0.25
00
2
10
2
I2
0.20
10
2
00
2
I3
0.15
010
3
110
3
I4
0.10
110
3
010
3
I5
0.08
0110
4
1110
4
I6
0.08
1110
4
0110
4
I7
0.05
01110
5
0111
4
I8
0.04
01111
5
11110
5
I9
0.03
11110
5
111110
6
I10
0.02
11111
5
111111
6
可见,哈夫曼编码不是惟一的。
计算2种哈夫曼编码的平均码长分别为
可见,尽管哈夫曼编码不是惟一的,但平均码长却是惟一的。
2种哈夫曼编码的信息冗余量分别为
显然,应有Ra=Rb。
(3)3/7扩展编码和2/8扩展编码如表2.2所示。
表2.22种扩展编码
Ii
pi
3/7扩展编码
li(位)
2/8扩展编码
li(位)
I1
0.25
00
2
00
2
I2
0.20
01
2
01
2
I3
0.15
10
2
1000
4
I4
0.10
11000
5
1001
4
I5
0.08
11001
5
1010
4
(续表)
Ii
pi
3/7扩展编码
li(位)
2/8扩展编码
li(位)
I6
0.08
11010
5
1011
4
I7
0.05
11011
5
1100
4
I8
0.04
11100
5
1101
4
I9
0.03
11101
5
1110
4
I10
0.02
11110
5
1111
4
3/7扩展编码要求短码码点数为3个,长码码点数为7个。
短码码长取2位,可表示短码码点22=4个。
因此,只留1个码点作为扩展标志。
需要表示的长码码点有7个,因此需要扩展3位,但是,有一个长码码点11111未被利用,或称为有一个冗余码点。
采用2/8扩展编码则没有冗余码点。
由此可以大致判断2/8扩展编码优于3/7扩展编码。
但是,准确地评价编码的优劣仍需要比较平均码长。
2种扩展编码的平均码长分别为
可见,2/8扩展编码优于3/7扩展编码。
2种扩展编码的信息冗余量分别为
【例2.4】某模型机有9条指令,其使用频度分别为
ADD:
30%SUB:
24%LOD:
6%STO:
7%
JMP:
7%SHR:
2%ROL:
3%MOV:
20%
STP:
1%
要求有2种指令字长,且都是二地址指令。
采用扩展编码,并限制只能有2种操作码码长。
设该机有若干个通用寄存器,主存宽度为16位,按字节编址,采用按整数边界存储,任何指令都在1个主存周期中取得。
短指令为寄存器-寄存器型,长指令为寄存器-主存型。
主存地址能变址寻址。
(1)仅根据使用频度,不考虑其他要求,设计出哈夫曼编码,并计算平均码长。
(2)根据给出的全部要求,设计优化实用的操作码编码,并计算平均码长。
(3)画出该机的2种指令字的格式,标出各字段的位数。
该机允许使用多少个可编址的通用寄存器?
访存变址寻址的最大相对位移量是多少字节?
解
(1)根据频度分布,得出哈夫曼树,如图2.3所示。
图2.3哈夫曼树
由哈夫曼树,得出9条指令的哈夫曼编码,如表2.3中第4列所示。
表2.3哈夫曼编码和扩展编码
指令
Ii
pi
哈夫曼编码
li(位)
2/5扩展编码
li(位)
ADD
I1
30%
01
2
00
2
SUB
I2
24%
11
2
01
2
MOV
I3
20%
10
2
10
2
STO
I4
7%
0011
4
11000
5
JMP
I5
7%
0010
4
11001
5
LOD
I6
6%
0001
4
11010
5
ROL
I7
3%
00001
5
11011
5
SHR
I8
2%
000001
6
11100
5
STP
I9
1%
000000
6
11101
5
计算哈夫曼编码的平均码长为
(2)根据题目要求,指令有2种字长,主存宽度为16位,按字节编址,采用按整数边界存储,任何指令都在1个主存周期取得,那么,短指令字长只能是8位,长指令字长只能是16位。
指令都是二地址指令,短指令为寄存器-寄存器型,据此可得出短指令格式为
长指令为寄存器-主存型,且主存地址应能变址寻址,可得出长指令格式为
在一般的计算机中,变址寄存器就是某一个通用寄存器,所以,变址寄存器号字段的位数与寄存器号字段的位数相同。
根据题目要求,指令操作码可采用扩展编码,并只能有2种码长。
从指令使用频度来看,ADD、SUB和MOV的使用频度较高,其余6条指令的使用频度都低得多,因此,短操作码码长宜取2位长,可有22=4个码点,用3个码点表示这3条指令,尚余下1个码点作为扩展标志。
用1个扩展标志再扩展表示出6个操作码,还需要3位,因此,长操作码码长为5位。
由此,得出9条指令的2/5扩展操作码如表2.3中第6列所示。
计算2/5扩展编码的平均码长为
(3)由上述分析,可得出短指令格式中各字段的位数为
长指令格式中各字段的位数为
由于寄存器号字段长度为3位,因此,该机可使用的可编址通用寄存器的个数最多为23=8个。
由于相对位移字段长度为5位,因此,访存变址寻址的最大相对位移量为25=32字节。
第三章流水技术与流水处理机(2大1选)
1.并行包括并发和同时,时间并行就是超流水(流水线重叠),空间并行就是超标量(资源重复)
2.局部相关对程序执行过程的影响较小,它仅涉及到相关指令前后的一条或几条指令的执行。
1.顺序流动的“先写后读”相关及处理2.异步流动的局部相关3.相关专用通路
全局相关是指影响整个程序执行方向的相关,主要是转移类指令和中断引起的相关。
1.条件转移的处理
(1)延迟转移技术
(2)静态转移预测技术(3)动态转移预测技术
(4)提前形成条件码
2.中断处理
(1)不精确断点方法
(2)精确断点方法
【例3.3】有一个4段流水线如图所示。
其中,段S1和S3的执行时间均为200ns,段S2和S4的执行时间均为100ns。
(1)分别使用公式和时空图求连续流入4条指令的实际吞吐率和效率。
(2)若瓶颈段S1可采用细分方法改造,瓶颈段S3只能采用瓶颈段并联方法改造,对改造后的流水线,分别使用公式和时空图求连续流入4条指令的实际吞吐率和效率。
解
(1)首先使用公式计算,已知流水线段数k=4,连续流入指令条数n=4,各段执行时间不等,且瓶颈段执行时间
。
流水线处理4条指令的时空图如图3.11所示。
S4
1
2
3
4
S3
1
1
2
2
3
3
4
4
S2
1
2
3
4
S1
1
1
2
2
3
3
4
4
图3.11例3.3的流水线改造前的时空图
由时空图可得:
(2)对瓶颈段改造后,段S1分为两个子段S11和S12,且子段执行时间均为100ns,段S3用功能相同的两个段S31与S32的并联来代替,S31和S32的执行时间均为200ns。
但并联部件的等效执行时间缩短为100ns,从而使流水线各段执行时间相等,完全消除了瓶颈。
首先使用公式计算,改造后的流水线段数k=6,连续流入指令条数n=4,各段执行时间相等,且都为
=100ns。
流水线处理4条指令的时空图如图3.12所示。
S4
1
2
3
4
S32
2
2
4
4
S31
1
1
3
3
S2
1
2
3
4
S12
1
2
3
4
S11
1
2
3
4
图3.12例3.3的流水线改造后的时空图
由时空图可得
可见,由公式直接计算和通过时空图计算,2种方法得出的结果是一致的。
【例3.8】一条线性静态多功能流水线由6个功能段组成,加法操作使用其中的1、2、3、6功能段,乘法操作使用其中的1、4、5、6功能段,每个功能段的执行时间均为
,流水线的输出端与输入端之间有直接数据通路,且设置有足够的缓冲寄存器。
试用尽可能短的时间计算
,画出流水线时空图,并计算流水线的实际吞吐率、加速比和效率。
解为了减少流水线中发生先写后读相关的次数,使流水线完成计算的时间尽可能短,采用下述算法计算F:
按先乘后加、先括号内后括号外的优先次序,上述计算F的过程需要先做6次乘法,用1~6表示;再做3个括号内的3次加法,用7~9表示;最后做括号外的2次加法,用10~11表示。
流水线时空图如图3.19所示。
图3.19例3.8的时空图
由时空图可得实际吞吐率、加速比和效率分别为
【例3.11】假设每种向量指令都有自己的一条流水线完成该向量指令的流水处理,下面一组向量指令能分成几个编队?
LVV1,RX;取向量X
MULTSVV2,F0,V1;向量和标量相乘
LVV3,RY;取向量Y
ADDVV4,V2,V3;向量加
SVRY,V4;存结果向量
解第一条指令LV为第一编队,MULTSV指令因与第一条LV指令相关,所以它们不能在同一个编队中。
MULTSV指令和第二条LV指令之间不存在功能部件冲突和数据相关,所以这两条指令为第二编队。
ADDV指令与第二条LV指令数据相关,所以ADDV为第三编队。
SV指令与ADDV指令数据相关,所以SV为第四编队。
因此,这一组向量指令分为以下4个编队
①LV
②MULTSVLV
③ADDV
④SV
【例3.12】在向量流水处理机上,执行下述3条向量指令来计算向量D=A×(B+C),其中,结果向量D的元素di=ai×(bi+ci),i=1,2,…,N。
N为向量元素个数。
①V3←存储器;访存取A送入向量寄存器V3
②V2←V0+V1;B+C→K
③V4←V2*V3;K*A→D
设启动存储器、启动乘/加流水线、数据打入寄存器各需时
,向量加流水线完成一次加法需时6
,访存一次需时6
,向量乘流水线完成一次乘法需时7
。
求出分别采用下列3种方式工作时,完成3条向量指令所需的时间。
(1)3条指令依序串行。
(2)指令①与指令②并行执行完后,再执行指令③。
(3)采用指令链接技术
解
(1)计算3条向量指令各自单独流水执行时所需时间。
向量指令V3←存储器所需流水线建立的时间为启动存储器所需时钟周期数,即有s1=1;访存取向量A并打入向量寄存器V3中,流水操作打入A的第一个元素所需时钟周期数为6
+
=7
,即e1=7;完成向量A其余N-1个元素的打入所需时钟周期数为(N-1)。
因此,该向量指令单独流水执行所需时间
向量指令V2←V0+V1单独流水执行所需时间
向量指令V4←V2*V3单独流水执行所需时间
因此,3条指令之间串行执行,共需时间
(2)由于指令①和指令②同时并行,所需时间
,然后执行指令③,因此,共需时间
(3)由于指令①与指令②之间既无向量流水线资源冲突(前者使用访存流水线,后者使用向量加流水线,二者之间无资源冲突),又无向量寄存器的先写后读相关,因此,这2条指令是一个编队,可以同时并行执行。
但是,指令③与指令①之间有寄存器V3的先写后读相关,与指令②之间有寄存器V2的先写后读相关,因此,指令③是另一个编队。
可以在编队之间采用链接技术,即可把指令①和指令②同时并行的流水线流出的结果向量元素直接流入指令③的流水线。
指令①流水线与指令②流水线同时并行执行,流出第一对元素的时间为
,因此,共需时间
第四章存储系统(1大2选)
1.虚拟存储地址概念
在虚拟存储技术中,把程序经编译生成的访存地址称为虚拟地址(或称为虚地址),由虚地址表示的存储空间称为虚空间。
程序代码运行时,必须先把虚地址转换成主存物理地址(或称为主存实地址),才能按实地址访问主存。
虚地址与实地址之间对应关系的规则称为地址映像(AddressMapping)。
程序在运行时,虚拟存储系统按照某种地址映像把虚地址转换成实地址称为地址变换(AddressTranslation)。
地址变换对应用程序员是透明的,由存储系统自动完成。
2.cache映射策略
1.全相联地址映像及其地址变换(块冲突概率最低,Cache空间利用率最高。
)
2.直接地址映像及其地址变换(块冲突概率最高,Cache空间利用率最低。
)
3.组相联地址映像及其地址变换
组相联映像对主存块可装入Cache块位置的限制比直接映像要弱,但比全相联映像要强,因此,组相联映像的块冲突概率和Cache空间利用率也介于全相联映像与直接映像两者之间。
【例4.10】在一个采用组相联映像的Cache存储器中,主存由0~7共8块组成,Cache分为2组,每组2块,每块大小为16个存储字。
若程序访存的主存块地址流为:
6,2,4,1,4,6,3,0,4,5,7,3
(1)写出主存地址和Cache地址的格式,并指出各字段的长度。
(2)指出主存块0~7与Cache块0~3之间的映像关系。
(3)分别采用FIFO和LRU替换算法,计算该程序的Cache命中率。
若已知主存访问周期Tm与物理Cache的访问周期Tc的比值Tm/Tc=10,分别计算Cache的加速比。
(4)采用全相联映像重做第(3)题。
解
(1)采用组相联映像时,主存地址格式和Cache地址格式为:
区号E
组号G
块号B
块内地址W
主存地址
组号g
块号b
块内地址w
Cache地址
主存按Cache大小划分为区,主存容量为8块,Cache容量为4块,故主存分为2个区,区号E的长度为1位。
每区分为2组,故组号G和g的长度都是1位。
每组分为2块,故块号B和b的长度都是1位。
每块大小为16个存储字,故块内地址W和w的长度都是4位。
(2)组相联映像规定:
主存的组到Cache的组之间是直接映像,对应组的块之间是全相联映像。
主存的块0~7与Cache的块0~3之间的映像关系是:
主存的块0,1,4,5与Cache的块0,1之间全相联。
主存的块2,3,6,7与Cache的块2,3之间全相联。
(3)由第
(2)题的结果可知,该程序按给出的主存块地址流访存时,如果发生块失效,那么把主存块装入Cache的块位置时,必须遵守如下规定:
主存的块0、1、4、5只可装入到Cache的块0或块1的位置上。
主存的块2、3、6、7只可装入到Cache的块2或块3的位置上。
采用FIFO替换算法时,Cache块0~3被使用的过程如图4.22所示。
主存块地址
Cache块0
Cache块1
Cache块2
Cache块3
6
2
4
1
4
6
3
0
4
5
7
3
4
4*
4*
4*
4*
0
0*
5
5
5
1
1
1
1
1*
4
4*
4*
4*
6
6*
6*
6*
6*
6*
3
3
3
3
3*
3*
2
2
2
2
2
2*
2*
2*
2*
7
7
命中
命中
命中
图4.22例4.10的组相联映像及FIFO算法的Cache使用过程
可得Cache命中率H1=3/12=0.25。
采用LRU替换算法时,Cache块0~3被使用的过程如图4.23所示。
主存块地址
Cache块0
Cache块1
Cache块2
Cache块3
6
2
4
1
4
6
3
0
4
5
7
3
4
4*
4
4
4
4*
4
4
4
4
1
1*
1*
1*
0
0*
5*
5*
5*
6
6*
6*
6*
6*
6
6*
6*
6*
6*
7
7
2
2
2
2
2*
3
3
3
3
3*
3*
命中
命中
命中
命中
图4.23例4.10的组相联映像及LRU算法的Cache使用过程
可得Cache命中率H2=4/12=0.33。
由(4-8)式,Cache的加速比S为:
已知Tc/Tm=1/10,由H1=0.25,可计算出采用FIFO替换算法时,Cache的加速比为S1=1.29。
由H2=0.33,可计算出采用LRU替换算法时,Cache的加速比为S2=1.42。
(4)全相联映像规定主存的8个块可装入到Cache的块0~3的任何块位置上。
采用FIFO替换算法时,Cache块0~3被使用的过程如图4.24所示。
主存块地址
Cache块0
Cache块1
Cache块2
Cache块3
6
2
4
1
4
6
3
0
4
5
7
3
6
6
6
6*
6*
6*
3
3
3
3
3*
3*
2
2
2
2
2
2*
0
0
0
0
0
4
4
4
4
4
4*
4*
5
5
5
1
1
1
1
1
1
1*
7
7
命中
命中
命中
命中
图4.24例4.10的全相联