mem-cache: enhance address handle and refect composite prefetcher
-
Add
isCompositePrefetcherflag toprefetch::Baseto indicate whether the prefetcher is a composite one containing sub-prefetchers.- When set to true, both virtual and physical addresses are passed to sub-prefetchers.
- Sub-prefetchers are responsible for deciding which address to use in
calculatePrefetch.
-
Refactor
PrefetchInfoandPrefetchCmd:PrefetchInfonow supports carrying both virtual and physical addresses.PrefetchCmdcan now issue prefetches based on physical addresses.- Renamed several members to improve clarity and reflect their semantics more accurately (e.g., distinguishing between virtual and physical addresses, target level, etc.).
-
Refactor
prefetch::Queue:- Supports address duplication checks using both virtual and physical addresses for squash handling.
- Decouples address translation decision-making from the prefetcherβs
use_virtual_addressflag; decisions now depend on the address properties of eachPrefetchCmd. - Extracts logic for dropping prefetches into a dedicated
shouldDropPrefetchfunction. - Fixes a bug in
alreadyInQueuewhere an incorrect loop break condition could cause priority updates to target the wrong entry.
-
Introduce
PrefetchFilterclass:- A new modular filter component intended to eventually replace the legacy
pfLRUFilter(lru_cache<Addr, Addr>). - Provides a unified interface to filter both virtual and physical address prefetches.
- Only declared and partially implemented in this commit; integration and replacement to follow in later commits.
- Designed for improved flexibility and extensibility in prefetch filtering logic.
- A new modular filter component intended to eventually replace the legacy
-
Refactor
WorkerPrefetcher:- Removes redundant logic.
- Cross-level prefetches to upper-level prefetchers are scheduled only when the local buffer is not empty.
-
Refactor
CompositeWithWorkerPrefetcher:- Removes redundant logic.
Change-Id: Ib12a66c35f313d795d3b28fdf7507ee7fb9b808e
[Generated by GEM5 Performance Robot] commit: 76ce65496dbbf608e1be7ebb6e6943fa7abc592d workflow: gem5 Performance Test
Standard Performance
Overall Score
| PR | Master | Diff(%) | |
|---|---|---|---|
| Score | 16.21 | 16.22 | -0.01 π΄ |
[Generated by GEM5 Performance Robot] commit: 76ce65496dbbf608e1be7ebb6e6943fa7abc592d workflow: gem5 Ideal BTB Performance Test
Ideal BTB Performance
Overall Score
| PR | Master | Diff(%) | |
|---|---|---|---|
| Score | 20.63 | 20.61 | +0.09 π’ |
[Generated by GEM5 Performance Robot] commit: 767f14c6fcf2719526625e1e3de4f7ebbcef1870 workflow: gem5 Performance Test
Standard Performance
Overall Score
| PR | Master | Diff(%) | |
|---|---|---|---|
| Score | 16.15 | 16.17 | -0.13 π΄ |
[Generated by GEM5 Performance Robot] commit: 767f14c6fcf2719526625e1e3de4f7ebbcef1870 workflow: gem5 Performance Test
Standard Performance
Overall Score
| PR | Previous Commit | Diff(%) | |
|---|---|---|---|
| Score | 16.15 | 16.15 | 0.00 |
[Generated by GEM5 Performance Robot] commit: 767f14c6fcf2719526625e1e3de4f7ebbcef1870 workflow: gem5 Ideal BTB Performance Test
Ideal BTB Performance
Overall Score
| PR | Master | Diff(%) | |
|---|---|---|---|
| Score | 19.49 | 19.50 | -0.04 π΄ |
[Generated by GEM5 Performance Robot] commit: 767f14c6fcf2719526625e1e3de4f7ebbcef1870 workflow: gem5 Ideal BTB Performance Test
Ideal BTB Performance
Overall Score
| PR | Previous Commit | Diff(%) | |
|---|---|---|---|
| Score | 19.49 | 19.77 | -1.43 π΄ |
[Generated by GEM5 Performance Robot] commit: 767f14c6fcf2719526625e1e3de4f7ebbcef1870 workflow: gem5 Simple RVV Performance Test (Ideal BTB)
Ideal BTB Performance
Overall Score
| PR | Master | Diff(%) | |
|---|---|---|---|
| Score | 19.18 | 19.16 | +0.13 π’ |
[Generated by GEM5 Performance Robot] commit: 767f14c6fcf2719526625e1e3de4f7ebbcef1870 workflow: gem5 Simple RVV Performance Test (Ideal BTB)
Ideal BTB Performance
Overall Score
| PR | Previous Commit | Diff(%) | |
|---|---|---|---|
| Score | 19.18 | 19.41 | -1.20 π΄ |
[Generated by GEM5 Performance Robot] commit: b1ac8827e5b51d0d3d8a3327592087a06d86c825 workflow: gem5 Ideal BTB Performance Test
Ideal BTB Performance
Overall Score
| PR | Master | Diff(%) | |
|---|---|---|---|
| Score | 19.77 | 19.50 | +1.41 π’ |
[Generated by GEM5 Performance Robot] commit: b1ac8827e5b51d0d3d8a3327592087a06d86c825 workflow: gem5 Simple RVV Performance Test (Ideal BTB)
Ideal BTB Performance
Overall Score
| PR | Master | Diff(%) | |
|---|---|---|---|
| Score | 19.41 | 19.16 | +1.35 π’ |
[Generated by GEM5 Performance Robot] commit: b1ac8827e5b51d0d3d8a3327592087a06d86c825 workflow: gem5 Performance Test
Standard Performance
Overall Score
| PR | Master | Diff(%) | |
|---|---|---|---|
| Score | 16.15 | 16.17 | -0.13 π΄ |
[Generated by GEM5 Performance Robot] commit: 186edd1b87a7f66d326c8e687e71791353159711 workflow: gem5 Performance Test
Standard Performance
Overall Score
| PR | Master | Diff(%) | |
|---|---|---|---|
| Score | 16.15 | 16.17 | -0.10 π΄ |
[Generated by GEM5 Performance Robot] commit: 186edd1b87a7f66d326c8e687e71791353159711 workflow: gem5 Ideal BTB Performance Test
Ideal BTB Performance
Overall Score
| PR | Master | Diff(%) | |
|---|---|---|---|
| Score | 19.76 | 19.77 | -0.02 π΄ |
[Generated by GEM5 Performance Robot] commit: 186edd1b87a7f66d326c8e687e71791353159711 workflow: gem5 Simple RVV Performance Test (Ideal BTB)
Ideal BTB Performance
Overall Score
| PR | Master | Diff(%) | |
|---|---|---|---|
| Score | 19.46 | 19.47 | -0.08 π΄ |