- Timestamp:
- May 26, 2009, 9:01:47 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/src/Parameters.cpp
r117 r120 20 20 uint32_t num_thread) 21 21 { 22 log_printf(TRACE,Core,FUNCTION,_("execute_loop_get_num_thread")); 23 log_printf(TRACE,Core,FUNCTION,_(" * Parameters :")); 22 log_printf(TRACE,Core,FUNCTION,_(" * execute_loop_get_num_thread")); 24 23 log_printf(TRACE,Core,FUNCTION,_(" * num_execute_loop : %d"),num_execute_loop); 25 24 log_printf(TRACE,Core,FUNCTION,_(" * num_thread : %d"),num_thread); … … 38 37 uint32_t front_end_id ; 39 38 uint32_t ooo_engine_id; 40 39 41 40 // * compute 42 41 for (ooo_engine_id=0; ooo_engine_id<_execute_loop_nb_ooo_engine [num_execute_loop]; ++ooo_engine_id) … … 44 43 break; 45 44 46 #ifdef DEBUG_TEST47 45 if (ooo_engine_id == _execute_loop_nb_ooo_engine [num_execute_loop]) 48 throw ERRORMORPHEO(FUNCTION,toString(_("execute_loop [%d] : ooo_engine [%d] is not find."),num_execute_loop,num_ooo_engine)); 49 #endif 46 return static_cast<Tcontext_t>(-1); 50 47 51 48 log_printf(TRACE,Core,FUNCTION,_(" * ooo_engine_id : %d"),ooo_engine_id); … … 55 52 break; 56 53 57 #ifdef DEBUG_TEST58 54 if (front_end_id == _execute_loop_nb_front_end [num_execute_loop]) 59 throw ERRORMORPHEO(FUNCTION,toString(_("execute_loop [%d] : front_end [%d] is not find."),num_execute_loop,num_front_end)); 60 #endif 55 return static_cast<Tcontext_t>(-1); 61 56 62 57 log_printf(TRACE,Core,FUNCTION,_(" * front_end_id : %d"),front_end_id ); 63 58 59 Tcontext_t _return = get_num_thread(context_id , log2(_execute_loop_nb_context [num_execute_loop]), 60 front_end_id , log2(_execute_loop_nb_front_end [num_execute_loop]), 61 ooo_engine_id, log2(_execute_loop_nb_ooo_engine [num_execute_loop])); 62 63 log_printf(TRACE,Core,FUNCTION,_(" * return : %d"),_return); 64 64 65 // compute the thread number 65 return get_num_thread(context_id , (1<<_execute_loop_nb_context [num_execute_loop]), 66 front_end_id , (1<<_execute_loop_nb_front_end [num_execute_loop]), 67 ooo_engine_id, (1<<_execute_loop_nb_ooo_engine [num_execute_loop])); 66 return _return; 68 67 } 69 68 … … 376 375 377 376 log_printf(TRACE,Core,FUNCTION,_("Core parameters :")); 377 378 log_printf(TRACE,Core,FUNCTION,_(" * nb_thread : %d"),_nb_thread); 378 379 379 380 // inverse link … … 436 437 for (uint32_t j=0; j<_nb_execute_unit[i]; ++j) 437 438 { 438 log_printf(TRACE,Core,FUNCTION,_(" * execute_unit [%d][%d] : functionnal_unit [%d] - load_store_unit [%d]"),i,j,_link_functionnal_unit_with_execute_unit [i][j],_link_load_store_unit_with_execute_unit [i][j]);439 log_printf(TRACE,Core,FUNCTION,_(" * execute_unit [%d][%d] : functionnal_unit [%d] - load_store_unit [%d]"),i,j,_link_functionnal_unit_with_execute_unit [i][j],_link_load_store_unit_with_execute_unit [i][j]); 439 440 440 441 … … 742 743 } 743 744 744 // log_printf(TRACE,Core,FUNCTION,_(" * front_end_instruction_implemeted"));745 // log_printf(TRACE,Core,FUNCTION,_(" * front_end_instruction_implemeted")); 745 746 // for (uint32_t i=0; i<_nb_front_end; ++i) 746 747 // for (uint32_t j=0; j<_nb_context[i]; ++j) … … 824 825 825 826 ALLOC1(_ooo_engine_nb_front_end ,uint32_t ,_nb_ooo_engine); 827 828 log_printf(TRACE,Core,FUNCTION,_(" * ooo_engine_nb_front_end")); 826 829 827 830 { … … 837 840 uint32_t num_rename_bloc = _link_rename_bloc_with_front_end [i]; 838 841 uint32_t num_ooo_engine = _link_rename_unit_with_rename_bloc [num_rename_bloc].first; 839 842 843 log_printf(TRACE,Core,FUNCTION,_(" * num_front_end : %d"),i); 844 log_printf(TRACE,Core,FUNCTION,_(" * num_rename_bloc : %d"),num_rename_bloc); 845 log_printf(TRACE,Core,FUNCTION,_(" * num_ooo_engine : %d"),num_ooo_engine ); 846 log_printf(TRACE,Core,FUNCTION,_(" * ooo_engine_nb_front_end : %d"),_ooo_engine_nb_front_end [num_ooo_engine]); 840 847 // insert a new front_end 841 848 _ooo_engine_nb_front_end [num_ooo_engine] ++; // === list_front_end.size() … … 843 850 } 844 851 845 log_printf(TRACE,Core,FUNCTION,_(" * translate_ooo_engine_num_front_end"));852 log_printf(TRACE,Core,FUNCTION,_(" * translate_ooo_engine_num_front_end")); 846 853 847 854 ALLOC2(_translate_ooo_engine_num_front_end ,uint32_t ,_nb_ooo_engine,_ooo_engine_nb_front_end[it1]); 848 855 for (uint32_t i=0; i<_nb_ooo_engine; ++i) 849 for (uint32_t j=0; j<_ooo_engine_nb_front_end[i];++j) 850 { 851 uint32_t num_front_end = list_front_end[i][j]; 856 { 857 // log_printf(TRACE,Core,FUNCTION,_(" %d -> %d"),i,_ooo_engine_nb_front_end[i]); 858 859 for (uint32_t j=0; j<_ooo_engine_nb_front_end[i] ;++j) 860 { 861 uint32_t num_front_end = list_front_end[i][j]; 852 862 853 log_printf(TRACE,Core,FUNCTION,_(" [%d][%d] -> %d"),i,j,num_front_end); 854 _translate_ooo_engine_num_front_end [i][j++] = num_front_end; 855 } 863 log_printf(TRACE,Core,FUNCTION,_(" [%d][%d] -> %d"),i,j,num_front_end); 864 865 _translate_ooo_engine_num_front_end [i][j] = num_front_end; 866 } 867 } 856 868 } 857 869 … … 891 903 } 892 904 893 log_printf(TRACE,Core,FUNCTION,_(" * translate_ooo_engine_num_execute_loop"));905 log_printf(TRACE,Core,FUNCTION,_(" * translate_ooo_engine_num_execute_loop")); 894 906 895 907 ALLOC2(_translate_ooo_engine_num_execute_loop ,uint32_t ,_nb_ooo_engine,_ooo_engine_nb_execute_loop[it1]); … … 1011 1023 for (uint32_t i=0; i<_nb_ooo_engine; ++i) 1012 1024 { 1013 // log_printf(TRACE,Core,FUNCTION,_(" * ooo_engine_table_issue_type [%d]"),i);1025 // log_printf(TRACE,Core,FUNCTION,_(" * ooo_engine_table_issue_type [%d]"),i); 1014 1026 1015 1027 // Init … … 1111 1123 } 1112 1124 1113 log_printf(TRACE,Core,FUNCTION,_(" * ooo_engine_table_routing [%d]"),i);1125 log_printf(TRACE,Core,FUNCTION,_(" * ooo_engine_table_routing [%d]"),i); 1114 1126 for (uint32_t j=0; j<_nb_rename_unit[i]; ++j) 1115 1127 { … … 1149 1161 } 1150 1162 1151 log_printf(TRACE,Core,FUNCTION,_(" * network_table_dispatch [nb_ooo_engine][nb_inst_issue_slot][nb_execute_loop][nb_read_unit]"));1163 log_printf(TRACE,Core,FUNCTION,_(" * network_table_dispatch [nb_ooo_engine][nb_inst_issue_slot][nb_execute_loop][nb_read_unit]")); 1152 1164 for (uint32_t i=0; i<_nb_ooo_engine; ++i) 1153 1165 for (uint32_t j=0; j<_nb_inst_issue_slot[i]; ++j) … … 1159 1171 ALLOC3(_network_table_issue_type,bool,_nb_execute_loop,_nb_read_unit[it1],_nb_type); 1160 1172 1161 log_printf(TRACE,Core,FUNCTION,_(" * network_table_issue_type"));1173 log_printf(TRACE,Core,FUNCTION,_(" * network_table_issue_type")); 1162 1174 for (uint32_t i=0; i<_nb_execute_loop; ++i) 1163 1175 for (uint32_t j=0; j<_nb_read_unit[i]; ++j) … … 1383 1395 _execute_loop_nb_ooo_engine [i] = _list_ooo_engine_with_execute_loop[i].size(); 1384 1396 1385 log_printf(TRACE,Core,FUNCTION,_(" * execute_loop_nb_ooo_engine : %d"),_execute_loop_nb_ooo_engine [i]);1397 log_printf(TRACE,Core,FUNCTION,_(" * execute_loop_nb_ooo_engine : %d"),_execute_loop_nb_ooo_engine [i]); 1386 1398 1387 1399 uint32_t max_nb_front_end = 0; … … 1409 1421 _execute_loop_nb_packet [i] = max_size_rob ; 1410 1422 1411 log_printf(TRACE,Core,FUNCTION,_(" * execute_loop_nb_front_end : %d"),_execute_loop_nb_front_end [i]);1412 log_printf(TRACE,Core,FUNCTION,_(" * execute_loop_nb_context : %d"),_execute_loop_nb_context [i]);1413 log_printf(TRACE,Core,FUNCTION,_(" * execute_loop_nb_packet : %d"),_execute_loop_nb_packet [i]);1423 log_printf(TRACE,Core,FUNCTION,_(" * execute_loop_nb_front_end : %d"),_execute_loop_nb_front_end [i]); 1424 log_printf(TRACE,Core,FUNCTION,_(" * execute_loop_nb_context : %d"),_execute_loop_nb_context [i]); 1425 log_printf(TRACE,Core,FUNCTION,_(" * execute_loop_nb_packet : %d"),_execute_loop_nb_packet [i]); 1414 1426 1415 1427 _execute_loop_nb_thread [i] = get_nb_thread(_execute_loop_nb_context [i], … … 1417 1429 _execute_loop_nb_ooo_engine [i]); 1418 1430 1419 log_printf(TRACE,Core,FUNCTION,_(" * execute_loop_nb_thread : %d"),_execute_loop_nb_thread [i]);1431 log_printf(TRACE,Core,FUNCTION,_(" * execute_loop_nb_thread : %d"),_execute_loop_nb_thread [i]); 1420 1432 } 1421 1433 … … 1431 1443 ALLOC2(_execute_loop_nb_inst_retire ,uint32_t,_nb_execute_loop,_nb_read_unit[it1]); 1432 1444 1433 log_printf(TRACE,Core,FUNCTION,_(" * execute_loop - Read_unit"));1445 log_printf(TRACE,Core,FUNCTION,_(" * execute_loop - Read_unit")); 1434 1446 for (uint32_t i=0; i<_nb_execute_loop; ++i) 1435 1447 { 1436 log_printf(TRACE,Core,FUNCTION,_(" * [%d] nb_read_unit : %d"),i,_nb_read_unit[i]);1448 log_printf(TRACE,Core,FUNCTION,_(" * [%d] nb_read_unit : %d"),i,_nb_read_unit[i]); 1437 1449 1438 1450 for (uint32_t j=0; j<_nb_read_unit[i]; ++j) … … 1440 1452 uint32_t num_read_bloc = _link_read_bloc_with_read_unit [i][j]; 1441 1453 1442 log_printf(TRACE,Core,FUNCTION,_(" * num_read_bloc : %d"),num_read_bloc);1454 log_printf(TRACE,Core,FUNCTION,_(" * num_read_bloc : %d"),num_read_bloc); 1443 1455 1444 1456 _execute_loop_size_read_queue [i][j] = _size_read_queue [num_read_bloc]; … … 1494 1506 _execute_loop_nb_inst_functionnal_unit [i][num_fu] = _nb_inst_functionnal_unit [num_functionnal_unit]; 1495 1507 1496 log_printf(TRACE,Core,FUNCTION, " * _execute_loop_nb_inst_functionnal_unit [%d][%d] = _nb_inst_functionnal_unit [%d] = %d",i,num_fu,num_functionnal_unit,_nb_inst_functionnal_unit [num_functionnal_unit]);1508 log_printf(TRACE,Core,FUNCTION,_(" * _execute_loop_nb_inst_functionnal_unit [%d][%d] = _nb_inst_functionnal_unit [%d] = %d"),i,num_fu,num_functionnal_unit,_nb_inst_functionnal_unit [num_functionnal_unit]); 1497 1509 1498 1510 for (uint32_t k=0; k<_nb_type; ++k) … … 1527 1539 uint32_t num_load_store_unit = _list_load_store_unit_with_execute_unit [i][j]; 1528 1540 1529 log_printf(TRACE,Core,FUNCTION,_(" * execute_loop_nb_load_store_unit [%d][%d] : %d"),i,j,num_load_store_unit);1530 log_printf(TRACE,Core,FUNCTION,_(" * nb_bypass_memory : %d"),_nb_bypass_memory[num_load_store_unit]);1541 log_printf(TRACE,Core,FUNCTION,_(" * execute_loop_nb_load_store_unit [%d][%d] : %d"),i,j,num_load_store_unit); 1542 log_printf(TRACE,Core,FUNCTION,_(" * nb_bypass_memory : %d"),_nb_bypass_memory[num_load_store_unit]); 1531 1543 1532 1544 _execute_loop_size_store_queue [i][j] = _size_store_queue [num_load_store_unit]; … … 1619 1631 ALLOC4(_execute_loop_read_unit_to_execution_unit_table_routing ,bool ,_nb_execute_loop,_nb_read_unit[it1],_nb_execute_unit[it1],_execute_loop_nb_execute_unit_port[it1][it2]); 1620 1632 1621 log_printf(TRACE,Core,FUNCTION,_(" execute_loop_read_unit_to_execution_unit_table_routing [execute_loop][read_unit][execute_unit][execute_unit_port]"));1633 log_printf(TRACE,Core,FUNCTION,_(" * execute_loop_read_unit_to_execution_unit_table_routing [execute_loop][read_unit][execute_unit][execute_unit_port]")); 1622 1634 for (uint32_t i=0; i<_nb_execute_loop; ++i) 1623 1635 for (uint32_t j=0; j<_nb_execute_unit[i]; ++j) … … 1647 1659 ALLOC4(_execute_loop_execution_unit_to_write_unit_table_routing,bool ,_nb_execute_loop,_nb_execute_unit[it1],_execute_loop_nb_execute_unit_port[it1][it2],_nb_write_unit[it1]); 1648 1660 1649 log_printf(TRACE,Core,FUNCTION,_(" execute_loop_execution_unit_to_write_unit_table_routing [execute_loop][execute_unit][execute_unit_port][write_unit]"));1661 log_printf(TRACE,Core,FUNCTION,_(" * execute_loop_execution_unit_to_write_unit_table_routing [execute_loop][execute_unit][execute_unit_port][write_unit]")); 1650 1662 1651 1663 for (uint32_t i=0; i<_nb_execute_loop; ++i) … … 1677 1689 ALLOC3(_execute_loop_execution_unit_to_write_unit_table_thread ,bool ,_nb_execute_loop,_nb_write_unit[it1],_execute_loop_nb_thread [it1]); 1678 1690 1679 log_printf(TRACE,Core,FUNCTION,_(" execute_loop_read_unit_to_execution_unit_table_thread"));1691 log_printf(TRACE,Core,FUNCTION,_(" * execute_loop_read_unit_to_execution_unit_table_thread")); 1680 1692 for (uint32_t i=0; i<_nb_execute_loop; ++i) 1681 1693 { … … 1704 1716 { 1705 1717 uint32_t num_thread = execute_loop_get_num_thread (i,k); 1718 1719 #ifdef DEBUG_TEST 1720 if (num_thread == static_cast<Tcontext_t>(-1)) 1721 throw ERRORMORPHEO(FUNCTION,toString(_("execute_loop [%d] : thread %d is invalid."),i,k)); 1722 #endif 1723 1706 1724 _execute_loop_read_unit_to_execution_unit_table_thread [i][j][num_thread] = true; 1707 1725 log_printf(TRACE,Core,FUNCTION,_(" [%d][%d][%d] -> Ok"),i,j,num_thread); … … 1722 1740 } 1723 1741 1742 ALLOC2(_execute_loop_num_thread_valid ,bool ,_nb_execute_loop,_execute_loop_nb_thread[it1]); 1743 1744 log_printf(TRACE,Core,FUNCTION,_(" * execute_loop_num_thread_valid")); 1745 1746 for (uint32_t i=0; i<_nb_execute_loop; ++i) 1747 { 1748 for (uint32_t j=0; j<_execute_loop_nb_thread[i]; ++j) 1749 _execute_loop_num_thread_valid [i][j] = false; 1750 1751 for (uint32_t j=0; j<_nb_thread; ++j) 1752 { 1753 uint32_t num_thread = execute_loop_get_num_thread (i,j); 1754 1755 if (num_thread != static_cast<Tcontext_t>(-1)) 1756 { 1757 log_printf(TRACE,Core,FUNCTION,_(" [%d][%d] -> valid"),i,num_thread); 1758 1759 _execute_loop_num_thread_valid [i][num_thread] = true; 1760 } 1761 } 1762 } 1763 1764 1724 1765 ALLOC2(_icache_access_size_packet_id,uint32_t,_nb_front_end,_nb_context[it1]); 1725 1766 ALLOC2(_icache_access_table_routing ,uint32_t,_nb_front_end,_nb_context[it1]); … … 2041 2082 2042 2083 _execute_loop_is_load_store_unit [i], 2043 _execute_loop_translate_num_execute_unit [i] 2084 _execute_loop_translate_num_execute_unit [i], 2085 2086 _execute_loop_num_thread_valid [i] 2044 2087 ); 2045 2088 … … 2153 2196 DELETE2(_icache_access_table_routing ,_nb_front_end,_nb_context[it1]); 2154 2197 DELETE2(_icache_access_size_packet_id ,_nb_front_end,_nb_context[it1]); 2198 DELETE2(_execute_loop_num_thread_valid ,_nb_execute_loop,_execute_loop_nb_thread[it1]); 2155 2199 DELETE3(_execute_loop_execution_unit_to_write_unit_table_thread ,_nb_execute_loop,_nb_write_unit[it1],_execute_loop_nb_thread [it1]); 2156 2200 DELETE3(_execute_loop_read_unit_to_execution_unit_table_thread ,_nb_execute_loop,_nb_execute_unit[it1],_execute_loop_nb_thread[it1]);
Note: See TracChangeset
for help on using the changeset viewer.