ARM11 MPCORE 学习笔记

来源:互联网 发布:双目视觉避障算法选取 编辑:程序博客网 时间:2024/06/04 04:51

ARM11 MPCORE 学习笔记
1,支持16mb supersection,1MB section,64KB large page,4KB small page分页
2,asid怎么用
3,micorTLB 有8项,mainTLB有64项
4,页表中的访问权限比特ap和domain决定可否访问一个地址。
5,region attribute决定访问是coherent, cached, uncached, device,shared这几种中的那一种。

使能mmu前
1,建立合适的页表
2,disable invalidate I cache

还要设置TTB和domain access control register

关闭mmu前
1,先关data cache
对MMU开-关-开的过程,tlb的内容是保留的,所以你最好重开之前,invalidate所有的tlb
关MMU之前,FCSE PID置零。

Domain
ARM支持16domain,2-bit一个domain, DACR寄存器
client    要检查TLB表项
Manager

页表的Access permission
包括APX 和AP[1:0],还有S R比特(deprecated)的含义, 见table5-1 p218

例如APX=1    RO 模式

APX=0    AP=01   Privileged Access Only 模式

XN表示不能执行,在第一级和第二级的描述符中设置。

Region attributes
C比特 B比特 和TEX(TYPE EXTENSION)
Table5-3

cache属性中的inner和outer
inner是指最内层的cache,例如L1 CACHE。
OUTER是指最外层的cache,例如L2 CACHE.
如果有3层cache,中间那层属于inner还是outer是由implementation of a cache system 决定的。


CP15 Control reg BIT23 = 0  等于
subpage AP bits enabled  等于
Backwards-compatible page table translation

当mmu采用backwards-compatible模式时,页表格式为
figure5-3 5-4所示。

CP15 Control reg BIT23 = 1  等于 ARMv6的页表格式。

ARMv6的新特性:
支持nG,表明一个转换是global的还是process-specific的。如果是后者,在把这个转换插入TLB时,会加上当前ASID的信息,从contextID寄存器获得。CP15 c13
S BIT Non-shared or shared 只对normal memory region有效。device是否shared是由TEX C B 比特决定的。
XN bit
APX Access Permissions eXtesion 提供了extra 的权限

secion 和supersection的区别是由第一级描述符的bit18决定的。

I-CACHE VIPT. 对于cache大小是32kb 和 64kb的配置,4kb的页表会引起aliasing的问题。

TLB的表项中记录了ASID的信息,对TLB进行各种操作都能与asid进行比较。

FCSE ID    deprecated
contextID  ==  procID + ASID
threadId  

原创粉丝点击