Mem: Make SimpleMemory single ported
authorAndreas Hansson <andreas.hansson@arm.com>
Thu, 12 Jul 2012 16:56:13 +0000 (12:56 -0400)
committerAndreas Hansson <andreas.hansson@arm.com>
Thu, 12 Jul 2012 16:56:13 +0000 (12:56 -0400)
commitf00cba34eb8e6bf947721f72de314f4e8bd6a8f8
tree432ab17d82d72d5042758f25066dc64558c9a7f8
parent55bfe13705a3eccdffb6846dd87df5f190b04c99
Mem: Make SimpleMemory single ported

This patch changes the simple memory to have a single slave port
rather than a vector port. The simple memory makes no attempts at
modelling the contention between multiple ports, and any such
multiplexing and demultiplexing could be done in a bus (or crossbar)
outside the memory controller. This scenario also matches with the
ongoing work on a SimpleDRAM model, which will be a single-ported
single-channel controller that can be used in conjunction with a bus
(or crossbar) to create a multi-port multi-channel controller.

There are only very few regressions that make use of the vector port,
and these are all for functional accesses only. To facilitate these
cases, memtest and memtest-ruby have been updated to also have a
"functional" bus to perform the (de)multiplexing of the functional
memory accesses.
configs/example/memtest.py
configs/example/ruby_mem_test.py
src/mem/SimpleMemory.py
src/mem/simple_mem.cc
src/mem/simple_mem.hh
tests/configs/memtest-ruby.py
tests/configs/memtest.py