- Timestamp:
- Feb 12, 2009, 12:55:06 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/src/Parameters.cpp
r101 r108 848 848 for (uint32_t j=0; j<_nb_inst_issue[i]; ++j) 849 849 for (uint32_t k=0; k<_nb_read_bloc; ++k) 850 // have route between this slot's ooo_engine and an read_bloc 851 if (_table_dispatch [i][j][k]) 852 { 853 uint32_t num_execute_loop = _link_read_unit_with_read_bloc [k].first; 854 855 list_execute_loop[i].push_back(num_execute_loop); 856 } 857 858 sort (list_execute_loop[i].begin(), 859 list_execute_loop[i].end()); 860 unique(list_execute_loop[i].begin(), 861 list_execute_loop[i].end()); 850 { 851 // have route between this slot's ooo_engine and an read_bloc 852 if (_table_dispatch [i][j][k]) 853 { 854 uint32_t num_execute_loop = _link_read_unit_with_read_bloc [k].first; 855 856 list_execute_loop[i].push_back(num_execute_loop); 857 } 858 } 859 860 { 861 sort (list_execute_loop[i].begin(), 862 list_execute_loop[i].end()); 863 std::vector<uint32_t>::iterator it=std::unique(list_execute_loop[i].begin(), 864 list_execute_loop[i].end()); 865 list_execute_loop[i].erase(it,list_execute_loop[i].end()); 866 } 862 867 863 868 _ooo_engine_nb_execute_loop [i] = list_execute_loop[i].size(); … … 895 900 896 901 ALLOC2(_ooo_engine_nb_inst_execute ,uint32_t ,_nb_ooo_engine,_ooo_engine_nb_execute_loop[it1]); 897 902 898 903 for (uint32_t i=0; i<_nb_ooo_engine; ++i) 899 904 for (uint32_t j=0; j<_ooo_engine_nb_execute_loop[i]; ++j) 900 905 { 901 906 uint32_t num_execute_loop = _translate_ooo_engine_num_execute_loop [i][j]; 902 907 903 908 // each write_unit manage one instruction per cycle. 904 909 _ooo_engine_nb_inst_execute [i][j] = _nb_write_unit [num_execute_loop]; … … 1052 1057 } 1053 1058 // sort and erase duplicate value 1054 1055 sort (list_thread_with_inst_issue [j].begin(), 1056 list_thread_with_inst_issue [j].end()); 1057 unique(list_thread_with_inst_issue [j].begin(), 1058 list_thread_with_inst_issue [j].end()); 1059 { 1060 sort (list_thread_with_inst_issue [j].begin(), 1061 list_thread_with_inst_issue [j].end()); 1062 std::vector<uint32_t>::iterator it=unique(list_thread_with_inst_issue [j].begin(), 1063 list_thread_with_inst_issue [j].end()); 1064 list_thread_with_inst_issue [j].erase(it,list_thread_with_inst_issue [j].end()); 1065 } 1059 1066 } 1060 1067 … … 1063 1070 { 1064 1071 // sort and erase duplicate value 1065 sort (_list_load_store_unit_with_rename_unit [i][j].begin(), 1066 _list_load_store_unit_with_rename_unit [i][j].end()); 1067 unique(_list_load_store_unit_with_rename_unit [i][j].begin(), 1068 _list_load_store_unit_with_rename_unit [i][j].end()); 1069 sort (_list_functionnal_unit_with_rename_unit [i][j].begin(), 1070 _list_functionnal_unit_with_rename_unit [i][j].end()); 1071 unique(_list_functionnal_unit_with_rename_unit [i][j].begin(), 1072 _list_functionnal_unit_with_rename_unit [i][j].end()); 1072 { 1073 sort (_list_load_store_unit_with_rename_unit [i][j].begin(), 1074 _list_load_store_unit_with_rename_unit [i][j].end()); 1075 std::vector<uint32_t>::iterator it=unique(_list_load_store_unit_with_rename_unit [i][j].begin(), 1076 _list_load_store_unit_with_rename_unit [i][j].end()); 1077 _list_load_store_unit_with_rename_unit [i][j].erase(it,_list_load_store_unit_with_rename_unit [i][j].end()); 1078 } 1079 { 1080 sort (_list_functionnal_unit_with_rename_unit [i][j].begin(), 1081 _list_functionnal_unit_with_rename_unit [i][j].end()); 1082 std::vector<uint32_t>::iterator it=unique(_list_functionnal_unit_with_rename_unit [i][j].begin(), 1083 _list_functionnal_unit_with_rename_unit [i][j].end()); 1084 _list_functionnal_unit_with_rename_unit [i][j].erase(it,_list_functionnal_unit_with_rename_unit [i][j].end()); 1085 } 1073 1086 1074 1087 uint32_t num_rename_bloc = _link_rename_bloc_with_rename_unit[i][j]; … … 1227 1240 for (uint32_t i=0; i<_nb_execute_loop; ++i) 1228 1241 { 1229 sort (_list_ooo_engine_with_execute_loop[i].begin(), 1230 _list_ooo_engine_with_execute_loop[i].end()); 1231 unique(_list_ooo_engine_with_execute_loop[i].begin(), 1232 _list_ooo_engine_with_execute_loop[i].end()); 1233 1234 sort (_list_front_end_with_execute_loop [i].begin(), 1235 _list_front_end_with_execute_loop [i].end()); 1236 unique(_list_front_end_with_execute_loop [i].begin(), 1237 _list_front_end_with_execute_loop [i].end()); 1242 { 1243 sort (_list_ooo_engine_with_execute_loop[i].begin(), 1244 _list_ooo_engine_with_execute_loop[i].end()); 1245 std::vector<uint32_t>::iterator it=unique(_list_ooo_engine_with_execute_loop[i].begin(), 1246 _list_ooo_engine_with_execute_loop[i].end()); 1247 _list_ooo_engine_with_execute_loop[i].erase(it,_list_ooo_engine_with_execute_loop[i].end()); 1248 } 1249 { 1250 sort (_list_front_end_with_execute_loop[i].begin(), 1251 _list_front_end_with_execute_loop[i].end()); 1252 std::vector<uint32_t>::iterator it=unique(_list_front_end_with_execute_loop[i].begin(), 1253 _list_front_end_with_execute_loop[i].end()); 1254 _list_front_end_with_execute_loop[i].erase(it,_list_front_end_with_execute_loop[i].end()); 1255 } 1238 1256 } 1239 1257 … … 1313 1331 ALLOC2(_execute_loop_nb_inst_retire ,uint32_t,_nb_execute_loop,_nb_read_unit[it1]); 1314 1332 1333 log_printf(TRACE,Core,FUNCTION,_(" * execute_loop - Read_unit")); 1315 1334 for (uint32_t i=0; i<_nb_execute_loop; ++i) 1316 for (uint32_t j=0; j<_nb_read_unit[i]; ++j) 1317 { 1318 uint32_t num_read_bloc = _link_read_bloc_with_read_unit [i][j]; 1319 1320 _execute_loop_size_read_queue [i][j] = _size_read_queue [num_read_bloc]; 1321 _execute_loop_size_reservation_station [i][j] = _size_reservation_station [num_read_bloc]; 1322 _execute_loop_nb_inst_retire [i][j] = _nb_inst_retire [num_read_bloc]; 1323 } 1324 1335 { 1336 log_printf(TRACE,Core,FUNCTION,_(" * [%d] nb_read_unit : %d"),i,_nb_read_unit[i]); 1337 1338 for (uint32_t j=0; j<_nb_read_unit[i]; ++j) 1339 { 1340 uint32_t num_read_bloc = _link_read_bloc_with_read_unit [i][j]; 1341 1342 log_printf(TRACE,Core,FUNCTION,_(" * num_read_bloc : %d"),num_read_bloc); 1343 1344 _execute_loop_size_read_queue [i][j] = _size_read_queue [num_read_bloc]; 1345 _execute_loop_size_reservation_station [i][j] = _size_reservation_station [num_read_bloc]; 1346 _execute_loop_nb_inst_retire [i][j] = _nb_inst_retire_reservation_station [num_read_bloc]; 1347 } 1348 } 1349 1325 1350 ALLOC2(_execute_loop_nb_inst_functionnal_unit ,uint32_t,_nb_execute_loop,_execute_loop_nb_functionnal_unit[it1]); 1326 1351 ALLOC4(_execute_loop_timing ,multi_execute_loop::execute_loop::execute_timing_t … … 1802 1827 _nb_inst_branch_complete [i], 1803 1828 _ooo_engine_nb_branch_speculated [i], 1829 _size_nb_inst_decod , 1804 1830 _nb_rename_unit_select [i], 1805 1831 _nb_execute_loop_select [i],
Note: See TracChangeset
for help on using the changeset viewer.