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

Last change on this file was 138, checked in by rosiere, 14 years ago

1) add counters_t type for interface
2) fix in check load in load_store_unit
3) add parameters (but not yet implemented)
4) change environment and add script (distcc_env.sh ...)
5) add warning if an unser change rename flag with l.mtspr instruction
6) ...

  • Property svn:keywords set to Id
File size: 9.1 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 138 2010-05-12 17:34:01Z 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 : bool                *** _table_issue_thread                   ;//                                   [execute_loop][nb_read_unit][nb_thread]
57
58  public : uint32_t             ** _translate_ooo_engine_num_front_end   ;//[nb_ooo_engine][ooo_engine_nb_front_end]
59  public : uint32_t             ** _translate_ooo_engine_num_execute_loop;//[nb_ooo_engine][ooo_engine_nb_execute_loop]
60  public : uint32_t             ** _translate_execute_loop_num_ooo_engine;//[nb_execute_loop][execute_loop_nb_ooo_engine]
61  public : uint32_t            *** _translate_num_context_to_num_thread  ;//[nb_ooo_engine][ooo_engine_nb_front_end][nb_context]
62
63  public : uint32_t              * _link_ooo_engine_with_front_end                          ;//[nb_front_end]
64  public : uint32_t              * _translate_num_front_end_to_ooo_engine_front_end_id      ;//[nb_front_end]
65
66  public : uint32_t             ** _translate_num_execute_loop_to_ooo_engine_execute_loop_id;//[nb_execute_loop][execute_loop_nb_ooo_engine]
67  public : Tcontext_t           ** _translate_num_ooo_engine_to_execute_loop_ooo_engine_id  ;//[nb_ooo_engine][nb_execute_loop]
68
69//public : uint32_t             ** _execute_loop_nb_inst_insert                             ;//[nb_execute_loop][execute_loop_nb_ooo_engine]
70//public : uint32_t             ** _execute_loop_nb_inst_issue_slot                         ;//[nb_execute_loop][execute_loop_nb_ooo_engine]
71//public : uint32_t              * _link_execute_loop_with_ooo_engine                       ;//[nb_ooo_engine]
72
73  public : uint32_t                _max_ooo_engine_nb_inst_branch_complete;
74  public : uint32_t                _max_front_end_nb_inst_branch_complete ;
75  public : uint32_t                _max_ooo_engine_nb_execute_loop        ;
76  public : uint32_t                _max_nb_inst_execute                   ;
77  public : uint32_t                _max_nb_write_unit                     ;
78//public : uint32_t                _max_nb_inst_insert                    ;
79  public : uint32_t                _max_nb_inst_issue_queue               ;
80//public : uint32_t                _max_nb_inst_issue_slot                ;
81  public : uint32_t                _max_nb_read_unit                      ;
82
83    //-----[ methods ]-----------------------------------------------------------
84  public : Parameters 
85  (uint32_t                nb_front_end                         ,
86   uint32_t              * nb_context                           ,//[nb_front_end]
87   uint32_t                nb_ooo_engine                        ,
88   uint32_t                nb_execute_loop                      ,
89   uint32_t              * ooo_engine_nb_front_end              ,//[nb_ooo_engine]
90   uint32_t              * ooo_engine_nb_execute_loop           ,//[nb_ooo_engine]
91   uint32_t              * execute_loop_nb_ooo_engine           ,//[nb_execute_loop]
92   uint32_t              * nb_inst_decod                        ,//[nb_front_end] -> [sum_inst_decod]
93   uint32_t              * front_end_nb_inst_branch_complete    ,//[nb_front_end]
94   uint32_t              * ooo_engine_nb_inst_branch_complete   ,//[nb_ooo_engine]
95// uint32_t              * nb_inst_insert                       ,//[nb_ooo_engine]
96   uint32_t              * nb_inst_reexecute                    ,//[nb_ooo_engine]
97   uint32_t              * nb_inst_issue_queue                  ,//[nb_ooo_engine]
98// uint32_t              * nb_inst_issue_slot                   ,//[nb_ooo_engine]
99   uint32_t             ** nb_inst_execute                      ,//[nb_ooo_engine][ooo_engine_nb_execute_loop]
100   bool                  * issue_queue_in_order                 ,//[nb_ooo_engine]
101   uint32_t              * nb_read_unit                         ,//[nb_execute_loop]
102   uint32_t              * nb_write_unit                        ,//[nb_execute_loop]
103   uint32_t                size_depth                           ,
104   uint32_t                size_rob_ptr                         ,
105   uint32_t                size_load_queue_ptr                  ,
106   uint32_t                size_store_queue_ptr                 ,
107   uint32_t                size_general_data                    ,
108   uint32_t                size_special_data                    ,
109   uint32_t                size_general_register                ,
110   uint32_t                size_special_register                ,
111   Tpriority_t             dispatch_priority                    ,
112   Tload_balancing_t       dispatch_load_balancing              ,
113// bool               **** table_dispatch                       ,//[nb_ooo_engine][nb_inst_issue_slot][execute_loop][nb_read_unit]
114   bool                *** table_issue_type                     ,//                                   [execute_loop][nb_read_unit][nb_type]
115   bool                *** table_issue_thread                   ,//                                   [execute_loop][nb_read_unit][nb_thread]
116   uint32_t             ** translate_ooo_engine_num_front_end   ,//[nb_ooo_engine][ooo_engine_nb_front_end]
117   uint32_t             ** translate_ooo_engine_num_execute_loop,//[nb_ooo_engine][ooo_engine_nb_execute_loop]
118   uint32_t             ** translate_execute_loop_num_ooo_engine,//[nb_execute_loop][execute_loop_nb_ooo_engine]
119   uint32_t            *** translate_num_context_to_num_thread  ,//[nb_ooo_engine][ooo_engine_nb_front_end][nb_context]
120
121   bool                    is_toplevel=false);
122
123//   public : Parameters  (Parameters & param) ;
124  public : ~Parameters () ;
125
126  public :        void            copy       (void);
127
128  public :        Parameters_test msg_error  (void);
129
130  public :        std::string     print      (uint32_t depth);
131  public : friend std::ostream&   operator<< (std::ostream& output_stream,
132                                            morpheo::behavioural::core::core_glue::Parameters & x);
133  };
134
135}; // end namespace core_glue
136}; // end namespace core
137
138}; // end namespace behavioural
139}; // end namespace morpheo             
140
141#endif
Note: See TracBrowser for help on using the repository browser.