首先,地址转换过程为逻辑地址→线性地址→物理地址。
一、逻辑地址
逻辑地址(Logical Address)是指由程序产生的与段相关的偏移地址部分。
在有地址变换功能的计算机中,访问指令给出的地址 (操作数) 叫逻辑地址,也叫相对地址。要经过寻址方式的计算或变换才得到内存储器中的物理地址。
一个逻辑地址由两部份组成,段标识符和段内偏移量 (offset) 。段标识符是由一个16位长的字段组成,称为段选择符。其中前13位是一个索引号。后面3位包含一些硬件细节,如下图:
可以通过段标识符的前13位,直接在段描述符表中找到一个具体的段描述符,这个描述符就描述了一个段。
每一个段描述符由8个字节组成,如下图:
虽然内容很复杂,但我们这里只关心一样,就是Base字段,它描述了一个段的开始位置的基地址。
把Base + offset,就是要转换的线性地址了。
二、线性地址
线性地址(Linear Address)是逻辑地址到物理地址变换之间的中间层。在分段部件中逻辑地址是段中的偏移地址,然后加上基地址就是线性地址。
如果启用了分页机制,那么线性地址可以再经过变换以产生一个物理地址。如果没有启用分页机制,那么线性地址直接就是物理地址。
三、物理地址
它是出现在CPU外部地址总线上的寻址物理内存的地址信号,是地址变换的最终结果。