Ignore:
Timestamp:
Jun 3, 2009, 10:15:51 AM (15 years ago)
Author:
rosiere
Message:

Modif for performance :
1) Load Store Unit : store send request to valid exeception
2) Commit_unit : retire can bypass store
3) Commit_unit : add stat to manage store instruction
4) Load Store Unit and Load Store Pointer Manager : add store_queue_ptr_read
5) Fix lot of bug

File:
1 edited

Legend:

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

    r120 r122  
    1616namespace context_state {
    1717
     18#define MISS_FAST
    1819
    1920#define get_priority(x) \
     
    5354//             uint32_t x = _param->_link_context_to_decod_unit    [i];
    5455
    55             Tcounter_t inst_all = PORT_READ(in_NB_INST_COMMIT_ALL[i]) + PORT_READ(in_NB_INST_DECOD_ALL [i]);
    56 //          Tcounter_t inst_mem = PORT_READ(in_NB_INST_COMMIT_MEM[i]) + PORT_READ(in_NB_INST_DECOD_ALL [i]);
     56            Tcounter_t inst_commit_all = PORT_READ(in_NB_INST_COMMIT_ALL[i]);
     57//          Tcounter_t inst_commit_mem = PORT_READ(in_NB_INST_COMMIT_MEM[i]);
     58            Tcounter_t inst_decod_all  = PORT_READ(in_NB_INST_DECOD_ALL [i]);
     59            Tcounter_t inst_all        = inst_commit_all + inst_decod_all;
     60//          Tcounter_t inst_mem        = inst_commit_mem + inst_decod_all;
    5761
    5862            context_state_t state = reg_STATE [i];
     
    6973                  // Wait end of all instruction
    7074                  if (inst_all == 0)
     75//                if (inst_decod_all == 0)
    7176                    state = CONTEXT_STATE_KO_EXCEP_ADDR;
    7277                  break;
     
    8590                {
    8691                  // Wait end of all instruction
    87                   if (inst_all == 0)
     92//                if (inst_all == 0)
     93                  if (
     94#ifdef  MISS_FAST
     95                      inst_decod_all ==
     96#else
     97                      inst_all ==
     98#endif
     99                      0)
    88100                   
    89 //                  state = CONTEXT_STATE_OK; // @@@ TODO : make MISS fast (miss decod)
     101//                  state = CONTEXT_STATE_OK;
    90102                    state = CONTEXT_STATE_KO_MISS_BRANCH_ADDR;
    91103                  break;
     
    94106                {
    95107                  // Wait end of all instruction
    96                   if (inst_all == 0)
     108//                if (inst_all == 0)
     109                  if (
     110#ifdef  MISS_FAST
     111                      inst_decod_all ==
     112#else
     113                      inst_all ==
     114#endif
     115                      0)
    97116                    state = CONTEXT_STATE_KO_MISS_LOAD_ADDR;
    98117
     
    127146                {
    128147                  // Wait end of all instruction
    129                   if (inst_all == 0)
    130                    
     148//                if (inst_all == 0)
     149                  if (
     150#ifdef  MISS_FAST
     151                      inst_decod_all ==
     152#else
     153                      inst_all ==
     154#endif
     155                      0)
    131156//                  state = CONTEXT_STATE_OK; // @@@ TODO : make MISS fast (miss decod)
    132157                    state = CONTEXT_STATE_KO_MISS_LOAD_AND_BRANCH_ADDR;
Note: See TracChangeset for help on using the changeset viewer.