Rod Pemberton wrote:
> "Arnold Doray"<
inv...@invalid.com> wrote in message
> news:jehfpu$9de$1...@dont-email.me...
> ....
That's "Eager Execution" (EE), something which good branch prediction
makes even less of a win: You can never go through more than 2-3
branches like this before the power loss becomes totally horrendous
(running 4-8 threads in parallel, 75-88% wasted resources), while lots
of current code can branch predict past 6-8 branches before the
probability of a branch miss passes 50%, and all those branches could
actually be inside the pipeline at once.
EE should only be considered as a last resource for branches where the
runtime branch history shows very low predictability, i.e. closer to 50%
branch misses.
BTW, back in March 1995 I visited Intel in Santa Clara, in order to meet
some people from the P6 team and to get an engineering sample PentiumPro
machine.
I had to sign an NDA up front, so before doing that I insisted that I'd
be allowed to write down on a whiteboard everything I then knew or had
been able to guess about the architecture, based on nothing but public
sources. I.e. this was to properly delineate what the NDA could cover.
It turned out that I was correct in every particular, except for one
thing: I expected EE because I didn't realize how much they had been
able to improve the branch predictor.
The engineers on the other side of the table were very happy, while some
of the management and legal people seemed quite worried. :-)
Terje
--
- <Terje.Mathisen at
tmsw.no>
"almost all programming can be viewed as an exercise in caching"