[PATCH] T3/T4 sparc shifts, plus more timings
David Miller
davem at davemloft.net
Sun Mar 31 23:49:23 CEST 2013
From: Torbjorn Granlund <tg at gmplib.org>
Date: Sun, 31 Mar 2013 23:33:36 +0200
> I think they messed up "predicted taken" and "predicted non-taken" at
> the gate level. So for enough iterations, the predictor
> considers--correctly--that the branch will be taken. And then the
> misinterpres it.
>
> The loop branch back is fast only when it is predicted non-taken.
Such an error would show up as a larger latency.
The final branch result is determined in the E stage of the Ultra-III,
which signals mispredict to the A stage, which is 7 cycles earlier in
the pipeline.
This matches the listed 8 cycle latency of a mispredicted branch in
the chip's instruction latency tables.
So a simple re-ocurring mispredict after a certain number of
iterations doesn't appear to be what we're seeing here.
More information about the gmp-devel
mailing list