内存寻址 嵌入式系统实验室 EMBEDDED SYSTEM LABORATORY SUZHOU INSTITUTE FOR ADVANCED STUDY OF USTC
内存寻址
内容提要 X86微处理器的存储器寻址 Linux在X86上的寻址实现 大 4 1958 嵌入式系统实验室 2023/7/14 Linux OS Analysis 4/54 EMBEDDED SYSTEM LABORATORY SUZHOU INSTITUTE FON ADVANCED STUDY OF USTC
2023/7/14 Linux OS Analysis 4/54 内容提要 ❖X86微处理器的存储器寻址 ❖Linux在X86上的寻址实现
存储器地址 冬在intelx86处理器下,有三种不同的地址 >逻辑地址:每个逻辑地址由一个段(segment)和偏移量 (offset)组成 >线性地址: 32位无符号整数,可表示4G大小的地址空 间 >物理地址: 芯片级内存单元寻址。它们与从CPU的地 址引脚发送到内存总线上的电信号相对应 冬地址转换过程 逻辑地址 分段单元 线性地址 分页单元 物理地址 嵌入式系统实验室 2023/7/14 Linux OS Analysis 5/54 EMBEDDED SYSTEM LABORATORY SUZHOU INSTITUTE FON ADVANCED STUDY OF USTC
2023/7/14 Linux OS Analysis 5/54 存储器地址 ❖在intelx86处理器下,有三种不同的地址 ➢逻辑地址:每个逻辑地址由一个段(segment)和偏移量 (offset)组成 ➢线性地址:32位无符号整数,可表示4G大小的地址空 间 ➢物理地址:芯片级内存单元寻址。它们与从CPU的地 址引脚发送到内存总线上的电信号相对应 ❖地址转换过程 逻辑地址 分段单元 线性地址 分页单元 物理地址
为什么需要内存寻址机制? 冬保护内核不受恶意或者无意的破坏 必隔离各个用户进程 冬方便程序的编写,使程序员可以抛开对物理内存 的考虑,而且理论上可以使用任意大小的空间 1958 嵌入式系统实验室 2023/7/14 Linux OS Analysis 6/54 EMBEDDED SYSTEM LABORATORY SUZHOU INSTITUTE FON ADVANCED STUDY OF USTC
2023/7/14 Linux OS Analysis 6/54 为什么需要内存寻址机制? ❖保护内核不受恶意或者无意的破坏 ❖隔离各个用户进程 ❖方便程序的编写,使程序员可以抛开对物理内存 的考虑,而且理论上可以使用任意大小的空间
硬件的分段单元(1) 段寄存器(segment register) 冬386体系结构采用分段机制 >逻辑地址=段:段内偏移 使用16位段寄存器来指明当前所使用的段 >有六个:cs,Ss,ds,es,fs和gs CPU规定了3个寄存器的专门的用途 ●cs 代码段寄存器,指向存放程序指令的段 ●Ss堆栈段寄存器,指向存放当前堆栈的段 ●ds 数据段寄存器,指向存放数据的段 oI science and Technoie 嵌入式系统实验室 2023/7/14 Linux OS Analysis 7154 EMBEDDED SYSTEM LABORATORY SUZHOU INSTITUTE FON ADVANCED STUDY OF USTC
2023/7/14 Linux OS Analysis 7/54 硬件的分段单元(1) 段寄存器(segment register) ❖I386体系结构采用分段机制 ➢逻辑地址=段:段内偏移 ❖使用16位段寄存器来指明当前所使用的段 ➢有六个:cs, ss, ds, es, fs和gs CPU规定了3个寄存器的专门的用途 ⚫cs 代码段寄存器,指向存放程序指令的段 ⚫ss堆栈段寄存器,指向存放当前堆栈的段 ⚫ds 数据段寄存器,指向存放数据的段