In general, a system and method is provided for dynamically reallocating
computer memory. A mapper receives requests to access data. The requests
include bus addresses, and the mapper maps the bus addresses to memory
unit addresses based on a plurality of mappings maintained by the mapper.
The memory unit addresses identify a plurality of memory locations
including a destination memory location and a source memory location. Data
requested by the requests received by the mapper is accessed based on the
memory unit addresses mapped from the bus addresses included in the
requests. When desired, a data value from the source memory location is
dynamically moved to the destination memory location, and the mappings are
updated such that a bus address mapped to a memory unit address
identifying the source memory location is instead mapped to a memory unit
address identifying the destination memory location.