首页 > 代码库 > (八)地址空间和地址生成

(八)地址空间和地址生成

地址空间和地址生成

内容摘要

  • 地址空间 & 地址生成

  • 地址生成

  • 地址检查

一、地址空间定义

    • 物理地址空间 -- 硬件支持的地址空间

      • 起始地址0,直到?

    • 逻辑地址空间 -- 在CPU运行的进程看到的地址

      • 起始地址0,直到?

二、逻辑地址生成

  • 地址生成时机和限制

    • 编译时

      • 假设起始地址已知

      • 如果起始地址改变,必须重新编译

    • 加载时

      • 编译时起始位置未知,编译器需生成可重新定位的代码(relocatable code)

      • 加载时,生成绝对地址

    • 执行时

      • 执行时代码可移动

      • 需地址转换(映射)硬件支持

  • 地址生成过程

    • CPU

      • ALU : 需要逻辑地址的内存内容

      • MMU: 进行逻辑地址和物理地址的转换

      • CPU控制逻辑: 给总线发送物理地址请求

    • 内存 (识别总线上的地址和控制信号)

      根据控制型号决定读还是写

      • 发送物理地址的内存给CPU

      • 或接收CPU数据到物理地址

    • 操作系统

      • 建立逻辑地址LA和物理地址PA的映射

  • 地址检查

    • 每次访问时,检查你的段的长度和偏移量

      • no : 内存异常

      • yes: 加段长度寄存器 -> 对应的段基址

 

(八)地址空间和地址生成