summaryrefslogtreecommitdiff
path: root/src/mem/ruby/network/garnet/fixed-pipeline/Router_d.hh
diff options
context:
space:
mode:
Diffstat (limited to 'src/mem/ruby/network/garnet/fixed-pipeline/Router_d.hh')
-rw-r--r--src/mem/ruby/network/garnet/fixed-pipeline/Router_d.hh83
1 files changed, 45 insertions, 38 deletions
diff --git a/src/mem/ruby/network/garnet/fixed-pipeline/Router_d.hh b/src/mem/ruby/network/garnet/fixed-pipeline/Router_d.hh
index f1b1e26aa..4af37cdbe 100644
--- a/src/mem/ruby/network/garnet/fixed-pipeline/Router_d.hh
+++ b/src/mem/ruby/network/garnet/fixed-pipeline/Router_d.hh
@@ -28,8 +28,8 @@
* Authors: Niket Agarwal
*/
-#ifndef ROUTER_D_H
-#define ROUTER_D_H
+#ifndef __MEM_RUBY_NETWORK_GARNET_FIXED_PIPELINE_ROUTER_D_HH__
+#define __MEM_RUBY_NETWORK_GARNET_FIXED_PIPELINE_ROUTER_D_HH__
#include <iostream>
#include <vector>
@@ -49,51 +49,58 @@ class VCallocator_d;
class SWallocator_d;
class Switch_d;
-class Router_d {
-public:
- Router_d(int id, GarnetNetwork_d *network_ptr);
+class Router_d
+{
+ public:
+ Router_d(int id, GarnetNetwork_d *network_ptr);
- ~Router_d();
+ ~Router_d();
- void init();
- void addInPort(NetworkLink_d *link, CreditLink_d *credit_link);
- void addOutPort(NetworkLink_d *link, const NetDest& routing_table_entry, int link_weight, CreditLink_d *credit_link);
- int get_num_vcs() { return m_num_vcs; }
- int get_vc_per_vnet() {return m_vc_per_vnet; }
- int get_num_inports() { return m_input_unit.size(); }
- int get_num_outports() { return m_output_unit.size(); }
- void printConfig(std::ostream& out);
- int get_id() { return m_id; }
- GarnetNetwork_d* get_net_ptr() { return m_network_ptr; }
+ void init();
+ void addInPort(NetworkLink_d *link, CreditLink_d *credit_link);
+ void addOutPort(NetworkLink_d *link, const NetDest& routing_table_entry,
+ int link_weight, CreditLink_d *credit_link);
- std::vector<InputUnit_d *>& get_inputUnit_ref() { return m_input_unit; }
- std::vector<OutputUnit_d *>& get_outputUnit_ref() { return m_output_unit; }
+ int get_num_vcs() { return m_num_vcs; }
+ int get_vc_per_vnet() { return m_vc_per_vnet; }
+ int get_num_inports() { return m_input_unit.size(); }
+ int get_num_outports() { return m_output_unit.size(); }
+ int get_id() { return m_id; }
- void update_sw_winner(int inport, flit_d *t_flit);
- void update_incredit(int in_port, int in_vc, int credit);
- void route_req(flit_d *t_flit, InputUnit_d* in_unit, int invc);
- void vcarb_req();
- void swarb_req();
+ GarnetNetwork_d* get_net_ptr() { return m_network_ptr; }
+ std::vector<InputUnit_d *>& get_inputUnit_ref() { return m_input_unit; }
+ std::vector<OutputUnit_d *>& get_outputUnit_ref() { return m_output_unit; }
- void power_router_initialize(power_router *router, power_router_info *info);
+ void update_sw_winner(int inport, flit_d *t_flit);
+ void update_incredit(int in_port, int in_vc, int credit);
+ void route_req(flit_d *t_flit, InputUnit_d* in_unit, int invc);
+ void vcarb_req();
+ void swarb_req();
+ void printConfig(std::ostream& out);
+
+ void power_router_initialize(power_router *router,
+ power_router_info *info);
double calculate_power();
double calculate_offline_power(power_router*, power_router_info*);
- void calculate_performance_numbers();
+ void calculate_performance_numbers();
-private:
- int m_id;
- int m_virtual_networks, m_num_vcs, m_vc_per_vnet;
- GarnetNetwork_d *m_network_ptr;
- int m_flit_width;
+ private:
+ int m_id;
+ int m_virtual_networks, m_num_vcs, m_vc_per_vnet;
+ GarnetNetwork_d *m_network_ptr;
+ int m_flit_width;
- double buf_read_count, buf_write_count, crossbar_count, vc_local_arbit_count, vc_global_arbit_count, sw_local_arbit_count, sw_global_arbit_count;
+ double buf_read_count, buf_write_count;
+ double crossbar_count;
+ double vc_local_arbit_count, vc_global_arbit_count;
+ double sw_local_arbit_count, sw_global_arbit_count;
- std::vector<InputUnit_d *> m_input_unit;
- std::vector<OutputUnit_d *> m_output_unit;
- RoutingUnit_d *m_routing_unit;
- VCallocator_d *m_vc_alloc;
- SWallocator_d *m_sw_alloc;
- Switch_d *m_switch;
+ std::vector<InputUnit_d *> m_input_unit;
+ std::vector<OutputUnit_d *> m_output_unit;
+ RoutingUnit_d *m_routing_unit;
+ VCallocator_d *m_vc_alloc;
+ SWallocator_d *m_sw_alloc;
+ Switch_d *m_switch;
};
-#endif
+#endif // __MEM_RUBY_NETWORK_GARNET_FIXED_PIPELINE_ROUTER_D_HH__