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

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

1) Platforms : add new organization for test
2) Load_Store_Unit : add array to count nb_check in store_queue
3) Issue_queue and Core_Glue : rewrite the issue network
4) Special_Register_Unit : add reset value to register CID
5) Softwares : add multicontext test
6) Softwares : add SPECINT
7) Softwares : add MiBench?
7) Read_queue : inhib access for r0
8) Change Core_Glue (network) - dont yet support priority and load balancing scheme

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