为什么MIPS Architecture程序空间分为4个区域?

MCG*_*MCG 4 mips

MIPS arcitecture程序空间有kuseg,kseg0,kseg1和kseg2内存段.这种分裂背后有历史和逻辑上的原因吗?

mar*_*kgz 6

存储段的存在有逻辑上的原因:

  1. MIPS中的缓存需要通过引导代码进行初始化(不同于由硬件初始化的x86缓存).
  2. 嵌入式系统中的内存管理单元(MMU)是可选的,因此为内核保留显式物理内存区域并且用户模式代码无法访问它是很有用的.

以下是这些地区的用途:

  • KSEG1地址未缓存,不由MMU翻译.KSEG1是唯一可以在复位时使用的存储区域,因为MIPS CPU上的MMU和高速缓存必须由引导代码配置,引导代码必须放在KSEG1中.

  • KSEG0为缓存但未由MMU映射的内核提供地址区域.

  • KSEG2用于由MMU映射并缓存的内核模式代码.

  • KUSEG用于由MMU映射并缓存的用户模式代码.