[88] | 1 | /* |
---|
| 2 | * $Id: Parameters_print.cpp 88 2008-12-10 18:31:39Z rosiere $ |
---|
| 3 | * |
---|
| 4 | * [ Description ] |
---|
| 5 | * |
---|
| 6 | */ |
---|
| 7 | |
---|
| 8 | #include "Behavioural/Core/Multi_OOO_Engine/OOO_Engine/include/Parameters.h" |
---|
| 9 | #include "Behavioural/include/XML.h" |
---|
| 10 | |
---|
| 11 | namespace morpheo { |
---|
| 12 | namespace behavioural { |
---|
| 13 | namespace core { |
---|
| 14 | namespace multi_ooo_engine { |
---|
| 15 | namespace ooo_engine { |
---|
| 16 | |
---|
| 17 | |
---|
| 18 | #undef FUNCTION |
---|
| 19 | #define FUNCTION "OOO_Engine::print" |
---|
| 20 | std::string Parameters::print (uint32_t depth) |
---|
| 21 | { |
---|
| 22 | log_begin(OOO_Engine,FUNCTION); |
---|
| 23 | |
---|
| 24 | std::string str = ""; |
---|
| 25 | |
---|
| 26 | str+= toString(MSG_INFORMATION)+" * nb_front_end : "+toString<uint32_t >(_nb_front_end )+"\n"; |
---|
| 27 | for (uint32_t i=0; i<_nb_front_end; ++i) |
---|
| 28 | str+= toString(MSG_INFORMATION)+" * nb_context ["+toString(i)+"] : "+toString<uint32_t >(_nb_context [i] )+"\n";//[nb_front_end] |
---|
| 29 | str+= toString(MSG_INFORMATION)+" * nb_rename_unit : "+toString<uint32_t >(_nb_rename_unit )+"\n"; |
---|
| 30 | str+= toString(MSG_INFORMATION)+" * nb_execute_loop : "+toString<uint32_t >(_nb_execute_loop )+"\n"; |
---|
| 31 | for (uint32_t i=0; i<_nb_front_end; ++i) |
---|
| 32 | str+= toString(MSG_INFORMATION)+" * nb_inst_decod ["+toString(i)+"] : "+toString<uint32_t >(_nb_inst_decod [i] )+"\n";//[nb_front_end] |
---|
| 33 | for (uint32_t i=0; i<_nb_rename_unit; ++i) |
---|
| 34 | str+= toString(MSG_INFORMATION)+" * nb_inst_insert ["+toString(i)+"] : "+toString<uint32_t >(_nb_inst_insert [i] )+"\n";//[nb_rename_unit] |
---|
| 35 | for (uint32_t i=0; i<_nb_rename_unit; ++i) |
---|
| 36 | str+= toString(MSG_INFORMATION)+" * nb_inst_retire ["+toString(i)+"] : "+toString<uint32_t >(_nb_inst_retire [i] )+"\n";//[nb_rename_unit] |
---|
| 37 | str+= toString(MSG_INFORMATION)+" * nb_inst_issue : "+toString<uint32_t >(_nb_inst_issue )+"\n"; |
---|
| 38 | for (uint32_t i=0; i<_nb_execute_loop; ++i) |
---|
| 39 | str+= toString(MSG_INFORMATION)+" * nb_inst_execute ["+toString(i)+"] : "+toString<uint32_t >(_nb_inst_execute [i] )+"\n";//[nb_execute_loop] |
---|
| 40 | str+= toString(MSG_INFORMATION)+" * nb_inst_reexecute : "+toString<uint32_t >(_nb_inst_reexecute )+"\n"; |
---|
| 41 | str+= toString(MSG_INFORMATION)+" * nb_inst_commit : "+toString<uint32_t >(_nb_inst_commit )+"\n"; |
---|
| 42 | str+= toString(MSG_INFORMATION)+" * nb_inst_branch_complete : "+toString<uint32_t >(_nb_inst_branch_complete )+"\n"; |
---|
| 43 | for (uint32_t i=0; i<_nb_front_end; ++i) |
---|
| 44 | for (uint32_t j=0; j<_nb_context[i]; ++j) |
---|
| 45 | str+= toString(MSG_INFORMATION)+" * nb_branch_speculated ["+toString(i)+"]["+toString(j)+"] : "+toString<uint32_t >(_nb_branch_speculated [i][j] )+"\n";//[nb_front_end][nb_context] |
---|
| 46 | str+= toString(MSG_INFORMATION)+" * nb_rename_unit_select : "+toString<uint32_t >(_nb_rename_unit_select )+"\n"; |
---|
| 47 | str+= toString(MSG_INFORMATION)+" * nb_execute_loop_select : "+toString<uint32_t >(_nb_execute_loop_select )+"\n"; |
---|
| 48 | str+= toString(MSG_INFORMATION)+" * size_general_data : "+toString<uint32_t >(_size_general_data )+"\n"; |
---|
| 49 | str+= toString(MSG_INFORMATION)+" * size_special_data : "+toString<uint32_t >(_size_special_data )+"\n"; |
---|
| 50 | for (uint32_t i=0; i<_nb_front_end; ++i) |
---|
| 51 | str+= toString(MSG_INFORMATION)+" * link_rename_unit_with_front_end ["+toString(i)+"] : "+toString<uint32_t >(_link_rename_unit_with_front_end[i])+"\n";//[nb_front_end] |
---|
| 52 | str+= toString(MSG_INFORMATION)+" * size_re_order_buffer : "+toString<uint32_t >(_size_re_order_buffer )+"\n"; |
---|
| 53 | str+= toString(MSG_INFORMATION)+" * nb_re_order_buffer_bank : "+toString<uint32_t >(_nb_re_order_buffer_bank )+"\n"; |
---|
| 54 | str+= toString(MSG_INFORMATION)+" * commit_priority : "+toString<Tpriority_t >(_commit_priority )+"\n"; |
---|
| 55 | str+= toString(MSG_INFORMATION)+" * commit_load_balancing : "+toString<Tload_balancing_t>(_commit_load_balancing )+"\n"; |
---|
| 56 | str+= toString(MSG_INFORMATION)+" * size_issue_queue : "+toString<uint32_t >(_size_issue_queue )+"\n"; |
---|
| 57 | str+= toString(MSG_INFORMATION)+" * nb_issue_queue_bank : "+toString<uint32_t >(_nb_issue_queue_bank )+"\n"; |
---|
| 58 | str+= toString(MSG_INFORMATION)+" * issue_priority : "+toString<Tpriority_t >(_issue_priority )+"\n"; |
---|
| 59 | str+= toString(MSG_INFORMATION)+" * issue_load_balancing : "+toString<Tload_balancing_t>(_issue_load_balancing )+"\n"; |
---|
| 60 | for (uint32_t i=0; i<_nb_rename_unit; ++i) |
---|
| 61 | for (uint32_t j=0; j<_nb_inst_issue ; ++j) |
---|
| 62 | str+= toString(MSG_INFORMATION)+" * table_routing ["+toString(i)+"]["+toString(j)+"] : "+toString<bool >(_table_routing [i][j] )+"\n";//[nb_rename_unit][nb_inst_issue] |
---|
| 63 | for (uint32_t i=0; i<_nb_inst_issue ; ++i) |
---|
| 64 | for (uint32_t j=0; j<_nb_type; ++j) |
---|
| 65 | str+= toString(MSG_INFORMATION)+" * table_issue_type ["+toString(i)+"]["+toString_type(j)+"] : "+toString<bool >(_table_issue_type [i][j] )+"\n";//[nb_inst_issue][nb_type] |
---|
| 66 | str+= toString(MSG_INFORMATION)+" * size_reexecute_queue : "+toString<uint32_t >(_size_reexecute_queue )+"\n"; |
---|
| 67 | str+= toString(MSG_INFORMATION)+" * reexecute_priority : "+toString<Tpriority_t >(_reexecute_priority )+"\n"; |
---|
| 68 | str+= toString(MSG_INFORMATION)+" * reexecute_load_balancing : "+toString<Tload_balancing_t>(_reexecute_load_balancing )+"\n"; |
---|
| 69 | for (uint32_t i=0; i<_nb_rename_unit; ++i) |
---|
| 70 | str+= toString(MSG_INFORMATION)+" * rename_select_priority ["+toString(i)+"] : "+toString<Tpriority_t >(_rename_select_priority [i])+"\n";//[nb_rename_unit] |
---|
| 71 | for (uint32_t i=0; i<_nb_rename_unit; ++i) |
---|
| 72 | str+= toString(MSG_INFORMATION)+" * rename_select_load_balancing ["+toString(i)+"] : "+toString<Tload_balancing_t>(_rename_select_load_balancing [i])+"\n";//[nb_rename_unit] |
---|
| 73 | for (uint32_t i=0; i<_nb_rename_unit; ++i) |
---|
| 74 | str+= toString(MSG_INFORMATION)+" * rename_select_nb_front_end_select ["+toString(i)+"] : "+toString<uint32_t >(_rename_select_nb_front_end_select[i])+"\n";//[nb_rename_unit] |
---|
| 75 | for (uint32_t i=0; i<_nb_rename_unit; ++i) |
---|
| 76 | str+= toString(MSG_INFORMATION)+" * nb_general_register ["+toString(i)+"] : "+toString<uint32_t >(_nb_general_register [i])+"\n";//[nb_rename_unit] |
---|
| 77 | for (uint32_t i=0; i<_nb_rename_unit; ++i) |
---|
| 78 | str+= toString(MSG_INFORMATION)+" * nb_special_register ["+toString(i)+"] : "+toString<uint32_t >(_nb_special_register [i])+"\n";//[nb_rename_unit] |
---|
| 79 | for (uint32_t i=0; i<_nb_rename_unit; ++i) |
---|
| 80 | str+= toString(MSG_INFORMATION)+" * nb_reg_free ["+toString(i)+"] : "+toString<uint32_t >(_nb_reg_free [i])+"\n";//[nb_rename_unit] |
---|
| 81 | for (uint32_t i=0; i<_nb_rename_unit; ++i) |
---|
| 82 | str+= toString(MSG_INFORMATION)+" * nb_rename_unit_bank ["+toString(i)+"] : "+toString<uint32_t >(_nb_rename_unit_bank [i])+"\n";//[nb_rename_unit] |
---|
| 83 | for (uint32_t i=0; i<_nb_rename_unit; ++i) |
---|
| 84 | str+= toString(MSG_INFORMATION)+" * size_read_counter ["+toString(i)+"] : "+toString<uint32_t >(_size_read_counter [i])+"\n";//[nb_rename_unit] |
---|
| 85 | for (uint32_t i=0; i<_nb_rename_unit; ++i) |
---|
| 86 | str+= toString(MSG_INFORMATION)+" * nb_load_store_queue ["+toString(i)+"] : "+toString<uint32_t >(_nb_load_store_queue [i])+"\n";//[nb_rename_unit] |
---|
| 87 | for (uint32_t i=0; i<_nb_rename_unit; ++i) |
---|
| 88 | for (uint32_t j=0; j<_nb_load_store_queue[i]; ++j) |
---|
| 89 | str+= toString(MSG_INFORMATION)+" * size_store_queue ["+toString(i)+"]["+toString(j)+"] : "+toString<uint32_t >(_size_store_queue [i][j])+"\n";//[nb_rename_unit][nb_load_store_queue] |
---|
| 90 | for (uint32_t i=0; i<_nb_rename_unit; ++i) |
---|
| 91 | for (uint32_t j=0; j<_nb_load_store_queue[i]; ++j) |
---|
| 92 | str+= toString(MSG_INFORMATION)+" * size_load_queue ["+toString(i)+"]["+toString(j)+"] : "+toString<uint32_t >(_size_load_queue [i][j])+"\n";//[nb_rename_unit][nb_load_store_queue] |
---|
| 93 | for (uint32_t i=0; i<_nb_front_end; ++i) |
---|
| 94 | for (uint32_t j=0; j<_nb_context[i]; ++j) |
---|
| 95 | str+= toString(MSG_INFORMATION)+" * link_load_store_unit_with_thread ["+toString(i)+"]["+toString(j)+"] : "+toString<uint32_t >(_link_load_store_unit_with_thread [i][j])+"\n";//[nb_front_end][nb_context] |
---|
| 96 | for (uint32_t i=0; i<_nb_front_end; ++i) |
---|
| 97 | for (uint32_t j=0; j<_nb_context[i]; ++j) |
---|
| 98 | for (uint32_t k=0; k<NB_GROUP; ++k) |
---|
| 99 | str+= toString(MSG_INFORMATION)+" * implement_group ["+toString(i)+"]["+toString(j)+"]["+toString(k)+"] : "+toString<bool >(_implement_group [i][j][k])+"\n";//[nb_front_end][nb_context][NB_GROUP] |
---|
| 100 | |
---|
| 101 | // XML xml ("ooo_engine"); |
---|
| 102 | |
---|
| 103 | // xml.balise_open("ooo_engine"); |
---|
| 104 | // // xml.singleton_begin(""); xml.attribut("value",toString(_)); xml.singleton_end(); |
---|
| 105 | // xml.balise_close(); |
---|
| 106 | |
---|
| 107 | log_end(OOO_Engine,FUNCTION); |
---|
| 108 | |
---|
| 109 | // return xml.get_body(depth); |
---|
| 110 | return str; |
---|
| 111 | }; |
---|
| 112 | |
---|
| 113 | #undef FUNCTION |
---|
| 114 | #define FUNCTION "OOO_Engine::operator<<" |
---|
| 115 | std::ostream& operator<< (std::ostream& output_stream , |
---|
| 116 | morpheo::behavioural::core::multi_ooo_engine::ooo_engine::Parameters & x) |
---|
| 117 | { |
---|
| 118 | log_begin(OOO_Engine,FUNCTION); |
---|
| 119 | |
---|
| 120 | output_stream << x.print(0); |
---|
| 121 | |
---|
| 122 | log_end(OOO_Engine,FUNCTION); |
---|
| 123 | |
---|
| 124 | return output_stream; |
---|
| 125 | }; |
---|
| 126 | |
---|
| 127 | }; // end namespace ooo_engine |
---|
| 128 | }; // end namespace multi_ooo_engine |
---|
| 129 | }; // end namespace core |
---|
| 130 | |
---|
| 131 | }; // end namespace behavioural |
---|
| 132 | }; // end namespace morpheo |
---|