Changeset 138 for trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/include
- Timestamp:
- May 12, 2010, 7:34:01 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/include
- Files:
-
- 3 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/include/Load_store_unit.h
r136 r138 181 181 // Registers 182 182 public : Tlsq_ptr_t * reg_STORE_QUEUE_NB_CHECK ;//[size_store_queue] 183 //public : Tcontrol_t * reg_STORE_QUEUE_INVALID ;//[size_store_queue] 183 184 public : Tlsq_ptr_t reg_STORE_QUEUE_PTR_READ ; 184 185 //public : Tlsq_ptr_t reg_LOAD_QUEUE_PTR_READ ; … … 236 237 public : void genMealy_retire (void); 237 238 238 public : void function_speculative_load_ commit_transition (void);239 public : void function_speculative_load_ commit_genMoore (void);240 public : void function_speculative_load_ commit_genMealy_dcache (void);241 public : void function_speculative_load_ commit_genMealy_insert (void);242 public : void function_speculative_load_ commit_genMealy_retire (void);239 public : void function_speculative_load_access_transition (void); 240 public : void function_speculative_load_access_genMoore (void); 241 public : void function_speculative_load_access_genMealy_dcache (void); 242 public : void function_speculative_load_access_genMealy_insert (void); 243 public : void function_speculative_load_access_genMealy_retire (void); 243 244 #endif 244 245 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/include/Parameters.h
r124 r138 27 27 { 28 28 //-----[ fields ]------------------------------------------------------------ 29 public : uint32_t _size_store_queue ; 30 public : uint32_t _size_load_queue ; 31 public : uint32_t _size_speculative_access_queue; 32 public : uint32_t _nb_port_check ; 33 public : Tspeculative_load_t _speculative_load ; 34 public : uint32_t _nb_bypass_memory ; 35 public : uint32_t _nb_cache_port ; 36 public : uint32_t _nb_inst_memory ; 37 public : uint32_t _nb_context ; 38 public : uint32_t _nb_front_end ; 39 public : uint32_t _nb_ooo_engine ; 40 public : uint32_t _nb_packet ; 41 //public : uint32_t _size_general_data ; 42 //public : uint32_t _size_special_data ; 43 public : uint32_t _nb_general_register ; 44 public : uint32_t _nb_special_register ; 45 public : uint32_t _nb_thread ; 46 public : bool * _num_thread_valid ; //[nb_thread] 29 public : uint32_t _size_store_queue ; 30 public : uint32_t _size_load_queue ; 31 public : uint32_t _size_speculative_access_queue ; 32 public : uint32_t _nb_store_queue_bank ; 33 public : uint32_t _nb_load_queue_bank ; 34 public : uint32_t _nb_port_check ; 35 public : Tspeculative_load_t _speculative_load ; 36 public : Tpredictor_t _speculative_commit_predictor_scheme; 37 public : uint32_t * _lsu_pht_size_counter ;//[1] 38 public : uint32_t * _lsu_pht_nb_counter ;//[1] 39 public : uint32_t _nb_bypass_memory ; 40 public : uint32_t _nb_cache_port ; 41 public : uint32_t _nb_inst_memory ; 42 public : uint32_t _nb_context ; 43 public : uint32_t _nb_front_end ; 44 public : uint32_t _nb_ooo_engine ; 45 public : uint32_t _nb_packet ; 46 //public : uint32_t _size_general_data ; 47 //public : uint32_t _size_special_data ; 48 public : uint32_t _nb_general_register ; 49 public : uint32_t _nb_special_register ; 50 public : uint32_t _nb_thread ; 51 public : bool * _num_thread_valid ; //[nb_thread] 47 52 48 53 //public : uint32_t _size_address_store_queue ; … … 70 75 71 76 //-----[ methods ]----------------------------------------------------------- 72 public : Parameters (uint32_t size_store_queue , 73 uint32_t size_load_queue , 74 uint32_t size_speculative_access_queue, 75 uint32_t nb_port_check , 76 Tspeculative_load_t speculative_load , 77 uint32_t nb_bypass_memory , 78 uint32_t nb_cache_port , 79 uint32_t nb_inst_memory , 80 uint32_t nb_context , 81 uint32_t nb_front_end , 82 uint32_t nb_ooo_engine , 83 uint32_t nb_packet , 84 uint32_t size_general_data , 85 uint32_t size_special_data , 86 uint32_t nb_general_register , 87 uint32_t nb_special_register , 88 uint32_t nb_thread , 89 bool * num_thread_valid , //[nb_thread] 77 public : Parameters (uint32_t size_store_queue , 78 uint32_t size_load_queue , 79 uint32_t size_speculative_access_queue , 80 uint32_t nb_store_queue_bank , 81 uint32_t nb_load_queue_bank , 82 uint32_t nb_port_check , 83 Tspeculative_load_t speculative_load , 84 Tpredictor_t speculative_commit_predictor_scheme, 85 uint32_t * lsu_pht_size_counter ,//[1] 86 uint32_t * lsu_pht_nb_counter ,//[1] 87 uint32_t nb_bypass_memory , 88 uint32_t nb_cache_port , 89 uint32_t nb_inst_memory , 90 uint32_t nb_context , 91 uint32_t nb_front_end , 92 uint32_t nb_ooo_engine , 93 uint32_t nb_packet , 94 uint32_t size_general_data , 95 uint32_t size_special_data , 96 uint32_t nb_general_register , 97 uint32_t nb_special_register , 98 uint32_t nb_thread , 99 bool * num_thread_valid , //[nb_thread] 90 100 bool is_toplevel=false); 91 101 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/include/Types.h
r136 r138 35 35 NO_SPECULATIVE_LOAD //each load wait all previous store before the data cache access 36 36 ,SPECULATIVE_LOAD_ACCESS //each load wait all previous store before the commiting 37 37 //,SPECULATIVE_LOAD_COMMIT //each load commit the result before the end of dependence's check 38 38 //,SPECULATIVE_LOAD_BYPASS //each load bypass the result before the end of dependence's check 39 39 } Tspeculative_load_t; … … 184 184 public : Tgeneral_address_t _num_reg_rd ; 185 185 public : Texception_t _exception ; 186 public : Tcontrol_t _can_speculative_commit; 186 187 187 188 friend std::ostream & operator << (std::ostream& os, const Tload_queue_entry_t & x) … … 194 195 << " * exception : " << toString(x._exception) << std::endl 195 196 << " * check_hit, check_hit_byte : " << toString(x._check_hit) << " - " << toString(x._check_hit_byte) << std::endl 197 << " * can_speculative_commit : " << toString(x._can_speculative_commit) << std::endl 196 198 << std::hex 197 199 << " * address : " << toString(x._address)<< std::endl … … 217 219 case morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_execute_unit::execute_unit::load_store_unit::NO_SPECULATIVE_LOAD : return "no_speculative_load" ; break; 218 220 case morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_execute_unit::execute_unit::load_store_unit::SPECULATIVE_LOAD_ACCESS : return "speculative_load_access"; break; 219 220 // 221 // case morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_execute_unit::execute_unit::load_store_unit::SPECULATIVE_LOAD_COMMIT : return "speculative_load_commit"; break; 222 // case morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_execute_unit::execute_unit::load_store_unit::SPECULATIVE_LOAD_BYPASS : return "speculative_load_bypass"; break; 221 223 default : return "" ; break; 222 224 } … … 225 227 template<> inline morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_execute_unit::execute_unit::load_store_unit::Tspeculative_load_t fromString<morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_execute_unit::execute_unit::load_store_unit::Tspeculative_load_t>(const std::string& x) 226 228 { 227 if ( 228 (x.compare("no_speculative_load")== 0))229 if ((x.compare(toString(static_cast<uint32_t>(morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_execute_unit::execute_unit::load_store_unit::NO_SPECULATIVE_LOAD ))) == 0) or 230 (x.compare(toString( morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_execute_unit::execute_unit::load_store_unit::NO_SPECULATIVE_LOAD )) == 0)) 229 231 return morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_execute_unit::execute_unit::load_store_unit::NO_SPECULATIVE_LOAD; 230 if ( 231 (x.compare("speculative_load_access") == 0))232 if ((x.compare(toString(static_cast<uint32_t>(morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_execute_unit::execute_unit::load_store_unit::SPECULATIVE_LOAD_ACCESS))) == 0) or 233 (x.compare(toString( morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_execute_unit::execute_unit::load_store_unit::SPECULATIVE_LOAD_ACCESS )) == 0)) 232 234 return morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_execute_unit::execute_unit::load_store_unit::SPECULATIVE_LOAD_ACCESS; 233 if ((x.compare(toString(static_cast<uint32_t>(morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_execute_unit::execute_unit::load_store_unit::SPECULATIVE_LOAD_COMMIT))) == 0) or234 (x.compare("speculative_load_commit") == 0))235 236 // if ( (x.compare(toString(static_cast<uint32_t>(morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_execute_unit::execute_unit::load_store_unit::SPECULATIVE_LOAD_BYPASS)))) or237 // (x.compare("speculative_load_bypass") == 0))238 // 235 // if ((x.compare(toString(static_cast<uint32_t>(morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_execute_unit::execute_unit::load_store_unit::SPECULATIVE_LOAD_COMMIT))) == 0) or 236 // (x.compare(toString( morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_execute_unit::execute_unit::load_store_unit::SPECULATIVE_LOAD_COMMIT )) == 0)) 237 // return morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_execute_unit::execute_unit::load_store_unit::SPECULATIVE_LOAD_COMMIT; 238 // if ((x.compare(toString(static_cast<uint32_t>(morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_execute_unit::execute_unit::load_store_unit::SPECULATIVE_LOAD_BYPASS))) == 0) or 239 // (x.compare(toString( morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_execute_unit::execute_unit::load_store_unit::SPECULATIVE_LOAD_BYPASS )) == 0)) 240 // return morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_execute_unit::execute_unit::load_store_unit::SPECULATIVE_LOAD_BYPASS; 239 241 240 242 throw (ErrorMorpheo ("<fromString> : Unknow string : \""+x+"\""));
Note: See TracChangeset
for help on using the changeset viewer.