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

Reply via email to