Pdp11:内存管理 - ikarishinjieva/unixV6-code-analyze-chs GitHub Wiki

Table of Contents

概述

PDP-11 虚地址字长为16位,而总线和CPU地址字长为18位,需要内存管理机制将虚内存地址转化为物理内存地址

内存管理单元

  • PDP-11提供两组页寄存器,分别对应核心态和用户态(由PS状态字选择)
  • 核心态页寄存器组 称为 KISA
  • 用户态页寄存器组 称为 UISA
  • 每组页寄存器由8个页寄存器组成
  • 每个页寄存器由页地址寄存器页说明寄存器组成

虚地址

  • 长度为16位
  • APF = Active Page Field
    对应页寄存器的编号
  • BN = Block Number
    块号
  • BID = Displacement In Block
    块内偏移

物理地址

  • 长度为18位
  • PHYSICAL BLOCK NO
    物理块号
  • DIB = Displacement In Block
    块内偏移

英文和缩写对照

名称 英文 英文缩写
页寄存器 Active Page Register APR
页地址寄存器 Page Address Register PAR
页说明寄存器 Page Descriptor Register PDR
虚地址 Visual Address VA
物理地址 Physical Address PA

地址变换机制

0] 根据PS中14-15位选取页寄存器组(核心态 或 用户态)
1]2] 根据虚地址VA中APF段从页寄存器组中选取某一页寄存器[APR]
3] 选取的页寄存器[APR]中的页地址寄存器[PAR]的0-11位,加上虚地址中块号[BN]段,形成物理块号[PBN]
4] 将得到的物理块号[PBN],与虚地址VA中的块内偏移[DIB]段,拼接成物理地址[PA]

参考

⚠️ **GitHub.com Fallback** ⚠️