比较 Cache 和虚拟存储器,说明它们的相似点和不同。

虚拟存储器

所谓虚拟存储器(Virtual Memory),就是采用一定的方法将一定的外存容量模拟成内存,同时对程序进出内存的方式进行管理,从而得到一个比实际内存容量大得多的内存空间,使得程序的运行不受内存大小的限制。虚拟存储区的容量与物理主存大小无关,而受限于计算机的地址结构和可用磁盘容量。

目录

      • 虚拟存储器
      • 工作过程
      • 调度方式
      • 虚拟存储器和Cache的异同点

工作过程

虚拟存储器是由硬件和操作系统自动实现存储信息调度和管理的。它的工作过程包括6个步骤:
  ①中央处理器访问主存的逻辑地址分解成组号a和组内地址b,并对组号a进行地址变换,即将逻辑组号a作为索引,查地址变换表,以确定该组信息是否存放在主存内。
  ②如该组号已在主存内,则转而执行④;如果该组号不在主存内,则检查主存中是否有空闲区,如果没有,便将某个暂时不用的组调出送往辅存,以便将这组信息调入主存。
  ③从辅存读出所要的组,并送到主存空闲区,然后将那个空闲的物理组号a和逻辑组号a登录在地址变换表中。
  ④从地址变换表读出与逻辑组号a对应的物理组号a。
  ⑤从物理组号a和组内字节地址b得到物理地址。
  ⑥根据物理地址从主存中存取必要的信息。

调度方式

调度方式有分页式、段式、段页式3种。
  1、页式调度
  页式调度是将逻辑和物理地址空间都分成固定大小的页。主存按页顺序编号,而每个独立编址的程序空间有自己的页号顺序,通过调度辅存中程序的各页可以离散装入主存中不同的页面位置,并可据表一一对应检索。页式调度的优点是页内零头小,页表对程序员来说是透明的,地址变换快,调入操作简单;缺点是各页不是程序的独立模块,不便于实现程序和数据的保护。
  2、段式调度
  段式调度是按程序的逻辑结构划分地址空间,段的长度是随意的,并且允许伸长,它的优点是消除了内存零头,易于实现存储保护,便于程序动态装配;缺点是调入操作复杂。
  3、段页式调度
  将这两种方法结合起来便构成段页式调度。在段页式调度中把物理空间分成页,程序按模块分段,每个段再分成与物理空间页同样小的页面。段页式调度综合了段式和页式的优点。其缺点是增加了硬件成本,软件也较复杂。大型通用计算机系统多数采用段页式调度。

虚拟存储器和Cache的异同点

虚拟存储器和主存Cache 存储器是两个不同存储层次的存储体系。在概念上两者有不少相同之处:但由主存 - 辅存组成的虚拟存储器和主存Cache 存储器亦有很多不同之处:
  ●Cache 存储器采用与CPU速度匹配的快速存储元件弥补了主存和CPU之间的速度差距,而虚拟存储器虽然最大限度地减少了慢速辅存对CPU的影响,但它的主要功能是用来弥补主存和辅存之间的容量差距,具有提供大容量和程序编址方便的优点。
  ●两个存储体系均以信息块作为存储层次之间基本信息的传送单位,Cache存储器每次传送的信息块是定长的,只有几十字节,而虚拟存储器信息块划分方案很多,有页、段等等,长度均在几百~几百K 字节左右。
  ●CPU访问快速Cache存储器的速度比访问慢速主存快5 ~ 10倍。虚拟存储器中主存的速度要比辅存缩短100 ~ 1000 倍以上。
  ●主存Cache 存储体系中CPU与Cache和主存都建立了直接访问的通道。一旦不命中时,CPU 就直接访问主存并同时向Cache调度信息块,从而减少了CPU等待的时间。而辅助存储器与CPU之间没有直接通路,一旦在主存不命中时,只能从辅存调块到主存。因为辅存的速度相对CPU的差距太大,调度需要毫秒级时间,因此,CPU一般改换执行另一个程序,等到调度完成后才返回原程序继续工作。
  ●Cache 存储器存取信息的过程、地址变换和替换策略全部用硬件实现,对程序员均是透明的。而主存- 辅存层次的虚拟存储器基本上是由操作系统的存储管理软件并辅助一些硬件来进行信息块的划分和主存 - 辅存之间的调度,所以对设计存储管理软件的系统程序员来说,它是不透明的,而对广大用户,因为虚拟存储路提供了庞大的逻辑空间可以任意使用,所以对应用程序员是透明的。

参考源文件:http://wiki.dzsc.com/6624.html#md23215

你可能感兴趣的:(#,【计算机组成原理面试基本概念】)