Branch target predictorA l'arquitectura d'ordinadors, un predictor d'objectiu de salt/branca és la part d'un processador que prediu l'objectiu, és a dir, l'adreça de la instrucció que s'executa a continuació, d'un salt condicional presa o una instrucció de salt incondicional abans de calcular l'objectiu de la instrucció de salt. [1] La predicció de l'objectiu del salt no és el mateix que la predicció del salt que intenta endevinar si es prendrà o no un salt condicional (és a dir, binària).[2] En dissenys de processadors més paral·lels, a mesura que la latència de la memòria cau d'instruccions s'allarga i l'amplada de recuperació augmenta, l'extracció d'objectius de branca es converteix en un coll d'ampolla. La recurrència és:
A les màquines on aquesta recurrència triga dos cicles, la màquina perd un cicle complet de recuperació després de cada branca presa prevista. Com que les ramificacions previstes es produeixen cada 10 instruccions aproximadament, això pot forçar una caiguda substancial de l'ample de banda de recuperació. Algunes màquines amb latències de memòria cau d'instruccions més llargues tindrien una pèrdua encara més gran. Per millorar la pèrdua, algunes màquines implementen la predicció de l'objectiu de la branca: donada l'adreça d'una sucursal, prediuen l'objectiu d'aquesta branca. Un perfeccionament de la idea prediu l'inici d'una sèrie seqüencial d'instruccions donada l'adreça de l'inici de l'execució seqüencial d'instruccions anterior.[3] Aquest predictor redueix la recurrència anterior a:
Com que la memòria RAM del predictor pot ser del 5 al 10% de la mida de la memòria cau d'instruccions, la recuperació es fa molt més ràpid que la recuperació de la memòria cau d'instruccions i, per tant, aquesta recurrència és molt més ràpida. Si no fos prou ràpid, es podria paral·lelitzar, predint les adreces de destinació de les branques de destinació.[4] Referències
Information related to Branch target predictor |