Ignore:
Timestamp:
Dec 10, 2008, 7:31:39 PM (16 years ago)
Author:
rosiere
Message:

Almost complete design
with Test and test platform

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/include/Parameters.h

    r81 r88  
    1212#include "Behavioural/include/Parameters.h"
    1313#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/include/Types.h"
     14#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Execute_loop_Glue/include/Parameters.h"
    1415#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/include/Parameters.h"
    1516#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/include/Parameters.h"
     
    3637  public : uint32_t              _nb_load_store_unit                            ;
    3738  public : uint32_t              _nb_write_unit                                 ;
    38     // generic parameters                                                            
     39    // generic parameters                                                            
    3940  public : uint32_t              _nb_context                                    ;
    4041  public : uint32_t              _nb_front_end                                  ;
    4142  public : uint32_t              _nb_ooo_engine                                 ;
    4243  public : uint32_t              _nb_packet                                     ;
    43   public : uint32_t              _size_general_data                             ;
    44   public : uint32_t              _size_special_data                             ;
    45     // specific parameters                                                           
    46     //  * read_unit                                                                   
    47   public : uint32_t            * _size_read_queue                               ; //[nb_read_unit]
    48   public : uint32_t            * _size_reservation_station                      ; //[nb_read_unit]
    49   public : uint32_t            * _nb_inst_retire                                ; //[nb_read_unit]
    50   public : uint32_t            * _read_unit_nb_register_write                   ; //[nb_read_unit]
    51   public : uint32_t            * _read_unit_nb_bypass_write                     ; //[nb_read_unit]
    52   public : uint32_t            * _read_unit_nb_bypass_memory                    ; //[nb_read_unit]
    53   public : bool               ** _link_read_unit_with_load_store_unit           ; //[nb_read_unit][nb_load_store_unit]
    54   public : bool               ** _link_read_unit_with_write_unit                ; //[nb_read_unit][nb_write_unit]
    55   public : bool               ** _link_read_unit_with_thread                    ; //[nb_read_unit][nb_thread]
    56 
    57     //  * functionnal_unit                                                           
    58   public : execute_timing_t  *** _timing                                        ; //[nb_execute_unit][nb_type][nb_operation]
    59   public : morpheo::behavioural::custom::custom_information_t (*_get_custom_information) (uint32_t);
     44//public : uint32_t              _size_general_data                             ;
     45//public : uint32_t              _size_special_data                             ;
     46    // specific parameters                                                           
     47    //  * functionnal_unit                                                           
     48  public : uint32_t            * _nb_inst_functionnal_unit                      ; //[nb_functionnal_unit]
     49  public : execute_timing_t  *** _timing                                        ; //[nb_functionnal_unit][nb_type][nb_operation]
     50  public : morpheo::behavioural::custom::custom_information_t (*_get_custom_information) (void);
     51
    6052    //  * load_store_unit   
    6153  public : uint32_t            * _size_store_queue                              ; //[nb_load_store_unit]
     
    6557  public : Tspeculative_load_t * _speculative_load                              ; //[nb_load_store_unit]
    6658  public : uint32_t            * _nb_bypass_memory                              ; //[nb_load_store_unit]
    67     //  * write_unit                                                                 
     59  public : uint32_t            * _nb_cache_port                                 ; //[nb_load_store_unit]
     60  public : uint32_t            * _nb_inst_memory                                ; //[nb_load_store_unit]
     61    //  * read_unit                                                                   
     62  public : uint32_t            * _size_read_queue                               ; //[nb_read_unit]
     63  public : uint32_t            * _size_reservation_station                      ; //[nb_read_unit]
     64  public : uint32_t            * _nb_inst_retire                                ; //[nb_read_unit]
     65  public : uint32_t            * _read_unit_nb_register_write                   ; //[nb_read_unit]
     66  public : uint32_t            * _read_unit_nb_bypass_write                     ; //[nb_read_unit]
     67  public : uint32_t            * _read_unit_nb_bypass_memory                    ; //[nb_read_unit]
     68  public : bool              *** _link_read_unit_with_load_store_unit           ; //[nb_read_unit][nb_load_store_unit][nb_inst_memory]
     69  public : bool               ** _link_read_unit_with_write_unit                ; //[nb_read_unit][nb_write_unit]
     70  public : bool               ** _link_read_unit_with_thread                    ; //[nb_read_unit][nb_thread]
     71    //  * write_unit                                                                 
    6872  public : uint32_t            * _size_write_queue                              ; //[nb_write_unit]
    6973  public : uint32_t            * _size_execute_queue                            ; //[nb_write_unit]
    7074  public : uint32_t            * _nb_bypass_write                               ; //[nb_write_unit]
    71     //  * register_unit                                                              
     75    //  * register_unit                                                              
    7276  public : uint32_t              _nb_gpr_read                                   ;
    7377  public : uint32_t              _nb_gpr_write                                  ;
     
    8690    //  * network
    8791  public : Tpriority_t           _execution_unit_to_write_unit_priority         ;
    88   public : bool               ** _execution_unit_to_write_unit_table_routing    ; //[nb_execute_unit][nb_write_unit]
     92  public : bool              *** _execution_unit_to_write_unit_table_routing    ; //[nb_execute_unit][nb_execute_unit_port][nb_write_unit]
    8993  public : bool               ** _execution_unit_to_write_unit_table_thread     ; //[nb_write_unit][nb_thread]
    9094
    9195  public : Tpriority_t           _read_unit_to_execution_unit_priority          ;
    92   public : bool               ** _read_unit_to_execution_unit_table_routing     ; //[nb_read_unit][nb_execute_unit]
     96  public : bool              *** _read_unit_to_execution_unit_table_routing     ; //[nb_read_unit][nb_execute_unit][nb_execute_unit_port]
    9397  public : bool               ** _read_unit_to_execution_unit_table_execute_type; //[nb_execute_unit][nb_type]
    9498  public : bool               ** _read_unit_to_execution_unit_table_thread      ; //[nb_execute_unit][nb_thread]
     
    98102
    99103  public : uint32_t              _nb_execute_unit              ;
    100 
    101   public : uint32_t              _size_context_id              ;
    102   public : uint32_t              _size_front_end_id            ;
    103   public : uint32_t              _size_ooo_engine_id           ;
    104   public : uint32_t              _size_packet_id               ;
    105   public : bool                  _have_port_context_id         ;
    106   public : bool                  _have_port_front_end_id       ;
    107   public : bool                  _have_port_ooo_engine_id      ;
    108   public : bool                  _have_port_packet_id          ;
    109   public : bool                  _have_port_load_queue_ptr     ;
     104  public : uint32_t            * _nb_execute_unit_port         ;
     105
     106//public : uint32_t              _size_context_id              ;
     107//public : uint32_t              _size_front_end_id            ;
     108//public : uint32_t              _size_ooo_engine_id           ;
     109//public : uint32_t              _size_packet_id               ;
     110//public : bool                  _have_port_context_id         ;
     111//public : bool                  _have_port_front_end_id       ;
     112//public : bool                  _have_port_ooo_engine_id      ;
     113//public : bool                  _have_port_packet_id          ;
     114//public : bool                  _have_port_load_queue_ptr     ;
    110115  public : bool                  _have_port_dcache_context_id  ;
    111116   
     
    115120  public : uint32_t              _max_size_load_queue    ;
    116121
    117   public : uint32_t              _size_general_register        ;
    118   public : uint32_t              _size_special_register        ;
     122//public : uint32_t              _size_general_register        ;
     123//public : uint32_t              _size_special_register        ;
    119124
    120125  public : uint32_t              _max_size_dcache_context_id;
     
    125130  public : std::set<uint32_t>  * _set_read_unit_source_bypass_memory  ; //[nb_read_unit]
    126131
     132  public : morpheo::behavioural::core::multi_execute_loop::execute_loop::execute_loop_glue::                                 Parameters  * _param_glue;
    127133  public : morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_read_unit::read_unit::                        Parameters ** _param_read_unit;
    128134  public : morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_execute_unit::execute_unit::functionnal_unit::Parameters ** _param_functionnal_unit;
     
    135141    //-----[ methods ]-----------------------------------------------------------
    136142  public : Parameters  (uint32_t              nb_read_unit                                  ,
    137                         uint32_t              nb_functionnal_unit                           ,
    138                         uint32_t              nb_load_store_unit                            ,
    139                         uint32_t              nb_write_unit                                 ,
    140                        
    141                         uint32_t              nb_context                                    ,
    142                         uint32_t              nb_front_end                                  ,
    143                         uint32_t              nb_ooo_engine                                 ,
    144                         uint32_t              nb_packet                                     ,
    145                         uint32_t              size_general_data                             ,
    146                         uint32_t              size_special_data                             ,
    147                        
    148                         uint32_t            * size_read_queue                               ,
    149                         uint32_t            * size_reservation_station                      ,
    150                         uint32_t            * nb_inst_retire                                ,
    151                        
    152                         execute_timing_t  *** timing                                        ,
    153                         morpheo::behavioural::custom::custom_information_t (*get_custom_information) (uint32_t),
    154                        
    155                         uint32_t            * size_store_queue                              ,
    156                         uint32_t            * size_load_queue                               ,
    157                         uint32_t            * size_speculative_access_queue                 ,
    158                         uint32_t            * nb_port_check                                 ,
    159                         Tspeculative_load_t * speculative_load                              ,
    160                         uint32_t            * nb_bypass_memory                              ,
    161                        
    162                         uint32_t            * size_write_queue                              ,
    163                         uint32_t            * size_execute_queue                            ,
    164                         uint32_t            * nb_bypass_write                               ,
    165                        
    166                         uint32_t              nb_gpr_bank                                   ,
    167                         uint32_t              nb_gpr_port_read_by_bank                      ,
    168                         uint32_t              nb_gpr_port_write_by_bank                     ,
    169                         uint32_t              nb_spr_bank                                   ,
    170                         uint32_t              nb_spr_port_read_by_bank                      ,
    171                         uint32_t              nb_spr_port_write_by_bank                     ,
    172                         uint32_t            * nb_general_register                           ,
    173                         uint32_t            * nb_special_register                           ,
    174                         uint32_t            * nb_inst_insert_rob                            ,
    175                         uint32_t            * nb_inst_retire_rob                            ,
    176                        
    177                         Tpriority_t           execution_unit_to_write_unit_priority         ,
    178                         bool               ** execution_unit_to_write_unit_table_routing    ,
    179                         bool               ** execution_unit_to_write_unit_table_thread     ,
    180                        
    181                         Tpriority_t           read_unit_to_execution_unit_priority          ,
    182                         bool               ** read_unit_to_execution_unit_table_routing     ,
    183                         bool               ** read_unit_to_execution_unit_table_thread     
    184                         );
     143                        uint32_t              nb_functionnal_unit                           ,
     144                        uint32_t              nb_load_store_unit                            ,
     145                        uint32_t              nb_write_unit                                 ,
     146                       
     147                        uint32_t              nb_context                                    ,
     148                        uint32_t              nb_front_end                                  ,
     149                        uint32_t              nb_ooo_engine                                 ,
     150                        uint32_t              nb_packet                                     ,
     151                        uint32_t              size_general_data                             ,
     152                        uint32_t              size_special_data                             ,
     153                       
     154                        uint32_t            * size_read_queue                               ,//[nb_read_unit]
     155                        uint32_t            * size_reservation_station                      ,//[nb_read_unit]
     156                        uint32_t            * nb_inst_retire                                ,//[nb_read_unit]
     157                       
     158                        uint32_t            * nb_inst_functionnal_unit                      ,//[nb_functionnal_unit]
     159                        execute_timing_t  *** timing                                        ,//[nb_functionnal_unit][nb_type][nb_operation]
     160                        morpheo::behavioural::custom::custom_information_t (*get_custom_information) (void),
     161                       
     162                        uint32_t            * size_store_queue                              ,//[nb_load_store_unit]
     163                        uint32_t            * size_load_queue                               ,//[nb_load_store_unit]
     164                        uint32_t            * size_speculative_access_queue                 ,//[nb_load_store_unit]
     165                        uint32_t            * nb_port_check                                 ,//[nb_load_store_unit]
     166                        Tspeculative_load_t * speculative_load                              ,//[nb_load_store_unit]
     167                        uint32_t            * nb_bypass_memory                              ,//[nb_load_store_unit]
     168                        uint32_t            * nb_cache_port                                 ,//[nb_load_store_unit]
     169                        uint32_t            * nb_inst_memory                                ,//[nb_load_store_unit]
     170                       
     171                        uint32_t            * size_write_queue                              ,//[nb_write_unit]
     172                        uint32_t            * size_execute_queue                            ,//[nb_write_unit]
     173                        uint32_t            * nb_bypass_write                               ,//[nb_write_unit]
     174                       
     175                        uint32_t              nb_gpr_bank                                   ,
     176                        uint32_t              nb_gpr_port_read_by_bank                      ,
     177                        uint32_t              nb_gpr_port_write_by_bank                     ,
     178                        uint32_t              nb_spr_bank                                   ,
     179                        uint32_t              nb_spr_port_read_by_bank                      ,
     180                        uint32_t              nb_spr_port_write_by_bank                     ,
     181                        uint32_t            * nb_general_register                           ,//[nb_ooo_engine]
     182                        uint32_t            * nb_special_register                           ,//[nb_ooo_engine]
     183                        uint32_t            * nb_inst_insert_rob                            ,//[nb_ooo_engine]
     184                        uint32_t            * nb_inst_retire_rob                            ,//[nb_ooo_engine]
     185                       
     186                        Tpriority_t           execution_unit_to_write_unit_priority         ,
     187                        bool              *** execution_unit_to_write_unit_table_routing    ,//[nb_execute_unit][nb_execute_unit_port][nb_write_unit]
     188                        bool               ** execution_unit_to_write_unit_table_thread     ,//[nb_write_unit][nb_thread]
     189                       
     190                        Tpriority_t           read_unit_to_execution_unit_priority          ,
     191                        bool              *** read_unit_to_execution_unit_table_routing     ,//[nb_read_unit][nb_execute_unit][nb_execute_unit_port]
     192                        bool               ** read_unit_to_execution_unit_table_thread      ,//[nb_execute_unit][nb_thread]
     193
     194                        bool                * is_load_store_unit                            ,//[nb_execute_unit]
     195                        uint32_t            * translate_num_execute_unit                    ,//[nb_execute_unit]
     196
     197                        bool                  is_toplevel=false
     198                        );
    185199//   public : Parameters  (Parameters & param) ;
    186   public : ~Parameters () ;
     200  public : ~Parameters (void) ;
     201
     202  public :        void            copy       (void);
    187203
    188204  public :        Parameters_test msg_error  (void);
    189205
    190   public :        std::string   print      (uint32_t depth);
    191   public : friend std::ostream& operator<< (std::ostream& output_stream,
    192                                             morpheo::behavioural::core::multi_execute_loop::execute_loop::Parameters & x);
     206  public :        std::string     print      (uint32_t depth);
     207  public : friend std::ostream&   operator<< (std::ostream& output_stream,
     208                                              morpheo::behavioural::core::multi_execute_loop::execute_loop::Parameters & x);
    193209  };
    194210
Note: See TracChangeset for help on using the changeset viewer.