Ignore:
Timestamp:
Oct 20, 2009, 8:52:15 PM (15 years ago)
Author:
rosiere
Message:

1) Add new algo in ifetch queue
2) Add Cancel bit
3) new config

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 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

    r134 r136  
    251251            _store_queue              [i]._packet_id             = 0; // not necessary
    252252            _store_queue              [i]._operation             = 0; // not necessary
     253            _store_queue              [i]._cancel                = 0; // not necessary
    253254            _store_queue              [i]._load_queue_ptr_write  = 0; // not necessary
    254255            _store_queue              [i]._address               = 0; // not necessary
     
    268269            _load_queue               [i]._packet_id             = 0; // not necessary
    269270            _load_queue               [i]._operation             = 0; // not necessary
     271            _load_queue               [i]._cancel                = 0; // not necessary
    270272            _load_queue               [i]._store_queue_ptr_write = 0; // not necessary
    271273            _load_queue               [i]._store_queue_ptr_read  = 0; // not necessary
     
    291293            _speculative_access_queue [i]._packet_id             = 0; // not necessary
    292294            _speculative_access_queue [i]._operation             = 0; // not necessary
     295            _speculative_access_queue [i]._cancel                = 0; // not necessary
    293296            _speculative_access_queue [i]._load_queue_ptr_write  = 0; // not necessary
    294297            _speculative_access_queue [i]._store_queue_ptr_write = 0; // not necessary
     
    815818#endif
    816819            Toperation_t    operation            = PORT_READ(in_MEMORY_IN_OPERATION[internal_MEMORY_IN_PORT]);
     820            Tcontrol_t      cancel               = PORT_READ(in_MEMORY_IN_CANCEL   [internal_MEMORY_IN_PORT]);
    817821            Tgeneral_data_t address              = (PORT_READ(in_MEMORY_IN_IMMEDIAT[internal_MEMORY_IN_PORT]) +
    818822                                                    PORT_READ(in_MEMORY_IN_DATA_RA [internal_MEMORY_IN_PORT]));
     
    925929                    _store_queue [index]._packet_id            = (not _param->_have_port_rob_ptr      )?0:PORT_READ(in_MEMORY_IN_PACKET_ID    [internal_MEMORY_IN_PORT]);
    926930                    _store_queue [index]._operation            = operation;
     931                    _store_queue [index]._cancel               = cancel   ;
    927932                    _store_queue [index]._load_queue_ptr_write = (not _param->_have_port_load_queue_ptr)?0:PORT_READ(in_MEMORY_IN_LOAD_QUEUE_PTR_WRITE[internal_MEMORY_IN_PORT]);
    928933                    _store_queue [index]._address              = address;
     
    965970
    966971                _speculative_access_queue [index]._operation            = operation;
     972                _speculative_access_queue [index]._cancel               = cancel   ;
    967973                _speculative_access_queue [index]._load_queue_ptr_write = (not _param->_have_port_load_queue_ptr)?0:PORT_READ(in_MEMORY_IN_LOAD_QUEUE_PTR_WRITE[internal_MEMORY_IN_PORT]);
    968974                _speculative_access_queue [index]._store_queue_ptr_write= PORT_READ(in_MEMORY_IN_STORE_QUEUE_PTR_WRITE[internal_MEMORY_IN_PORT]);
     
    10941100            _load_queue [ptr_write]._packet_id             = _speculative_access_queue [internal_SPECULATIVE_ACCESS_QUEUE_PTR_READ]._packet_id;
    10951101            _load_queue [ptr_write]._operation             = operation;
     1102            _load_queue [ptr_write]._cancel                = _speculative_access_queue [internal_SPECULATIVE_ACCESS_QUEUE_PTR_READ]._cancel;
    10961103            _load_queue [ptr_write]._store_queue_ptr_write = store_queue_ptr_write;
    10971104            _load_queue [ptr_write]._store_queue_ptr_read  = store_queue_ptr_read ;
     
    12861293            uint32_t j = (reg_STORE_QUEUE_PTR_READ+i)%_param->_size_store_queue;
    12871294
    1288             log_printf(TRACE,Load_store_unit,FUNCTION,"    [%.4d] %.4d %.4d %.4d, %.4d, %.4d, %.4d, %.8x %.8x, %.2d %.1d, %.2d %s",
     1295            log_printf(TRACE,Load_store_unit,FUNCTION,"    [%.4d] %.4d %.4d %.4d, %.4d, %.4d %.1d, %.4d, %.8x %.8x, %.2d %.1d, %.2d %s",
    12891296                       j,
    12901297                       _store_queue[j]._context_id          ,
     
    12931300                       _store_queue[j]._packet_id           ,
    12941301                       _store_queue[j]._operation           ,
     1302                       _store_queue[j]._cancel              ,
    12951303                       _store_queue[j]._load_queue_ptr_write,
    12961304                       _store_queue[j]._address             ,
     
    13111319            uint32_t j = (*_speculative_access_queue_control)[i];
    13121320
    1313             log_printf(TRACE,Load_store_unit,FUNCTION,"    [%.4d] %.4d %.4d %.4d, %.4d, %.4d, %.4d %.4d %.4d %.1d, %.8x, %.1d %.4d, %.2d, %s",
     1321            log_printf(TRACE,Load_store_unit,FUNCTION,"    [%.4d] %.4d %.4d %.4d, %.4d, %.4d %.1d, %.4d %.4d %.4d %.1d, %.8x, %.1d %.4d, %.2d, %s",
    13141322                       j,
    13151323                       _speculative_access_queue[j]._context_id          ,
     
    13181326                       _speculative_access_queue[j]._packet_id           ,
    13191327                       _speculative_access_queue[j]._operation           ,
     1328                       _speculative_access_queue[j]._cancel              ,
    13201329                       _speculative_access_queue[j]._load_queue_ptr_write,
    13211330                       _speculative_access_queue[j]._store_queue_ptr_write,
     
    13371346            uint32_t j = i;
    13381347
    1339             log_printf(TRACE,Load_store_unit,FUNCTION,"    [%.4d] %.4d %.4d %.4d, %.4d, %.4d, %.4d %.4d %.1d, %.8x %.1x %.1d %.2d %.1d %.2d, %.8x, %.1d %.4d, %.2d, %s",
     1348            log_printf(TRACE,Load_store_unit,FUNCTION,"    [%.4d] %.4d %.4d %.4d, %.4d, %.4d %.1d, %.4d %.4d %.1d, %.8x %.1x %.1d %.2d %.1d %.2d, %.8x, %.1d %.4d, %.2d, %s",
    13401349                       j,
    13411350                       _load_queue[j]._context_id          ,
     
    13441353                       _load_queue[j]._packet_id           ,
    13451354                       _load_queue[j]._operation           ,
     1355                       _load_queue[j]._cancel              ,
    13461356                       _load_queue[j]._store_queue_ptr_write,
    13471357                       _load_queue[j]._store_queue_ptr_read ,
Note: See TracChangeset for help on using the changeset viewer.