diff options
author | Nilay Vaish <nilay@cs.wisc.edu> | 2015-09-12 16:16:03 -0500 |
---|---|---|
committer | Nilay Vaish <nilay@cs.wisc.edu> | 2015-09-12 16:16:03 -0500 |
commit | 25cd13dbf1d6f7d306b40c7e2e3d7231b0c5eb04 (patch) | |
tree | 670ae38b6b7e1e70efb9c6b43c66ddd018c0f751 /src/mem/ruby/network/simple/Throttle.hh | |
parent | f611d4f22e913633e884b0d87b4de52def6434f3 (diff) | |
download | gem5-25cd13dbf1d6f7d306b40c7e2e3d7231b0c5eb04.tar.xz |
ruby: simple network: store Switch* in PerfectSwitch and Throttle
There are two reasons for doing so:
a. provide a source of clock to PerfectSwitch. A follow on patch removes sender
and receiver pointers from MessageBuffer means that the object owning the
buffer should have some way of providing timing info.
b. schedule events. A follow on patch removes the consumer class. So the
PerfectSwitch needs some EventManager object to schedule events on its own.
Diffstat (limited to 'src/mem/ruby/network/simple/Throttle.hh')
-rw-r--r-- | src/mem/ruby/network/simple/Throttle.hh | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/mem/ruby/network/simple/Throttle.hh b/src/mem/ruby/network/simple/Throttle.hh index 85bf9691a..405593bb1 100644 --- a/src/mem/ruby/network/simple/Throttle.hh +++ b/src/mem/ruby/network/simple/Throttle.hh @@ -47,20 +47,18 @@ #include "mem/ruby/system/System.hh" class MessageBuffer; +class Switch; class Throttle : public Consumer { public: Throttle(int sID, RubySystem *rs, NodeID node, Cycles link_latency, int link_bandwidth_multiplier, int endpoint_bandwidth, - ClockedObject *em); - Throttle(RubySystem *rs, NodeID node, Cycles link_latency, - int link_bandwidth_multiplier, int endpoint_bandwidth, - ClockedObject *em); + Switch *em); ~Throttle() {} std::string name() - { return csprintf("Throttle-%i", m_sID); } + { return csprintf("Throttle-%i", m_switch_id); } void addLinks(const std::vector<MessageBuffer*>& in_vec, const std::vector<MessageBuffer*>& out_vec); @@ -97,8 +95,10 @@ class Throttle : public Consumer unsigned int m_vnets; std::vector<int> m_units_remaining; - int m_sID; + const int m_switch_id; + Switch *m_switch; NodeID m_node; + int m_link_bandwidth_multiplier; Cycles m_link_latency; int m_wakeups_wo_switch; |