diff options
Diffstat (limited to 'ext/mcpat/array.h')
-rw-r--r-- | ext/mcpat/array.h | 86 |
1 files changed, 35 insertions, 51 deletions
diff --git a/ext/mcpat/array.h b/ext/mcpat/array.h index 8c6124d46..6a4c0b6cb 100644 --- a/ext/mcpat/array.h +++ b/ext/mcpat/array.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,7 +26,7 @@ * 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. * ***************************************************************************/ @@ -43,59 +44,42 @@ using namespace std; -class ArrayST :public Component{ - public: - ArrayST(){}; - ArrayST(const InputParameter *configure_interface, string _name, enum Device_ty device_ty_, bool opt_local_=true, enum Core_type core_ty_=Inorder, bool _is_default=true); - - InputParameter l_ip; - string name; - enum Device_ty device_ty; - bool opt_local; - enum Core_type core_ty; - bool is_default; - uca_org_t local_result; +class ArrayST : public McPATComponent { +public: + static double area_efficiency_threshold; - statsDef tdp_stats; - statsDef rtp_stats; - statsDef stats_t; - powerDef power_t; + // These are used for the CACTI interface. + static int ed; + static int delay_wt; + static int cycle_time_wt; + static int area_wt; + static int dynamic_power_wt; + static int leakage_power_wt; + static int delay_dev; + static int cycle_time_dev; + static int area_dev; + static int dynamic_power_dev; + static int leakage_power_dev; + static int cycle_time_dev_threshold; - virtual void optimize_array(); - virtual void compute_base_power(); - virtual ~ArrayST(); + InputParameter l_ip; + enum Device_ty device_ty; + bool opt_local; + enum Core_type core_ty; + bool is_default; + uca_org_t local_result; + statsDef stats_t; - void leakage_feedback(double temperature); -}; + ArrayST(XMLNode* _xml_data, const InputParameter *configure_interface, + string _name, enum Device_ty device_ty_, double _clockRate = 0.0f, + bool opt_local_ = true, + enum Core_type core_ty_ = Inorder, bool _is_default = true); + void computeArea(); + void computeEnergy(); + void compute_base_power(); + ~ArrayST(); -class InstCache :public Component{ -public: - ArrayST* caches; - ArrayST* missb; - ArrayST* ifb; - ArrayST* prefetchb; - powerDef power_t;//temp value holder for both (max) power and runtime power - InstCache(){caches=0;missb=0;ifb=0;prefetchb=0;}; - ~InstCache(){ - if (caches) {//caches->local_result.cleanup(); - delete caches; caches=0;} - if (missb) {//missb->local_result.cleanup(); - delete missb; missb=0;} - if (ifb) {//ifb->local_result.cleanup(); - delete ifb; ifb=0;} - if (prefetchb) {//prefetchb->local_result.cleanup(); - delete prefetchb; prefetchb=0;} - }; -}; - -class DataCache :public InstCache{ -public: - ArrayST* wbb; - DataCache(){wbb=0;}; - ~DataCache(){ - if (wbb) {//wbb->local_result.cleanup(); - delete wbb; wbb=0;} - }; + void leakage_feedback(double temperature); }; -#endif /* TLB_H_ */ +#endif /* ARRAY_H_ */ |