什么是虚拟内存?
出处:维库电子市场网 发布于:2023-11-07 16:59:11
现代计算机系统可以同时运行数十个甚至数百个不同的应用程序。由于内存是一种有限的资源,随着越来越多的应用程序消耗它,性能可能会下降,甚至完全停止。这就是虚拟内存发挥作用的地方。图 1 显示了内存层次结构,包括高速缓存、主内存和虚拟内存。
图 1. 内存层次结构
如图 1 所示,虚拟内存的存在是为了增加系统的内存容量。这是通过将磁盘驱动器的一部分分配为专用内存块来完成的,对于任何可能需要它的应用程序来说,该内存块“看起来”就像主内存。
为了防止磁盘访问降低速度性能,主内存充当虚拟内存的完全关联缓存,存储近访问的磁盘位置。因此,通过使用虚拟内存,主内存成为高速缓存层次结构中的另一层。
虽然详细信息超出了本文的范围,但应该注意的是,虚拟内存是通过计算机操作系统和处理器的内存管理单元 (MMU) 之间的交互来管理和控制的。
缓存与分页
回想一下,高速缓存将物理内存地址分解为多个字段。这样做是为了识别正在存储近访问的数据的缓存条目。对于完全关联的缓存,这些字段是缓存标记和字节偏移量。缓存条目由匹配标签和包含数据的缓存块组成。
如果未找到匹配的标签,则称为高速缓存未命中。
图 2. 缓存术语
虚拟内存的工作原理类似,但使用虚拟地址的概念。
虚拟地址由虚拟页号和页偏移量组成。虚拟地址用于定位内存中称为页框的项目,通常大小为 4kB。
页框包含页框号和实际数据,简称为页。
页偏移用于访问 4kB 页内的单个字。如果虚拟地址未指向物理内存中的位置,则会发生页面错误,系统必须前往磁盘驱动器获取所请求的数据。当发生页面错误时,磁盘上的页面将移动到内存中的页面框架。在主内存和磁盘之间移动页面称为分页(或交换)。
图 3. 分页命名法
由于虚拟内存用于扩展系统内存的容量,因此需要一种既考虑磁盘上的位置又考虑主内存中的位置的寻址方案。这就是虚拟地址发挥作用的地方。
虚拟地址跨越磁盘驱动器和主内存,导致虚拟地址多于物理内存地址。因此,在访问页面中的数据之前,系统必须确定该数据是驻留在物理内存还是虚拟内存中。这是通过地址转换完成的。
图 4. 虚拟地址映射到虚拟内存和物理内存
上一篇:缓存设计原则
版权与免责声明
凡本网注明“出处:维库电子市场网”的所有作品,版权均属于维库电子市场网,转载请必须注明维库电子市场网,https://www.dzsc.com,违反者本网将追究相关法律责任。
本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。
如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。
- 英特尔数据存储如何操作和实现2024/4/26 17:40:38
- TI - 电池储能系统需要克服的三大设计挑战2024/4/24 15:46:55
- ram与rom的主要区分2024/4/12 17:48:19
- 什么是储能电池2024/4/3 17:34:46
- 一文解析HBM技术原理及优势2024/3/29 17:53:22