PowerPC体系结构之存储管理_第1页
PowerPC体系结构之存储管理_第2页
PowerPC体系结构之存储管理_第3页
PowerPC体系结构之存储管理_第4页
PowerPC体系结构之存储管理_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PowerPC体系结构之存储管理取BOOKE精要,兼顾E500规范。E500规范是BOOKE的32-bit实现,更具体些,大部与BOOKE兼容。

BOOKE对存储管理的规范较抽象,没有非常多的细节(比如TLB每项的结构必须如此等等),涉及细节则多以E500为例子。

1.概述

E500实现有两级TLB,即:L1TLB和L2TLB。L1TLB可以理解为L2TLB的部分缓存。访问L1TLB的效率要比L2的效率高,相应的实现的花费也就高。L1TLB由硬件维护,不可编程精确控制。故下面的讨论皆针对L2TLB,为方便简称其为TLB。

E500没有对虚拟地址空间进行划分,即没有固定使用某段虚拟地址固定映射到某段物理地址(MIPS,重要用于支持设备资源的固定映射以及方便内核对内存的管理)。而是引入了一个更灵活的设计:将TLB分为TLB0和TLB1。

TLB0即用于页映射的TLB,可动态被替换,页大小固定为4KB。E500v1实现为2路组相联,256项;E500v2实现为4路组相联,512项。

TLB1则设计用于映射大页(比如16MB,256MB...),支持可变页大小,E500v1可支持9个页大小(最大256MB),E500v2则支持11个页大小(最大4GB)。使用时可将某项设为永驻TLB1(通过置InvalidationProtection位,简写为IPROT位),不会被动态替换,实现为全相联,共16项,可将其理解为用于映射16个段的可编程固定映射机制。

2.TLB结构与工作方式

2.1TLB结构

E500之TLB0与TLB1每项的数据格式相似,皆由页区分域、翻译域、访问控制域和存储属性位组成。

2.1.1页区分域

页区分域(PageIdentificaionFields)即为查找TLB时的比对域。涉及EPN(EffectivePageNumber),TS(TranslationAddressSpace,1bit),TID(TranslationID),V(Valid,1bit),SIZE(PageSize,4bits)。其中EPN即为虚页号。

PowerPC习惯上将地址转换时需要比对的位(IS/DS|PID|EPN)的组合,叫做一个地址空间。

其中IS/DS为Instruction/DataAddressSpace,各1bit,位于MSR,0为地址空间0,1则为地址空间1,转换时其于TLB_Entry之TS相比较,相等才会输出物理页号;

PID为ProcessID,本意是用于区分不同进程的虚拟地址空间,存放于PIDR中,属上下文。转换时,比较PIDR与TLB_Entry之TID位,相等才会输出物理页号。BOOKE规定需实现一个PID寄存器;E500作了扩展,其实现有3个PIDR(PID0~2),则E500在转换时会形成3个虚拟地址。

将TLB_Entry之TID置0,则硬件会忽略PID0~2与TID的比较,PowerPCLinux设计时,就将TID置0。

2.1.2翻译域

翻译域(TranslationField)即为经TLB翻译后输出的数据,其实即为物理页号,PowerPC叫RPN(RealPageNumber)

2.1.3访问控制域

访问控制域(AccessControlFields)又称为PERMIS,共6bits,分别指定该页可否被用户态读、写、可执行(UR,UW,UX);管理态(核心态)的读、写、可执行(SR,SW,SX)

2.1.4

存储属性位

存储属性位(StorageAttributeBits),其重要的5bits为:W(Writethrough),I(cachingInhibited),M(Memorycoherence),G(Guarded),E(Endianness),一般简写为WIMGE;

E500还实现有可用于系统软件的X0~1,可用于用户软件的U0~U3

此外E500之TLB1尚有一位无效保护位IPROT,置位则该项不会被置无效。

2.1.5完整的E500TLBEntry结构

2.2TLB工作方式

3.TLB控制接口

3.1

相关寄存器

3.1.1MAS0~4,MAS6,MAS7

MMUAssistRegisters,用于与TLBEntry之间的数据互换

MAS0,32bits,用于选择互换对象是TLB0

还是TLB1(TLBSEL),以及是TLB1的哪个Entry

或者TLB0的哪一路(ESEL):

MAS1,32bits,用于存放V,IPROT,TID,TS,TSIZE:

MAS2,32bits,用于存放EPN|X0|X1|W|I|M|G|E:

MAS3,32bits,用于存放RPN|U0-U3|UX|SX|UW|SW|UR|SR:

MAS4,32bits,用于加上TLBMiss的解决,存放默认的TLBSEL,

TIDSEL,

TSIZE,

X0,X1,WIMGE,当I/DTLBMiss出现时,硬件自动将MAS4中的值写到MAS0~2的相应域中:

MAS6,32bits,用于tlbsx查找TLB

时指定PID0(SPID0)和AS(SAS)

MAS7,32bits,E500v2实现,用于支持36bits物理地址,即其MAS7[60:63]用作RPN的高四位:

3.1.2MMUCSR0

MMUControlandStatusRegister0,用于控制TLB的批量无效。有2个有效位:位61和位62,其余保存为0。

MMUCSR0[61],置1则将TLB0的所有项置无效

MMUCSR0[62],置1则将TLB1的所有项置无效

3.1.3MMU配置状态寄存器

MMUCFG,TLB0CFG,TLB1CFG,皆为只读。

MMUCFG存放当前实现的PIDRegister的数目,PIDRegister中PID的有效位(e500为8),实现的TLB个数(e500为2,TLB0和TLB1)

TLB0CFG指示TLB0的特性,如:几路组相联(e500v1为2,e500v2为4),最小页大小和最大页大小(TLB0皆为4KB),是否支持IPROT位(TLB0不支持),是否支持可变页大小(TLB0不支持,则AVAL=0),有多少Entry

TLB1CFG指示TLB1的特性,数据域与

TLB0CFG同。

3.2相关指令

tlbsxRA,RBTLBSearchIndexed

tlbreTLBReadEntry

tlbweTLBWriteEntry

tlbivaxRA,RBTLBInvalidateVirtualAddressIndexed

tlbsyncTLBSync

3.3实例

3.3.1查找TLB

输入:MAS6,指定PID0(SPID0)和AS(SAS)

执行tlbsxRA,RB,在TLB中查找有效地址RA+RB

若命中,则将命中项之数据输出到:MAS0~MAS3,MAS1[V]=1,MAS0[TLBSEL]指定命中的是TLB0还是TLB1,MAS0[ESEL]指定命中项是TLB1的哪个Entry

或者TLB0的哪一路。

若没找到,则MAS1[V]=0,MAS2[RPN]为0

3.3.3写TLB

输入:MAS0~3(MAS7forE500v2)

执行

tlbwe

其据MAS0[TLBSEL]

MAS0[ESEL]

选择将被写的TLB入口(若为TLB0,还需借助EPN[45:51]用于索引组,ESEL用于路选),然后将MAS0~3(MAS7forE500v2)中的数据写入TLB。

3.3.4读TLB

输入:MAS0[TLBSEL],MAS0[ESEL],MAS2[EPN]

执行

tlbre

输出:MAS1~MAS3,若为E500v2且HID0[EN_MAS7_UPDATE]则将RPN的高4位置入

MAS7

3.3.2置无效某项

输入:无需借助MAS寄存器

执行tlbivaxRA+RB

EA=RA+RB,为虚拟地址

EA[32:51]用于匹配TLB项(组选+EPN匹配),其不进行PID和AS的比较,则若同一组内有相同的EPN,皆会将其置无效。

EA[60]用于选择操作的对象是TLB0还是TLB1,类似MAS0[TLBSEL]

EA[61]为1则置无效TLB0或TLB1的所有项

若HID1[ABE]=1则该无效操作亦广播给其它Core,置无效相应的项。

注意:TLB1之IPROT位为1可使匹配的项免于被置无效

4.TLB相关异常

InstructionTLBError

异常,由Instruction

TLBMiss

引起,用于从页表填充TLB

DataTLBError异常,由DataTLBMiss引起

InstructionStorage异常,由不允许的访问引起,如用户态读一个UR为0(用户态不可读)的页

DataStorage异常,亦由不允许的访问引起

5.Reset后TLB的状态

E500上电后,TLB0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论