source: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/src/Parameters_print.cpp @ 88

Last change on this file since 88 was 88, checked in by rosiere, 16 years ago

Almost complete design
with Test and test platform

  • Property svn:keywords set to Id
File size: 10.1 KB
Line 
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
11namespace morpheo                    {
12namespace behavioural {
13namespace core {
14namespace multi_ooo_engine {
15namespace 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             
Note: See TracBrowser for help on using the repository browser.