source: trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Meta_Predictor_Glue/src/Parameters.cpp @ 5

Last change on this file since 5 was 5, checked in by rosiere, 17 years ago

Ajout du composant Meta_Predictor

File size: 5.9 KB
Line 
1/*
2 * $Id$
3 *
4 * [ Description ]
5 *
6 */
7
8#include "Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Meta_Predictor_Glue/include/Parameters.h"
9
10namespace morpheo {
11namespace behavioural {
12namespace stage_1_ifetch {
13namespace predictor {
14namespace meta_predictor {
15namespace meta_predictor_glue {
16
17
18  Parameters::Parameters (bool     have_meta_predictor               ,
19                          bool     predictor_0_have_bht              ,
20                          uint32_t predictor_0_bht_size_shifter      ,
21                          bool     predictor_0_have_pht              ,
22                          uint32_t predictor_0_pht_size_counter      ,
23                          bool     predictor_1_have_bht              ,
24                          uint32_t predictor_1_bht_size_shifter      ,
25                          bool     predictor_1_have_pht              ,
26                          uint32_t predictor_1_pht_size_counter      ,
27                          bool     predictor_2_have_bht              ,
28                          uint32_t predictor_2_bht_size_shifter      ,
29                          bool     predictor_2_have_pht              ,
30                          uint32_t predictor_2_pht_size_counter      ,
31                          uint32_t nb_prediction                     ,
32                          uint32_t nb_branch_complete                ) :
33    _have_meta_predictor                (have_meta_predictor               ),
34   
35    _predictor_0_have_bht               ((have_meta_predictor==false)?false:predictor_0_have_bht              ),
36    _predictor_0_bht_size_shifter       ((_predictor_0_have_bht==false)?0:predictor_0_bht_size_shifter      ),
37    _predictor_0_have_pht               ((have_meta_predictor==false)?false:predictor_0_have_pht              ),
38    _predictor_0_pht_size_counter       ((_predictor_0_have_pht==false)?0:predictor_0_pht_size_counter      ),
39
40    _predictor_1_have_bht               ((have_meta_predictor==false)?false:predictor_1_have_bht              ),
41    _predictor_1_bht_size_shifter       ((_predictor_1_have_bht==false)?0:predictor_1_bht_size_shifter      ),
42    _predictor_1_have_pht               ((have_meta_predictor==false)?false:predictor_1_have_pht              ),
43    _predictor_1_pht_size_counter       ((_predictor_1_have_pht==false)?0:predictor_1_pht_size_counter      ),
44
45    _predictor_2_have_bht               (predictor_2_have_bht              ),
46    _predictor_2_bht_size_shifter       ((_predictor_2_have_bht==false)?0:predictor_2_bht_size_shifter      ),
47    _predictor_2_have_pht               (predictor_2_have_pht              ),
48    _predictor_2_pht_size_counter       ((_predictor_2_have_pht==false)?0:predictor_2_pht_size_counter      ),
49
50    _nb_prediction                      (nb_prediction                     ),
51    _nb_branch_complete                 (nb_branch_complete                ),
52
53    _size_history                       (_predictor_0_bht_size_shifter + _predictor_0_pht_size_counter +
54                                         _predictor_1_bht_size_shifter + _predictor_1_pht_size_counter +
55                                         _predictor_2_bht_size_shifter + _predictor_2_pht_size_counter ),
56
57    _shift_0                            (0),
58    _shift_1                            (_shift_0 + _predictor_0_bht_size_shifter),
59    _shift_2                            (_shift_1 + _predictor_0_pht_size_counter),
60    _shift_3                            (_shift_2 + _predictor_1_bht_size_shifter),
61    _shift_4                            (_shift_3 + _predictor_1_pht_size_counter),
62    _shift_5                            (_shift_4 + _predictor_2_bht_size_shifter),
63    _shift_6                            (_shift_5 + _predictor_2_pht_size_counter)
64  {
65    log_printf(FUNC,Meta_Predictor_Glue,"Parameters","Begin");
66    test();
67    log_printf(FUNC,Meta_Predictor_Glue,"Parameters","End");
68  };
69 
70  Parameters::Parameters (Parameters & param):
71    _have_meta_predictor                (param._have_meta_predictor                ),
72
73    _predictor_0_have_bht               (param._predictor_0_have_bht               ),
74    _predictor_0_bht_size_shifter       (param._predictor_0_bht_size_shifter       ),
75    _predictor_0_have_pht               (param._predictor_0_have_pht               ),
76    _predictor_0_pht_size_counter       (param._predictor_0_pht_size_counter       ),
77
78    _predictor_1_have_bht               (param._predictor_1_have_bht               ),
79    _predictor_1_bht_size_shifter       (param._predictor_1_bht_size_shifter       ),
80    _predictor_1_have_pht               (param._predictor_1_have_pht               ),
81    _predictor_1_pht_size_counter       (param._predictor_1_pht_size_counter       ),
82
83    _predictor_2_have_bht               (param._predictor_2_have_bht               ),
84    _predictor_2_bht_size_shifter       (param._predictor_2_bht_size_shifter       ),
85    _predictor_2_have_pht               (param._predictor_2_have_pht               ),
86    _predictor_2_pht_size_counter       (param._predictor_2_pht_size_counter       ),
87
88    _nb_prediction                      (param._nb_prediction                      ),
89    _nb_branch_complete                 (param._nb_branch_complete                 ),
90
91    _size_history                       (param._size_history                       ),
92
93    _shift_0                            (param._shift_0                            ),
94    _shift_1                            (param._shift_1                            ),
95    _shift_2                            (param._shift_2                            ),
96    _shift_3                            (param._shift_3                            ),
97    _shift_4                            (param._shift_4                            ),
98    _shift_5                            (param._shift_5                            ),
99    _shift_6                            (param._shift_6                            )
100
101  {
102    log_printf(FUNC,Meta_Predictor_Glue,"Parameters","Begin");
103    test();
104    log_printf(FUNC,Meta_Predictor_Glue,"Parameters","End");
105  };
106
107  Parameters::~Parameters () 
108  {
109    log_printf(FUNC,Meta_Predictor_Glue,"~Parameters","Begin");
110    log_printf(FUNC,Meta_Predictor_Glue,"~Parameters","End");
111  };
112
113}; // end namespace meta_predictor_glue
114}; // end namespace meta_predictor
115}; // end namespace predictor
116}; // end namespace stage_1_ifetch
117
118}; // end namespace behavioural
119}; // end namespace morpheo             
Note: See TracBrowser for help on using the repository browser.