0%

MMU 下虚拟地址向物理地址的转换

  • MMU 概念
  • 虚拟地址转换为物理地址
  • Cache 概念

名词解释

  • VA 虚拟地址
  • PA 物理地址
  • MMU 内存管理单元,是硬件设备,用于完成地址映射
  • TLB 是 MMU 的一部分,是一块高速缓存,用于缓存页表,提高页表查询速度
  • 页表 是内存管理系统中的数据结构,保存 VA 到 PA 的映射,位于主内存中,相对于 CPU,属于慢速设备
  • Cache 是硬件设备,为了解决处理器与慢速 DRAM(慢速 DRAM 即内存)设备之间巨大的速度差异
  • cacheline,cache 分成多个组,每个组分成多个行,linesize 是 cache 的基本单位,从主存向 cache 迁移数据都是按照 cacheline 为单位替换
  • page 页,一般为 4k

page 是 os 的概念,而 cache 是 cpu 的概念。虚拟地址和物理地址以 page 为单位进行操作的,由两部分组成:page 地址和 page 内地址

虚拟内存

虚拟地址 VA 到物理地址 PA 以页 page 为单位。通常 page 的大小为 4K。物理页面称为 page frame。
虚拟地址到物理地址是一个查表的过程,但可能不只一个表,是一个多级的表。虚拟地址本身分为几个部分,page 地址和 page 内地址,page 地址分为多级用于查表。这个过程称为 Translation Table Walk,由硬件完成。上述所指的表,是保存在内存上的。

MMU 包括 TLB 和 Translation Table Walk,TLB(Translation Lookaside Buffer)是一块高速缓存,缓存最近查找过的 VA 对应的页表项。如果 TLB 中有需要查表的 VA,就不用 Translation Table Walk 了,Translation Table Walk 较慢要从内存上读表。

Cache

Cache 设计:

  • 组相联
  • 全相联
  • 直接映射

Cache 写回内存模式:

  • Write Back
  • Write Through

VA2PA

  • TLB采用组相联
  • 页表采用两级页表
  • cache采用组相联,仅考虑L1 d-cache,不考虑L1 i-cache、L2 cache和L3 cache
  • 未考虑页表缺页
  • 简化了cache未命中情况

Ref