Memory Management Unit Module


Role in the System

This module implements the memory management unit. The files associated with this module are: The purpose of such a module is to control the use of system memory and to calculate virtual addresses into physical addresses. Any errors or faults must be detected and either an interrupt or an exception must occur. Memory is divided into two segments: From the point of view of user programs, memory "exists" in an abstract form from 0 to max. However, in reality, the operating system may contain the program physically over a large expansive range which is not necessarily contiguous. The memory management unit must ensure that the mapping from virtual to physical is done both correctly and optimally (ie space is not wasted unnecessarily). The files translate.h and translate.cc manage the actual calculation from virtual to physical addresses. Two regimes could potentially be in place to accomplish this; page table or a translation lookaside buffer (user chooses which is in place). The routine "Machine.Translate(...)" implements the calculation and defines possible errors. Finally, machine.h and machine.cc simulates the execution of the user program one instruction at a time, which is internal to the system emulation. These files contain the calls to the routines to check that the translation was indeed successful.

Uses Relation


UP ONE LEVEL

BACK TO MAIN

INDEX OF FILE NAMES

INDEX OF MODULE NAMES