source: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/include/Parameters.h @ 145

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

1) add test with SPECINT2K
2) new config of Selftest
3) modif RAT to support multiple depth_save ... but not finish (need fix Update Prediction Table)
4) add Function_pointer but need fix

  • Property svn:keywords set to Id
File size: 6.9 KB
Line 
1#ifndef morpheo_behavioural_core_multi_ooo_engine_ooo_engine_commit_unit_Parameters_h
2#define morpheo_behavioural_core_multi_ooo_engine_ooo_engine_commit_unit_Parameters_h
3
4/*
5 * $Id: Parameters.h 145 2010-10-13 18:15:51Z rosiere $
6 *
7 * [ Description ]
8 *
9 */
10
11#include "Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/include/Types.h"
12#include "Behavioural/include/Parameters.h"
13#include "Common/include/Debug.h"
14
15namespace morpheo {
16namespace behavioural {
17namespace core {
18namespace multi_ooo_engine {
19namespace ooo_engine {
20namespace commit_unit {
21
22
23  class Parameters : public morpheo::behavioural::Parameters
24  {
25    //-----[ fields ]------------------------------------------------------------
26  public : uint32_t               _nb_front_end                       ;
27  public : uint32_t             * _nb_context                         ;//[nb_front_end]
28  public : uint32_t               _nb_rename_unit                     ;
29  public : uint32_t               _size_queue                         ;
30  public : uint32_t               _nb_bank                            ;
31  public : Tretire_ooo_scheme_t   _retire_ooo_scheme                  ;
32  public : uint32_t             * _nb_inst_insert                     ;//[nb_rename_unit]
33  public : uint32_t             * _nb_inst_retire                           ;//[nb_rename_unit]
34  public : uint32_t               _nb_inst_commit                     ;
35  public : uint32_t               _nb_inst_reexecute                  ;
36  public : uint32_t               _nb_inst_branch_complete            ;
37  public : uint32_t            ** _nb_branch_speculated               ;//[nb_front_end][nb_context]
38//public : uint32_t               _size_general_data                  ;
39//public : uint32_t               _size_store_queue_ptr               ;
40//public : uint32_t               _size_load_queue_ptr                ;
41//public : uint32_t               _size_general_register              ;
42//public : uint32_t               _size_special_register              ;
43  public : Trat_scheme_t        * _rat_scheme                         ;//[nb_rename_unit]
44  public : std::vector<uint32_t>* _link_front_end_with_rename_unit    ;//[nb_rename_unit]
45
46  public : Tpriority_t            _priority                           ;
47  public : Tload_balancing_t      _load_balancing                     ;
48  public : uint32_t               _nb_rename_unit_select              ;
49  public : uint32_t               _nb_thread                          ;
50  public : uint32_t            ** _translate_num_context_to_num_thread;//[nb_front_end][nb_context]
51  public : Trat_scheme_t        * _front_end_rat_scheme               ;//[nb_front_end]
52  public : const uint32_t         _nb_bank_access_commit              ;
53                               
54  public : uint32_t               _max_nb_context          ;
55  public : uint32_t               _max_nb_inst_insert      ;
56  public : uint32_t               _max_nb_inst_retire      ;
57//public : uint32_t               _size_address            ;
58//public : uint32_t               _size_front_end_id       ;
59//public : uint32_t               _size_context_id         ;
60  public : uint32_t               _size_rename_unit_id     ;   
61  public : uint32_t               _size_bank               ;
62//public : uint32_t               _size_nb_inst            ;
63//public : uint32_t               _size_packet_id          ;
64  public : uint32_t            ** _array_size_depth        ;//[nb_front_end][nb_context]
65//public : uint32_t               _max_size_depth          ;
66                               
67//public : Tpacket_t              _shift_num_bank          ;
68  public : Tpacket_t              _mask_num_bank           ;
69  public : Tpacket_t              _shift_num_slot          ;
70//public : Tpacket_t              _mask_num_slot           ;
71                             
72                             
73//public : bool                 _have_port_front_end_id  ;
74//public : bool                 _have_port_context_id    ;
75//public : bool                 _have_port_packet_id     ;
76  public : bool                 _have_port_rename_unit_id;
77//public : bool                 _have_port_load_queue_ptr;
78//public : bool                 _have_port_max_depth     ;
79//public : bool              ** _have_port_depth         ;//[nb_front_end][nb_context]
80                             
81  public : bool               * _have_thread             ;//[nb_thread]
82
83    //-----[ methods ]-----------------------------------------------------------
84  public : Parameters  (uint32_t               nb_front_end                       ,
85                        uint32_t             * nb_context                         ,//[nb_front_end]
86                        uint32_t               nb_rename_unit                     ,
87                        uint32_t               size_queue                         ,
88                        uint32_t               nb_bank                            ,
89                        Tretire_ooo_scheme_t   retire_ooo_scheme                  ,
90                        uint32_t             * nb_inst_insert                     ,//[nb_rename_unit]
91                        uint32_t             * nb_inst_retire                     ,//[nb_rename_unit]
92                        uint32_t               nb_inst_commit                     ,
93                        uint32_t               nb_inst_reexecute                  ,
94                        uint32_t               nb_inst_branch_complete            ,
95                        uint32_t            ** nb_branch_speculated               ,//[nb_front_end][nb_context]
96                        uint32_t               size_nb_inst_decod                 ,
97                        uint32_t               size_general_data                  ,
98                        uint32_t               size_store_queue_ptr               ,
99                        uint32_t               size_load_queue_ptr                ,
100                        uint32_t               size_general_register              ,
101                        uint32_t               size_special_register              ,
102                        Trat_scheme_t        * rat_scheme                         ,//[nb_rename_unit]
103                        std::vector<uint32_t>* link_front_end_with_rename_unit    ,//[nb_rename_unit]
104                        Tpriority_t            priority                           ,
105                        Tload_balancing_t      load_balancing                     ,
106                        uint32_t               nb_rename_unit_select              ,
107                        uint32_t               nb_thread                          ,
108                        uint32_t            ** translate_num_context_to_num_thread, //[nb_front_end][nb_context]
109                        bool                   is_toplevel=false
110                        );
111//   public : Parameters  (Parameters & param) ;
112  public : ~Parameters (void) ;
113
114  public :        void            copy       (void);
115
116  public :        Parameters_test msg_error  (void);
117
118  public :        std::string     print      (uint32_t depth);
119  public : friend std::ostream&   operator<< (std::ostream& output_stream,
120                                              morpheo::behavioural::core::multi_ooo_engine::ooo_engine::commit_unit::Parameters & x);
121  };
122
123}; // end namespace commit_unit
124}; // end namespace ooo_engine
125}; // end namespace multi_ooo_engine
126}; // end namespace core
127
128}; // end namespace behavioural
129}; // end namespace morpheo             
130
131#endif
Note: See TracBrowser for help on using the repository browser.