Go to the documentation of this file.
38 #ifndef __MEM_RUBY_NETWORK_SIMPLE_THROTTLE_HH__
39 #define __MEM_RUBY_NETWORK_SIMPLE_THROTTLE_HH__
56 int link_bandwidth_multiplier,
int endpoint_bandwidth,
81 void print(std::ostream& out)
const;
85 int endpoint_bandwidth);
86 void operateVnet(
int vnet,
int &bw_remainin,
bool &schedule_wakeup,
124 #endif // __MEM_RUBY_NETWORK_SIMPLE_THROTTLE_HH__
std::vector< MessageBuffer * > m_out
const Stats::Vector & getMsgCount(unsigned int type) const
double m_link_utilization_proxy
int m_link_bandwidth_multiplier
Throttle(int sID, RubySystem *rs, NodeID node, Cycles link_latency, int link_bandwidth_multiplier, int endpoint_bandwidth, Switch *em)
void print(std::ostream &out) const
A vector of scalar stats.
void regStats(std::string name)
This is a simple scalar statistic, like a counter.
Stats::Formula m_msg_bytes[MessageSizeType_NUM]
Throttle & operator=(const Throttle &obj)
RubySystem * m_ruby_system
Stats::Scalar m_link_utilization
Cycles getLatency() const
std::vector< MessageBuffer * > m_in
std::ostream & operator<<(std::ostream &out, const Throttle &obj)
Cycles is a wrapper class for representing cycle counts, i.e.
void addLinks(const std::vector< MessageBuffer * > &in_vec, const std::vector< MessageBuffer * > &out_vec)
int getLinkBandwidth() const
void operateVnet(int vnet, int &bw_remainin, bool &schedule_wakeup, MessageBuffer *in, MessageBuffer *out)
std::vector< int > m_units_remaining
Stats::Vector m_msg_counts[MessageSizeType_NUM]
std::string csprintf(const char *format, const Args &...args)
const Stats::Scalar & getUtilization() const
void init(NodeID node, Cycles link_latency, int link_bandwidth_multiplier, int endpoint_bandwidth)
Generated on Wed Sep 30 2020 14:02:13 for gem5 by doxygen 1.8.17