Mem: Separate the host and guest views of memory backing store
authorAndreas Hansson <andreas.hansson@arm.com>
Mon, 15 Oct 2012 12:12:32 +0000 (08:12 -0400)
committerAndreas Hansson <andreas.hansson@arm.com>
Mon, 15 Oct 2012 12:12:32 +0000 (08:12 -0400)
commit9baa35ba802f2cfb9fb9ecdebf111f4cd793a428
tree80f13a9816d592a550be1f7f582afe9dc6c2c781
parentd7ad8dc608dd6de4ff9c930de79edcdc3bdf8d40
Mem: Separate the host and guest views of memory backing store

This patch moves all the memory backing store operations from the
independent memory controllers to the global physical memory. The main
reason for this patch is to allow address striping in a future set of
patches, but at this point it already provides some useful
functionality in that it is now possible to change the number of
memory controllers and their address mapping in combination with
checkpointing. Thus, the host and guest view of the memory backing
store are now completely separate.

With this patch, the individual memory controllers are far simpler as
all responsibility for serializing/unserializing is moved to the
physical memory. Currently, the functionality is more or less moved
from AbstractMemory to PhysicalMemory without any major
changes. However, in a future patch the physical memory will also
resolve any ranges that are interleaved and properly assign the
backing store to the memory controllers, and keep the host memory as a
single contigous chunk per address range.

Functionality for future extensions which involve CPU virtualization
also enable the host to get pointers to the backing store.
src/mem/abstract_mem.cc
src/mem/abstract_mem.hh
src/mem/physical.cc
src/mem/physical.hh
src/sim/root.cc
src/sim/serialize.hh
src/sim/system.cc
util/cpt_upgrader.py