计算机体系结构课后习题原版答案_张晨曦著 下载本文

内容发布更新时间 : 2024/5/28 12:50:29星期一 下面是文章的全部内容请认真阅读。

(6) 主存每次只能读或写一个字; (7) 在任何时候,Cache中有30%的块被修改过; (8) 写失效时,Cache采用按写分配法。 现欲给该计算机增添一台外设,为此首先想知道主存的频带已用了多少。试对于以下两种情况计算主存频带的平均使用比例。

(1) 写直达Cache; (2) 写回法Cache。 解:采用按写分配:(1)写直达cache访问命中,有两种情况:

读命中,不访问主存;

写命中,更新cache和主存,访问主存一次。 访问失效,有两种情况:

读失效,将主存中的块调入cache中,访问主存两次;

写失效,将要写的块调入cache,访问主存两次,再将修改的数据写入cache和主存,访问主存一次,共三次。上述分析如下表所示。

访问命中 Y Y N N 访问类型 读 写 读 写 频率 95%*75%=71.3% 95%*25%=23.8% 5%*75%=3.8% 5%*25%=1.3% 访存次数 0 1 2 3 一次访存请求最后真正的平均访存次数=(71.3%*0)+(23.8%*1)+(3.8%*2)+(1.3%*3)=0.35

已用带宽=0.35×109/10 9 =35.0%

(2)写回法cache访问命中,有两种情况:

读命中,不访问主存;

写命中,不访问主存。采用写回法,只有当修改的cache块被换出时,才写入主存;

访问失效,有一个块将被换出,这也有两种情况:

如果被替换的块没有修改过,将主存中的块调入cache块中,访问主存两次; 如果被替换的块修改过,则首先将修改的块写入主存,需要访问主存两次;然后将主存中的块调入cache块中,需要访问主存两次,共四次访问主存。 访问命中 Y Y N N 块为脏 N Y N Y 频率 95%*70%=66.5% 95%*30%=28.5% 5%*70%=3.5% 5%*30%=1.5% 访存次数 0 0 2 4 所以:一次访存请求最后真正的平均访存次数=66.5%*0+28.5%*0+3.5%*2+1.5%*4=0.13

已用带宽=0.13×10 9/10 9=13% 5.13 在伪相联中,假设在直接映象位置没有发现匹配,而在另一个位置才找到数据(伪命中)时,不对这两个位置的数据进行交换。这时只需要1个额外的周期。假设失效开销为50个时钟周期,2KB直接映象Cache的失效率为9.8%,2路组相联的失效率为7.6%;128KB直接映象Cache的失效率为1.0%,2路组相联的失效率为0.7%。

(1) 推导出平均访存时间的公式。 (2) 利用(1)中得到的公式,对于2KBCache和128KBCache,计算伪相联的平均访

word文档 可自由复制编辑

存时间。

解:不管作了何种改进,失效开销相同。不管是否交换内容,在同一“伪相联”组中的两块都是用同一个索引得到的,因此失效率相同,即:失效率伪相联=失效率2路。

伪相联cache的命中时间等于直接映象cache的命中时间加上伪相联查找过程中的命中时间*该命中所需的额外开销。

命中时间伪相联=命中时间1路+伪命中率伪相联×1

交换或不交换内容,伪相联的命中率都是由于在第一次失效时,将地址取反,再在第二次查找带来的。

因此 伪命中率伪相联=命中率2路-命中率1路=(1-失效率2路)-(1-失效率1路)

=失效率1路-失效率2路。交换内容需要增加伪相联的额外开销。

平均访存时间伪相联=命中时间1路+(失效率1路-失效率2路)×1

+失效率2路×失效开销1路

将题设中的数据带入计算,得到:

平均访存时间2Kb=1+(0.098-0.076)*1+(0.076 *50 ) =4.822 平均访存时间128Kb=1+(0.010-0.007)*1+(0.007 *50 ) =1.353 显然是128KB的伪相联Cache要快一些。

5.14 假设采用理想存储器系统时的基本CPI是1.5,主存延迟是40个时钟周期;传输速率为4字节/时钟周期,且Cache中50%的块是修改过的。每个块中有32字节,20%的指令是数据传送指令。并假设没有写缓存,在TLB失效的情况下需要20时钟周期,TLB不会降低Cache命中率。CPU产生指令地址或Cache失效时产生的地址有0.2%没有在TLB中找到。

(1) 在理想TLB情况下,计算均采用写回法16KB直接映象统一Cache、16KB两路组

相联统一Cache和32KB直接映象统一Cache机器的实际CPI;

(2) 在实际TLB情况下,用(1)的结果,计算均采用写回法16KB直接映象统一Cache、

16KB两路组相联统一Cache和32KB直接映象统一Cache机器的实际CPI;

其中假设16KB直接映象统一Cache、16KB两路组相联统一Cache和32KB直接映象统一Cache的失效率分别为2.9%、2.2%和2.0%;25%的访存为写访问。

解: CPI=CPI 执行+存储停顿周期数/指令数

存储停顿由下列原因引起:

? 从主存中取指令

? load和store指令访问数据 ? 由TLB引起

存储停顿周期数取指令停顿数据访问停顿+TLB停顿=+指令数指令数指令数停顿周期数存储访问 =?失效率?失效开销指令数指令数存储停顿周期数TLB停顿??R指令P指令?+(f数据R数据P数据)+指令数指令数(1)对于理想TLB,TLB失效开销为0。而对于统一Cache,R指令=R数据

P指令=主存延迟+传输一个块需要使用的时间=40+32/4=48(拍)

若为读失效,P数据=主存延迟+传输一个块需要使用的时间=40+32/4=48(拍) 若为写失效,且块是干净的,

P数据=主存延迟+传输一个块需要使用的时间=40+32/4=48(拍)

若为写失效,且块是脏的,

word文档 可自由复制编辑

P数据=主存延迟+传输两个块需要使用的时间=40+64/4=56(拍)

CPI=1.5+[RP+(RP*20%)+0 ]

指令访存全是读,而数据传输指令Load或Store指令,

f数据*P数据=读百分比*(f数据*P数据)+写百分比*(f数据*P干净数据*其对应的百分比

+f数据*P脏数据*其对应的百分比)

=20%*(75%×48+25%*(50%*48+50%*(48+16)))=50(拍)

代入上述公式计算出结果为: 配置 16KB 直接统一映象 16KB两路统一映象 32KB直接统一映象 失效率 0.029 0.022 0.020 CPI 4.4 3.4 3.2

TLB停顿存储访问次数TLB访问?(?)?TLB失效率?TLB失效开销

指令数指令数存储访问次数将f数据(数据访问指令频率),Rt和P(分别是TLB的失效率和失效开销),Rc和Pw(分t

别是Cache的失效率和写回的频率)代入公式得:

TLB停顿/指令数={[1+f数据]*[Rc(1+Rw)]}RtPt

其中,1+f数据:每条指令的访问内存次数;Rc(1+Rw):每次内存访问需要的TLB访问次数。

由条件得:TLB停顿/指令数={[1+20%]*[Rc(1+25%)]}0.2%×20 (2)

配置 16KB 直接统一映象 16KB两路统一映象 32KB直接统一映象 失效率 0.029 0.022 0.020 理想TLB的CPI 4.0 3.4 3.2

第6章输入输出系统

6.1 解释以下术语

响应时间:从用户键入命令开始,到得到结果所花的时间。 可靠性:指系统从某个初始参考点开始一直连续提供服务的能力,它通常用平均无故障时间来衡量。

可用性:指系统正常工作的时间在连续两次正常服务间隔时间中所占的比率。 可信性:指服务的质量,即在多大程度上可以合理地认为服务是可靠的。 RAID:廉价磁盘冗余阵列或独立磁盘冗余阵列。

分离事务总线:将总线事务分成请求和应答两部分。在请求和应答之间的空闲时间内,总线可以供给其它的I/O使用。采用这种技术的总线称为分离事务总线。

通道:专门负责整个计算机系统输入/输出工作的专用处理机,能执行有限的一组输入输出指令。

通道流量:指一个通道在数据传送期间,单位时间内能够传送的数据量。

虚拟DMA:它允许DMA设备直接使用虚拟地址,并在DMA传送的过程中由硬件将虚拟地址转换为物理地址。

异步I/O:允许进程在发出I/O请求后继续执行,直到该进程真正访问这些数据而它们又尚未就绪时,才被挂起。

6.2 假设一台计算机的I/O处理时间占10%,当其CPU性能改进为原来的100倍,而I/O性能仅改进为原来的2倍时,系统总体性能会有什么样的变化?

word文档 可自由复制编辑

解:加速比?1?16.94

10%/2?90%/1006.3 RAID有哪些分级?各有何特点?

答:(1)RAID0。亦称数据分块,即把数据分布在多个盘上,实际上是非冗余阵列,无冗余信息。(2)RAID1。亦称镜像盘,使用双备份磁盘。每当数据写入一个磁盘时,将该数据也写到另一个冗余盘,这样形成信息的两份复制品。如果一个磁盘失效,系统可以到镜像盘中获得所需要的信息。镜像是最昂贵的解决方法。特点是系统可靠性很高,但效率很低。(3)RAID2。位交叉式海明编码阵列。即数据以位或字节交叉的方式存于各盘,采用海明编码。原理上比较优越,但冗余信息的开销太大,因此未被广泛应用。(4)RAID3。位交叉奇偶校验盘阵列,是单盘容错并行传输的阵列。即数据以位或字节交叉的方式存于各盘,冗余的奇偶校验信息存储在一台专用盘上。(5)RAID4。专用奇偶校验独立存取盘阵列。即数据以块(块大小可变)交叉的方式存于各盘,冗余的奇偶校验信息存在一台专用盘上。(6)RAID5。块交叉分布式奇偶校验盘阵列,是旋转奇偶校验独立存取的阵列。即数据以块交叉的方式存于各盘,但无专用的校验盘,而是把冗余的奇偶校验信息均匀地分布在所有磁盘上。(7)RAID6。双维奇偶校验独立存取盘阵列。即数据以块(块大小可变)交叉的方式存于各盘,冗余的检、纠错信息均匀地分布在所有磁盘上。并且,每次写入数据都要访问一个数据盘和两个校验盘,可容忍双盘出错。

6.4 同步总线和异步总线各有什么优缺点?

答:(1) 同步总线。同步总线上所有设备通过统一的总线系统时钟进行同步。同步总线成本低,因为它不需要设备之间互相确定时序的逻辑。但是其缺点是总线操作必须以相同的速度运行。 (2) 异步总线。异步总线上的设备之间没有统一的系统时钟,设备自己内部定时。设备之间的信息传送用总线发送器和接收器控制。异步总线容易适应更广泛的设备类型,扩充总线时不用担心时钟时序和时钟同步问题。但在传输时,异步总线需要额外的同步开销。 6.5计算机系统字长32位,包含两个选择通道和一个多路通道,每个选择通道上连接了两台磁盘机和两台磁带机,多路通道上连接了了两台行式打印机,两台读卡机,10台终端,假定各设备的传输率如下:

磁盘机:800KBps 磁带机:200KBps 行打机:6.6KBps 读卡机:1.2KBps 终 端:1KBps

计算该计算机系统的最大I/O数据传输率。

解:本题要求计算通道的吞吐率,而且机器有一个多路通道,这就有两种可能:字节多路通道和数组多路通道。因为如果将多路通道组织成数组多路通道,某个时刻通道只能为一台设备传送数据,所以它的传输率是所有设备的传输率的最大值,而如果将它组织成字节多路通道,该通道的最大传输率就是所有设备的传输率之和。 所以在本题中,从性能上考虑,应组织成字节多路通道形式。 所以此类通道的最大传输率为:

(1)fBYTE=∑fi=f打印机传输率×2+f读卡机传输率×2+f终端传输率×10=25.6KBps (i=1..14) (2)两个选择通道连接的设备相同,所以只要计算其中一个通道的传输率既可。因为磁盘机的传输率大于磁带机。所以此类通道的传输率为:

max{800,200}=800KBps

所以本系统的最大数据传输率为: f系统=2×800+25.6=1625.6KBps。 6.6 简述通道完成一次数据传输的主要过程。

word文档 可自由复制编辑

答:(1)在用户程序中使用访管指令进入管理程序,由CPU通过管理程序组织一个通道程序,并启动通道。 (2) 通道处理机执行CPU为它组织的通道程序,完成指定的数据I/O工作。 (3) 通道程序结束后向CPU发中断请求。CPU响应这个中断请求后,第二次进入操作系统,调用管理程序对I/O中断请求进行处理。

6.7 试比较三种通道的优缺点及适用场合。 答:(1)字节多路通道。一种简单的共享通道,主要为多台低速或中速的外围设备服务。(2)数组多路通道。适于为高速设备服务。(3)选择通道。为多台高速外围设备(如磁盘存储器等)服务的。

6.8 一个字节多路通道连接有6台设备,它们的数据传输率如下表所示。

设备名称 D1 D2 D3 D4 D5 D6 数据传输速率(B/ms) 50 50 40 25 25 10 (1) 计算该通道的实际工作流量。

(2) 若通道的最大流量等于实际工作流量,求通道的工作周期Ts+TD。 解:(1)通道实际流量为

fbyte??fi?50?50?40?25?25?10?200B/ms

i?16(2)由于通道的最大流量等于实际工作流量,即有

fmax?byte?1?200B/ms

TS?TD可得,通道的工作周期Ts+TD = 5μs。

6.9 设某个字节多路通道的设备选择时间Ts为9.8μs,传送一个字节的数据所需的时间TD为0.2μs。若某种低速外设每隔500μs发出一次传送请求,那么,该通道最多可连接多少台这种外设?

解:字节多路通道的最大流量为:fmax?byte?字节多路通道的实际流量为:fbyte??fi

i?1p1

TS?TD其中,p为通道连接的外设台数,fi为外设i的数据传输速率。因为连接的是同样的外设,所以f1=f2=…=fp=f,故有fbyte=pf。

通道流量匹配的要求有:fmax-byte≥fbyte

即有:

11?pf;可得:p?

TS?TD(TS?TD)f已知Ts = 9.8μs,TD = 0.2μs,1/f = 500μs,可求出通道最多可连接的设备台数为:

500?s1p???50

(TS?TD)f(9.8?0.2)?s6.10 在有Cache的计算机系统中,进行I/O操作时,会产生哪些数据不一致问题?如何克服?

答:(1)存储器中可能不是CPU产生的最新数据 ,所以I/O系统从存储器中取出来的是陈旧数据。

(2)I/O系统与存储器交换数据之后,在Cache中,被CPU使用的可能就会是陈旧数据。

第一个问题可以用写直达Cache解决。

word文档 可自由复制编辑