Ignore:
Timestamp:
Jun 8, 2009, 10:43:30 PM (15 years ago)
Author:
rosiere
Message:

1) Fix performance
2) add auto generation to SPECINT2000
3) add reset in genMoore and genMealy

Location:
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Reexecute_unit/src
Files:
4 edited

Legend:

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

    r88 r123  
    3939    usage_environment(_usage);
    4040
    41 #if DEBUG_Reexecute_unit == true
    42     log_printf(INFO,Reexecute_unit,FUNCTION,_("<%s> Parameters"),_name.c_str());
     41// #if DEBUG_Reexecute_unit == true
     42//     log_printf(INFO,Reexecute_unit,FUNCTION,_("<%s> Parameters"),_name.c_str());
    4343
    44     std::cout << *param << std::endl;
    45 #endif   
     44//     std::cout << *param << std::endl;
     45// #endif   
    4646
    4747    log_printf(INFO,Reexecute_unit,FUNCTION,_("<%s> : Allocation"),_name.c_str());
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Reexecute_unit/src/Reexecute_unit_genMealy_commit.cpp

    r117 r123  
    2323    log_function(Reexecute_unit,FUNCTION,_name.c_str());
    2424
     25    if (PORT_READ(in_NRESET))
     26      {
    2527    // Initialisation
    2628    Tcontrol_t execute_loop_ack [_param->_nb_execute_loop][_param->_max_nb_inst_execute];
     
    126128      for (uint32_t j=0; j<_param->_nb_inst_execute [i]; ++j)
    127129        PORT_WRITE(out_EXECUTE_LOOP_ACK [i][j], execute_loop_ack [i][j]);
     130      }
     131    else
     132      {
     133#ifdef STATISTICS
     134        for (uint32_t i=0; i<_param->_nb_inst_commit; ++i)
     135          internal_COMMIT_VAL [i] = 0;
     136#endif
     137        for (uint32_t i=0; i<_param->_nb_execute_loop; ++i)
     138          for (uint32_t j=0; j<_param->_nb_inst_execute [i]; ++j)
     139            PORT_WRITE(out_EXECUTE_LOOP_ACK [i][j], 0);
     140      }
    128141
    129142    log_end(Reexecute_unit,FUNCTION);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Reexecute_unit/src/Reexecute_unit_genMealy_reexecute.cpp

    r122 r123  
    2424    log_function(Reexecute_unit,FUNCTION,_name.c_str());
    2525
     26    if (PORT_READ(in_NRESET))
     27      {
    2628    // ===================================================================
    2729    // =====[ REEXECUTE ]=================================================
     
    9496        internal_REEXECUTE_VAL     [i] = val;
    9597        internal_REEXECUTE_ROB_ACK [i] = ack;
     98      }
     99      }
     100    else
     101      {
     102        for (uint32_t i=0; i<_param->_nb_inst_reexecute; i++)
     103          {
     104            internal_REEXECUTE_VAL     [i] = 0;
     105            internal_REEXECUTE_ROB_ACK [i] = 0;
     106          }
     107      }
    96108
     109    for (uint32_t i=0; i<_param->_nb_inst_reexecute; i++)
     110      {
    97111        PORT_WRITE(out_REEXECUTE_VAL     [i], internal_REEXECUTE_VAL     [i]);
    98112        PORT_WRITE(out_REEXECUTE_ROB_ACK [i], internal_REEXECUTE_ROB_ACK [i]);
    99113      }
    100 
    101114    log_end(Reexecute_unit,FUNCTION);
    102115  };
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Reexecute_unit/src/Reexecute_unit_genMoore.cpp

    r98 r123  
    2424    log_function(Reexecute_unit,FUNCTION,_name.c_str());
    2525
     26    if (PORT_READ(in_NRESET))
     27      {
    2628    // ===================================================================
    2729    // =====[ SPR ]=======================================================
     
    4749
    4850        internal_SPR_VAL [i] = val;
     51      }
     52      }
     53    else
     54      {
     55        //Reset
     56        for (uint32_t i=0; i<_param->_nb_inst_reexecute; i++)
     57          internal_SPR_VAL [i] = 0;
     58      }
     59
     60    // Write output
     61    for (uint32_t i=0; i<_param->_nb_inst_reexecute; i++)
     62      {
    4963        PORT_WRITE(out_SPR_VAL [i], internal_SPR_VAL [i]);
    5064      }
Note: See TracChangeset for help on using the changeset viewer.