Liste des Groupes | Revenir à c arch |
On 4/4/24 4:09 PM, MitchAlsup1 wrote:> Thomas Koenig wrote:
[snip]
> Also note:: With an ISA like My 66000, one can preform branching using
> predication and neither predict the branch nor modify where FETCH is
> fetching. Ideally, predication should deal with hard to predict branches
> and all flow control where the then and else clauses are short. When
> these are removed from the predictor, prediction should improve--maybe
> not in the number of predictions that are correct, but in the total time
> wasted on branching (including both repair and misfetching overheads).
Rarely-executed blocks should presumably use branches even whenIf you will arrive at the join point by simply fetching there
short to remove the rarely-executed code from the normal
instruction stream. I would guess that exceptional actions are
typically longer/more complicated.
(Consistent timing would also be important for some real-timePredication is closer to fixed timing than any branching.
tasks and for avoiding timing side channels.)
The best performing choice would also seem to be potentiallyWhile not committed, it is still available.
microarchitecture-dependent. Obviously the accuracy of branch
prediction and the cost of aliasing would matter (and
perversely mispredicting a branch can _potentially_ improve
performance, though not on My 66000, I think, because more
persistent microarchitectural state is not updated until
instruction commitment).
If the predicate value is delayed and predicated operationsJust like data forwarding, branch prediction forwarding is easily achieved in the pipeline.
wait in the scheduler for this operand and the operands of one
path are available before the predicate value, branch prediction
might allow deeper speculation.
predictable but short branches, deeper speculation might helpWhat can possibly be more regular than constant time ??
more than fetch irregularity hurts.
(The predicate could beOne HAS TO assume that GBOoO machines will predict predicates.
predicted — and this prediction is needed later in the pipeline —
but not distinguishing between prediction-allowed predication
and normal predication might prevent prediction from being
implemented to avoid data-dependent timing of predication.)
(The cost of speculation can also be variable. With underutilized
resources (thermal, memory bandwidth, etc.) speculation would
generally be less expensive than with high demand on resources.)
Les messages affichés proviennent d'usenet.