页式寻址 (Paged Addressing) 是现代计算机管理存储空间的一种重要方式,通过将主存划分为若干大小相等的“页”或“区”来管理。

基本概念

  • 页 (Page):主存被分成等大小的块,每块称为一页。常见的页大小为 4KB ( 字节) 或 8KB。
  • 页号 (Page Number):对页面的编号。
  • 页内地址 (Page Offset):页面内部的单元编号,从 0 到页大小 -1。
  • 逻辑 vs 物理:页式寻址是虚拟存储管理的基础,用于实现逻辑地址到物理地址的映射。

地址构成与计算

有效地址由页号和页内地址拼接而成:

计算实例

假设地址总长度为 16 位 ( 寻址空间):

  1. 方案 A (8位页号 + 8位页内地址)

    • 页面大小 字节。
    • 页数 页 (编号 0~255)。
    • 应用:地址高8位为页号,低8位为页内偏移。
  2. 方案 B (9位页号 + 7位页内地址)

    • 页面大小 字节。
    • 页数 页 (编号 0~511)。

注:现代系统常用 4KB () 或 8KB 页面。对于 32 位系统,若页大小 4KB,则页内地址 12 位,页号 20 位。

常见寻址方式

在指令中通常有专门的标记位来区分具体的页式寻址模式:

  1. 零页寻址 (Zero-page Addressing)
    • 对应主存中编号为 0 的页面。
  2. 当前页寻址 (Current-page Addressing)
    • 使用 的高位部分作为页号,指令中的形式地址 作为页内偏移。 重点
    • 适用于程序内部的短距离跳转。
  3. 页寄存器寻址 (Page Register Addressing)
    • 使用专门的页寄存器提供页号。

优点

  • 便于管理:由于页大小相等,主存与辅存(或 Cache 与主存)之间的信息交换非常方便。
  • 局部性原理:利用时间局部性和空间局部性(详见 存储器层次结构与局部性原理),动态加载程序的部分代码和数据。