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__
Cycles getLatency() const
std::vector< MessageBuffer * > m_out
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)
std::vector< MessageBuffer * > m_in
Stats::Formula m_msg_bytes[MessageSizeType_NUM]
void init(NodeID node, Cycles link_latency, int link_bandwidth_multiplier, int endpoint_bandwidth)
const Stats::Vector & getMsgCount(unsigned int type) const
std::vector< int > m_units_remaining
A vector of scalar stats.
int getLinkBandwidth() const
RubySystem * m_ruby_system
This is a simple scalar statistic, like a counter.
void print(std::ostream &out) const
Stats::Scalar m_link_utilization
const Stats::Scalar & getUtilization() const
Throttle(int sID, RubySystem *rs, NodeID node, Cycles link_latency, int link_bandwidth_multiplier, int endpoint_bandwidth, Switch *em)
double m_link_utilization_proxy
int m_link_bandwidth_multiplier
std::string csprintf(const char *format, const Args &...args)
Throttle & operator=(const Throttle &obj)
Stats::Vector m_msg_counts[MessageSizeType_NUM]
std::ostream & operator<<(std::ostream &out, const Throttle &obj)
void regStats(std::string name)
void operateVnet(int vnet, int &bw_remainin, bool &schedule_wakeup, MessageBuffer *in, MessageBuffer *out)