[Gems-users] MOESI CMP Protocol State Questions


Date: Sun, 27 Feb 2011 13:44:39 -0500
From: Malek Musleh <malek.musleh@xxxxxxxxx>
Subject: [Gems-users] MOESI CMP Protocol State Questions
Hi,

Would someone be able to explain the difference between the M/M_W, and
MM/MM_W states?

    M, desc="Modified (dirty)";
    M_W, desc="Modified (dirty)";
    MM, desc="Modified (dirty and locally modified)";
    MM_W, desc="Modified (dirty and locally modified)";

1)
>From the descriptions, It is not clear how a block that is in M State
would need to be further specified as 'locally modified' because no
other cache should have a copy of that block if another cache has it
in M State?

2)
Also, when does the TimeOut Event used/needed? I see in the transition
list that a Use_Timeout EVent causes a transition of a cache block in
MM_W State to go to MM, and correspondingly the same for M_W -> M.

3)
Does the lockout period allow a cpu to make multiple modifications to
a cache block in M while preventing other cache read requests from
converting it to Shared/Owned?

4) Can I use this coherence protocol but not utilize the timeout
feature? I see from one of the 'in_port' code sections that it
triggers the Use_TimeOut Event, but there are multiple 'in_port' code
sections, so do all these get called in parallel or how so?

>From what I understand, the in_port section corresponding to the
Request Network I know gets called, because it binds incoming messages
/ coherence actions, but I am not sure about the others.

Any help would be greatly appreciated.

Malek
[← Prev in Thread] Current Thread [Next in Thread→]
  • [Gems-users] MOESI CMP Protocol State Questions, Malek Musleh <=