【深入理解Linux内核】内存寻址(一)

1. 逻辑地址:包含在机器语言指令中用来指定一个操作数或一条指令的地址。每一个逻辑地址都由一个段和偏移量组成。偏移量指明了从段开始的地方到实际地址之间的距离。

2. 线性地址:又称虚拟地址,是一个32位无符号整数,也用来表示4GB的地址,范围从0x00000000到0xffffffff。

3. 物理地址:用于内存芯片级内存单元寻址。他们与从微处理器的地址引脚发送到内存总线上的电信号相对应。物理地址由32位或者36位无符号整数表示。

内存控制单元(MMU)是把逻辑地址转换为物理地址的硬件。通过称为一种称为分段单元(segmentation unit)的硬件电路把逻辑地址转换为线性地址,接着,通过一种叫分页单元(paging unit)的硬件电路把线性地址转换为物理地址,这就很清楚的说明了这三个地址直接的关系,如下图:

内存仲裁器(memory arbiter):该硬件电路位于总线和每个RAM芯片之间。在多处理器系统中,如果某个RAM芯片空闲,就准许一个CPU访问,如果该芯片忙于为另一个处理器提出的请求服务,就延迟这个CPU的访问。即使在单处理器是也是用内存仲裁器。

猜你喜欢

转载自blog.csdn.net/lxin_liu/article/details/84852951