【计算机组成原理·考研】虚拟存储器

   日期:2024-12-26    作者:vxbbv 移动:http://mip.riyuangf.com/mobile/quote/41851.html
  • 虚拟存储器由主存+辅存组成,二者在硬件+系统软件的管理下协调工作。
  • 虚拟存储器对应用程序员是透明的。
  • 虚拟存储器具有主存的速度、辅存的容量。
  • 虚拟存储器将主存和辅存的地址空间进行统一编址,从而形成一个庞大的地址空间。用户可以在此基础上自由编程,而无需关心物理地址、主存容量等其他问题。
  • 虚拟存储器同样采用与Cache类似的技术,将被经常访问到的辅存内容的副本临时存放到主存中。
  • 采用全相联映射的地址映射方式,以降低主存缺页访问辅存带来的巨大开销。
  • 采用回写法来处理数据一致性的问题。
  • 地址映射工作由操作系统完成,当然也要辅以一些硬件的支持,如TLB、地址映射系统等。

虚地址/逻辑地址

  • 用户编程所允许涉及的地址,其对应的地址空间为虚拟空间或程序空间。
  • 虚地址 = 虚拟页号 + 页内字地址。

实地址/物理地址

  • 实际的主存单元地址,其对应的地址空间为主存地址空间或实地址空间。
  • 实地址 = 主存页号 + 页内字地址。

4.1 页式虚拟存储器

4.1.1 概述
  • 页式虚拟存储器以页为操作单位,即虚拟空间与主存空间均被划分成了多个同样大小的页。
  • 主存的页称为实页、页框;虚存的页称为虚页。
  • 虚拟地址 = 虚页号 + 页内地址。
4.1.2 说明
4.1.2.1 页表/慢表
4.1.2.1.1 说明
  • 页表是一张存放在主存中的虚页号与实页号的对照表,一般长久驻留在主存(内存)中。
  • 用于完成虚地址到实地址的转换工作。
4.1.2.1.2 地址变换过程

Ps
页面若很小,则虚拟存储器中包含的页面就会过多,使得页表的体积过大,导致页表占据的存储空间过大,操作速度反而变慢。
页面若很大,则主存中存放的页面较少,导致页面调度频率较高,换页次数增加,操作速度因此降低。

4.1.2.1.3 优缺点

优点:页长度固定,页表结构简单,调入方便。
缺点

  • 程序不一样是页大小的整数倍,因此调入的最后一页可能会有冗余而浪费。
  • 页不是逻辑上独立的实体,因而处理、保护、共享均不及段式虚拟存储器。
4.1.2.2 快表(TLB)
4.1.2.2.1 背景

由前面可知,在采用虚拟存储机制后,访存时会先去主存访问一次页表,然后再去访问主存才能拿到数据(如果命中,不命中的情况同样不言而喻),因此,访问的次数相较于未采用虚拟存储机制增加了。
依据程序局部性原理,在一段时间内总是经常访问某些页时,如果将这些页放到Cache组成的快表中时,那访存效率会得到明显提高。

4.1.2.2.2 特点
  • 快表通常采用全相联或组相联的映射方式。
  • 地址转换时,首先查找快表,若命中,则无需访问主存中的页表(慢表)。
  • TLB项 = TLB标记字段 + 页表表项内容。
  • 快表采用高速相联存储器,其速度来源于硬件本身,而不是查找算法带来的速度上的优势。
4.1.2.3 具有TLB和Cache的多级存储系统
序号TLBPageCache说明访存情况1hithithitTLB命中则Page一定命中,信息在主存中,也在Cache中无需访存主存2hithitmissTLB命中则Page一定命中,信息在主存中,不在Cache中访问一次主存3misshithitTLB缺失但Page可能命中,信息在主存中,也在Cache中访问一次主存4misshitmissTLB缺失但Page可能命中,信息在主存中,不在Cache中访问两次主存5missmissmissTLB缺失则Page可能缺失,信息不在主存中,也一定不在Cache中访问一次主存+访问辅存+缺页处理

Cache缺失由硬件完成。
缺页处理由软件完成(操作系统通过缺页异常处理程序实现)。
TLB缺失即可用硬件也可用软件来处理。

4.2 段式虚拟存储器

4.2.1 概述
  • 段是按程序的逻辑结构划分的,各个段的长度长短不一。
  • 虚拟地址 = 段号 + 段内地址。
  • 段表是程序中的逻辑段和在主存中的存放位置的对照表,虚地址到实地址的变换就是通过段表来实现的。
4.2.2 地址变换过程
4.2.3 优缺点
优点
  1. 段的分界与程序分界对应,具有逻辑独立性。
  2. 易于编译、管理、修改、保护,便于多道程序的共享。
缺点

段长度可变,从而使得分配空间不方便,因而容易在段间留下碎片。

4.3 段页式虚拟存储器

4.3.1 概述
  • 把程序按逻辑结构分段,每段划分为固定大小的页。主存空间划分为大小固定的页。
  • 程序对主存页的调入调出仍以页为单位。
  • 每个程序对应一个段表,每个段对应一个页表。
  • 段的长度是页的长度的整数倍,段的起点必须是某一页的整数倍。
  • 虚地址 = 段号 + 段内页号 + 页内地址。
4.3.2 优缺点
优点

兼具页式和段式存储器的优点,可以按段实现共享和保护。

缺点

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


举报收藏 0评论 0
0相关评论
相关最新动态
推荐最新动态
点击排行
{
网站首页  |  关于我们  |  联系方式  |  使用协议  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号