Re: [Gems-users] Invalid transition in MOESI_CMP_directory protocol


Date: Wed, 5 Apr 2006 10:46:56 -0500 (CDT)
From: Mike Marty <mikem@xxxxxxxxxxx>
Subject: Re: [Gems-users] Invalid transition in MOESI_CMP_directory protocol
Hello,

I just looked at the protocol, and it is a wierd one rather than a missed
situation.  The only time state "ILOX" can be entered is if there was a
local owner, and local sharers, but all the sharers replaced leaving only
a local owner (but still is considered exclusive to the chip).  However if
this is the case, than it should never replace with a PUTX rather than a
PUTO, because the local owner can't upgrade to exclusive without
informing the local L2 directory.  Huh...I'd like to see a trace of this.
Can you email it to me offline?

Sorry for these bugs.  Due to the complexity of the protocol and my lack
of thoroughness, I've missed many of the writeback races that don't seem
to trigger in our nightly regression test of the random tester.

--Mike



> Hi,
>
> We have tested the MOESI_CMP_Directory Protocol with
> tester.exec and it seems to have a problem with a
> invalid transition as we can see in the debug file:
>
> Warning: in fn TransitionResult
> L2Cache_Controller::doTransitionWorker(L2Cache_Event,
> L2Cache_State, L2Cache_State&, const Address&) in
> generated/MOESI_CMP_directory/L2Cache_Transitions.C:2067:
> m_id is 0
> Warning: in fn TransitionResult
> L2Cache_Controller::doTransitionWorker(L2Cache_Event,
> L2Cache_State, L2Cache_State&, const Address&) in
> generated/MOESI_CMP_directory/L2Cache_Transitions.C:2068:
> m_version is 3
> Warning: in fn TransitionResult
> L2Cache_Controller::doTransitionWorker(L2Cache_Event,
> L2Cache_State, L2Cache_State&, const Address&) in
> generated/MOESI_CMP_directory/L2Cache_Transitions.C:2069:
> g_eventQueue_ptr->getTime() is 290762
> Warning: in fn TransitionResult
> L2Cache_Controller::doTransitionWorker(L2Cache_Event,
> L2Cache_State, L2Cache_State&, const Address&) in
> generated/MOESI_CMP_directory/L2Cache_Transitions.C:2070:
> addr is [0xcc0, line 0xcc0]
> Warning: in fn TransitionResult
> L2Cache_Controller::doTransitionWorker(L2Cache_Event,
> L2Cache_State, L2Cache_State&, const Address&) in
> generated/MOESI_CMP_directory/L2Cache_Transitions.C:2071:
> event is L1_PUTX
> Warning: in fn TransitionResult
> L2Cache_Controller::doTransitionWorker(L2Cache_Event,
> L2Cache_State, L2Cache_State&, const Address&) in
> generated/MOESI_CMP_directory/L2Cache_Transitions.C:2072:
> state is ILOX
> Fatal Error: in fn TransitionResult
> L2Cache_Controller::doTransitionWorker(L2Cache_Event,
> L2Cache_State, L2Cache_State&, const Address&) in
> generated/MOESI_CMP_directory/L2Cache_Transitions.C:2073:
> Invalid transition
>
> It seems that there's no transition from ILOX for the
> L1_PUTX event.  It's  suposed to stay in the same
> state and recycle the request queue or it has to
> change to ILOXW?
>
> Thanks
>
> Marco and Enric
>
>
>
> ______________________________________________
> LLama Gratis a cualquier PC del Mundo.
> Llamadas a fijos y móviles desde 1 céntimo por minuto.
> http://es.voice.yahoo.com
> _______________________________________________
> Gems-users mailing list
> Gems-users@xxxxxxxxxxx
> https://lists.cs.wisc.edu/mailman/listinfo/gems-users
>

[← Prev in Thread] Current Thread [Next in Thread→]