Hi Jinzhu,
The crossbar topology in gem5 simply connects all controllers (cache and directory) to one router/switch. If two cores A and B send out a broadcast, the requirement is that all nodes receive the broadcast in the same order. The released version of garnet does not have broadcast support: every broadcast is sent as multiple unicasts from the source Network Interface. So it is possible that some cores receive A's unicasts before those B, and vice versa, breaking ordering. While you are testing out your protocol, I would suggest using the simple network (don't add the --garnet-network option) which has the capability of replicating messages.
I am not 100% sure if it'll solve this issue but might.
If you still get an ordering violation, you will need to go into the network and see why messages from A and B get delivered in different orders to cores.

Once you are sure that the protocol works, then you can either edit the simple network switch itself to model your design (but the simple network has a fuzzy congestion model), or plug in garnet (if you want a more detailed network model) and add broadcast support to it.

- Tushar


On 08/06/2012 05:00 PM, gem5 gem5 wrote:
Hi Tushar,

Thanks a lot! I used the command you gave to me and find out that the total ordering of the protocol is violated. I used the Crossbar topology in GEM5. I think it's a simplified version of HIERARCHICAL SWITCH in GEMS, so it should provide total ordering(the root node is the serialization point). Do I misunderstand something here? Can the protocol cause the violation if it's not the topology? Thank you!

Best,
Jinzhu

On Fri, Aug 3, 2012 at 8:12 PM, Tushar Krishna <[email protected] <mailto:[email protected]>> wrote:

    Hi Jinzhu,
    The error is that your protocol found an invalid transition when
    in state "I".
    If you grep for "Invalid transition", you will see that this error
    message was most likely printed out from
    build/X86_SE/mem/protocol/L1Cache_Transitions.cc

    You can print out a protocol trace in such cases to understand
    what happened.
    ./build/X86_SE/gem5.opt --debug-flags=ProtocolTrace
    configs/example/ruby_random_test.py --num-cpus=4 --num-dirs=1
    --topology=Crossbar --garnet-network=flexible

    Look at the requests/responses for that address and figure out
    what went wrong…

    cheers,
    Tushar


    On Jul 31, 2012, at 6:50 PM, gem5 gem5 wrote:

    > Hi all,
    >
    > I want to move the MOSI_SMP_bcast protocol from GEMS to GEM5. I
    modified the original MOSI_SMP_bcast_1level protocol to become
    MOSI_CMP_bcast_1level. However, when I ran it with
    ruby_random_test.py on Crossbar topology ( build/X86_SE/gem5.opt
    --debug-flags=Ruby configs/example/ruby_random_test.py
    --num-cpus=4 --num-dirs=1 --topology=Crossbar
    --garnet-network=flexible
    > ), I got an error like this:
    >
    > "fatal: Invalid transition
    > system.l1_cntrl3 time: 2835 addr: [0x14c0, line 0x14c0] event:
    Data state: I"
    >
    > Here are my questions;
    >
    > 1. GEMS uses a HIERARCHICAL_SWITCH to work  as a logical bus to
    provide total ordering. As I understand it, the crossbar
    implemented in GEM5 is a simplified version of
    HIERARCHICAL_SWITCH. The root router is the serialization point
    and it should provide the total ordering for the broadcast
    protocol. I wonder if this is correct or not and if this error is
    due to lack of total ordering.
    > 2. The original MOSI_SMP_bcast_1level-cache.sm has a StoreBuffer
    inside, but it is no long supported in GEM5 , I wonder if this
    could be the problem.  What else changes of SLICC in GEM5 could
    introduce this error?
    > 3. If none of those is the reason, I wonder what 's the right
    way to debug and fix this error. I don't have much experience with
    this..
    >
    > Thanks a lot!
    >
    > Best,
    >
    > Jinzhu
    >
    > _______________________________________________
    > gem5-users mailing list
    > [email protected] <mailto:[email protected]>
    > http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

    _______________________________________________
    gem5-users mailing list
    [email protected] <mailto:[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
_______________________________________________
gem5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to