source: trunk/modules/vci_mem_cache_v4/caba/metadata/vci_mem_cache_v4.sd @ 291

Last change on this file since 291 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.
  • Property svn:eol-style set to native
  • Property svn:executable set to *
  • Property svn:keywords set to "Author Date Id Rev URL Revision"
  • Property svn:mime-type set to text/plain
File size: 2.1 KB
Line 
1
2# -*- python -*-
3
4__id__ = "$Id: vci_mem_cache_v4.sd 291 2013-01-28 12:59:32Z joannou $"
5__version__ = "$Revision: 291 $"
6
7Module('caba:vci_mem_cache_v4',
8        classname = 'soclib::caba::VciMemCacheV4',
9
10        tmpl_parameters = [ parameter.Module('vci_param', default = 'caba:vci_param') ],
11
12        header_files = [
13            '../source/include/vci_mem_cache_v4.h',
14            '../source/include/xram_transaction_v4.h',
15            '../source/include/mem_cache_directory_v4.h',
16            '../source/include/update_tab_v4.h'
17        ],
18
19        implementation_files = [ '../source/src/vci_mem_cache_v4.cpp' ],
20
21        uses = [
22            Uses('caba:base_module'),
23            Uses('common:loader'),
24            Uses('common:mapping_table'),
25            Uses('caba:generic_fifo'),
26            Uses('caba:generic_llsc_global_table'),
27        ],
28
29        ports = [
30            Port( 'caba:vci_target'   , 'p_vci_tgt' ),
31            Port( 'caba:vci_target'   , 'p_vci_tgt_cleanup' ),
32            Port( 'caba:vci_initiator', 'p_vci_ini' ),
33            Port( 'caba:vci_initiator', 'p_vci_ixr' ),
34            Port( 'caba:bit_in'       , 'p_resetn'  , auto = 'resetn' ),
35            Port( 'caba:clock_in'     , 'p_clk'     , auto = 'clock'  ),
36        ],
37
38        instance_parameters = [
39            parameter.Module( 'mtp', 'common:mapping_table' ),
40            parameter.Module( 'mtc', 'common:mapping_table' ),
41            parameter.Module( 'mtx', 'common:mapping_table' ),
42            parameter.IntTab( 'vci_ixr_index' ),
43            parameter.IntTab( 'vci_ini_index' ),
44            parameter.IntTab( 'vci_tgt_index' ),
45            parameter.IntTab( 'vci_tgt_index_cleanup '),
46            parameter.Int   ( 'nways' ),
47            parameter.Int   ( 'nsets' ),
48            parameter.Int   ( 'nwords' ),
49            parameter.Int   ( 'heap_size' ),
50        ],
51
52        extensions = [
53            'dsx:get_ident='
54            'vci_ini_index:p_vci_ini:mtc,'
55            'vci_tgt_index_cleanup:p_vci_tgt_cleanup:mtc,'
56            'vci_tgt_index:p_vci_tgt:mtp,'
57            'vci_ixr_index:p_vci_ixr:mtx',
58            'dsx:addressable=vci_tgt_index,vci_tgt_index_cleanup',
59        ],
60)
Note: See TracBrowser for help on using the repository browser.