Go to the documentation of this file.
33 #ifndef __MEM_RUBY_NETWORK_GARNET_0_NETWORKINTERFACE_HH__
34 #define __MEM_RUBY_NETWORK_GARNET_0_NETWORKINTERFACE_HH__
47 #include "params/GarnetNetworkInterface.hh"
65 typedef GarnetNetworkInterfaceParams
Params;
71 SwitchID router_id, uint32_t consumerVcs);
78 void print(std::ostream& out)
const;
159 std::stringstream
ss;
250 std::stringstream
ss;
315 #endif // __MEM_RUBY_NETWORK_GARNET_0_NETWORKINTERFACE_HH__
std::shared_ptr< Message > MsgPtr
std::vector< OutputPort * > outPorts
std::vector< int > _vnets
void scheduleOutputLink()
This function looks at the NI buffers if some buffer has flits which are ready to traverse the link i...
void init_net_ptr(GarnetNetwork *net_ptr)
std::vector< MessageBuffer * > outNode_ptr
uint32_t functionalWrite(Packet *)
std::vector< InputPort * > inPorts
void addNode(std::vector< MessageBuffer * > &inNode, std::vector< MessageBuffer * > &outNode)
std::vector< flitBuffer > niOutVcs
void incrementStats(flit *t_flit)
~NetworkInterface()=default
OutputPort * getOutportForVnet(int vnet)
void addOutPort(NetworkLink *out_link, CreditLink *credit_link, SwitchID router_id, uint32_t consumerVcs)
constexpr uint64_t mask(unsigned nbits)
Generate a 64-bit mask of 'nbits' 1s, right justified.
int get_router_id(int vnet)
int calculateVC(int vnet)
flitBuffer * _outFlitQueue
CreditLink * inCreditLink()
std::vector< Tick > m_ni_out_vcs_enqueue_time
bool isVnetSupported(int pVnet)
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
OutputPort(NetworkLink *outLink, CreditLink *creditLink, int routerID)
std::vector< int > vc_busy_counter
void scheduleFlit(flit *t_flit)
InputPort * getInportForVnet(int vnet)
const int m_virtual_networks
std::vector< OutVcState > outVcState
GarnetNetwork * m_net_ptr
void scheduleOutputPort(OutputPort *oPort)
bool flitisizeMessage(MsgPtr msg_ptr, int vnet)
The ClockedObject class extends the SimObject with a clock and accessor functions to relate ticks to ...
NetworkLink * outNetLink()
std::vector< int > mVnets
std::vector< MessageBuffer * > inNode_ptr
std::vector< int > m_stall_count
std::vector< int > m_vc_allocator
NetworkInterface(const Params &p)
bool functionalRead(Packet *pkt, WriteMask &mask)
void addInPort(NetworkLink *in_link, CreditLink *credit_link)
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
CreditLink * _inCreditLink
void vcRoundRobin(int vc)
NetworkLink * _outNetLink
GarnetNetworkInterfaceParams Params
void print(std::ostream &out) const
flitBuffer * outFlitQueue()
Generated on Sun Jul 30 2023 01:56:58 for gem5 by doxygen 1.8.17