-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathREADME.HotLeakage
131 lines (107 loc) · 5.34 KB
/
README.HotLeakage
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
The LICENSE and the COPYRIGHTS appear in the file called LICENSE.
HotLeakage Simulator Pre-Release Version 0.91.
------------------------------------------------
OVERVIEW:
README.HotLeakage is for HotLeakage Pre-Release 0.91. It is a tool for
modeling leakage current for cache-like structures. It is built upon
Wattch Power Performance simulator.
Currently it is implemented to model the leakage of caches and register
file only. Though adding models for other cache-like structures is very
simple. It models both sub-threshold and gated leakage.
This model also takes care of the inter-die variations in different
parameters like voltage, technology etc.
DOCUMENTS:
*The technical report describes in details the derivation of the model
and the tool in general.
*README.HotLeakage is the general README.
*README.HotLeakage.Howto.FAQ is the document that describes how to use
the tool and how to use it to model another structure etc.
*README.HotLeakage.TODO is the list of things to be done for the final
version.
*README_Hotleakage_Model.doc describes the circuit simulations one needs to
do for adding another structure or modeling for a different technology.
TO INSTALL:
HotLeakage should compile on any system that SimpleScalar compiles on.
Testing/development was primarily done with the ALPHA version. It was
verified that the tool should compile on both PISA and ALPHA.
Finally HotLeakage would be in a modular form such that any simulator
infrastructure can use it.
Note that HotLeakage is primarily designed to be used with sim-outorder
(the full processor simulator). It does not support sim-fast,
sim-cache, etc (although adding some simple power estimates for these
faster simulators would be very easy). Thus you should only need to run
"make sim-outorder" and in fact you will get errors if you try to compile
the other simulators because they are missing some external variable
declarations.
For correct compilation on any systems please follow the following steps:
1. gmake symlinks
2. gmake config-<alpha/pisa>
3. gmake clean
4. gmake
Both gmake and make should work. Please note the first step which is different
from the normal SimpleScalar compilation.
SIMULATION AND RESULTS:
Running HotLeakage should be just like running sim-outorder. Provide it
with your processor configuration parameters, input binary, and input
data set.
There are lots of separate processor configuration parameters for
leakage modeling.
Please see the hotleak_alpha_config.cfg file for more details.
Please NOTE that currently the Technology parameter needs not only be
provided in the command line but also needs to be hardcoded in
powerinit.c ( in the function power_reg_options).
This will be fixed in the final release.
These are the additional statistics that are generated by HotLeakage:
In the beginning of the simulation all the leakage currents are
calculated (Currently only the register file and the caches).
The leakage currents for each component (for e.g. for a cache, the
data array, tag-array, decoders etc ) are printed.
In the code (leakage.c) look out for leakage_power->dl1_data etc. for
the data structures that store these values.
CHANGES:
This version has some cache leakage saving techniques (like drowsy ,
gatedVss) being modeled for the caches. The user has the option to
choose any or none of these techniques.
Additional leakage saving mechanisms can be modeled and the HotLeakage
leakage model can be used.
Some highlights of the major changes from the basic Wattch 1.0 release.
1). Leakage.c and leakage.h
These files contain the core of HotLeakage leakage model.
double nmos_ileakage(double aspect_ratio, double Volt, double Vth0,
double Tkelvin, double tox0)
double pmos_ileakage(double aspect_ratio, double Volt, double Vth0,
double Tkelvin, double tox0)
These two above functions are the main functions that calculate the
leakage of one P and N transistor.
Depending on the circuit one can call these to calculate the leakage
of one cell of a structure.
Here there are five main parameters that a user can vary to model
different scenarios.
*Aspect Ratio.
*Voltage.
*Threshold Voltage.
*Temperature.
*Toxide Thickness.
2). Leakinit.c
This module initializes all the technology parameters for different
technologies.
If the user wants to calculate the leakage of a different structure
he or she will have to do the circuit simulations as mentioned in the
README__HotLeakage_Model.doc and then feed the parameters in this module.
3). Power.c and powerinit.c and power.h
Power.c is mainly the same. Power.h has been broken for ease of usage
into powerinit.c and power.h
Cacti libraries (in cacti subdirectory):
This is the Cacti distribution. It is used in power.c to perform
automatic delay-optimial cache partitioning. Some of the low-level
routines to compute gate/diffusion capacitance of transistors are also
shared. Leakage.c also uses it for for the leakage calculation of caches.
4). Cache.c
This is modified to model different cache leakage saving mechanisms.
If you use none then you should not be concerned about it.
5). Cache_leak_ctrl.c and cache_leak_ctrl.h
Again these files are for the different cache leakage saving mechanisms.
Please see the TODO list for the things to be added in the final release.
Please send your comments and any bugs to:
Email: hotspot@virginia.edu
We are continually trying to improve it to release it in its final form.