mem: write streaming support via WriteInvalidate promotion
Review Request #2341 - Created Aug. 13, 2014 and submitted
| Information | |
|---|---|
| Andreas Hansson | |
| gem5 | |
| default | |
| Reviewers | |
| Default | |
Changeset 10323:33baf6c26f18 --------------------------- mem: write streaming support via WriteInvalidate promotion Support full-block writes directly rather than requiring RMW: * a cache line is allocated in the cache upon receipt of a WriteInvalidateReq, not the WriteInvalidateResp. * only top-level caches allocate the line; the others just pass the request along and invalidate as necessary. * to close a timing window between the *Req and the *Resp, a new metadata bit tracks whether another cache has read a copy of the new line before the writeback to memory.
Issue Summary
2
2
0
0
| Description | From | Last Updated | Status |
|---|---|---|---|
| I would not want to call this request WriteInvalidate if it is not writing to the block. Why not just ... | Nilay Vaish | Aug. 20, 2014, 9:48 a.m. | Open |
| I do not like this check. You have marked that WriteInvalidateReq requires a response in packet.cc. And here you are ... | Nilay Vaish | Aug. 20, 2014, 9:48 a.m. | Open |
Review request changed
Updated (Aug. 14, 2014, 12:54 a.m.)
Description: |
|
|||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Diff: |
Revision 2 (+162 -74) |
Review request changed
Updated (Aug. 15, 2014, 7:24 a.m.)
Description: |
|
|||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Diff: |
Revision 3 (+179 -76) |
Posted (Aug. 20, 2014, 9:48 a.m.)
I think we need better explanation in the opening comment. While I sort of understand what the purpose, I feel lost in the mass of code in cache_impl.hh.
-
src/mem/cache/cache_impl.hh (Diff revision 3) -
I would not want to call this request WriteInvalidate if it is not writing to the block. Why not just call it invalidate?
-
src/mem/cache/cache_impl.hh (Diff revision 3) -
I do not like this check. You have marked that WriteInvalidateReq requires a response in packet.cc. And here you are testing that pkt->cmd is not WriteInvalidateReq.
Review request changed
Updated (Aug. 22, 2014, 10:08 p.m.)
Description: |
|
|||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Diff: |
Revision 4 (+206 -87) |
Review request changed
Updated (Aug. 27, 2014, 9:16 a.m.)
Description: |
|
|||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Diff: |
Revision 5 (+190 -79) |
very much look forward to this. doFastWrites is always set to true. Does it make sense to add doFastWrites to the list of parameters in BaseCache.py?
