Mem: Use range operations in bus in preparation for striping
Review Request #1429 - Created Sept. 21, 2012 and submitted
| Information | |
|---|---|
| Andreas Hansson | |
| gem5 | |
| default | |
| Reviewers | |
| Default | |
This patch transitions the bus to use the AddrRange operations instead of directly accessing the start and end. The change facilitates the move to a more elaborate AddrRange class that also supports address striping in the bus by specifying interleaving bits in the ranges. Two new functions are added to the AddrRange to determine if two ranges intersect, and if one is a subset of another. The bus propagation of address ranges is also tweaked such that an update is only propagated if the bus received information from all the downstream slave modules. This avoids the iteration and need for the cycle-breaking scheme that was previously used.
util/regress all passing (disregarding t1000 and eio)
Posted (Sept. 21, 2012, 2:17 a.m.)
-
src/base/addr_range.hh (Diff revision 1) -
Should this not be start <= r.start?
-
src/base/addr_range.hh (Diff revision 1) -
I think the check being carried out is the other way around.
-
src/base/addr_range.hh (Diff revision 1) -
Why do we need to do this? How many characters are we saving any way?
-
src/mem/bus.hh (Diff revision 1) -
Is this intentional?
Review request changed
Updated (Sept. 21, 2012, 2:50 a.m.)
Description: |
|
|||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Diff: |
Revision 2 (+164 -101) |
Posted (Oct. 7, 2012, 7:33 p.m.)
Any feedback? Good to go?
Ship It!
