《体系结构介绍说明文本.doc》由会员分享,可在线阅读,更多相关《体系结构介绍说明文本.doc(9页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、.1.6 某台主频为 400MHz 的计算机执行标准测试程序,程序中指令类型、执行数量和 平均时钟周期数如下: 指令类型 指令执行数量 平均时钟周期数 整数 45000 1 数据传送 75000 2 浮点 8000 4 分支 1500 2 求该计算机的有效 CPI、MIPS 和程序执行时间。 解:(1)CPI (4500017500028000415002) / 1295001.776 (或 ) 259 460 (2)MIPS 速率f/ CPI 400/1.776 225.225MIPS (或 MIPS) 259 5180 (3)程序执行时间= (4500017500028000415002)
2、400=575 s 1.7 将计算机系统中某一功能的处理速度加快 10倍,但该功能的处理时间仅为整个系 统运行时间的 40%,则采用此增强功能方法后,能使整个系统的性能提高多少? 解 由题可知: 可改进比例 = 40% = 0.4 部件加速比 = 10 根据 Amdahl 定律可知: 5625 . 1 10 4 . 0 4 . 0 1 1 系统加速比 采用此增强功能方法后,能使整个系统的性能提高到原来的 1.5625倍。 2.11 某台处理机的各条指令使用频度如下表所示: 指令 使用频度 指令 使用频度 指令 使用频度 ADD 43% JOM 6% CIL 2% SUB 13% STO 5%
3、CLA 22% JMP 7% SHR 1% STP 1% 请分别设计这 9条指令操作码的哈弗曼编码、3/3/3 扩展编码和 2/7 扩展编码,并计算这 3 种编码的平均码长。 解: 根据给出的九条指令的使用频度和哈弗曼生成算法的结构的不用构造了两种不同的哈夫曼树。.(左边为 A,右边为 B) 各编码如下:由表可知,三种编码的平均码长为:(公式:L=P i*Li) 哈弗曼编码:2.42 位 3/3/3 编码:2.52 位 2/7 编码:2.70 位 平均码长:2*43%+2*22%+4*(1-43%-22%)=2.7 2.12.某机指令字长16 位。设有单地址指令和双地址指令两类。若每个地址字段
4、为6 位. 且双地址指令有X 条。问单地址指令最多可以有多少条? 解: 双地址指令结构为:(4 位操作码)(6 位地址码)(6 位地址码) 单地址指令结构为:(10 位操作码)(6 位地址码) 因此,每少一条双地址指令,则多 26 条单地址指令, 指令 Ii Pi 哈弗曼 A 哈弗曼 B 3/3/3 2/7 ADD I1 0.43 0 0 00 00 CLA I2 0.22 10 100 01 01 SUB I3 0.13 110 101 10 1000 JMP I4 0.07 11100 1100 1100 1001 JOM I5 0.06 11101 1101 1101 1010 STO
5、I6 0.05 11110 1110 1110 1011 CIL I7 0.02 111110 11110 111100 1100 SHR I8 0.01 1111110 111110 111101 1101 STP I9 0.01 1111111 111111 111110 1110.双地址指令最多是 2(16-6-6)=24=16 条 , 所以单地址指令最多有(16-X)*26 条。 2.13.若某机要求:三地址指令4 条,单地址指令255 条,零地址指令16 条。设指令 字长为12 位每个地址码长为3 位。问能否以扩展操作码为其编码?如果其中单地址指 令为254 条呢?说明其理由。 解:
6、 (1)不能用扩展码为其编码。 指令字长 12 位,每个地址码占 3 位,三地址指令最多是 2(12-3-3-3)=8 条, 现三地 址指令需 4 条, 所以可有 4 条编码作为扩展码,而单地址指令最多为 42323=28=256 条,现 要求单地址指令 255 条, 所以可有一条编码作扩展码 因此零地址指令最多为 1238 条 不满足题目要求,故不可能以扩展码为其编码。 (2)若单地址指令 254 条,可以用扩展码为其编码。 依据(1)中推导,单地址指令中可用 2 条编码作为扩展码,零地址指令为 22316 条,满足题目要求 3.6有一指令流水线如下所示入 1 2 3 4 出 50ns 50
7、ns 100ns 200ns (1)求连续输入 10条指令,该流水线的实际吞吐率和效率; (2)该流水线的“瓶颈”在哪一段?请采取两种不同的措施消除此“瓶颈”。对于你所 给出的两种新的流水线,连续输入 10条指令时,其实际吞吐率和效率各是多少? 解:(1) 2200(ns) 200 9 200) 100 50 (50 t ) 1 n ( t T max m 1 i i pipeline ) (ns 220 1 T n TP 1 pipeline 45.45% 11 5 4 400 TP m t TP E m 1 i i (2)瓶颈在 3、4段。 变成八级流水线(细分).850(ns) 50 9
8、 8 50 t 1) (n t T max m 1 i i pipeline ) (ns 85 1 T n TP 1 pipeline 58.82% 17 10 8 400 TP m ti TP E m 1 i 重复设置部件 ) (ns 85 1 T n TP 1 pipeline 58.82% 17 10 8 850 10 400 E 3.7有 一个流水线由 4段 组成,其 中每当流经第 3段 时,总要 在该段循环一次, 然后才能流到第 4段。如果每段经过一次所需要的时间都是 t ,问: (1)当在流水线的输入端连续地每 t 时间输入任务时,该流水线会发生什么情况? (2)此流水线的最大吞吐
9、率为多少?如果每 t 2 输入一个任务,连续处理 10个任务 时的实际吞吐率和效率是多少? (3)当每段时间不变时,如何提高该流水线的吞吐率?仍连续处理 10个任务时,其 吞吐率提高多少? 解:(1)会发生流水线阻塞情况。 第 1个任务 S1 S2 S3 S3 S4 第 2个任务 S1 S2 stall S3 S3 S4 第 3个任务 S1 stall S2 stall S3 S3 S4 1 2 3-1 3-2 4-1 4-2 4-3 4-4 耲 弳 1 弳 耲 弴 耱 弴 4 獮 獮 獮 獮 獮 獮 1 2 3_1 3_2 4_1 4_2 4_3 4_4 1 1 1 1 2 2 2 2 3
10、3 3 3 4 4 4 4 5 5 5 5 6 6 6 6 7 7 7 7 8 8 9 9 10 10 8 9 10 8 9 10 850ns 时间 段 .第 4个任务 S1 stall S2 stall S3 S3 S4 (2) 54.35% 92 50 4 5 TP E 23 10 T n Tp 23 T 2 1 TP pipeline pipeline max t t t t (3)重复设置部件 t t 7 5 14 10 T n TP pipeline 吞吐率提高倍数 1.64 t t 23 10 7 5 3.8 有一条静态多功能流水线由 5段组成,加法用 1、3、4、5段,乘法用 1
11、、2、5段,段 时间 1 2 3 4 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4 5 5 5 5 5 6 6 6 6 6 7 7 7 7 7 8 8 8 8 8 9 9 9 9 9 10 10 10 10 10 t 23 1 2 3_1 3_2 4 t t t t t 段 时间 1 1 2 3_1 3_2 4 1 1 1 1 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4 5 5 5 5 5 6 6 6 6 6 7 7 7 7 7 8 8 8 8 8 9 9 9 9 9 10 10 10 10 10 t 14 .第 3段的时间为 2t,其余各段的
12、时间均为t,而且流水线的输出可以直接返回输入端或 暂存于相应的流水寄存器中。现要在该流水线上计算 ,画出其时空图,并计 算其吞吐率、加速比和效率。 解:首先,应选择适合于流水线工作的算法。对于本题,应先计算 A 1 B 1 、A 2 B 2 、A 3 B 3 和 A 4 B 4 ;再计算(A 1 B 1 ) (A 2 B 2 )和(A 3 B 3 ) (A 4 B 4 ); 然后求总的结果。 其次,画出完成该计算的时空图,如图所示,图中阴影部分表示该段在工作。 由图可见,它在 18个t 时间中,给出了 7个结果。所以吞吐率为:t TP 8 1 7 如果不用流水线,由于一次求积需 3t,一次求和
13、需 5t,则产生上述 7个结果共需 (45+33)t =29 t。所以加速比为:该流水线的效率可由阴影区的面积和 5个段总时空区的面积的比值求得:5.1解释下列术语 指令级并行:简称 ILP。是指指令之间存在的一种并行性,利用它,计算机可以并行执行 两条或两条以上的指令。 指令调度:通过在编译时让编译器重新组织指令顺序或通过硬件在执行时调整指令顺序来1 2 3 4 5 乘法 加法 t t 2t t t ) ( 4 1 i i i B A 时间 段 1 2 3 4 5 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 输入A 1B 1A 2B 2A 3B 3A 4
14、B 4A B C D A B C D AB AB CD ABCD A=A 1 B 1B=A 2 B 2C=A 3 B 3D=A 4 B 4CD 17 18 61 . 1 8 1 9 2 t t S 22 3 . 0 18 5 3 3 5 4 E.消除冲突。 指令的动态调度:是指在保持数据流和异常行为的情况下,通过硬件对指令执行顺序进行 重新安排,以提高流水线的利用率且减少停顿现象。是由硬件在程序实际运行时实施的。 指令的静态调度:是指依靠编译器对代码进行静态调度,以减少相关和冲突。它不是在程 序执行的过程中、而是在编译期间进行代码调度和优化的。 保留站:在采用 Tomasulo 算法的 MIP
15、S 处理器浮点部件中,在运算部件的入口设置的用来 保存一条已经流出并等待到本功能部件执行的指令(相关信息) 。 CDB:公共数据总线。 动态分支预测技术:是用硬件动态地进行分支处理的方法。在程序运行时,根据分支指令 过去的表现来预测其将来的行为。如果分支行为发生了变化,预测结果也跟着改变。 BHT:分支历史表。用来记录相关分支指令最近一次或几次的执行情况是成功还是失败, 并据此进行预测。 分支目标缓冲:是一种动态分支预测技术。将执行过的成功分支指令的地址以及预测的分 支目标地址记录在一张硬件表中。在每次取指令的同时,用该指令的地址与表中所有项目 的相应字段进行比较,以便尽早知道分支是否成功,尽
16、早知道分支目标地址,达到减少分 支开销的目的。 前瞻执行:解决控制相关的方法,它对分支指令的结果进行猜测,然后按这个猜测结果继 续取指、流出和执行后续的指令。只是指令执行的结果不是写回到寄存器或存储器,而是 放到一个称为 ROB 的缓冲器中。等到相应的指令得到“确认” (即确实是应该执行的)后, 才将结果写入寄存器或存储器。 ROB:ReOrder Buffer。前瞻执行缓冲器。 超标量:一种多指令流出技术。它在每个时钟周期流出的指令条数不固定,依代码的具体 情况而定,但有个上限。 超流水:在一个时钟周期内分时流出多条指令。 超长指令字:一种多指令流出技术。VLIW 处理机在每个时钟周期流出的
17、指令条数是固定 的,这些指令构成一条长指令或者一个指令包,在这个指令包中,指令之间的并行性是通 过指令显式地表示出来的。 循环展开:是一种增加指令间并行性最简单和最常用的方法。它将循环展开若干遍后,通 过重命名和指令调度来开发更多的并行性。.7.9假设在 3000次访存中,第一级 Cache 失效 110次, 第二级 Cache 失效 55次。试问:在这种情况下,该 Cache 系统的局部失效率和全局失效率各是多少? 解 第一级 Cache 的失效率(全局和局部)是 110/3000, 第二级 Cache 的局部失效率是 55/110,第二级 Cache 的全局失效率是 55/3000, 7.
18、10 给定以下的假设,试计算直接映象 Cache 和两路组相联 Cache 的平均访问时间以及 CPU 的性能。由计算结果能得出什么结论? (1)理想 Cache 情况下的 CPI 为 2.0,时钟周期为 2ns,平均每条指令访存 1.2次; (2)两者 Cache 容量均为 64KB,块大小都是 32字节; (3)组相联 Cache 中的多路选择器使 CPU 的时钟周期增加了 10; (4)这两种 Cache 的失效开销都是 80ns; (5)命中时间为 1个时钟周期; (6)64KB 直接映象 Cache 的失效率为 1.4,64KB 两路组相联 Cache 的失效率为 1.0。 解: 平
19、均访问时间命中时间失效率失效开销 平均访问时间 1-路 =2.0+1.4% *80=3.12ns 平均访问时间 2-路 =2.0*(1+10%)+1.0% *80=3.0ns 两路组相联的平均访问时间比较低 CPU time =(CPU 执行 +存储等待周期)*时钟周期 CPU time =IC(CPI 执行 +总失效次数/指令总数*失效开销) *时钟周期 =IC(CPI 执行 *时钟周期)+(每条指令的访存次数*失效率*失效开销*时钟周期) ) CPU time 1-way =IC(2.0*2+1.2*0.014*80)5.344IC CPU time 2-way =IC(2.2*2+1.2
20、*0.01*80)5.36IC 相对性能比: 5.36/5.344=1.003 1way time 2way time CPU CPU 直接映象 cache 的访问速度比两路组相联 cache 要快 1.04倍,而两路组相联 Cache 的 平均性能比直接映象 cache 要高 1.003倍。因此这里选择两路组相联。 8.6 一个字节多路通道连接有 6台设备,它们的数据传输率如下表所示。 设备名称 D 1 D 2 D 3 D 4 D 5 D 6 数据传输速率 (B/ms) 50 50 40 25 25 10 (1) 计算该通道的实际工作流量。 (2) 若通道的最大流量等于实际工作流量,求通道的
21、工作周期 Ts+T D 。 解:(1)通道实际流量为 ms B f f i i byte / 200 10 25 25 40 50 50 6 1 .(2)由于通道的最大流量等于实际工作流量,即有 ms B T T f D S byte / 200 1 max 可得,通道的工作周期 Ts+T D = 5s。 8.7设某个数组多路通道设备选择时间 T S =1s,传送 1个字节数据的传送时间 T D =1s, 一次传送定长数据块的大小 k=512B。现有 8台外设的数据传输速率分别为如下表所示: 各外设的数据传输速率( KB / s ) 外设号 1 2 3 4 5 6 7 8 数据传输速率 1000 480 480 800 512 512 1024 1024 问:哪些外设可以连接到该通道上正常工作? 最大流量Fmax.block=1/(Ts/k+TD)=0.998MB/s即:998KB/s 而数组多路通道中,实际流量等于连接在这个通道上的所有设备中数据流量最大的那个, 即Fblock=max fi 为了保证通道正常工作,各种通道实际流量应该不大于最大流量,即 Fblock=Fmax.block 因此每一台外设的数据传输速率均应小于最大流量,才符合要求。 所以外设号为2、3、4、5、6可以连接到该通道上正常工作。
限制150内