计算机组成原理第五版(白中英)第三章多层次存储器 习题

第三章多层次存储器 习题


本章题目有几个考点,可用[关键字]搜索。
[字位扩展]——存储器的字、位扩展,以及组成逻辑框图
[顺序交叉]——顺序交叉存储器的带宽
[cache命中率]——cache命中率h、cache/主存系统的效率e、平均访问时间ta、主存慢于cache的倍率r
[组相联]——cache组相联映射
[直接映射]——cache直接映射
[替换策略]——cache的替换策略
[虚拟页表]——主存与虚存的地址、页表长度=页面数

  1. [字位扩展] 已知某64位机主存采用半导体存储器,其地址码为26位,若使用 4MX8位的 DRAM 芯片组成该机所允许的最大主存空间,并选用内存条结构形式,问:
    (1)若每个内存条为16MX64位,共需几个内存条?
    【答】(226X64)/(16MX64)=4.
    (2)每个内存条内共有多少 DRAM芯片?
    【答】(16MX64)/(4MX8)=32.
    (3)主存共需多少 DRAM芯片?CPU如何选择各内存条?
    【答】主存共需4X32=128个DRAM。
    4个内存条,故CPU选择内存条用最高两位地址А24和А25通过2:4译码器实现;其余的24根地址线用于内存条内部单元的选择
  2. 用16KX8位的DRAM芯片构成64K×32位存储器,要求:
    (1)[字位扩展] 画出该存储器的组成逻辑框图。
    【答】用16KX8位的DRAM 芯片构成64K X 32位存储器,需要用(64K×32)/(16K×8)=4x4=16个芯片,其中每4片为一组,构成16KX32位的位扩展,这4组构成字扩展。
    先看数据线:
    一组内的4个芯片只有数据信号线不互连——分别接D0 ~ D7、D8 ~ D15、D16 ~ D23、D24 ~ D31,其余同名引脚互连。
    再看地址线:
    低14位地址A0 ~ A13作为模块内各个芯片的内部单元地址。分成行、列地址两次由A0~A6引脚输入;然后再由4组进行存储器容量扩展,用高两位地址A14、A15通过2:4译码器实现4组中选择一组。
    最后注意控制信号,RAM需要写使能。
    画出逻辑框图如下。
    计算机组成原理第五版(白中英)第三章多层次存储器 习题_第1张图片
    (2)[DRAM] 设存储器读/写周期为 0.5us, CPU在1us内至少要访问一次。试问采用哪种刷新方式比较合理? 两次刷新的最大时间间隔是多少? 对全部存储单元刷新遍所需的实际刷新时间是多少?
    【答】
    DRAM按行刷新,先求有多少行,需要进行DRAM规格设定(同书上规格):
    设刷新周期为 2ms,并设16K×8位的DRAM结构是 128x128×8存储阵列,则对所有单元全部刷新一遍需要128次(每次刷新一行,共128行)。
    若采用集中式刷新,
    则每2ms中的 最后 128X0.5μs=64μs 为集中刷新时间,不能进行正常读写,即存在64μs的死时间;
    若采用分散式刷新,
    每1μs只能访问一次主存而题目要求CPU在1μs内至少要访问一次,也就是说访问主存的时间间隔越短越好,故此方法也不是最适合的。
    比较适合采用异步式刷新

    若采用异步式刷新,则两次刷新操作的最大时间间隔为2ms/128=15.625μs,可取15.5μs;
    若采用集中式刷新,对全部存储单元刷新一遍所需的实际刷新时间为:15.5μs x128=1.984ms;采用这种方式,每 15.5μs 中有 0.5μs用于刷新,其余的时间用于访存(大部分时间中1μs可以访问两次内存)。
    计算机组成原理第五版(白中英)第三章多层次存储器 习题_第2张图片
    可见,两次刷新的最大时间间隔位tMAX=15.5X2-0.5=30.5(μs);对全部存储反袁刷新一遍的时间为tR=0.5X128=64(μs)。
  3. 有一个1024K×32位的存储器,由128KX8位的DRAM芯片构成。问:
    (1)[字位扩展] 总共需要多少DRAM芯片?
    【答】需要(1024K×32)/(128K×8)=8x4=32片,每4片为一组,共需8组
    (2)[字位扩展] 设计此存储体组成框图。
    计算机组成原理第五版(白中英)第三章多层次存储器 习题_第3张图片
    (3)[DRAM] 采用异步刷新方式,如单元刷新间隔不超过8ms,则刷新信号周期是多少?
    【答】设该128K×8位的 DRAM 芯片的存储阵列为512×256×8结构,则如果选择一个行地址进行刷新,刷新地址为 A0~A8,那么该行上的 2048个存储元同时进行刷新,要求单元刷新间隔不超过 8ms,即要在8ms 内进行512次刷新操作。
    采用异步刷新方式时需要每隔8ms/512 =15.625μs进行一次,可取刷新信号周期为15.5μs。
  4. [字位扩展] 要求用256Kx16位SRAM芯片设计1024Kx32位的存储器。SRAM芯片有两个控制端:当CS有效时,该片选中。当W/R=1时执行读操作,当W/R=0时执行写操作。
    【答】(1024K×32)/(256Kx16)=4x2=8片,共需8片,分为4组,每组2片。
    所设计的存储器单元数为1M,字长为32,故地址长度为20位A0 ~ A19,所用芯片存储单元数为256K,字长为16位,故占用的地址长度为18位A17 ~ A0
    由此可用位数扩展与字扩展相结合的方法组成组成整个存储器字长位数扩展:同一组中2个芯片的数据线,一个与数据总线的 D15 ~ D0相连,一个与D31 ~ D16相连;其余信号线公用(地址线、片选信号、读写信号同名引脚互连)。
    字单元数扩展:4组RAM芯片,使用一片2:4 译码器,各组除片选信号外,其余信号线公用。
    其存储器结构如图所示。
    计算机组成原理第五版(白中英)第三章多层次存储器 习题_第4张图片
  5. [字位扩展] 用32K×8位的E2PROM芯片组成128KX16位的只读存储器,试问:
    (1)数据寄存器多少位?
    【答】系统16位数据,所以数据寄存器16位
    (2)地址寄存器多少位?
    【答】系统地址128K=217,所以地址寄存器17位
    (3)共需多少个E2PROM芯片?
    【答】共需(128K X 16)/(32K X 8)=4x2=8片,分为4组,每组2片
    (4)画出此存储器组成框图。
    计算机组成原理第五版(白中英)第三章多层次存储器 习题_第5张图片
  6. [字位扩展] 某机器中,已知配有一个地址空间为0000H ~ 3FFFH的ROM区域。现在再用一个RAM芯片(8KX8)形成40KX16位的RAM区域,起始地为6000H。假设RAM芯片有CS和WE信号控制端。CPU的地址总线为A15 ~ A0,数据总线为D15 ~ D0,控制信号为R/W(读/写),MREO(访存),要求:
    (1)画出地址译码方案。
    【答】由于RAM芯片的容量是8KX8,要构成40KX16的RAM区域,共需要(40Kx16)/(8KX8)=5x2=10片,分为5组,每组2片;8K=213,故低位地址为13位:A12 ~ A0,每组的2片位并联,进行字长的位扩展有5组RAM芯片,故用于组间选择的译码器使用3:8译码器,用高3位地址A15 ~ A13作译码器的选择输入信号,地址分配情况:
各芯片组 各组地址区间 A15 A14 A13 138的有效输出Yi否
ROM(3行) 0000H~3FFFH 0 0 0 Y0否
0 0 1 Y1否
0 1 0 Y2否
ROM1 6000H~7FFFH 0 1 1 Y3否
ROM2 8000H~9FFFH 1 0 0 Y4否
ROM3 A000H~BFFFH 1 0 1 Y5否
ROM4 C000H~DFFFH 1 1 0 Y6否
ROM5 E000H~FFFFH 1 1 1 Y7否

计算机组成原理第五版(白中英)第三章多层次存储器 习题_第6张图片
注:RAM1~ RAM5 各由2片8KX8芯片组成,进行字长位扩展。各芯片组内部的单元地址是A12 ~ A0,由000到111。
(2)将ROM与RAM同CPU连接
计算机组成原理第五版(白中英)第三章多层次存储器 习题_第7张图片
类似问题:
某机器中,已知配有一个地址空间为0000H ~ 1FFFH的ROM区域。现在再用一个RAM芯片(8KX4)形成一个16KX8的RAM区域,起始地址为2000H。假设RAM芯片有/CS和/WE信号控制端。CPU地址总线为A15 ~ A0,数据总线为D7 ~ D0,控制信号R//W(读/写), /MREQ(当存储器进行读或写操作时,该信号指示地址总线上的地址是有效的)。要求:
(1)画出地址译码方案。(2) 将ROM和RAM同CPU连接。
计算机组成原理第五版(白中英)第三章多层次存储器 习题_第8张图片
类似问题:
计算机组成原理第五版(白中英)第三章多层次存储器 习题_第9张图片

  1. [顺序交叉] 设存储器容量为 64M,字长为64位,模块数m=8,分别用顺序和交叉方式进行组织。存储周期T=100ns,数据总线宽度为64位,总线传送周期,t=50ns。求:顺序存储器和交叉存储器的带宽各是多少?
    【答】带宽=单位时间(s)内读出的二进制信息量(b)
    顺序存储器和交叉存储器连续读出m=8个字的信息总量都是:
    q=64位X8=512位
    顺序存储器和交叉存储器连续读出8个字所需的时间分别是:
    t1=mT=8X100ns=8X10-7s
    t2= T+(m-1)t =100ns+7×50ns=450ns=4.5X10-7s
    顺序存储器和交叉存储器的带宽分别是:
    W1=q/t1 =512/(8X10-7)=64X107 [位/s]
    W2=q/t2=512/(4.5X10-7)=113.8X107 [位/s]
  2. [cache命中率] CPU执行一段程序时,cache完成存取的次数为2420次,主存完成存取的次数为80次,已知 cache存储周期为40ns,主存存储周期为240ns,求 cache/主存系统的效率和平均访问时间。
    【答】
    cache的命中率:h=Nc/(Nc+Nm)=2420/(2420+80)=96.8%
    平均访问时间:ta=hXtc+(1-h)Xtm=0.968X40+0.032X240=46.4ns
    cache/主存系统的效率:e=tc/ta=40/46.4=86.2%
  3. [cache命中率] 已知 cache 存储周期 40ns,主存存储周期200ns, cache/主存系统平均访问时间为 50ns,求 cache的命中率是多少?
    【答】已知 cache /主存系统平均访问时间ta=tc/e=50ns
    r=tm/tc=200/40=5
    e=tc/ta=0.8;e=1/(r+(1-r)h)=1/(5-4h)=0.8
    得到h=15/16=93.75%
  4. [顺序交叉] 某计算机采用四体交叉存储器,今执行一段小循环程序,此程序放在存储器的连续地址单元中,假设每条指令的执行时间相等,而且不需要到存储器存取数据,请问在下面两种情况中(执行的指令数相等),程序运行的时间是否相等。
    (1)循环程序由6条指令组成,重复执行80次。
    (2) 循环程序由8条指令组成,重复执行60次。
    【答】假设取指周期为T,执行时间为t,总线传输时间为:
    第一种情况,程序运行的时间T1=(T+5τ+6t)×80=80T+400τ+480t,
    第二种情况,程序运行的时间T2=(T+7τ+8t)×60=60T+420τ+480t,
    所以不相等,且T1:T2≈80T:60T=4:3。
  5. [组相联] 一个组相联 cache 由64个行组成,每组4行。主存储器包含4K个块,每块128个字。请表示内存地址的格式。
    【答】主存每块128=27个字,故块内的字地址为7位。
    主存4K=212个块,故块地址为12位(tag+组号的位数)。
    Cache有64行,每组4行,共64/4=16=24组,故组号4位(组内页号2位组相联方式是组间直接映射,组内全相联映射方式)。所以主存的块地址被分为两部分:低4位为在cache中的组号,高8位为标记字段,即19位内存地址的格式:tag(8)-组号(4)-字地址(7)。
  6. [直接映射] 有一个处理机,内存容量 1MB,字长 1B,块大小16B, cache 容量 64KB,若 cache 采用直接映射式,请给出2个不同标记的内存地址,它们映射到同一个cache 行。
    【答】
    Cache 共有64KB/16B=212行,行号为12位;
    16B采用直接映射方式,所以cache的行号i与主存的块号j之间的关系为:
    i= j mod m, m 为 cache 的总行数
    20 位的内存地址格式:tag(4)-行号(12)-块内地址(4)
    两个映射到同一个 cache 行的内存地址满足的条件是:
    12位的行号相同,而4位的标记不同即可,例如下面的两个内存地址就满足要求:
    0000 000000000000 0000=00000H 与
    0001 000000000000 0000=10000H
  7. [直接映射] 假设主存容量16M×32 位,cache容量64K×32位,主存与cache 之间以每块4x32位大小传送数据,请确定直接映射方式的有关参数,并画出主存地址格式。
    【答】每块4=22字,块内地址2位
    Cache共有(64K×32)/(4x32)=214个行,行号为14位
    主存共有(16M×32)/(4×32)=222个块,块地址为22位,
    由行号和标记组成cache 的行号i与主存的块号j之间的关系为: i=j mod m, m为 cache的总行数
    设32位为一个字,且按进行编址,则24位的内存地址格式:tag(8)-行号(14)-块内地址(2)
  8. [替换策略] 某虚拟存储器采用页式存储管理,使用LRU页面替换算法,若每次访问在个时间单位内完成,页面访问序列如下:1、8、1、7、8、2、7、2、1、8、 3、8、2、1、3、1、7、1、3、7。已知主存只允许放4个页面,初始状态时4个页面是全6空的,则页面失效次数是( )。
    【答】LRU算法的思想:每页设置一个计数器,每次命中一页,该页对应的计数器清零,其他各页的计数器加1;需要替换时,将计数值最大的页换出,所以对应的访问过程及相应的计数器的内容、替换结果如下:
    计算机组成原理第五版(白中英)第三章多层次存储器 习题_第10张图片
    红色标注的页是未命中的访问,共有6次访问页面未装入主存,页面实效率为:6/20=30%。
  9. [虚拟页表] 主存容量为 4MB,虚存容量为1GB,则虚拟地址和物理地址各为多少位?如页面大小为4KB,则页表长度是多少?
    【答】主存容量为4MB,物理地址22位;虚存容量为1GB,虚拟地址30位;页表长度,即页面数=1GB/4KB=2 =256K
  10. 设某系统采用页式虚拟存储管理,页表存放在内存中。
    (1)如果一次内存访问使用50ns,访问一次主存需用多少时间?
    【答】若页表存放在主存中,则要实现一次主存访问需两次访问主存:
    一次是访问页表,确定所存取页面的物理地;第二次才根据该地址存取页面数据。
    故访问一次主存的时间为 50X2=100(ns)
    (2)如果增加TLB,忽略查找页表项占用的时间,并且 75%的页表访问命中TLB,内存的有效访问时间是多少?
    【答】75%X50+(1-75%)×2X50=62.5(ns)
  11. [cache命中率] 某计算机的存储系统由 cache,主存和磁盘构成。cache 的访问时间为 15ns;如果被访问的单元在主存中但不在 cache 中,需要用 60ns的时间将其装入 cache,然后再进行访问;如果被访问的单元不在主存中,则需要 10ms(=106ns) 的时间将其从磁盘中读入主存,然后再装入 cache 中并开始访问。若 cache 的命中率为90%,主存的命中率为 60%,求该系统中访问一个字的平均时间。
    【答】被访问的字在 cache 中的概率为0.9;
    不在 cache 中但在主存中的概率为:(1-0.9)X0.6=0.06;
    不在 cache也不在主存中的概率为:(1-0.9)X(1-0.6)=0.04;
    所以, 一个字的访问时间为:
    15X0.9+(15+60)×0.06+(15+60+10X106)×0.04=13.5+4.5+400003=400021(ns)
  12. [虚拟页表] 某页式存储管理,页大小为2KB,逻辑地址空间包含16页,物理空间共有8页,逻辑地址应用多少位?主存物理空间有多大?
    【答】逻辑地址空间包含 16页,页大小为2KB,所以逻辑地址空间为32KB,逻辑地址应用4+11=15位;物理空间共有8页,页大小为2KB,所以主存物理空间16KB
  13. [虚拟页表] 在一个分页虚存系统中,用户虚地址空间为32页,页长1KB,主存物理为16KB。已知用户程序有10页长,若虚页0、1、2、3已经被调入到主存8、7、4、10页中,请问虚地 0AC5 和 1AC5(十六进制)对应的物理地是多少?
    【答】页长1KB,所以页内地址为10位。
    主存物理页面数:16页,共14位地址码(其中页面号4位,页内地址10位)
    用户虚地址空间:32页,页面号为0-31:共15位地址码(其中页面号5位,页内地址10位)
    0AC5H=00010,1011000101B,页面号为2,已被调入到主存页4,所以,物理地址中的页面号为4,页内地址与虚地址的页内地址相同,所以是:0100,1011000101=12C5H
    1AC5H=00110,1011000101B,页面号为6,未被调入到主存页中,所以无物理地址,会发生缺页中断。
  14. 段式虚拟存储器对程序员是否透明?请说明原因。
    【答】虚拟管理是由软件(操作系统)和硬件共同完成,由于软件的介入,虚存对实现存储管理系统程序不透明。而段是按照程序的自然分界划分的长度可以动态改变的区域。通常,程序员把子程序、操作数和常数等不同类型的数据划分到不同的段中,并且每个程序可以有多个相同类型的段。由于分段是由程序员完成的,所以段式虚拟存储器对程序员而言不是透明的,但虚存到实存的地址映射是由系统软件辅助完成的,故对应用程序而言,段式虚拟存储器是“半透明”的。
  15. 为什么在页式虚拟存储器地址变换时可以用物理页号与页内偏移量直接拼接成物理地址,而在段式虚拟存储器地址变换时必须用段起址与段内偏移量相加才能得到物理地址?
    【答】由于物理页与虚拟页的页面大小相同,且为2的整数次幂,所以页式虚拟存储器地址变换时可以用物理页号与页内偏移量直接拼接成物理地址。而段式虚拟存储器的各段大小不同,且段起始地址任意,所以必须用段起址与段内偏移量相加才能得到物理地址。
  16. 在虚存实现过程中,有些页面会在内存与外存之间被频繁地换入换出,使系统效率急剧下降。这种现象称为颠簸。请解释产生颠簸的原因,并说明防止颠簸的办法。
    【答】产生颠簸的原因主要有二:一是分配的页面数太少,二是替换策略不佳。
    防止颠簸的办法:适当增加分配给用户程序的页面数,选取LRU或更好的替换策略。
  17. 某计算机主存8MB,分成4096页。 Cache64KB,分成和主存同样大小的块,地址映像采用直接映像方式,见下图。求:
    计算机组成原理第五版(白中英)第三章多层次存储器 习题_第11张图片
    (1)Cache有多少块?
    【答】 计算每块的大小:8MB/4096=223/212=211。64K=216b,216/211=32,故cache有32块。
    (2)Cache的块内地址为多少位?
    【答】Cache的格式: 64KB=26×210=25×211。cache块内地址11位。
    (3)Cache的块号为多少位?
    【答】Cache有32块。所以 Cache 块号为5位。
    (4)设Cache中的主存标记如图所示,当CPU送出地址为7F1057H时,能否在Cache中访问到该单元?若送出地址为2D07FFH时,能否在Cache中访问到该单元?上述两个地址若不在Cache中,应映射到Cache中的哪一块?
    【答】
    7F1057H=0111 1111 0001 0000 0101 0111能访问到;
    2D07FFH=0010 1101 0000 0111 1111 1111不能访问到,应该映射到Cache的0块。

你可能感兴趣的:(计算机组成原理第五版(白中英)第三章多层次存储器 习题)