[88] | 1 | /* |
---|
| 2 | * $Id: Parameters_print.cpp 139 2010-07-30 14:47:27Z rosiere $ |
---|
| 3 | * |
---|
| 4 | * [ Description ] |
---|
| 5 | * |
---|
| 6 | */ |
---|
| 7 | |
---|
| 8 | #include "Behavioural/Core/include/Parameters.h" |
---|
| 9 | #include "Behavioural/include/XML.h" |
---|
| 10 | |
---|
| 11 | namespace morpheo { |
---|
| 12 | namespace behavioural { |
---|
| 13 | namespace core { |
---|
| 14 | |
---|
| 15 | |
---|
| 16 | #undef FUNCTION |
---|
| 17 | #define FUNCTION "Core::print" |
---|
| 18 | std::string Parameters::print (uint32_t depth) |
---|
| 19 | { |
---|
| 20 | log_begin(Core,FUNCTION); |
---|
| 21 | |
---|
| 22 | // XML xml ("core"); |
---|
| 23 | |
---|
| 24 | // xml.balise_open("core"); |
---|
| 25 | // // xml.singleton_begin(""); xml.attribut("value",toString(_)); xml.singleton_end(); |
---|
| 26 | // xml.balise_close(); |
---|
| 27 | |
---|
| 28 | // return xml.get_body(depth); |
---|
| 29 | |
---|
| 30 | std::string str = ""; |
---|
| 31 | |
---|
| 32 | str+= toString(MSG_INFORMATION)+" -----[ Common ]-----------------------------------\n"; |
---|
| 33 | str+= toString(MSG_INFORMATION)+" * size_general_data : "+toString<uint32_t>(_size_general_data)+"\n"; |
---|
| 34 | str+= toString(MSG_INFORMATION)+" * size_special_data : "+toString<uint32_t>(_size_special_data)+"\n"; |
---|
| 35 | |
---|
| 36 | str+= toString(MSG_INFORMATION)+" -----[ Thread ]-----------------------------------\n"; |
---|
| 37 | str+= toString(MSG_INFORMATION)+" * nb_thread : "+toString<uint32_t>(_nb_thread)+"\n"; |
---|
| 38 | for (uint32_t i=0; i<_nb_thread; ++i) |
---|
| 39 | { |
---|
| 40 | str+= toString(MSG_INFORMATION)+" * THREAD ["+toString<uint32_t>(i)+"]\n"; |
---|
| 41 | str+= toString(MSG_INFORMATION)+" * size_ifetch_queue : "+toString<uint32_t>(_size_ifetch_queue [i])+"\n"; |
---|
[136] | 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"; |
---|
[88] | 44 | str+= toString(MSG_INFORMATION)+" * nb_inst_fetch : "+toString<uint32_t>(_nb_inst_fetch [i])+"\n"; |
---|
| 45 | str+= toString(MSG_INFORMATION)+" * ras_size_queue : "+toString<uint32_t>(_ras_size_queue [i])+"\n"; |
---|
| 46 | str+= toString(MSG_INFORMATION)+" * upt_size_queue : "+toString<uint32_t>(_upt_size_queue [i])+"\n"; |
---|
[97] | 47 | str+= toString(MSG_INFORMATION)+" * ufpt_size_queue : "+toString<uint32_t>(_ufpt_size_queue [i])+"\n"; |
---|
[88] | 48 | |
---|
| 49 | for (uint32_t j=0; j<NB_GROUP; ++j) |
---|
| 50 | { |
---|
| 51 | str+= toString(MSG_INFORMATION)+" * GROUP["+toString(j)+"]\n"; |
---|
| 52 | str+= toString(MSG_INFORMATION)+" * implement_group : "+toString<uint32_t>(_implement_group [i][j])+"\n"; |
---|
| 53 | } |
---|
| 54 | } |
---|
| 55 | |
---|
| 56 | str+= toString(MSG_INFORMATION)+" -----[ Decod bloc ]-------------------------------\n"; |
---|
| 57 | str+= toString(MSG_INFORMATION)+" * nb_decod_bloc : "+toString<uint32_t>(_nb_decod_bloc)+"\n"; |
---|
| 58 | for (uint32_t i=0; i<_nb_decod_bloc; ++i) |
---|
| 59 | { |
---|
| 60 | str+= toString(MSG_INFORMATION)+" * DECOD_BLOC ["+toString<uint32_t>(i)+"]\n"; |
---|
| 61 | |
---|
| 62 | str+= toString(MSG_INFORMATION)+" * size_decod_queue : "+toString<uint32_t >(_size_decod_queue [i])+"\n"; |
---|
[111] | 63 | str+= toString(MSG_INFORMATION)+" * decod_queue_scheme : "+toString<multi_front_end::front_end::decod_unit::decod_queue::Tdecod_queue_scheme_t> |
---|
| 64 | (_decod_queue_scheme [i])+"\n"; |
---|
[88] | 65 | str+= toString(MSG_INFORMATION)+" * nb_inst_decod : "+toString<uint32_t >(_nb_inst_decod [i])+"\n"; |
---|
| 66 | str+= toString(MSG_INFORMATION)+" * nb_context_select : "+toString<uint32_t >(_nb_context_select [i])+"\n"; |
---|
| 67 | str+= toString(MSG_INFORMATION)+" * context_select_priority : "+toString<Tpriority_t >(_context_select_priority [i])+"\n"; |
---|
| 68 | str+= toString(MSG_INFORMATION)+" * context_select_load_balancing : "+toString<Tload_balancing_t>(_context_select_load_balancing[i])+"\n"; |
---|
| 69 | } |
---|
| 70 | |
---|
| 71 | str+= toString(MSG_INFORMATION)+" -----[ Rename bloc ]------------------------------\n"; |
---|
| 72 | str+= toString(MSG_INFORMATION)+" * nb_rename_bloc : "+toString<uint32_t>(_nb_rename_bloc)+"\n"; |
---|
| 73 | for (uint32_t i=0; i<_nb_rename_bloc; ++i) |
---|
| 74 | { |
---|
| 75 | str+= toString(MSG_INFORMATION)+" * RENAME_BLOC ["+toString<uint32_t>(i)+"]\n"; |
---|
| 76 | str+= toString(MSG_INFORMATION)+" * nb_inst_insert : "+toString<uint32_t >(_nb_inst_insert [i])+"\n"; |
---|
| 77 | str+= toString(MSG_INFORMATION)+" * nb_inst_retire : "+toString<uint32_t >(_nb_inst_retire [i])+"\n"; |
---|
| 78 | str+= toString(MSG_INFORMATION)+" * rename_select_priority : "+toString<Tpriority_t >(_rename_select_priority [i])+"\n"; |
---|
| 79 | str+= toString(MSG_INFORMATION)+" * rename_select_load_balancing : "+toString<Tload_balancing_t>(_rename_select_load_balancing [i])+"\n"; |
---|
| 80 | str+= toString(MSG_INFORMATION)+" * rename_select_nb_front_end_select : "+toString<uint32_t >(_rename_select_nb_front_end_select[i])+"\n"; |
---|
| 81 | str+= toString(MSG_INFORMATION)+" * nb_general_register : "+toString<uint32_t >(_nb_general_register [i])+"\n"; |
---|
| 82 | str+= toString(MSG_INFORMATION)+" * nb_special_register : "+toString<uint32_t >(_nb_special_register [i])+"\n"; |
---|
[139] | 83 | str+= toString(MSG_INFORMATION)+" * rat_scheme : "+toString<Trat_scheme_t >(_rat_scheme [i])+"\n"; |
---|
[88] | 84 | str+= toString(MSG_INFORMATION)+" * nb_reg_free : "+toString<uint32_t >(_nb_reg_free [i])+"\n"; |
---|
| 85 | str+= toString(MSG_INFORMATION)+" * nb_rename_unit_bank : "+toString<uint32_t >(_nb_rename_unit_bank [i])+"\n"; |
---|
[112] | 86 | // str+= toString(MSG_INFORMATION)+" * size_read_counter : "+toString<uint32_t >(_size_read_counter [i])+"\n"; |
---|
[88] | 87 | } |
---|
| 88 | |
---|
| 89 | str+= toString(MSG_INFORMATION)+" -----[ Read bloc ]--------------------------------\n"; |
---|
| 90 | str+= toString(MSG_INFORMATION)+" * nb_read_bloc : "+toString<uint32_t>(_nb_read_bloc )+"\n"; |
---|
| 91 | for (uint32_t i=0; i<_nb_read_bloc; ++i) |
---|
| 92 | { |
---|
| 93 | str+= toString(MSG_INFORMATION)+" * READ_BLOC ["+toString<uint32_t>(i)+"]\n"; |
---|
| 94 | str+= toString(MSG_INFORMATION)+" * size_read_queue : "+toString<uint32_t>(_size_read_queue [i])+"\n"; |
---|
| 95 | str+= toString(MSG_INFORMATION)+" * size_reservation_station : "+toString<uint32_t>(_size_reservation_station [i])+"\n"; |
---|
| 96 | str+= toString(MSG_INFORMATION)+" * nb_inst_retire_reservation_station : "+toString<uint32_t>(_nb_inst_retire_reservation_station[i])+"\n"; |
---|
| 97 | } |
---|
| 98 | |
---|
| 99 | str+= toString(MSG_INFORMATION)+" -----[ Write bloc ]-------------------------------\n"; |
---|
| 100 | str+= toString(MSG_INFORMATION)+" * nb_write_bloc : "+toString<uint32_t>(_nb_write_bloc )+"\n"; |
---|
| 101 | for (uint32_t i=0; i<_nb_write_bloc; ++i) |
---|
| 102 | { |
---|
| 103 | str+= toString(MSG_INFORMATION)+" * WRITE_BLOC ["+toString<uint32_t>(i)+"]\n"; |
---|
| 104 | str+= toString(MSG_INFORMATION)+" * size_write_queue : "+toString<uint32_t>(_size_write_queue [i])+"\n"; |
---|
| 105 | str+= toString(MSG_INFORMATION)+" * size_execute_queue : "+toString<uint32_t>(_size_execute_queue[i])+"\n"; |
---|
| 106 | str+= toString(MSG_INFORMATION)+" * nb_bypass_write : "+toString<uint32_t>(_nb_bypass_write [i])+"\n"; |
---|
| 107 | } |
---|
| 108 | |
---|
| 109 | str+= toString(MSG_INFORMATION)+" -----[ Load_store_unit ]--------------------------\n"; |
---|
| 110 | str+= toString(MSG_INFORMATION)+" * nb_load_store_unit : "+toString<uint32_t>(_nb_load_store_unit )+"\n"; |
---|
| 111 | for (uint32_t i=0; i<_nb_load_store_unit; ++i) |
---|
| 112 | { |
---|
| 113 | str+= toString(MSG_INFORMATION)+" * LOAD_STORE_UNIT ["+toString<uint32_t>(i)+"]\n"; |
---|
| 114 | str+= toString(MSG_INFORMATION)+" * size_store_queue : "+toString<uint32_t>(_size_store_queue [i])+"\n"; |
---|
| 115 | str+= toString(MSG_INFORMATION)+" * size_load_queue : "+toString<uint32_t>(_size_load_queue [i])+"\n"; |
---|
| 116 | str+= toString(MSG_INFORMATION)+" * size_speculative_access_queue : "+toString<uint32_t>(_size_speculative_access_queue[i])+"\n"; |
---|
| 117 | str+= toString(MSG_INFORMATION)+" * nb_port_check : "+toString<uint32_t>(_nb_port_check [i])+"\n"; |
---|
| 118 | str+= toString(MSG_INFORMATION)+" * speculative_load : "+toString<multi_execute_loop::execute_loop::Tspeculative_load_t>(_speculative_load [i])+"\n"; |
---|
| 119 | str+= toString(MSG_INFORMATION)+" * nb_bypass_memory : "+toString<uint32_t>(_nb_bypass_memory [i])+"\n"; |
---|
| 120 | str+= toString(MSG_INFORMATION)+" * nb_cache_port : "+toString<uint32_t>(_nb_cache_port [i])+"\n"; |
---|
| 121 | str+= toString(MSG_INFORMATION)+" * nb_inst_memory : "+toString<uint32_t>(_nb_inst_memory [i])+"\n"; |
---|
| 122 | } |
---|
| 123 | |
---|
| 124 | str+= toString(MSG_INFORMATION)+" -----[ Functionnal_unit ]-------------------------\n"; |
---|
| 125 | str+= toString(MSG_INFORMATION)+" * nb_functionnal_unit : "+toString<uint32_t>(_nb_functionnal_unit )+"\n"; |
---|
| 126 | for (uint32_t i=0; i<_nb_functionnal_unit; ++i) |
---|
| 127 | { |
---|
| 128 | str+= toString(MSG_INFORMATION)+" * FUNCTIONNAL_UNIT ["+toString<uint32_t>(i)+"]\n"; |
---|
| 129 | str+= toString(MSG_INFORMATION)+" * nb_inst_functionnal_unit : "+toString<uint32_t>(_nb_inst_functionnal_unit [i])+"\n"; |
---|
| 130 | } |
---|
| 131 | |
---|
| 132 | //multi_execute_loop::execute_loop::execute_timing_t *** timing; //[nb_functionnal_unit][nb_type][nb_operation] |
---|
| 133 | |
---|
| 134 | str+= toString(MSG_INFORMATION)+" -----[ Icache_Access ]----------------------------\n"; |
---|
| 135 | str+= toString(MSG_INFORMATION)+" * nb_icache_port : "+toString<uint32_t >(_nb_icache_port )+"\n"; |
---|
| 136 | str+= toString(MSG_INFORMATION)+" * icache_port_priority : "+toString<Tpriority_t >(_icache_port_priority )+"\n"; |
---|
| 137 | str+= toString(MSG_INFORMATION)+" * icache_port_load_balancing : "+toString<Tload_balancing_t>(_icache_port_load_balancing)+"\n"; |
---|
| 138 | |
---|
| 139 | str+= toString(MSG_INFORMATION)+" -----[ Dcache_Access ]----------------------------\n"; |
---|
| 140 | str+= toString(MSG_INFORMATION)+" * nb_dcache_port : "+toString<uint32_t >(_nb_dcache_port )+"\n"; |
---|
| 141 | str+= toString(MSG_INFORMATION)+" * dcache_port_priority : "+toString<Tpriority_t >(_dcache_port_priority )+"\n"; |
---|
| 142 | str+= toString(MSG_INFORMATION)+" * dcache_port_load_balancing : "+toString<Tload_balancing_t>(_dcache_port_load_balancing)+"\n"; |
---|
| 143 | |
---|
| 144 | str+= toString(MSG_INFORMATION)+" -----[ Front_end ]--------------------------------\n"; |
---|
| 145 | str+= toString(MSG_INFORMATION)+" * nb_front_end : "+toString<uint32_t >(_nb_front_end )+"\n"; |
---|
| 146 | for (uint32_t i=0; i<_nb_front_end; ++i) |
---|
| 147 | { |
---|
| 148 | str+= toString(MSG_INFORMATION)+" * FRONT_END ["+toString<uint32_t>(i)+"]\n"; |
---|
| 149 | str+= toString(MSG_INFORMATION)+" * nb_context : "+toString<uint32_t >(_nb_context [i] )+"\n"; |
---|
| 150 | str+= toString(MSG_INFORMATION)+" * nb_decod_unit : "+toString<uint32_t >(_nb_decod_unit [i] )+"\n"; |
---|
| 151 | str+= toString(MSG_INFORMATION)+" * nb_inst_branch_predict : "+toString<uint32_t >(_nb_inst_branch_predict [i] )+"\n"; |
---|
| 152 | str+= toString(MSG_INFORMATION)+" * nb_inst_branch_decod : "+toString<uint32_t >(_nb_inst_branch_decod [i] )+"\n"; |
---|
| 153 | str+= toString(MSG_INFORMATION)+" * nb_inst_branch_update : "+toString<uint32_t >(_nb_inst_branch_update [i] )+"\n"; |
---|
| 154 | str+= toString(MSG_INFORMATION)+" * btb_size_queue : "+toString<uint32_t >(_btb_size_queue [i] )+"\n"; |
---|
| 155 | str+= toString(MSG_INFORMATION)+" * btb_associativity : "+toString<uint32_t >(_btb_associativity [i] )+"\n"; |
---|
| 156 | str+= toString(MSG_INFORMATION)+" * btb_size_counter : "+toString<uint32_t >(_btb_size_counter [i] )+"\n"; |
---|
| 157 | str+= toString(MSG_INFORMATION)+" * btb_victim_scheme : "+toString<Tvictim_t >(_btb_victim_scheme [i] )+"\n"; |
---|
| 158 | str+= toString(MSG_INFORMATION)+" * dir_predictor_scheme : "+toString<Tpredictor_t>(_dir_predictor_scheme [i] )+"\n"; |
---|
| 159 | for (uint32_t j=0; j<3; ++j) |
---|
| 160 | { |
---|
| 161 | str+= toString(MSG_INFORMATION)+" * PREDICTOR ["+toString<uint32_t>(i)+"]["+toString<uint32_t>(j)+"]\n"; |
---|
| 162 | str+= toString(MSG_INFORMATION)+" * dir_have_bht : "+toString<bool >(_dir_have_bht [i][j])+"\n"; |
---|
| 163 | str+= toString(MSG_INFORMATION)+" * dir_bht_size_shifter : "+toString<uint32_t >(_dir_bht_size_shifter [i][j])+"\n"; |
---|
| 164 | str+= toString(MSG_INFORMATION)+" * dir_bht_nb_shifter : "+toString<uint32_t >(_dir_bht_nb_shifter [i][j])+"\n"; |
---|
| 165 | str+= toString(MSG_INFORMATION)+" * dir_have_pht : "+toString<bool >(_dir_have_pht [i][j])+"\n"; |
---|
| 166 | str+= toString(MSG_INFORMATION)+" * dir_pht_size_counter : "+toString<uint32_t >(_dir_pht_size_counter [i][j])+"\n"; |
---|
| 167 | str+= toString(MSG_INFORMATION)+" * dir_pht_nb_counter : "+toString<uint32_t >(_dir_pht_nb_counter [i][j])+"\n"; |
---|
| 168 | str+= toString(MSG_INFORMATION)+" * dir_pht_size_address_share : "+toString<uint32_t >(_dir_pht_size_address_share[i][j])+"\n"; |
---|
| 169 | } |
---|
| 170 | } |
---|
| 171 | |
---|
| 172 | str+= toString(MSG_INFORMATION)+" -----[ OOO_Engine ]-------------------------------\n"; |
---|
| 173 | str+= toString(MSG_INFORMATION)+" * nb_ooo_engine : "+toString<uint32_t >(_nb_ooo_engine )+"\n"; |
---|
| 174 | for (uint32_t i=0; i<_nb_ooo_engine; ++i) |
---|
| 175 | { |
---|
| 176 | str+= toString(MSG_INFORMATION)+" * OOO_ENGINE ["+toString<uint32_t>(i)+"]\n"; |
---|
| 177 | str+= toString(MSG_INFORMATION)+" * nb_rename_unit : "+toString<uint32_t >(_nb_rename_unit [i])+"\n"; |
---|
[117] | 178 | str+= toString(MSG_INFORMATION)+" * nb_inst_issue_queue : "+toString<uint32_t >(_nb_inst_issue_queue [i])+"\n"; |
---|
[88] | 179 | str+= toString(MSG_INFORMATION)+" * nb_inst_reexecute : "+toString<uint32_t >(_nb_inst_reexecute [i])+"\n"; |
---|
| 180 | str+= toString(MSG_INFORMATION)+" * nb_inst_commit : "+toString<uint32_t >(_nb_inst_commit [i])+"\n"; |
---|
| 181 | str+= toString(MSG_INFORMATION)+" * nb_inst_branch_complete : "+toString<uint32_t >(_nb_inst_branch_complete [i])+"\n"; |
---|
| 182 | str+= toString(MSG_INFORMATION)+" * nb_rename_unit_select : "+toString<uint32_t >(_nb_rename_unit_select [i])+"\n"; |
---|
| 183 | str+= toString(MSG_INFORMATION)+" * nb_execute_loop_select : "+toString<uint32_t >(_nb_execute_loop_select [i])+"\n"; |
---|
| 184 | str+= toString(MSG_INFORMATION)+" * size_re_order_buffer : "+toString<uint32_t >(_size_re_order_buffer [i])+"\n"; |
---|
| 185 | str+= toString(MSG_INFORMATION)+" * nb_re_order_buffer_bank : "+toString<uint32_t >(_nb_re_order_buffer_bank [i])+"\n"; |
---|
| 186 | str+= toString(MSG_INFORMATION)+" * commit_priority : "+toString<Tpriority_t >(_commit_priority [i])+"\n"; |
---|
| 187 | str+= toString(MSG_INFORMATION)+" * commit_load_balancing : "+toString<Tload_balancing_t>(_commit_load_balancing [i])+"\n"; |
---|
| 188 | str+= toString(MSG_INFORMATION)+" * size_issue_queue : "+toString<uint32_t >(_size_issue_queue [i])+"\n"; |
---|
[111] | 189 | str+= toString(MSG_INFORMATION)+" * issue_queue_scheme : "+toString<multi_ooo_engine::ooo_engine::issue_queue::Tissue_queue_scheme_t> |
---|
| 190 | (_issue_queue_scheme [i])+"\n"; |
---|
[88] | 191 | str+= toString(MSG_INFORMATION)+" * nb_issue_queue_bank : "+toString<uint32_t >(_nb_issue_queue_bank [i])+"\n"; |
---|
| 192 | str+= toString(MSG_INFORMATION)+" * issue_priority : "+toString<Tpriority_t >(_issue_priority [i])+"\n"; |
---|
| 193 | str+= toString(MSG_INFORMATION)+" * issue_load_balancing : "+toString<Tload_balancing_t>(_issue_load_balancing [i])+"\n"; |
---|
| 194 | str+= toString(MSG_INFORMATION)+" * size_reexecute_queue : "+toString<uint32_t >(_size_reexecute_queue [i])+"\n"; |
---|
| 195 | } |
---|
| 196 | |
---|
| 197 | str+= toString(MSG_INFORMATION)+" -----[ Execute_loop ]-----------------------------\n"; |
---|
| 198 | str+= toString(MSG_INFORMATION)+" * nb_execute_loop : "+toString<uint32_t >(_nb_execute_loop )+"\n"; |
---|
| 199 | for (uint32_t i=0; i<_nb_execute_loop; ++i) |
---|
| 200 | { |
---|
| 201 | str+= toString(MSG_INFORMATION)+" * EXECUTE_LOOP ["+toString<uint32_t>(i)+"]\n"; |
---|
| 202 | str+= toString(MSG_INFORMATION)+" * nb_read_unit : "+toString<uint32_t >(_nb_read_unit [i])+"\n"; |
---|
| 203 | str+= toString(MSG_INFORMATION)+" * nb_execute_unit : "+toString<uint32_t >(_nb_execute_unit [i])+"\n"; |
---|
| 204 | str+= toString(MSG_INFORMATION)+" * nb_write_unit : "+toString<uint32_t >(_nb_write_unit [i])+"\n"; |
---|
| 205 | str+= toString(MSG_INFORMATION)+" * nb_gpr_bank : "+toString<uint32_t >(_nb_gpr_bank [i])+"\n"; |
---|
| 206 | str+= toString(MSG_INFORMATION)+" * nb_gpr_port_read_by_bank : "+toString<uint32_t >(_nb_gpr_port_read_by_bank [i])+"\n"; |
---|
| 207 | str+= toString(MSG_INFORMATION)+" * nb_gpr_port_write_by_bank : "+toString<uint32_t >(_nb_gpr_port_write_by_bank [i])+"\n"; |
---|
| 208 | str+= toString(MSG_INFORMATION)+" * nb_spr_bank : "+toString<uint32_t >(_nb_spr_bank [i])+"\n"; |
---|
| 209 | str+= toString(MSG_INFORMATION)+" * nb_spr_port_read_by_bank : "+toString<uint32_t >(_nb_spr_port_read_by_bank [i])+"\n"; |
---|
| 210 | str+= toString(MSG_INFORMATION)+" * nb_spr_port_write_by_bank : "+toString<uint32_t >(_nb_spr_port_write_by_bank [i])+"\n"; |
---|
| 211 | str+= toString(MSG_INFORMATION)+" * execution_unit_to_write_unit_priority : "+toString<Tpriority_t>(_execution_unit_to_write_unit_priority[i])+"\n"; |
---|
| 212 | str+= toString(MSG_INFORMATION)+" * read_unit_to_execution_unit_priority : "+toString<Tpriority_t>(_read_unit_to_execution_unit_priority [i])+"\n"; |
---|
| 213 | } |
---|
| 214 | |
---|
| 215 | str+= toString(MSG_INFORMATION)+" -----[ Link ]-------------------------------------\n"; |
---|
| 216 | |
---|
| 217 | for (uint32_t i=0; i<_nb_thread; ++i) |
---|
| 218 | str+= toString(MSG_INFORMATION)+" * link_context_with_thread ["+toString(i)+"] -> ["+toString(_link_context_with_thread [i].first)+"]["+toString(_link_context_with_thread [i].second)+"]\n";//[nb_thread] |
---|
| 219 | for (uint32_t i=0; i<_nb_decod_bloc; ++i) |
---|
| 220 | str+= toString(MSG_INFORMATION)+" * link_decod_unit_with_decod_bloc ["+toString(i)+"] -> ["+toString(_link_decod_unit_with_decod_bloc [i].first)+"]["+toString(_link_decod_unit_with_decod_bloc [i].second)+"]\n";//[nb_decod_bloc] |
---|
| 221 | for (uint32_t i=0; i<_nb_rename_bloc; ++i) |
---|
| 222 | str+= toString(MSG_INFORMATION)+" * link_rename_unit_with_rename_bloc ["+toString(i)+"] -> ["+toString(_link_rename_unit_with_rename_bloc [i].first)+"]["+toString(_link_rename_unit_with_rename_bloc [i].second)+"]\n";//[nb_rename_bloc] |
---|
| 223 | for (uint32_t i=0; i<_nb_read_bloc; ++i) |
---|
| 224 | str+= toString(MSG_INFORMATION)+" * link_read_unit_with_read_bloc ["+toString(i)+"] -> ["+toString(_link_read_unit_with_read_bloc [i].first)+"]["+toString(_link_read_unit_with_read_bloc [i].second)+"]\n";//[nb_read_bloc] |
---|
| 225 | for (uint32_t i=0; i<_nb_write_bloc; ++i) |
---|
| 226 | str+= toString(MSG_INFORMATION)+" * link_write_unit_with_write_bloc ["+toString(i)+"] -> ["+toString(_link_write_unit_with_write_bloc [i].first)+"]["+toString(_link_write_unit_with_write_bloc [i].second)+"]\n";//[nb_write_bloc] |
---|
| 227 | for (uint32_t i=0; i<_nb_functionnal_unit; ++i) |
---|
| 228 | str+= toString(MSG_INFORMATION)+" * link_execute_unit_with_functionnal_unit ["+toString(i)+"] -> ["+toString(_link_execute_unit_with_functionnal_unit[i].first)+"]["+toString(_link_execute_unit_with_functionnal_unit[i].second)+"]\n";//[nb_functionnal_unit] |
---|
| 229 | for (uint32_t i=0; i<_nb_load_store_unit;++i) |
---|
| 230 | str+= toString(MSG_INFORMATION)+" * link_execute_unit_with_load_store_unit ["+toString(i)+"] -> ["+toString(_link_execute_unit_with_load_store_unit [i].first)+"]["+toString(_link_execute_unit_with_load_store_unit [i].second)+"]\n";//[nb_load_store_unit] |
---|
| 231 | |
---|
| 232 | for (uint32_t i=0; i<_nb_thread; ++i) |
---|
| 233 | str+= toString(MSG_INFORMATION)+" * link_decod_bloc_with_thread ["+toString(i)+"] -> ["+toString(_link_decod_bloc_with_thread [i])+"]\n";//[nb_thread] |
---|
| 234 | for (uint32_t i=0; i<_nb_front_end; ++i) |
---|
| 235 | str+= toString(MSG_INFORMATION)+" * link_rename_bloc_with_front_end ["+toString(i)+"] -> ["+toString(_link_rename_bloc_with_front_end [i])+"]\n";//[nb_front_end] |
---|
| 236 | for (uint32_t i=0; i<_nb_thread; ++i) |
---|
| 237 | str+= toString(MSG_INFORMATION)+" * link_load_store_unit_with_thread ["+toString(i)+"] -> ["+toString(_link_load_store_unit_with_thread [i])+"]\n";//[nb_thread] |
---|
| 238 | for (uint32_t i=0; i<_nb_thread; ++i) |
---|
| 239 | str+= toString(MSG_INFORMATION)+" * link_icache_port_with_thread ["+toString(i)+"] -> ["+toString(_link_icache_port_with_thread [i])+"]\n";//[nb_thread] |
---|
| 240 | for (uint32_t i=0; i<_nb_load_store_unit; ++i) |
---|
| 241 | for (uint32_t j=0; j<_nb_cache_port[i]; ++j) |
---|
| 242 | str+= toString(MSG_INFORMATION)+" * link_dcache_port_with_load_store_unit ["+toString(i)+"]["+toString(j)+"] -> ["+toString(_link_dcache_port_with_load_store_unit [i][j])+"]\n";//[nb_load_store_unit][nb_cache_port] |
---|
| 243 | |
---|
| 244 | |
---|
[138] | 245 | for (uint32_t i=0; i<_nb_load_store_unit; ++i) |
---|
| 246 | str+= toString(MSG_INFORMATION)+" * link_read_bloc_with_load_store_unit ["+toString(i)+"] : "+toString(_link_read_bloc_with_load_store_unit [i])+"\n";//[nb_load_store_unit] |
---|
[88] | 247 | for (uint32_t i=0; i<_nb_read_bloc; ++i) |
---|
| 248 | for (uint32_t j=0; j<_nb_functionnal_unit; ++j) |
---|
| 249 | str+= toString(MSG_INFORMATION)+" * link_read_bloc_and_functionnal_unit ["+toString(i)+"]["+toString(j)+"] : "+toString(_link_read_bloc_and_functionnal_unit [i][j])+"\n";//[nb_read_bloc][nb_functionnal_unit] |
---|
[138] | 250 | for (uint32_t i=0; i<_nb_load_store_unit; ++i) |
---|
| 251 | str+= toString(MSG_INFORMATION)+" * link_write_bloc_with_load_store_unit ["+toString(i)+"] : "+toString(_link_write_bloc_with_load_store_unit [i])+"\n";//[nb_load_store_unit] |
---|
[88] | 252 | for (uint32_t i=0; i<_nb_write_bloc; ++i) |
---|
| 253 | for (uint32_t j=0; j<_nb_functionnal_unit; ++j) |
---|
| 254 | str+= toString(MSG_INFORMATION)+" * link_write_bloc_and_functionnal_unit ["+toString(i)+"]["+toString(j)+"] : "+toString(_link_write_bloc_and_functionnal_unit[i][j])+"\n";//[nb_write_bloc][nb_functionnal_unit] |
---|
| 255 | for (uint32_t i=0; i<_nb_thread; ++i) |
---|
| 256 | for (uint32_t j=0; j<_nb_functionnal_unit; ++j) |
---|
| 257 | str+= toString(MSG_INFORMATION)+" * link_thread_and_functionnal_unit ["+toString(i)+"]["+toString(j)+"] : "+toString(_link_thread_and_functionnal_unit [i][j])+"\n";//[nb_thread][nb_functionnal_unit] |
---|
| 258 | |
---|
| 259 | str+= toString(MSG_INFORMATION)+" -----[ Dispatch ]---------------------------------\n"; |
---|
| 260 | str+= toString(MSG_INFORMATION)+" * dispatch_priority : "+toString<Tpriority_t >(_dispatch_priority )+"\n"; |
---|
| 261 | str+= toString(MSG_INFORMATION)+" * dispatch_load_balancing : "+toString<Tload_balancing_t>(_dispatch_load_balancing); |
---|
| 262 | |
---|
| 263 | log_end(Core,FUNCTION); |
---|
| 264 | |
---|
| 265 | return str; |
---|
| 266 | }; |
---|
| 267 | |
---|
| 268 | #undef FUNCTION |
---|
| 269 | #define FUNCTION "Core::operator<<" |
---|
| 270 | std::ostream& operator<< (std::ostream& output_stream , |
---|
| 271 | morpheo::behavioural::core::Parameters & x) |
---|
| 272 | { |
---|
| 273 | log_begin(Core,FUNCTION); |
---|
| 274 | |
---|
| 275 | output_stream << x.print(0); |
---|
| 276 | |
---|
| 277 | log_end(Core,FUNCTION); |
---|
| 278 | |
---|
| 279 | return output_stream; |
---|
| 280 | }; |
---|
| 281 | |
---|
| 282 | }; // end namespace core |
---|
| 283 | }; // end namespace behavioural |
---|
| 284 | }; // end namespace morpheo |
---|