当前位置:首页 > 生活 >

虚拟内存是什么地方的内存(虚拟内存和内存有区别吗)

来源:原点资讯(www.yd166.com)时间:2024-12-02 09:51:22作者:YD166手机阅读>>

虚拟地址翻译物理地址

上图为虚拟地址翻译物理地址的示意图,可以看出VPO等于PPO。

下面看看计算机各个部件是怎么通过虚拟地址访问物理内存的。

处理器根据虚拟地址访问物理内存的分为页表项命中和页表项未命中两种情况,页表项命中意味着页表项的有效位为1,页表项存储的是物理页号,虚拟页缓冲在物理页中,未命中意味着页表项有效位为0,此时需要发送缺页中断。

页表项命中的步骤如下图:

虚拟内存是什么地方的内存,虚拟内存和内存有区别吗(13)

页表项命中翻译步骤

1.CPU将虚拟地址(VA)送入MMU,MMU根据页表基址寄存器中页表的起始地址加上虚拟页号,找到了页表项的物理地址PTEA。

2.MMU将PTEA送入到高速缓冲或者内存。

3.从高速缓冲或者内存中找到页表项(PTE),返回页表项(PTE)给MMU。

4.MMU根据PTE找出物理页号,然后加上虚拟页偏移量形成物理地址(PA),送入到高速缓冲或者内存。

5.高速缓冲或者内存获取数据,返回数据给处理器。

页表项未命中的步骤如下图:

虚拟内存是什么地方的内存,虚拟内存和内存有区别吗(14)

页表项未命中翻译步骤

1.CPU将虚拟地址(VA)送入MMU,MMU根据页表基址寄存器中页表的起始地址加上虚拟页号,找到了页表项的物理地址PTEA。

2.MMU将PTEA送入到高速缓冲或者内存。

3.从高速缓冲或者内存中找到页表项(PTE),返回页表项(PTE)给MMU。

4.MMU根据PTE,发现页不在内存中,未命中,因此MMU发送一个缺页中断,交由缺页异常处理程序处理。

5.缺页异常处理程序根据页置换算法,选择出一个牺牲页,如果这个页面已经被修改了,则写出到磁盘上,最后将这个牺牲页的页表项有效位设置为0,存入磁盘地址。

6.缺页异常程序处理程序调入新的页面,如果该虚拟页尚未分配磁盘空间,则分配磁盘空间,然后磁盘空间的页数据拷贝到空闲的物理页上,并更新PTE的有效位为1,更新物理页号,缺页异常处理程序返回后,再回到发生缺页中断的指令处,重新按照页表项命中的步骤执行。

虚拟地址翻译物理地址的过程介绍完了,另外要说的是现代的CPU和操作系统为了加快虚拟地址翻译物理地址的过程,做了以下两点优化:

1.建立了虚拟号(VPN)和页表项(PTE)的映射关系,存储在TLB中,当MMU根据虚拟地址获取页表项时,先查询TLB,在TLB找到了页表项后,就不需要从高速缓冲或者内存中获取了,找不到了才会计算页表项地址PTEA,然后再从高速缓冲或者内存中获取页表项(PTE)。

2.某些热点物理地址对应的数据,存储在L1缓冲中,MMU根据物理地址获取页表项或者代码数据时,先从L1缓冲中获取,找不到再从内存中获取。

上述的翻译过程是通过一级页表来翻译,现在操作系统支持多级页表,多级页表与一级页表比较类似,如下图所示:

虚拟内存是什么地方的内存,虚拟内存和内存有区别吗(15)

K页表

上图为K级页表,页表基址寄存器存储的是一级页表的地址,1到K-1的页表的每一项存储的下一级页表的起始地址,K级页表的每一项存储的是物理页号或者磁盘地址。

好了,关于虚拟地址,虚拟内存,虚拟地址空间的话题就介绍到这里了。

,

栏目热文

虚拟内存从哪来的(虚拟内存什么时候出现的)

虚拟内存从哪来的(虚拟内存什么时候出现的)

前言:存为了更加高效并且少出错,现代操作系统提供了一种对主存的抽象概念,叫做虚拟内存。虚拟内存是硬件异常,硬件地址翻译,...

2024-12-02 09:48:56查看全文 >>

虚拟内存怎么设置游戏运行流畅(虚拟内存能提高游戏流畅度吗)

虚拟内存怎么设置游戏运行流畅(虚拟内存能提高游戏流畅度吗)

生活中我们经常听到电脑有虚拟内存一说,很多人对电脑虚拟内存有种神秘的感觉,因为他们根本没有弄明白虚拟内存到底是什么意思,...

2024-12-02 10:02:43查看全文 >>

什么情况下会用虚拟内存(有必要打开虚拟内存吗)

什么情况下会用虚拟内存(有必要打开虚拟内存吗)

虚拟内存这个词,估计新生代里听说过的人不多。但如果你是电脑老鸟,或者经常玩大型游戏的话,虚拟内存应该或多或少还有些印象。...

2024-12-02 10:14:52查看全文 >>

同轴度与位置度(同轴度和位置度区别示意图)

同轴度与位置度(同轴度和位置度区别示意图)

位置度是GD&T中最有用且最复杂的几何公差符号,没有之一。位置度太重要且调用方法多样,为了不像裹脚布,下面仅讨论RFS(...

2024-12-02 09:45:45查看全文 >>

同心度的最简单测法(圆同心度测量的正确方法)

同心度的最简单测法(圆同心度测量的正确方法)

内外两个圆分别使用圆形拟合,找出圆心,再使用点间距测两个圆心的距离,看一遍就会,就是时这么简单。马克拉伯Moo...

2024-12-02 09:48:07查看全文 >>

虚拟内存通俗解释(虚拟内存一定要是物理的1.5倍吗)

虚拟内存通俗解释(虚拟内存一定要是物理的1.5倍吗)

一、前言在Windows XP时代以前,老鸟装机或者重装系统之后有一项必做的性能优化工作,那就是手动调整系统默认的虚拟内...

2024-12-02 10:23:44查看全文 >>

虚拟内存的作用(虚拟内存设置在d盘有什么好处)

虚拟内存的作用(虚拟内存设置在d盘有什么好处)

随着内存拓展技术的普及,目前从百元入门到万元旗舰基本都搭载了这项技术,旨在通过扩展手机的可用运行内存来提升多任务处理能力...

2024-12-02 09:57:57查看全文 >>

虚拟内存d盘有什么用(虚拟内存有什么用利与弊)

虚拟内存d盘有什么用(虚拟内存有什么用利与弊)

一、什么是虚拟内存?虚拟内存有什么用处?操作系统中所运行所有的程序全部都是经过内存提交给CPU然后才执行的,不过若是执行...

2024-12-02 09:57:27查看全文 >>

建盏的作用和功效(长期喝建盏水的危害)

建盏的作用和功效(长期喝建盏水的危害)

随着生活水平的不断提高,越来越多的朋友,都会选择用建盏喝茶。很多人也有些疑惑,一只小小的黑碗怎么能让这么多人喜欢? 有人...

2024-12-02 10:21:08查看全文 >>

建盏图片(上等茶盏主人杯)

建盏图片(上等茶盏主人杯)

油滴建盏是建盏中很常见的,也是很多建盏爱好者都非常喜欢的。  看似只是黑黑的建盏的上加上了一些密集的斑纹,实际上却拥有不...

2024-12-02 10:28:02查看全文 >>

文档排行