考研复试计算机组成原理面试题(二)—存储器系统

写作目的:为了应对考研复试中的面试,我整理了导师可能提问的地方,力求用口语化的语言描述出来。

这只是一部分,陆续还有计算机组成原理的其它章节,还会推出操作系统、数据结构、计算机网络、数据库的复试题整理

思维导图在我的processon。如果对你有帮助就打赏一下吧。

https://www.processon.com/view/link/5e6ca476e4b0f2f3bd1f89cd

存储系统

随机存储器、只读存储器、串行访问存储器的特点

随机存储器RAM,任何一个单元都能随机存取,存取时间与存储单元的位置无关。主要用途是高速缓存或主存。分为静态RAM和动态RAM,前者以触发器原理寄存信息,后者以电容充电原理寄存信息。

只读存储器ROM,数据一次写入存储器后不能修改,只能读取,断点不易失。通常用来存储不变的常数、程序。它和RAM一起作为主存的一部分。由ROM派生出的存储器,有的是可读可写的,但写的速断比读的速度要慢得多。

串行访问存储器,对存储单元的读写要按照物理位置的先后顺序寻址。它包括顺序存取存储器和直接存取存储器。前者的代表是磁带,后者的代表是磁盘。

直接存取存储器的特点

存取信息时先寻找整个存储器中的某个小区域,再在小区域内顺序查找。

三个性能指标

存储容量、单位成本、存取速度。

存储容量等于存储字数乘以字长。

单位成本等于总成本除以总容量

存储速度中的数据传输率等于数据的宽度除以存储周期

存取时间 存取周期 主存带宽

存取时间:启动一次存储器操作到完成该操作所需要的时间。

存取周期:存储器完成一次完整的读写操作所用的时间,即两次独立访问存储器操作之间所需的最小时间间隔

主存带宽:主存的数据传输率,每秒从主存进出信息的最大数量

存取时间就是存储周期吗

很显然,不是。通常存取周期大于存取时间,对任何存储器来说,在读写过后,都有一段内部状态的复原的时间。对于破坏性的存储器,存取周期往往比存取时间大得多。

多级存储系统结构以及成本速度容量

多级存储系统,为了解决存储系统大容量、高速度、低成本三者的矛盾。

从上到下为寄存器、cache、主存、辅存。从上到下,速度越来越慢、单位成本越来越小、存储容量越来越高。

SRAM和DRAM的工作原理和比较

静态随机存储器SRAM的存储元是双稳态触发器,非破坏读出不用再生。存取速度快,集成密度低,功耗大,一般用来组成高速缓存。

动态随机存储器DRAM存储元是栅极电容,采用地址复用技术,地址线是原来的1/2,地址信号分行列两次传送。相比SRAM而言它容易集成价格低、容量大、功耗低,但存储速度比SRAM慢,一般用来做主存系统。

三种刷新方式

集中刷新、分散刷新、异步刷新

DRAM刷新需要注意的问题

刷新对cpu是透明的,刷新不依赖于外部的访问,DRAM的刷新是以行为单位的,刷新仅需要行地址。刷新操作类似读操作,但不需要读取信息,只需要给电容补充电荷;刷新时不需要片选,整个存储器的芯片同时被刷新。

ROM的特点

ROM非易失存储器,不通电也不会丢失信息;结构简单,存储密度比可读写存储器高。

非易失性,可靠性高。

时间局部性和空间局部性

时间局部性:程序当前运行的指令或用到的数据,在不久也可能会用到。因为程序有循环结构

空间局部性:某个存储单元被访问,接下来它临近的存储单元也可能被访问。因为指令是顺序存放的,数组等数据结构所占的存储空间也是连续的。

Cache中主存块的替换算法

随机替换算法、先进先出替换算法、近期最少使用替换算法、最不经常使用替换算法。

近期最少使用算法:依据程序访问的局部性原理选择近期内长久未用的行作为替换行,平均命中率比先进先出算法高。LRU算法对每一行设置一个拘束器,cache每命中一次,计数器清零,其它的行加1,需要替换时,将计数值最大的换出。

最不经常使用算法,将一段时间内被访问最少的存储航换出。每行设置一个计数器,都从0开始计数,每访问一次,被访问行的计数器加1,需要替换时比较各行特定计数器的值,将计数值最小的换出。

描述Cache写策略

根据写命中和写不命中,各有两种策略。

写命中时:1、全写法:把修改写入内存也写入cache。优点是可以保持内存的数据正确,缺点是增加了访存次数。可以加一个写缓冲,减少写入内存的时间损耗。2、写回法:把修改只写入cache。优点是速度快,缺点是会造成主存和cache不一致。因此需要cache需要设置一个标记位(脏位),表示CPU是否被修改过。

写不命中时:1、写分配法:加载主存的块到cache,然后再修改数据(数据写回哪里要看写命中策略)。它想利用程序的空间局部性,缺点是每次写不命中都要从主存中读取一块。2、非写分配法:只写入主存,不进行调块。

写分配法常和写回法一起使用;非写分配法常和全写法一块使用。可以在保持主存中数据正确性和减少访存次数之间做一个折中。

Cache行大小和命中率之间的关系

行的长度较大,可以充分利用程序的空间局部性,使一个较大的局部空间进入cache,因而可以增加命中机会。但是行长也不能太大,主要原因有两个:

行长太大,失效损失变大。也就是说,如果没有命中就需要花跟多时间从主存块读数据。

行长太大cache项数变少,命中可能性变小。

Cache处理缺失时都发生了什么?

首先PC恢复发生缺页的指令的值;然后对主存进行读操作;将读取的数据块写入Cache,更改有效位和标记位;最后重新执行PC中的指令。

段式存储器和页式存储器的区别

页式存储器是以页为基本单位的虚拟存储器,页大小都是相等的,主存的页被称为实页,虚存的页被称为虚页。虚拟地址分为两个字段:虚页号和页内地址。虚地址到实地址的转换是页表实现的。页表也变成就存放在主存中。

页式虚拟存储器的优点是页面长度固定,页表简单。缺点是有最后一个块有内部碎片。页不是逻辑上独立实体,比起段式虚拟存储器,处理、保护、共享都不如虚拟存储器方便。

段式虚拟存储器的段式按照程序的逻辑结构划分的,各个段的长度因程序而不同。虚拟地址分为:段号和段内地址两个部分。虚拟地址到实地址之间的变换是由段表实现的,由于段长可变,所以段表中要记录段的起始地址和段的长度。

段式虚拟存储器的有点是段的分界就是程序的分界,逻辑独立性强,便于多道程序共享;缺点是因为段长度可变,分配空间不便,可能产生外部碎片。

段页式存储器的特点

结合两者的特点,先把按照程序之间的逻辑结构分段,每一段再划分固定大小的页,主存空间也划分为大小相等的页,页仍然是基本单位。每个程序对应一个段表,每个段对应一个页表。虚拟地址分为段号、段内页号、页内地址三个部分。

段页式的优点是兼具页式和段氏的优点,可以实现共享和保护。缺点是地址变换中需要两次查表,开销极大。

虚拟存储器和Cache的相同点和不同点

相同点:

1、它们的目的是为了提升系统性能。

2、把整个存储器,划分为小的数据块,作为基本的交换单位,虚拟系统信息块更大。

3、都有地址映射、替换算法、更新策略等问题。

4、都是依据局部性原理,将使用频率高的数据放入高速部件中。

不同点:

1、Cache主要解决访问速度问题,虚拟存储解决主存容量问题。

2、Cache全部由硬件实现,对程序员是透明的;虚拟存储器由操作系统和硬件共同实现,对系统程序员不透明、对应用程序员透明。

3、不命中时,虚拟存储器不命中时对系统效率影响更大。

4、CPU和cache,Cpu和主存都有直接访问通路,而CPU和辅助存储器没有直接通路。当虚拟存储器不命中时,需要先把辅助存储器数据块调入主存中,CPU才能对它访问。

发布了19 篇原创文章 · 获赞 10 · 访问量 1943

猜你喜欢

转载自blog.csdn.net/qq_30719815/article/details/104889132