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

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

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