diff options
Diffstat (limited to 'ext/mcpat/noc.h')
-rw-r--r-- | ext/mcpat/noc.h | 90 |
1 files changed, 58 insertions, 32 deletions
diff --git a/ext/mcpat/noc.h b/ext/mcpat/noc.h index 31b5b3b2e..291712b9d 100644 --- a/ext/mcpat/noc.h +++ b/ext/mcpat/noc.h @@ -2,6 +2,7 @@ * McPAT * SOFTWARE LICENSE AGREEMENT * Copyright 2012 Hewlett-Packard Development Company, L.P. + * Copyright (c) 2010-2013 Advanced Micro Devices, Inc. * All Rights Reserved * * Redistribution and use in source and binary forms, with or without @@ -25,13 +26,13 @@ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.” + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * ***************************************************************************/ #ifndef NOC_H_ #define NOC_H_ -#include "XML_Parse.h" + #include "array.h" #include "basic_components.h" #include "interconnect.h" @@ -39,37 +40,62 @@ #include "parameter.h" #include "router.h" -class NoC :public Component { - public: +class OnChipNetworkParameters { +public: + double clockRate; + int flit_size; + int input_ports; + int output_ports; + int min_ports; + int global_linked_ports; + int virtual_channel_per_port; + int input_buffer_entries_per_vc; + int horizontal_nodes; + int vertical_nodes; + int total_nodes; + double link_throughput; + double link_latency; + double chip_coverage; + double route_over_perc; + bool has_global_link; + bool type; + double M_traffic_pattern; + double link_base_width; + double link_base_height; + int link_start_wiring_level; +}; + +class OnChipNetworkStatistics { +public: + double duty_cycle; + double total_access; +}; + +class OnChipNetwork : public McPATComponent { +public: + Router* router; + Interconnect* link_bus; + Component link_bus_tot_per_Router; + + int ithNoC; + InputParameter interface_ip; + double link_len; + double scktRatio, chip_PR_overhead, macro_PR_overhead; + OnChipNetworkParameters noc_params; + OnChipNetworkStatistics noc_stats; + uca_org_t local_result; + statsDef stats_t; + bool link_bus_exist; + bool router_exist; + string link_name; - ParseXML *XML; - int ithNoC; - InputParameter interface_ip; - double link_len; - double executionTime; - double scktRatio, chip_PR_overhead, macro_PR_overhead; - Router * router; - interconnect * link_bus; - NoCParam nocdynp; - uca_org_t local_result; - statsDef tdp_stats; - statsDef rtp_stats; - statsDef stats_t; - powerDef power_t; - Component link_bus_tot_per_Router; - bool link_bus_exist; - bool router_exist; - string name, link_name; - double M_traffic_pattern; - NoC(ParseXML *XML_interface, int ithNoC_, InputParameter* interface_ip_, double M_traffic_pattern_ = 0.6,double link_len_=0); - void set_noc_param(); - void computeEnergy(bool is_tdp=true); - void displayEnergy(uint32_t indent = 0,int plevel = 100, bool is_tdp=true); - void init_link_bus(double link_len_); - void init_router(); - void computeEnergy_link_bus(bool is_tdp=true); - void displayEnergy_link_bus(uint32_t indent = 0,int plevel = 100, bool is_tdp=true); - ~NoC(); + OnChipNetwork(XMLNode* _xml_data, int ithNoC_, + InputParameter* interface_ip_); + void set_param_stats(); + void computeEnergy(); + void init_link_bus(); + void init_router(); + ~OnChipNetwork(); }; #endif /* NOC_H_ */ |