ESATSim is an expansion of Mark Wolff's SATSim. It is an easy to use and easy to configure superscalar architecture simulator that can be used to gather performance statistics for a processor model of interest. The flow of instructions through the processor can be viewed via the GUI making it an excellent teaching tool.
Power modeling is a method of studying energy consumption within a processor. This is done in ESATSim by inserting counters in the simulator to record the number of times that a component is used during a trace's execution. The values of these counters can be used later in a spreadsheet to calculate the energy that each component consumed. This energy is the total consumed while the component is active and the energy consumed while it's not actively working on an instruction, this is referred to as leakage. The energy consumed due to leakage is based on how long the unit is on.
ESATSim contains usage counters for the following items: fetches decodes issues broadcasts cycles commits reservation stations for: integer floating point branch memory executions for: integer floating point branch memory renaming entries reorder entries processor cleanings (or squashes) register accesses memory accesses instruction cache misses data cache misses
Misspeculative execution is the result of a branch predictor mispredicting the path of execution when it comes to a
branch instruction. The actual target of the branch isn't resolved until the instruction gets executed in the branch
functional unit. In the meantime, other instructions from the mispredicted path flow into processor which results in more
energy being consumed.
Once the data has been collected some mathmatical manipulation is required to get the total energy consumed by a component. Here
is a helpful formula for determining a component's energy consumption.