Changeset 136 for trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/src
- Timestamp:
- Oct 20, 2009, 8:52:15 PM (15 years ago)
- Location:
- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/src
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/src/Core_allocation.cpp
r123 r136 730 730 COMPONENT_MAP(_component,src ,"out_ISSUE_" +toString(j)+"_OPERATION" , 731 731 dest, "in_ISSUE_OOO_ENGINE_"+toString(i)+"_"+toString(j)+"_OPERATION" ); 732 COMPONENT_MAP(_component,src ,"out_ISSUE_" +toString(j)+"_CANCEL" , 733 dest, "in_ISSUE_OOO_ENGINE_"+toString(i)+"_"+toString(j)+"_CANCEL" ); 732 734 COMPONENT_MAP(_component,src ,"out_ISSUE_" +toString(j)+"_STORE_QUEUE_PTR_WRITE", 733 735 dest, "in_ISSUE_OOO_ENGINE_"+toString(i)+"_"+toString(j)+"_STORE_QUEUE_PTR_WRITE"); … … 793 795 // COMPONENT_MAP(_component,src , "in_EXECUTE_LOOP_" +toString(j)+"_"+toString(k)+"_OPERATION" , 794 796 // dest,"out_EXECUTE_OOO_ENGINE_"+toString(i)+"_"+toString(j)+"_"+toString(k)+"_OPERATION" ); 797 COMPONENT_MAP(_component,src , "in_EXECUTE_LOOP_" +toString(j)+"_"+toString(k)+"_CANCEL" , 798 dest,"out_EXECUTE_OOO_ENGINE_"+toString(i)+"_"+toString(j)+"_"+toString(k)+"_CANCEL" ); 795 799 COMPONENT_MAP(_component,src , "in_EXECUTE_LOOP_" +toString(j)+"_"+toString(k)+"_FLAGS" , 796 800 dest,"out_EXECUTE_OOO_ENGINE_"+toString(i)+"_"+toString(j)+"_"+toString(k)+"_FLAGS" ); … … 806 810 } 807 811 808 // ~~~~~[ Interface "insert" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~809 for (uint32_t j=0; j<_param->_ooo_engine_nb_inst_insert_rob [i]; ++j)810 {811 dest = _name+"_glue";812 #ifdef POSITION813 _component->interface_map (src ,"insert_" +toString(j),814 dest,"insert_ooo_engine_"+toString(i)+"_"+toString(j));815 #endif812 // // ~~~~~[ Interface "insert" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 813 // for (uint32_t j=0; j<_param->_ooo_engine_nb_inst_insert_rob [i]; ++j) 814 // { 815 // dest = _name+"_glue"; 816 // #ifdef POSITION 817 // _component->interface_map (src ,"insert_" +toString(j), 818 // dest,"insert_ooo_engine_"+toString(i)+"_"+toString(j)); 819 // #endif 816 820 817 COMPONENT_MAP(_component,src ,"out_INSERT_" +toString(j)+"_VAL" ,818 dest, "in_INSERT_OOO_ENGINE_"+toString(i)+"_"+toString(j)+"_VAL" );819 COMPONENT_MAP(_component,src , "in_INSERT_" +toString(j)+"_ACK" ,820 dest,"out_INSERT_OOO_ENGINE_"+toString(i)+"_"+toString(j)+"_ACK" );821 COMPONENT_MAP(_component,src ,"out_INSERT_" +toString(j)+"_RD_USE" ,822 dest, "in_INSERT_OOO_ENGINE_"+toString(i)+"_"+toString(j)+"_RD_USE" );823 COMPONENT_MAP(_component,src ,"out_INSERT_" +toString(j)+"_RD_NUM_REG",824 dest, "in_INSERT_OOO_ENGINE_"+toString(i)+"_"+toString(j)+"_RD_NUM_REG");825 COMPONENT_MAP(_component,src ,"out_INSERT_" +toString(j)+"_RE_USE" ,826 dest, "in_INSERT_OOO_ENGINE_"+toString(i)+"_"+toString(j)+"_RE_USE" );827 COMPONENT_MAP(_component,src ,"out_INSERT_" +toString(j)+"_RE_NUM_REG",828 dest, "in_INSERT_OOO_ENGINE_"+toString(i)+"_"+toString(j)+"_RE_NUM_REG");829 }821 // COMPONENT_MAP(_component,src ,"out_INSERT_" +toString(j)+"_VAL" , 822 // dest, "in_INSERT_OOO_ENGINE_"+toString(i)+"_"+toString(j)+"_VAL" ); 823 // COMPONENT_MAP(_component,src , "in_INSERT_" +toString(j)+"_ACK" , 824 // dest,"out_INSERT_OOO_ENGINE_"+toString(i)+"_"+toString(j)+"_ACK" ); 825 // COMPONENT_MAP(_component,src ,"out_INSERT_" +toString(j)+"_RD_USE" , 826 // dest, "in_INSERT_OOO_ENGINE_"+toString(i)+"_"+toString(j)+"_RD_USE" ); 827 // COMPONENT_MAP(_component,src ,"out_INSERT_" +toString(j)+"_RD_NUM_REG", 828 // dest, "in_INSERT_OOO_ENGINE_"+toString(i)+"_"+toString(j)+"_RD_NUM_REG"); 829 // COMPONENT_MAP(_component,src ,"out_INSERT_" +toString(j)+"_RE_USE" , 830 // dest, "in_INSERT_OOO_ENGINE_"+toString(i)+"_"+toString(j)+"_RE_USE" ); 831 // COMPONENT_MAP(_component,src ,"out_INSERT_" +toString(j)+"_RE_NUM_REG", 832 // dest, "in_INSERT_OOO_ENGINE_"+toString(i)+"_"+toString(j)+"_RE_NUM_REG"); 833 // } 830 834 } 831 835 … … 878 882 COMPONENT_MAP(_component,src , "in_EXECUTE_LOOP_IN_" +toString(j)+"_TYPE" , 879 883 dest,"out_ISSUE_EXECUTE_LOOP_"+toString(i)+"_"+toString(j)+"_TYPE" ); 884 COMPONENT_MAP(_component,src , "in_EXECUTE_LOOP_IN_" +toString(j)+"_CANCEL" , 885 dest,"out_ISSUE_EXECUTE_LOOP_"+toString(i)+"_"+toString(j)+"_CANCEL" ); 880 886 COMPONENT_MAP(_component,src , "in_EXECUTE_LOOP_IN_" +toString(j)+"_STORE_QUEUE_PTR_WRITE", 881 887 dest,"out_ISSUE_EXECUTE_LOOP_"+toString(i)+"_"+toString(j)+"_STORE_QUEUE_PTR_WRITE"); … … 942 948 // COMPONENT_MAP(_component,src ,"out_EXECUTE_LOOP_OUT_" +toString(j)+"_TYPE" , 943 949 // dest, "in_EXECUTE_EXECUTE_LOOP_"+toString(i)+"_"+toString(j)+"_TYPE" ); 950 COMPONENT_MAP(_component,src ,"out_EXECUTE_LOOP_OUT_" +toString(j)+"_CANCEL" , 951 dest, "in_EXECUTE_EXECUTE_LOOP_"+toString(i)+"_"+toString(j)+"_CANCEL" ); 944 952 COMPONENT_MAP(_component,src ,"out_EXECUTE_LOOP_OUT_" +toString(j)+"_FLAGS" , 945 953 dest, "in_EXECUTE_EXECUTE_LOOP_"+toString(i)+"_"+toString(j)+"_FLAGS" ); … … 954 962 } 955 963 956 // ~~~~~[ Interface "insert_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~957 for (uint32_t j=0; j<_param->_execute_loop_nb_ooo_engine[i]; ++j)958 for (uint32_t k=0; k<_param->_execute_loop_nb_inst_insert_rob[i][j]; ++k)959 {960 dest = _name+"_glue";961 #ifdef POSITION962 _component->interface_map (src ,"insert_rob_" +toString(j)+"_"+toString(k),963 dest,"insert_execute_loop_"+toString(i)+"_"+toString(j)+"_"+toString(k));964 #endif965 966 COMPONENT_MAP(_component,src , "in_INSERT_ROB_" +toString(j)+"_"+toString(k)+"_VAL" ,967 dest,"out_INSERT_EXECUTE_LOOP_"+toString(i)+"_"+toString(j)+"_"+toString(k)+"_VAL" );968 COMPONENT_MAP(_component,src ,"out_INSERT_ROB_" +toString(j)+"_"+toString(k)+"_ACK" ,969 dest, "in_INSERT_EXECUTE_LOOP_"+toString(i)+"_"+toString(j)+"_"+toString(k)+"_ACK" );970 COMPONENT_MAP(_component,src , "in_INSERT_ROB_" +toString(j)+"_"+toString(k)+"_RD_USE" ,971 dest,"out_INSERT_EXECUTE_LOOP_"+toString(i)+"_"+toString(j)+"_"+toString(k)+"_RD_USE" );972 COMPONENT_MAP(_component,src , "in_INSERT_ROB_" +toString(j)+"_"+toString(k)+"_RD_NUM_REG",973 dest,"out_INSERT_EXECUTE_LOOP_"+toString(i)+"_"+toString(j)+"_"+toString(k)+"_RD_NUM_REG");974 COMPONENT_MAP(_component,src , "in_INSERT_ROB_" +toString(j)+"_"+toString(k)+"_RE_USE" ,975 dest,"out_INSERT_EXECUTE_LOOP_"+toString(i)+"_"+toString(j)+"_"+toString(k)+"_RE_USE" );976 COMPONENT_MAP(_component,src , "in_INSERT_ROB_" +toString(j)+"_"+toString(k)+"_RE_NUM_REG",977 dest,"out_INSERT_EXECUTE_LOOP_"+toString(i)+"_"+toString(j)+"_"+toString(k)+"_RE_NUM_REG");978 }964 // // ~~~~~[ Interface "insert_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 965 // for (uint32_t j=0; j<_param->_execute_loop_nb_ooo_engine[i]; ++j) 966 // for (uint32_t k=0; k<_param->_execute_loop_nb_inst_insert_rob[i][j]; ++k) 967 // { 968 // dest = _name+"_glue"; 969 // #ifdef POSITION 970 // _component->interface_map (src ,"insert_rob_" +toString(j)+"_"+toString(k), 971 // dest,"insert_execute_loop_"+toString(i)+"_"+toString(j)+"_"+toString(k)); 972 // #endif 973 974 // COMPONENT_MAP(_component,src , "in_INSERT_ROB_" +toString(j)+"_"+toString(k)+"_VAL" , 975 // dest,"out_INSERT_EXECUTE_LOOP_"+toString(i)+"_"+toString(j)+"_"+toString(k)+"_VAL" ); 976 // COMPONENT_MAP(_component,src ,"out_INSERT_ROB_" +toString(j)+"_"+toString(k)+"_ACK" , 977 // dest, "in_INSERT_EXECUTE_LOOP_"+toString(i)+"_"+toString(j)+"_"+toString(k)+"_ACK" ); 978 // COMPONENT_MAP(_component,src , "in_INSERT_ROB_" +toString(j)+"_"+toString(k)+"_RD_USE" , 979 // dest,"out_INSERT_EXECUTE_LOOP_"+toString(i)+"_"+toString(j)+"_"+toString(k)+"_RD_USE" ); 980 // COMPONENT_MAP(_component,src , "in_INSERT_ROB_" +toString(j)+"_"+toString(k)+"_RD_NUM_REG", 981 // dest,"out_INSERT_EXECUTE_LOOP_"+toString(i)+"_"+toString(j)+"_"+toString(k)+"_RD_NUM_REG"); 982 // COMPONENT_MAP(_component,src , "in_INSERT_ROB_" +toString(j)+"_"+toString(k)+"_RE_USE" , 983 // dest,"out_INSERT_EXECUTE_LOOP_"+toString(i)+"_"+toString(j)+"_"+toString(k)+"_RE_USE" ); 984 // COMPONENT_MAP(_component,src , "in_INSERT_ROB_" +toString(j)+"_"+toString(k)+"_RE_NUM_REG", 985 // dest,"out_INSERT_EXECUTE_LOOP_"+toString(i)+"_"+toString(j)+"_"+toString(k)+"_RE_NUM_REG"); 986 // } 979 987 980 988 // ~~~~~[ Interface "dcache_req" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/src/Parameters.cpp
r128 r136 79 79 uint32_t nb_thread , 80 80 uint32_t * size_ifetch_queue ,//[nb_thread] 81 multi_front_end::front_end::ifetch_unit::ifetch_queue::Tifetch_queue_scheme_t 82 * ifetch_queue_scheme ,//[nb_thread] 81 83 uint32_t * nb_inst_fetch ,//[nb_thread] 82 84 bool ** implement_group ,//[nb_thread][NB_GROUP] … … 238 240 _nb_thread = nb_thread ; 239 241 _size_ifetch_queue = size_ifetch_queue ; 242 _ifetch_queue_scheme = ifetch_queue_scheme ; 240 243 _nb_inst_fetch = nb_inst_fetch ; 241 244 _implement_group = implement_group ; … … 452 455 // translate for front_end 453 456 ALLOC2(_front_end_size_ifetch_queue ,uint32_t ,_nb_front_end,_nb_context[it1]); 457 ALLOC2(_front_end_ifetch_queue_scheme ,multi_front_end::front_end::ifetch_unit::ifetch_queue::Tifetch_queue_scheme_t 458 ,_nb_front_end,_nb_context[it1]); 454 459 ALLOC2(_front_end_nb_inst_fetch ,uint32_t ,_nb_front_end,_nb_context[it1]); 455 460 ALLOC2(_front_end_link_decod_unit_with_context ,uint32_t ,_nb_front_end,_nb_context[it1]); … … 463 468 uint32_t num_thread = _link_thread_with_context[i][j]; 464 469 465 _front_end_size_ifetch_queue [i][j] = _size_ifetch_queue [num_thread]; 466 _front_end_nb_inst_fetch [i][j] = _nb_inst_fetch [num_thread]; 467 _front_end_ras_size_queue [i][j] = _ras_size_queue [num_thread]; 468 _front_end_upt_size_queue [i][j] = _upt_size_queue [num_thread]; 469 _front_end_ufpt_size_queue [i][j] = _ufpt_size_queue [num_thread]; 470 _front_end_size_ifetch_queue [i][j] = _size_ifetch_queue [num_thread]; 471 _front_end_ifetch_queue_scheme [i][j] = _ifetch_queue_scheme [num_thread]; 472 _front_end_nb_inst_fetch [i][j] = _nb_inst_fetch [num_thread]; 473 _front_end_ras_size_queue [i][j] = _ras_size_queue [num_thread]; 474 _front_end_upt_size_queue [i][j] = _upt_size_queue [num_thread]; 475 _front_end_ufpt_size_queue [i][j] = _ufpt_size_queue [num_thread]; 470 476 471 477 uint32_t num_decod_bloc = _link_decod_bloc_with_thread [num_thread]; … … 987 993 988 994 ALLOC2(_ooo_engine_nb_inst_insert ,uint32_t ,_nb_ooo_engine,_nb_rename_unit[it1]); 989 995 // ALLOC1(_ooo_engine_nb_inst_insert_rob ,uint32_t ,_nb_ooo_engine); 990 996 ALLOC2(_ooo_engine_nb_inst_retire ,uint32_t ,_nb_ooo_engine,_nb_rename_unit[it1]); 991 997 ALLOC2(_ooo_engine_rename_select_priority ,Tpriority_t ,_nb_ooo_engine,_nb_rename_unit[it1]); … … 1001 1007 { 1002 1008 log_printf(TRACE,Core,FUNCTION,_("OOO_Engine [%d] - nb_rename_unit %d"),i,_nb_rename_unit[i]); 1003 1009 // _ooo_engine_nb_inst_insert_rob [i] = 0; 1004 1010 1005 1011 for (uint32_t j=0; j<_nb_rename_unit[i]; ++j) … … 1010 1016 1011 1017 _ooo_engine_nb_inst_insert [i][j] = _nb_inst_insert [num_rename_bloc]; 1012 1018 // _ooo_engine_nb_inst_insert_rob [i] += _nb_inst_insert [num_rename_bloc]; 1013 1019 _ooo_engine_nb_inst_retire [i][j] = _nb_inst_retire [num_rename_bloc]; 1014 1020 _ooo_engine_rename_select_priority [i][j] = _rename_select_priority [num_rename_bloc]; … … 1578 1584 ALLOC2(_execute_loop_nb_general_register ,uint32_t,_nb_execute_loop,_execute_loop_nb_ooo_engine[it1]); 1579 1585 ALLOC2(_execute_loop_nb_special_register ,uint32_t,_nb_execute_loop,_execute_loop_nb_ooo_engine[it1]); 1580 1581 1586 // ALLOC2(_execute_loop_nb_inst_insert_rob ,uint32_t,_nb_execute_loop,_execute_loop_nb_ooo_engine[it1]); 1587 // ALLOC2(_execute_loop_nb_inst_retire_rob ,uint32_t,_nb_execute_loop,_execute_loop_nb_ooo_engine[it1]); 1582 1588 1583 1589 for (uint32_t i=0; i<_nb_execute_loop; ++i) … … 1603 1609 1604 1610 1605 uint32_t insert = 0; 1606 uint32_t retire = 0; 1611 // uint32_t insert = 0; 1612 // uint32_t retire = 0; 1613 // 1614 // for (uint32_t k=0; k<_nb_rename_unit[num_ooo_engine]; ++k) 1615 // { 1616 // insert = _ooo_engine_nb_inst_insert [num_ooo_engine][k]; 1617 // retire = _ooo_engine_nb_inst_retire [num_ooo_engine][k]; 1618 // } 1607 1619 1608 for (uint32_t k=0; k<_nb_rename_unit[num_ooo_engine]; ++k) 1609 { 1610 insert = _ooo_engine_nb_inst_insert [num_ooo_engine][k]; 1611 retire = _ooo_engine_nb_inst_retire [num_ooo_engine][k]; 1612 } 1613 1614 _execute_loop_nb_inst_insert_rob [i][j] = insert; 1615 _execute_loop_nb_inst_retire_rob [i][j] = retire; 1620 // _execute_loop_nb_inst_insert_rob [i][j] = insert; 1621 // _execute_loop_nb_inst_retire_rob [i][j] = retire; 1616 1622 } 1617 1623 … … 1942 1948 _get_custom_information , 1943 1949 _front_end_size_ifetch_queue [i], 1950 _front_end_ifetch_queue_scheme [i], 1944 1951 _front_end_nb_inst_fetch [i], 1945 1952 _front_end_instruction_implemeted [i], … … 2083 2090 _execute_loop_nb_general_register [i], 2084 2091 _execute_loop_nb_special_register [i], 2085 2086 2092 // _execute_loop_nb_inst_insert_rob [i], 2093 // _execute_loop_nb_inst_retire_rob [i], 2087 2094 2088 2095 _execution_unit_to_write_unit_priority [i], … … 2149 2156 _front_end_nb_inst_branch_complete ,//[nb_front_end] 2150 2157 _nb_inst_branch_complete ,//[nb_ooo_engine] 2151 2158 // _ooo_engine_nb_inst_insert_rob ,//[nb_ooo_engine] 2152 2159 _nb_inst_reexecute ,//[nb_ooo_engine] 2153 2160 _nb_inst_issue_queue ,//[nb_ooo_engine] … … 2223 2230 DELETE4(_execute_loop_read_unit_to_execution_unit_table_routing ,_nb_execute_loop,_nb_read_unit[it1],_nb_execute_unit[it1],_execute_loop_nb_execute_unit_port[it1][it2]); 2224 2231 DELETE2(_execute_loop_nb_execute_unit_port ,_nb_execute_loop,_nb_execute_unit[it1]); 2225 2226 2232 // DELETE2(_execute_loop_nb_inst_retire_rob ,_nb_execute_loop,_execute_loop_nb_ooo_engine[it1]); 2233 // DELETE2(_execute_loop_nb_inst_insert_rob ,_nb_execute_loop,_execute_loop_nb_ooo_engine[it1]); 2227 2234 DELETE2(_execute_loop_nb_special_register ,_nb_execute_loop,_execute_loop_nb_ooo_engine[it1]); 2228 2235 DELETE2(_execute_loop_nb_general_register ,_nb_execute_loop,_execute_loop_nb_ooo_engine[it1]); … … 2277 2284 DELETE2(_ooo_engine_rename_select_priority ,_nb_ooo_engine,_nb_rename_unit[it1]); 2278 2285 DELETE2(_ooo_engine_nb_inst_retire ,_nb_ooo_engine,_nb_rename_unit[it1]); 2279 2286 // DELETE1(_ooo_engine_nb_inst_insert_rob ,_nb_ooo_engine); 2280 2287 DELETE2(_ooo_engine_nb_inst_insert ,_nb_ooo_engine,_nb_rename_unit[it1]); 2281 2288 DELETE2(_ooo_engine_link_rename_unit_with_front_end ,_nb_ooo_engine,_ooo_engine_nb_front_end[it1]); … … 2303 2310 DELETE2(_front_end_link_decod_unit_with_context ,_nb_front_end,_nb_context[it1]); 2304 2311 DELETE2(_front_end_nb_inst_fetch ,_nb_front_end,_nb_context[it1]); 2312 DELETE2(_front_end_ifetch_queue_scheme ,_nb_front_end,_nb_ifetch_unit[it1]); 2305 2313 DELETE2(_front_end_size_ifetch_queue ,_nb_front_end,_nb_context[it1]); 2306 2314 DELETE1(_list_load_store_unit_with_execute_unit ,_nb_execute_loop); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/src/Parameters_print.cpp
r117 r136 40 40 str+= toString(MSG_INFORMATION)+" * THREAD ["+toString<uint32_t>(i)+"]\n"; 41 41 str+= toString(MSG_INFORMATION)+" * size_ifetch_queue : "+toString<uint32_t>(_size_ifetch_queue [i])+"\n"; 42 str+= toString(MSG_INFORMATION)+" * ifetch_queue_scheme : "+toString<multi_front_end::front_end::ifetch_unit::ifetch_queue::Tifetch_queue_scheme_t> 43 (_ifetch_queue_scheme[i])+"\n"; 42 44 str+= toString(MSG_INFORMATION)+" * nb_inst_fetch : "+toString<uint32_t>(_nb_inst_fetch [i])+"\n"; 43 45 str+= toString(MSG_INFORMATION)+" * ras_size_queue : "+toString<uint32_t>(_ras_size_queue [i])+"\n";
Note: See TracChangeset
for help on using the changeset viewer.