




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PowerPCPowerPC 的的 MMUMMU 和和 TLBTLB 机制机制 1 11 1 基本原理基本原理 1 1 11 1 1 基本概念基本概念 在涉及虚拟存储系统时 需要搞明白以下这些地址的概念及相互之间的关系 逻辑地址 代码中使用 如数据载入和绝对指令跳转等使用的地址 如 LR 寄 存器中的地址等 本文中有效 EA 地址也就是逻辑地址 虚拟地址 虚拟地址在页转换中使用 为中间地址 逻辑地址转成虚拟地址后 再转成物理地址 虚拟地址的位数取决于处理器类型及型号 如 PPC440 中的 虚拟地址为 41 位 TLB Translation Lookaside Buffers 转换快表 简称快表 保存最近使用 的页转换地址映射表 一般由硬件实现 TLB 是内存里存放的页表的缓存 那 么它里边存放的数据实际上和内存页表区的数据是一致的 在内存的页表区里 每一条记录虚拟页面和物理页框对应关系的记录称之为一个页表条目 Entry 同样地在 TLB 里边也缓存了部分甚至全部的页表条目 Entry 物理地址 地址总线上使用的实际地址 传给 SDRAM 使用的地址 1 1 21 1 2 内存管理内存管理 内存管理主要是管理计算机主存 简单的来说 就是为程序提供内存分配和释 放的功能 内存管理分为三个层次 硬件 操作系统和应用程序 对大多数人 而言 都只会关注应用程序的内存管理 硬件内存管理 硬件的内存管理主要是需要关注 CPU 层 提供了什么样的硬件 机制来实现内存管理 如是否提供分页机制 分段机制以及 Cache MMU 等 操作系统内存管理 操作系统应该提供一个虚拟内存机制 为应用程序提供内 存分配回收等 实现交换等 应用程序内存管理 每个应用可能对当前可用内存未知 因此需要像系统提出 内存分配申请 一般如在 C 语言中使用 malloc 等申请堆空间 重定位 Relocation 代码的加载域和链接域不一致的情况下 加载程序需 要对代码进行重新定位 以便能够正确解析符号 1 1 31 1 3 MMUMMU 简介简介 MMU 的基本功能包括 1 将有效地址 effective address 转换成实际物理地址 real address 这也是 MMU 的最基本功能 地址转换分为 2 种类型 分别为指令地址转换和数 据地址转换 2 权限保护功能 如提供读写保护等 在 PPC 中还针对超级模式和普通用户 模式做了不同的权限区分 3 访问更大的虚拟空间 有效地址空间可以比实际物理内存大 这样可以实现 虚拟交换技术 便于运行大型的程序 基本原理就是不将程序的所有数据 指 令载入内存 只载入马上需要使用的 而暂时不用的可以交换到二级存储器 现代 MMU 通常都将虚拟地址空间划分成页 页大小为 2 的 n 次方 一般为几 k 字节 虚拟地址中的低 n 位为页内地址 在地址转换中保持不变 而高位 称作虚拟页号 Virtual Page Number MMU 最基本的功能就是将虚拟页号 转换成物理页号 MMU 首先在 TLB 缓存中查找待访问的指令或者数据地址 如 果 TLB 没有命中 将进入页表异常处理 1 1 41 1 4 地址转换模式地址转换模式 有 3 种地址转换模式 1 段页式地址转换 2 块地址转换 BAT 通常用于将逻辑地址映射到一块很大的连续的物理地 址 上 这样可以减少页表数量 提高转换效率 块地址只适用于部分 PPC 处 理器 如 MPC8247 8260 等 PPC440 没有块地址转换功能 3 实地址转换 也即平板映射模式 禁止地址转换 MSR IR 0 MSR DR 0 逻辑地址与物理地址相等 直接将逻辑地址送往地址总线 如果物理 内存较小 高位的逻辑地址可能被忽略 大多数嵌入式处理器不支持 MMU 或 者硬件支持 MMU 但操作系统不支持虚拟内存管理时 都只能采用平板映射 1 21 2 PPC440PPC440 MMUMMU 概述概述 PPC440 6 支持 4G 的有效地址空间 EA 及 64G 36bit 的 RA 实地址 空间 其 MMU 实现如下功能 EA 地址到 RA 地址的转换 可用软件来控制页表替换策略 页表级的指令和数据访问权限控制 页表级的存储属性控制 MMU 首先将有效地址 EA 扩展为虚拟地址 VA 然后利用页表转换功能将其转换 成 RA 物理地址 以此进行指令和数据的读取 PPC440 只支持页式内存管理 共支持 9 种页大小 分别为 1K 4K 16k 1G 而通常大多数处理器的页表大小为 4K 也有支持二级页表 4k 和 1m 的 当访问的地址无法通过 TLB 进行映射时 将触发 DATA 或者 Instruction TLB Exception 1 31 3 TLBTLB PPC440 的 TLB 为 64 路全相连的硬件结构 其控制地址转换 存取保护及存 储属性等 TLB 的维护由软件通过专门指令控制 相关指令如下 Tlbwe 写 TLB 表 通过连续三条指令可以从 GPR 和 MMUCR STID 中获取一条 TLB 表项写入到硬件中 Tlbre 三条连续指令可读取一条表项 Tlb 可以搜索特定的 TLB 表项 TLB 表项由以下四个部分组成 页识别域 地址转换域 访问权限控制域 存储属性控制域 一个表项又三个字组成 WORD1 0 21 位 EPN 有效页编号 大小可变 取决于当前页所采用的页大小 22 位 V 有效标识 只有当当前页表为有效时 才进行页表匹配查询 一上 电时所用页表无效 23 位 TS 转换的地址空间 是用户模式或者超级权限模式的数据 指令 24 27 SIZE 页大小 共支持 16 种大小 此处为当前页大小所代表的编号 32 39 TID 转换 ID 为 0 时为全局共享页表 否则为进程的 ID 号 此时 为私有页表 可加强安全控制 一般实现时 都为 0 全局共享 WORD2 0 21 位 RPN 实际的物理页编号 28 31 位 ERPN 扩展到实际页编号 和页编号及页内偏移等一起构成 36 位 实际物理地址 以支持 64GB 空间 在嵌入式平台上 一般未用 为 0 WORD3 包括是否缓存 cache 是 copyback 还是 write through 是否要求内存一致 性 大小端 用户模式和 supervisor 模式的读写执行权限等 1 41 4 页表识别页表识别 1 4 11 4 1 概述概述 一个页表是否识别成功取决于以下因素 Valid V Effective Page Number EPN Translation Space Identifier TS Page Size SIZE Translation ID TID 所有项匹配成功后才能进行地址转换和存取控制处理 当无法找到匹配的 TLB 时将产生 ITLB 或者 DTLB MISS EXCEPTION 1 4 21 4 2 虚拟地址的构造虚拟地址的构造 页表识别的第一步就是根据 EA 有效地址产生 VA 虚拟地址 虚拟地址为 41 位 构成如下 0 位 TS 地址空间域 1 8 位 TID 域 进程标识符 由 PID 寄存器提供 一般多数操作系统都未实 现 即默认为 0 9 40 位 即原来的 EA 地址 然后由此虚拟地址进行 TLB 匹配 1 4 31 4 3 地址空间地址空间 TS 将地址空间分成了两种 一种和中断处理及系统级的代码和数据关联 另一种是应用程序的代码和数据 用户模式的程序运行时 一般 MSR IS DS 为 1 只允许访问应用程序的代码及 数据地址空间 当进入中断时 MSR IS DS 自带清 0 因此可以利用系统级的 TLB TS 0 来访问中断处理相关的代码 1 4 41 4 4 TLBTLB 匹配过程匹配过程 根据虚拟地址的 TS TID EPN 等域进行相关 TLB 表项的匹配 匹配过程如 下 V 域为 1 当前 TLB 项有效 MSR IS DS 和 TLB 表项的 TS 域一致 TID 一致或者 TLB 表达 TID 为 0 全局共享 由表项的 SIZE 域根据公式 n 32 log2 page size in bytes 计算虚拟地 址中 EPN 的值 然后和 TLB 的 EPN 域进行匹配且匹配成功 注意 PPC 通常为大端模式 0 表示最高位 1 51 5 地址转换地址转换 TLB 匹配成功后 将提取 TLB 表的 RPN 和 ERPN 域 构成 RA 物理实际地址的 页编号部分 而页内偏移由 EA 的低地址部分提供 相关构成如下 RA ERPN0 3 RPN0 n 1 EAn 31 由于在嵌入式平台上 内存小于 4G 故 ERPN 为 0 地址转换的过程实际上就 是将 EPN 转换为 RPN 1 61 6 MMUMMU 异常处理异常处理 1 6 11 6 1 异常原因异常原因 TLB 是一个内存管理单元用于改进虚拟地址到物理地址转换速度的缓存 TLB 具有固定数目的 slots slots 包含了 page table 的入口 页表用于将虚拟 地址映射到物理地址 TLB 是典型的内容寻址的内存 其中用于搜索的键值是 虚拟地址 搜索结果是物理地址 如果 TLB 中包括请求的虚拟地址 硬件会很 快的产生一个与之匹配的物理地址 通过此物理地址可以对内存进行存取 如 果 TLB 中不包括请求的虚拟地址 那么就会产生页表异常 由软件进行相关处 理 OS 可进行软件搜索 得到对应的物理地址 也可以产生异常告警 当 CPU 执行机构收到应用程序发来的虚拟地址后 首先到 TLB 中查找相应的页 表数据 如果 TLB 中正好存放着所需的页表 则称为 TLB 命中 TLB Hit 如果当前页具备缓存属性则查看物理内存地址中的数据是不是已经在缓存里了 若没有则到内存中取相应地址所存放的数据 地址转换失败时将产生异常 原因有 1 TLB 异常 如果试图访问没有在 MMU 的 TLB 中映射的内存地址 会触发这 个异常 在支持虚拟内存的操作系统中 这一般会触发内存的页面倒换 系统 的 Exception Handler 会将所需要的内存页从虚拟内存中调入物理内存 并更 新相应的 TLB 表项 2 地址对齐异常 如果试图访问一个非对齐的地址 例如 lw sw 指令的地址 非 4 字节对齐 或 lh sh 的地址非 2 字节对齐 就会触发这个异常 一般地 操作系统在 Exception Handler 中对这个异常的处理 是分两次读取 写 入 这个地址 虽然一般的操作系统内核都处理了这个异常 最后能够完成期待的 操作 但是由于会引起用户态到内核态的切换 以及异常的退出 当这样非对 齐操作 较多时会严重影响程序的运行效率 因此 编译器在定义局部和全局变 量时 都会自动考虑到对齐的情况 而程序员在设计数据结构时 则需要对对 齐做特别的斟 酌 但并不是所有的处理器或者操作系统支持非对其访问的 3 访问冲突 TLB 命中 地址转换成功 但是当前处理器的模式的访问权限 和该页表的权限不符合 因此导致该异常 1 6 21 6 2 PPC440PPC440 的异常类型的异常类型 PPC440 相应的 MMU 异常中断入口如下 IVOR2 Data Storage 用户模式下访问内核模式才能访问的内存空间 或者数据访问的字节序与定义 的字节序不一致引发的异常 IVOR3 Instruction Storage 在用户模式访问内核模式下才能访问的内存空间 以及因为指令预取部件访问 的字节序与定义的字节序不一致时引发此异常 IVOR5 Alignment IVOR13 Data TLB Miss Error 当处理器取指时 如果访问指令的地址没有在 TLB 中命中时产生此异常 IVOR14 Instruction TLB Miss Error 当处理器取指时 如果访问指令的地址没有在 TLB 中命中时产生此异常 1 6 31 6 3 如何进行异常处理如何进行异常处理 异常处理机制保存有对应异常的状态信息 以此实现异常处理 PPC440 相关 异常处理的寄存器如下 Save Restore Registers SRR0 SRR1 Critical Save Restore Registers CSRR0 CSRR1 Data Exception Address Register DEAR 1 Data Exception Address Register DEAR DEAR 错误的虚拟地址 实际上 这个寄存器仅限于出现 TLB Miss storage 及 alignment 等异常的时候才能用到 发生错误的虚拟地址会放在这个寄存器 里 一般地 在设定 TLB 时 通常将 0 地址附近的一块 设定为无映射区域 这样 一旦编程时不慎访问了空指针 0 地址 或是空指针加上一定的偏移量 那 么 系统就会抛出一个 TLB Miss Exception 在这种情况下 发生错误的地址 会被记录在 DEAR 寄存器中 一般地 这个地址是一个非常接近于 0 的地址 往往地通过 DEAR 寄存器中的值 和相关数据结构的分析 就可以找出对应的 语句 当数据指针或者指令被非法篡改时也可能出现待访问的地址在 TLB 表中没有任 何映射 此时根据 DEAR 的值 查看相应的页表映射关系即可判断是否属于此 类错误 对于 alignment 异常 异常地址也会被保存在 DEAR 中 一般地
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 乐理考试题及答案bbf
- 矿工培训考试题及答案
- 押题宝典教师招聘之《小学教师招聘》考试题库带答案详解(能力提升)
- 口腔器械考试题及答案
- 考古专业考试题及答案
- 康复辅助技术咨询师岗位操作规程考核试卷及答案
- 钟表部件组件装配工三级安全教育(公司级)考核试卷及答案
- 旅客登机桥操作员新员工考核试卷及答案
- 乙腈装置操作工上岗考核试卷及答案
- 2025年中国电动绿篱剪数据监测研究报告
- 机械厂设备使用维护细则
- 康复辅助技术咨询师理论知识考核试卷及答案
- LNG安全教育培训课件
- 河北省琢名小渔名校联考2025-2026学年高三上学期开学调研检测英语试题(含答案)
- 人保新人考试题及答案
- 软件项目质量、进度、安全保障措施
- 老年专科考试题及答案
- 护理学基础:晨晚间护理
- 数字化知识培训内容课件
- 2025年河南省周口市辅警协警笔试笔试真题(含答案)
- 2025年吉林省机关事业单位工人技术等级考试(理论知识)历年参考题库含答案详解(5卷)
评论
0/150
提交评论