cpu,mem: Add support for partial loads/stores and wide mem. accesses
authorGiacomo Gabrielli <giacomo.gabrielli@arm.com>
Fri, 7 Jul 2017 13:13:11 +0000 (14:13 +0100)
committerGiacomo Gabrielli <giacomo.gabrielli@arm.com>
Sat, 11 May 2019 12:48:58 +0000 (12:48 +0000)
commitc58cb8c9dbeef377da180f1fdaaa1c0eadf85550
tree7591abeb888d8c8e645332749bcaea627628f9bf
parentd0e4cdc9c36466a3dbef8c9f9f509cce8f1a6c34
cpu,mem: Add support for partial loads/stores and wide mem. accesses

This changeset adds support for partial (or masked) loads/stores, i.e.
loads/stores that can disable accesses to individual bytes within the
target address range.  In addition, this changeset extends the code to
crack memory accesses across most CPU models (TimingSimpleCPU still
TBD), so that arbitrarily wide memory accesses are supported.  These
changes are required for supporting ISAs with wide vectors.

Additional authors:
- Gabor Dozsa <gabor.dozsa@arm.com>
- Tiago Muck <tiago.muck@arm.com>

Change-Id: Ibad33541c258ad72925c0b1d5abc3e5e8bf92d92
Signed-off-by: Giacomo Gabrielli <giacomo.gabrielli@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/13518
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com>
Maintainer: Nikos Nikoleris <nikos.nikoleris@arm.com>
27 files changed:
src/cpu/base.hh
src/cpu/base_dyn_inst.hh
src/cpu/checker/cpu.cc
src/cpu/checker/cpu.hh
src/cpu/exec_context.hh
src/cpu/minor/dyn_inst.hh
src/cpu/minor/exec_context.hh
src/cpu/minor/execute.cc
src/cpu/minor/lsq.cc
src/cpu/minor/lsq.hh
src/cpu/o3/cpu.hh
src/cpu/o3/lsq.hh
src/cpu/o3/lsq_impl.hh
src/cpu/o3/lsq_unit_impl.hh
src/cpu/simple/atomic.cc
src/cpu/simple/atomic.hh
src/cpu/simple/base.cc
src/cpu/simple/base.hh
src/cpu/simple/exec_context.hh
src/cpu/simple/timing.cc
src/cpu/simple/timing.hh
src/cpu/simple_thread.cc
src/cpu/utils.hh [new file with mode: 0644]
src/mem/abstract_mem.cc
src/mem/cache/cache.cc
src/mem/packet.hh
src/mem/request.hh