分块与页映射Block / page mapping

把逻辑地址或序列块映射到独立分配的物理块。

核心约束
映射与块的生命周期、引用关系必须一致。
适用问题
控制连续分配要求、共享块和碎片。
边界与取舍
存在映射元数据、块内碎片及特定执行内核要求。

常见操作#

h 为映射层级,b 为页 / 块大小;硬件页表与应用层块表是不同实现。

操作时间成本条件与说明
通过多级页表翻译地址未命中缓存时 O(h)O(h) 次层级访问TLB、页表缓存和大页会改变实际访存次数;缺页处理不在此界内。
通过已建立块表定位数据O(1)O(1)先按块号查表,再加块内偏移;表本身可直接索引。
分配 / 回收 / 复制块元数据维护 + 可能的数据搬运复制 b 字节块至少要处理相应数据;共享块写入前可能需要写时复制。

时间与空间#

时间成本
翻译、分配、缺页与搬运分别核算
空间成本
映射表 + 已分配块 + 未用尾部空间

分块使逻辑连续与物理连续分离;分配粒度越大,映射项越少,但尾部浪费可能更多。

工程中的应用#

3 个案例 · 附源码
基础原理参考资料

Linux 6.12 · Page Tables多级页表、地址划分与硬件映射。

vLLM · PagedAttention paperKV 缓存按块映射、共享和写时复制的应用层设计。

4 个概念