Пример #1
0
void MESI_protocol::process_cache_request (Mreq *request)
{
    if (DEBUG) {
        switch (state) {
            case MESI_CACHE_I: printf("PI"); do_cache_I (request); break;
            case MESI_CACHE_S: printf("PS"); do_cache_S (request); break;
            case MESI_CACHE_E: printf("PE"); do_cache_E (request); break;
            case MESI_CACHE_M: printf("PM"); do_cache_M (request); break;
            case MESI_CACHE_IM: printf("PIM"); do_cache_IM (request); break;
            case MESI_CACHE_IS: printf("PIS"); do_cache_IS (request); break;
            case MESI_CACHE_SM: printf("PSM"); do_cache_SM (request); break;
        default:
            fatal_error ("Invalid Cache State for MESI Protocol\n");
        }
    }
    else {
        switch (state) {
            case MESI_CACHE_I: do_cache_I (request); break;
            case MESI_CACHE_S: do_cache_S (request); break;
            case MESI_CACHE_E: do_cache_E (request); break;
            case MESI_CACHE_M: do_cache_M (request); break;
            case MESI_CACHE_IM: do_cache_IM (request); break;
            case MESI_CACHE_IS: do_cache_IS (request); break;
            case MESI_CACHE_SM: do_cache_SM (request); break;
        default:
            fatal_error ("Invalid Cache State for MESI Protocol\n");
        }
    }
}
Пример #2
0
void MESI_protocol::process_cache_request (Mreq *request)
{
	switch (state) {
    case MESI_CACHE_I:  do_cache_I (request); break;
    case MESI_CACHE_S:  do_cache_S (request); break;
    case MESI_CACHE_E:  do_cache_E (request); break;
    case MESI_CACHE_M:  do_cache_M (request); break;
    case MESI_CACHE_IS: do_cache_IS (request); break;
    case MESI_CACHE_IM: do_cache_IM (request); break;
    case MESI_CACHE_SM: do_cache_SM (request); break;
    default:
        fatal_error ("Invalid Cache State for MESI Protocol\n");
    }
}
void MOESI_protocol::process_cache_request (Mreq *request)
{
	switch (state) {
    case MOESI_CACHE_I:  do_cache_I (request); break;
    case MOESI_CACHE_S:  do_cache_S (request); break;
    case MOESI_CACHE_E:  do_cache_E (request); break;
    case MOESI_CACHE_O:  do_cache_O (request); break;
    case MOESI_CACHE_M:  do_cache_M (request); break;
    case MOESI_CACHE_IM_Intermediate: break;
    case MOESI_CACHE_IS_Intermediate: break;
    case MOESI_CACHE_SM_Intermediate: break;
    case MOESI_CACHE_OM_Intermediate: break;
    default:
        fatal_error ("Invalid Cache State for MOESI Protocol\n");
    }
}