From WikiChip
Editing microprocessor performance

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.

This page supports semantic in-text annotations (e.g. "[[Is specified as::World Heritage Site]]") to build structured and queryable content provided by Semantic MediaWiki. For a comprehensive description on how to use annotations or the #ask parser function, please have a look at the getting started, in-text annotation, or inline queries help pages.

Latest revision Your text
Line 6: Line 6:
  
 
:<math>
 
:<math>
P \propto \frac{1}{T_\text{exec}} \qquad \qquad \qquad [\frac{\texttt{program}}{\texttt{seconds}}]
+
P \propto \frac{1}{T_\text{exec}} \qquad \qquad \qquad [\frac{\texttt{programs}}{\texttt{second}}]
 
</math>
 
</math>
  
The total [[execution time]], <math>T_\text{exec}</math>, required to execute a specific finite program is.
+
The total execution time, <math>T_\text{exec}</math>, required to execute a specific finite program is.
  
:<math>T_\text{exec} = \frac{\texttt{IC} \times \texttt{CPI}}{f} \qquad \qquad [\frac{\texttt{seconds}}{\texttt{program}}]</math>
+
:<math>T_\text{exec} = \frac{\texttt{IC} \times \texttt{CPI}}{f} \qquad \qquad [\texttt{second}]</math>
  
 
Where,
 
Where,
Line 30: Line 30:
  
 
Note that for the sake of brevity, sometimes the instruction count is omitted when referring to the performance of a fixed portion of code. In other words, when the [[instruction count]] is fixed because the program is not being recompiled, it is sometimes omitted from the equation. However, doing this ignores the fact that recompiling code can have a positive impact on performance.
 
Note that for the sake of brevity, sometimes the instruction count is omitted when referring to the performance of a fixed portion of code. In other words, when the [[instruction count]] is fixed because the program is not being recompiled, it is sometimes omitted from the equation. However, doing this ignores the fact that recompiling code can have a positive impact on performance.
 
== Three Performance Knobs ==
 
With the performance equation from above.
 
 
:<math>p = \frac{\texttt{IPC} \times f}{\texttt{IC}}</math>
 
 
It can be seen that there are three control knobs for improving performance:
 
 
* '''Frequency''' - Increasing the frequency, thus reducing the length of each [[clock cycle]]. Architectures that take this approach are referred to as a '''[[speed demon design]]'''.
 
 
* '''IPC''' - Increasing the instruction throughput by exploiting more [[instruction-level parallelism]]. Architectures that take this approach are referred to as a '''[[brainiac design]]'''.
 
 
* '''Instruction Count''' - Reducing the instruction count, thus reducing the total amount of work that needs to be completed. This can be done through new compiler optimizations or through the introduction of new [[instruction set extensions]].
 
 
Often times, a combination of all three is necessary to achieve good performance and power efficiency balance.
 
 
:[[File:cpu perf graph.svg|500px]]
 
 
Although in theory, the best performance can be achieved through very [[clock speed|high frequency]] and very high [[IPC]], in practice the design requirements for the two are largely contradictory. Achieving higher IPC requires higher logic circuit complexity. This significantly reduces the working frequency range. Likewise, by reducing the logic circuitry complexity, it's possible to increases the frequency at expense of the IPC. Both knobs are also affected by the [[process technology]] that is used to manufacture the design. In general, smaller nodes allows for slightly more complexity without regressing frequency (the exact impact is very node-dependent). Thus achieving a good performance requires a good balance between IPC, frequency, and the instruction count.
 

Please note that all contributions to WikiChip may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see WikiChip:Copyrights for details). Do not submit copyrighted work without permission!

Cancel | Editing help (opens in new window)

Template used on this page: