mips - 为什么在MIPS Architecture计划中将Space划分为4个区域?

标签 mips

MIPS建筑程序空间具有kuseg,kseg0,kseg1和kseg2存储段。
这种 split 背后是否有任何历史和逻辑上的原因?

最佳答案

存在内存段的逻辑原因是:

  • MIPS中的缓存需要通过启动代码进行初始化(与x86缓存(由硬件初始化)不同)。
  • 嵌入式系统中的内存管理单元(MMU)是可选的,因此为内核保留明确的物理内存区域,并且不能被用户模式代码访问非常有用。

  • 这是区域的用途:
  • KSEG1地址未缓存,并且MMU不对其进行转换。 KSEG1是唯一可以在复位时使用的内存区域,因为MIPS和MIPS CPU上的缓存必须由引导代码进行配置,引导代码必须放置在KSEG1中。
  • KSEG0为已缓存但未由MMU映射的内核提供一个地址区域。
  • KSEG2用于MMU映射并缓存的内核模式代码。
  • KUSEG用于MMU映射并缓存的用户模式代码。
  • 关于mips - 为什么在MIPS Architecture计划中将Space划分为4个区域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7747265/

    相关文章:

    c++ - MIPS 模拟器 --- 将指令读入内存 (C++)

    java - 使用高级编程语言的简化 MIPS CPU

    string - 在 MIPS 程序集中反转字符串

    function - 传递参数 : MIPS

    linux - 从 proc 转储 CPU 寄存器

    gcc - GNU 汇编程序指令的文档

    linux - 在程序集 ci20 段错误中提示用户输入

    compiler-construction - MIPS 编译器局部变量

    constants - 在 MIPS 中移动符号扩展常量

    assembly - 指定 MARS 输入文件