Go to the documentation of this file.
62 :
Network(
p), m_buffer_size(
p.buffer_size),
63 m_endpoint_bandwidth(
p.endpoint_bandwidth),
64 m_adaptive_routing(
p.adaptive_routing),
69 i !=
p.routers.end(); ++
i) {
72 s->init_net_ptr(
this);
101 SimpleExtLink *simple_link = safe_cast<SimpleExtLink*>(link);
104 routing_table_entry[0], simple_link->
m_latency,
133 queues[
i] = buffer_ptr;
137 SimpleIntLink *simple_link = safe_cast<SimpleIntLink*>(link);
140 m_switches[src]->addOutPort(queues, routing_table_entry[0],
150 for (MessageSizeType
type = MessageSizeType_FIRST;
151 type < MessageSizeType_NUM; ++
type) {
154 csprintf(
"msg_count.%s", MessageSizeType_to_string(
type)).c_str());
161 csprintf(
"msg_byte.%s", MessageSizeType_to_string(
type)).c_str());
189 out <<
"[SimpleNetwork]";
230 uint32_t num_functional_writes = 0;
233 num_functional_writes +=
m_switches[
i]->functionalWrite(pkt);
239 return num_functional_writes;
244 : statistics::
Group(parent)
void print(std::ostream &out) const
static uint32_t m_virtual_networks
statistics::Formula * m_msg_bytes[MessageSizeType_NUM]
std::string PortDirection
static uint32_t MessageSizeType_to_int(MessageSizeType size_type)
void init()
init() is called after all C++ SimObjects have been created and all ports are connected.
gem5::ruby::SimpleNetwork::NetworkStats networkStats
int m_num_connected_buffers
void makeExtInLink(NodeID src, SwitchID dest, BasicLink *link, std::vector< NetDest > &routing_table_entry)
const FlagsType nozero
Don't print if this is zero.
virtual void init()
init() is called after all C++ SimObjects have been created and all ports are connected.
void createLinks(Network *net)
std::string csprintf(const char *format, const Args &...args)
constexpr uint64_t mask(unsigned nbits)
Generate a 64-bit mask of 'nbits' 1s, right justified.
NetworkStats(statistics::Group *parent)
std::vector< MessageBuffer * > m_int_link_buffers
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
void regStats()
Callback to set stat parameters.
NodeID getLocalNodeID(NodeID global_id) const
std::vector< std::vector< MessageBuffer * > > m_fromNetQueues
void makeExtOutLink(SwitchID src, NodeID dest, BasicLink *link, std::vector< NetDest > &routing_table_entry)
virtual void regStats()
Callback to set stat parameters.
std::vector< std::vector< MessageBuffer * > > m_toNetQueues
SimpleNetworkParams Params
uint32_t functionalWrite(Packet *pkt)
Topology * m_topology_ptr
bool functionalRead(Packet *pkt)
statistics::Formula * m_msg_counts[MessageSizeType_NUM]
SimpleNetwork(const Params &p)
std::vector< Switch * > m_switches
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
void makeInternalLink(SwitchID src, SwitchID dest, BasicLink *link, std::vector< NetDest > &routing_table_entry, PortDirection src_outport, PortDirection dst_inport)
Generated on Tue Sep 21 2021 12:25:41 for gem5 by doxygen 1.8.17