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/Issue_queue/src
Files:
5 edited

Legend:

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

    r111 r123  
    3939    usage_environment(_usage);
    4040
    41 #if DEBUG_Issue_queue == true
    42     log_printf(INFO,Issue_queue,FUNCTION,_("<%s> Parameters"),_name.c_str());
     41// #if DEBUG_Issue_queue == true
     42//     log_printf(INFO,Issue_queue,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,Issue_queue,FUNCTION,_("<%s> : Allocation"),_name.c_str());
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Issue_queue/src/Issue_queue_function_in_order_genMealy_issue_out.cpp

    r122 r123  
    2424    log_function(Issue_queue,FUNCTION,_name.c_str());
    2525
     26    if (PORT_READ(in_NRESET))
    2627    // ===================================================================
    2728    // =====[ ISSUE_OUT ]=================================================
    2829    // ===================================================================
    29     {
     30      {
    3031      Tcontrol_t val [_param->_nb_inst_issue];
    3132
     
    175176        }
    176177    }
     178    else
     179      {
     180      for (uint32_t i=0; i<_param->_nb_inst_issue; i++)
     181        internal_ISSUE_OUT_VAL [i] = 0;
     182      }
     183
     184    for (uint32_t i=0; i<_param->_nb_inst_issue; i++)
     185      PORT_WRITE(out_ISSUE_OUT_VAL [i], internal_ISSUE_OUT_VAL [i]);
    177186
    178187    log_end(Issue_queue,FUNCTION);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Issue_queue/src/Issue_queue_function_in_order_genMoore.cpp

    r111 r123  
    3838          internal_ISSUE_IN_ACK [i][j] = false;
    3939
     40      if (PORT_READ(in_NRESET))
     41        {
    4042      std::list<generic::priority::select_t> * select_in = _priority_in ->select(); // same select for all issue
    4143      std::list<generic::priority::select_t>::iterator it=select_in ->begin();
     
    6264          nb_insert ++;
    6365        }
    64      
     66        }
     67
    6568      for (uint32_t i=0; i<_param->_nb_rename_unit; i++)
    6669        for (uint32_t j=0; j<_param->_nb_inst_rename[i]; j++)
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Issue_queue/src/Issue_queue_function_out_of_order_genMoore.cpp

    r122 r123  
    2424    log_function(Issue_queue,FUNCTION,_name.c_str());
    2525
     26    if (PORT_READ(in_NRESET))
     27      {
    2628    // ===================================================================
    2729    // =====[ REEXECUTE_UNIT ]============================================
     
    217219        {
    218220          internal_ISSUE_OUT_VAL [i] = val [i];
     221        }
     222    }
     223      }
     224    else
     225      {
     226        // Reset
     227        for (uint32_t i=0; i<_param->_nb_bank; i++)
     228          {
     229            internal_BANK_IN_ACK  [i] = 0;
     230//             internal_BANK_IN_NUM_RENAME_UNIT [num_bank] = num_rename_unit;
     231//             internal_BANK_IN_NUM_INST        [num_bank] = num_inst_rename;
     232          }
     233        for (uint32_t i=0; i<_param->_nb_rename_unit; i++)
     234          for (uint32_t j=0; j<_param->_nb_inst_rename[i]; j++)
     235            PORT_WRITE(out_ISSUE_IN_ACK [i][j],0);
     236
     237          for (uint32_t i=0; i<_param->_nb_inst_issue; i++)
     238            {
     239              internal_ISSUE_OUT_VAL [i] = 0;
     240//            internal_ISSUE_OUT_FROM_REEXECUTE [i] = true;
     241//            internal_ISSUE_OUT_NUM_BANK       [i] = num_bank;
     242//            internal_ISSUE_OUT_ENTRY          [i] = entry;
     243            }
     244      }
     245
     246    // Write output
     247      for (uint32_t i=0; i<_param->_nb_inst_issue; i++)
     248        {
    219249          PORT_WRITE(out_ISSUE_OUT_VAL [i], internal_ISSUE_OUT_VAL [i]);
    220250        }
    221     }
    222251
    223252    log_end(Issue_queue,FUNCTION);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Issue_queue/src/Issue_queue_genMoore.cpp

    r111 r123  
    2424    log_function(Issue_queue,FUNCTION,_name.c_str());
    2525
     26    if (PORT_READ(in_NRESET))
     27      {
    2628    // ===================================================================
    2729    // =====[ REEXECUTE_UNIT ]============================================
     
    3537
    3638        log_printf(TRACE,Issue_queue,FUNCTION,"    * ACK : %d",internal_REEXECUTE_ACK [i]);
     39      }
    3740
    38         PORT_WRITE(out_REEXECUTE_ACK [i], internal_REEXECUTE_ACK [i]);
    3941      }
     42    else
     43      {
     44        // Reset
     45        for (uint32_t i=0; i<_param->_nb_inst_reexecute; ++i)
     46          internal_REEXECUTE_ACK [i] = 0;
     47      }
     48
     49    // Write Output
     50    for (uint32_t i=0; i<_param->_nb_inst_reexecute; ++i)
     51      PORT_WRITE(out_REEXECUTE_ACK [i], internal_REEXECUTE_ACK [i]);
    4052
    4153    (this->*function_genMoore) ();
Note: See TracChangeset for help on using the changeset viewer.