Ignore:
Timestamp:
Oct 16, 2014, 10:57:42 AM (10 years ago)
Author:
cfuguet
Message:

reconf: introducing watchdog timer in the vci_cc_vcache_wrapper

  • The watchdog timer (r_dcache_miss_wdt) starts counting when there is a READ MISS in the cache.
  • It triggers an error to the processor when the waiting cycles are greater than a threshold defined in the reg r_dcache_miss_wdt_max.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/reconfiguration/modules/vci_cc_vcache_wrapper/caba/source/src/vci_cc_vcache_wrapper.cpp

    r840 r845  
    331331      r_dcache_miss_set("r_dcache_miss_set"),
    332332      r_dcache_miss_inval("r_dcache_miss_inval"),
     333      r_dcache_miss_wdt_max("r_dcache_miss_wdt_max"),
     334      r_dcache_miss_wdt("r_dcache_miss_wdt"),
    333335
    334336      r_dcache_cc_way("r_dcache_cc_way"),
     
    811813
    812814        r_dcache_clack_req         = false;
     815
     816        // Reset watchdog timer threshold to max value
     817        r_dcache_miss_wdt_max      = UINT32_MAX;
    813818
    814819        // No request from CC_RECEIVE FSM to ICACHE/DCACHE FSMs
     
    41424147            r_dcache_miss_set = set;
    41434148
     4149            // reset to 0 the miss watchdog timer
     4150            r_dcache_miss_wdt = 0;
     4151
    41444152            if (cleanup)
    41454153            {
     
    42654273            r_dcache_fsm = DCACHE_CC_CHECK;
    42664274            r_dcache_fsm_cc_save = r_dcache_fsm.read();
     4275            break;
     4276        }
     4277
     4278        // increment MISS watchdog timer for black-hole detection
     4279        r_dcache_miss_wdt = r_dcache_miss_wdt.read() + 1;
     4280        if (r_dcache_miss_wdt.read() == r_dcache_miss_wdt_max.read()) {
     4281            r_mmu_detr   = MMU_READ_DATA_TIMEOUT;
     4282            r_mmu_dbvar  = r_dcache_save_vaddr.read();
     4283            m_drsp.valid = true;
     4284            m_drsp.error = true;
     4285            r_dcache_fsm = DCACHE_IDLE;
    42674286            break;
    42684287        }
Note: See TracChangeset for help on using the changeset viewer.