文章目录1、Memory attribute2、cache的一些基本概念3、Cache内存访问的模型:4、MMU的介绍5、VMSA 相关术语:6、address translation system (AT)(1)、地址翻译的过程(2)、和mmu相关的System registers(3)、Enable mmu and endianness的相关寄存器(4)、Address size configuration(5)、granule sizes(6)、granule size...
ID_AA64MMFR0_EL1.PARange : Physical address size : 读取arm寄存器,得到当前系统支持的有效物理地址是多少位 TCR_EL1.IPS : Output address size : 告诉mmu,你需要给我输出多少位的物理地址 TCR_EL1.T0SZ和TCR_EL1.T1SZ : Input address size : 告诉mmu,我输入的是多少有效位的虚拟地址 3、Translation...
X8, X16-X18, X29, X30这些都是特殊用途的寄存器– X8: 用于返回结果– X16、X17 :进程内临时寄存器– X18 :resrved for ABI– X29 :FP(frame pointer register)– X30 :LR 2、特殊寄存器: 部分寄存器还可以当作32位的使用 sp(Stack pointer) EL1t: t表示选择SP_EL0EL1h:h表示选择SP_ELx(x>0) PC...
MMU的地址翻译工作是一种自动行为,当填好页表、配置好系统寄存器之后,cpu发起的虚拟地址读写操作,将会经过MMU自动转换成物理地址,然后发送到AXI总线上完成真正的内存或device的读写操作. 如下列举了ARM在不同exception level中的地址翻译的模型. 在一般的情况下,我们是不会启用stage2的,除非enable了EL2、实现了hypervi...
TTBRn_ELx(n=1,2、x>0):地址翻译基地址寄存器 MAIR_ELx(x>0) :内存属性寄存器 PAR_EL1:物理地址寄存器, 当使用指令操作MMU进行VA到PA的转换时,物理地址由PAR_EL1输出. SCR_EL3 :安全配置寄存器 SCTLR_ELx(x>0):系统控制寄存器 TCR_ELx(x>0):地址翻译控制寄存器 ...
ID_AA64MMFR0_EL1.PARange : Physical address size : 读取arm寄存器,得到当前系统支持的有效物理地址是多少位 TCR_EL1.IPS : Output address size : 告诉mmu,你需要给我输出多少位的物理地址 TCR_EL1.T0SZ和TCR_EL1.T1SZ : Input address size : 告诉mmu,我输入的是多少有效位的虚拟地址 ...
armv8 架构的 mmu attrindx与mematter armv8.4,ARMv8指令集介绍A64指令集只能运行在aarch64所有A64汇编都是32bits宽的关注指令的使用、有什么limitationA64能访问的地址数据是64位宽的A64支持全部的大写或者小写方式ARM官方大写应用使用小写寄存器命名Wn表示32bits宽的寄存
当ARM Core要访问外设时,典型的是访问寄存器,寄存器的物理地址要映射到程序所在的虚拟地址空间当中,也就是建立Translation tables,以供后续的MMU查找TLB entry。 当系统当中存在hypervisor时,MMU的作用仍然没有改变。会额外提供二阶地址转换。即Virtual Address先映射到Intermediate Physical Address,VA到IPA,此时MMU的映射...
页表的基地址存放在TTBRx_ELx寄存器中,类似于X86中的CR3寄存器 二 分页级别和大小 1. ARMV8 最大支持4 level分页,大小为4KB,16KB 2 ARMV8 支持block分页,支持1G 2M等分页,根据页表的最后两位判断当前属于block还是页表entry 三cahche 配置 1 cache 框架 2 cache的配置,在页表的PTE bit2到bit4 中,代表index...