Nel volume 3 dei manuali Intel che contiene la descrizione di un contatore di eventi hardware:Coda istruzioni CPU Intel fornisce la previsione del ramo statico?
BACLEAR_FORCE_IQ
conta il numero di volte che un BACLEAR è stato costretto dalla coda di istruzioni. Il QI è anche responsabile della previsione di ramo condizionale in direzione in base a uno schema statico e dati dinamici forniti dall'unità di previsione ramo L2 . Se la destinazione della diramazione condizionale non viene trovata nell'array di destinazione e l'IQ prevede che il ramo è occupato, quindi l'IQ forza il Branch Address Calculator a emettere un BACLEAR. Ogni BACLEAR asserito dal BAC genera una bolla di circa 8 cicli nella pipeline di istruzioni.
Ho sempre pensato che il Branch Address Calculator esegua l'algoritmo di predizione statica (quando il Branch Target Buffer non contiene alcuna voce di diramazione)?
Qualcuno può confermare quale dei due precedenti è corretto? Non riesco a trovare nulla.
Ho cancellato la mia risposta poiché non era utile. Ma ho notato che il manuale di riferimento di Intel Optimization dice: "La microarchitettura Intel Core non utilizza l'euristica di predizione statica.Tuttavia, per mantenere la coerenza tra i processori Intel 64 e IA-32, il software dovrebbe mantenere l'euristica di previsione statica come predefinita. " –