Changeset 145 for trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/src
- Timestamp:
- Oct 13, 2010, 8:15:51 PM (14 years ago)
- Location:
- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/src
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/src/OOO_Engine_allocation.cpp
r139 r145 534 534 COMPONENT_MAP(_component,src ,"out_INSERT_"+toString(j) +"_IS_DELAY_SLOT" , 535 535 dest, "in_INSERT_"+toString(i)+"_"+toString(j)+"_IS_DELAY_SLOT" ); 536 if (_param->_rat_scheme[i] == RAT_DEPTH_SAVE) 537 COMPONENT_MAP(_component,src ,"out_INSERT_"+toString(j) +"_SAVE_RAT" , 538 dest, "in_INSERT_"+toString(i)+"_"+toString(j)+"_SAVE_RAT" ); 536 539 // COMPONENT_MAP(_component,src ,"out_INSERT_"+toString(j) +"_HAVE_EVENT" , 537 540 // dest, "in_INSERT_"+toString(i)+"_"+toString(j)+"_HAVE_EVENT" ); … … 633 636 #endif 634 637 635 636 637 638 COMPONENT_MAP(_component,src , "in_RETIRE_"+toString(j)+ "_VAL" , 638 639 dest,"out_RETIRE_"+toString(i)+"_"+toString(j)+"_VAL" ); … … 670 671 COMPONENT_MAP(_component,src , "in_RETIRE_"+toString(j)+ "_LOAD_QUEUE_PTR_WRITE" , 671 672 dest,"out_RETIRE_"+toString(i)+"_"+toString(j)+"_LOAD_QUEUE_PTR_WRITE" ); 672 // 673 // 674 // 675 // 676 // 677 // 678 // 679 // 680 // 681 // 682 // 683 // 673 // COMPONENT_MAP(_component,src , "in_RETIRE_"+toString(j)+ "_READ_RA" , 674 // dest,"out_RETIRE_"+toString(i)+"_"+toString(j)+"_READ_RA" ); 675 // COMPONENT_MAP(_component,src , "in_RETIRE_"+toString(j)+ "_NUM_REG_RA_PHY" , 676 // dest,"out_RETIRE_"+toString(i)+"_"+toString(j)+"_NUM_REG_RA_PHY" ); 677 // COMPONENT_MAP(_component,src , "in_RETIRE_"+toString(j)+ "_READ_RB" , 678 // dest,"out_RETIRE_"+toString(i)+"_"+toString(j)+"_READ_RB" ); 679 // COMPONENT_MAP(_component,src , "in_RETIRE_"+toString(j)+ "_NUM_REG_RB_PHY" , 680 // dest,"out_RETIRE_"+toString(i)+"_"+toString(j)+"_NUM_REG_RB_PHY" ); 681 // COMPONENT_MAP(_component,src , "in_RETIRE_"+toString(j)+ "_READ_RC" , 682 // dest,"out_RETIRE_"+toString(i)+"_"+toString(j)+"_READ_RC" ); 683 // COMPONENT_MAP(_component,src , "in_RETIRE_"+toString(j)+ "_NUM_REG_RC_PHY" , 684 // dest,"out_RETIRE_"+toString(i)+"_"+toString(j)+"_NUM_REG_RC_PHY" ); 684 685 COMPONENT_MAP(_component,src , "in_RETIRE_"+toString(j)+ "_NUM_REG_RD_LOG" , 685 686 dest,"out_RETIRE_"+toString(i)+"_"+toString(j)+"_NUM_REG_RD_LOG" ); … … 755 756 } 756 757 } 758 759 // ~~~~~[ Interface : "spr_read" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 760 { 761 std::vector<uint32_t>::iterator it = _param->_link_front_end_with_rename_unit[i].begin(); 762 uint32_t x = 0; 763 for (uint32_t j=0; j<_param->_nb_front_end; j++) 764 if (j == *it) 765 { 766 for (uint32_t k=0; k<_param->_nb_context[j]; k++) 767 { 768 dest = _name; 769 770 #ifdef POSITION 771 _component->interface_map (src ,"spr_read_"+toString(x)+"_"+toString(k), 772 dest,"spr_" +toString(j)+"_"+toString(k)); 773 #endif 774 775 if (_param->_have_port_depth) 776 { 777 PORT_MAP(_component,src , "in_DEPTH_"+toString(x)+"_"+toString(k)+"_MIN" , 778 dest, "in_DEPTH_"+toString(j)+"_"+toString(k)+"_MIN" ); 779 PORT_MAP(_component,src , "in_DEPTH_"+toString(x)+"_"+toString(k)+"_MAX" , 780 dest, "in_DEPTH_"+toString(j)+"_"+toString(k)+"_MAX" ); 781 } 782 PORT_MAP(_component,src , "in_DEPTH_"+toString(x)+"_"+toString(k)+"_FULL", 783 dest, "in_DEPTH_"+toString(j)+"_"+toString(k)+"_FULL"); 784 } 785 x++; 786 ++it; 787 } 788 } 789 757 790 758 791 // ~~~~~[ Interface : "info" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ … … 919 952 // out_RETIRE_CONTEXT_ID - component_rename_unit 920 953 ////out_RETIRE_RENAME_UNIT_ID - component_rename_unit 954 // out_RETIRE_DEPTH - component_rename_unit 921 955 // out_RETIRE_USE_STORE_QUEUE - component_rename_unit 922 956 // out_RETIRE_USE_LOAD_QUEUE - component_rename_unit … … 981 1015 COMPONENT_MAP(_component,src ,"out_COMMIT_"+toString(i)+"_NUM_REG_RD" , 982 1016 dest, "in_COMMIT_"+toString(i)+"_NUM_REG_RD" ); 983 //@@@@@@@@@@984 1017 } 985 1018 … … 1111 1144 } 1112 1145 1113 // ~~~~~[ Interface : "depth" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1114 for (uint32_t i=0; i<_param->_nb_front_end; i++)1115 for (uint32_t j=0; j<_param->_nb_context[i]; j++)1116 {1117 dest = _name;1118 #ifdef POSITION1119 _component->interface_map (src ,"depth_"+toString(i)+"_"+toString(j),1120 dest,"depth_"+toString(i)+"_"+toString(j));1121 #endif1122 1123 if (_param->_have_port_depth)1124 {1125 PORT_MAP(_component,src , "in_DEPTH_"+toString(i)+"_"+toString(j)+"_MIN",1126 dest, "in_DEPTH_"+toString(i)+"_"+toString(j)+"_MIN");1127 PORT_MAP(_component,src , "in_DEPTH_"+toString(i)+"_"+toString(j)+"_MAX",1128 dest, "in_DEPTH_"+toString(i)+"_"+toString(j)+"_MAX");1129 }1130 PORT_MAP(_component,src , "in_DEPTH_"+toString(i)+"_"+toString(j)+"_FULL",1131 dest, "in_DEPTH_"+toString(i)+"_"+toString(j)+"_FULL");1132 }1146 // // ~~~~~[ Interface : "depth" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1147 // for (uint32_t i=0; i<_param->_nb_front_end; i++) 1148 // for (uint32_t j=0; j<_param->_nb_context[i]; j++) 1149 // { 1150 // dest = _name; 1151 //#ifdef POSITION 1152 // _component->interface_map (src ,"depth_"+toString(i)+"_"+toString(j), 1153 // dest,"depth_"+toString(i)+"_"+toString(j)); 1154 //#endif 1155 // 1156 // if (_param->_have_port_depth) 1157 // { 1158 // PORT_MAP(_component,src , "in_DEPTH_"+toString(i)+"_"+toString(j)+"_MIN", 1159 // dest, "in_DEPTH_"+toString(i)+"_"+toString(j)+"_MIN"); 1160 // PORT_MAP(_component,src , "in_DEPTH_"+toString(i)+"_"+toString(j)+"_MAX", 1161 // dest, "in_DEPTH_"+toString(i)+"_"+toString(j)+"_MAX"); 1162 // } 1163 // PORT_MAP(_component,src , "in_DEPTH_"+toString(i)+"_"+toString(j)+"_FULL", 1164 // dest, "in_DEPTH_"+toString(i)+"_"+toString(j)+"_FULL"); 1165 // } 1133 1166 1134 1167 // ~~~~~[ Interface : "spr_read" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/src/Parameters.cpp
r139 r145 82 82 log_begin(OOO_Engine,FUNCTION); 83 83 84 _nb_front_end = nb_front_end ; 85 _nb_context = nb_context ; 86 _nb_rename_unit = nb_rename_unit ; 87 _nb_execute_loop = nb_execute_loop ; 88 _nb_inst_decod = nb_inst_decod ; 89 _nb_inst_insert = nb_inst_insert ; 90 _nb_inst_retire = nb_inst_retire ; 91 // _nb_inst_issue = nb_inst_issue ; 92 _nb_inst_execute = nb_inst_execute ; 93 _nb_inst_reexecute = nb_inst_reexecute ; 94 _nb_inst_commit = nb_inst_commit ; 95 _nb_inst_branch_complete = nb_inst_branch_complete ; 96 _nb_branch_speculated = nb_branch_speculated ; 97 _nb_rename_unit_select = nb_rename_unit_select ; 98 _nb_execute_loop_select = nb_execute_loop_select ; 99 // _size_general_data = size_general_data ; 100 // _size_special_data = size_special_data ; 101 _link_rename_unit_with_front_end = link_rename_unit_with_front_end ; 102 _size_re_order_buffer = size_re_order_buffer ; 103 _nb_re_order_buffer_bank = nb_re_order_buffer_bank ; 104 _retire_ooo_scheme = retire_ooo_scheme ; 105 _commit_priority = commit_priority ; 106 _commit_load_balancing = commit_load_balancing ; 107 _size_issue_queue = size_issue_queue ; 108 _issue_queue_scheme = issue_queue_scheme ; 109 _nb_issue_queue_bank = nb_issue_queue_bank ; 110 _issue_priority = issue_priority ; 111 _issue_load_balancing = issue_load_balancing ; 112 // _table_routing = table_routing ; 113 // _table_issue_type = table_issue_type ; 114 _size_reexecute_queue = size_reexecute_queue ; 115 _rename_select_priority = rename_select_priority ; 116 _rename_select_load_balancing = rename_select_load_balancing ; 117 _rename_select_nb_front_end_select = rename_select_nb_front_end_select; 118 _nb_general_register = nb_general_register ; 119 _nb_special_register = nb_special_register ; 120 _rat_scheme = rat_scheme ; 121 _nb_reg_free = nb_reg_free ; 122 _nb_rename_unit_bank = nb_rename_unit_bank ; 123 // _size_read_counter = size_read_counter ; 124 _nb_load_store_queue = nb_load_store_queue ; 125 _size_store_queue = size_store_queue ; 126 _size_load_queue = size_load_queue ; 127 _nb_inst_memory = nb_inst_memory ; 128 _link_load_store_unit_with_thread = link_load_store_unit_with_thread ; 129 _implement_group = implement_group ; 130 84 _nb_front_end = nb_front_end ; 85 _nb_context = nb_context ; 86 _nb_rename_unit = nb_rename_unit ; 87 _nb_execute_loop = nb_execute_loop ; 88 _nb_inst_decod = nb_inst_decod ; 89 _nb_inst_insert = nb_inst_insert ; 90 _nb_inst_retire = nb_inst_retire ; 91 // _nb_inst_issue = nb_inst_issue ; 92 _nb_inst_execute = nb_inst_execute ; 93 _nb_inst_reexecute = nb_inst_reexecute ; 94 _nb_inst_commit = nb_inst_commit ; 95 _nb_inst_branch_complete = nb_inst_branch_complete ; 96 _nb_branch_speculated = nb_branch_speculated ; 97 _nb_rename_unit_select = nb_rename_unit_select ; 98 _nb_execute_loop_select = nb_execute_loop_select ; 99 // _size_general_data = size_general_data ; 100 // _size_special_data = size_special_data ; 101 _link_rename_unit_with_front_end = link_rename_unit_with_front_end ; 102 _size_re_order_buffer = size_re_order_buffer ; 103 _nb_re_order_buffer_bank = nb_re_order_buffer_bank ; 104 _retire_ooo_scheme = retire_ooo_scheme ; 105 _commit_priority = commit_priority ; 106 _commit_load_balancing = commit_load_balancing ; 107 _size_issue_queue = size_issue_queue ; 108 _issue_queue_scheme = issue_queue_scheme ; 109 _nb_issue_queue_bank = nb_issue_queue_bank ; 110 _issue_priority = issue_priority ; 111 _issue_load_balancing = issue_load_balancing ; 112 // _table_routing = table_routing ; 113 // _table_issue_type = table_issue_type ; 114 _size_reexecute_queue = size_reexecute_queue ; 115 _rename_select_priority = rename_select_priority ; 116 _rename_select_load_balancing = rename_select_load_balancing ; 117 _rename_select_nb_front_end_select = rename_select_nb_front_end_select; 118 _nb_general_register = nb_general_register ; 119 _nb_special_register = nb_special_register ; 120 _rat_scheme = rat_scheme ; 121 _nb_reg_free = nb_reg_free ; 122 _nb_rename_unit_bank = nb_rename_unit_bank ; 123 // _size_read_counter = size_read_counter ; 124 _nb_load_store_queue = nb_load_store_queue ; 125 _size_store_queue = size_store_queue ; 126 _size_load_queue = size_load_queue ; 127 _nb_inst_memory = nb_inst_memory ; 128 _link_load_store_unit_with_thread = link_load_store_unit_with_thread ; 129 _implement_group = implement_group ; 131 130 _nb_thread = nb_thread ; 132 131 _translate_num_context_to_num_thread = translate_num_context_to_num_thread; … … 144 143 _link_front_end_with_rename_unit[num_rename_unit].push_back(i); 145 144 } 145 146 146 _rename_unit_size_front_end_id = new uint32_t [_nb_rename_unit]; 147 147 _rename_unit_size_context_id = new uint32_t [_nb_rename_unit]; … … 197 197 } 198 198 } 199 200 ALLOC1(_commit_unit_rat_scheme,Trat_scheme_t,_nb_front_end);201 202 for (uint32_t num_front_end=0; num_front_end<_nb_front_end; ++num_front_end)203 _commit_unit_rat_scheme [num_front_end] = rat_scheme [_link_rename_unit_with_front_end [num_front_end]];204 199 205 200 _max_nb_context = max<uint32_t>(_nb_context,_nb_front_end); … … 265 260 _param_commit_unit = new morpheo::behavioural::core::multi_ooo_engine::ooo_engine::commit_unit::Parameters 266 261 ( 267 _nb_front_end , 268 _nb_context , 269 _nb_rename_unit , 270 _size_re_order_buffer , 271 _nb_re_order_buffer_bank , 272 _retire_ooo_scheme , 273 _nb_inst_insert , 274 _nb_inst_retire , 275 _nb_inst_commit , 276 _nb_inst_reexecute , 277 _nb_inst_branch_complete , 278 _nb_branch_speculated , 279 size_nb_inst_decod , 280 size_general_data , 281 size_store_queue_ptr , 282 size_load_queue_ptr , 283 size_general_register , 284 size_special_register , 285 _commit_unit_rat_scheme , 286 _issue_priority , 287 _issue_load_balancing , 288 _nb_rename_unit_select , 289 _nb_thread , 262 _nb_front_end , 263 _nb_context , 264 _nb_rename_unit , 265 _size_re_order_buffer , 266 _nb_re_order_buffer_bank , 267 _retire_ooo_scheme , 268 _nb_inst_insert , 269 _nb_inst_retire , 270 _nb_inst_commit , 271 _nb_inst_reexecute , 272 _nb_inst_branch_complete , 273 _nb_branch_speculated , 274 size_nb_inst_decod , 275 size_general_data , 276 size_store_queue_ptr , 277 size_load_queue_ptr , 278 size_general_register , 279 size_special_register , 280 _rat_scheme , 281 _link_front_end_with_rename_unit, 282 _issue_priority , 283 _issue_load_balancing , 284 _nb_rename_unit_select , 285 _nb_thread , 290 286 _translate_num_context_to_num_thread 291 287 ); … … 430 426 delete [] _link_front_end_with_rename_unit ; 431 427 432 DELETE1(_commit_unit_rat_scheme,_nb_front_end);433 434 428 for (uint32_t i=0; i<_nb_rename_unit; i++) 435 429 delete _param_rename_unit [i] ; -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/src/Parameters_msg_error.cpp
r88 r145 36 36 test.error(toString(_("Front_end [%d] is linked with invalid rename_unit.\n"),i)); 37 37 else 38 _is_link [x] = true; 38 { 39 if (_is_link [x]) 40 test.error(toString(_("Front_end [%d] can't be connected with multiple rename_unit.\n"),i)); 41 else 42 _is_link [x] = true; 43 } 39 44 } 40 45
Note: See TracChangeset
for help on using the changeset viewer.