Hi Mann, Many of the SLICC experts are perhaps not actively monitoring this list currently, hence you have not gotten a reply. While I have not used MessageBuffers much, here are my 2 cents.
Try to read up on SLICC (http://gem5.org/SLICC) and Life of a Memory Request in Ruby (http://gem5.org/Ruby). In each protocol file, messages are simply enqueued into message buffers. Each protocol .sm file generates a controller (e.g. L1 controller, L2 controller, Directory controller etc). These controllers are connected together via a network topology. The network-interface (within the network) connected to a source controller (say L1) calls the dequeue, transports the message to the destination network-interface, and then enqueues it into the destination controller's (say L2) message buffer. A line like peek(responseToCache_in, ResponseMsg, block_on="Address") inside the L2 controller's SLICC code dequeues it. If you want to create something purely inside Ruby, you can just call enqueue, dequeue, isReady etc functions for the MessageBuffer (src/mem/ruby/buffers/MessageBuffer.hh). If you want to use SLICC, then simply follow the same things the L1 and L2 .sm files to do to communicate with each other, and you can check the generated c++ (which you can check in the build directory) to see if the behavior you required was indeed generated. Hope this helps, All the best, Tushar On Jun 7, 2013, at 7:17 PM, Mann wrote: > hii > > is there a doc to understand how MessageBuffer used & work in protocol files, > or can someone explain their usage ? > eg. MessageBuffer requestFromL1Cache, network="To", virtual_network="0", > ordered="false", vnet_type="request"; > > -- > Cheers........... > Mann > _______________________________________________ > gem5-users mailing list > [email protected] > http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
_______________________________________________ gem5-users mailing list [email protected] http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
