【华为云技术分享】ARMv8-A存储模型概述(1)

上两期中我们介绍了处理器存储模型的一般概念,这一期我们将介绍ARMv8-A架构中的地址转换系统。

一、VMSAv8-64地址转换系统

虚拟内存系统架构(Virtual MemorySystem Architecture, VMSA)提供了管理单元(MemoryManagement Unit, MMU),MMU控制了处理器的地址转换、访存控制,决定并检查与访存地址相关的内存属性(memory attribute,可理解为地址对应的内存域的性质,例如该内存域的数据一致性需要满足什么要求等)。VMSAv8-64是ARMv8架构的处理器在AArch64执行状态下的虚拟内存系统架构。一般来说,MMU的输入是包含访存虚拟地址在内的访存请求,而输出的是用于访问物理存储空间的地址和与该地址相关的内存性质。有时在地址转换过程中会发生异常,这些异常会导致地址转换失败,它们被称为MMU错误。

VMSAv8-64地址转换系统中有三种地址类型,分别是虚拟地址,中间地址和物理地址。指令使用的地址是虚拟地址,包含指令地址和数据地址。这就意味着在PC、LR、ELR和SP等寄存器中的地址是虚拟地址。

在AArch64执行状态下,虚拟地址有48bit,从0x0000_0000_0000_0000到0x0000_FFFF_FFFF_FFFF,因而可以访问256TB的虚拟地址空间。对于EL1和EL0中的转换过程,虚拟地址范围可以被分为两个部分:0x0000_0000_0000_0000到0x0000_FFFF_FFFF_FFFF和0xFFFF_0000_0000_0000到0xFFFF_FFFF_FFFF_FFFF,两部分都为256TB。这两部分中,一个部分用TTBR0_EL1寄存器所指向的转换表进行地址转换;另一部分使用TTBR1_EL1寄存器所指向的转换表进行地址转换。在软件中,通常一个部分用于用户空间,另一个部分用于内核空间。

中间地址是两阶段地址转换中第一阶段的输出地址和第二

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值