source: trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/include/Parameters.h @ 2

Last change on this file since 2 was 2, checked in by kane, 17 years ago

Import Morpheo

File size: 3.2 KB
Line 
1#ifndef morpheo_behavioural_stage_1_ifetch_predictor_meta_predictor_two_level_branch_predictor_Parameters_h
2#define morpheo_behavioural_stage_1_ifetch_predictor_meta_predictor_two_level_branch_predictor_Parameters_h
3
4/*
5 * $Id$
6 *
7 * [ Description ]
8 *
9 */
10
11#include "Include/Debug.h"
12#include "Behavioural/include/Parameters.h"
13// Internal structure
14#include "Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/include/Parameters.h"
15#include "Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/include/Parameters.h"
16#include "Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Two_Level_Branch_Predictor_Glue/include/Parameters.h"
17#include <math.h>
18
19namespace morpheo {
20namespace behavioural {
21namespace stage_1_ifetch {
22namespace predictor {
23namespace meta_predictor {
24namespace two_level_branch_predictor {
25
26
27  class Parameters : public morpheo::behavioural::Parameters
28  {
29    //-----[ fields ]------------------------------------------------------------
30  public : const bool     _have_bht              ;
31  public : const uint32_t _bht_size_shifter      ;
32  public : const uint32_t _bht_nb_shifter        ;
33  public : const bool     _have_pht              ;
34  public : const uint32_t _pht_size_counter      ;
35  public : const uint32_t _pht_nb_counter        ;
36  public : const uint32_t _pht_size_address_share;
37  public : const uint32_t _size_address          ;
38  public : const uint32_t _nb_prediction         ;
39  public : const uint32_t _nb_branch_complete    ;
40   
41  public : const uint32_t _bht_size_address  ;
42  public : const uint32_t _pht_size_address  ;
43
44  public :       morpheo::behavioural::stage_1_ifetch::predictor::meta_predictor::two_level_branch_predictor::branch_history_table ::Parameters * _param_branch_history_table;
45  public :       morpheo::behavioural::stage_1_ifetch::predictor::meta_predictor::two_level_branch_predictor::pattern_history_table::Parameters * _param_pattern_history_table;
46  public :       morpheo::behavioural::stage_1_ifetch::predictor::meta_predictor::two_level_branch_predictor::two_level_branch_predictor_glue::Parameters * _param_two_level_branch_predictor_glue;
47
48    //-----[ methods ]-----------------------------------------------------------
49  public : Parameters  (bool     have_bht              ,
50                        uint32_t bht_size_shifter      ,
51                        uint32_t bht_nb_shifter        ,
52                        bool     have_pht              ,
53                        uint32_t pht_size_counter      ,
54                        uint32_t pht_nb_counter        ,
55                        uint32_t pht_size_address_share,
56                        uint32_t size_address          ,
57                        uint32_t nb_prediction         ,
58                        uint32_t nb_branch_complete    );
59
60  public : Parameters  (Parameters & param) ;
61  public : ~Parameters () ;
62
63  public : string msg_error (void);
64
65  public :        string   print      (uint32_t depth);
66  public : friend ostream& operator<< (ostream& output_stream,
67                                       morpheo::behavioural::stage_1_ifetch::predictor::meta_predictor::two_level_branch_predictor::Parameters & x);
68  };
69
70}; // end namespace two_level_branch_predictor
71}; // end namespace meta_predictor
72}; // end namespace predictor
73}; // end namespace stage_1_ifetch
74}; // end namespace behavioural
75}; // end namespace morpheo             
76
77#endif
Note: See TracBrowser for help on using the repository browser.