Ignore:
Timestamp:
Jun 26, 2009, 10:43:23 AM (15 years ago)
Author:
rosiere
Message:

1) Correct bug in link two signal
2) Fix error detected with valgrind
3) modif distexe script

Location:
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/Operation/include/Types.h

    r116 r128  
    109109      for (uint32_t i=0; i<NB_GROUP; i++)
    110110        {
    111           _spr               [i] = NULL;
     111          _spr [i] = NULL;
    112112        }
    113113    }
     
    117117      for (uint32_t x=0; x<NB_GROUP; x++)
    118118        if (_spr[x] != NULL)
    119           delete _spr[x];
    120       delete _spr;
    121       delete _spr_access_mode;
     119          delete [] _spr[x];
     120      delete [] _spr;
     121      delete    _spr_access_mode;
    122122    }
    123123
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/src/Functionnal_unit_deallocation.cpp

    r122 r128  
    3232        DELETE0_SIGNAL( in_EXECUTE_IN_VAL                   ,1);
    3333        DELETE0_SIGNAL(out_EXECUTE_IN_ACK                   ,1);
    34         DELETE0_SIGNAL( in_EXECUTE_IN_CONTEXT_ID            , _param->_size_context_id   );
    35         DELETE0_SIGNAL( in_EXECUTE_IN_FRONT_END_ID          , _param->_size_front_end_id );
    36         DELETE0_SIGNAL( in_EXECUTE_IN_OOO_ENGINE_ID         , _param->_size_ooo_engine_id);
    37         DELETE0_SIGNAL( in_EXECUTE_IN_PACKET_ID             , _param->_size_rob_ptr    );
    38         DELETE0_SIGNAL( in_EXECUTE_IN_OPERATION             , _param->_size_operation    );
    39         DELETE0_SIGNAL( in_EXECUTE_IN_TYPE                  , _param->_size_type         );
     34        DELETE0_SIGNAL( in_EXECUTE_IN_CONTEXT_ID            ,_param->_size_context_id   );
     35        DELETE0_SIGNAL( in_EXECUTE_IN_FRONT_END_ID          ,_param->_size_front_end_id );
     36        DELETE0_SIGNAL( in_EXECUTE_IN_OOO_ENGINE_ID         ,_param->_size_ooo_engine_id);
     37        DELETE0_SIGNAL( in_EXECUTE_IN_PACKET_ID             ,_param->_size_rob_ptr      );
     38        DELETE0_SIGNAL( in_EXECUTE_IN_OPERATION             ,_param->_size_operation    );
     39        DELETE0_SIGNAL( in_EXECUTE_IN_TYPE                  ,_param->_size_type         );
    4040        DELETE0_SIGNAL( in_EXECUTE_IN_STORE_QUEUE_PTR_WRITE ,_param->_size_store_queue_ptr);
    4141        DELETE0_SIGNAL( in_EXECUTE_IN_STORE_QUEUE_PTR_READ  ,_param->_size_store_queue_ptr);
    42         DELETE0_SIGNAL( in_EXECUTE_IN_STORE_QUEUE_EMPTY     , 1);
     42        DELETE0_SIGNAL( in_EXECUTE_IN_STORE_QUEUE_EMPTY     ,1);
    4343        DELETE0_SIGNAL( in_EXECUTE_IN_LOAD_QUEUE_PTR_WRITE  ,_param->_size_load_queue_ptr);
    44         DELETE0_SIGNAL( in_EXECUTE_IN_HAS_IMMEDIAT          , 1);
    45         DELETE0_SIGNAL( in_EXECUTE_IN_IMMEDIAT              , _param->_size_general_data);
    46         DELETE0_SIGNAL( in_EXECUTE_IN_DATA_RA               , _param->_size_general_data);
    47         DELETE0_SIGNAL( in_EXECUTE_IN_DATA_RB               , _param->_size_general_data);
    48         DELETE0_SIGNAL( in_EXECUTE_IN_DATA_RC               , _param->_size_special_data);
    49         DELETE0_SIGNAL( in_EXECUTE_IN_WRITE_RD              , 1);
    50         DELETE0_SIGNAL( in_EXECUTE_IN_NUM_REG_RD            , _param->_size_general_register);
    51         DELETE0_SIGNAL( in_EXECUTE_IN_WRITE_RE              , 1);
    52         DELETE0_SIGNAL( in_EXECUTE_IN_NUM_REG_RE            , _param->_size_special_register);
     44        DELETE0_SIGNAL( in_EXECUTE_IN_HAS_IMMEDIAT          ,1);
     45        DELETE0_SIGNAL( in_EXECUTE_IN_IMMEDIAT              ,_param->_size_general_data);
     46        DELETE0_SIGNAL( in_EXECUTE_IN_DATA_RA               ,_param->_size_general_data);
     47        DELETE0_SIGNAL( in_EXECUTE_IN_DATA_RB               ,_param->_size_general_data);
     48        DELETE0_SIGNAL( in_EXECUTE_IN_DATA_RC               ,_param->_size_special_data);
     49        DELETE0_SIGNAL( in_EXECUTE_IN_WRITE_RD              ,1);
     50        DELETE0_SIGNAL( in_EXECUTE_IN_NUM_REG_RD            ,_param->_size_general_register);
     51        DELETE0_SIGNAL( in_EXECUTE_IN_WRITE_RE              ,1);
     52        DELETE0_SIGNAL( in_EXECUTE_IN_NUM_REG_RE            ,_param->_size_special_register);
    5353
    5454        DELETE0_SIGNAL(out_EXECUTE_OUT_VAL            ,1);
     
    7272        // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
    7373       
     74        for (uint32_t i=0; i<_param->_nb_type; i++)
     75        delete [] _function_execute [i];
     76        delete [] _function_execute;
     77
    7478        for (uint32_t i=0; i<_param->_nb_context; i++)
    75           for (uint32_t j=0; j<_param->_nb_front_end; j++)
    76             for (uint32_t k=0; k<_param->_nb_ooo_engine; k++)
    77               delete _execute_register [i][j][k];
     79          {
     80            for (uint32_t j=0; j<_param->_nb_front_end; j++)
     81              {
     82                for (uint32_t k=0; k<_param->_nb_ooo_engine; k++)
     83                delete    _execute_register [i][j][k];
     84                delete [] _execute_register [i][j];
     85              }
     86            delete [] _execute_register [i];
     87          }
     88        delete [] _execute_register;
    7889
    79         DELETE3(_execute_register,_param->_nb_context,_param->_nb_front_end,_param->_nb_ooo_engine);
    80         DELETE0(_execute_param);
     90        delete    _execute_param;
     91        delete    _execute_operation_out;
    8192        if (_param->_have_pipeline_in)
    82         DELETE0(_execute_operation_in);
    83         DELETE0(_execute_operation_out);
    84         DELETE2(_function_execute,_param->_nb_type,_param->_nb_operation);
     93        delete    _execute_operation_in;
    8594      }
    8695
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/src/Functionnal_unit_transition.cpp

    r118 r128  
    132132            execute_operation->_num_reg_re    = PORT_READ(in_EXECUTE_IN_NUM_REG_RE  );
    133133            execute_operation->_data_re       = 0; // no necessaray
     134            execute_operation->_exception     = 0; // no necessaray
     135            execute_operation->_no_sequence   = 0; // no necessaray
     136            execute_operation->_address       = 0; // no necessaray
    134137
    135138            log_printf(TRACE,Functionnal_unit,FUNCTION,"    * context_id    : %d",execute_operation->_context_id   );
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/src/Load_store_unit_deallocation.cpp

    r124 r128  
    122122
    123123#if defined(DEBUG) and defined(DEBUG_Load_store_unit) and (DEBUG_Load_store_unit == true)
    124     for (uint32_t i=0; i<_param->_nb_thread; ++i)
    125       if (_param->_num_thread_valid [i])
    126         {
    127           memory_log_file [i].close();
    128         }
     124    {
     125      for (uint32_t i=0; i<_param->_nb_thread; ++i)
     126        if (_param->_num_thread_valid [i])
     127          {
     128            memory_log_file [i].close();
     129          }
     130      delete [] memory_log_file;
     131    }
    129132#endif
    130133
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/src/Load_store_unit_function_speculative_load_commit_transition.cpp

    r124 r128  
    239239        _speculative_access_queue_control->clear();
    240240
    241         reg_STORE_QUEUE_PTR_READ = 0;
     241        reg_STORE_QUEUE_PTR_READ       = 0;
    242242        reg_LOAD_QUEUE_CHECK_PRIORITY  = 0;
    243243
    244244        for (uint32_t i=0; i< _param->_size_store_queue             ; i++)
    245245          {
    246           reg_STORE_QUEUE_NB_CHECK  [i] = 0;
    247           _store_queue              [i]._state = STORE_QUEUE_EMPTY;
     246            reg_STORE_QUEUE_NB_CHECK  [i] = 0;
     247            _store_queue              [i]._state                 = STORE_QUEUE_EMPTY;
     248            _store_queue              [i]._context_id            = 0; // not necessary
     249            _store_queue              [i]._front_end_id          = 0; // not necessary
     250            _store_queue              [i]._ooo_engine_id         = 0; // not necessary
     251            _store_queue              [i]._packet_id             = 0; // not necessary
     252            _store_queue              [i]._operation             = 0; // not necessary
     253            _store_queue              [i]._load_queue_ptr_write  = 0; // not necessary
     254            _store_queue              [i]._address               = 0; // not necessary
     255            _store_queue              [i]._wdata                 = 0; // not necessary
     256//          _store_queue              [i]._write_rd              = 0; // not necessary
     257//          _store_queue              [i]._num_reg_rd            = 0; // not necessary
     258            _store_queue              [i]._exception             = 0; // not necessary
     259            _store_queue              [i]._send_commit           = 0; // not necessary
    248260          }
    249261
    250262        for (uint32_t i=0; i< _param->_size_load_queue              ; i++)
    251           _load_queue               [i]._state = LOAD_QUEUE_EMPTY;
     263          {
     264            _load_queue               [i]._state                 = LOAD_QUEUE_EMPTY;
     265            _load_queue               [i]._context_id            = 0; // not necessary
     266            _load_queue               [i]._front_end_id          = 0; // not necessary
     267            _load_queue               [i]._ooo_engine_id         = 0; // not necessary
     268            _load_queue               [i]._packet_id             = 0; // not necessary
     269            _load_queue               [i]._operation             = 0; // not necessary
     270            _load_queue               [i]._store_queue_ptr_write = 0; // not necessary
     271            _load_queue               [i]._store_queue_ptr_read  = 0; // not necessary
     272            _load_queue               [i]._store_queue_empty     = 0; // not necessary
     273            _load_queue               [i]._address               = 0; // not necessary
     274            _load_queue               [i]._check_hit_byte        = 0; // not necessary
     275            _load_queue               [i]._check_hit             = 0; // not necessary
     276            _load_queue               [i]._shift                 = 0; // not necessary
     277            _load_queue               [i]._is_load_signed        = 0; // not necessary
     278            _load_queue               [i]._access_size           = 0; // not necessary
     279            _load_queue               [i]._rdata                 = 0; // not necessary
     280            _load_queue               [i]._write_rd              = 0; // not necessary
     281            _load_queue               [i]._num_reg_rd            = 0; // not necessary
     282            _load_queue               [i]._exception             = 0; // not necessary
     283          }
    252284
    253285        for (uint32_t i=0; i< _param->_size_speculative_access_queue; i++)
    254           _speculative_access_queue [i]._state = SPECULATIVE_ACCESS_QUEUE_EMPTY;
     286          {
     287            _speculative_access_queue [i]._state                 = SPECULATIVE_ACCESS_QUEUE_EMPTY;
     288            _speculative_access_queue [i]._context_id            = 0; // not necessary
     289            _speculative_access_queue [i]._front_end_id          = 0; // not necessary
     290            _speculative_access_queue [i]._ooo_engine_id         = 0; // not necessary
     291            _speculative_access_queue [i]._packet_id             = 0; // not necessary
     292            _speculative_access_queue [i]._operation             = 0; // not necessary
     293            _speculative_access_queue [i]._load_queue_ptr_write  = 0; // not necessary
     294            _speculative_access_queue [i]._store_queue_ptr_write = 0; // not necessary
     295            _speculative_access_queue [i]._store_queue_ptr_read  = 0; // not necessary
     296            _speculative_access_queue [i]._store_queue_empty     = 0; // not necessary
     297            _speculative_access_queue [i]._address               = 0; // not necessary
     298            _speculative_access_queue [i]._write_rd              = 0; // not necessary
     299            _speculative_access_queue [i]._num_reg_rd            = 0; // not necessary
     300            _speculative_access_queue [i]._exception             = 0; // not necessary
     301          }
    255302      }
    256303    else
     
    10001047            bool         have_exception = (exception != EXCEPTION_MEMORY_NONE);
    10011048            bool         need_check= false;
    1002             Tlsq_ptr_t        store_queue_ptr_write = _speculative_access_queue [internal_SPECULATIVE_ACCESS_QUEUE_PTR_READ]._store_queue_ptr_write;
    1003             Tlsq_ptr_t        store_queue_ptr_read  = _speculative_access_queue [internal_SPECULATIVE_ACCESS_QUEUE_PTR_READ]._store_queue_ptr_read ;
    1004             Tcontrol_t        store_queue_empty     = _speculative_access_queue [internal_SPECULATIVE_ACCESS_QUEUE_PTR_READ]._store_queue_empty    ;
     1049            Tlsq_ptr_t   store_queue_ptr_write = _speculative_access_queue [internal_SPECULATIVE_ACCESS_QUEUE_PTR_READ]._store_queue_ptr_write;
     1050            Tlsq_ptr_t   store_queue_ptr_read  = _speculative_access_queue [internal_SPECULATIVE_ACCESS_QUEUE_PTR_READ]._store_queue_ptr_read ;
     1051            Tcontrol_t   store_queue_empty     = _speculative_access_queue [internal_SPECULATIVE_ACCESS_QUEUE_PTR_READ]._store_queue_empty    ;
    10051052           
    10061053            if (have_exception)
Note: See TracChangeset for help on using the changeset viewer.