source: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Execution_unit_to_Write_unit/src/Parameters.cpp @ 77

Last change on this file since 77 was 77, checked in by rosiere, 16 years ago
  • Add two component :
    • network between read unit and execute unit
    • network between execute unit and write unit
  • remove parameters "nb_operation" and "nb_type"
  • in write_queue add the special case : load_speculative
File size: 4.7 KB
Line 
1/*
2 * $Id$
3 *
4 * [ Description ]
5 *
6 */
7
8#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Execution_unit_to_Write_unit/include/Parameters.h"
9
10namespace morpheo {
11namespace behavioural {
12namespace core {
13namespace multi_execute_loop {
14namespace execute_loop {
15namespace network {
16namespace execution_unit_to_write_unit {
17
18
19#undef  FUNCTION
20#define FUNCTION "Execution_unit_to_Write_unit::Parameters"
21  Parameters::Parameters (uint32_t    nb_execute_unit              ,
22                          uint32_t    nb_write_unit                ,
23                          uint32_t    nb_context                   ,
24                          uint32_t    nb_front_end                 ,
25                          uint32_t    nb_ooo_engine                ,
26                          uint32_t    nb_packet                    ,
27                          uint32_t    size_general_data            ,
28                          uint32_t    size_special_data            ,
29                          uint32_t    nb_general_register          ,
30                          uint32_t    nb_special_register          ,
31                          Tpriority_t priority                     ,
32                          bool     ** table_routing                ,
33                          bool     ** table_thread                 ):
34    _nb_execute_unit         (nb_execute_unit    ),
35    _nb_write_unit           (nb_write_unit      ),
36    _nb_context              (nb_context         ),
37    _nb_front_end            (nb_front_end       ),
38    _nb_ooo_engine           (nb_ooo_engine      ),
39    _nb_packet               (nb_packet          ),
40    _size_general_data       (size_general_data  ),
41    _size_special_data       (size_special_data  ),
42    _nb_general_register     (nb_general_register),
43    _nb_special_register     (nb_special_register),
44    _priority                (priority           ),
45   
46    _size_context_id         (log2(nb_context         )),
47    _size_front_end_id       (log2(nb_front_end       )),
48    _size_ooo_engine_id      (log2(nb_ooo_engine      )),
49    _size_packet_id          (log2(nb_packet          )),
50    _size_general_register   (log2(nb_general_register)),
51    _size_special_register   (log2(nb_special_register)),
52   
53    _have_port_context_id    (_size_context_id    > 0),
54    _have_port_front_end_id  (_size_front_end_id  > 0),
55    _have_port_ooo_engine_id (_size_ooo_engine_id > 0),
56    _have_port_packet_id     (_size_packet_id     > 0),
57
58    _nb_thread               (get_nb_thread (nb_context, nb_front_end, nb_ooo_engine))
59  {
60    log_printf(FUNC,Execution_unit_to_Write_unit,FUNCTION,"Begin");
61
62    _table_routing = table_routing ;
63    _table_thread  = table_thread  ;
64
65    test();
66    log_printf(FUNC,Execution_unit_to_Write_unit,FUNCTION,"End");
67  };
68 
69#undef  FUNCTION
70#define FUNCTION "Execution_unit_to_Write_unit::Parameters (copy)"
71  Parameters::Parameters (Parameters & param):
72    _nb_execute_unit         (param._nb_execute_unit        ),
73    _nb_write_unit           (param._nb_write_unit          ),
74    _nb_context              (param._nb_context             ),
75    _nb_front_end            (param._nb_front_end           ),
76    _nb_ooo_engine           (param._nb_ooo_engine          ),
77    _nb_packet               (param._nb_packet              ),
78    _size_general_data       (param._size_general_data      ),
79    _size_special_data       (param._size_special_data      ),
80    _nb_general_register     (param._nb_general_register    ),
81    _nb_special_register     (param._nb_special_register    ),
82    _priority                (param._priority               ),
83
84    _size_context_id         (param._size_context_id        ),
85    _size_front_end_id       (param._size_front_end_id      ),
86    _size_ooo_engine_id      (param._size_ooo_engine_id     ),
87    _size_packet_id          (param._size_packet_id         ),
88    _size_general_register   (param._size_general_register  ),
89    _size_special_register   (param._size_special_register  ),
90
91    _have_port_context_id    (param._have_port_context_id   ),
92    _have_port_front_end_id  (param._have_port_front_end_id ),
93    _have_port_ooo_engine_id (param._have_port_ooo_engine_id),
94    _have_port_packet_id     (param._have_port_packet_id    ),
95
96    _nb_thread               (param._nb_thread              )
97  {
98    log_printf(FUNC,Execution_unit_to_Write_unit,FUNCTION,"Begin");
99
100    _table_routing = param._table_routing ;
101    _table_thread  = param._table_thread  ;
102
103    test();
104    log_printf(FUNC,Execution_unit_to_Write_unit,FUNCTION,"End");
105  };
106
107#undef  FUNCTION
108#define FUNCTION "Execution_unit_to_Write_unit::~Parameters"
109  Parameters::~Parameters () 
110  {
111    log_printf(FUNC,Execution_unit_to_Write_unit,FUNCTION,"Begin");
112    log_printf(FUNC,Execution_unit_to_Write_unit,FUNCTION,"End");
113  };
114
115}; // end namespace execution_unit_to_write_unit
116}; // end namespace network
117}; // end namespace execute_loop
118}; // end namespace multi_execute_loop
119}; // end namespace core
120
121}; // end namespace behavioural
122}; // end namespace morpheo             
Note: See TracBrowser for help on using the repository browser.