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-outorderredir: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-outorderfastfwd 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-outorderbpred 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?