计算机组成原理——虚拟存储器

虚拟存储器

|| 分页

地址空间主存容量 的概念区分开来。程序员在地址空间里编写程序,而程序则在真正的内存中运行。由一个专门的机制实现地址空间和实际主存之间的映射。

在这里插入图片描述
在这里插入图片描述

|| 虚拟存储系统基本概念

虚拟存储技术的实质:

  • 程序员在比实际主存空间大得多的逻辑地址空间中编写程序。
  • 程序执行时,把当前需要的程序段和相应的数据调入主存,其他暂不用的部分放在磁盘上。
  • 指令执行时,通过硬件将逻辑地址(虚拟地址)转化为物理地址。
  • 在发生程序或数据访问失效(缺页)时,由操作系统进行主存和磁盘之间的信息交换。

在这里插入图片描述
虚拟存储器实现方式:

分页式、分段式、段页式

在这里插入图片描述

|| 分页式管理方式

  • 页表结构

在这里插入图片描述
页表位于内存,页表首地址在寄存器;页表的项数理论上由虚拟地址空间大小决定,理论上每个进程的页表大小是一样的。

在这里插入图片描述

  • 逻辑地址转为物理地址的过程

在这里插入图片描述

  • TLB 快表

把经常要查的页表项(页表的子集)放到Cache中,这种在Cache中的页表项组成的页表称为 Translation Lookaside Buffer。

在这里插入图片描述
在这里插入图片描述

由图可知一次存储器引用要访问 0/1/2/3 次主存。

  • 完整流程

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

|| 一个简化的存储系统举例

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

|| 作业

2
(4)为什么在CPU和主存之间引入cache能提高CPU访存效率?

答: cache 是一种小容量高速缓冲存储器,由 SRAM(static random access of memory)组成。直接制作在 CPU 芯片内,速度几乎与 CPU 一样快。程序运行时,CPU 使用的一部分数据/指令会预先拷贝在 cache中,cache 中的内容是主存储器中部分内容的映像。当CPU 需要从内存读写数据或指令时,先检查 cache,若有,就直接从 cache 中读取,而不访问主存,从而提高访存效率。

(5)为什么说cache对程序员是透明的?

答: 透明指的是程序员不需要知道其运行原理。
因为程序员不需要知道cache的缓存机制,直接调用cache接口即可实现cache缓存,所以cache对程序员是透明的。

(9)什么是物理地址?什么是逻辑地址?地址转换由硬件还是软件实现?

答: 物理地址是指CPU对存储器进行访问时实际寻址所用的地址;逻辑地址是指在程序和指令中使用的一种地址。地址转换由硬件实现,提高计算机效率。

(10)什么是页表?什么是快表?

答:为了对每个虚拟页的存放位置、存取权限、使用情况、修改情况等进行说明,操作系统在主存中给每个进程都生成了一个页表;
为了减少访存次数,往往把页表中最活跃的几个页表项复制到高速缓存中,这种在高速缓存中的页表项组成的页表称为快表(TLB)。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/tian__si/article/details/106505357