分享好友 最新动态首页 最新动态分类 切换频道
计算机组成结构—虚拟存储器
2024-12-26 09:37

目录

一、虚拟存储器的基本概念

二、页式虚拟存储器

1.页表

2.快表(TLB)

3.具有 TLB 和 Cache 的多级存储系统

三、段式虚拟存储器

 四、段页式虚拟存储器

五、虚拟存储器和Cache比较


        早期的计算机,CPU 是直接操作主存的,也就是运行程序时,直接给出要访问的实际主存地址。这种方式简单直接,但是会有一些问题

  • 不同的程序之间需要共享内存,它们的内存地址空间很难隔离,从而导致程序运行的稳定性和安全性降低

  • 主存容量有限,如果同时执行的程序太多、使用内存太大容易超出容量限制而崩溃。

        为了解决这些问题,在主存-辅存这一层次的不断发展中,逐渐形成了虚拟存储系统。

        主存和辅存共同构成了虚拟存储器,二者在硬件和系统软件的共同管理下工作。对于应用程序员而言,虚拟存储器是透明的。虚拟存储器具有主存的速度和辅存的容量。

        虚拟存储器将主存和辅存的地址空间统一编址,形成一个庞大的地址空间,在这个空间内,用户可以自由编程,而不必在乎实际的主存容量和程序在主存的实际存放位置。用户编程允许涉及的地址称为 虚地址逻辑地址,虚地址对应的存储空间称为虚拟空间。实际的主存地址称为 实地址物理地址,实地址对应的是主存地址空间。虚地址比实地址要大很多。

        使用虚拟存储器之后,程序中看到的地址都是逻辑地址。在访存时,逻辑地址首先会被转换成物理地址,然后再访问实际物理内存。

        这样一来,每一个程序都有独立的虚拟地址空间,不同进程的虚拟地址空间互相不干扰,提高了安全性。在每个进程看来,就像它自己独享了整个内存。当物理内存不够时,可以将一部分不常使用的内存块换出(Swap-out)到磁盘中,下次使用时再换入到内存中(Swap-in,这样程序就可以使用超过实际物理内存大小的地址空间了。  

        CPU 使用逻辑地址时,先判断这个逻辑地址对应的内容是否已装入主存。若已在主存中,则通过地址变换,CPU 可直接访问主存指示的实际单元;若不在主存中,则把包含这个字的一页或一段调入主存后再由 CPU 访问。若主存已满,则采用 替换算法 置换主存中的页。

        虚拟存储器采用了和 Cache 类似的技术,将辅存中经常被访问的数据副本存放到主存中。但缺页 (或段)而访问辅存的代价很大,因此虚存机制采用 全相联映射,每个页可以存放到主存区域的任意一个空闲页位置。此外,当进行写操作时,不能每次写操作都同时写回磁盘,因而采用 回写法

        页式虚拟存储器 以页为基本单位。虚拟空间与主存空间都被划分成同样大小的页,主存的页称为 实页页框,虚存的页称为 虚页。这样,一个逻辑地址可以分为两段虚页号页内地址

        虚页和实页之间采用全相联映射,所以从主存中依次查找要访问的虚页号比较困难。所以我们专门引入一个数据结构,用来保存虚页号和实页号的映射关系,这就是 页表。页表可以实现从逻辑地址到物理地址的转换。  

        页表是一张存放在主存中的虚页号和实页号的对照表,它记录程序的虚页调入主存时被安排在主存中的位置。每个程序都有自己的页表,页表一般长久地保存在内存中。

页表中的每一项,都包含以下几部分

  • 有效位:也称 装入位,用来表示对应页面是否在主存,若为 1,则表示该虚页已从外存调入主存,此时页表项存放该页的物理页号;若为 0,则表示页面没有调入主存,此时页表项可以存放该页的磁盘地址。

  • 脏位:也称 修改位,用来表示页面是否被修改过,虚拟存储机制中采用回写策略,利用脏位可判断替换时是否需要写回磁盘。

  • 引用位:也称 使用位,用来配合替换策略进行设置,例如是否使用先进先出(FIFO)或近期最少使用(LRU)策略等。

        CPU 执行指令时,需要先将逻辑地址转换为主存物理地址。每个进程都有一个 页表基址寄存器,存放该进程的页表首地址,然后根据逻辑地址高位部分的虚页号找到对应的页表项。若装入位为 1,则取出物理页号,和逻辑地址低位部分的页内地址拼接,形成物理地址;若装入位为 0,则说明缺页,需要操作系统进行 缺页处理。缺页时会由 CPU 的内存管理单元(MMU)发出中断,操作系统需要将相应的页从磁盘取回调入主存,并将物理页的地址填入页表中。

        页式虚拟存储器的优点是:页的长度固定,页表简单,调入方便。缺点是:最后一页的零头无法利用而造成浪费,并且页不是逻辑上独立的实体,所以处理、保护和共享都不及段式虚拟存储器方便。

        有了虚拟存储器之后,CPU 在寻址时所生成的都是虚拟地址。于是 CPU 在取指或者执行访存指令的时候,都需要进行地址翻译,而每次地址翻译都要访问主存中的页表,会产生严重的开销。

        依据程序执行的局部性原理,当 CPU 在一段时间内总是经常访问某些页时,若把这些页对应的页表项存放在 Cache 中,就可以不访问主存直接进行地址翻译了;这样明显能提高效率。

        在 CPU 芯片中,加入一个专门存放最常访问的页表项的 Cache,就叫做 转址旁路缓存(Translation Lookaside BufferTLB,一般简称为 “快表”。TLB 实质上就是 “页表的 Cache”,其中存储了当前最可能被访问到的页表项,其内容是部分页表项的一个副本;所以 TLB 又被称为 页表缓存

        相应地,把放在主存中的页表称为 慢表(Page。 在地址转换时,先查找快表,若命中,则无须再访问主存中的页表(慢表)。

        TLB 通常采用 全相联映射。每个 TLB 项由页表表项内容加上一个 TLB 标记字段以及有效位等标志位组成,TLB 标记用来表示该表项取自页表中哪个虚页号对应的页表项,其内容就是该页表项对应的虚页号。

TLB 和 Cache 都属于缓存,不过它们的用途不同

  • TLB 用来保存最近经常访问的页表项,是对 地址映射 的缓存。

  • Cache 用来保存最近经常访问的主存块,是对 数据内容 的缓存。

        所以对于一个有虚拟存储器的计算机系统,可以先通过 TLB 对逻辑地址的翻译进行加速,快速得到一个物理地址;然后再通过 Cache 的地址转换判断是否 Cache 命中,从而对数据的访问进行加速。

        这样就将 Cache 和 TLB 结合起来,构成了多级存储系统。下面就是一个具有 2 路组相联映射 Cache 和 TLB 的多级存储系统;CPU 给出的是一个 32 位的逻辑地址,TLB 采用全相联映射,每一项都有一个比较器。

  • 查找时将虚页号与每个 TLB 标记同时进行比较,若有某一项相等且对应有效位为 1,则 TLB 命中,此时可直接通过TLB进行地址转换;若未命中,则 TLB 缺失,需要访问主存去査页表。

  • 图中所示是 两级页表方式,虚页号被分成 页目录索引页表索引 两部分,由这两部分得到对应的页表项,从而进行地址转换,并将相应表项调入TLB。若 TLB 已满,则还需要采用替换策略。

  • 完成由逻辑地址到物理地址的转换后,Cache 机构根据映射方式将物理地址划分成多个字段,然后根据映射规则找到对应的 Cache 行或组,将对应 Cache 行中的标记与物理地址中的高位部分进行比较,若相等且对应有效位为1,则 Cache 命中,此时根据块内地址取岀对应的字送 CPU。

        查找时,快表和慢表也可以同步进行。若快表中有此虚页号,则能很快地找到对应的实页号,并使慢表的查找作废,从而就能做到虽采用虚拟存储器,但访问主存速度几乎没有下降。

        在一个具有 Cache 和 TLB 的虚拟存储系统中,CPU —次访存操作可能涉及对 TLB、页表(Page)、Cache、主存和磁盘的访问。CPU 在访存过程中存在 3 种缺失情况

① TLB 缺失:要访问页面的页表项不在 TLB 中

② Page 缺失:要访问的页面不在主存中。

③ Cache 缺失:要访问的主存块不在 Cache 中

        需要注意,如果 TLB 命中,那么 Page 一定命中;如果 Page 缺失,那么 Cache 一定缺失。所以有如下一些组合情况

  • 第 1 种情况下,无须访问主存,地址转换和访问数据都可以通过高速缓存完成

  • 第 2 种和第 3 种情况都 需要访问一次主存,第 2 种是访问主存取数据,第 3 种是访问页表转换物理地址

  • 第 4 种情况需要访问两次主存,访问页表转换物理地址一次、访存取数据一次

  • 第 5 种情况就是 “缺页异常”,需要访问磁盘,并且至少访问两次主存。

        Cache 缺失处理由硬件完成;缺页处理由软件完成,操作系统通过 “缺页异常处理程序” 实现;而 TLB 缺失既可以用硬件也可以用软件来处理。

        在段式虚拟存储器中,将虚拟空间用 “” 进行分割;而段是按程序的逻辑结构划分的,各段的长度因程序而异。虚地址分为两部分段号段内地址。虚地址到实地址之间的变换是由 段表 来实现的。段表的每行记录与某个段对应的段号、 装入位和段长等信息。由于段的长度可变,所以段表中要给出各段的起始地址与段的长度。

        CPU 用逻辑地址访存时,先根据段号与段表基地址拼接成对应的段表项,再根据该段表项的装入位判断该段是否已调入主存(装入位为 “1”,表示该段已调入主存)。当已调入主存时,从段表读岀该段在主存的起始地址,与段内地址相加,得到对应的主存物理地址。

        段式虚拟存储器的优点是,段的分界与程序的逻辑分界相对应,这使得程序易于编译、修改和保护,也便于多道程序共享;缺点是因为段长度可变,分配空间不便,容易留下碎片,造成浪费。

        把程序按逻辑块分段,段内再分页,主存空间也划分为大小相等的页,程序对主存的调入调出仍以 为基本单位,这样的虚拟存储器称为 段页式虚拟存储器。在段页式虚拟存储器中,每个程序对应一个 段表,每段对应一个 页表,段的长度必须是页长的整数倍,段的起点必须是某一页的起点。

        虚地址分为 段号段内页号页内地址 3 部分。CPU 根据虚地址访存时,首先根据段号得到段表地址,然后从段表中取出该段的页表起始地址,与虚地址段内页号拼接,得到页表地址;最后从页表中取出实页号,与页内地址拼接成主存实地址。

        段页式虚拟存储器的优点是,兼具页式和段式虚拟存储器的优点,可以按段实现共享和保护;缺点是在地址变换过程中需要两次查表,系统开销较大。

相同点

  • 目标都是为了提高系统性能,两者都有容量、速度、价格的梯度。

  • 都把数据划分为信息块,作为基本的传送单位,虚拟存储器系统的信息块更大。

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

  • 依据局部性原理,应用“快速缓存”思想,将活跃的数据放在相对高速的部件中。

不同点

  • Cache主要是为了提高系统速度,而虚拟存储器是为了解决主存容量不足的问题。

  • Cache由硬件实现,对所有程序员透明;虚拟存储器由操作系统和硬件共同实现,对应用程序员透明。

  • 在不命中时对性能的影响不同。因为 CPU 的速度约为 Cache 的 10 倍,而主存的速度为硬盘的 100 倍以上,因此虚拟存储器系统在不命中时对系统性能的影响更大。

最新文章
种草易赚钱难,小红书急了
作者 | 胡描  编辑 | 罗丽娟“小红书成为了普通人的生活搜索入口,日均用户搜索占比60%,日均搜索查询量达到了3亿次。”在小红书will商业大会上,小红书COO叫柯南如此说道。让种草更“科学”,也成为了小红书今年的目标。骨子里,小红书是
掌握百度搜索排名靠前的实用策略
青衣网络-www.ra0.cn:掌握百度搜索排名靠前的实用策略目录:1. 理解百度搜索引擎工作原理2. 关键词研究与优化3. 内容质量的提升4. 网站结构与用户体验5. 外部链接建设与管理6. 移动优先与响应式设计7. 社交媒体的利用8. 持续监测与调整正
郑州惠济区戒网瘾学校有用吗排行榜TOP5名单
1.河南郑州爱德思睿素质教育学校针对叛逆青少年在成长过程中所出现的不良行为习惯和心理问题进行矫正,效果好,挽救一个孩子,幸福一个家庭是他们的办学宗旨。2.河南郑州新启航青少年特训学校是经教育局、民政局等各级政府部门联合审批、监
皮尔布莱尼申请基于贪心策略的双列瀑布流布局实现架构专利,实现整体布局最优化
金融界2024年12月9日消息,国家知识产权局信息显示,北京皮尔布莱尼软件有限公司申请一项名为“一种基于贪心策略思想的双列瀑布流布局实现架构的方法”的专利,公开号 CN 119089068 A,申请日期为 2024年8月。专利摘要显示,本发明属于前端
论文综述写法ppt课件(PPT 45页)
1、综述论文的写作1第1页,共45页。文献综述(reviews) 文献综述:收集大量的文献资料之后,经归纳整理,作出综合性描述,是对文献资料的综合评述。目的和意义:介绍学科的发展情况,反映当前某一领域中某分支学科或重要专题的最新进展,最
任意公众号的文中插入外链的方法找到了,亲测有效
曾经见过两篇文章在文末推荐自己的文章是用小程序做的,灵光一现,突然想到公众号的文中外链应该也可以这么做,到网上一找确实有一个这样的小程序,测试了一下,真的可行耶,现在把方法分享给大家。基本原理:小程序内部是支持外链跳转的,
解析如何利用抖音群控引流?精准怎么做? 2018年7月,抖音上线,发展至今,以超过老牌短视
2018年7月,抖音上线,展开至今,以赶过老排短室频玩家抖音和美拍,历久占据短室频社交流质榜首之位,日生动用户冲破2.5亿。正在那全民抖音的时代,手机抖音AI智能云系统价值倍删!作抖音营销,首先要思考的问题便是“如何通过抖音停行短室
金牌家居:战略投资鲲鹭人工智能研究院,缔造家居产业数智转型新“奇点”
继战略投资硅谷AI设计平台Collov之后,金牌家居(股票代码:603180)日前在人工智能板块再落一子:通过受让厦门鲲鹭人工智能研究院有限公司1500 万股股权,金牌家居将成为鲲鹭人工智能研究院持股 15% 的战略股东。基于AI大爆发给整个泛家居行业释
成色好的Y31流畅不卡顿,网友:这才是智能手机的真正实力!
在如今这个信息化飞速发展的时代,智能手机已经成为人们生活中不可或缺的一部分。在这个市场竞争激烈的背景下,Y31的出现抓住了不少消费者的眼球。尤其是在流畅度和稳定性上,Y31以其优越的表现赢得了广大用户的赞誉。Y31在设计上展现出简
�����۽�RTE+AI ����ն��2024�˹����������ѡ�����
���켫��IT����Ƶ����12��11��,������λ�ٰ��MEET2025����δ������ڱ���Բ����Ļ,���Ҳͬ��������2024�˹����������ѡ,����ƾ����RTE+AI����Ľܳ�̽��,�
相关文章
推荐文章
发表评论
0评