计算机组成原理 存储器层次结构 考研真题及例题解析

更新时间:2023-11-06 12:09:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

存储器层次结构 真题及例题解析

在本章的内容中,需要重点掌握的有存储器的组成、Cache的映像等。本节按照研究生入学考试的试题样式,参考历年的真题和全国40所高校的研究生入学试题,组织了相关的真题及解析,供参考。

一、单项选择题

例题1:某计算机的Cache共有16块,采用2路组相联映射方式(即每组2块)。每个主存块大小为32字节,按字节编址。主存129号单元所在主存块应装入到的Cache组号是 (1) 。[2009年试题14]

(1)A.0 B.2 C.4 D.6 例题1分析

组相联映射方式是将某一主存块j按模Q(Q是Cache的组数)映射到Cache的第i组中的任一块,即i = j mod Q。根据题目条件可知,Q=16/2=8组。因为每个主存块大小为32字节,按字节编址,所以主存129号单元所在的主存块号为4(注意:从0开始计数),所以i=4 mod 8=4。

每个主存块大小为32字节 ,4位,每组2块8位,129/8=16 例题1答案 :C

例题2:某计算机主存容量为64KB,其中ROM区为4KB,其余为RAM区,按字节编址。现要用2K×8位的ROM芯片和4K×4位的RAM芯片来设计该存储器,则需要上述规格的ROM芯片数和RAM芯片数分别是 (2) 。[2009年试题15] (2)A.1、15 B.2、l5 C.1、30 D.2、30 例题2分析

因为1B=8位,ROM区的总大小为4KB,即为4K×8位,那么需要的ROM芯片数为:(4K×8位)/(2K×8位)=2片。64KB-4KB =60KB,即60K×8位,那么需要的RAM芯片数为:(60K×8位)/(4K×4位)=30片。

例题2答案:D

例题3:假设某计算机的存储系统由Cache和主存组成。某程序执行过程中访存1000次,其中访问Cache缺失(未命中)50次,则Cache的命中率是 (3) 。[2009年试题21] (3)A.5% B.9.5% C.50% D.95% 例题3分析

程序执行过程中访存1000次,其中访问Cache缺失(未命中)50次,也就是说Cache完成存取的总次数为1000-50=950。那么Cache的命中率=(1000-50)/1000=95%。 例题3答案:D

例题4:假定用若干个2K×4位芯片组成一个8K×8位存储器,则地址0B1FH所在芯片的最小地址是 (4) 。[2010年试题15]

(4)A.0000H B.0600H C.0700H D.0800H 例题4分析

芯片的大小为2K×4位,而存储器的大小为8K×8位,不难得出要获得这样一个大小的存储器,需要8片2K×4位的芯片。

如果按字节编址,对应一个大小为8K×8位的存储器,需要13位地址,其中高3位为片选地址,低10位为片内地址,而题目给出的地址0B1FH转换为二进制为0 1011 0001 1111,其高3位为010,即片选地址为2。因此,地址0B1FH对应第2片芯片,该芯片的起始地址(最小地址)为0 1000 0000 0000,即0800H。 例题4答案:D

例题5:下列有关RAM和ROM的叙述中,正确的是 (5) 。[2010年试题16] I RAM是易失性存储器,ROM是非易失性存储器 II RAM和ROM都采用随机存取方式进行信息访问 III RAM和ROM都可用做Cache IV RAM和ROM都需要进行刷新

(5)A.仅I和II B.仅II和III C.仅I,II,III D.仅II,III,IV 例题5分析

对于计算机系统中的存储器,常用的数据存取方式有顺序存取、直接存取、随机存取和相联存取四种。其中RAM和ROM都是采用随机存取方式。

RAM具有读/写方便,使用灵活等优点,但断电后无法保存信息,因此只能用于暂存数据,可用于主存和高速缓冲存储器。

ROM的信息是固化在存储器中,断电后仍然能保存信息,信息不容易丢失。但ROM中的信息只可读出,无法改写,当然不需要刷新。一般用于存放系统程序BIOS和用于微程序控制,不适合用于读写频繁的Cache。 例题5答案:A

例题6

下列命令组合情况中,一次访存过程中,不可能发生的是 (6) 。[2010年试题17] (6)A.TLB未命中,Cache未命中,Page未命中 B.TLB未命中,Cache命中,Page命中 C.TLB命中,Cache未命中,Page命中 D.TLB命中,Cache命中,Page未命中 例题6分析

TLB是缓存曾经访问过的虚拟地址所指向的物理地址,以使将来快速得到相同物理地址的高速存储器,可以与Cache的作用相类比。

在一次访问存储器的过程中,如果能够Cache命中,很显然,说明就访问到了需要的页(Page),即Page命中。同样的道理,如果能够TLB命中,也说明访问到了需要的页,如果这两者都命中,那么页肯定命中。因此本题中选项D的情况是不可能发生的。 例题6答案:D

例题7:下述关于存储器的描述中,正确的是 (7) 。 (7)A.CPU访存时间由存储器容量决定 B.ROM和RAM在存储器中是统一编址的 C.ROM中任一单元可随机性访问

D.DRAM是破坏性读出,因此需要读后重写 例题7分析

随机存储器RAM中任何存储单元的内容都能随机存取,且存取时间和存储单元的物理位置无关。由于存取原理的不同,又分为静态RAM和动态RAM。静态RAM以触发器原理寄存信息,动态RAM以电容充放电原理寄存信息,对动态RAM的读出是破坏性读出,因此需要读后重写。 只读存储器ROM只能对其存储的内容读出,而不能对其重新写入。

一般来说,CPU访问存储器的时间与存储器容量的大小无关(或者说关系很小),而是由存储单元的材料决定的。 例题7答案:D

例题8:下面关于主存储器性能说法中,不正确的是 (8) 。

(8)A.衡量一个主存储器的性能指标主要有主存容量、存储器存取时间和存储周期 B.指令中地址码的位数决定了主存储器可以直接寻址的空间

C.存储器存取时间是指从启动一次存储器操作到完成该操作所经历的时间

D.存储周期是指连续启动两次独立的存储器操作所需间隔的最小时间,通常存储周期略小于存取时间,其差别主要与主存储器的物理实现细节有关 例题8分析

衡量一个主存储器的性能指标主要有主存容量、存储器存取时间和存储周期。指令中地址码的位数决定了主存储器可以直接寻址的空间。存储器存取时间是指从启动一次存储器操作到完成该操作所经历的时间。存储周期是指连续启动两次独立的存储器操作所需间隔的最小时间,通常存储周期略大于存取时间,其差别主要与主存储器的物理实现细节有关。 例题8答案:D

例题9:若一台计算机的字长为4个字节,则表明该机器 (9) 。 (9)A.能处理的数值最大为4位十进制数 B.能处理的数值最多由4位二进制数组成

C.在CPU中能够作为一个整体处理32位的二进制代码 D.在CPU中运算的结果最大为232 例题9分析

字长是计算机内部一次可以处理的二进制数码的位数。如果计算机的字长为4个字节,则说明该计算机在CPU中能够作为一个整体处理32位的二进制代码。 例题9答案:C

例题10:现有存储器SRAM、DRAM、Cache以及寄存器、磁盘、磁带和光盘,存储容量由大到小,存取时间由快到慢的顺序为 (10) 。

(10)A.寄存器,Cache,SRAM,DRAM,磁盘,光盘,磁带 B.Cache,寄存器,SRAM,DRAM,磁盘,光盘,磁带 C.寄存器,Cache,DRAM,SRAM,磁盘,光盘,磁带 D.寄存器,Cache,SRAM,DRAM,磁带,磁盘,光盘 例题10分析

计算机存储系统的层次结构如图3-19所示。

根据图3-19可知,存储器SRAM、DRAM、Cache以及寄存器、磁盘、磁带和光盘,存储容量由大到小,存取时间由快到慢的顺序为寄存器、Cache、SRAM、DRAM、磁盘、光盘、磁带。

例题10答案:A

例题11:动态存储器DRAM 的刷新原则是 (11) 。 (11)A.各DRAM芯片轮流刷新

B.各DRAM芯片同时刷新,片内逐位刷新 C.各DRAM 芯片同时刷新,片内逐字刷新 D.各DRAM芯片同时刷新,片内逐行刷新 例题11分析

为了使已写入存储器的信息保持不变,一般每隔一定时间必须对存储体中的所有记忆单元的栅极电容补充电荷,这个过程就是刷新。刷新的时间间隔由栅极电容的泄放速度决定,一般选定MOS型动态存储器允许的最大刷新间隔为2ms。刷新和重写是两个完全不同的概念,重写是随机的,某个存储单元只有在破坏性读出之后才需要重写,而刷新是定时的,即使许多记忆单元长期未被访问,若不及时补充电荷的话,信息就会丢失。

无论是由刷新控制逻辑产生的地址逐行循环的刷新,还是芯片内部自动的刷新,都不依赖外部的访问,刷新对CPU是透明的。刷新通常是一行一行地进行的,每一行中各记忆单元同时被刷新,故刷新操作时仅需要行地址,不需要列地址。刷新操作类似于读出操作,但又有所不同,因为刷新操作仅是给栅极电容补充电荷,不需要输出信息,另外刷新不需要加片信号,即整个存储器中的所有芯片同时被刷新。 例题11答案:D

例题12:在一个引入Cache的计算机主存中,已知Cache为16KB,主存为128MB,Cache中块的大小为1KB,当采用直接地址映像时,主存地址的二进制格式为 (12) 。 (12)A.7位区号,4位块号,1位内地址 B.7位区号,16位块号,11位内地址 C.13位区号,4位块号,10位内地址 D.27位区号,14位块号,10位内地址 例题12分析

Cache容量为16KB,因为16KB=214,所以Cache的地址为14位。Cache块的大小为1KB,所以块内地址10位,块地址为4位。

主存容量为128MB,因为128MB=227,所以主存的地址为27位。

Cache中块的大小为1KB,采用直接地址映像,则Cache可以分为16块,也就是说,主存的每个区(页)有16块,而主存一共有128MB/1KB=217块,即主存可以分为217/16=213个区,所以区号为13位。 例题12答案:C

例题13:用于存储器的芯片有不同的类型。

可随机读写,且只要不断电,则其中存储的信息就可一直保存的,称为 (13) 。

可随机读写,但即使在不断电的情况下其存储的信息也要定时刷新才不致丢失的,称为 (14) 。 所存信息由生产厂家用掩膜技术写好后就无法再改变的称为 (15) 。

通过紫外线照射后可擦除所有信息,然后重新写入新的信息并可多次进行的,称为 (16) 。 通过电信号可在数秒钟内快速删除全部信息,但不能进行字节级别删除操作的,称为 (17) 。

(13)A.RAM B.VRAM C.DRAM D.SRAM (14)A.RAM B.VRAM C.DRAM D.SRAM (15)A.EPROM B.PROM C.ROM D.CDROM (16)A.EPROM B.PROM C.ROM D.CDROM

(17)A.E2PROM B.Flash Memory C.EPROM D.Virtual Memory

例题13分析

有关这些概念,在前面的章节中都已经介绍,下面直接给出这些存储器的区别,如表3-1所示。

表3-1 几种存储器之间的比较

类 型 静态RAM 动态RAM ROM PROM EPROM EEPROM Flash NVRAM

保持数据 × × √ √ √ √ √ √

可 写 √ √ ×

一次使用编程器 √ 使用编程器 √ √ √

擦除大小 字节 字节 整个芯片 字节 区 字节

擦除次数 无限 无限 有限 有限 有限 无限

价 格 昂贵 中等 便宜 中等 中等 昂贵 中等 昂贵

读写速率 快 中等 快 快 快 读快 写慢 读快 写慢 快

例题13答案:(13)D (14)C (15)C (16)A (17)B

例题14:虚拟存储管理系统的基础是程序的 (18) 理论。这个理论的基本含义是指程序执行时往往会(19) 访问内存储。程序的 (18) 表现在 (20) 和 (21) 上。 (20) 是指最近被访问的存储单元可能马上又要被问。 (21) 是指马上被访问的单元,而其附近的单元也可能马上被访问。

根据这个理论,Denning提出了工作集理论。工作集是进程运行时被频繁地访问的页面集合。在进程运行时,如果它的工作页面都在 (22) 器内,能够使该进程有效地运行,否则会出现频繁的页面调入/调出现象。

(18)A.局部性 B.全局性 C.动态性 D.虚拟性 (19)A.频繁地 B.均匀地 C.不均匀地 D.全面地

(20)A.数据局部性 B.空间局部性 C.时间局部性 D.数据全局性 (21)A.数据局部性 B.空间局部性 E.空间全局性 F.时间全局性 (22)A.外部存储 B.主存储 C.辅助存储 D.虚拟存储 例题14分析

虚拟存储管理系统从逻辑上扩充了内存容量,使用户感觉到的存储容量远远大于实际的内存容量,实质是让作业存在的地址空间与运行时存放作业的内存空间分开。用户可在地址空间内编写程序,而无须去考虑实际内存的大小。其理论基础是程序的局部性原理。

根据程序的局部性理论,Denning提出了工作集理论。工作集是指进程运行时被频繁访问的页面集合。显然只要使程序的工作集全部在内存(主存储器)当中,就可以大大减少进程的缺页次数。否则会使进程在运行中频繁出现缺页中断,从而出现频繁的页面调入/调出现象,造成系统性能下降,甚至出现抖动(颠簸)。

例题14答案:(18)A (19)C (20)C (21)B (22)B

例题15

一个虚拟存储系统由容量C1=8MB的主存和容量C2=800MB的辅存的两级存储器所构成。主存每位平均代价pl=10个单位成本,辅存每位平均代价p2=1个单位成本。相对CPU而言,从主存读出时间tA1=500ns,从辅存读出时间tA2=5ms。为了测定是否达到高的存取速率和低的位成本等,可以统计一组Benchmark程序,获得访问主存次数H=(25) ,平均读出时间tA= (26) μs。 (23)A.102 B.103 C.104 D.105 (24)A.1.08 B.1.09 C.1.10 D.2.09 (25)A.0.98 B.0.998 C.0.999 D.1 (26)A.10.5 B.20.5 C.50.5 D.100.5 例题15分析

由于辅存的读出时间为5ms=5000μs=5000000ns,所以两级存储器的读出时间比为:

要计算每位的平均代价,则需要计算出两级存储器的成本之和,再除以总容量,即:

(8×220×8×10+800×220×8×1)/(8×220×8+800×220×8) =110/101 =1.891

,访问辅存次数

。那么,

本虚存系统的两级存储器的读出时间比γ= (23) ,每位平均代价p= (24) 单?位成本,命中率

例题15答案:(23)C (24)B (25)B (26)D

例题16:容量为64块的Cache采用组相联方式映像,每块大小为128个字,每4块为一组。若主存容量为4096块,且以字编址,那么主存地址应该为 (27) 位,主存组号为 (28) 位。 (27)A.16 B.17 C.18 D.19 (28)A.5 B.6 C.7 D.8 例题16分析

组相联映射是直接映射和全相联映射的折中方案。它将Cache中的块再分成组,通过直接映射方式决定组号,通过全相联映射的方式决定Cache中的块号。

主存容量为4096块,每块大小为128个字,则主存大小为4096×128=219个字,主存以字编址,因此,主存地址应该为19位。

在组相联映像方式中,主存中一个组内的块数与Cache的分组数相同。Cache容量为64块,每4块为一组,则可以分为64/4=16组,所以主存需要分为4096/16=256(每组16块),即28组,因此主存组号需8位。

例题16答案:(27)D (28)D

例题17:虚拟存储器的作用是允许 (29) 。它通常使用 (30) 作为它的一个主要组成部分。对它的调度方法与 (31) 基本相似,即把要经常访问的数据驻留在高速存储器中,因为使用虚拟存储

器,指令执行时 (32) 。在虚拟存储系统中常使用相联存储器进行管理,它是 (33) 寻址的。 (29)A.直接使用外存替代内存

B.添加比地址字长允许的更多内存容量 C.程序直接访问比内存更大的地址空间 D.提高内存的访问速率

(30)A.CDROM B.硬盘 C.软盘 D.寄存器 (31)A.Cache B.DMA C.I/O D.中断 (32)A.所需的数据一定能在内存中找到 B.必须先进行虚、实地址交换 C.必须事先使用覆盖技术 D.必须先将常用子程序调入内存

(33)A.按地址 B.按内容 C.寄存器 D.计算 例题17分析

所谓虚拟存储技术,即在内存中保留一部分程序或数据,在外存(硬盘)中放置整个地址空间的副本。程序运行过程中可以随机访问内存中的数据或程序,当需要的程序或数据不在内存时,就将内存中部分内容根据情况写回外存,然后从外存调入所需程序或数据,实现作业内部的局部对换,从而允许程序的地址空间大于实际分配的存储区域。

虚拟存储器的调度方法与Cache基本相似。当指令执行时,如果操作对象不在内存,就向操作系统发出缺页中断。这时操作系统按照某种替换算法挑选某一物理页,根据情况决定是否将其写回外存,然后从外存中调入相应页面进行覆盖,并修改页表。而内存中存储的数据和程序是以物理地址来表示的,这样,在执行一条指令时,必须先进行从逻辑地址到物理地址的交换(这个过程称为地址映射),即虚实地址的交换。在虚拟存储器系统中,常使用相联存储器进行管理,它是按内容寻址的。 例题17答案:(29)C (30)B (31)A (32)B (33)B

例题18: 实存的存储分配算法用来决定输入的程序和数据放到主存中的位置,总是将程序装入主存中最大的空闲区域的算法称为 (34) 。

(34)A.最佳适应算法 B.最差适应算法 C.首次适应算法 D.循环首次适应算法 例题18分析

通常使用的四种存储分配算法如下。

首次适应算法:将内存中的可用分区单独组成可用分区表或可用分区自由链,按起始地址递增的次序排列。每次按递增次序向后找,一旦找到大于或等于所要求内存长度的分区,则结束探索,从找到的分区中找出所要求的内存长度分配给作业,并把剩余的部分进行合并。

循环首次适应算法:首次适应算法经常利用的是低地址空间,后面经常是较大的空白区,为使内存所有线性地址空间尽可能地轮流使用到,每重新分配一次,都要在当前之后寻找。

最佳适应算法:将输入作业放入主存中与它所需大小最接近的空白区中,使剩下的未用空间最小,该算法要求空白区大小按从小到大次序组成空白区可用表或自由链。在进行分配时总是从最小的一个开始查询,找到一个能满足要求的空白区便是最佳的一个。

最差适应算法:分配时将一个作业程序放入主存中最不适合它的空白区,即最大的空白区(空闲区)内。

例题18答案:B

例题19:下面关于Cache的说法中,不正确的是 (35) 。 (35)A.Cache存储器中保存的字块是主存中相应字块的一个副本 B.Cache的容量和块的大小是影响命中率的重要因素 C.从现实而言,Cache可以取代主存

D.一般来说,Cache的存储容量比主存的容量小得多,但不能太小,太小会使命中率太低。也

没有必要过大,过大不仅会增加成本,而且当容量超过一定值后,命中率随容量的增加将不会有明显的增长

例题19分析

Cache从理论上讲可以取代主存,但是当用Cache取代主存时,主存价格增长幅度大,在速度上比带Cache的存储器提高不了多少,并且用Cache做主存,则主存和辅助存储器的速度差别加大,在信息调入时,需要更多的额外开销,因此从现实而言,Cache难以取代主存。 例题19答案:C

例题20:假设某计算机具有1MB的内存(目前使用计算机往往具有的内存数比这大得多),并按字节编址,为了能存取该内存各地址的内容,其地址寄存器至少需要二进制 (36) 位。为了使4字节组成的字能从存储器中一次读出,要求存放在存储器中的字边界对齐,1字节的地址码应 (37) 。若存储器周期为200ns,且每个周期可访问4字节,则该存储器带宽为 (38) b/s。假如程序员可用的存储空间为4MB,则程序员所用的地址为 (39) ,而真正访问内存的地址称为 (40) 。 (36)A.10 B.16 C.20 D.32

(37)A.最低两位为00 B.最低两位为10 C.最高两位为00 D.最高两位为10 (38)A.20M B.40M C.80M D.160M

(39)A.有效地址 B.程序地址 C.逻辑地址 D.物理地址 (40)A.指令地址 B.物理地址 C.内存地址 D.数据地址 例题20分析

1MB=220B,所以1MB内存按字节编址,地址寄存器至少需要20位。如果采用字节编址,4字节一次读出,即字长为32位,每个字有4个单独编址的存储字节,字地址是该字高位字节的地址,总是等于4的倍数,正好用地址码的最低两位(为0)来区分同一字的4字节。

若存储周期为200ns,每个周期可访问4字节,其带宽为:

说明:在存储速度方面,1K=1000,1M=1000K。

因为可用的4MB内存空间超出了实际的物理内存1MB,称为逻辑地址,实际访问内存的地址为物理地址。在程序运行时,需要把逻辑地址映射为实际的物理地址。 例题20答案:(36)C (37)A (38)D (39)C (40)B

例题21:某虚拟存储器的用户编程空间共32个页面,每页1KB,主存为16KB。假定某时刻该用户页表中已调入主存的页面的虚页号和物理页号对照表如表3-2所示。

表3-2 虚页号和物理页号对照表

虚 页 号

0

5

物 理 页 号

1 10

2 4

8 7

虚地址与相对应的物理地址的关系如表3-3所示。

表3-3 虚地址与物理地址对照表

虚 地 址

0A5CH

(46)

物 理 地 址

1A5CH (47) (46)A.页失效 B.2A5CH C.165CH D.125CH (47)A.页失效 B.1E5CH C.2A5CH D.165CH 例题21分析

210B,所以页内地址有10位。将虚地址0A5CH转换为二进制为1010? 由于题目已经告诉我们,每个页的大小为1KB,1KB 0101 1100,其中低10位(10 0101 1100)为页内地址,余下的高2位(10)为页号。二进制的10等于十进制的2,查虚页号和物理页号对照表3-2可得物理页号为4,即二进制的100,因此,物理地址为100 10 0101 1100,转换为十六进制为125CH。

用同样的方法,可以求得1A5CH的页号为6,但此时的虚页号和物理页号对照表3-2中没有虚页号6,所以会产生页失效错误(缺页中断)。

在虚拟存储器中,要完成虚实地址之间的转换,这些功能是由软、硬件结合完成的。 例题21答案:(46)D (47)A

例题22:内存按字节编址,地址从90000H 到CFFFFH,若用存储容量为16K×8bit的存储器芯片构成该内存,至少需要(48)片。 (48)A.2 B.4 C.8 D.16 例题22分析

存储地址空间是指对存储器编码(编码地址)的范围。所谓编码就是对每一个物理存储单元(一个字节)分配一个号码,通常叫做编址。内存按字节编址的方式求区间的大小,通常记住在“结束地址-起始地址”后还要加1。所以,题中地址从90000H 到CFFFFH的区间大小为: 90000H +1H = 40000H? CFFFFH

将结果化成十进制为4×164=218 。内存按字节编址,则大小为: 218 B = 28KB = 256KB

用存储容量为16K×8bit的存储器芯片构成该内存,则需要256KB/16KB = 16片。 例题22答案:D

例题23:在CPU与主存之间设置高速缓冲存储器Cache,其目的是为了(49) 。 (49)A.扩大主存的存储容量 B.提高CPU对主存的访问效率 C.既扩大主存容量又提高存取速度 D.提高外存储器的速度 例题23分析

由于CPU的速度比主存的读取速度快得多,为了解决这种不匹配,在它们之间设置高速缓冲存储器Cache,将主存中的内容事先调入Cache中,CPU直接访问Cache的时间短得多,这样大大提高了CPU对主存的访问效率,也提高了整个计算机系统的效率。 例题23答案:B

例题24:在关于主存与Cache地址映射方式中,叙述(50)是正确的。 在分析Cache对机器性能的影响时,叙述(51)是正确的。

(50)A.全相联映射方式适用于大容量Cache。

B.直接映射是一对一的映射关系,组相联映射是多对一的映射关系。

C.在Cache容量相等条件下,直接映射方式的命中率比组相联映射方式有更高的命中率。 D.在Cache容量相等条件下,组相联映射比直接映射方式有更高的命中率。

(51)A.Cache容量比主存小许多,决定机器访问存储器的速度是主存,Cache只起次要作用。 B.Cache的主要作用是减少调用子程序的开销。

C.核心程序法是评价计算机性能的方法之一,由于它程序短,访问存储器的局部性较大,Cache的命中率比一般程序高。

D.奔腾PC采用两级Cache结构,一级放系统程序,另一级放用户程序。 例题24分析

当CPU发出访存请求后,存储器地址先被送到Cache控制器以确定所需数据是否已在Cache中,若命中则直接对Cache进行访问。这个过程称为Cache的地址映射(映像)。常见的映射方法有直接映射、全相联映射和组相联映射。

直接映射方式是一种多对一的映射关系,但一个主存块只能复制到Cache的一个特定块位置上去。直接映射方式的优点是以RAM作为Cache存储器,硬件电路较简单,成本低。缺点是每个主存块只有一个固定的块位置可存放,容易产生冲突。因此适合大容量Cache采用。

全相联映射使用相联存储器(CAM)作为Cache,其速度快于直接映射,但是硬件电路较复杂,而且价格也较昂贵。使用相联存储器组成的Cache存储器,其基本单元分成两部分:地址部分和数据部分。数据部分用于存放数据,而地址部分则存放该数据的存储器地址。当进行映射时,相联存储器把CPU发出的存储器地址与Cache内所有的地址信息同时进行比较,以确定是否命中。全相联映射方式因比较器电路难于设计和实现,只适用于小容量Cache。

组相联映射方式是前两种方式的折中方案。它将Cache分成u组,每组v块,主存块存放到哪个组是固定的,至于存到该组哪一块是灵活的。组相联映射方式中的每组块数v一般取值较小,这种规模的v路比较器容易设计和实现。而块在组中的排放又有一定的灵活性,冲突减少。在Cache容量相等的条件下,组相联映射比直接映射方式有更高的命中率。

若计算机的Cache容量大,速度快,而且运行的程序又能使CPU读写的数据经常在Cache中获得,则该程序执行的速度就快,也就是说如果程序短,访问存储器的局部性比较大,Cache的命中率会比一般程序高。采用这种程序来评价计算机性能往往评价偏好。

PC(个人计算机)采用两级Cache结构时,在CPU内有一级,容量小速度更快,在主板上另有一级,容量稍大,在使用中有时可分成指令Cache和数据Cache两部分,指令Cache不需要写操作,管理更方便。它并不是用来一级放系统程序,另一级放用户程序的。 例题24答案:(50)D (51)C

例题25:为了提高计算机的性能,采用Cache、虚拟存储器等多项技术。(52)不属于Cache的特征。

(52)A.为了提高速度全部用硬件实现 B.可以显著提高计算机的主存速度 C.可以显著提高计算机的主存容量 D.对程序员是透明的 例题25分析

Cache的功能是提高CPU数据输入输出的速率,通常在CPU和主存储器之间设置小容量的Cache。Cache容量小但速度快,主存储器速度较低但容量大,通过优化调度算法,系统的性能会大大改善,

仿佛其存储系统容量与主存相当而访问速度近似Cache。而这一切,对程序员而言,是透明的。也就是说,程序员是不可见的。 例题25答案:C

例题26:内存地址从AC000H到C7FFFH,共有(53) K个地址单元,如果该内存地址按字(16bit)编址,由28片存储器芯片构成。已知构成此内存的芯片每片有16K个存储单元,则该芯片每个存储单元存储(54)位。

(53)A.96 B.112 C.132 D.156 (54)A.4 B.8 C.16 D.24 例题26分析

C7FFFH-AC000H+1H=1C000H,把1C000H转换为10进制数得到114688,再化为K,即有114688/1024=112K个地址单元。

已知内存地址按字(16bit)编址,则共有112K×16位。内存由28片存储器芯片构成,每片有16K个存储单元,则该芯片每个存储单元存储(112K×16)/(28×16K)=4位。 例题26答案:(53)B (54)A

例题27:已知某高速缓存Cache采用组相联映像方式,即组间直接映像,组内全相联映像。假设主存容量为4096块,每块256B,高速缓存包含32块,分8组,每组4块。高速缓存的地址变换表应包含(55)个存储单元;每个存储单元应能存放(56)位二进制数;每次参与相联比较的是(57)个存储单元。

(55)A.8 B.16 C.32 D.48 (56)A.7 B.8 C.9 D.10 (57)A.4 B.8 C.12 D.16 例题27分析

在本题中,已知主存容量为4096×256B=1MB字节编址,由于220=1MB,所以主存地址应为20位。

在组相联映像方式中,主存与Cache都分组,主存中一个组内的块数与Cache的分组数相同。因为高速缓存分为8组,所以主存每组8块,共分为4096/8=512=29组,组号长度为9位。 因为高速缓存包含32块,所以,高速缓存的地址变换表(块表)应包含32个存储单元,每个存储单元的长度为主存组号长度,即9位二进制数。

因为主存中的各块与Cache的组号有固定的映像关系,但可自由映像到对应的Cache组中的任一块,而高速缓存每组4块,所以每次参与相联比较的是4个存储单元。 例题27答案:(55)C (56)C (57)A

例题28:某计算机主存按字节编址,主存与高速缓存Cache的地址变换采用组相联映像方式(即组内全相联,组间直接映像)。高速缓存分为2组,每组包含4块,块的大小为512B,主存容量为1MB。构成高速缓存的地址变换表相联存储器容量为(58) 。 (58)A.4×10bit B.8×10bit C.4×11bit D.8×11bit 例题28分析

已知主存容量为1MB,可分为1MB/512B=2048块。因为高速缓存分为2组,所以主存每组2块,主存可分为2048/2=1024=210个组。因此需要10位组号。

因为高速缓存共有8块,因此,其地址变换表应包含8个存储单元,每个存储单元的长度为主存地址组号长度,即10位二进制数。 例题28答案:B

例题29:下面关于计算机Cache的论述中,正确的是(59) 。

(59)A.Cache是一种介于主存和辅存之间的存储器,用于主辅存之间的缓冲存储 B.若访问Cache不命中,则用从内存中取到的字节代替Cache中最近访问过的字节

C.Cache的命中率必须很高,一般要达到90%以上 D.Cache中的信息必须与主存中的信息时刻保持一致 例题29分析

使用Cache改善系统性能的依据是程序的局部性原理。依据局部性原理,把主存储器中访问概率高的内容存放在Cache中,当CPU需要读取数据时就首先在Cache中查找是否有所需内容,如果有,则直接从Cache中读取;若没有,再从主存中读取该数据,然后同时送往CPU和Cache。如果CPU需要访问的内容大多都能在Cache中找到(称为访问命中),则可以大大提高系统性能。

系统的平均存储周期与命中率有很密切的关系,命中率的提高即使很小也能导致性能上的较大改善。当Cache存储器产生了一次访问未命中之后,相应的数据应同时读入CPU和Cache。但是当Cache已存满数据后,新数据必须淘汰Cache中的某些旧数据。最常用的淘汰算法有随机淘汰法、先进先出法和近期最少使用淘汰法。

因为需要保证缓存在Cache中的数据与主存中的内容一致,相对读操作而言,Cache的写操作比较复杂,常用的方法有写直达、写回、写一次和标记法。前3种方法在3.7.5节中已有介绍,下面主要介绍标记法。

在标记法中,对Cache中的每一个数据设置一个有效位。当数据进入Cache后,有效位置1;而当CPU要对该数据进行修改时,数据只需要写入主存储器并同时将该有效位清0。当要从Cache中读取数据时需要测试其有效位:若为l则直接从Cache中取数,否则从主存中取数。 例题29答案:C

例题30:关于相联存储器,下面的论述中,错误的是(60) 。 (60)A.相联存储器按地址进行并行访问 B.相联存储器的每个存储单元都具有信息处理能力 C.相联存储器能并行进行各种比较操作

D.在知识库中应用相联存储器实现按关键字检索 例题30分析

CAM是一种特殊的存储器,是一种基于数据内容进行访问的存储设备,相联存储器的特点是每个存储单元都必须有一个处理单元。当对其写入数据时,CAM能够自动选择一个未用的空单元进行存储;当要读出数据时,不是给出其存储单元的地址,而是直接给出该数据或者该数据的一部分内容,CAM对所有的存储单元中的数据同时进行比较,并标记符合条件的所有数据以供读取。由于比较是同时、并行进行的,所以这种基于数据内容进行读写的机制,其速度比基于地址进行读写的方式要快许多。

在计算机系统中,相联存储器主要用于虚拟存储器和Cache。在虚拟存储器中存放分段表、页表和快表,在高速缓冲存储器中作为存放Cache的块地址。另外,相联存储器还经常用于数据库与知识库中按关键字进行检索。 例题30答案:A

例题31:Cache 存储器一般采用(61)存储器件构成。 (61)A.DRAM B.SRAM C.ROM D.NVRAM 例题31分析

Cache存储器一般采用静态随机访问存储器(SRAM)技术,这种存储器的速度比动态RAM快,能够跟得上CPU的要求,弥合了CPU和主存之间的速度差距。 例题31答案:B

例题32:虚拟存储系统中的页表有快表和慢表之分,下面关于页表的叙述中正确的是(62) 。 (62)A.快表与慢表都存储在主存中,但快表比慢表容量小 B.快表采用了优化的搜索算法,因此比慢表的查找速度快 C.快表比慢表的命中率高,因此快表可以得到更多的搜索结果

D.快表采用快速存储器件组成,按照查找内容访问,因此比慢表查找速度快 例题32分析

虚拟存储系统中的快表采用快速存储器构成,按内容访问,因此比慢表查找速度快。 例题32答案:D

例题33:计算机的存储系统采用分级存储体系的理论依据是(63) 。目前,计算机系统中常用的三级存储体系是(64) 。

(63)A.存储容量、价格与存取速度间的协调性 B.程序访问的局部性

C.主存和CPU之间的速度匹配 D.程序运行的定时性

(64)A.寄存器、内存、外存 B.寄存器、Cache、内存 C.Cache、主存、辅存 D.L0、L1、L2三级Cache 例题33分析

计算机的存储系统采用分级存储体系的理论依据是程序访问的局部性原理。CPU访问存储器时,无论是取指令还是存取数据,所访问的存储单元都趋于聚集在一个较小的连续区域中。局部性分为两种,分别是时间局部性和空间局部性。时间局部性是指如果一个信息项正在被访问,那么在近期它很可能还会被再次访问。程序循环、堆栈等是产生时间局部性的原因。空间局部性是指在最近的将来将用到的信息很可能与现在正在使用的信息在空间地址上是临近的。

计算机系统中常用的三级存储体系是指Cache、主存、辅存,这三个级别容量越来越大,价格越来越低,速度越来越慢。

例题33答案:(63)B (64)C

二、综合应用题

例题34:设有一个2MB容量的存储器,字长为32位,问:

(1)按字节编址,地址寄存器、数据寄存器各为几位?编址范围为多大? (2)按字编址,地址寄存器、数据寄存器各为几位?编址范围为多大? 例题34解答

存储单元地址是存储单元的编号,通常从0开始顺序编址,一个单元对应一个地址。

(1)按字节编址:2MB=221×8,因此地址寄存器为21位,数据寄存器为8位,编址范围为00000H~1FFFFH。

(2)按字编址:2MB=221×8=219×32,因此地址寄存器为19位,数据寄存器为32位,编址范围为00000H~7FFFFH。

例题35:有一个16K×16的存储器,用1K×4位的DRAM芯片(内部结构为64×16,引脚同SRAM)构成,设读写周期为0.1μs,问:

(1)采用异步刷新方式,如单元刷新间隔不超过2ms,则刷新信号周期是多少? (2)如采用集中刷新方式,存储器刷新一遍最少用多少读/写周期,死区率是多少? 例题35解答

DRAM芯片的各种刷新时间的计算方法如下。

(1)采用异步刷新方式,在2ms时间内分散地把芯片64行刷新一遍,故刷新信号的时间间隔为2ms/64=31.25μs,即可取刷新信号周期为31μs。

(2)如采用集中刷新方式,假定T为读/写周期,则存储器刷新一遍最少所需刷新时间为64T。因为T单位为0.1μs,2ms=2000μs,则死区率=64T/2000×100%=0.32%。

例题36:用ROM芯片(4K×4位/片)和RAM芯片(2K×8位/片)组成一个半导体存储器,按

字节编址。该存储器ROM区的容量为16KB,RAM区的容量为10KB。 (1)组成该存储器需要多少块ROM芯片和多少块RAM芯片?

(2)该存储器一共需要多少根地址线?ROM芯片、RAM芯片各需要连入哪几根地址线? (3)需要设置多少个片选信号?分别写出各片选信号的逻辑式。 例题36解答

(1)ROM区的容量为16KB(即16K×8位),每块ROM芯片的容量为4K×4位,因此,需要的ROM芯片块数为:(16K×8位)/(4K×4)=8块;RAM区的容量为10KB(即10K×8位),每块RAM芯片的容量为2K×8位,因此,需要的RAM芯片块数为:(10K×8)/( 2K×8)=5。

(2)存储器总的容量为26KB,需15根地址线(A14…A0),ROM芯片连入A11…A0,RAM芯片连入A10…A0。

(3)需要设置9个片选信号,如表3-4所示。

9个片选信号

片选信号 A14 0 0 0 0 1 1 1 1 1 A13 0 0 1 1 0 0 0 0 1 A12 0 1 A11 CS0 ROM CS1 CS2 CS3 CS4 CS5 RAM CS6 CS7 CS8 注:0表示低电平,1表示高电平 地址线 0 1 0 0 1 1 0 0 1 0 1 0 例题37:设CPU共有16根地址线,8根数据线,并用MREQ(低电平有效)做访存控制信号,用R/W作读写控制信号,现有下列存储芯片: RAM:1K×8位、2K×4位、4K×8位。 ROM:2K×8位、4K×8位。

以及74138译码器和各种门电路(自定),要求最大4K地址空间为系统程序区,与其相邻的2K地址空间为用户程序区。

(1)合理选用上述存储芯片,说明各选几片?写出每片存储芯片的地址范围。 (2)画出CPU与存储器的连接图。 例题37解答

(1)系统程序区使用ROM芯片,用户程序区使用RAM芯片。根据两个区域的容量大小可知对应的地址空间如下: ROM对应的空间: 1111 1111 1111 1111 1111 0000 0000 0000 RAM对应的空间: 1110 1111 1111 1111 1110 1000 0000 0000

选择ROM芯片为2K×8位的2片,RAM芯片为2K×4位的2片。 ROM芯片1对应的地址范围: 1111 1111 1111 1111 1111 1000 0000 0000 ROM芯片2对应的地址范围: 1111 0111 1111 1111 1111 0000 0000 0000

RAM芯片1、2对应的地址范围:(位扩展) 1110 1111 1111 1111 1110 1000 0000 0000

(2)CPU与存储器的连接图如图3-20所示。

例题38:设存储器容量为128M字,字长64位,模块数M=8,分别用顺序方式和交叉方式进行组织。存储周期T=200ns,数据总线宽度为64位,总线传送周期τ=50ns。问顺序存储器和交叉存储器带宽各是多少? 例题38解答

例题39:已知Cache/主存系统效率为85%,平均访问时间为60ns,Cache比主存快4倍,求主存的存储周期是多少?Cache命中率是多少? 例题40解答

在本题中,e=0.85,ta=60ns,r=4,将这些参数代入3.7.6节给出的公式,就可以直接计算出结果。

Cache存取周期:tc = ta×e = 60×0.85 = 51ns。 主存存取周期:tm = tc×r = 51×4 = 204ns。

例题40:假设主存只有a、b、c三个页框,组成a进c出的FIFO队列进程,访问页面的序列是0,1,2,4,2,3,0,2,1,3,2号。若采用FIFO算法或FIFO+LRU算法,用列表法求两种替换策略的命中率。 例题40解答

求解表格如表3-5所示。FIFO算法只是依序将页面在队列中推进,先进先出,最先进入队列的页面由C页框退出(被替换掉)。从表3-5中可以看出命中2次,故命中率为2/11=18.2%。 当FIFO算法结合LRU算法时,当命中后不再保持队列不变,而是将这个命中的页面移到a页框。从表3-5中可以看出命中3次,从而使命中率提高到3/11=27.3%。

表3-5 计算表格

页面访问序列 0 1 2 4 2 3 0 2 1 3 2 命 中 率 a 0 1 2 4 4 3 0 2 1 3 3 b FIFO算法 c 0 1 2 2 4 3 0 2 1 1 2/11=18.2% 0 1 1 2 4 3 0 2 2 命中 命中 a 0 1 2 4 2 3 0 2 1 3 2

FIFO算法 + LRU算法

b 0 1 2 4 2 3 0 2 1 3

3/11=27.3%

c 0 1 1 4 2 3 0 2 1

命中 命中 命中

例题41:CPU执行一段程序时,Cache完成存取的次数为5000次,主存完成存取的次数为200次。已知Cache存储周期tc为40ns,主存存取周期tm为160ns。分别求(当Cache不命中时才启动主存):

(1)Cache的命中率h; (2)等效访问时间ta;

(3)Cache-主存系统的访问效率e。 例题41解答

可根据3.7.6节给出的公式直接进行计算。 (1)h = 5000/(5000+200) = 96.15%。

(2)ta = h×tc+(1-h)×tm = 40×96.15%+(1-96.15%)×160 = 44.62ns。 (3)e = tc/ta = 40/44.62 = 89.65%。

例题42:有一个1024K×32位的存储器,由128K×8位的DRAM芯片构成。问 (1)总共需要多少片这样的DRAM芯片? (2)画出此存储体组成框图。

(3)采用异步刷新方式,如单元刷新间隔不超过8ms,则刷新信号周期是多少? 例题42解答

(1)题目告诉我们,存储器的大小为1024K×32位,而DRAM芯片的大小为128K×8位,那么需要的芯片数为(1024K×32位)/(128K×8位) =32片。 (2)此存储体组成框图如图3-21所示。

(3)如果选择一个行地址进行刷新,刷新地址为A0…A8(9位),因此这一行上的存储元同时进行刷新,即在8ms内进行29=512个周期。刷新方式可采用:在8ms中进行512次刷新操作的集中刷新方式,或按8ms/512=0.015625ms刷新一次的异步刷新方式。

本文来源:https://www.bwwdw.com/article/bop2.html

Top