内存寻址
内存地址
- 逻辑地址,线性地址(虚拟地址),物理地址
- 内存控制单元MMU
- 逻辑地址 经 分段单元 转换为 线性地址
- 线性地址 经 分页单元 转换为 物理地址
- 内存仲裁器
- DMA控制器
硬件中的分段
- 实模式和保护模式
- 实模式用来维持处理器和早期模型的兼容
段选择符和段寄存器
- 1个逻辑地址=段标识符 + 偏移量
- 段标识符==段选择符 16位
- 6个段寄存器
- cs代码寄存器,也包含两个字段指明当前特权级即用户态和内核态
- ss栈寄存器
- ds数据寄存器
- 其余三个指向任意数据段
段描述符
- 8字节
- 存放在GDT和LDT中
- 通常只有一个GDT
- 代码段描述符,数据段描述符,任务状态描述符TSSD(TSS任务状态段),局部描述符表描述符LDTD
快速访问段描述符
- 非编程的寄存器(程序员不能设置)
- 段描述符 装入 段寄存器,相应的段描述符 由内存装入对应的 非编程CPU寄存器
- 非编程CPU寄存器指向段,处理器直接访问CPU非编程寄存器,实现快速访问
- GDT的第一项总设为0,确保空段选择符的逻辑地址为无效
分页单元
- 段选择符index字段值*8 +gdtr或者ldtr寄存器中的内容 +偏移量=线性地址