1 | /* |
---|
2 | * $Id: Parameters_print.cpp 112 2009-03-18 22:36:26Z 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(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 |
---|