Changeset 145 for trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/src
- Timestamp:
- Oct 13, 2010, 8:15:51 PM (14 years ago)
- Location:
- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/src
- Files:
-
- 2 edited
- 5 moved
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.cpp
r138 r145 77 77 switch (_param->_speculative_load) 78 78 { 79 case SPECULATIVE_LOAD_ ACCESS:79 case SPECULATIVE_LOAD_COMMIT : 80 80 { 81 function_transition = &morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_execute_unit::execute_unit::load_store_unit::Load_store_unit::function_speculative_load_ access_transition ;82 function_genMoore = &morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_execute_unit::execute_unit::load_store_unit::Load_store_unit::function_speculative_load_ access_genMoore ;83 function_genMealy_dcache = &morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_execute_unit::execute_unit::load_store_unit::Load_store_unit::function_speculative_load_ access_genMealy_dcache;84 function_genMealy_insert = &morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_execute_unit::execute_unit::load_store_unit::Load_store_unit::function_speculative_load_ access_genMealy_insert;85 function_genMealy_retire = &morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_execute_unit::execute_unit::load_store_unit::Load_store_unit::function_speculative_load_ access_genMealy_retire;81 function_transition = &morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_execute_unit::execute_unit::load_store_unit::Load_store_unit::function_speculative_load_commit_transition ; 82 function_genMoore = &morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_execute_unit::execute_unit::load_store_unit::Load_store_unit::function_speculative_load_commit_genMoore ; 83 function_genMealy_dcache = &morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_execute_unit::execute_unit::load_store_unit::Load_store_unit::function_speculative_load_commit_genMealy_dcache; 84 function_genMealy_insert = &morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_execute_unit::execute_unit::load_store_unit::Load_store_unit::function_speculative_load_commit_genMealy_insert; 85 function_genMealy_retire = &morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_execute_unit::execute_unit::load_store_unit::Load_store_unit::function_speculative_load_commit_genMealy_retire; 86 86 break; 87 87 } 88 88 case NO_SPECULATIVE_LOAD : 89 // case SPECULATIVE_LOAD_COMMIT : 90 //case SPECULATIVE_LOAD_BYPASS : 89 // case SPECULATIVE_LOAD_ACCESS : 91 90 default : 92 91 { -
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_genMealy_dcache.cpp
r144 r145 21 21 22 22 #undef FUNCTION 23 #define FUNCTION "Load_store_unit::function_speculative_load_ access_genMealy_dcache"24 void Load_store_unit::function_speculative_load_ access_genMealy_dcache (void)23 #define FUNCTION "Load_store_unit::function_speculative_load_commit_genMealy_dcache" 24 void Load_store_unit::function_speculative_load_commit_genMealy_dcache (void) 25 25 { 26 26 log_begin(Load_store_unit,FUNCTION); -
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_genMealy_insert.cpp
r144 r145 21 21 22 22 #undef FUNCTION 23 #define FUNCTION "Load_store_unit::function_speculative_load_ access_genMealy_insert"24 void Load_store_unit::function_speculative_load_ access_genMealy_insert (void)23 #define FUNCTION "Load_store_unit::function_speculative_load_commit_genMealy_insert" 24 void Load_store_unit::function_speculative_load_commit_genMealy_insert (void) 25 25 { 26 26 log_begin(Load_store_unit,FUNCTION); -
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_genMealy_retire.cpp
r144 r145 21 21 22 22 #undef FUNCTION 23 #define FUNCTION "Load_store_unit::function_speculative_load_ access_genMealy_retire"24 void Load_store_unit::function_speculative_load_ access_genMealy_retire (void)23 #define FUNCTION "Load_store_unit::function_speculative_load_commit_genMealy_retire" 24 void Load_store_unit::function_speculative_load_commit_genMealy_retire (void) 25 25 { 26 26 log_begin(Load_store_unit,FUNCTION); -
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
r144 r145 21 21 22 22 #undef FUNCTION 23 #define FUNCTION "Load_store_unit::function_speculative_load_ access_genMoore"24 void Load_store_unit::function_speculative_load_ access_genMoore (void)23 #define FUNCTION "Load_store_unit::function_speculative_load_commit_genMoore" 24 void Load_store_unit::function_speculative_load_commit_genMoore (void) 25 25 { 26 26 log_begin(Load_store_unit,FUNCTION); … … 56 56 { 57 57 // internal_MEMORY_OUT_PTR = (reg_LOAD_QUEUE_PTR_READ+1)%_param->_size_load_queue; 58 internal_MEMORY_OUT_VAL = ((_load_queue[internal_MEMORY_OUT_PTR]._state == LOAD_QUEUE_COMMIT_CHECK) or 59 (_load_queue[internal_MEMORY_OUT_PTR]._state == LOAD_QUEUE_COMMIT)); 58 59 // have valid entry if : 60 // * load_queue entry need commit 61 // * load_queue entry have rsp and can make a speculative commit 62 internal_MEMORY_OUT_VAL = ((_load_queue[internal_MEMORY_OUT_PTR]._state == LOAD_QUEUE_COMMIT) or 63 (_load_queue[internal_MEMORY_OUT_PTR]._can_speculative_commit and (_load_queue[internal_MEMORY_OUT_PTR]._state == LOAD_QUEUE_COMMIT_CHECK)) 64 ); 60 65 61 66 if (internal_MEMORY_OUT_VAL) -
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
r144 r145 228 228 229 229 #undef FUNCTION 230 #define FUNCTION "Load_store_unit::function_speculative_load_ access_transition"231 void Load_store_unit::function_speculative_load_ access_transition (void)230 #define FUNCTION "Load_store_unit::function_speculative_load_commit_transition" 231 void Load_store_unit::function_speculative_load_commit_transition (void) 232 232 { 233 233 log_begin(Load_store_unit,FUNCTION); … … 659 659 // The check is finish if all bit is set 660 660 end_check = (_load_queue[index_load_queue]._check_hit_byte == _param->_mask_check_hit_byte); 661 662 // TODO : autoriser l'envoie de la donnée ! 661 663 } 662 664 } … … 922 924 case STORE_QUEUE_COMMIT : 923 925 { 924 throw ERRORMORPHEO(FUNCTION," <Load_store_unit::function_speculative_load_access_transition>Invalid state and operation");926 throw ERRORMORPHEO(FUNCTION,"Invalid state and operation"); 925 927 } 926 928 } -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/src/Parameters_msg_error.cpp
r138 r145 30 30 switch (_speculative_load) 31 31 { 32 case SPECULATIVE_LOAD_ACCESS : 32 case SPECULATIVE_LOAD_COMMIT : 33 // case SPECULATIVE_LOAD_ACCESS : 33 34 { 34 if (not (_nb_bypass_memory == 0))35 test.error(_("Bypass memory is not supported. Please wait a next revision.\n"));36 37 35 break; 38 36 } 39 37 case NO_SPECULATIVE_LOAD : 40 // case SPECULATIVE_LOAD_BYPASS :41 // case SPECULATIVE_LOAD_COMMIT :42 38 default : 43 39 { 44 if (not (_nb_bypass_memory == 0)) 45 test.error(toString(_("In the load scheme '%s', they have none bypass.\n"),toString(_speculative_load).c_str())); 46 47 test.error(toString(_("Speculative load scheme '%s' is not supported. Please wait a next revision.\n"),toString(_speculative_load).c_str())); 40 test.error(toString(_("Speculative load scheme '%s' is not yet supported.\n"),toString(_speculative_load).c_str())); 48 41 break; 49 42 } 50 43 } 51 44 45 if (_nb_bypass_memory > 0) 46 switch (_speculative_load) 47 { 48 case SPECULATIVE_LOAD_COMMIT : 49 { 50 break; 51 } 52 case NO_SPECULATIVE_LOAD : 53 // case SPECULATIVE_LOAD_ACCESS : 54 default : 55 { 56 test.error(toString(_("In the load scheme '%s', they have none bypass.\n"),toString(_speculative_load).c_str())); 57 break; 58 } 59 } 60 52 61 if (not (_size_store_queue >= 2)) 53 62 test.error(_("Store queue must have at less two slot.\n")); … … 66 75 case PREDICTOR_NEVER_TAKE : 67 76 case PREDICTOR_ALWAYS_TAKE : 77 { 78 break; 79 } 68 80 case PREDICTOR_COUNTER : 69 81 { 82 test.error(toString(_("Predictor scheme \"%s\" is not yet supported.\n"),toString(_speculative_commit_predictor_scheme).c_str())); 83 70 84 break; 71 85 }
Note: See TracChangeset
for help on using the changeset viewer.