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_OOO_Engine/OOO_Engine/Rename_unit/Load_Store_pointer_unit/src/Load_Store_pointer_unit.cpp

    r88 r122  
    7474    if (usage_is_set(_usage,USE_SYSTEMC))
    7575      {
     76
     77        // Constant : accepted already transaction
     78        for (uint32_t i=0; i<_param->_nb_front_end; ++i)
     79          for (uint32_t j=0; j<_param->_nb_context[i]; ++j)
     80            {
     81              internal_RETIRE_EVENT_ACK [i][j] = 1;
     82             
     83              PORT_WRITE(out_RETIRE_EVENT_ACK[i][j],internal_RETIRE_EVENT_ACK [i][j]);
     84            }
     85
    7686        log_printf(INFO,Load_Store_pointer_unit,FUNCTION,"Method - transition");
    7787
     
    101111
    102112# ifdef SYSTEMCASS_SPECIFIC
    103         // List dependency information
    104         for (uint32_t i=0; i<_param->_nb_inst_insert; i++)
    105           {
    106             (*(out_INSERT_ACK                   [i])) (*( in_INSERT_VAL                   [i]));
    107             if (_param->_have_port_front_end_id)
    108             (*(out_INSERT_ACK                   [i])) (*( in_INSERT_FRONT_END_ID          [i]));
    109             if (_param->_have_port_context_id)
    110             (*(out_INSERT_ACK                   [i])) (*( in_INSERT_CONTEXT_ID            [i]));
    111             (*(out_INSERT_ACK                   [i])) (*( in_INSERT_TYPE                  [i]));
    112             (*(out_INSERT_ACK                   [i])) (*( in_INSERT_OPERATION             [i]));
     113//      // List dependency information
     114//      for (uint32_t i=0; i<_param->_nb_inst_insert; i++)
     115//        {
     116//          (*(out_INSERT_ACK                   [i])) (*( in_INSERT_VAL                   [i]));
     117//          if (_param->_have_port_front_end_id)
     118//          (*(out_INSERT_ACK                   [i])) (*( in_INSERT_FRONT_END_ID          [i]));
     119//          if (_param->_have_port_context_id)
     120//          (*(out_INSERT_ACK                   [i])) (*( in_INSERT_CONTEXT_ID            [i]));
     121//          (*(out_INSERT_ACK                   [i])) (*( in_INSERT_TYPE                  [i]));
     122//          (*(out_INSERT_ACK                   [i])) (*( in_INSERT_OPERATION             [i]));
    113123 
    114             (*(out_INSERT_STORE_QUEUE_PTR_WRITE [i])) (*( in_INSERT_VAL                   [i]));
    115             if (_param->_have_port_front_end_id)
    116             (*(out_INSERT_STORE_QUEUE_PTR_WRITE [i])) (*( in_INSERT_FRONT_END_ID          [i]));
    117             if (_param->_have_port_context_id)
    118             (*(out_INSERT_STORE_QUEUE_PTR_WRITE [i])) (*( in_INSERT_CONTEXT_ID            [i]));
    119             (*(out_INSERT_STORE_QUEUE_PTR_WRITE [i])) (*( in_INSERT_TYPE                  [i]));
    120             (*(out_INSERT_STORE_QUEUE_PTR_WRITE [i])) (*( in_INSERT_OPERATION             [i]));
     124//          (*(out_INSERT_STORE_QUEUE_PTR_WRITE [i])) (*( in_INSERT_VAL                   [i]));
     125//          if (_param->_have_port_front_end_id)
     126//          (*(out_INSERT_STORE_QUEUE_PTR_WRITE [i])) (*( in_INSERT_FRONT_END_ID          [i]));
     127//          if (_param->_have_port_context_id)
     128//          (*(out_INSERT_STORE_QUEUE_PTR_WRITE [i])) (*( in_INSERT_CONTEXT_ID            [i]));
     129//          (*(out_INSERT_STORE_QUEUE_PTR_WRITE [i])) (*( in_INSERT_TYPE                  [i]));
     130//          (*(out_INSERT_STORE_QUEUE_PTR_WRITE [i])) (*( in_INSERT_OPERATION             [i]));
    121131 
    122             if (_param->_have_port_load_queue_ptr)
    123               {
    124             (*(out_INSERT_LOAD_QUEUE_PTR_WRITE  [i])) (*( in_INSERT_VAL                   [i]));
    125             if (_param->_have_port_front_end_id)
    126             (*(out_INSERT_LOAD_QUEUE_PTR_WRITE  [i])) (*( in_INSERT_FRONT_END_ID          [i]));
    127             if (_param->_have_port_context_id)
    128             (*(out_INSERT_LOAD_QUEUE_PTR_WRITE  [i])) (*( in_INSERT_CONTEXT_ID            [i]));
    129             (*(out_INSERT_LOAD_QUEUE_PTR_WRITE  [i])) (*( in_INSERT_TYPE                  [i]));
    130             (*(out_INSERT_LOAD_QUEUE_PTR_WRITE  [i])) (*( in_INSERT_OPERATION             [i]));
    131               }
    132           }
     132//          if (_param->_have_port_load_queue_ptr)
     133//            {
     134//          (*(out_INSERT_LOAD_QUEUE_PTR_WRITE  [i])) (*( in_INSERT_VAL                   [i]));
     135//          if (_param->_have_port_front_end_id)
     136//          (*(out_INSERT_LOAD_QUEUE_PTR_WRITE  [i])) (*( in_INSERT_FRONT_END_ID          [i]));
     137//          if (_param->_have_port_context_id)
     138//          (*(out_INSERT_LOAD_QUEUE_PTR_WRITE  [i])) (*( in_INSERT_CONTEXT_ID            [i]));
     139//          (*(out_INSERT_LOAD_QUEUE_PTR_WRITE  [i])) (*( in_INSERT_TYPE                  [i]));
     140//          (*(out_INSERT_LOAD_QUEUE_PTR_WRITE  [i])) (*( in_INSERT_OPERATION             [i]));
     141//            }
     142//        }
    133143# endif
    134144
Note: See TracChangeset for help on using the changeset viewer.