Ignore:
Timestamp:
Feb 12, 2009, 12:55:06 PM (15 years ago)
Author:
rosiere
Message:

1) decod_queue : add reg_LAST_SLOT.
2) Commit : insert on event -> to pop decod_queue. Head test : add information (speculative or not)
3) Context State / UPT : Branch miss and Load miss in same cycle.
4) Free List : Bank is on LSB not MSB.
5) Platforms : move data

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/src/Decod_genMealy.cpp

    r107 r108  
    4343
    4444    Tcontrol_t can_continue      [_param->_nb_context];
    45     Tcontrol_t can_continue_next [_param->_nb_context];   
     45//     Tcontrol_t can_continue_next [_param->_nb_context];
     46//     Tcontrol_t have_decod_branch [_param->_nb_context];
    4647
    4748    for (uint32_t i=0; i<_param->_nb_context; i++)
     
    5253       
    5354        can_continue                      [i] = PORT_READ(in_CONTEXT_DECOD_ENABLE [i]);
    54         can_continue_next                 [i] = PORT_READ(in_CONTEXT_DECOD_ENABLE [i]);
     55//      can_continue_next                 [i] = PORT_READ(in_CONTEXT_DECOD_ENABLE [i]);
     56//         have_decod_branch                 [i] = false;
    5557      }
    5658   
     
    7981                log_printf(TRACE,Decod,FUNCTION,"    * decod_ack [%d] : %d",i,PORT_READ(in_DECOD_ACK [i]));
    8082
    81                 can_continue [x] = can_continue_next [x];
     83//              can_continue [x] = can_continue_next [x];
    8284
    8385                decod_val  [i]    = true;                        // fetch_val and decod_enable
     
    139141                PORT_WRITE(out_DECOD_NO_EXECUTE    [i], _decod_instruction->_no_execute    );
    140142                PORT_WRITE(out_DECOD_IS_DELAY_SLOT [i], _decod_instruction->_is_delay_slot );
    141 //              PORT_WRITE(out_DECOD_ADDRESS       [i], addr);
     143#ifdef DEBUG
     144                PORT_WRITE(out_DECOD_ADDRESS       [i], addr);
     145#endif
    142146//                 if ((type == TYPE_BRANCH) and
    143147//                     ((_decod_instruction->_branch_condition = BRANCH_CONDITION_FLAG_SET) or
     
    193197               
    194198                    //can_continue_next [x] = PORT_READ(in_PREDICT_CAN_CONTINUE [i]); // can continue is set if direction is "not take" (also, continue is sequential order)
    195                     can_continue_next [x] = false; // one branch per context, the DS don't execute
     199                    can_continue [x] = false; // one branch per context, the DS don't execute
     200//                  can_continue_next [x] = false; // one branch per context, the DS don't execute
     201//                     have_decod_branch [x] = true;
    196202                  }
    197203
Note: See TracChangeset for help on using the changeset viewer.