00001 /* 00002 * fpu_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 FPU_PANALYZER_H 00054 #define FPU_PANALYZER_H 00055 #include "../host.h" 00056 #include "../stats.h" 00057 00058 00059 00060 /* number of virtual address */ 00061 #define NVA 40 00062 /* number of physicalo address */ 00063 #define NPA 32 00064 00065 /* fpu power specification type: 00066 * contain all the info for analyzing fpu pdissipation */ 00067 typedef struct _fu_fpu_pspec_t { 00068 char *name; /* name */ 00069 double freq, volt; /* operating frequency/supply voltage */ 00070 double iCeff; 00071 unsigned long fpu_access; 00072 double fpu_total_power; 00073 double fpu_power; 00074 double max_power; 00075 double avg_power; 00076 double pipe_fpu_power[3]; 00077 } fu_fpu_pspec_t; 00078 00079 /* create power model fpu panalyzer database 00080 * return an allocated location pointer. 00081 * caution: please deallocate the fpu space */ 00082 fu_fpu_pspec_t * 00083 create_fpu_panalyzer( 00084 char *name, /* fpu name */ 00085 int freq,double volt, 00086 double iCeff); 00087 00088 /* power model fpu panalyzer */ 00089 void 00090 fpu_panalyzer( 00091 fu_fpu_pspec_t *pspec, 00092 tick_t now 00093 ); 00094 #endif /* FPU_PANALYZER_H */