base,mem: Support AtomicOpFunctor in the classic memory system
authorTuan Ta <qtt2@cornell.edu>
Mon, 22 Jan 2018 17:54:14 +0000 (12:54 -0500)
committerTuan Ta <qtt2@cornell.edu>
Thu, 14 Jun 2018 22:41:11 +0000 (22:41 +0000)
commit7bab1d0aff897bc23b5677a51ae67b8cc32953dc
treeb306210feabe295f3aeaad2c1ac4d7c4679b117c
parent74a8947fcb37ec4b3d43cf96740c474f0e3ffed8
base,mem: Support AtomicOpFunctor in the classic memory system

AtomicOpFunctor can be used to implement atomic memory operations.
AtomicOpFunctor is captured inside a memory request and executed directly
in the memory hierarchy in a single step.

This patch enables AtomicOpFunctor pointers to be included in a memory
request and executed in a single step in the classic cache system.

This patch also makes the copy constructor of Request class do a deep
copy of AtomicOpFunctor object. This prevents a copy of a Request object
from accessing a deleted AtomicOpFunctor object.

Change-Id: I6649532b37f711e55f4552ad26893efeb300dd37
Reviewed-on: https://gem5-review.googlesource.com/8185
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com>
Maintainer: Nikos Nikoleris <nikos.nikoleris@arm.com>
src/base/types.hh
src/mem/cache/base.cc
src/mem/packet.hh
src/mem/request.hh