void MESI_protocol::process_snoop_request (Mreq *request) { if (DEBUG) { switch (state) { case MESI_CACHE_I: printf("SI"); do_snoop_I (request); break; case MESI_CACHE_S: printf("SS"); do_snoop_S (request); break; case MESI_CACHE_E: printf("SE"); do_snoop_E (request); break; case MESI_CACHE_M: printf("SM"); do_snoop_M (request); break; case MESI_CACHE_IM: printf("SIM"); do_snoop_IM (request); break; case MESI_CACHE_IS: printf("SIS"); do_snoop_IS (request); break; case MESI_CACHE_SM: printf("SSM"); do_snoop_SM (request); break; default: fatal_error ("Invalid Cache State for MESI Protocol\n"); } } else { switch (state) { case MESI_CACHE_I: do_snoop_I (request); break; case MESI_CACHE_S: do_snoop_S (request); break; case MESI_CACHE_E: do_snoop_E (request); break; case MESI_CACHE_M: do_snoop_M (request); break; case MESI_CACHE_IM: do_snoop_IM (request); break; case MESI_CACHE_IS: do_snoop_IS (request); break; case MESI_CACHE_SM: do_snoop_SM (request); break; default: fatal_error ("Invalid Cache State for MESI Protocol\n"); } } }
void MOESI_protocol::process_snoop_request (Mreq *request) { switch (state) { case MOESI_CACHE_I: do_snoop_I (request); break; case MOESI_CACHE_S: do_snoop_S (request); break; case MOESI_CACHE_E: do_snoop_E (request); break; case MOESI_CACHE_O: do_snoop_O (request); break; case MOESI_CACHE_M: do_snoop_M (request); break; case MOESI_CACHE_IM_Intermediate: do_snoop_IM_Intermediate (request); break; case MOESI_CACHE_IS_Intermediate: do_snoop_IS_Intermediate (request); break; case MOESI_CACHE_SM_Intermediate: do_snoop_SM_Intermediate (request); break; case MOESI_CACHE_OM_Intermediate: do_snoop_OM_Intermediate (request); break; default: fatal_error ("Invalid Cache State for MOESI Protocol\n"); } }
void MESI_protocol::process_snoop_request (Mreq *request) { switch (state) { case MESI_CACHE_I: do_snoop_I (request); break; case MESI_CACHE_S: do_snoop_S (request); break; case MESI_CACHE_E: do_snoop_E (request); break; case MESI_CACHE_M: do_snoop_M (request); break; case MESI_CACHE_IS: do_snoop_IS (request); break; case MESI_CACHE_IM: do_snoop_IM (request); break; case MESI_CACHE_SM: do_snoop_SM (request); break; default: fatal_error ("Invalid Cache State for MESI Protocol\n"); } }