ruby: add a prefetcher
Review Request #1486 - Created Oct. 24, 2012 and submitted
| Information | |
|---|---|
| Nilay Vaish | |
| gem5 | |
| default | |
| Reviewers | |
| Default | |
Changeset 9312:0c088aab5fdf --------------------------- ruby: add a prefetcher This patch adds a prefetcher for the ruby memory system. The prefetcher is based on a prefetcher implemented by others (well, I don't know who wrote the original). The prefetcher does stride-based prefetching, both unit and non-unit. It obseves the misses in the cache and trains on these. After the training period is over, the prefetcher starts issuing prefetch requests to the controller.
Posted (Oct. 24, 2012, 6:49 a.m.)
I haven't had a chance to review all the patches you just sent out, but this one definitely caught my eye. Can you describe how the prefetcher ties into the protocol? Do you have an example protocol that you can show us? As you probably know, we've integrated prefetchers into Ruby before, but they end up requiring protocol specific changes. It is fine if this does at as. I'm just curious to know if you thought about an easier way to make prefetching protocol independent yet still accurate. BTW, have you ever wondered why the mandatory queue is called "mandatory"? There use to be an optional queue included in each protocol file. :)
Posted (Oct. 28, 2012, 5:22 a.m.)
-
src/mem/ruby/structures/Prefetcher.cc (Diff revision 1) -
next_stride_address, and page_address are not defined in this patch, nor at the head of the current repo.
Posted (Dec. 3, 2012, 12:18 a.m.)
Does any one has any other comments about these patches on prefetching?
Thanks for all the comments. Well Done! This looks good to me.
Posted (Dec. 3, 2012, 3:16 a.m.)
Looks good to me. Why did you choose to add a new directory? Are there other things that you see being added to, or moved into ruby/structures? Is there a difference between what goes in ruby/structures vs ruby/system?
