Technology II - Branch Prediction, Stack Counter
Object-oriented programming languages such as C++, Delphi and Java cause the most problems for branch prediction units. When branching occurs in assembly code, the question is not only whether or not a jump occurs, but also what code module the jump points to. AMD has analyzed the current crop of compilers and tweaked its branch prediction logic to increase the likelihood that the processor chooses the right branch/path. This allows many programs to execute faster.
When program code is executed, its memory address in the stack, which is basically a buffer for data, is stored in the ESP register. Until now, while decoding x86 instructions the processor had to manage the micro-ops for manipulating the ESP register on its own, which required processor time. AMD's Phenom now comes with a sideband counter that monitors the stack independently and automatically adjusts the ESP register. Thus, the instructions for updating the ESP no longer have to be executed, speeding up overall program execution.