[Gems-users] Debugging MOESI_SMP_directory protocol with tester


Date: Mon, 14 Sep 2009 23:05:35 -0400
From: Edward Lee <edwl202@xxxxxxxxx>
Subject: [Gems-users] Debugging MOESI_SMP_directory protocol with tester
Hi all,

I am trying to use the tester to be able to understand the MOESI_SMP_directory protocol better. I ran the tester with the following command:

./amd64-linux/generated/MOESI_SMP_directory/bin/tester.exec -p 16 -a 1 -z little.trace -s 1

Network is based on GARNET (4x4 MESH with 1 cycle L1 Cache, 10 cycles Directory, 20 cycles L1Cache-to-L1Cache latency)

Little.trace is as given as in the GEMS wiki:
7 0x400 0 LD
1 0x400 0 LD
8 0x400 0 LD
12 0x400 0 ST
1 0x400 0 LD
Here is a partial snapshot of the output:

      1    7   -1        Seq               Begin       >       [0x400, line 0x400] LD
      4    7   0    L1Cache                Load     NP>IS     [0x400, line 0x400]
    123   0   0  Directory                GETS      I>IS     [0x400, line 0x400]
    376   7  -1        Seq                Done       >       [0x400, line 0x400] 375 cycles NULL LD Yes
    376   7   0    L1CacheExclusive_Data_Clean     IS>E      [0x400, line 0x400]
    401   1  -1        Seq               Begin       >       [0x400, line 0x400] LD
    404   1   0    L1Cache                Load     NP>IS     [0x400, line 0x400]
    449   0   0  Directory                GETS     IS>IS     [0x400, line 0x400]
    450   0   0  Directory                GETS     IS>IS     [0x400, line 0x400]
    451   0   0  Directory                GETS     IS>IS     [0x400, line 0x400]
    452   0   0  Directory                GETS     IS>IS     [0x400, line 0x400]
    453   0   0  Directory                GETS     IS>IS     [0x400, line 0x400]
    454   0   0  Directory                GETS     IS>IS     [0x400, line 0x400]
    455   0   0  Directory                GETS     IS>IS     [0x400, line 0x400]
    456   0   0  Directory                GETS     IS>IS     [0x400, line 0x400]
    457   0   0  Directory                GETS     IS>IS     [0x400, line 0x400]
    458   0   0  Directory                GETS     IS>IS     [0x400, line 0x400]
    459   0   0  Directory                GETS     IS>IS     [0x400, line 0x400]
    460   0   0  Directory                GETS     IS>IS     [0x400, line 0x400]
    461   0   0  Directory                GETS     IS>IS     [0x400, line 0x400]
    462   0   0  Directory                GETS     IS>IS     [0x400, line 0x400]
    463   0   0  Directory                GETS     IS>IS     [0x400, line 0x400]
    464   0   0  Directory                GETS     IS>IS     [0x400, line 0x400]
    465   0   0  Directory                GETS     IS>IS     [0x400, line 0x400]
    466   0   0  Directory                GETS     IS>IS     [0x400, line 0x400]
    467   0   0  Directory                GETS     IS>IS     [0x400, line 0x400]
    468   0   0  Directory                GETS     IS>IS     [0x400, line 0x400]
    469   0   0  Directory                GETS     IS>IS     [0x400, line 0x400]
    470   0   0  Directory                GETS     IS>IS     [0x400, line 0x400]
    471   0   0  Directory                GETS     IS>IS     [0x400, line 0x400]
    472   0   0  Directory                GETS     IS>IS     [0x400, line 0x400]
    473   0   0  Directory                GETS     IS>IS     [0x400, line 0x400]
    474   0   0  Directory                GETS     IS>IS     [0x400, line 0x400]
    475   0   0  Directory                GETS     IS>IS     [0x400, line 0x400]
    476   0   0  Directory                GETS     IS>IS     [0x400, line 0x400]
    477   0   0  Directory                GETS     IS>IS     [0x400, line 0x400]
    478   0   0  Directory                GETS     IS>IS     [0x400, line 0x400]
    479   0   0  Directory                GETS     IS>IS     [0x400, line 0x400]
    480   0   0  Directory                GETS     IS>IS     [0x400, line 0x400]
    481   0   0  Directory                GETS     IS>IS     [0x400, line 0x400]
    482   0   0  Directory                GETS     IS>IS     [0x400, line 0x400]
    483   0   0  Directory                GETS     IS>IS     [0x400, line 0x400]
    484   0   0  Directory                GETS     IS>IS     [0x400, line 0x400]
    485   0   0  Directory                GETS     IS>IS     [0x400, line 0x400]
    486   0   0  Directory                GETS     IS>IS     [0x400, line 0x400]
    487   0   0  Directory                GETS     IS>IS     [0x400, line 0x400]
    488   0   0  Directory                GETS     IS>IS     [0x400, line 0x400]
    489   0   0  Directory                GETS     IS>IS     [0x400, line 0x400]
    490   0   0  Directory                GETS     IS>IS     [0x400, line 0x400]
    491   0   0  Directory                GETS     IS>IS     [0x400, line 0x400]
    492   0   0  Directory                GETS     IS>IS     [0x400, line 0x400]
    493   0   0  Directory   Exclusive_Unblock     IS>M      [0x400, line 0x400]
    493   0   0  Directory                GETS      M>MO     [0x400, line 0x400]
    711   7   0    L1Cache            Fwd_GETS      E>O      [0x400, line 0x400]
    820   1  -1        Seq                Done       >       [0x400, line 0x400] 419 cycles NULL LD Yes
    820   1   0    L1Cache                Data     IS>S      [0x400, line 0x400]
    867   0   0  Directory             Unblock     MO>O      [0x400, line 0x400]
    901   8  -1        Seq               Begin       >       [0x400, line 0x400] LD

My question is:

- what is the deciding factor for the latency between 449-493 (44 cycles) while directory is issuing the "z (Recycle the request queue)" action? That is as I change the network latency parameters the delay in that region changes, but I couldn't understand why?

Thanks,

Ed
[← Prev in Thread] Current Thread [Next in Thread→]
  • [Gems-users] Debugging MOESI_SMP_directory protocol with tester, Edward Lee <=