Gabe Black
ee9a360c60
mem: Change some default values in the Request class.
...
These values are more abnormal than the 0s they replace, and so it
would be more obvious when something is accidentally left
uninitialized.
Change-Id: Ie7f14abe9e22f9df1ff238f29d4a783c890f4a20
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/26237
Tested-by: kokoro <noreply+kokoro@google.com >
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com >
Maintainer: Nikos Nikoleris <nikos.nikoleris@arm.com >
2020-03-10 01:10:44 +00:00
Gabe Black
4dd00b0153
arch,cpu,gpu-compute,mem: Remove asid from Request objects.
...
This is passed around a lot and set all over the place (usually to 0),
but it's never actually used for anything.
Change-Id: I38ca08387beabeaf9e339b4915ec7eba9e19eecb
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/26232
Tested-by: kokoro <noreply+kokoro@google.com >
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com >
Maintainer: Gabe Black <gabeblack@google.com >
2020-03-07 00:40:41 +00:00
Gabe Black
86d32c4969
mem: Merge the virtual Request constructors.
...
The only difference was whether the the atomic op functor was accepted
as an argument. If it wasn't, setVirt would be called without an op
functor argument where it will default to nullptr.
This change deletes the constructor which doesn't take an atomic op
functor and in the other defaults the functor to nullptr. Functionally
nothing changes, but the code is now simpler.
Change-Id: Iff06543b1046594df297344e16961ee9d0f0a373
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/26231
Tested-by: kokoro <noreply+kokoro@google.com >
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com >
Maintainer: Gabe Black <gabeblack@google.com >
2020-03-07 00:40:41 +00:00
Gabe Black
935a0009b2
mem: Get rid of one more unused Request constructor.
...
Also collapse setPhys, which is private, into the only caller which is
the Request constructor which takes a physical address.
Change-Id: I872c489cd168d7c364a57e26efce2350a3632c82
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/26230
Tested-by: kokoro <noreply+kokoro@google.com >
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com >
Maintainer: Gabe Black <gabeblack@google.com >
2020-03-07 00:40:41 +00:00
Gabe Black
fe43e640be
mem: Get rid of another unused Request constructor.
...
This one took an explicit "time" value instead of using curTick().
Change-Id: I935ba1dfc194dcf156d7defedb6ce540db461ce4
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/26228
Tested-by: kokoro <noreply+kokoro@google.com >
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com >
Maintainer: Gabe Black <gabeblack@google.com >
2020-03-07 00:40:41 +00:00
Gabe Black
526b3c0485
mem: Add default initializers to the fields in Request.
...
This avoids having to have bunches of uninteresting initializers in the
Request constructors, and accidentally forgetting to initialize any of
them.
Change-Id: If7a91fdf4aa6cd774f6f53474f55034ed6eda5f0
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/26227
Tested-by: kokoro <noreply+kokoro@google.com >
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com >
Maintainer: Nikos Nikoleris <nikos.nikoleris@arm.com >
2020-03-07 00:40:41 +00:00
Gabe Black
8dc904cb93
mem: Get rid of an unused Request constructor.
...
This constructor took a physical address and a PC. After deleting it
all ISAs still compile.
Change-Id: I25f404f80ce7e995688165dc86ac8899da7aa919
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/26226
Tested-by: kokoro <noreply+kokoro@google.com >
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com >
Maintainer: Gabe Black <gabeblack@google.com >
2020-03-05 08:05:24 +00:00
Gabe Black
7b48b38a92
mem: Remove the version of the FS translating port proxy with no tc.
...
This version is not used and is the only remaining consumer of the
vtophys variant with no ThreadContext.
Change-Id: I8cb870b841fe064cee121e4930cb163d2ec7628f
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/26223
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com >
Maintainer: Gabe Black <gabeblack@google.com >
Tested-by: kokoro <noreply+kokoro@google.com >
2020-03-05 02:59:34 +00:00
Timothy Hayes
2e5d0198d6
mem-ruby: Minor Ruby Prefetcher fixes
...
Minor fixes to the Ruby stride prefetcher. This includes removing unused
statistics and changing where/when some statistics are updated.
Change-Id: If758bf009f53fad277cb3cd754d57a0b10737599
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/24363
Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br >
Maintainer: Bobby R. Bruce <bbruce@ucdavis.edu >
Tested-by: kokoro <noreply+kokoro@google.com >
2020-03-04 10:30:13 +00:00
Gabe Black
ebd62eff3c
arch,cpu,mem: Replace the mmmapped IPR mechanism with local accesses.
...
The new local access mechanism installs a callback in the request which
implements what the mmapped IPR was doing. That avoids having to have
stubs in ISAs that don't have mmapped IPRs, avoids having to encode
what to do to communicate from the TLB and the mmapped IPR functions,
and gets rid of another global ISA interface function and header files.
Jira Issue: https://gem5.atlassian.net/browse/GEM5-187
Change-Id: I772c2ae2ca3830a4486919ce9804560c0f2d596a
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/23188
Reviewed-by: Matthew Poremba <matthew.poremba@amd.com >
Maintainer: Gabe Black <gabeblack@google.com >
Tested-by: kokoro <noreply+kokoro@google.com >
2020-03-04 04:09:19 +00:00
Gabe Black
fcbea60085
mem: Use using to expose a print method that would otherwise be hidden.
...
This method would be hidden in the subclass which upset clang 11, and
that caused the build to break.
Change-Id: Ie678fc96a26809eb8f2acd0bddc1df81c0a9aa1e
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/25227
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com >
Maintainer: Gabe Black <gabeblack@google.com >
Tested-by: kokoro <noreply+kokoro@google.com >
2020-02-20 23:14:15 +00:00
Gabe Black
921a72f4f3
mem: Delete authors lists from mem files.
...
Change-Id: I439d64d01950463747446a8177086eb276b8db55
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/25443
Maintainer: Gabe Black <gabeblack@google.com >
Tested-by: kokoro <noreply+kokoro@google.com >
Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br >
2020-02-17 21:51:08 +00:00
Gabe Black
135595a4d7
mem: Eliminate the now unused GENERIC_IPR request flag.
...
Jira Issue: https://gem5.atlassian.net/browse/GEM5-187
Change-Id: Id3aaffa4fa88032fd209c5c3b6f67283a6af1c48
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/23187
Tested-by: kokoro <noreply+kokoro@google.com >
Maintainer: Bobby R. Bruce <bbruce@ucdavis.edu >
Reviewed-by: Muhammad Sarmad Saeed <mssaeed@ucdavis.edu >
Reviewed-by: Jason Lowe-Power <jason@lowepower.com >
2020-02-11 11:58:57 +00:00
Daniel R. Carvalho
7515106ebe
mem-cache,mem-ruby: Move WeightedLRU RP
...
Move the WeightedLRUReplacementPolicy to the replacement policies folder.
Change-Id: I9902faefb6de33343bb65f994be70bd9e1dd4e14
Signed-off-by: Daniel R. Carvalho <odanrc@yahoo.com.br >
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/22445
Reviewed-by: Jason Lowe-Power <jason@lowepower.com >
Reviewed-by: John Alsop <johnathan.alsop@amd.com >
Tested-by: kokoro <noreply+kokoro@google.com >
Maintainer: Jason Lowe-Power <jason@lowepower.com >
2020-02-10 12:40:18 +00:00
Gabe Black
d63743699b
mem: Make slicc generate some default methods explicitly.
...
Implicitly using the default copy constructor and assignment operator
is apparently deprecated, and gcc 9 will warn about it, breaking the
build.
Change-Id: Ida7a8a577e9d1cde9841eac7eee1af74563f1e27
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/24927
Tested-by: kokoro <noreply+kokoro@google.com >
Reviewed-by: Jason Lowe-Power <jason@lowepower.com >
Reviewed-by: Bradford Beckmann <brad.beckmann@amd.com >
Reviewed-by: John Alsop <johnathan.alsop@amd.com >
Maintainer: Bradford Beckmann <brad.beckmann@amd.com >
2020-01-31 09:03:42 +00:00
Daniel R. Carvalho
519808c02f
mem-cache: Fix invalidation of prefetchers
...
Add an invalidation function to the AssociativeSet, so that entries
can be properly invalidated by also invalidating their replacement
data.
Both setInvalid and reset have been merged into invalidate to
indicate users that they are using an incorrect approach by
generating compilation errors, and to match CacheBlk's naming
convention.
Change-Id: I568076a3b5adda8b1311d9498b086c0dab457a14
Signed-off-by: Daniel R. Carvalho <odanrc@yahoo.com.br >
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/24529
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com >
Maintainer: Nikos Nikoleris <nikos.nikoleris@arm.com >
Tested-by: kokoro <noreply+kokoro@google.com >
2020-01-21 08:07:05 +00:00
Daniel R. Carvalho
54a27b007a
mem-cache: Add print function to ReplaceableEntry
...
Add a basic print function to acquire and display information about
replaceable entries.
Change-Id: I9640113d305fbe086c5bfaf8928a911bfcac50bb
Signed-off-by: Daniel R. Carvalho <odanrc@yahoo.com.br >
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/23567
Tested-by: kokoro <noreply+kokoro@google.com >
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com >
Reviewed-by: Jason Lowe-Power <jason@lowepower.com >
Maintainer: Nikos Nikoleris <nikos.nikoleris@arm.com >
Maintainer: Jason Lowe-Power <jason@lowepower.com >
2020-01-17 20:41:50 +00:00
Daniel R. Carvalho
6eabbd49eb
mem-cache: Add getter for the number of valid sub-blks
...
Add a getter function so that the number of valid sub-blocks can be
retrieved. As a side effect, make the respective counter private.
Change-Id: Icef8b51164c8e165872dcaebc65f5c330f16cb29
Signed-off-by: Daniel R. Carvalho <odanrc@yahoo.com.br >
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/22605
Tested-by: kokoro <noreply+kokoro@google.com >
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com >
Maintainer: Nikos Nikoleris <nikos.nikoleris@arm.com >
2020-01-17 20:41:39 +00:00
Daniel R. Carvalho
62dfa5a1fb
mem-cache: Add multiple eviction stats
...
Add stats to inform how many blocks were evicted due to a sector
replacement/eviction.
Change-Id: I886365506016d0888f835d182b3b65a808a9dccd
Signed-off-by: Daniel R. Carvalho <odanrc@yahoo.com.br >
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/22606
Tested-by: kokoro <noreply+kokoro@google.com >
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com >
Maintainer: Nikos Nikoleris <nikos.nikoleris@arm.com >
2020-01-17 16:31:03 +00:00
Daniel R. Carvalho
37bcb128fa
mem-cache: Make findVictim non-const
...
In order to acquire stats when a victim is found,
findVictim must be made const.
Change-Id: I493c7849f07625c90b2b95fd220f50751f4d0f52
Signed-off-by: Daniel R. Carvalho <odanrc@yahoo.com.br >
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/22604
Tested-by: kokoro <noreply+kokoro@google.com >
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com >
Maintainer: Nikos Nikoleris <nikos.nikoleris@arm.com >
2020-01-17 16:31:03 +00:00
Daniel R. Carvalho
7ff32d7b53
mem-cache: Add more compression stats
...
Add stats to calculate the total number of compressions, decompressions
and the average compression size, in number of bits.
Change-Id: I5eb563856c1ff54216e1edcd2886332b7481cbfe
Signed-off-by: Daniel R. Carvalho <odanrc@yahoo.com.br >
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/22609
Tested-by: kokoro <noreply+kokoro@google.com >
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com >
Maintainer: Nikos Nikoleris <nikos.nikoleris@arm.com >
2020-01-17 16:31:03 +00:00
Daniel R. Carvalho
7dce9e3782
mem-cache: Factor out multiple block eviction
...
Create a function to try to evict multiple blocks while checking for
transient state.
Change-Id: I6a879fa5e793cd92c4bdf4a258a133de4c865012
Signed-off-by: Daniel R. Carvalho <odanrc@yahoo.com.br >
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/22607
Tested-by: kokoro <noreply+kokoro@google.com >
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com >
Maintainer: Nikos Nikoleris <nikos.nikoleris@arm.com >
2020-01-17 16:31:03 +00:00
Daniel R. Carvalho
aa5140e26e
mem-garnet: Use smart pointers for CrossbarSwitch's members
...
Use smart pointers for the pointers managed by CrossbarSwitch.
Change-Id: I71958c72cde5981d730aa3f68bba0ffbe4c2506f
Signed-off-by: Daniel R. Carvalho <odanrc@yahoo.com.br >
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/24244
Reviewed-by: Bobby R. Bruce <bbruce@ucdavis.edu >
Maintainer: Bobby R. Bruce <bbruce@ucdavis.edu >
Tested-by: kokoro <noreply+kokoro@google.com >
2020-01-14 07:04:57 +00:00
Giacomo Travaglini
b653e5ea10
base: Move AtomicOpFunctors to a dedicated header
...
src/base/types.hh file definition is:
/**
* @file
* Defines global host-dependent types:
* Counter, Tick, and (indirectly) {int,uint}{8,16,32,64}_t.
*/
I feel AtomicOpFunctor doesn't fall in this cathegory so I am
moving those into a dedicated header: base/amo.hh
Change-Id: I8f05fb0944c03e4053cfaf2ffe65cac803df1d93
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com >
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com >
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/23563
Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br >
Reviewed-by: Jason Lowe-Power <jason@lowepower.com >
Maintainer: Jason Lowe-Power <jason@lowepower.com >
Tested-by: kokoro <noreply+kokoro@google.com >
2020-01-08 09:32:08 +00:00
Nikos Nikoleris
2430be2edb
mem-cache: Forward snoops when the cache is not responding
...
When the MSHR is handling a request that will make the block dirty the
current cache commits respond. When that's not the case the cache
should forward any snoops. This CL fixes MSHR::handleSnoop() to
implement this behavior.
Change-Id: I207e3ca4968fd9528fd4cdbfb3eb95f470b4744d
Signed-off-by: Nikos Nikoleris <nikos.nikoleris@arm.com >
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/23668
Tested-by: kokoro <noreply+kokoro@google.com >
Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br >
2020-01-07 09:42:01 +00:00
Nikos Nikoleris
96e8f2ed3c
mem-cache: Ensure that responses get data from the right source
...
This CL makes sure that we use the right source for data for
responses after a response from the cache below.
Change-Id: I7329f3e6bcb7ce2054e912eb9dea48c9d169d45a
Signed-off-by: Nikos Nikoleris <nikos.nikoleris@arm.com >
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/23667
Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br >
Tested-by: kokoro <noreply+kokoro@google.com >
2020-01-07 09:42:01 +00:00
Nikos Nikoleris
44e3c95555
mem-cache: Avoid write merging if there are reads in between
...
This CL reworks the logic in the MSHR to make sure we do not coalesce
requests unless there is a series of write requests for the whole
cache block without any other incompatible requests (e.g., read) in
between.
Change-Id: I0b3195858fb33ef85d7aae27376506057dd53ea7
Signed-off-by: Nikos Nikoleris <nikos.nikoleris@arm.com >
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/23666
Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br >
Tested-by: kokoro <noreply+kokoro@google.com >
2020-01-06 11:09:21 +00:00
Daniel R. Carvalho
05156e6730
mem: Encapsulate mapping gem5 to host address space
...
Create a function to encapsulate mapping an address in gem5's
address space to the host's address space. The returned value can
be used to access the contents of the given address.
As a side effect, make the local variable hostAddr use snake_case
to comply with gem5's coding style.
Change-Id: I2445d3ab4c7ce5746182b307c26cbafc68aa139c
Signed-off-by: Daniel R. Carvalho <odanrc@yahoo.com.br >
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/22610
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com >
Maintainer: Nikos Nikoleris <nikos.nikoleris@arm.com >
Tested-by: kokoro <noreply+kokoro@google.com >
2019-12-12 14:43:09 +00:00
Daniel R. Carvalho
a87a3e4fad
mem-cache: Move unused prefetches counter update
...
The number of unused prefetches should be updated every time
a block is invalidated, therefore we move the update to within
the corresponding function.
Change-Id: If3ac2ea43611525bd3c36d628d88382042fcb7dc
Signed-off-by: Daniel R. Carvalho <odanrc@yahoo.com.br >
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/18908
Tested-by: kokoro <noreply+kokoro@google.com >
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com >
Maintainer: Nikos Nikoleris <nikos.nikoleris@arm.com >
2019-12-12 14:43:09 +00:00
Giacomo Travaglini
bc26c0dd35
mem: Add Request::isMasked to check for byte strobing
...
This is trying to overcome the following problem: At the moment a memory
request with a non empty byteEnable mask will be considered masking even
if all elements in the vector are true.
Change-Id: I16ae2c0ea8c3f3370e397bab9d79d6d60c3784bd
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com >
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/23284
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com >
Reviewed-by: Bobby R. Bruce <bbruce@ucdavis.edu >
Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br >
Maintainer: Nikos Nikoleris <nikos.nikoleris@arm.com >
Tested-by: kokoro <noreply+kokoro@google.com >
2019-12-09 13:18:48 +00:00
Giacomo Travaglini
8a1f195c2b
mem: Add byteEnable copy to Request copy constructor
...
Change-Id: Ie97543e62524bb244ae65eef096411af4605c175
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com >
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/23283
Maintainer: Nikos Nikoleris <nikos.nikoleris@arm.com >
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com >
Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br >
Tested-by: kokoro <noreply+kokoro@google.com >
2019-12-09 13:18:48 +00:00
Gabe Black
078bdc8661
mem-cache: Avoid hiding a virtual method in the dictionary compressor.
...
The non-virtual version is later used in overrides of the virtual
version whcih takes more arguments.
Change-Id: I102d1185c7a616337c2a0429daa998706189292f
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/23127
Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br >
Maintainer: Gabe Black <gabeblack@google.com >
Tested-by: kokoro <noreply+kokoro@google.com >
2019-11-28 07:14:57 +00:00
Gabe Black
6ff7e6db89
mem-cache: Remove a std::move clang says is unnecessary.
...
It also says it prevents an optimization.
Change-Id: I9c21dc1a0c53cf70cefd1400564de07d1e845a75
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/23124
Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br >
Maintainer: Gabe Black <gabeblack@google.com >
Tested-by: kokoro <noreply+kokoro@google.com >
2019-11-28 07:14:36 +00:00
Isaac Sánchez Barrera
7e19b26f50
mem-cache: Initialize all members of QueuedPrefetcher::DeferredPacket.
...
Members `tc` and `ongoingTranslation` were uninitialized in the constructor for
`QueuedPrefetcher::DeferredPacket`. If `ongoingTranslation` is not initialized to
`false` by default, some translation requests from queued prefetchers are not
properly handled and executions are nondeterministic.
Change-Id: Ia278f9e74847d6b847984d47f6a45643bae57794
Signed-off-by: Isaac Sánchez Barrera <isaac.sanchez@bsc.es >
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/22844
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com >
Maintainer: Nikos Nikoleris <nikos.nikoleris@arm.com >
Tested-by: kokoro <noreply+kokoro@google.com >
2019-11-18 11:10:21 +00:00
Isaac Sánchez Barrera
ccb3c75fab
mem-cache: Fix destructor of BasePrefetcher::PrefetchInfo.
...
The destructor of `BasePrefetcher::PrefetchInfo` was calling `delete` for a
dynamically-allocated array. Changed to `delete[]` to remove potential undefined
behaviour.
Change-Id: I6f531bfb6fb7108f1d3e743ae0384d80173e15ef
Signed-off-by: Isaac Sánchez Barrera <isaac.sanchez@bsc.es >
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/22843
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com >
Maintainer: Nikos Nikoleris <nikos.nikoleris@arm.com >
Tested-by: kokoro <noreply+kokoro@google.com >
2019-11-18 11:10:21 +00:00
Polydoros Petrakis
75a127e8ba
mem-ruby: Reset Ruby Sequencer Outstanding Requests stats
...
Change-Id: I14b106e0eb7abd9c14badeedf35d6d1c9f198f98
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/22446
Reviewed-by: Jason Lowe-Power <jason@lowepower.com >
Maintainer: Jason Lowe-Power <jason@lowepower.com >
Tested-by: kokoro <noreply+kokoro@google.com >
2019-11-05 12:28:24 +00:00
Daniel R. Carvalho
0a276fb4bb
mem-cache: Modify compressor to appease newer compilers
...
The type of the local unique_ptr variable was different from the return type.
In C++11 because of such difference, a copy-ellision would not be possible,
and that required the use of a std::move.
In C++14 the restriction of same types being required was removed, so
std::move would not be needed anymore.
With the addition of the -Wredundant-move warning in newer compilers, having
the std::move on the return became an issue, breaking compilation.
Change-Id: I45d18dfc500bb5db5fe360814feb91853c735a19
Signed-off-by: Daniel R. Carvalho <odanrc@yahoo.com.br >
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/22403
Tested-by: kokoro <noreply+kokoro@google.com >
Maintainer: Nikos Nikoleris <nikos.nikoleris@arm.com >
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com >
2019-11-04 21:32:22 +00:00
Daniel R. Carvalho
b7223e0976
mem-cache: Implement a perfect compressor
...
Implement a perfect compressor that always manages to compresses data
exactly to its maximum allowed compression ratio. This allows tracking
a compression upper bound.
Change-Id: Ibc68bf2dc84b75207795d5ba6304b9ed6dbeae8f
Signed-off-by: Daniel R. Carvalho <odanrc@yahoo.com.br >
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/21160
Tested-by: kokoro <noreply+kokoro@google.com >
Maintainer: Nikos Nikoleris <nikos.nikoleris@arm.com >
Reviewed-by: Bobby R. Bruce <bbruce@ucdavis.edu >
2019-11-04 21:32:22 +00:00
Daniel R. Carvalho
3029ef270c
mem-cache: Make BDI a multi compressor
...
BDI is a compressor containing multiple sub-compressors.
Change-Id: I98411e2ef9dcc2182801a172dfc59ed7a8ee7dd4
Signed-off-by: Daniel R. Carvalho <odanrc@yahoo.com.br >
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/21159
Tested-by: kokoro <noreply+kokoro@google.com >
Maintainer: Jason Lowe-Power <jason@lowepower.com >
Reviewed-by: Bobby R. Bruce <bbruce@ucdavis.edu >
2019-11-04 21:32:22 +00:00
Daniel R. Carvalho
b8a4a911ee
mem-cache: Implement a multi compressor
...
Implement a compressor that contains multiple sub-compressors and
choses the one that provides the best compression results for each
compression.
Change-Id: I758cf67c84bd85edbea16b2a07b2068b00454461
Signed-off-by: Daniel R. Carvalho <odanrc@yahoo.com.br >
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/21158
Reviewed-by: Jason Lowe-Power <jason@lowepower.com >
Maintainer: Jason Lowe-Power <jason@lowepower.com >
Tested-by: kokoro <noreply+kokoro@google.com >
2019-11-04 21:32:22 +00:00
Daniel R. Carvalho
2cb1449ede
mem-cache: Implement BDI sub-compressors
...
Implement sub-compressors of BDI as public compressors so that
they can be used separately.
Change-Id: I710e35f39f4abb82fd02fd33b1b86a3f214c12cb
Signed-off-by: Daniel R. Carvalho <odanrc@yahoo.com.br >
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/21157
Tested-by: kokoro <noreply+kokoro@google.com >
Reviewed-by: Bobby R. Bruce <bbruce@ucdavis.edu >
Maintainer: Bobby R. Bruce <bbruce@ucdavis.edu >
2019-11-04 21:32:22 +00:00
Daniel R. Carvalho
e415882972
mem-cache: Implement a repeated values compressor
...
The repeated values compressor can only compress data composed solely
repeated instances of the same value.
Change-Id: If2c4f47ad4af492d202ec2017e30ba52ee67e307
Signed-off-by: Daniel R. Carvalho <odanrc@yahoo.com.br >
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/21156
Tested-by: kokoro <noreply+kokoro@google.com >
Reviewed-by: Bobby R. Bruce <bbruce@ucdavis.edu >
Maintainer: Bobby R. Bruce <bbruce@ucdavis.edu >
2019-11-04 21:32:22 +00:00
Daniel R. Carvalho
fcc1964453
mem-cache: Implement a zero compressor
...
The zero compressor can only compress data composed solely of zero
bits.
Change-Id: I8b359c03776a8748abd144a178bda944b5a1b766
Signed-off-by: Daniel R. Carvalho <odanrc@yahoo.com.br >
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/21155
Tested-by: kokoro <noreply+kokoro@google.com >
Reviewed-by: Bobby R. Bruce <bbruce@ucdavis.edu >
Maintainer: Bobby R. Bruce <bbruce@ucdavis.edu >
2019-11-04 21:32:22 +00:00
Daniel R. Carvalho
93b4845ed2
mem-cache: Implement FPC-D cache compression
...
Implementation of Frequent Pattern Compression with limited Dictionary
support (FPC-D) cache compressor, as described in "Opportunistic
Compression for Direct-Mapped DRAM Caches", by Alameldeen et al.
Change-Id: I26cc1646f95400b6a006f89754f6b2952f5b4aeb
Signed-off-by: Daniel R. Carvalho <odanrc@yahoo.com.br >
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/21154
Tested-by: kokoro <noreply+kokoro@google.com >
Reviewed-by: Bobby R. Bruce <bbruce@ucdavis.edu >
Maintainer: Bobby R. Bruce <bbruce@ucdavis.edu >
2019-11-04 21:32:22 +00:00
Gabe Black
5fa59a2831
mem: Delete the packet accessors which use guest endianness.
...
These accessors create an extra dependency on the guest OS, and can be
avoided. Now that all their uses have been removed, they aren't needed
any more.
Change-Id: I466c07fef99bce2d7964c07a7ac3dd398691378b
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/13465
Tested-by: kokoro <noreply+kokoro@google.com >
Reviewed-by: Jason Lowe-Power <jason@lowepower.com >
Maintainer: Jason Lowe-Power <jason@lowepower.com >
2019-11-01 23:41:14 +00:00
Daniel R. Carvalho
fc0678daf2
mem-cache: Fix missing header in associative set
...
Add missing intmath header to AssociativeSet, so that isPowerOf2 can
be used.
error: there are no arguments to 'isPowerOf2' that depend on a template
parameter, so a declaration of 'isPowerOf2' must be available
Change-Id: Ib2b194f9e71284ee439786bdb76d99858e57e2f5
Signed-off-by: Daniel R. Carvalho <odanrc@yahoo.com.br >
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/22444
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com >
Maintainer: Nikos Nikoleris <nikos.nikoleris@arm.com >
Tested-by: kokoro <noreply+kokoro@google.com >
2019-10-31 19:00:08 +00:00
Joe Gross
bb94296373
mem-ruby: Fixed pipeline squashes caused by aliased requests
...
This patch was created by Bihn Pham during his internship at AMD.
This patch fixes a very significant performance bug when using the O3
CPU model and Ruby. The issue was Ruby returned false when it received
a request to the same address that already has an outstanding request or
when the memory is blocked. As a result, O3 unnecessary squashed the
pipeline and re-executed instructions. This fix merges readRequestTable
and writeRequestTable in Sequencer into a single request table that
keeps track of all requests and allows multiple outstanding requests to
the same address. This prevents O3 from squashing the pipeline.
Change-Id: If934d57b4736861e342de0ab18be4feec464273d
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/21219
Reviewed-by: Anthony Gutierrez <anthony.gutierrez@amd.com >
Maintainer: Anthony Gutierrez <anthony.gutierrez@amd.com >
Tested-by: kokoro <noreply+kokoro@google.com >
2019-10-31 18:42:04 +00:00
Daniel R. Carvalho
248c8d36ec
mem-cache: Add a repeated value pattern to compressors
...
The repeated value pattern checks if values are composed of multiple
instances of the same value. If successful, the bits of the repeated
value are included only once in the compressed data.
Change-Id: Ia7045b4e33a91fd8d712fe1ca689f7f8cb4e5feb
Signed-off-by: Daniel R. Carvalho <odanrc@yahoo.com.br >
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/21153
Reviewed-by: Bobby R. Bruce <bbruce@ucdavis.edu >
Maintainer: Jason Lowe-Power <jason@lowepower.com >
Tested-by: kokoro <noreply+kokoro@google.com >
2019-10-29 21:32:02 +00:00
Daniel R. Carvalho
7244788c02
mem-cache: Inform unused bits instead of bytes in compressor pattern
...
Increase pattern precision by giving the number of unmatched bits
instead of bytes.
Change-Id: I5efbe9c31672cc973b4c89c741cdc8cc28d26285
Signed-off-by: Daniel R. Carvalho <odanrc@yahoo.com.br >
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/21152
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com >
Maintainer: Nikos Nikoleris <nikos.nikoleris@arm.com >
Tested-by: kokoro <noreply+kokoro@google.com >
2019-10-29 21:32:02 +00:00
Daniel R. Carvalho
2dd82da9b8
mem-cache: Add a masked const value pattern to compressors
...
The masked pattern compares values to masked const non-dictionary values
to determine whether these match. If successful, the bits that do not
match must be added to the compressed data.
Change-Id: I4c53568694dab916136fe384cb2ee10e554f7136
Signed-off-by: Daniel R. Carvalho <odanrc@yahoo.com.br >
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/21151
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com >
Maintainer: Nikos Nikoleris <nikos.nikoleris@arm.com >
Tested-by: kokoro <noreply+kokoro@google.com >
2019-10-29 21:32:02 +00:00