【方辉专栏】ARM64体系结构编程与实践学习笔记(八) ARM64内存管理

1. Arm64内存管理组成

Arm64处理器内核的内存管理单元(Memory Management Unit,MMU)包括转换旁路缓冲(Translation Lookaside Buffer, TLB)和表遍历单元(Table Walk Unit, TWU)。

MMU的工作职责是把输入的虚拟地址翻译成对应的物理地址及相应的页表属性和内存访问权限等信息。

TWU负责完成查表过程,TLB用于缓存页表转换的结果,从而缩短页表查询的时间。

 进程空间又分为内核空间(kernel space)和用户空间(user space),无论是内核空间还是用户空间都可以通过处理器提供的页表机制映射到实际的物理地址。

在对称多系统(Symmetric Multi-Processor,SMP)中,每个处理器内核内置了MMU和TLB硬件单元。例如,CPU0和CPU1共享物理内存,也共享同一份页表,当一个CPU更改了页表项时,需要使用BBM(Break Before Make)机制来保证其他CPU能访问正确和有效的TLB。

 2. AArch64页表机制

在AArch64体系结构中,以48位地址总线位宽为例,虚拟地址(VA)被划分为两个空间,每个空间最多支持256TB.

低位地址空间0x0000 0000 0000 0000 – 0x0000 FFFF FFFF FFFF;
高位地址空间0xFFFF 0000 0000 0000 – 0xFFFF FFFF FFFF FFFF;
在AArch64体系结构中的页表支持如下特性:

最多可以支持4级页表。
输入地址的更大有效位宽为48位。
输出地址的更大有效位宽为48位。
翻译的页面粒度可以是4KB、16KB或64KB。

 处理器查询页表的过程如下:

根据VA[63]选择TTBR0/1;当VA[63]=0选择TTBR0,否则选择TTBR1;
VA[47:39]作为L0索引,L0页表有512个页表项。
VA[38:30]作为L1索引,L1页表有512个页表项。
VA[29:21]作为L2索引,L2页表有512个页表项。
VA[20:12]作为L3索引,L3页表有512个页表项。
L3页表项存放4K页面物理基地址,再加上VA[11:0]构成全部物理地址。

相关软件
Logo
ARM DS5 开发套件
ARM DS5 开发套件是端到端的基于Arm核的嵌入式C/C++的软件开发套件。开发套件包括Arm编译器、DS5调试器、Streamline性能分析、固定虚拟平台及Eclipse集成开发环境。使用 DS-5,可以轻松地为基于 arm 处理器的平台开发 Linux 应用程序。它降低了学习难度,缩短了开发和测试周期,帮助您快速生成可靠的应用程序。 经济实惠的专业解决方案,适用于以 C/C++ 开发 Linux 和 Android 应用程序和库的开发人员。它利用诸如以太网和 USB 等标准连接进行应用程序调试和系统性能分析。适用于基于 Linux 的系统的端对端软件开发工具。此外还提供裸机和内核级别的调试与跟踪功能。也包含了ARM唯一和处理器联合开发的商用编译器,提供强大完善的技术支持。
2,980浏览  |  厂商已入驻提供最新报价
相关厂商
logo
上海亿道电子技术有限公司
1.2w浏览
亿道电子技术有限公司 亿道电子技术有限公司是国内资深的研发工具软件提供商,公司成立于2002年,面向中国广大的制造业客户提供研发、设计、管理过程中使用的各种软件开发工具,致力于帮助客户提高研发管理效率、缩短产品设计周期,提升产品可靠性。 20多年来,亿道电子已经与全球多家知名企业,包括ARM、ARM、Altium、Ansys、Qt、GreenHills、Perforce、Minitab、EPlan、QA Systems、 OpenText、Visu-IT、 PLS、 Ashling、 HEXAGON、IncrediBuild、 Adobe、 BETA等建立了稳固的战略合作伙伴关系,并作为他们在中国区的主要分销合作伙伴服务了数千家本土客户,为客户提供芯片级开发工具、EDA设计工具、软件编译以及测试工具、结构设计工具、仿真工具、电气设计工具、以及嵌入式GUI工具等软件工具。亿道电子凭借多年的经验积累,真正的帮助客户实现了让研发更简单、更可靠、更高效的目标。...
 
相关阅读
返回顶部