Ignore:
Timestamp:
Feb 19, 2009, 5:31:47 PM (15 years ago)
Author:
rosiere
Message:

1) OOO_egine : add stat to depiste low perf source
2) Commit : add stat
3) LSU_Pointer : retire - always ack (else combinatory loop). insert - max nb_inst_memory
4) TopLevel? : add debug_idle_time to stop combinatory loop.
5) Issue_queue : add reexecute_queue, new implementation (routage after issue_queue)
6) Decod / Predictor : add "can_continue"

Location:
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_translation_unit_Glue/src
Files:
1 added
6 edited
1 moved

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_translation_unit_Glue/src/Register_translation_unit_Glue.cpp

    r88 r110  
    5858        log_printf(INFO,Register_translation_unit_Glue,FUNCTION,"Allocation of statistics");
    5959
    60         statistics_declaration(param_statistics);
     60        statistics_allocation(param_statistics);
    6161      }
    6262#endif
     
    199199#ifdef STATISTICS
    200200    if (usage_is_set(_usage,USE_STATISTICS))
    201       {
    202         log_printf(INFO,Register_translation_unit_Glue,FUNCTION,"Generate Statistics file");
    203        
    204         delete _stat;
    205       }
     201      statistics_deallocation ();
    206202#endif
    207203
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_translation_unit_Glue/src/Register_translation_unit_Glue_allocation.cpp

    r98 r110  
    136136    }
    137137
     138#ifdef STATISTICS
     139    ALLOC1(internal_INSERT_RENAME_ACK, Tcontrol_t,_param->_nb_inst_insert);
     140#endif
     141
    138142    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
    139 
    140143#ifdef POSITION
    141144    if (usage_is_set(_usage,USE_POSITION))
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_translation_unit_Glue/src/Register_translation_unit_Glue_deallocation.cpp

    r98 r110  
    9999        DELETE1_SIGNAL( in_RETIRE_STAT_LIST_ACK,_param->_nb_inst_retire,1);
    100100
     101#ifdef STATISTICS
     102        DELETE1(internal_INSERT_RENAME_ACK, _param->_nb_inst_insert);
     103#endif
    101104      }
     105
    102106    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
    103107
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_translation_unit_Glue/src/Register_translation_unit_Glue_genMealy_insert_valack.cpp

    r88 r110  
    7575        log_printf(TRACE,Register_translation_unit_Glue,FUNCTION,"    * stat_list_ack  (r): %d",stat_list_ack );
    7676
     77#ifdef STATISTICS
     78        internal_INSERT_RENAME_ACK [i] = rename_ack;
     79#endif
    7780
    7881        PORT_WRITE(out_INSERT_RENAME_ACK     [i], rename_ack    );
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_translation_unit_Glue/src/Register_translation_unit_Glue_genMealy_retire.cpp

    r88 r110  
    3232        Tcontrol_t stat_list_ack = PORT_READ(in_RETIRE_STAT_LIST_ACK [i]);
    3333
    34         PORT_WRITE(out_RETIRE_ACK           [i], rat_ack and stat_list_ack);
    35         PORT_WRITE(out_RETIRE_RAT_VAL       [i], val and stat_list_ack);
    36         PORT_WRITE(out_RETIRE_STAT_LIST_VAL [i], val and rat_ack);
     34        Tcontrol_t ack           = (true
     35//                                     and val
     36                                    and rat_ack
     37                                    and stat_list_ack
     38                                    );
     39        Tcontrol_t rat_val       = (true
     40                                    and val
     41//                                     and rat_ack
     42                                    and stat_list_ack
     43                                    );
     44        Tcontrol_t stat_list_val = (true
     45                                    and val
     46                                    and rat_ack
     47//                                     and stat_list_ack
     48                                    );
     49
     50        PORT_WRITE(out_RETIRE_ACK           [i], ack          );
     51        PORT_WRITE(out_RETIRE_RAT_VAL       [i], rat_val      );
     52        PORT_WRITE(out_RETIRE_STAT_LIST_VAL [i], stat_list_val);
     53
     54        log_printf(TRACE,Register_translation_unit_Glue,FUNCTION,"  * inst_insert [%d]",i);
     55        log_printf(TRACE,Register_translation_unit_Glue,FUNCTION,"    * val            (r): %d",val           );
     56        log_printf(TRACE,Register_translation_unit_Glue,FUNCTION,"    * ack            (w): %d",ack           );
     57        log_printf(TRACE,Register_translation_unit_Glue,FUNCTION,"    * rat_val        (w): %d",rat_val       );
     58        log_printf(TRACE,Register_translation_unit_Glue,FUNCTION,"    * rat_ack        (r): %d",rat_ack       );
     59        log_printf(TRACE,Register_translation_unit_Glue,FUNCTION,"    * stat_list_val  (w): %d",stat_list_val );
     60        log_printf(TRACE,Register_translation_unit_Glue,FUNCTION,"    * stat_list_ack  (r): %d",stat_list_ack );
    3761      }
    3862
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_translation_unit_Glue/src/Register_translation_unit_Glue_statistics_allocation.cpp

    r108 r110  
    2020
    2121#undef  FUNCTION
    22 #define FUNCTION "Register_translation_unit_Glue::statistics_declaration"
    23   void Register_translation_unit_Glue::statistics_declaration (morpheo::behavioural::Parameters_Statistics * param_statistics)
     22#define FUNCTION "Register_translation_unit_Glue::statistics_allocation"
     23  void Register_translation_unit_Glue::statistics_allocation (morpheo::behavioural::Parameters_Statistics * param_statistics)
    2424  {
    2525    log_printf(FUNC,Register_translation_unit_Glue,FUNCTION,"Begin");
     
    2828                      "Register_translation_unit_Glue",
    2929                      param_statistics);
     30
     31    _stat_nb_inst_issue_rename_select        = _stat->create_variable("nb_inst_issue_rename_select");
     32    _stat_nb_inst_issue_rename_select_req    = _stat->create_variable("nb_inst_issue_rename_select_req");
     33
     34    _stat_nb_inst_issue_stall_by_commit      = _stat->create_variable("nb_inst_issue_stall_by_commit");
     35    _stat_nb_inst_issue_stall_by_rat_rename  = _stat->create_variable("nb_inst_issue_stall_by_rat_rename");
     36    _stat_nb_inst_issue_stall_by_rat_insert  = _stat->create_variable("nb_inst_issue_stall_by_rat_insert");
     37    _stat_nb_inst_issue_stall_by_free_list   = _stat->create_variable("nb_inst_issue_stall_by_free_list");
     38    _stat_nb_inst_issue_stall_by_stat_list   = _stat->create_variable("nb_inst_issue_stall_by_stat_list");
     39
     40//  std::string nb_inst_issue_stall = "+ + + nb_inst_issue_stall_by_commit nb_inst_issue_stall_by_rat_rename + nb_inst_issue_stall_by_rat_insert nb_inst_issue_stall_by_free_list + nb_inst_issue_stall_by_stat_list nb_inst_issue_stall_by_rename_select";
     41    std::string nb_inst_issue_stall = "+ + + nb_inst_issue_stall_by_commit nb_inst_issue_stall_by_rat_rename + nb_inst_issue_stall_by_rat_insert nb_inst_issue_stall_by_free_list nb_inst_issue_stall_by_stat_list";
     42
     43    _stat->create_expr_average_by_cycle("average_req_interface_insert", "nb_inst_issue_rename_select_req", "", _("Average instruction by cycle on issue interface (request)"));
     44    _stat->create_expr_average_by_cycle("average_use_interface_insert", "nb_inst_issue_rename_select"    , "", _("Average instruction by cycle on issue interface"));
     45
     46//  _stat->create_expr_percent ("percent_issue_stall_by_rename_select", "nb_inst_issue_stall_by_rename_select", nb_inst_issue_stall, _("Percent of instruction stalled by Rename_Select"));
     47    _stat->create_expr_percent ("percent_issue_stall_by_commit"       , "nb_inst_issue_stall_by_commit", nb_inst_issue_stall, _("Percent of instruction stalled by Commit_unit or Issue_queue or RegisterFile"));
     48    _stat->create_expr_percent ("percent_issue_stall_by_rat_rename"   , "nb_inst_issue_stall_by_rat_rename", nb_inst_issue_stall, _("Percent of instruction stalled by Rat_Rename"));
     49    _stat->create_expr_percent ("percent_issue_stall_by_rat_insert"   , "nb_inst_issue_stall_by_rat_insert", nb_inst_issue_stall, _("Percent of instruction stalled by Rat_Insert"));
     50    _stat->create_expr_percent ("percent_issue_stall_by_free_list"    , "nb_inst_issue_stall_by_free_list", nb_inst_issue_stall, _("Percent of instruction stalled by Free_List"));
     51    _stat->create_expr_percent ("percent_issue_stall_by_stat_list"    , "nb_inst_issue_stall_by_stat_list", nb_inst_issue_stall, _("Percent of instruction stalled by Stat_List"));
    3052   
    3153    log_printf(FUNC,Register_translation_unit_Glue,FUNCTION,"End");
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_translation_unit_Glue/src/Register_translation_unit_Glue_transition.cpp

    r81 r110  
    2626    log_printf(FUNC,Register_translation_unit_Glue,FUNCTION,"Begin");
    2727
     28#ifdef STATISTICS
     29    if (usage_is_set(_usage,USE_STATISTICS))
     30      {
     31        for (uint32_t i=0; i<_param->_nb_inst_insert; ++i)
     32          // Test request
     33          if (PORT_READ(in_INSERT_RENAME_VAL [i]))
     34            {
     35              (* _stat_nb_inst_issue_rename_select_req) ++;
     36
     37              if (internal_INSERT_RENAME_ACK [i])
     38                (* _stat_nb_inst_issue_rename_select)++;
     39              if (PORT_READ(in_INSERT_INSERT_ACK     [i]) == 0)
     40                (*_stat_nb_inst_issue_stall_by_commit    ) ++;
     41              if (PORT_READ(in_INSERT_RAT_RENAME_ACK [i]) == 0)
     42                (*_stat_nb_inst_issue_stall_by_rat_rename) ++;
     43              if (PORT_READ(in_INSERT_RAT_INSERT_ACK [i]) == 0)
     44                (*_stat_nb_inst_issue_stall_by_rat_insert) ++;
     45              if (PORT_READ(in_INSERT_FREE_LIST_ACK  [i]) == 0)
     46                (*_stat_nb_inst_issue_stall_by_free_list ) ++;
     47              if (PORT_READ(in_INSERT_STAT_LIST_ACK  [i]) == 0)
     48                (*_stat_nb_inst_issue_stall_by_stat_list ) ++;
     49            }
     50      }
     51#endif
     52
    2853#if defined(STATISTICS) or defined(VHDL_TESTBENCH)
    2954    end_cycle ();
Note: See TracChangeset for help on using the changeset viewer.