00001 /* 00002 * alu_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 ALU_PANALYZER_H 00054 #define ALU_PANALYZER_H 00055 00056 00057 /* number of virtual address */ 00058 #define NVA 40 00059 /* number of physicalo address */ 00060 #define NPA 32 00061 00062 /* alu power specification type: 00063 * contain all the info for analyzing alu pdissipation */ 00064 typedef struct _fu_lv1_alu_pspec_t { 00065 char *name; /* name */ 00066 double freq, volt; /* operating frequency/supply voltage */ 00067 double iCeff; 00068 unsigned long alu_access; 00069 double alu_total_power; 00070 double alu_power; 00071 double max_power; 00072 } fu_lv1_alu_pspec_t; 00073 00074 /* create level 1 power model alu panalyzer database 00075 * return an allocated location pointer. 00076 * caution: please deallocate the alu space */ 00077 fu_lv1_alu_pspec_t * 00078 create_alu_panalyzer( 00079 char *name, /* alu name */ 00080 int freq,double volt, 00081 double iCeff); 00082 00083 /* level 1 power model alu panalyzer */ 00084 void 00085 lv1_alu_panalyzer( 00086 fu_lv1_alu_pspec_t *pspec 00087 ); 00088 #endif /* ALU_PANALYZER_H */