source: branches/v4/lib/generic_llsc_local_table/metadata/

Last change on this file was 291, checked in by joannou, 11 years ago

Introducing new generic_llsc_local_table and generic_llsc_global_table components :
These two tables implement the new scalable LL/SC mechanism for TSAR.

  • generic_llsc_local_table, integrated in the vci_cc_vache_wrapper_v4 component. The table is accessed by the DCACHE_FSM. A two step registration (LL cmd/ LL rsp) sets a signature allocated by the global table for the pending LL/SC operation. An SC operation consumes the registration.
  • generic_llsc_global_table, integrated in the vci_mem_cache_v4 component. The table is accessed by the READ_FSM, WRITE_FSM, CAS_FSM, when accessing the directory. It generates a signature for LL registrations and performs SC operation by checking registration's valididty with that signature. SW operations simply invalidate a registrations.

N.B. :

  • The sizes of the tables are parameters, and are NOT a function of the architecture's size (scalable mechanism).
  • The LL are handled by the MEMCACHE in the READ_FSM.
  • The SC are handled by the MEMCACHE in the WRITE_FSM, and are no longer CAS emulated. CAS operation is now only performed by hardware mechanisms.
  • An extra field is added to the xram transaction table to save a pending LL's signature.
File size: 368 bytes
1# -*- python -*-
4    'caba:generic_llsc_local_table',
5    classname       = 'soclib::GenericLLSCLocalTable',
6    header_files    = ['../include/generic_llsc_local_table.h'],
7    tmpl_parameters = 
8        [
9            parameter.Int('nb_slots', min = 1, max = 10, default = 1),
10            parameter.Type('addr_t', default = 'sc_dt::sc_uint<40>')
11        ]
Note: See TracBrowser for help on using the repository browser.