On Tue, October 9, 2012 6:16 pm, tejasi pimpalkhute wrote: > Thanks, Nilay. I can know the ranks and banks from the physical address > (datatype physical_address_t) which I get from MemoryMsg or RubyRequest > but > my main issue is how to extract that information from a single flit. As > per > the current code, I can only get a msg_ptr from it of type Message*. I am > able to typecast the message ptr to NetworkMessage msg_ptr safely and can > get destination of the flit of the type NetDest, I can also extract the > message type from it using MessageSizeType() (please see code below) but > that doesn't quite serve my purpose. I need to know at the router if the > request flit is memory_read or memory_write and its physical address at > the > memory. I am assuming I can schedule the memory request flits at the > switch > allocator(please correct me if I am wrong). > > Code at SWallocator_d.cc > > // remove flit from Input Unit > flit_d *t_flit = m_input_unit[inport]->getTopFlit(invc); > > MsgPtr& msg_ptr = t_flit->get_msg_ptr(); > > const NetworkMessage* netMess = dynamic_cast<const > NetworkMessage*>(msg_ptr.get()); > const MessageSizeType& type = netMess->getMessageSize(); > const NetDest& dest = netMess->getDestination() ; > > > Also, could you please help me in understanding the journey of memory > packets better, e.g. if a request originates at a node and if that request > is memory writeback, in that case what is the typical itinerary of a flit > of that request message to get to the main memory? Sorry for pestering you > with a lot of questions. > Thanks a lot for your guidance. > >
I strongly suggest that you read the documentation on Ruby memory system available on gem5.org. -- Nilay _______________________________________________ gem5-users mailing list gem5-users@gem5.org http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users