39 #ifndef __MEM_RUBY_NETWORK_SIMPLE_SWITCH_HH__
40 #define __MEM_RUBY_NETWORK_SIMPLE_SWITCH_HH__
46 #include "mem/protocol/MessageSizeType.hh"
49 #include "params/Switch.hh"
67 const NetDest& routing_table_entry,
68 Cycles link_latency,
int bw_multiplier);
78 void print(std::ostream& out)
const;
109 #endif // __MEM_RUBY_NETWORK_SIMPLE_SWITCH_HH__
void addInPort(const std::vector< MessageBuffer * > &in)
Switch & operator=(const Switch &obj)
Cycles is a wrapper class for representing cycle counts, i.e.
const Throttle * getThrottle(LinkID link_number) const
std::vector< MessageBuffer * > m_port_buffers
void resetStats()
Reset statistics associated with this object.
bool functionalRead(Packet *)
void init_net_ptr(SimpleNetwork *net_ptr)
std::vector< Throttle * > m_throttles
PerfectSwitch * m_perfect_switch
uint32_t functionalWrite(Packet *)
Stats::Formula m_msg_bytes[MessageSizeType_NUM]
void init()
init() is called after all C++ SimObjects have been created and all ports are connected.
SimpleNetwork * m_network_ptr
void regStats()
Register statistics for this object.
const Stats::Formula & getMsgCount(unsigned int type) const
void print(std::ostream &out) const
unsigned m_num_connected_buffers
A Packet is used to encapsulate a transfer between two objects in the memory system (e...
Stats::Formula m_avg_utilization
Stats::Formula m_msg_counts[MessageSizeType_NUM]
Declaration of the Packet class.
void addOutPort(const std::vector< MessageBuffer * > &out, const NetDest &routing_table_entry, Cycles link_latency, int bw_multiplier)
std::ostream & operator<<(std::ostream &out, const Switch &obj)