source: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Core_Glue/include/Parameters.h @ 120

Last change on this file since 120 was 120, checked in by rosiere, 15 years ago

1) Context_state : Add statistics
2) Add configuration with multi front_end
3) Add optionnal pid at log filename

  • Property svn:keywords set to Id
File size: 8.7 KB
Line 
1#ifndef morpheo_behavioural_core_core_glue_Parameters_h
2#define morpheo_behavioural_core_core_glue_Parameters_h
3
4/*
5 * $Id: Parameters.h 120 2009-05-26 19:01:47Z rosiere $
6 *
7 * [ Description ]
8 *
9 */
10
11#include "Behavioural/Core/Core_Glue/include/Types.h"
12#include "Behavioural/include/Parameters.h"
13#include "Common/include/Debug.h"
14
15namespace morpheo {
16namespace behavioural {
17namespace core {
18namespace core_glue {
19
20  class Parameters : public morpheo::behavioural::Parameters
21  {
22    //-----[ fields ]------------------------------------------------------------
23  public : uint32_t                _nb_front_end                         ;
24  public : uint32_t              * _nb_context                           ;//[nb_front_end]
25  public : uint32_t                _nb_ooo_engine                        ;
26  public : uint32_t                _nb_execute_loop                      ;
27  public : uint32_t              * _ooo_engine_nb_front_end              ;//[nb_ooo_engine]
28  public : uint32_t              * _ooo_engine_nb_execute_loop           ;//[nb_ooo_engine]
29  public : uint32_t              * _execute_loop_nb_ooo_engine           ;//[nb_execute_loop]
30  public : uint32_t              * _nb_inst_decod                        ;//[nb_front_end] -> [sum_inst_decod]
31  public : uint32_t              * _front_end_nb_inst_branch_complete    ;//[nb_front_end]
32  public : uint32_t              * _ooo_engine_nb_inst_branch_complete   ;//[nb_ooo_engine]
33  public : uint32_t              * _nb_inst_insert                       ;//[nb_ooo_engine]
34  public : uint32_t              * _nb_inst_reexecute                    ;//[nb_ooo_engine]
35  public : uint32_t              * _nb_inst_issue_queue                  ;//[nb_ooo_engine]
36  public : uint32_t              * _nb_inst_issue_slot                   ;//[nb_ooo_engine]
37  public : uint32_t             ** _nb_inst_execute                      ;//[nb_ooo_engine][ooo_engine_nb_execute_loop]
38  public : bool                  * _issue_queue_in_order                 ;//[nb_ooo_engine]
39  public : uint32_t              * _nb_read_unit                         ;//[nb_execute_loop]
40  public : uint32_t              * _nb_write_unit                        ;//[nb_execute_loop]
41//public : uint32_t                _size_depth                           ;
42//public : uint32_t                _size_rob_ptr                         ;
43//public : uint32_t                _size_load_queue_ptr                  ;
44//public : uint32_t                _size_store_queue_ptr                 ;
45//public : uint32_t                _size_general_data                    ;
46//public : uint32_t                _size_special_data                    ;
47//public : uint32_t                _size_general_register                ;
48//public : uint32_t                _size_special_register                ;
49//public : uint32_t                _size_front_end_id                    ;
50//public : uint32_t                _size_context_id                      ;
51//public : uint32_t                _size_ooo_engine_id                   ;
52  public : Tpriority_t             _dispatch_priority                    ;
53  public : Tload_balancing_t       _dispatch_load_balancing              ;
54  public : bool               **** _table_dispatch                       ;//[nb_ooo_engine][nb_inst_issue_slot][execute_loop][nb_read_unit]
55  public : bool                *** _table_issue_type                     ;//                                   [execute_loop][nb_read_unit][nb_type]
56  public : uint32_t             ** _translate_ooo_engine_num_front_end   ;//[nb_ooo_engine][ooo_engine_nb_front_end]
57  public : uint32_t             ** _translate_ooo_engine_num_execute_loop;//[nb_ooo_engine][ooo_engine_nb_execute_loop]
58  public : uint32_t             ** _translate_execute_loop_num_ooo_engine;//[nb_execute_loop][execute_loop_nb_ooo_engine]
59
60  public : uint32_t              * _link_ooo_engine_with_front_end                          ;//[nb_front_end]
61  public : uint32_t              * _translate_num_front_end_to_ooo_engine_front_end_id      ;//[nb_front_end]
62
63  public : uint32_t             ** _translate_num_execute_loop_to_ooo_engine_execute_loop_id;//[nb_execute_loop][execute_loop_nb_ooo_engine]
64  public : Tcontext_t           ** _translate_num_ooo_engine_to_execute_loop_ooo_engine_id  ;//[nb_ooo_engine][nb_execute_loop]
65
66  public : uint32_t             ** _execute_loop_nb_inst_insert                             ;//[nb_execute_loop][execute_loop_nb_ooo_engine]
67  public : uint32_t             ** _execute_loop_nb_inst_issue_slot                         ;//[nb_execute_loop][execute_loop_nb_ooo_engine]
68//public : uint32_t              * _link_execute_loop_with_ooo_engine                       ;//[nb_ooo_engine]
69
70  public : uint32_t                _max_ooo_engine_nb_inst_branch_complete;
71  public : uint32_t                _max_front_end_nb_inst_branch_complete ;
72  public : uint32_t                _max_ooo_engine_nb_execute_loop        ;
73  public : uint32_t                _max_nb_inst_execute                   ;
74  public : uint32_t                _max_nb_write_unit                     ;
75  public : uint32_t                _max_nb_inst_insert                    ;
76  public : uint32_t                _max_nb_inst_issue_queue               ;
77  public : uint32_t                _max_nb_inst_issue_slot                ;
78  public : uint32_t                _max_nb_read_unit                      ;
79
80    //-----[ methods ]-----------------------------------------------------------
81  public : Parameters 
82  (uint32_t                nb_front_end                         ,
83   uint32_t              * nb_context                           ,//[nb_front_end]
84   uint32_t                nb_ooo_engine                        ,
85   uint32_t                nb_execute_loop                      ,
86   uint32_t              * ooo_engine_nb_front_end              ,//[nb_ooo_engine]
87   uint32_t              * ooo_engine_nb_execute_loop           ,//[nb_ooo_engine]
88   uint32_t              * execute_loop_nb_ooo_engine           ,//[nb_execute_loop]
89   uint32_t              * nb_inst_decod                        ,//[nb_front_end] -> [sum_inst_decod]
90   uint32_t              * front_end_nb_inst_branch_complete    ,//[nb_front_end]
91   uint32_t              * ooo_engine_nb_inst_branch_complete   ,//[nb_ooo_engine]
92   uint32_t              * nb_inst_insert                       ,//[nb_ooo_engine]
93   uint32_t              * nb_inst_reexecute                    ,//[nb_ooo_engine]
94   uint32_t              * nb_inst_issue_queue                  ,//[nb_ooo_engine]
95   uint32_t              * nb_inst_issue_slot                   ,//[nb_ooo_engine]
96   uint32_t             ** nb_inst_execute                      ,//[nb_ooo_engine][ooo_engine_nb_execute_loop]
97   bool                  * issue_queue_in_order                 ,//[nb_ooo_engine]
98   uint32_t              * nb_read_unit                         ,//[nb_execute_loop]
99   uint32_t              * nb_write_unit                        ,//[nb_execute_loop]
100   uint32_t                size_depth                           ,
101   uint32_t                size_rob_ptr                         ,
102   uint32_t                size_load_queue_ptr                  ,
103   uint32_t                size_store_queue_ptr                 ,
104   uint32_t                size_general_data                    ,
105   uint32_t                size_special_data                    ,
106   uint32_t                size_general_register                ,
107   uint32_t                size_special_register                ,
108   Tpriority_t             dispatch_priority                    ,
109   Tload_balancing_t       dispatch_load_balancing              ,
110   bool               **** table_dispatch                       ,//[nb_ooo_engine][nb_inst_issue_slot][execute_loop][nb_read_unit]
111   bool                *** table_issue_type                     ,//                                   [execute_loop][nb_read_unit][nb_type]
112// bool                *** table_issue_thread                   ,//                                   [execute_loop][nb_read_unit][nb_thread]
113   uint32_t             ** translate_ooo_engine_num_front_end   ,//[nb_ooo_engine][ooo_engine_nb_front_end]
114   uint32_t             ** translate_ooo_engine_num_execute_loop,//[nb_ooo_engine][ooo_engine_nb_execute_loop]
115   uint32_t             ** translate_execute_loop_num_ooo_engine,//[nb_execute_loop][execute_loop_nb_ooo_engine]
116   bool                    is_toplevel=false);
117
118//   public : Parameters  (Parameters & param) ;
119  public : ~Parameters () ;
120
121  public :        void            copy       (void);
122
123  public :        Parameters_test msg_error  (void);
124
125  public :        std::string     print      (uint32_t depth);
126  public : friend std::ostream&   operator<< (std::ostream& output_stream,
127                                            morpheo::behavioural::core::core_glue::Parameters & x);
128  };
129
130}; // end namespace core_glue
131}; // end namespace core
132
133}; // end namespace behavioural
134}; // end namespace morpheo             
135
136#endif
Note: See TracBrowser for help on using the repository browser.