Ignore:
Timestamp:
Oct 13, 2010, 8:15:51 PM (14 years ago)
Author:
rosiere
Message:

1) add test with SPECINT2K
2) new config of Selftest
3) modif RAT to support multiple depth_save ... but not finish (need fix Update Prediction Table)
4) add Function_pointer but need fix

Location:
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Context_State/src
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Context_State/src/Context_State_statistics_allocation.cpp

    r120 r145  
    4040    for (uint32_t i=0; i<_param->_nb_context; ++i)
    4141      {
    42         _stat_nb_cycle_state_ok                      [i] = _stat->create_counter("nb_cycle_state_ok_"                     +toString(i),"",toString(_("Number of cycle in state ok                      (context %d)"),i));
    43         _stat_nb_cycle_state_ko_excep                [i] = _stat->create_counter("nb_cycle_state_ko_excep_"               +toString(i),"",toString(_("Number of cycle in state ko_excep                (context %d)"),i));
    44         _stat_nb_cycle_state_ko_miss_branch          [i] = _stat->create_counter("nb_cycle_state_ko_miss_branch_"         +toString(i),"",toString(_("Number of cycle in state ko_miss_branch          (context %d)"),i));
    45         _stat_nb_cycle_state_ko_miss_load            [i] = _stat->create_counter("nb_cycle_state_ko_miss_load_"           +toString(i),"",toString(_("Number of cycle in state ko_miss_load            (context %d)"),i));
    46         _stat_nb_cycle_state_ko_miss_load_and_branch [i] = _stat->create_counter("nb_cycle_state_ko_miss_load_and_branch_"+toString(i),"",toString(_("Number of cycle in state ko_miss_load_and_branch (context %d)"),i));
    47         _stat_nb_cycle_state_ko_msync                [i] = _stat->create_counter("nb_cycle_state_ko_msync_"               +toString(i),"",toString(_("Number of cycle in state ko_msync                (context %d)"),i));
    48         _stat_nb_cycle_state_ko_psync                [i] = _stat->create_counter("nb_cycle_state_ko_psync_"               +toString(i),"",toString(_("Number of cycle in state ko_psync                (context %d)"),i));
    49         _stat_nb_cycle_state_ko_csync                [i] = _stat->create_counter("nb_cycle_state_ko_csync_"               +toString(i),"",toString(_("Number of cycle in state ko_csync                (context %d)"),i));
    50         _stat_nb_cycle_state_ko_spr                  [i] = _stat->create_counter("nb_cycle_state_ko_spr_"                 +toString(i),"",toString(_("Number of cycle in state ko_spr                  (context %d)"),i));
    51 
     42        _stat_nb_cycle_state_ok                      [i] = _stat->create_variable("nb_cycle_state_ok_"                     +toString(i));
     43        _stat_nb_cycle_state_ko_excep                [i] = _stat->create_variable("nb_cycle_state_ko_excep_"               +toString(i));
     44        _stat_nb_cycle_state_ko_miss_branch          [i] = _stat->create_variable("nb_cycle_state_ko_miss_branch_"         +toString(i));
     45        _stat_nb_cycle_state_ko_miss_load            [i] = _stat->create_variable("nb_cycle_state_ko_miss_load_"           +toString(i));
     46        _stat_nb_cycle_state_ko_miss_load_and_branch [i] = _stat->create_variable("nb_cycle_state_ko_miss_load_and_branch_"+toString(i));
     47        _stat_nb_cycle_state_ko_msync                [i] = _stat->create_variable("nb_cycle_state_ko_msync_"               +toString(i));
     48        _stat_nb_cycle_state_ko_psync                [i] = _stat->create_variable("nb_cycle_state_ko_psync_"               +toString(i));
     49        _stat_nb_cycle_state_ko_csync                [i] = _stat->create_variable("nb_cycle_state_ko_csync_"               +toString(i));
     50        _stat_nb_cycle_state_ko_spr                  [i] = _stat->create_variable("nb_cycle_state_ko_spr_"                 +toString(i));
    5251
    5352        _stat->create_expr_percent("percent_state_ok_"                     +toString(i),"nb_cycle_state_ok_"                     +toString(i),"cycle",toString(_("Percent of cycle in state ok                      (context %d)"),i));
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Context_State/src/Context_State_transition.cpp

    r128 r145  
    3333  (((state == CONTEXT_STATE_KO_MISS_BRANCH_ADDR                ) or  \
    3434    (state == CONTEXT_STATE_KO_MISS_BRANCH_WAITEND             ) or  \
     35    (state == CONTEXT_STATE_KO_MISS_BRANCH_INACCURATE          ) or  \
    3536    (state == CONTEXT_STATE_KO_MISS_BRANCH_WAIT_UPDATE         ))?PRIORITY_MISS_BRANCH: \
    3637   ((state == EVENT_TYPE_EXCEPTION)?PRIORITY_EXCEPTION:                           \
     
    112113//                  state = CONTEXT_STATE_OK;
    113114                    state = CONTEXT_STATE_KO_MISS_BRANCH_ADDR;
     115                  break;
     116                }
     117              case CONTEXT_STATE_KO_MISS_BRANCH_INACCURATE :
     118                {
     119                  if (inst_all == 0)
     120//                  state = CONTEXT_STATE_OK;
     121                    state = CONTEXT_STATE_OK;
    114122                  break;
    115123                }
     
    321329                      if (can_continue)
    322330                        reg_STATE                [i] =  CONTEXT_STATE_KO_MISS_BRANCH_ADDR;
    323                       else
    324                         {
    325 // #if (MANAGE_EVENT == MANAGE_EVENT_NO_WAIT)
    326 //                           reg_STATE                [i] =  CONTEXT_STATE_KO_MISS_BRANCH_ADDR;
    327 // #else
    328                           reg_STATE                [i] =  CONTEXT_STATE_KO_MISS_BRANCH_WAITEND;
    329 // #endif
    330                         }
     331                      else
     332                        // cf UPT : dest_val = direction, accurate depend of jump type (e.g. jr is inacurate)
     333                        // reg_STATE                [i] =  CONTEXT_STATE_KO_MISS_BRANCH_WAITEND;
     334                        reg_STATE                [i] =  CONTEXT_STATE_KO_MISS_BRANCH_INACCURATE;
    331335
    332336                      reg_EVENT_ADDRESS          [i] = PORT_READ(in_BRANCH_EVENT_ADDRESS_SRC  [i])+1; // address delay slot
     
    647651                        case CONTEXT_STATE_KO_MISS_BRANCH_ADDR             :
    648652                        case CONTEXT_STATE_KO_MISS_BRANCH_WAITEND          :
     653                        case CONTEXT_STATE_KO_MISS_BRANCH_INACCURATE       :
    649654                        case CONTEXT_STATE_KO_MISS_LOAD_AND_BRANCH_ADDR    :
    650655                        case CONTEXT_STATE_KO_MISS_LOAD_AND_BRANCH_WAITEND :
     
    752757          case CONTEXT_STATE_KO_EXCEP_SPR                       : (*_stat_nb_cycle_state_ko_excep                [i])++; break;
    753758
     759          case CONTEXT_STATE_KO_MISS_BRANCH_INACCURATE          :
    754760          case CONTEXT_STATE_KO_MISS_BRANCH_WAIT_UPDATE         :
    755761          case CONTEXT_STATE_KO_MISS_BRANCH_ADDR                :
Note: See TracChangeset for help on using the changeset viewer.