计算机组成与结构部分习题及答案资料 下载本文

块位置,两者的地址转换简化为块号的转换

(3)组相联映像:组相联映像方式是直接映像和全相联映像方式的一种折衷方案。 按这种映像方式,组间为直接映像,而组内的各字块为全相联映像方式。 主存地址:区号+组号+组内块号+块内地址 Cache地址:组号+组内块号+块内地址

? 替换算法:当新的主存字块需要调入cache存储器而它的可用位置又已被占满时,就

产生替换算法问题。只有在全相联和组相联映射时,才使用替换算法,直接映射时,不需要替换算法。

介绍两种替换算法:先进先出(FIFO)算法和近期最少使用(LRU)算法。 先进先出算法(FIFO):即按进入cache的先后决定淘汰顺序。采用这种算法,有可能产生较大的失效率。近期最少使用算法(LRU):选择“近期最少使用”块作为调出块,这种算法能比较正确反映程序的局部性,因为当前最少使用的块一般来说也是未来最少被访问的块。

? 主存地址和Cache地址的计算:主存地址位数A由主存容量N决定,A=log2N Cache地址位数B由Cache容量H决定,B=log2H

如主存按Cache容量分区则区号位数=主存地址位数-Cache地址位数

主存块、 Cache块大小相同,块内地址位数M取决于块容量Q ,M=log2Q

? 设cache容量为2K字,每块为16字,求:1)该cache可容纳多少个块? 2)如果主存容量为256K字,则有多少个块? 3)主存的地址有多少位? Cache地址有多少位? 4)直接映像方式下,主存地址分为哪几部分?每部分有多少位?主存中第j块映像到Cache中的哪一块?

解:1)cache可容纳多少个块:2K/16=128块 2)主存有多少个块:256K/16=16*1024=16384块

3)主存的地址有多少位log2256K=18位Cache地址有多少位:log22K=11位 主存有256K/2K=128个区

4)主存的地址分为:区号、块号、块内地址 块号位数log2128=7位,区号位数18-11=7位

主存中第j块映像到Cache中的j mod 128(块的数目) ? 虚拟存储器:

1、段式虚拟存储器:虚-存地址变换:CPU根据虚地址访存时, 先将段号与段表的起始地址相拼接, 形成访问段表对应行的地址, 再根据段表内装入位判断该

段是否已调入主存。若已调入主存, 则从段表中读出该段在主存中的起始地址, 与段内地址(偏移量)相加, 得到对应的主存实地址。

▲ 虚拟地址由段号和段内地址组成。▲ 通过段表把虚拟地址变换成实存地址 2、页式虚拟存储器(重点)

在页式虚拟存储器中, 把虚存空间和实存空间划分为等长的页, 称为虚页和实页, 每页长度是2的整数幂, 通常为512或几KB。

每个地址由两部分组成:页号和页内地址。信息往内存调入以页为单位的, 所以实地址与虚地址间的页内地址相同。因此, 虚-实地址的转换主要是虚页号向实页号的转换,这个转换关系由页表给出。

存储管理软件根据主存的运行情况,自动为每个程序建立一张页表, 存放在主存的特定区。页表的内容按虚页号顺序排列, 页表长度等于该程序的虚页数。每一虚页的使用情况占用一个存储字, 叫页表信息字。该信息字包含装入位、修改位、替换控制位和实页号等 虚地址=虚页号+ 页内地址 实地址=实页号+ 页内地址(页地址+字地址) ? 页式管理的地址变换:

17

虚存地址到主存实地址的变换是由放在主存中的页表来实现。页表是由操作系统建立的。用主存页面地址作为实(主)存地址的高字段,与虚存地址的页内地址字段相拼接,就产生了完整的实存地址,用来访问主存。

▲ 在页式虚拟存储器系统中,把虚拟空间分成页,称为逻辑页;主存空间也分成同样大小的页,称为物理页。

虚存地址分为两个字段:高位字段为逻辑页号,低位字段为页内地址。 实存地址也分两个字段:高位字段为物理页号,低位字段为页内地址。 两者的页面大小一样,页内地址是相等的。

例:已知某系统采用页式虚拟存储器方案, 某程序中一条指令的虚地址

是:000001111111100000, 该程序的页表起始地址是0011, 页面大小是1K, 页表中有关单元最后4位是实页号。求: 某指令地址(虚地址)变换后的主存实地址。 页表地址 装入位 实页号 007H 1 0001 ? 300H 1 0011 ? 307H 1 1100

解: 页表起始地址是0011,因页面大小是1K, 页内地址是10位,所以由虚地址可得虚页号为00000111, 得页表地址为0011 00000111(307H), 由此得主存实地址是11001111100000。 例题:一个有32位程序地址空间,页面容量为1KB,主存容量为8MB的存储系统,采用页式管理。

问:虚页号字段有多少位?页表有多少行? 解:页面容量1KB,所以页内地址位数10位。 虚页号字段32-10=22位

页表长度2^22=4M行(虚页数量)。(2^32/2^10)

3. 段页式虚拟存储器:▲ 段页式虚拟存储器是段式虚拟存储器和页式虚拟存储器的结合。段式虚拟存储器的优点:因段的分界与程序的自然分界相对应, 故具有逻辑独立性, 易于程序的编译、管理、修改和保护, 也便于多道程序共享。

缺点:因段的长度不固定, 起点和终点不定, 给主存空间分配带来麻烦, 容易在段间留下碎片而造成浪费。 知识点:

在虚拟存储器中有三个地址空间,

一是虚拟地址空间,也称虚存空间或虚拟存储器空间,它是应用程序员用来编写程序的地址空间,这个地址空间非常大。

二是主存储器的地址空间,也称主存地址空间、主存物理空间或实存地址空间, 第三个是辅存地址空间,也就是磁盘存储器的地址空间。

与这三个地址空间相对应,有三种地址,即虚拟地址(虚存地址、虚地址)、主存地址(主存实地址、主存物理地址、主存储器地址)和磁盘存储器地址(磁盘地址、辅存地址)。

18

地址映象是把虚拟地址空间映象到主存地址空间,具体地说,就是把用户用虚拟地址编写的程序按照某种规则装入到主存储器中,并建立多用户虚地址与主存实地址之间的对应关系。而地址变换则是在程序被装入主存储器之后,在实际运行时,把多用户虚地址变换成主存实地址(内部地址变换)或磁盘存储器地址(外部地址变换)。

由于程序在执行过程中具有局部性的特点,因此,对页表的访问并不是随机的,在一段时间内,只是局限在少数几个存储字内。根据这一特点,可以把经常访问的页面地址存放在一个小容量的高速存储器中,称为\快表\,当快表中查不到时,再从存放在主存储器中的页表中查找实页号。与快表相对应,存放在主存储器中的页表称为慢表。慢表是一个全表,快表只是慢表的一个副本,而且只存放了慢表中很少的一部分。

实际上,快表与慢表也构成了一个由两级存储器组成的存储系统。与虚拟存储器和Cache存储器类似。在这个快慢表的存储系统中,访问速度接近于快表的速度,存储容量是慢表的容量。

第十章习题课(第一次)

一、判断题

1.所有的数据传送方式都必须由CPU控制实现。F 2.屏蔽所有的中断源,即为关中断。T

3.一旦中断请求出现,CPU立即停止当前指令的执行,转去受理中断请求。F 4.CPU响应中断时,暂停运行当前程序,自动转移到中断服务程序。T 5.中断方式一般适合于随机出现的服务。T

6.DMA设备的中断级别比其他外设高,否则可能引起数据丢失。T

7.CPU在响应中断后可立即响应更高优先级的中断请求(不考虑中断优先级的动态分配)。F

10.为保证中断服务程序执行完毕以后,能正确返回到被中断的断点继续执行程序,必须进行现场保存操作。T

二、选择题

1.主机、外设不能并行工作的方式 A 。 A.程序查询方式 B.中断方式 C.通道方式

2.在单独(独立)编址下,下面的说法是C 是对的。

19

A.一个具体地址只能对应输入输出设备 B.一个具体地址只能对应内存单元

C.一个具体地址既可对应输入输出设备,也可对应内存单元 D.只对应内存单元或只对应I/O设备

3.在关中断状态,不可响应的中断是 C 。 A.硬件中断 B.软件中断 C.可屏蔽中断 D.不可屏蔽中断 4.禁止中断的功能可由 B 来完成。 A.中断触发器 B.中断允许触发器 C.中断屏蔽触发器 D.中断禁止触发器 7.有关中断的论述不正确的是 A 。 A.CPU和I/O设备可并行工作,但设备间不可并行工作 B.可实现多道程序、分时操作、实时操作 C.对硬盘采用中断可能引起数据丢失

D.计算机的中断源可来自主机,也可来自外设 8.中断系统是由 C 实现的 A.仅用硬件 B.仅用软件 C.软、硬件结合 D.以上都不对 14.产生中断的条件是 BD C 。 A.一条指令执行结束 B.机器内部发生故障 C.一次I/O操作开始 D.一次DMA操作开始

15.在微机系统中,外设通过 A 与主板的系统总线相连接。 A.适配器 B.设备控制器 C.计数器 D.寄存器 三、填空题

1.实现输入输出数据传送方式分成三种: 程序中断传送方式 、直接存储器存取方式 和程序控制方式。

2.输入输出设备寻址方式有 统一编址 和 独立编址 。

3.CPU响应中断时最先完成的两个步骤是 关中断 和 保存现场 。

20