Ha, I see. thank you very much for explaining everything to me:)  I will
start to learn those protocols now and might post more questions if I have
any later.

Best,

Jinzhu

On Fri, Jul 27, 2012 at 7:29 PM, Tushar Krishna <tus...@csail.mit.edu>wrote:

> If you instantiate just one directory in MOESI_hammer, all requests will
> go to it, and it will automatically send out messages in some order … You
> need to then make sure your interconnect delivers them to all nodes in the
> same order which is inherently true with a bus.
>
> I think you should go through both protocols and see which is easier for
> you to understand and closer to what you wish to do, and then go along that
> direction.
>
> It should not be hard to code any topology, including hierarchical switch
> in gem5.
>
> All the best!
> Tushar
>
>
> On Jul 27, 2012, at 6:36 PM, gem5 gem5 wrote:
>
> sounds cool. In this way I need to modify the directory code and somehow
> create a correct order for all the messages? any idea on how to implement
> that?
>
> Do you think it might be a little bit easier if I can create a
> hierarchical switch similar to the one in gems and then modify
> the MOSI_SMP_bcast? I should be able to create a hierarchical switch with
> gem5 right?
>
> Thank you! It's so nice of you!
>
> Best,
>
> Jinzhu
>
> On Fri, Jul 27, 2012 at 6:24 PM, Tushar Krishna <tus...@csail.mit.edu>wrote:
>
>> For instance, you could think of the "directory" in the MOESI_hammer
>> protocol as something analogous to the bus arbiter, which receives unicast
>> requests from all caches, and then sends them out on the bus (broadcast) in
>> some order…
>>
>> - Tushar
>>
>>
>> On Jul 27, 2012, at 6:10 PM, Tushar Krishna wrote:
>>
>> Yes good point, if you use MOSI_SMP_bcast, you do need some ordering
>> point in the network.
>> gem5 does not have a hierarchical switch topology.
>>
>> In terms of direction, I think you need to decide what your exact
>> protocol should be, and then decide whether it is easier to code up
>> MOSI_SMP_bcast in gem5, or modify an existing protocol in gem5 (such as
>> MOESI_hammer) to always perform broadcasts.
>>
>> cheers,
>> Tushar
>>
>>
>> On Jul 27, 2012, at 3:49 PM, gem5 gem5 wrote:
>>
>> Oh, I forgot to ask that if I also need to build hierarchical switch
>> topology for the MOSI_SMP_bcast protocol to guarantee the order required or
>> the current GEM5 supports that already....Thanks.
>>
>> Best,
>>
>> Jinzhu
>>
>> On Fri, Jul 27, 2012 at 3:20 PM, gem5 gem5 <gem5.user....@gmail.com>wrote:
>>
>>> Hi Tushar,
>>>
>>> Your suggestions are really helpful. Thank you very much! For now, I
>>> think I will take Pt2Pt as the basic topology to work with since it has all
>>> the connections. I think I can view it the same way as the single write
>>> multiple read shared-bus crossbar. I just need to create a broadcast
>>> protocol for it.
>>>
>>> You are right, MOESI_hammer is not a good choice since it's essentially
>>> a directory protocol. MOSI_SMP_bcast is a much better reference, although I
>>> am not sure how to modify that since it is for GEMS' hierarchical switch
>>> and it also has some directories inside.  Hope I will figure it out.
>>>
>>> Do you think this is the right direction to go? Thanks a lot again!
>>>
>>> Best,
>>>
>>> Jinzhu
>>>
>>> On Fri, Jul 27, 2012 at 12:44 AM, Tushar Krishna 
>>> <tus...@csail.mit.edu>wrote:
>>>
>>>> Hi Jinzhu,
>>>> Ok so I see two components in your design:
>>>> (1) broadcast-based coherence protocol
>>>> (2) shared-bus based crossbar
>>>>
>>>> For (1) you want every message to be a broadcast. I am not sure if
>>>> MOESI_hammer is the correct protocol to use as your starting point. The
>>>> reason is that MOESI_hammer is essentially a directory protocol, with the
>>>> directory having no state. So every cache miss first goes to its home node,
>>>> and the home node then performs a broadcast to all other caches, and then
>>>> the owner responds to the requestor.
>>>> What you need from what I understand is the cache miss to directly be
>>>> broadcast, like on a bus, and the owner then responding.
>>>> The original GEMS distribution actually came with a broadcast protocol
>>>> for a bus, called MOSI_SMP_bcast.
>>>> You could try to look at that from the GEMS repo, and perhaps code up
>>>> something similar in gem5.
>>>> Or stick to MOESI_hammer for now, but you will need to modify it to
>>>> model the kind of protocol you want.
>>>>
>>>> For (2), you first need to create a topology.
>>>> You can look at configs/topologies to see how topologies are created.
>>>> The routers in the topology get modeled either as garnet-routers or
>>>> simple-routers.
>>>> You can choose to work with either garnet or the default simple network.
>>>> Garnet will however model a 4-5 stage router pipeline. In my paper I
>>>> had optimized this pipeline, and added an mXbar in the switch traversal
>>>> stage. Also note that the released version of garnet does not have
>>>> broadcast support, i.e. a broadcast is converted into individual messages
>>>> at the source, one for each destination and sent out.
>>>> If you use the simple network, the switch models there can handle
>>>> broadcasts. You could perhaps use that as a starting point and then edit
>>>> the code to model the crossbar you want.
>>>>
>>>> cheers,
>>>> Tushar
>>>>
>>>>
>>>> On Jul 26, 2012, at 8:33 PM, gem5 gem5 wrote:
>>>>
>>>> Tushar,
>>>>
>>>> The reason I am modifying the protocol is that I want to implement a
>>>> shared-bus based crossbar where each node has its own dedicated write
>>>> channel and other nodes listen to it. However, I see that ruby does not
>>>> support hardware broadcast, so modifying the protocol seems to me the only
>>>> way to implement this. I think by modifying all the messages to be
>>>> broadcast messages can solve this. It would be really helpful if you could
>>>> provide me more information how to implement this kind of topology. I think
>>>> mXbar is very very close to what I wanna do. Thank you very much!
>>>>
>>>> Best,
>>>>
>>>> Jinzhu
>>>>
>>>> On Thu, Jul 26, 2012 at 7:30 PM, Tushar Krishna 
>>>> <tus...@csail.mit.edu>wrote:
>>>>
>>>>> Hi Jinzhu,
>>>>> Why do you want to broadcast to L1s and the directories? Just to add
>>>>> more messages in the network? MOESI_hammer inherently broadcasts to all 
>>>>> L1s
>>>>> which gives you a broadcast to all nodes. I don't think you should mess
>>>>> with the protocol, unless you have a strong justification for why those
>>>>> extra messages are needed: example you come up with some new protocol that
>>>>> sends more broadcasts instead  of tracking some state etc… In which case,
>>>>> yes you would have to define extra transitions to handle the extra 
>>>>> messages.
>>>>>
>>>>> The two broadcast based protocols provided with gem5 are MOESI_hammer
>>>>> (where a directory broadcasts to all L1s) and MOESI_CMP_token, where L1's
>>>>> broadcast to all L2s …
>>>>>
>>>>> cheers,
>>>>> Tushar
>>>>>
>>>>>
>>>>> On Jul 26, 2012, at 6:21 PM, gem5 gem5 wrote:
>>>>>
>>>>> Hi Tushar,
>>>>>
>>>>> Thanks for your reply! I think you are right. I need to deal with
>>>>> those extra messages. Any suggestions how to do that? Should I define some
>>>>> new transitions and get rid of those messages?
>>>>>
>>>>> I have read your 1 to many paper before.  If I want to implement some
>>>>> crossbar topology which supports broadcast like mXbar, do you think
>>>>> modifying the protocol is the right way to do or there is some other 
>>>>> better
>>>>> method?  Thank you very much for your help.
>>>>>
>>>>> Best,
>>>>>
>>>>> Jinzhu
>>>>>
>>>>>
>>>>>
>>>>> On Thu, Jul 26, 2012 at 12:53 PM, Tushar Krishna <tus...@csail.mit.edu
>>>>> > wrote:
>>>>>
>>>>>> The error has nothing to do with the virtual network being ordered or
>>>>>> not.
>>>>>> If you look at MessageBuffer.hh, line 131, a setOrdering function
>>>>>> needs to be called for each MessageBuffer.
>>>>>> This is called from the coherence protocol's generated files. [The
>>>>>> ordering itself might be true or false depending on the vnet, but this
>>>>>> function has to be called for the message buffer to be valid].
>>>>>>
>>>>>> If all you have changed in the protocol is to broadcast to all L1's
>>>>>> and directories, instead only only to L1's, you also need to account for
>>>>>> what happens when these directories receive these messages. My guess is
>>>>>> that these messages are being inserted into some message buffer that is 
>>>>>> not
>>>>>> part of the protocol specifications and hence this error shows up.
>>>>>>
>>>>>>
>>>>>> - Tushar
>>>>>>
>>>>>>
>>>>>> On Jul 25, 2012, at 5:29 PM, gem5 gem5 wrote:
>>>>>>
>>>>>> > Hi all,
>>>>>> >
>>>>>> > I want to modify MOESI_hammer protocol to broadcast all the
>>>>>> messages. Since multicast is supported, I think it's possible to do this.
>>>>>>  I got some problem with my first step. When I modify
>>>>>> out_msg.Destination.broadcast(MachineType:L1Cache); to be
>>>>>> out_msg.Destination.broadcast() which I assume means to broadcast to all
>>>>>> nodes, inside of action(fn_forwardRequestIfNecessary, "fn", desc="Forward
>>>>>> requests if necessary"), I got some error like this when run the
>>>>>> rubynetwork tester with Pt2Pt topology:
>>>>>> >
>>>>>> > panic: Ordering property of  has not been set
>>>>>> >  @ cycle 40
>>>>>> > [enqueue:build/X86_SE/mem/ruby/buffers/MessageBuffer.cc, line 165]
>>>>>> > Memory Usage: 241400 KBytes
>>>>>> > Program aborted at cycle 40
>>>>>> > Abort
>>>>>> >
>>>>>> > I tried to set the corresponding virtual network forwardFromDir's
>>>>>> ordered="true", but still I cannot get rid of this error. Any help will 
>>>>>> be
>>>>>> appreciated. Thanks a lot!
>>>>>> >
>>>>>> > Jinzhu
>>>>>> >
>>>>>> >
>>>>>> > _______________________________________________
>>>>>> > gem5-users mailing list
>>>>>> > gem5-users@gem5.org
>>>>>> > http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
>>>>>>
>>>>>> _______________________________________________
>>>>>> gem5-users mailing list
>>>>>> gem5-users@gem5.org
>>>>>> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
>>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> gem5-users mailing list
>>>>> gem5-users@gem5.org
>>>>> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> gem5-users mailing list
>>>>> gem5-users@gem5.org
>>>>> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
>>>>>
>>>>
>>>> _______________________________________________
>>>> gem5-users mailing list
>>>> gem5-users@gem5.org
>>>> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> gem5-users mailing list
>>>> gem5-users@gem5.org
>>>> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
>>>>
>>>
>>>
>> _______________________________________________
>> gem5-users mailing list
>> gem5-users@gem5.org
>> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
>>
>>
>> _______________________________________________
>> gem5-users mailing list
>> gem5-users@gem5.org
>> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
>>
>>
>>
>> _______________________________________________
>> gem5-users mailing list
>> gem5-users@gem5.org
>> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
>>
>
> _______________________________________________
> gem5-users mailing list
> gem5-users@gem5.org
> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
>
>
>
> _______________________________________________
> gem5-users mailing list
> gem5-users@gem5.org
> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
>
_______________________________________________
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to