Shared Virtual-Memory Objects for ARM64
- Typ der Arbeit: Bachelorarbeit
- Status der Arbeit: laufend
- Projekte: ParPerOS
- Betreuer: Alexander Halbuer, Daniel Lohmann
- Bearbeiter: Philipp Bischoff

Both most popular microarchitectures fighting in the forest of page-table trees. [Generated with AI]
Context
Intel's x86 architecture dominated the computing market for several decades after its initial introduction in 1978. Even today, its most recent incarnation - known as x86-64 or AMD64 - has a predominant market share, especially in the server and desktop segment.
However, the ARM architecture has been steadily growing, with a near 100% market share in the smartphone market and an increasing presence in other markets. Therefore, software designers should broaden their focus and start developing cross-platform solutions that can efficiently operate across diverse architectures.
Problem
With Morsels, we introduced a novel memory-management paradigm that shifts from the management of individual pages to larger virtual-memory objects, technically represented as subtrees of the page-table hierarchy. This reduces management overhead and enables very fast transfer between address spaces. The downside of building memory primitives directly on hardware data structures is, that the implementation must be adapted for every architecture. While the implementation is hardware specific, we argue that the concept can be applied to any architecture with multi-level paging support, which should be the majority of current platforms.
Goal
The thesis should support the previously made claim by showing the applicability of the concept to the AArch64 architecture, also known as ARM64. This includes porting the existing x86 implementation to ARM and proving its functionality on various ARM-based platforms like a Raspberry Pi, an Apple M1 or a Neoverse Server.
Beyond proving the claim, this thesis also lays the foundation for the exploration of different page sizes in conjunction with the Morsel concept and creates a basis for investigating the use in heterogeneous systems featuring x86 and ARM cores altogether.
Schedule
The thesis will follow these key steps:
- Getting started: Familiarize with kernel development, set up a suitable development environment, and establish a functional test setup.
- Implementation: Port the existing implementation to ARM.
- Evaluation: Validate the functionality and performance characteristics.
- Extension: Test the morsel concept with page sizes different from 4 KiB (depends on time and effort required for porting the implementation).
Topics: Virtual memory, paging, Linux kernel, ARM, C
References
Web Links
- Intel Manual (AMD64 page tables on page 5-20 Vol. 3A)
- ARM manual (ARM64 page table formats in sec. D8.3)
Publications
