• Main Page
  • Related Pages
  • Modules
  • Data Structures
  • Files
  • File List
  • Globals

sst/core/techModels/libsim-panalyzer/libpa_lv1/uarch_panalyzer.h

00001 /*
00002 * uarch_panalyzer.h - contains top level panalyzer. This integrate all the
00003 * power dissipation from functional units (e.g., il1 cache, aio).
00004 *
00005 * This file is a part of the PowerAnalyzer tool suite written by
00006 * Nam Sung Kim as a part of the PowerAnalyzer Project.
00007 *  
00008 * The tool suite is currently maintained by Nam Sung Kim.
00009 * 
00010 * Copyright (C) 2001 by Nam Sung Kim
00011 *
00012 * This source file is distributed "as is" in the hope that it will be
00013 * useful.  The tool set comes with no warranty, and no author or
00014 * distributor accepts any responsibility for the consequences of its
00015 * use. 
00016 * 
00017 * Everyone is granted permission to copy, modify and redistribute
00018 * this tool set under the following conditions:
00019 * 
00020 *    This source code is distributed for non-commercial use only. 
00021 *    Please contact the maintainer for restrictions applying to 
00022 *    commercial use.
00023 *
00024 *    Permission is granted to anyone to make or distribute copies
00025 *    of this source code, either as received or modified, in any
00026 *    medium, provided that all copyright notices, permission and
00027 *    nonwarranty notices are preserved, and that the distributor
00028 *    grants the recipient permission for further redistribution as
00029 *    permitted by this document.
00030 *
00031 *    Permission is granted to distribute this file in compiled
00032 *    or executable form under the same conditions that apply for
00033 *    source code, provided that either:
00034 *
00035 *    A. it is accompanied by the corresponding machine-readable
00036 *       source code,
00037 *    B. it is accompanied by a written offer, with no time limit,
00038 *       to give anyone a machine-readable copy of the corresponding
00039 *       source code in return for reimbursement of the cost of
00040 *       distribution.  This written offer must permit verbatim
00041 *       duplication by anyone, or
00042 *    C. it is distributed by someone who received only the
00043 *       executable form, and is accompanied by a copy of the
00044 *       written offer of source code that they received concurrently.
00045 *
00046 * In other words, you are welcome to use, share and improve this
00047 * source file.  You are forbidden to forbid anyone else to use, share
00048 * and improve what you give them.
00049 */
00050 
00051 #ifndef UARCH_PANALYZER_H
00052 #define UARCH_PANALYZER_H
00053 #include "../host.h"
00054 #include "../stats.h"
00055 #include "panalyzer.h"
00056 #include "clock_panalyzer.h"
00057 #include "io_panalyzer.h"
00058 #include "memory_panalyzer.h"
00059 #include "cache_panalyzer.h"
00060 
00061 /* uarch power specification type: 
00062  * contain all the info for analyzing io pdissipation */
00063 typedef struct _fu_arch_pspec_t {
00064         char *name;     /* name */
00065         fu_pmodel_mode_t pmodel; /* power model mode */
00066         double opfreq, svolt; /* operating frequency/supply voltage */
00067 
00068         fu_io_pspec_t *aio, *dio;
00069         fu_sbank_pspec_t *irf, *fprf;
00070         fu_sbank_pspec_t *bimod, *lev1, *lev2, *ras;
00071         fu_cache_pspec_t *il1, *dl1, *il2, *dl2, *itlb, *dtlb;
00072         fu_cache_pspec_t *btb;
00073         fu_clock_pspec_t *clock;
00074 
00075         fu_Ceffs_t *Ceffs;      /* effective pdissipation capacitances */
00076         fu_pdissipation_t *pdissipation; /* pdissipation statistics */  
00077         fu_pdissipation_t pmwindow[MaxPMWindows]; /* power monitoring window */
00078 } fu_uarch_pspec_t;
00079 
00080 /* uarch: micro architecture */
00081 fu_uarch_pspec_t *
00082 create_uarch_panalyzer(
00083         char *name,
00084         fu_pmodel_mode_t pmodel, /* power model mode */
00085         double opfreq, double svolt, /* operating frequency/supply voltage */
00086         fu_io_pspec_t *aio, fu_io_pspec_t *dio,
00087         fu_sbank_pspec_t *irf, fu_sbank_pspec_t *fprf,
00088         fu_sbank_pspec_t *bimod, fu_sbank_pspec_t *lev1, fu_sbank_pspec_t *lev2, 
00089         fu_sbank_pspec_t *ras,
00090         fu_cache_pspec_t *il1, fu_cache_pspec_t *dl1,
00091         fu_cache_pspec_t *il2, fu_cache_pspec_t *dl2,
00092         fu_cache_pspec_t *itlb, fu_cache_pspec_t *dtlb,
00093         fu_cache_pspec_t *btb,
00094         fu_clock_pspec_t *clock,
00095 
00096         /* effective capacitance for empirical power model */
00097         double sCeff, double iCeff, double lCeff);
00098 
00099 /* top level panalyzer: 
00100  * this routine integrate all the power dissipation from the functional units 
00101  * at each simulation cycle */
00102 void 
00103 uarch_panalyzer(
00104         fu_uarch_pspec_t *pspec,
00105         tick_t now);
00106 #endif /* UARCH_PANALYZER_H */

Generated on Fri Oct 22 2010 11:02:20 for SST by  doxygen 1.7.1