Changeset 62 for 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_genMoore.cpp
- Timestamp:
- Dec 4, 2007, 2:31:54 PM (17 years ago)
- 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_genMoore.cpp
r59 r62 28 28 // ~~~~~[ Interface "memory_out" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 29 29 30 // Test store and load queue31 30 Tcontext_t memory_out_context_id = 0; 32 31 Tpacket_t memory_out_packet_id = 0; 33 #ifdef HAVE_MEMORY_OUT_OPERATION34 Toperation_t memory_out_operation = 0;35 #endif36 #ifdef HAVE_MEMORY_OUT_TYPE37 Ttype_t memory_out_type = 0;38 #endif39 32 Tcontrol_t memory_out_write_rd = 0; 40 33 Tgeneral_address_t memory_out_num_reg_rd = 0; … … 47 40 internal_MEMORY_OUT_VAL = 0; 48 41 49 // TODO : now only store queue 42 // Test store and load queue 43 // TODO : il faut d'abord tester si un elment de l'access queue n'est pas commitable !!!!!!! 50 44 51 45 // Test an store must be commited. 52 53 54 46 if (_store_queue [internal_MEMORY_STORE_QUEUE_PTR_READ]._state == STORE_QUEUE_COMMIT) 55 47 { … … 59 51 memory_out_context_id= _store_queue [internal_MEMORY_STORE_QUEUE_PTR_READ]._context_id; 60 52 memory_out_packet_id = _store_queue [internal_MEMORY_STORE_QUEUE_PTR_READ]._packet_id ; 61 #ifdef HAVE_MEMORY_OUT_OPERATION62 memory_out_operation = _store_queue [internal_MEMORY_STORE_QUEUE_PTR_READ]._operation;63 #endif64 #ifdef HAVE_MEMORY_OUT_TYPE65 memory_out_type = _store_queue [internal_MEMORY_STORE_QUEUE_PTR_READ]._type;66 #endif67 53 // memory_out_write_rd 68 54 // memory_out_num_reg_rd … … 71 57 } 72 58 59 // write output 73 60 PORT_WRITE(out_MEMORY_OUT_VAL , internal_MEMORY_OUT_VAL); 74 61 75 62 PORT_WRITE(out_MEMORY_OUT_CONTEXT_ID, memory_out_context_id); 76 63 PORT_WRITE(out_MEMORY_OUT_PACKET_ID , memory_out_packet_id ); 77 #ifdef HAVE_MEMORY_OUT_OPERATION78 PORT_WRITE(out_MEMORY_OUT_OPERATION , memory_out_operation );79 #endif80 #ifdef HAVE_MEMORY_OUT_TYPE81 PORT_WRITE(out_MEMORY_OUT_TYPE , memory_out_type );82 #endif83 64 PORT_WRITE(out_MEMORY_OUT_WRITE_RD , memory_out_write_rd ); 84 65 PORT_WRITE(out_MEMORY_OUT_NUM_REG_RD, memory_out_num_reg_rd); … … 89 70 PORT_WRITE(out_MEMORY_OUT_EXCEPTION , memory_out_exception ); 90 71 72 // ~~~~~[ Interface "dache_req" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 73 74 Tcontext_t dcache_req_context_id; 75 Tpacket_t dcache_req_packet_id ; 76 Tdcache_address_t dcache_req_address ; 77 Tdcache_type_t dcache_req_type ; 78 Tcontrol_t dcache_req_uncached ; 79 Tdcache_data_t dcache_req_wdata ; 80 81 internal_DCACHE_REQ_VAL = 0; 82 83 // Test store and load queue 84 85 // TODO : il faut d'abord tester si un elment de l'access queue n'est pas commitable !!!!!!! 86 87 // Test an store must be commited. 88 if (_store_queue [internal_MEMORY_STORE_QUEUE_PTR_READ]._state == STORE_QUEUE_VALID_NO_SPECULATIVE) 89 { 90 internal_DCACHE_REQ_VAL = 1; 91 internal_DCACHE_REQ_SELECT_QUEUE = SELECT_STORE_QUEUE; 92 93 dcache_req_context_id = _store_queue [internal_MEMORY_STORE_QUEUE_PTR_READ]._context_id; 94 dcache_req_packet_id = _store_queue [internal_MEMORY_STORE_QUEUE_PTR_READ]._packet_id ; 95 dcache_req_address = _store_queue [internal_MEMORY_STORE_QUEUE_PTR_READ]._address ; 96 dcache_req_type = _store_queue [internal_MEMORY_STORE_QUEUE_PTR_READ]._dcache_type; 97 dcache_req_uncached = _store_queue [internal_MEMORY_STORE_QUEUE_PTR_READ]._uncached ; 98 dcache_req_wdata = _store_queue [internal_MEMORY_STORE_QUEUE_PTR_READ]._wdata ; 99 } 100 101 PORT_WRITE(out_DCACHE_REQ_VAL , internal_DCACHE_REQ_VAL); 102 PORT_WRITE(out_DCACHE_REQ_CONTEXT_ID, dcache_req_context_id); 103 PORT_WRITE(out_DCACHE_REQ_PACKET_ID , dcache_req_packet_id ); 104 PORT_WRITE(out_DCACHE_REQ_ADDRESS , dcache_req_address ); 105 PORT_WRITE(out_DCACHE_REQ_TYPE , dcache_req_type ); 106 PORT_WRITE(out_DCACHE_REQ_UNCACHED , dcache_req_uncached ); 107 PORT_WRITE(out_DCACHE_REQ_WDATA , dcache_req_wdata ); 108 92 109 log_printf(FUNC,Load_store_unit,FUNCTION,"End"); 93 110 };
Note: See TracChangeset
for help on using the changeset viewer.