Constructs a new instance from the given references of the RAM, Page Table Pointer (PTP) register, the ALU and the EFLAGS register.
A reference to the main memory of this computer system.
A reference to the Page Table Pointer of the CPU core, this MMU is associated with.
A reference to the ALU of the CPU core, this MMU is associated with.
A reference to the EFLAGS register of the CPU core, this MMU is associated with.
Static
Readonly
ACCESSABLE_This class member stores the index of the flag bit, which indicates whether a page frame can be accessed only on kernel mode.
Static
Readonly
CHANGED_This class member stores the index of the changed flag bit.
Static
Readonly
EXECUTABLE_This class member stores the index of the executable flag bit.
Static
Readonly
NUMBER_This class member stores the number of bits used for the offset in pages and page frames.
Static
Readonly
NUMBER_This class member stores the number of bits representing the page number. The page number can be extracted from a virtual memory address by removing the offset bits from the right.
Static
Readonly
NUMBER_This class member stores the number of bits representing the page frame number. The page frame number can be extracted from a phyiscal memory address by removing the offset bits from the right.
Static
Readonly
NUMBER_This class member stores the number of bits used for the page table entries flag bits.
Static
Readonly
PINNED_This class member stores the index of the pinned flag bit.
Static
Readonly
PRESENT_This class member stores the index of the present flag bit.
Static
Readonly
WRITABLE_This class member stores the index of the writable flag bit.
This method clears all bits at the specified locations, depending on the given number of bytes.
The virtual address to clear all bits at.
The number of bytes to clear, starting at the given physical address.
This method disables memory virtualization.
This method enables memory virtualization.
This method tries to read a byte from the specified memory address. Returns a binary zero for address not conatined in the map in order to simulate a full size memory.
A binary value representing a virtual memory address to write the data to.
The byte of data found at the specified address.
This method reads doubleword sized data from the main memory starting at the specified physical memory address.
A binary virtual memory address to read the doubleword-sized data from.
Whether the reading process attempts to execute the content to read.
Doubleword-sized binary data.
This method writes a specified byte of data to the specified address in in the main memory. Throws an error, if the data exeeds a byte.
A binary value representing a virtual memory address to write the data to.
Byte-sized data to write to the specified pyhsical memory address.
This methods writes a doubleword (4-byte) value to memory to the specified memory address.
Doubleword-sized data to write.
This class represents a Memory Management Unit (MMU). This specialized execution unit is responsible for translating virtual memory addresses into physical memory addresses.
Author
Erik Burmester erik.burmester@nextbeam.net