1 逻辑地址
逻辑地址是最为模糊的概念。
《understanding the linux kernel》上的解释是与虚拟地址相关,基于硬件MMU与软件内存管理的一个概念,具体可以看UTLK的第二章内存寻址,有很详细的解释。
但是工作中之前用到的MIPS架构的处理器的解释却有出入,在《MIPS体系架构透视》一书中,逻辑地址是跟MMU无关的,MIPS地址空间划分中,Kseg0 Kseg1地址空间与真实的物理地址存在一个偏移量,也就是存在线性关系,是一种“简单的无须转换翻译”的关系。
同一块内存被分别线性映射到这2个地址空间中,无论处理器有无MMU单元,上电这2个地址空间就是划分好的(2个地址空间区别在于是否默认开启缓存)。
对于MIPS处理器逻辑地址的划分肯定是由其内部逻辑电路来处理,不需MMU。
2 虚拟地址
虚拟地址做为程序员应该听说的最多,不管是在linux还是windows下编程,程序所操作地址都是虚拟地址。
虚拟地址是硬件MMU与软件内存管理结合的产物,方便更高效率的使用RAM。内存管理是篇大文章,这里就不聊细节了,具体可以看UTLK的内存寻址一章。

本文介绍了逻辑地址、虚拟地址、物理地址和总线地址的概念及其区别。逻辑地址在MIPS架构中与MMU无关,而在其他系统中与虚拟地址相关。虚拟地址是程序员日常使用的地址,由MMU处理。物理地址是处理器实际寻址的地址,用于内存和外设。总线地址则涵盖了所有设备的地址空间,可能等于物理地址,也可能因桥接电路如PCI总线导致映射关系不同。在不同的总线协议如I2C、SPI中,地址空间也各不相同。
最低0.47元/天 解锁文章
1904

被折叠的 条评论
为什么被折叠?



