Support for classic prefetchers in Ruby (#502)
This patch adds supports for using the "classic" prefetchers with ruby
cache controllers.
This pull request includes a few commits making the changes in this
order:
- Refactor decouples the classic cache and prefetchers interfaces
- Extras probes for later integration with ruby
- General ruby-side support
- Adds support for the CHI protocol
Commit [mem-ruby: support prefetcher in CHI
protocol](2bdb65653b)
may be used as example on how to add support for other protocols.
JIRA issues that may be related to this pull request:
https://gem5.atlassian.net/browse/GEM5-457
https://gem5.atlassian.net/browse/GEM5-1112
This commit is contained in:
@@ -207,9 +207,8 @@ class O3_ARM_v7aL2(Cache):
|
||||
size = "1MB"
|
||||
assoc = 16
|
||||
write_buffers = 8
|
||||
prefetch_on_access = True
|
||||
clusivity = "mostly_excl"
|
||||
# Simple stride prefetcher
|
||||
prefetcher = StridePrefetcher(degree=8, latency=1)
|
||||
prefetcher = StridePrefetcher(degree=8, latency=1, prefetch_on_access=True)
|
||||
tags = BaseSetAssoc()
|
||||
replacement_policy = RandomRP()
|
||||
|
||||
@@ -147,9 +147,8 @@ class L2(Cache):
|
||||
size = "512kB"
|
||||
assoc = 8
|
||||
write_buffers = 16
|
||||
prefetch_on_access = True
|
||||
clusivity = "mostly_excl"
|
||||
# Simple stride prefetcher
|
||||
prefetcher = StridePrefetcher(degree=1, latency=1)
|
||||
prefetcher = StridePrefetcher(degree=1, latency=1, prefetch_on_access=True)
|
||||
tags = BaseSetAssoc()
|
||||
replacement_policy = RandomRP()
|
||||
|
||||
@@ -200,9 +200,8 @@ class L2(Cache):
|
||||
size = "2MB"
|
||||
assoc = 16
|
||||
write_buffers = 8
|
||||
prefetch_on_access = True
|
||||
clusivity = "mostly_excl"
|
||||
# Simple stride prefetcher
|
||||
prefetcher = StridePrefetcher(degree=8, latency=1)
|
||||
prefetcher = StridePrefetcher(degree=8, latency=1, prefetch_on_access=True)
|
||||
tags = BaseSetAssoc()
|
||||
replacement_policy = RandomRP()
|
||||
|
||||
Reference in New Issue
Block a user