Power
Measurement with M-Sim
In this lab we
shall experiment with M-Sim’s power measurement
capability. M-Sim
implements the popular “Wattch” framework
for microarchitectural power analysis. For more information on Wattch, see [1].
Part 1:
Pipeline Structure Average Power Measurements
In this section,
we will collect average power measurements (power/simulation cycle) for
pipeline structures, using each of the 5 benchmarks from the previous
exercise. First, create a directory
“results” under m-sim_v2.0.
Now run the following command, using the anagram benchmark:
~/msim/msim_v2.0/$ ./sim-outorder –redir:sim results/anagram_power.out anagram-your_name.arg
Now open the file anagram_power.out and search (Control-s in emacs) for avg_rename_power (average rename power / cycle). This statistic,
and 10 of the following 11, (not counting the avg_falu_power)
form the average power measurement for the 11 key pipeline structures. Their sum is the avg_total_power_cycle
statistic (average total power / cycle).
Now fill out the
following table:
Benchmark |
Avg_ Rnm_power |
Avg_ bpred_powr |
Avg_ wndow _powr |
Avg_ lsq_ powr |
Avg_ regfile_powr |
Avg_ icache_powr |
Avg_ dcache_pow |
Avg_ dcache2_pw |
Avg_ alu_ powr |
Avg_ result_bus_ power |
Avg_ clk_ powr |
Avg_Total_pwrcyc |
anagram. alpha |
|
|
|
|
|
|
|
|
|
|
|
|
go.alpha |
|
|
|
|
|
|
|
|
|
|
|
|
compress95.alpha |
|
|
|
|
|
|
|
|
|
|
|
|
cc1.alpha |
|
|
|
|
|
|
|
|
|
|
|
|
perl.alpha |
|
|
|
|
|
|
|
|
|
|
|
|
Table 1: Average Power Measurement Table
Now answer the
following questions:
1)
For each
benchmark above, in which unit is the most average power spent?
2)
For
each benchmark above, what is the range of average power values over the
pipeline structures?
Part 2:
Effects of fast-forwarding instructions
In this section,
we’ll explore the effects of fast-forwarding instructions on average
total power / instruction. For
various degrees of fast-forwarding (instructions skipped at the beginning of
the simulation), we will measure the effect on avg_total_power_insn.
Execute the
following example instruction for each benchmark.
~/msim/msim_v2.0/$ ./sim-outorder –fastfwd 0 –redir:sim results/anagram_fastfwd_power.out
anagram-your_name.arg
Now open the file anagram_fastfwd_power.out and search (Control-s in emacs) for avg_total_power_insn. Record the value in the following
table. Repeat for
fast-forward values of 1000, 10000, 100000, and 1000000.
Benchmark |
0
Fastfwd |
1000 Fastfwd |
10000 Fastfwd |
100000 Fastfwd |
1000000 Fastfwd |
anagram. Alpha |
|
|
|
|
|
go.alpha |
|
|
|
|
|
compress95.alpha |
|
|
|
|
|
cc1.alpha |
|
|
|
|
|
perl.alpha |
|
|
|
|
|
Table 2: Fast-forward Measurement Tables
Part 3:
Effects of cache size variation
In this section,
we’ll explore the effects of cache size variation on average total power
/ instruction. M-sim allows you to configure the L1 and L2 data and
instruction caches, varying parameters such as number of sets, block size, associativity, and block replacement strategy. We will focus our experiments on the
number of sets and the block size in the DL1 cache. For various sizes of the DL1 cache, we
will measure the effect on avg_total_power_insn.
Execute the
following example instruction for each benchmark.
~/msim/msim_v2.0/$ ./sim-outorder –cache:dl1 dl1:4096:32:1:l –redir:sim results/anagram_cache_power.out
anagram-your_name.arg
Now open the file anagram_cache_power.out and search (Control-s in emacs) for avg_total_power_insn. Record the value in the following table.
Benchmark |
1024
Cache
Size |
2048 Cache Size |
4096 Cache
Size |
8192 Cache
Size |
16348 Cache
Size |
anagram. Alpha |
|
|
|
|
|
go.alpha |
|
|
|
|
|
compress95.alpha |
|
|
|
|
|
cc1.alpha |
|
|
|
|
|
perl.alpha |
|
|
|
|
|
Table 3: Cache Size Measurement Tables
Now answer the
following questions:
1)
For
each benchmark above, what is the range of values for avg_total_power_insn?
2)
What
is the mean and standard deviation over the 5 measurements of avg_total_power_insn for each benchmark?
Part 4:
Effects of Branch Predictor size variation
In this section,
we’ll explore the effects of branch predictor table size variation on
average total power / instruction.
M-sim allows you to configure branch prediction,
enabling not-taken, taken, perfect, bimod, 2 level,
and combining. We will experiment
with the table size of the bimod predictor. Recall that the bimod
predictor uses a table of 2-bit entries, indexed by instruction LSB’s, where the bits control a statement machine
that defines the prediction.
Execute the
following example instruction for each benchmark.
~/msim/msim_v2.0/$ ./sim-outorder –bpred 2048
–redir:sim results/anagram_bpred_power.out
anagram-your_name.arg
Now open the file anagram_cache_power.out and search (Control-s in emacs) for avg_total_power_insn. Record the value in the following
table.
Benchmark |
512
Branch
Prediction |
1024 Branch Prediction |
2048 Branch
Prediction |
4096 Branch
Prediction |
8192 Branch
Prediction |
anagram. Alpha |
|
|
|
|
|
go.alpha |
|
|
|
|
|
compress95.alpha |
|
|
|
|
|
cc1.alpha |
|
|
|
|
|
perl.alpha |
|
|
|
|
|
Table 3: Branch Predictor Size Measurement
Tables
Now answer the
following questions:
1)
For
each benchmark above, what is the range of values for avg_total_power_insn?
2)
What
is the mean and standard deviation over the 5 measurements of avg_total_power_insn for each benchmark?