Ignore:
Timestamp:
Sep 18, 2013, 1:44:37 PM (11 years ago)
Author:
cfuguet
Message:

Bugfix in vci_mem_cache and generic_llsc_global_table:

  • The Store Conditional commmand was not performed atomically in some special cases. To solve this, a new operation has been introduced in the LL/SC table (check operation) which allows

to check if a SC operation is atomic or not without erasing the

reservation on the LL/SC table.

The reservation on the LL/SC table will be erased once the SC
command is completely treated:

  • A GET request has been inserted on the TRT when MISS.
  • An UPDATE request has been inserted on the UPT when MULTI

UPDATE needed.

  • An INVAL request has been inserted on the IVT when BROADCAST INVALIDATE needed.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/modules/vci_mem_cache/caba/source/include/vci_mem_cache.h

    r507 r527  
    702702      sc_signal<size_t>   r_write_upt_index;          // index in Update Table
    703703      sc_signal<bool>     r_write_sc_fail;            // sc command failed
    704       sc_signal<bool>     r_write_pending_sc;         // sc command pending
     704      sc_signal<data_t>   r_write_sc_key;             // sc command key
    705705
    706706      // Buffer between WRITE fsm and TGT_RSP fsm (acknowledge a write command from L1)
Note: See TracChangeset for help on using the changeset viewer.