mem: hmc - top level design
Review Request #2986 - Created July 23, 2015 and submitted
| Information | |
|---|---|
| Erfan Azarkhish | |
| gem5 | |
| default | |
| Reviewers | |
| Default | |
Changeset 11185:1b6cb647644a
---------------------------
mem: hmc - top level designThis patch enables modeling a complete Hybrid Memory Cube (HMC) device. It
highly reuses the existing components in gem5's general memory system with
some small modifications. This changeset requires additional patches to model
a complete HMC device.
gem5 compiles
fs.py executes and Linux boots correctly.
hmctest.py executes correctly, and stats correlate with cycle-accurate simulation
Issue Summary
| Description | From | Last Updated | Status |
|---|---|---|---|
| Cycles as the type Should you use divCeil here? Should there not be overheads in addition to the packet size? ... | Andreas Hansson | July 28, 2015, 2:30 p.m. | Open |
| no need to do this, call schedTimingResp(pkt, t, true). Why would changing the order be a problem? | Andreas Hansson | July 28, 2015, 2:30 p.m. | Open |
| Same as the other one in terms of units, divCeil, and flit overhead. We should definitely add the pkt->headerDelay before ... | Andreas Hansson | July 28, 2015, 2:30 p.m. | Open |
-
src/mem/serial_link.cc (Diff revision 1) -
Cycles as the type
Should you use divCeil here?
Should there not be overheads in addition to the packet size? 16 bytes (make it a parameter?)
-
src/mem/serial_link.cc (Diff revision 1) -
no need to do this, call schedTimingResp(pkt, t, true).
Why would changing the order be a problem?
-
src/mem/serial_link.cc (Diff revision 1) -
Same as the other one in terms of units, divCeil, and flit overhead.
We should definitely add the pkt->headerDelay before zeroing it.
Should we not also add pkt->payloadDelay? Can we start serialising before the "link controller" has the entire packet?
Could we split this? The Changes to DRAMCtrl are good to go. The SerialLink needs a tiny bit of work.
-
configs/common/MemConfig.py (Diff revision 1) -
Makes sense. The change to MemConfig.py is good to go.
Description: |
|
||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Diff: |
Revision 2 (+555 -15) |
Change Summary:
Serial link model has been removed from this patch, and a separate review request has been created for it
Description: |
|
|---|
Description: |
|
||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Diff: |
Revision 3 (+559 -15) |
Description: |
|
||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Diff: |
Revision 4 (+559 -15) |
Format this patch again. Read the following page: http://gem5.org/Submitting_Contributions
Description: |
|
||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Diff: |
Revision 5 (+586 -15) |
Summary: |
|
|||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Description: |
|
Summary: |
|
||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Description: |
|
||||||||||||||||||||||||||||||||||||||||||
Diff: |
Revision 6 (+601 -20) |
Summary: |
|
||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Description: |
|
||||||||||||||||||||||||||||||
Diff: |
Revision 7 (+601 -20) |
You need to add copyrights to all the new files that are being added.
-
configs/common/HMC.py (Diff revision 7) -
Why do we need to derive HMCSystem from SubSystem?
-
configs/example/fs.py (Diff revision 7) -
I think all of this code should be in MemConfig.py.
-
configs/example/hmctest.py (Diff revision 7) -
Drop this file. Sooner or later it would become out of date. Instead add a new regression test for HMC.
Description: |
|
|||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Diff: |
Revision 8 (+584 -18) |
-
configs/common/HMC.py (Diff revision 8) -
How about having system.hmc.controller? It seems strange that this particular component is being treated differently compared all other components.
-
configs/common/MemConfig.py (Diff revision 8) -
Not required any longer.
Description: |
|
|||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Diff: |
Revision 9 (+581 -18) |
Can we close the open issues (if they are resolved)?
I also think we should split out the changes to the HMC DRAM config into a separate patch. That can then go in with the serial link without having to close out the bigger config system issues.
Summary: |
|
||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Description: |
|
||||||||||||||||||||||||||||||||||||
Diff: |
Revision 10 (+254 -6) |
