ruby: enable multiple clock domains
Review Request #1683 - Created Jan. 29, 2013 and submitted
| Information | |
|---|---|
| Nilay Vaish | |
| gem5 | |
| default | |
| Reviewers | |
| Default | |
Changeset 9506:ec22f5bb6b33 --------------------------- ruby: enable multiple clock domains This patch allows ruby to have multiple clock domains. As I understand with this patch, controllers can have different frequencies. The entire network needs to run at a single frequency. The idea is that with in an object, time is treated in terms of cycles. But the messages that are passed from one entity to another should contain the time in Ticks. As of now, this is only true for the message buffers, but not for the links in the network. As I understand the code, all the entities in different networks (simple, garnet-fixed, garnet-flexible) should be clocked at the same frequency. Another problem is that the directory controller has to operate at the same frequency as the ruby system. This is because the memory controller does not make use of the Message Buffer, and instead implements a buffer of its own. So, it has no idea of the frequency at which the directory controller is operating and uses ruby system's frequency for scheduling events.
Regressions pass. Patch has been tested very lightly using the ruby random tester.
Issue Summary
6
6
0
0
| Description | From | Last Updated | Status |
|---|---|---|---|
| This looks odd to me. Get Cycles and then turn ticks to cycles? | Andreas Hansson | Jan. 31, 2013, 6:09 p.m. | Open |
| Is getTime not in Cycles? | Andreas Hansson | Jan. 31, 2013, 6:09 p.m. | Open |
| Naming should change if the type is now Ticks | Andreas Hansson | Jan. 31, 2013, 6:09 p.m. | Open |
| Change to getTick? | Andreas Hansson | Jan. 31, 2013, 6:09 p.m. | Open |
| Confusing :-) | Andreas Hansson | Jan. 31, 2013, 6:09 p.m. | Open |
| Seems unrelated. | Andreas Hansson | Jan. 31, 2013, 6:09 p.m. | Open |
Posted (Jan. 31, 2013, 6:09 p.m.)
This patch is going in a good direction, but at the moment I find the naming and typing rather confusing. (it also highlights that perhaps we should make Tick a class just like Cycles to enable us to specify an explicit constructor and avoid gcc being helpful with implicit casting)
-
src/mem/ruby/buffers/MessageBuffer.cc (Diff revision 1) -
This looks odd to me. Get Cycles and then turn ticks to cycles?
-
src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.cc (Diff revision 1) -
Is getTime not in Cycles?
-
src/mem/ruby/slicc_interface/Message.hh (Diff revision 1) -
Naming should change if the type is now Ticks
-
src/mem/ruby/slicc_interface/Message.hh (Diff revision 1) -
Change to getTick?
-
src/mem/ruby/slicc_interface/Message.hh (Diff revision 1) -
Confusing :-)
-
src/mem/ruby/slicc_interface/RubyRequest.hh (Diff revision 1) -
Seems unrelated.
Review request changed
Updated (Jan. 31, 2013, 9:48 p.m.)
Description: |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Diff: |
Revision 2 (+60 -100) |
From my side is fine. I can imagine it shakes some stats around though...
Posted (Feb. 2, 2013, 1:32 a.m.)
Does any one else has any comments to make, especially those who use ruby more often? Brad, Derek, Jason, Joel, Marc, ..., any comments?
Review request changed
Updated (Feb. 4, 2013, 11:17 p.m.)
Summary: |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Description: |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Diff: |
Revision 3 (+145 -150) |
