summaryrefslogtreecommitdiff
path: root/ext/mcpat/noc.h
diff options
context:
space:
mode:
Diffstat (limited to 'ext/mcpat/noc.h')
-rw-r--r--ext/mcpat/noc.h90
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_ */