source: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/src/Parameters_print.cpp @ 138

Last change on this file since 138 was 136, checked in by rosiere, 15 years ago

1) Add new algo in ifetch queue
2) Add Cancel bit
3) new config

  • Property svn:keywords set to Id
File size: 7.9 KB
Line 
1/*
2 * $Id: Parameters_print.cpp 136 2009-10-20 18:52:15Z rosiere $
3 *
4 * [ Description ]
5 *
6 */
7
8#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/include/Parameters.h"
9#include "Behavioural/include/XML.h"
10
11namespace morpheo                    {
12namespace behavioural {
13namespace core {
14namespace multi_execute_loop {
15namespace execute_loop {
16
17
18#undef  FUNCTION
19#define FUNCTION "Execute_loop::print"
20  std::string Parameters::print (uint32_t depth)
21  {
22    log_printf(FUNC,Execute_loop,FUNCTION,"Begin");
23
24    XML xml ("execute_loop");
25
26    xml.balise_open("execute_loop");
27    xml.singleton_begin("nb_read_unit                         "); xml.attribut("value",toString(_nb_read_unit                         )); xml.singleton_end();
28    xml.singleton_begin("nb_functionnal_unit                  "); xml.attribut("value",toString(_nb_functionnal_unit                  )); xml.singleton_end();
29    xml.singleton_begin("nb_load_store_unit                   "); xml.attribut("value",toString(_nb_load_store_unit                   )); xml.singleton_end();
30    xml.singleton_begin("nb_write_unit                        "); xml.attribut("value",toString(_nb_write_unit                        )); xml.singleton_end();
31    xml.singleton_begin("nb_context                           "); xml.attribut("value",toString(_nb_context                           )); xml.singleton_end();
32    xml.singleton_begin("nb_front_end                         "); xml.attribut("value",toString(_nb_front_end                         )); xml.singleton_end();
33    xml.singleton_begin("nb_ooo_engine                        "); xml.attribut("value",toString(_nb_ooo_engine                        )); xml.singleton_end();
34    xml.singleton_begin("nb_packet                            "); xml.attribut("value",toString(_nb_packet                            )); xml.singleton_end();
35    xml.singleton_begin("size_general_data                    "); xml.attribut("value",toString(_size_general_data                    )); xml.singleton_end();
36    xml.singleton_begin("size_special_data                    "); xml.attribut("value",toString(_size_special_data                    )); xml.singleton_end();
37    xml.singleton_begin("nb_gpr_bank                          "); xml.attribut("value",toString(_nb_gpr_bank                          )); xml.singleton_end();
38    xml.singleton_begin("nb_gpr_port_read_by_bank             "); xml.attribut("value",toString(_nb_gpr_port_read_by_bank             )); xml.singleton_end();
39    xml.singleton_begin("nb_gpr_port_write_by_bank            "); xml.attribut("value",toString(_nb_gpr_port_write_by_bank            )); xml.singleton_end();
40    xml.singleton_begin("nb_spr_bank                          "); xml.attribut("value",toString(_nb_spr_bank                          )); xml.singleton_end();
41    xml.singleton_begin("nb_spr_port_read_by_bank             "); xml.attribut("value",toString(_nb_spr_port_read_by_bank             )); xml.singleton_end();
42    xml.singleton_begin("nb_spr_port_write_by_bank            "); xml.attribut("value",toString(_nb_spr_port_write_by_bank            )); xml.singleton_end();
43    xml.singleton_begin("execution_unit_to_write_unit_priority"); xml.attribut("value",toString(_execution_unit_to_write_unit_priority)); xml.singleton_end();
44    xml.singleton_begin("read_unit_to_execution_unit_priority "); xml.attribut("value",toString(_read_unit_to_execution_unit_priority )); xml.singleton_end();
45
46    for (uint32_t i=0; i<_nb_read_unit; i++)
47      {
48        xml.balise_open_begin("component");
49        xml. attribut("type","read_unit");
50        xml. attribut("id"  ,toString(i));
51        xml.balise_open_end();
52        xml. singleton_begin("size_read_queue         "); xml.attribut("value",toString(_size_read_queue          [i])); xml.singleton_end();
53        xml. singleton_begin("size_reservation_station"); xml.attribut("value",toString(_size_reservation_station [i])); xml.singleton_end();
54        xml. singleton_begin("nb_inst_retire          "); xml.attribut("value",toString(_nb_inst_retire           [i])); xml.singleton_end();
55        xml.balise_close();
56      }
57
58    for (uint32_t i=0; i<_nb_load_store_unit; i++)
59      {
60        xml.balise_open_begin("component");
61        xml. attribut("type","load_store_unit");
62        xml. attribut("id"  ,toString(i));
63        xml.balise_open_end();
64        xml. singleton_begin("size_store_queue             "); xml.attribut("value",toString(_size_store_queue             [i])); xml.singleton_end();
65        xml. singleton_begin("size_load_queue              "); xml.attribut("value",toString(_size_load_queue              [i])); xml.singleton_end();
66        xml. singleton_begin("size_speculative_access_queue"); xml.attribut("value",toString(_size_speculative_access_queue[i])); xml.singleton_end();
67        xml. singleton_begin("nb_port_check                "); xml.attribut("value",toString(_nb_port_check                [i])); xml.singleton_end();
68        xml. singleton_begin("speculative_load             "); xml.attribut("value",toString(_speculative_load             [i])); xml.singleton_end();
69        xml. singleton_begin("nb_bypass_memory             "); xml.attribut("value",toString(_nb_bypass_memory             [i])); xml.singleton_end();
70        xml. singleton_begin("nb_cache_port                "); xml.attribut("value",toString(_nb_cache_port                [i])); xml.singleton_end();
71        xml. singleton_begin("nb_inst_memory               "); xml.attribut("value",toString(_nb_inst_memory               [i])); xml.singleton_end();
72        xml.balise_close();
73      }
74
75    for (uint32_t i=0; i<_nb_write_unit; i++)
76      {
77        xml.balise_open_begin("component");
78        xml. attribut("type","write_unit");
79        xml. attribut("id"  ,toString(i));
80        xml.balise_open_end();
81        xml. singleton_begin("size_write_queue  "); xml.attribut("value",toString(_size_write_queue   [i])); xml.singleton_end();
82        xml. singleton_begin("size_execute_queue"); xml.attribut("value",toString(_size_execute_queue [i])); xml.singleton_end();
83        xml. singleton_begin("nb_bypass_write   "); xml.attribut("value",toString(_nb_bypass_write    [i])); xml.singleton_end();
84        xml.balise_close();
85      }
86
87    for (uint32_t i=0; i<_nb_ooo_engine; i++)
88      {
89        xml.balise_open_begin("component");
90        xml. attribut("type","ooo_engine");
91        xml. attribut("id"  ,toString(i));
92        xml.balise_open_end();
93        xml. singleton_begin("nb_general_register"); xml.attribut("value",toString(_nb_general_register [i])); xml.singleton_end();
94        xml. singleton_begin("nb_special_register"); xml.attribut("value",toString(_nb_special_register [i])); xml.singleton_end();
95//      xml. singleton_begin("nb_inst_insert_rob "); xml.attribut("value",toString(_nb_inst_insert_rob  [i])); xml.singleton_end();
96//      xml. singleton_begin("nb_inst_retire_rob "); xml.attribut("value",toString(_nb_inst_retire_rob  [i])); xml.singleton_end();
97        xml.balise_close();
98      }
99
100
101    std::string str = "";
102    for (uint32_t i=0; i<_nb_read_unit; i++)
103      str += _param_read_unit [i]->print(depth+1);
104    for (uint32_t i=0; i<_nb_functionnal_unit; i++)
105      str += _param_functionnal_unit [i]->print(depth+1);
106    for (uint32_t i=0; i<_nb_load_store_unit; i++)
107      str += _param_load_store_unit [i]->print(depth+1);
108    for (uint32_t i=0; i<_nb_write_unit; i++)
109    str += _param_write_unit [i]->print(depth+1);
110    str += _param_read_unit_to_execution_unit->print(depth+1);
111    str += _param_execution_unit_to_write_unit->print(depth+1);
112    str += _param_register_unit->print(depth+1);
113    str += _param_glue->print(depth+1);
114
115    xml.comment("\n"+str);
116
117    xml.balise_close();
118
119    log_printf(FUNC,Execute_loop,FUNCTION,"End");
120   
121    return xml.get_body(depth);
122  };
123
124#undef  FUNCTION
125#define FUNCTION "Execute_loop::operator<<"
126  std::ostream& operator<< (std::ostream& output_stream ,
127                            morpheo::behavioural::core::multi_execute_loop::execute_loop::Parameters & x)
128  {
129    log_printf(FUNC,Execute_loop,FUNCTION,"Begin");
130
131    output_stream << x.print(0);
132   
133    log_printf(FUNC,Execute_loop,FUNCTION,"End");
134
135    return output_stream;
136  };
137
138}; // end namespace execute_loop
139}; // end namespace multi_execute_loop
140}; // end namespace core
141
142}; // end namespace behavioural
143}; // end namespace morpheo             
Note: See TracBrowser for help on using the repository browser.