虚拟存储器是主存-辅存层次的,虚拟存储器主要是由操作系统实现,在计算机组成原理中应更加关注主存-Cache
虚拟存储器的基本概念
1、实地址与虚地址
1、实地址(物理地址):计算机物理内存的访问地址。
2、虚地址(逻辑地址):用户编程时使用的地址。
3、再定位:程序进行虚地址到实地址转换的过程。
4、虚地址空间与实地址空间的关系
虚地址空间可以远大于实地址空间,这时可以提高存储容量
虚地址空间可以远小于实地址空间,这时可以缩短指令值地址字段的长度
虚拟存储器是概念模型不是实际的存储器
2、虚存的访问过程
3、Cache与虚存的异同
主存-辅存与Cache-主存的访问机制类似
相同点是:
1、出发点相同,提高性能和容量、降低成本
2、原理相同:都是运用局部性原理
不同点
1、侧重点:Cache解决速度问题 、虚存解决容量问题
2、数据通路不通:CPU与Cache有直接通路而虚存所依赖的辅存和CPU并无直接通路
3、透明性不同:Cache均有硬件实现,对系统程序元和应用程序员均透明虚存对系统程序员不透明,对应用程序员透明
4、未命中时的损失不同,主存与Cache的访问时间、以及主存与辅存的访问时间,他们相差的时间远不相同
3、虚存机制要解决的问题
1、调度问题
2、地址映射问题
3、替换问题
4、更新问题
页式虚拟存储器
首先我们要清楚页是什么?页是主存物理空间划分出来的等长区域又称页面,好了现在我们清楚了页的概念可以继续看下去。
那么什么叫页式管理呢?页式管理是对存储-辅存系统间采取的是以页为单位的信息传送
这种管理方式有他的优点和缺点,首先我们先看他的优点,优点是什么的?我们思考,这样分成一整块我们构造页表比较容易这样可以方便我们的管理,除了最后一页外,我们也没有浪费空间。
缺点其实也显而易见就是,因为分页是按空间大小分的,同一程序可能被分到两个或多个页内,不利于编程的独立性
基本概念
1、以页为基本单位构造出来的虚拟存储器称为页式虚拟存储器
2、逻辑页:虚地址空间被分成的页
3、物理页:实地址空间被分成同样大小的页
页式虚存地址映射
虚地址和实地址之间的地址映射是通过页表来实现的
页表如下图所示:
虚拟地址的映射过程如下:
页表的基地址被存在一个寄存器中,我们通过虚存地址的逻辑页号以及页表基地址索引找到虚存地址页对应的物理页,然后物理页(作为实存地址的高字段)加上虚存地址的页内地址就是实存地址。
内页表和外页表
页表分为内页表和外页表
内页表:虚存和主存之间地址变换的表
外页表:虚存和辅存之间地址变换的表
主存缺页式要先定位到辅存
转换后援缓冲器(TLB)
1、把页表中最活跃的部分调入高速缓冲器
2、TLB是快表,而存放在主存中的完整页表被称为慢表
TLB的作用类似与CPU主存之间的Cache
虚拟存储器、TBL、Cache的协同操作
最好的情况是TBL命中,Cache也命中
段式虚拟存储器
基本概念
1、段:按照程序的自然分界划分的长度可以动态改变的区域
2、段的优点:便于编译、管理修改和保护,段长可变,便于有效利用主存空间
3、缺点:主存分配空间比较麻烦,容易产生碎片空间
地址映射
通过段表
段表的每个段表项至少包含以下3项
(1)、有效位
(2)、段起址
(3)、段长
段表图示如下:
虚地址映射过程如下:
段页式虚拟存储器(套娃)
段页式虚拟存储器是把程序按逻辑结构分段,每段再划分为固定大小的页
主存空间也划分为大小相等的页
每个程序对应一个段表,每段对应一个页表
虚拟地址:段号+段内页号+页内地址文章来源:https://www.toymoban.com/news/detail-448913.html
文章来源地址https://www.toymoban.com/news/detail-448913.html
到了这里,关于虚拟存储器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!