source: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/OOO_Engine_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: 5.7 KB
Line 
1#ifndef morpheo_behavioural_core_multi_ooo_engine_ooo_engine_ooo_engine_glue_Parameters_h
2#define morpheo_behavioural_core_multi_ooo_engine_ooo_engine_ooo_engine_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/Multi_OOO_Engine/OOO_Engine/OOO_Engine_Glue/include/Types.h"
12#include "Behavioural/include/Parameters.h"
13#include "Common/include/Debug.h"
14#include <vector>
15
16namespace morpheo {
17namespace behavioural {
18namespace core {
19namespace multi_ooo_engine {
20namespace ooo_engine {
21namespace ooo_engine_glue {
22
23// #define translateFrontEndIdToRenameUnit(front_end_id)                   _param->_translate_front_end_id_to_rename_unit[front_end_id]
24// #define translateFrontEndIdFromRenameUnit(num_rename_unit,front_end_id) _param->_translate_front_end_id_from_rename_unit[num_rename_unit][front_end_id]
25
26  class Parameters : public morpheo::behavioural::Parameters
27  {
28    //-----[ fields ]------------------------------------------------------------
29  public : uint32_t                _nb_front_end                           ;
30  public : uint32_t              * _nb_context                             ;//[nb_front_end]
31  public : uint32_t                _nb_rename_unit                         ;
32  public : uint32_t              * _nb_inst_decod                          ;//[nb_front_end]
33  public : uint32_t              * _nb_inst_insert                         ;//[nb_rename_unit]
34  public : uint32_t              * _nb_inst_retire                         ;//[nb_rename_unit]
35//public : uint32_t                _size_general_data                      ;
36//public : uint32_t                _size_special_data                      ;
37  public : uint32_t              * _link_rename_unit_with_front_end        ;//[nb_front_end]
38  public : std::vector<uint32_t> * _translate_front_end_id_from_rename_unit;//[nb_rename_unit]
39//public : uint32_t                _size_packet_id                         ;
40//public : uint32_t                _size_general_register                  ;
41//public : uint32_t                _size_special_register                  ;
42//public : uint32_t                _size_store_queue_ptr                   ;
43//public : uint32_t                _size_load_queue_ptr                    ;
44                                                                           
45//public : uint32_t              * _rename_unit_nb_front_end               ;//[nb_rename_unit]
46//public : uint32_t             ** _rename_unit_nb_context                 ;//[nb_rename_unit][nb_front_end]
47//public : uint32_t              * _rename_unit_size_front_end_id          ;//[nb_rename_unit]
48//public : uint32_t              * _rename_unit_size_context_id            ;//[nb_rename_unit]
49//public : uint32_t                _size_front_end_id                      ;
50//public : uint32_t                _size_context_id                        ;
51  public : uint32_t                _size_rename_id                         ;
52//public : uint32_t                _sum_inst_insert                        ;
53//public : uint32_t                _sum_inst_retire                        ;
54  public : uint32_t              * _translate_front_end_id_to_rename_unit  ;//[nb_front_end]
55  public : Tgeneral_address_t      _mask_num_general_register              ;
56  public : Tspecial_address_t      _mask_num_special_register              ;
57
58//public : bool                    _have_port_front_end_id                 ;
59//public : bool                    _have_port_context_id                   ;
60//public : bool                    _have_port_packet_id                    ;
61//public : bool                    _have_port_load_queue_ptr               ;
62
63    //-----[ methods ]-----------------------------------------------------------
64  public : Parameters  (uint32_t                nb_front_end                           ,
65                        uint32_t              * nb_context                             ,
66                        uint32_t                nb_rename_unit                         ,
67                        uint32_t              * nb_inst_decod                          ,
68                        uint32_t              * nb_inst_insert                         ,
69                        uint32_t              * nb_inst_retire                         ,
70                        uint32_t                size_general_data                      ,
71                        uint32_t                size_special_data                      ,
72                        uint32_t              * link_rename_unit_with_front_end        ,
73                        std::vector<uint32_t> * translate_front_end_id_from_rename_unit,
74                        uint32_t                size_packet_id                         ,
75                        uint32_t                size_general_register                  ,
76                        uint32_t                size_special_register                  ,
77                        uint32_t                size_store_queue_ptr                   ,
78                        uint32_t                size_load_queue_ptr                    ,
79                        bool                    is_toplevel=false);
80//   public : Parameters  (Parameters & param) ;
81  public : ~Parameters () ;
82
83  public :        void            copy       (void);
84
85  public :        Parameters_test msg_error  (void);
86
87  public :        std::string     print      (uint32_t depth);
88  public : friend std::ostream&   operator<< (std::ostream& output_stream,
89                                            morpheo::behavioural::core::multi_ooo_engine::ooo_engine::ooo_engine_glue::Parameters & x);
90  };
91
92}; // end namespace ooo_engine_glue
93}; // end namespace ooo_engine
94}; // end namespace multi_ooo_engine
95}; // end namespace core
96
97}; // end namespace behavioural
98}; // end namespace morpheo             
99
100#endif
Note: See TracBrowser for help on using the repository browser.