PowerPC体系结构之存储管理样本.docx
8页资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除PowerPC 体系结构之存储管理取 BOOKE精要 , 兼顾 E500 规范 E500 规范是 BOOKE的 32-bit 实现 , 更详细些 , 大部与 BOOKE兼容BOOKE对存储管理的规范较抽象 , 没有非常多的细节 ( 比如 TLB 每项的结构必须如此等等 ) , 涉及细节则多以 E500 为例子1. 概述E500 实现有两级 TLB, 即: L1 TLB 和 L2 TLB L1 TLB 能够理解为 L2 TLB 的部分缓存访问 L1 TLB 的效率要比 L2 的效率高 , 相应的实现的花费也就高L1 TLB 由硬件维护 , 不可编程精确控制故下面的讨论皆针对 L2 TLB, 为方便简称其为 TLBE500 没有对虚拟地址空间进行划分 , 即没有固定使用某段虚拟地址固定映射到某段物理地址 (MIPS, 主要用于支持设备资源的固定映射以及方便内核对内存的管理 ) 而是引入了一个更灵活的设计 : 将 TLB 分为 TLB0 和 TLB1TLB0 即用于页映射的 TLB, 可动态被替换 , 页大小固定为 4 KB E500v1 实现为 2 路组相联 , 256 项; E500v2 实现为 4 路组相联 , 512 项。
TLB1 则设计用于映射大页 ( 比如 16MB, 256MB...) , 支持可变页大小 , E500v1可支持 9 个页大小 ( 最大 256MB) , E500v2则支持 11个页大小 (最大4GB) 使用时可将某项设为永驻 TLB1 (经过置 InvalidationProtection位,简写为 IPROT 位) , 不会被动态替换 ,实现为全相联 , 共 16项 , 可将其理解为用于映射 16 个段的可编程固定映射机制资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除2. TLB 结构与工作方式2.1 TLB 结构E500 之 TLB0 与 TLB1 每项的数据格式相似 , 皆由页区分域、 翻译域、 访问控制域和存储属性位组成2.1.1 页区分域页区分域 (Page Identificaion Fields) 即为查找 TLB 时的比对域包括 EPN(Effective Page Number), TS (Translation Address Space, 1 bit), TID(Translation ID), V (Valid, 1 bit), SIZE (Page Size, 4 bits) 。
其中 EPN即为虚页号PowerPC 习惯上将地址转换时需要比正确位 (IS/DS | PID | EPN) 的组合 , 叫做一个地址空间其中 IS/DS 为 Instruction/Data Address Space, 各 1 bit, 位于 MSR, 0 为地址空间 0, 1 则为地址空间 1, 转换时其于 TLB_Entry 之 TS 相比较 , 相等才会输出物理页号 ;PID 为 Process ID, 本意是用于区分不同进程的虚拟地址空间中 , 属上下文转换时 , 比较 PIDR 与 TLB_Entry 之 TID 位,理页号 BOOKE规定需实现一个 PID 寄存器 ; E500 作了扩展 ,, 存放于 PIDR相等才会输出物其实现有 3 个PIDR (PID0 ~ 2), 则 E500 在转换时会形成 3 个虚拟地址资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除将 TLB_Entry 之 TID 置 0, 则硬件会忽略 PID0 ~ 2 与 TID 的比较 , PowerPC Linux 设计时 , 就将 TID 置 0 2.1.2 翻译域翻译域 (Translation Field) 即为经 TLB 翻译后输出的数据 , 其实即为物理页号 , PowerPC 叫 RPN (Real Page Number)2.1.3 访问控制域访问控制域 (Access Control Fields) 又称为 PERMIS, 共 6 bits, 分别指定该页可否被用户态读、 写、可执行 (UR, UW,UX); 管理态 ( 核心态 ) 的读、 写、可执行 (SR, SW, SX)2.1.4 存储属性位存储属性位 (Storage Attribute Bits) , 其重要的 5 bits 为 : W (Writethrough), I (caching Inhibited), M (Memory coherence), G (Guarded), E (Endianness), 一般简写为 WIMGE;E500 还实现有可用于系统软件的 X0~1, 可用于用户软件的 U0 ~ U3另外 E500 之 TLB1 还有一位无效保护位 IPROT, 置位则该项不会被置无效。
资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除2.1.5 完整的 E500 TLB Entry 结构2.2 TLB 工作方式资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除3. TLB 控制接口3.1 相关寄存器3.1.1 MAS0 ~ 4, MAS6, MAS7MMU Assist Registers, 用于与 TLB Entry 之间的数据交换资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除MAS0, 32 bits, 用于选择交换对象是 TLB0 还是 TLB1 (TLBSEL), 以及是TLB1 的哪个 Entry 或者 TLB0 的哪一路 (ESEL):MAS1, 32 bits, 用于存放 V, IPROT, TID, TS, TSIZE:MAS2, 32 bits, 用于存放 EPN | X0 | X1 | W | I | M | G | E:MAS3, 32 bits, 用于存放 RPN | U0 - U3 | UX | SX | UW | SW | UR |SR:。

卡西欧5800p使用说明书资料.ppt
锂金属电池界面稳定化-全面剖析.docx
SG3525斩控式单相交流调压电路设计要点.doc
话剧《枕头人》剧本.docx
重视家风建设全面从严治党治家应成为领导干部必修课PPT模板.pptx
黄渤海区拖网渔具综合调查分析.docx
2024年一级造价工程师考试《建设工程技术与计量(交通运输工程)-公路篇》真题及答案.docx
【课件】Unit+3+Reading+and+Thinking公开课课件人教版(2019)必修第一册.pptx
嵌入式软件开发流程566841551.doc
生命密码PPT课件.ppt
爱与责任-师德之魂.ppt
制冷空调装置自动控制技术讲义.ppt


