mips 内存空间

32位MIPS架构拥有4GB虚拟地址空间,分为kuseg、kseg0、kseg1和kseg2/kseg3四个区域。kuseg为用户地址空间,通过MMU映射到物理地址。kseg0和kseg1是内核地址空间,kseg0访问使用缓存,kseg1不使用缓存,常用于初始化阶段。kseg2和kseg3(有时分开)仅在内核模式下访问,需MMU转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 32位mips总共能询址2的32次方即4G的空间。即0x00000000~0xffffffff.  0x00000000~0xffffffff的这个线性空间叫做虚拟地址(virtual address,以下称va).  va地址并不是实际的物理地址(physical address,以下称pa).  整个va地址空间被分成四个大的区域。  0x00000000~0x7fffffff这个区域kuseg被用着用户地址空间。这个地址空间是应用程序的角度所能看到的程序地址空间              在有MMU内存管理单元的机器中,这个空间的地址总是要经过MMU的转换被映射到相应的              物理地址。这个空间通常被称着useg  0x80000000~0x9fffffff这个区域kseg0被用着内核地址空间,这部分地址空间通常通过缓存进行访问,因此在cache             被初始化之前是不应该访问这部分地址空间的。这部分空间被映射在物理地址空间的最低250MB             空间。va到pa的转换是通过将地址的最高位去掉,由于这个转换过程很简单,所以通常认为这个             过程未经过转换。  0xa0000000~0xbfffffff这个区域kseg1也被用着内核地址空间,同样被映射在物理地址空间地址的最低250MB空间,但这次不是             通过cache访问。这是唯一一块在系统重置后能够正常使用的地址区域。这就是为什么重置之后起             始指针0xbfc00000位于这个地址范围,它所对应的物理地址是0x1fc00000。你可以用这个区域来             访问你的初始化ROM程序,大多数人用着I/O寄存器。  0xc0000000~0xffffffff这个区域kseg只能在内核模式下访问,也要通过MMU进行转换,所以在MMU未被初始化之前不应该访问这个             地址空间。有些时候这个区域被分成两个部分kseg2和kseg3,低区域kseg2只能在超级模式下才能被访问。               
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值