00001 /* 00002 * mult_panalyzer.h - branch prediction power analysis 00003 * 00004 * 00005 * This file is a part of the PowerAnalyzer tool suite written by 00006 * Taeho Kgil as a part of the PowerAnalyzer Project. 00007 * 00008 * The tool suite is currently maintained by Taeho Kgil. 00009 * 00010 * Copyright (C) 2003 by Taeho Kgil 00011 * 00012 * Revised by Taeho Kgil 00013 * 00014 * This source file is distributed "as is" in the hope that it will be 00015 * useful. The tool set comes with no warranty, and no author or 00016 * distributor accepts any responsibility for the consequences of its 00017 * use. 00018 * 00019 * Everyone is granted permission to copy, modify and redistribute 00020 * this tool set under the following conditions: 00021 * 00022 * This source code is distributed for non-commercial use only. 00023 * Please contact the maintainer for restrictions applying to 00024 * commercial use. 00025 * 00026 * Permission is granted to anyone to make or distribute copies 00027 * of this source code, either as received or modified, in any 00028 * medium, provided that all copyright notices, permission and 00029 * nonwarranty notices are preserved, and that the distributor 00030 * grants the recipient permission for further redistribution as 00031 * permitted by this document. 00032 * 00033 * Permission is granted to distribute this file in compiled 00034 * or executable form under the same conditions that apply for 00035 * source code, provided that either: 00036 * 00037 * A. it is accompanied by the corresponding machine-readable 00038 * source code, 00039 * B. it is accompanied by a written offer, with no time limit, 00040 * to give anyone a machine-readable copy of the corresponding 00041 * source code in return for reimbursement of the cost of 00042 * distribution. This written offer must permit verbatim 00043 * duplication by anyone, or 00044 * C. it is distributed by someone who received only the 00045 * executable form, and is accompanied by a copy of the 00046 * written offer of source code that they received concurrently. 00047 * 00048 * In other words, you are welcome to use, share and improve this 00049 * source file. You are forbidden to forbid anyone else to use, share 00050 * and improve what you give them. 00051 */ 00052 00053 #ifndef MULT_PANALYZER_H 00054 #define MULT_PANALYZER_H 00055 #include "../host.h" 00056 #include "../stats.h" 00057 00058 00059 /* number of virtual address */ 00060 #define NVA 40 00061 /* number of physicalo address */ 00062 #define NPA 32 00063 00064 /* mult power specification type: 00065 * contain all the info for analyzing mult pdissipation */ 00066 typedef struct _fu_mult_pspec_t { 00067 char *name; /* name */ 00068 double freq, volt; /* operating frequency/supply voltage */ 00069 double iCeff; 00070 unsigned long mult_access; 00071 double mult_total_power; 00072 double mult_power; 00073 double max_power; 00074 double avg_power; 00075 double pipe_mult_power[3]; 00076 } fu_mult_pspec_t; 00077 00078 /* create level 1 power model mult panalyzer database 00079 * return an allocated location pointer. 00080 * caution: please deallocate the mult space */ 00081 fu_mult_pspec_t * 00082 create_mult_panalyzer( 00083 char *name, /* mult name */ 00084 int freq,double volt, 00085 double iCeff); 00086 00087 /* level 1 power model mult panalyzer */ 00088 void 00089 mult_panalyzer( 00090 fu_mult_pspec_t *pspec, 00091 tick_t now 00092 ); 00093 #endif /* MULT_PANALYZER_H */