Thursday, July 20, 2006

Modification to SLE protocol

Now there are two new states in the SLE slicc file that deal with Multi-Legged Load and Store instructions which get step between transaction aborts.
// new transition that aborts when a two leg load_xact finishes
transition(IS, Exclusive_Data_Dead, M) {
u_writeDataToCache;
m_decrementNumberOfMessages;
xx_setRbitIfTrans;
gg_sendUnblockExclusive;
cc_abort_load_hit_complete_abort_IfTran;
s_deallocateTBE;
//c_abort_load_hit;
//yy_completeAbort;
n_popResponseQueue;
}

// new transition that finishes abort in a multi leged Store_XACT
transition(OM, All_acks_Dead, MM) {
gg_sendUnblockExclusive;
cc_abort_store_hit; // if this is happening, then it is definitely a Store
s_deallocateTBE;
yy_completeAbort;
j_popTriggerQueue;
}

No comments: