MIPS 存储管理结构及代码分析.pdfVIP

  • 27
  • 0
  • 约7.24万字
  • 约 54页
  • 2017-06-07 发布于湖北
  • 举报
MIPS MM arch 1 MIPS 存储管理结构 及Linux代码分析 CurrentVersion: 0.1 Date: 2008-03-23 Author: J ack Tan jack.tan@ Author: J ack Tan jack.tan@ MIPS MM arch 2 版本历史 版本状态 作 者 参与者 起止日期 备注 0.1 Jack Tan 08­03­23 初始化 0.2 Jack Tan 08­08­ 17 完成框架 0.3 Jack Tan 08­09­24 完成草稿 Author: J ack Tan jack.tan@ MIPS MM arch 3 1. MIPS 存储管理概述 1.1 虚拟地址空 与 x86, ARM, PowerPC 以及 SPARC 不同,MIPS 在体系结构的规范里,对虚拟地址 空 进行了划分。MIPS32 和 MIPS64 分别对 32 位和 64 位的情形进行了规定,要留意 的是 MIPS64 的划分兼容于 MIPS32,即当 MIPS64 的处理器运行于 32 位模式时,其 虚拟地址空 的划分“看上去”是和 32 位的一样的。 1.1.1 32 位虚拟地址空 Figure 1.1: 32 bit Virtual Address Space 其中,kuseg 给用户态程序使用,访问这个区域,虚拟地址会经 TLB 转换 (Mappe ) 同 时被访问之数据可被缓存于 cache (Cache ) kseg0, kseg1 给操作系统使用,访问这两个区域,虚拟地址都不会经 TLB 转换,其皆固 定映射到物理地址 0x0000 0000 ~ 0x 1FFF FFFF (低 512MB)处。他们的差别在于: Author: J ack Tan jack.tan@ MIPS MM arch 4 访问 kseg1 的数据不会缓存到 cache 中 (Uncache ),这个区域往往用于 I/O (如对设 备寄存器的读写)。 kseg2 亦是给操作系统使用,这个区域既经 TLB 映射、数据亦能被缓存于 cache 用户态程序不能访问 kseg0, kseg1, kseg2,否则会引发 A ress Error 异常。 因此,很自然的,用户空 和内核空 的划分不会是由 OS 设计为 3G + 1G 。OS 的设计 需要符合 MIPS 规范的约定,则用户空 为 2G ,而内核空 可以有 2G 。 Author: J ack Tan jack.tan@ MIPS MM arch 5 1.1.2 64 位虚拟地址空 MIPS64 时,虚拟地址空 划分有些复杂。MIPS64 规范将 64 位地址空 划分为 4 段, 分别为 xuseg, xsseg, xkphys, xkseg。其中为了保持与 MIPS32 的兼容,xkseg 最顶 端的 2G 对应于 MIPS32

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档