tubetranscript.io

Gabriel Enrique González · Transcript · · Updated

Arquitectura de Computadoras y Técnicas Digitales 2020 Clase: Superescalares: filminas 69 a 80 – Transcript

Video by Gabriel Enrique González · Watch the original on YouTube

Video thumbnail: Arquitectura de Computadoras y Técnicas Digitales 2020 Clase: Superescalares: filminas 69 a 80
Source video on YouTube · Transcript generated automatically and may contain errors.

Use this video with Pro

Reading, copying and transcript downloads are free. Create saved AI results for this video with a signed-in Pro account ($9/month).

Transcript

Search ignores accents. All transcript text stays visible.

bueno como podemos ver en esta firma la efectividad de la predicción con 20 historia es bastante buena y a medida que aumentan los 20 historias en principio va subiendo con un bit historia que sería la implementación más sencilla de todas se tiene entre el del orden de 80 y pico

a 96 por ciento de efectividad si la implementación ya con dos vita historia en principio mejora las de humilde historia con poco agregado es simplemente memoria adicional un bit por entrada de la tabla sí permite mejores predicciones como vimos

en cuestiones de saltos anidados y sube un poquito las tasas de predicción mínima y máxima fíjense que ya para 320 historias si bien el agregado es simplemente un bit más en las memorias de predicción no se tiene una subida estadística más

mayormente importante respecto de dos mil historias entonces en general la técnica utilizada es dos mil historias por su buena predicción y por el ahorro de memoria respecto de técnicas con más bits de historia e la que nos queda a ver es la predicción

dinámica implícita que de alguna manera ya la estuvimos analizando porque lo que hace es utilizar una tabla una memoria calle en la zona de la etapa de facing memoria que va a tener consignados los saltos que se hayan realizado en principio son dos esquemas que se utilizan de acuerdo a los

diseñadores de tag branch target andrés calle y betique reales target instrucción calle vamos a darles un poco más adelante son similares a un predictor de un beat sí porque se basan en la presencia o ausencia de las referencias al salto dentro de esta memoria similar a la clave tv que habíamos visto sí

es una calle adicional tiene entradas para los saltos más recientes idealmente para todos pero bueno acá está el juego entre la capacidad de la memoria y respecto de las demás prestaciones del procesador si si se pone en la memoria con pocas entradas va a haber competencias va a haber reemplazos entre los saltos más recientes sí valverde se alojó digamos en las

entradas son solo para saltos tomados o sea si el salto fue tomado en la última vez entonces está presente en la tabla si el salto tiene una entrada en esta tabla se va a predecir como tomado sí y los saltos no tomados los que cuando se evalúan efectivamente resultan evaluarse como

saltos no tomados y se sacan de la calle si es que estaban o no ingresan en la calle de si es que no estaban sí entonces es como habíamos visto al principio y la primera referencia que vimos a la etb cuando hacíamos cuando estudiamos el tema de la predicción de dirección de salto ni siquiera se necesita una columna en la que se guarde la precisión de un bit porque la presencia o ausencia de la tabla actúa a kalfin

las diferencias entre vetas y meetic es que en la calle beta tipo como vimos en el caso de la vtv lo que se almacena es la dirección de la instrucción que causa el salto y la o las dos direcciones d de salto si no tiene sentido en principio guardar la primera dirección

porque se supone que es la dirección de salto no tomado esto es simplemente una cuestión más académica que otra cosa de exponer lo haga en la tabla está bien pero se guardan las dos direcciones en algunos casos tener esta dirección guardada acá permitiría que ante un mecanismo de recuperación se pueda saber cuál era la ruta rápidamente del de salto equivocado en caso de que la

predicción se haya hecho en forma equivocada y deba ser por salto no tomado sí pero lo que se guardan son las direcciones esto implica que es necesario un paso adicional para ir a la calle de instrucciones a buscar la instrucción que está en la dirección mil cuatro que está en la dirección 2000 ya partir de ahí empezar a cargar y esto puede presumir una pérdida de un ciclo de reloj o de un ciclo de acceso a

instrucción para encontrar esa instrucción por eso aparece posteriormente este mecanismo de calle petit que sí y que es una calle que lo que tiene no es la dirección de la instrucción a la que se debe saltar sino que es directamente a costa de ocupar un poco más de espacio tiene la instrucción a la que se debe saltar sí entonces

básicamente es un vaso reaccionado en directo desde la calle de distribución es con las instrucciones que siguen al salto en el orden normal del programa sí y eventualmente como acá se ponía en la dirección de salto no tomado y dirección de salto tomado acá se pueden poner la instrucción de salto no tomado y la instrucción de salto tomado lo cual implica que el mecanismo de facing si ya puede

disponer de esta instrucción para mandarla directamente a nuestras distribuciones y mientras tanto empieza a pedir las instrucciones correspondientes en la dirección que continúa desde la calle de destrucciones si en realidad el procedimiento se hace en la calle de instrucciones lo que pasa que fíjense que estas direcciones que están acá no son direcciones de la calle

de instrucciones sino que son direcciones directas de la ram sí entonces esto implicaría que ante un fallo de la calle de instrucciones habría que hacer que pase en el fallo desde el arrancón efectuar tres de codificación etcétera etcétera y eso insume más ciclos de pérdida si ellos ya tengo directamente las instrucciones son las direcciones de las instrucciones en la canción instrucciones estoy un paso más avanzado sí

ahora es un tema que hay que por lo menos comentar como sea el tema de la recuperación ante predicciones erróneas en principio parece sencillo si primero estamos trabajando con técnicas especulativas ninguna de estas técnicas asegura predecir en un 100% si entonces ante fallos que los mover aunque sean

porcentajes muy chicos del orden del 10 al 3% sí se requiere un mecanismo de recuperación para el caso de estas predicciones fallidas si ese mecanismo de recuperación involucra eliminar las instrucciones de la ruta que fue errónea y además empezar a cargar y ejecutar las instrucciones de la ruta correcta vivos

con ejemplos como este de la fermina anterior que debo guardar ambas direcciones de rutas para saber cuál fue el camino equivocado eso me permite empezar a recuperar la ruta correcta sabemos que va a haber ciclos de pérdida porque hemos ido por un camino aunque sea parcialmente que es equivocado y debemos eliminar las consecuencias de

esa equivocación ahora y tenemos que analizar lo siguiente la ejecución de instrucciones que fue por una ruta especulativa puede dar lugar a la aparición de nuevas instrucciones de saltos en esa ruta especulativa que son saltos especulativos ellos mismos pero que también van a ser especuladores como

el primero aún antes de que la condición de este primer salto se haya resuelto entonces yo puedo tener varios niveles de especulación en un momento dado puede haber en el procesador instrucciones que son no especulativas las que venían antes del primer salto por poner un principio de todo esto que estén mezcladas con varios niveles de

instrucciones ejecutadas es que creativamente entonces lo que yo tengo es una condición de árbol de alguna manera en donde necesito identificar los diferentes niveles de especulación porque sino ante una equivocación ante una predicción errónea de un salto cualquiera que está ejecutado en este

momento yo no sé en qué nivel afecta a las instrucciones que estaban abajo de ese salto si entonces lo que se utiliza normalmente son mecanismos de tales estos tales usualmente son unos tres bits que están asociados a la destrucción a partir del fecha y para adelante entre los bits de control asociados a nada a la instrucción que

indican el grado de especulación en principio un grado 03 vista en cero indican que la instrucción es no especulativa y a partir de ahí cada vez que aparece un salto que se especula ya sea como tomado o como no tomado si es un salto que se especuló se sube en un grado el qué el correspondiente a partir de la

tradición de un salto entonces el primer salto que es especulativo todos los tags van a incrementarse entonces van a pasar a ser un tag 1 si si aparece otro salto que se va a especular también a partir de ese momento los tags del camino que se especule e iban a ser instrucciones marcadas con tangos y así sucesivamente sí entonces a partir de ahora tenemos

instrucciones contactos serota 123 hilos tal que hayan aparecido hasta tanto se vayan resolviendo estas instrucciones que no se van a resolver en ordes no se va a resolver primero el salto 1 después del salto 2 y después del santo 3 recuerden que esto al pasar por las estaciones de reserva se desordena y se pueden ir resolviendo los saltos de acuerdo a sus dependencias etcétera

etcétera en un orden distinto del orden del programa sí entonces como resumen una instrucción rotulada indica que es especulativa y el rótulo la asocia a un nivel de salto especulativo fíjense que no está puesto explícito acá pero se entiende que las instrucciones que venían previas al salto tienen cero son no especulativas si el propio salto tiene tan 0 el tango

no empieza a partir de acá si entonces éste tiene 110 partir de acá en que salta 2 este salto tiene tag 2 y a partir de acá empieza el tag 3 sí ah acá está explícito lo que decíamos en la firma anterior cuando se especula la dirección de todas las instrucciones de salto al igual que las direcciones de

salto tomado y salto no tomado se deben almacenar para el caso que sea necesario una recuperación ahora cuando el salto se termina la ejecución real del salto me estoy refiriendo si o sea terminar el salto es que la instrucción de salto siguió su camino a través de la ruta de datos del procesador y llegó hasta la unidad de

ejecución en donde se evalúa la condición y el salto tiene ahora un resultado el resultado puede coincidir con lo especulado pareces alto o puede no coincidir con los peculados pareces altos si acá es donde tiene validez haber memorizado la dirección de la instrucción de salto eventualmente el resultado de la especulación y las direcciones de salto tomado y salto no tomado en caso que haya que revertir en

Frequently asked questions

La tecnica utilizada comunmente es de dos bits de historia debido a su buena prediccion y al ahorro de memoria.

La cache beta es una asociativa de 64 entradas que almacena las direcciones de salto.