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

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

1) Add new algo in ifetch queue
2) Add Cancel bit
3) new config

  • 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 136 2009-10-20 18:52:15Z 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.