存储管理结构 mips 代码分析 linux,MIPS 存储管理结构及代码分析.pdf

本文详细介绍了MIPS处理器的32位和64位虚拟地址空间的划分,包括kuseg、kseg0、kseg1和kseg2等区域的用途和特性。在32位模式下,用户空间为2G,内核空间可有2G。在64位模式下,虚拟地址空间更为复杂,分为xuseg、xsseg、xkphys和xkseg四个部分。此外,文章还提及了MIPS规范对内存管理和Linux代码的影响。
摘要由CSDN通过智能技术生成

MIPS MM arch 1

MIPS 存储管理结构

及Linux代码分析

CurrentVersion: 0.1

Date: 2008-03-23

Author: J ack Tan

Author: J ack 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

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

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

MIPS MM arch 5

1.1.2 64 位虚拟地址空

MIPS64 时,虚拟地址空 划分有些复杂。MIPS64 规范将 64 位地址空 划分为 4 段,

分别为 xuseg, xsseg, xkphys, xkseg。其中为了保持与 MIPS32 的兼容,xkseg 最顶

端的 2G 对应于 MIP

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值