zoukankan      html  css  js  c++  java
  • (二)内存

    内存地址

    • 区分三种不同的地址:

    1.逻辑地址:机器语言指令中指定操作书或指令的地址,由段和偏移量构成

    2.线性/虚拟地址:应用程序的地址

    3.物理地址:在内存芯片上的寻址地址  

    • 逻辑地址转换:内存控制单元MMU利用分段单元将逻辑地址转换为虚拟地址,再由分页单元将其转化为物理地址

    硬件中的分段

    • 逻辑地址=段标识符(16bit)+偏移量(32bit)

    1.段选择符/段标识符结构: 

     

    2.段寄存器:为快速访问段选择符,处理器提供段寄存器cs、ss、ds、es、fs、gs存放段选择符,同一段寄存器可被程序通过保存到内存再恢复的方式用于不同目的而且cs代码段寄存器专门有一个2bit的字段标识CPU的当前特权级别CPL

    • 段描述符:段寄存器

    1.段描述符放在全局/局部描述符表中,而一个8字节的段描述符可表示一个段

    2.段描述符结构:

    3.段选择符和段描述符的关系:使用非编程的CPU寄存器使得逻辑地址转换过程中,当寄存器值不改变时不用访问主存中的GDT或LDT获得段描述符,处理器直接引用存放段描述符的寄存器即可

    4.逻辑地址到虚拟地址的翻译过程:

     

     

     

     

     

     

  • 相关阅读:
    作为一个前端,可以如何机智地弄坏一台电脑?
    Mysql数据库字符集问题
    代码扫描工具 SonarQube Scanner 配置 & Jenkins 集成
    【C++】统计代码覆盖率(四)
    【Jenkins】各项配置
    python小知识点汇总
    MobaXterm使用
    PHP代码覆盖率
    golang代码覆盖率
    压测工具Locuse的使用
  • 原文地址:https://www.cnblogs.com/bytedance/p/9144554.html
Copyright © 2011-2022 走看看