source: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/include/Parameters.h @ 48

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

Modification des Makefile : pas de creation inutile de shell

File size: 5.2 KB
Line 
1#ifndef morpheo_behavioural_core_multi_front_end_front_end_prediction_unit_direction_meta_predictor_Parameters_h
2#define morpheo_behavioural_core_multi_front_end_front_end_prediction_unit_direction_meta_predictor_Parameters_h
3
4/*
5 * $Id$
6 *
7 * [ Description ]
8 *
9 */
10
11#include "Common/include/Debug.h"
12#include "Behavioural/include/Parameters.h"
13#include "Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/Two_Level_Branch_Predictor/include/Parameters.h"
14#include "Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/Meta_Predictor_Glue/include/Parameters.h"
15#include <math.h>
16
17namespace morpheo {
18namespace behavioural {
19namespace core {
20namespace multi_front_end {
21namespace front_end {
22namespace prediction_unit {
23namespace direction {
24
25namespace meta_predictor {
26
27  class Parameters : public morpheo::behavioural::Parameters
28  {
29    //-----[ fields ]------------------------------------------------------------
30  public : const bool     _have_meta_predictor               ;
31
32  public : const bool     _predictor_0_have_bht              ;
33  public : const uint32_t _predictor_0_bht_size_shifter      ;
34  public : const uint32_t _predictor_0_bht_nb_shifter        ;
35  public : const bool     _predictor_0_have_pht              ;
36  public : const uint32_t _predictor_0_pht_size_counter      ;
37  public : const uint32_t _predictor_0_pht_nb_counter        ;
38  public : const uint32_t _predictor_0_pht_size_address_share;
39
40  public : const bool     _predictor_1_have_bht              ;
41  public : const uint32_t _predictor_1_bht_size_shifter      ;
42  public : const uint32_t _predictor_1_bht_nb_shifter        ;
43  public : const bool     _predictor_1_have_pht              ;
44  public : const uint32_t _predictor_1_pht_size_counter      ;
45  public : const uint32_t _predictor_1_pht_nb_counter        ;
46  public : const uint32_t _predictor_1_pht_size_address_share;
47
48  public : const bool     _predictor_2_have_bht              ;
49  public : const uint32_t _predictor_2_bht_size_shifter      ;
50  public : const uint32_t _predictor_2_bht_nb_shifter        ;
51  public : const bool     _predictor_2_have_pht              ;
52  public : const uint32_t _predictor_2_pht_size_counter      ;
53  public : const uint32_t _predictor_2_pht_nb_counter        ;
54  public : const uint32_t _predictor_2_pht_size_address_share;
55
56  public : const uint32_t _size_address                      ;
57  public : const uint32_t _nb_prediction                     ;
58  public : const uint32_t _nb_branch_complete                ;
59
60  public : const uint32_t _size_history                      ;
61
62  public :       morpheo::behavioural::core::multi_front_end::front_end::prediction_unit::direction::meta_predictor::two_level_branch_predictor::Parameters * _param_two_level_branch_predictor_0;
63  public :       morpheo::behavioural::core::multi_front_end::front_end::prediction_unit::direction::meta_predictor::two_level_branch_predictor::Parameters * _param_two_level_branch_predictor_1;
64  public :       morpheo::behavioural::core::multi_front_end::front_end::prediction_unit::direction::meta_predictor::two_level_branch_predictor::Parameters * _param_two_level_branch_predictor_2;
65  public :       morpheo::behavioural::core::multi_front_end::front_end::prediction_unit::direction::meta_predictor::meta_predictor_glue::Parameters        * _param_meta_predictor_glue;
66
67    //-----[ methods ]-----------------------------------------------------------
68  public : Parameters  (bool     have_meta_predictor               ,
69                       
70                        bool     predictor_0_have_bht              ,
71                        uint32_t predictor_0_bht_size_shifter      ,
72                        uint32_t predictor_0_bht_nb_shifter        ,
73                        bool     predictor_0_have_pht              ,
74                        uint32_t predictor_0_pht_size_counter      ,
75                        uint32_t predictor_0_pht_nb_counter        ,
76                        uint32_t predictor_0_pht_size_address_share,
77                       
78                        bool     predictor_1_have_bht              ,
79                        uint32_t predictor_1_bht_size_shifter      ,
80                        uint32_t predictor_1_bht_nb_shifter        ,
81                        bool     predictor_1_have_pht              ,
82                        uint32_t predictor_1_pht_size_counter      ,
83                        uint32_t predictor_1_pht_nb_counter        ,
84                        uint32_t predictor_1_pht_size_address_share,
85                       
86                        bool     predictor_2_have_bht              ,
87                        uint32_t predictor_2_bht_size_shifter      ,
88                        uint32_t predictor_2_bht_nb_shifter        ,
89                        bool     predictor_2_have_pht              ,
90                        uint32_t predictor_2_pht_size_counter      ,
91                        uint32_t predictor_2_pht_nb_counter        ,
92                        uint32_t predictor_2_pht_size_address_share,
93                       
94                        uint32_t size_address                      ,
95                        uint32_t nb_prediction                     ,
96                        uint32_t nb_branch_complete                );
97  public : Parameters  (Parameters & param) ;
98  public : ~Parameters () ;
99   
100  public : string msg_error (void);
101
102  public :        string   print      (uint32_t depth);
103  public : friend ostream& operator<< (ostream& output_stream,
104                                       morpheo::behavioural::core::multi_front_end::front_end::prediction_unit::direction::meta_predictor::Parameters & x);
105  };
106
107}; // end namespace meta_predictor
108
109}; // end namespace core
110}; // end namespace multi_front_end
111}; // end namespace front_end
112}; // end namespace prediction_unit
113}; // end namespace direction
114
115}; // end namespace behavioural
116}; // end namespace morpheo             
117
118#endif
Note: See TracBrowser for help on using the repository browser.