Ignore:
Timestamp:
Sep 24, 2007, 5:10:46 PM (17 years ago)
Author:
rosiere
Message:

Factorisation du contrôle de file d'attente dans une classe "Queue_Control"

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Reservation_station_transition.cpp

    r55 r56  
    4747    if (PORT_READ(in_NRESET) == 0)
    4848      {
    49         // clear all element in control.
    50         _queue_nb_elt = 0;
    51 
    5249        _queue_control->clear();
    53         for (uint32_t i=0; i<_param->_size_queue; i++)
    54           _queue_control->push_back(i);
    5550      }
    5651    else
     
    6358
    6459            // Write in reservation station
    65             uint32_t index = (*_queue_control)[_queue_nb_elt];
    66             _queue_nb_elt ++;
     60            uint32_t index = _queue_control->push();
    6761
    6862            log_printf(TRACE,Reservation_station,FUNCTION," * index         : %d",index);
     
    9690
    9791        // scan in reverse order, because when we pop the queue there are an auto reorder
    98         for (int32_t i=(static_cast<int32_t>(_queue_nb_elt))-1;i>=0; i--)
     92        for (int32_t i=(static_cast<int32_t>(_queue_control->nb_elt()))-1;i>=0; i--)
    9993          {
    10094            uint32_t index = (*_queue_control)[i];
     
    10599                log_printf(TRACE,Reservation_station,FUNCTION,"POP  [%d]",i);
    106100
    107                 _queue_control->erase (_queue_control->begin()+i);
    108                 _queue_control->push_back(index);
    109                 _queue_nb_elt --;
     101                _queue_control->pop(i);
    110102
    111103                log_printf(TRACE,Reservation_station,FUNCTION," * index         : %d",index);
     
    118110       
    119111        // scan all entry
    120         for (uint32_t i=0; i<_queue_nb_elt; i++)
     112        for (uint32_t i=0; i<_queue_control->nb_elt(); i++)
    121113          {
    122114            uint32_t index = (*_queue_control)[i];
Note: See TracChangeset for help on using the changeset viewer.