source: branches/v4/lib/generic_llsc_global_table/metadata/generic_llsc_global_table.sd @ 747

Last change on this file since 747 was 291, checked in by joannou, 12 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: 496 bytes
Line 
1# -*- python -*-
2
3Module(
4    'caba:generic_llsc_global_table',
5    classname       = 'soclib::GenericLLSCGlobalTable',
6    header_files    = ['../include/generic_llsc_global_table.h'],
7    tmpl_parameters = 
8        [
9            parameter.Int('nb_slots', min = 2, max = 64, default = 32),
10            parameter.Int('nb_procs', min = 2, max = 4096, default = 4095), # default should be 4096, but soclib-cc problem
11            parameter.Type('addr_t', default = 'sc_dt::sc_uint<40>')
12        ]
13)
Note: See TracBrowser for help on using the repository browser.