PowerPC PPC460-S MMU(五 Storage Control Registers)
来源:互联网 发布:linux acl mask 编辑:程序博客网 时间:2024/05/22 15:42
- Overview
- MMUCR
- SWOA
- U1TE
- U2SWOAE
- DULXE
- IULXE
- STS
- STID
- PIDProcess ID
- MMUCR
- Overview
Overview
本文主要介绍PPC460s内存管理相关的控制寄存器MMUCR和PID。
当然,除了本文两个控制寄存器外,在MSR[IS,DS]也会定义相关的控制,以及MSR[PR]也控制
着访问模式。
MMUCR
MMUCR的读写操作指令为基于GPR的 ‘mtspr’指令。
寄存器图示如下:
其中,有一点需要注意:
STID虽然是Search Translation ID(对于TLB搜索指令tlbsx定义的TID域值),但是调用TLB的
读取指令tlbre时,STID值会更新为当前读取的TLB Entry的TID值;同样地,当调用TLB的更新
指令tlbwe时,TLB Entry的TID值会更新为STID值(也即TLB Entry更新指令中TID并不会根据
GPR的值来更新,而是根据MMUCR中的STID值更新)
SWOA
Store Without Allocate Control:
这个属性控制对于可Cache的缺页(数据丢失)是否要在Data Cache中重新分配Cache Line.
当U2SWOAE = 1时(“访问不需要重配”已使能),此项配置忽略。
U1TE
U1 Transient Enable Control:
此处的U1也就是上文(四)中介绍的用户自定义的Storage Attribute之一,此属性用来控制使能(1)
或禁能(0)瞬态存储Transient Storage.
U2SWOAE
U2 Store without allocate Enable:
使能或禁能不重配Cache Line;
DULXE
Data Cache Unlock Exception Enable:
这个控制属性用于使能或禁能在用户模式下执行dcbf指令是否引发缓存上锁中异常类型的数据存储中断;
由于dcbf指令会使在Data Cache中的相关Cache Line 冲刷掉(Flushed),而在用户模式下时调用
了这个指令,可能某个Application会移除一个已经上锁的Cache Line。使能这个属性后,对于PPC460S
内核,不管目标CacheLine是否上锁,上锁中异常都会发生,然后由数据存储中断处理程序来决定应用程
序是否可以解锁此CacheLine;
注意:如果此位未使能(0),或者在管理员模式下执行了dcbf指令,那么指令执行后会冲刷目标Cache
Line(无论是否已经上锁)。
IULXE
Instruction Cache Unlock Exception Enable:
控制属性原理同上(数据Cache的解锁异常使能),只是针对的指令为icbi指令(冲刷的是指令Cache)
STS
Search Translation Space:
属性控制用于TLB搜索指令tlbsx所搜寻的地址空间(数据空间或指令空间)
注意:
在TLB Entry的定义中TS位需要与MSR中的IS以及DS位保持一致。
(即指令空间的定义要与IS保持一致,数据空间要与DS保持一致)
而对于tlbsx指令来说,通过配置MMUCR(STS)来主动决定搜寻空间。
STID
Search Translation ID:
属性主要用来在TLB搜索指令tlbsx执行时,通过STID与TLB Entry定义中的TID域进行比较以
加快搜索。
注意:
对于指令取指、数据存储以及缓存管理中,TLB Entry中定义的TID主要与PID
寄存器来比较,但是对于搜索来说,就可以与MMUCR中的STID来比较。
PID(Process ID)
32位的PID寄存器只有低8位有效。
8位的有效位作为虚拟地址的一部分,用来和TLB Entry定义中的TID域进行比较,进而确定当前的Entry
是否与对应的虚拟地址匹配(当然如果TID域定义为0了,则PID值就会忽略,不再参与比较,因为当前
定义的TLB Entry为全局共享的)
PID寄存器的操作指令也是基于GPR的mtspr指令。
- PowerPC PPC460-S MMU(五 Storage Control Registers)
- PowerPC PPC460-S MMU(四 Storage Attribute)
- PowerPC PPC460-S MMU(三 Access Control)
- PowerPC PPC460-S MMU
- PowerPC PPC460-S MMU(二)
- PowerPC PPC460-S MMU(六 Shadow TLB)
- PowerPC的MMU初始化
- PowerPC MMU机制读书笔记
- Intel 64 and IA-32 Control Registers
- PowerPC的MMU和TLB机制
- PowerPC的MMU机制(一)
- PowerPC的MMU机制(二)
- PowerPC的MMU机制(三)
- 五. MMU 之 IPvirtual
- x86/x86_64 CPU控制寄存器(Control Registers)
- Cortex-M System Control Block Registers 找不到文档??
- linux's coredump storage
- PowerPC
- ios根据日期获取年月日分秒及常用操作(问题)
- Java/Android倒计时(开始,暂停,恢复,停止)
- Android Viewpager中Fragment可见的标志
- Unity3D性能优化之角色建模
- UCGUN WM API 函数
- PowerPC PPC460-S MMU(五 Storage Control Registers)
- 1093. Count PAT's (25)
- 访问量和在线人数统计
- SAP router installation for Linux
- linux技术交流
- 算法竞赛入门经典:第十章 数学概念与方法 10.1除法表达式
- 链表的基本操作
- 指针和const
- android内存泄漏检测StrictMode和MAT工具使用