15.1 Memory Is Shared, Not Owned

<< Click to Display Table of Contents >>

Navigation:  ASA-EMulatR Reference Guide > Introduction > Architecture Overview > Chapter 15 – Memory System Implementation Details >

15.1 Memory Is Shared, Not Owned

EMulatR implements a single shared physical address space, called GuestMemory, accessible by all CPUs. There is one unified physical address space with no per-CPU private memory. All CPUs observe the same backing store, and SMP correctness is enforced by coherency rules (barrier coordination and reservation invalidation), not by memory ownership.

 

The GuestMemory instance is created as a process-wide singleton via global_GuestMemory() (thread-safe initialization in global_GuestMemory.cpp). Every CPU, every DMA path, and every device access routes through this single instance. The class is declared final, non-copyable, and non-movable.

 

Invariant: GuestMemory is global and authoritative. No subsystem may access physical memory without routing through GuestMemory.

 

See Also: memoryLib/global_GuestMemory.h – Singleton accessor; memoryLib/GuestMemory.h – Class declaration.