In his blog “Turning on an ARM MMU” Andrew Murry listed the schemes: a memory manager would use in their combination form:
- Split the entire virtual range into pages and point them all to one same physical page. This is often used as zero-pages, and copy on write.
- Map multiple areas of physical memory into the same virtual area, but only one at a time.
- Don’t map the virtual address to anything, just use it. This is known as demand paging.
- Map the entire virtual address range to the entire physical address range.
Some references are mentioned in his blog. Those are good sources of ARM.
- ARM System Developer’s Guide, Elsevier, 2004, by A.N. Sloss, D. Symes, C. Wright – This book provides a very good introduction to the ARM archiecture from a software perspective. It includes information, with very good examples, on how to utilise things like exceptions, caches, MMUs, etc.
- ARM Architecture Reference Manual, ARM, ddi0100e, 2000 [Available online] – This reference manual provides the authoritative description of the ARM archiecture.
Then Andrew goes a further step to show us how to turn on a MMU in great detail.