00001 /* 00002 * ===================================================================================== 00003 * 00004 * Filename: stats.h 00005 * 00006 * Description: 00007 * 00008 * Version: 1.0 00009 * Created: 09/01/2010 02:36:22 PM 00010 * Revision: none 00011 * Compiler: gcc 00012 * 00013 * Author: Mitchelle Rasquinha (), mitchelle.rasquinha@gatech.edu 00014 * Company: Georgia Institute of Technology 00015 * 00016 * ===================================================================================== 00017 */ 00018 00019 00020 #ifndef _stats_H_INC 00021 #define _stats_H_INC 00022 00023 #include <vector> 00024 #include <iostream> 00025 using namespace std; 00026 00027 typedef unsigned long long int ullint; 00028 typedef unsigned int uint; 00029 extern uint no_nodes, links, vcs; 00030 00031 /* 00032 * ===================================================================================== 00033 * Class: StatRouter 00034 * Description: 00035 * ===================================================================================== 00036 */ 00037 class StatRouter 00038 { 00039 public: 00040 /* ==================== LIFECYCLE ======================================= */ 00041 StatRouter (); /* constructor */ 00042 ~StatRouter(){} 00043 ullint ib_cycles; 00044 ullint rc_cycles; 00045 ullint vca_cycles; 00046 ullint sa_cycles; 00047 ullint st_cycles; 00048 00049 00050 }; /* ----- end of class StatRouter ----- */ 00051 00052 00053 class StatLink 00054 { 00055 public: 00056 StatLink(); 00057 ~StatLink(){} 00058 00059 ullint credits_transferred; 00060 ullint flits_transferred; 00061 }; 00062 00063 class IrisStats 00064 { 00065 private: 00066 00067 public: 00068 vector<StatRouter*> stat_router; 00069 vector<StatLink*> stat_link; 00070 IrisStats(); 00071 ~IrisStats(); 00072 void init(void); 00073 double compute_total_router_dyn_energy(double xx); 00074 double compute_total_buffer_dyn_energy(double en); 00075 double compute_total_arbiter_dyn_energy( double en ); 00076 double compute_total_vc_arbiter_dyn_energy( double en ); 00077 double compute_total_crossbar_dyn_energy( double en ); 00078 double compute_total_link_dyn_energy(double en ); 00079 ullint get_total_ib_cycles(void); 00080 ullint get_total_rc_cycles(void); 00081 ullint get_total_vca_cycles(void); 00082 ullint get_total_sa_cycles(void); 00083 ullint get_total_st_cycles(void); 00084 ullint get_total_credits_passed(void); 00085 ullint get_total_flits_passed(void); 00086 }; 00087 00088 #endif /* ----- #ifndef _stats_H_INC ----- */