tubetranscript.io

Gabriel Enrique González · Transcript · · Updated

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

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

Summary

AI-generated from the transcript. Verify details against the source video.

  • El procesador superescalar de grado s debe tener la capacidad de leer s instrucciones de la caché de instrucciones en cada ciclo de reloj.
  • La decodificación risk busca determinar las clases o tipos de instrucción, los tipos de recursos requeridos y precalcular direcciones de salto.
  • Las políticas de emisión incluyen opciones en orden y desordenadas mediante estaciones de reserva para mejorar el rendimiento del procesador.
Video thumbnail: Arquitectura de Computadoras y Técnicas Digitales 2020 Clase: Superescalares: filminas 18 a 39
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.

vamos a empezar a ver cada una de estas etapas que vimos en la firma anterior y ya con un poco más más de detalle para ver si en un procesador super escalar el comportamiento es similar al que vimos en un procesador escalar o no vamos a empezar con la primera con el racing con la captura de instrucciones sí

y qué es lo que tenemos en un procesador super escalar de un grado s tendría que tener la capacidad de leer ese instrucciones de la calle de instrucciones en cada ciclo de reloj si ya la organización de un procesador de estas características está hecha de tal manera que en realidad la calle se

organiza por líneas líneas que tienen cierta cantidad de palabras y en este caso está organizada justamente para que la línea tenga ese palabras sí entonces lo que leo de la desde la calle va a ser todo el conjunto de palabras que puedo leer en un ciclo de reloj y eso lo que desde el punto de vista del procesador

vamos a llamar el face group desde el punto de vista de la calle el ancho de esa línea que queremos leer es lo que llamamos el caso roe o la línea de calle y entonces tenemos una calle organizada con línea de calle o calle road de s palabras y un procesador

de grado s que en cada ciclo de reloj hace un fecha de ese instrucciones y es lo que se llama el facebook si obviamente que para aumentar el rendimiento o para un rendimiento óptimo debemos tener todo organizado para que eso suceda de esa manera pero pueden haber problemas potenciales que pueden

surgir aún cuando tengamos calle road y facebook de grado s sí el primer problema que puede surgir es que este facebook y el calle road estan desalineadas por más que arranquen alineadas se puede llegar a desalinearse a medida que el programa avanza en la lectura de instrucciones desde la memoria el otro problema que vamos a

mencionar ahora pero que vamos a tratar en realidad más adelante es el tema de que haya instrucciones de salto en el face group no sea que leamos esas instrucciones desde la calle de instrucciones y una o más de esas instrucciones pero por lo menos una sea una instrucción de salto esto en realidad no es un problema sí puede pasar tranquilamente las instrucciones de salto que se dejan

progresar hasta el momento oportuno en que se resuelve el salto condicional se hace resuelve la condición y se procede como debe procederse a saltar o no en consecuencia el tema es que si queremos aumentar el rendimiento del procesador lo que se puede intentar es ya trabajar con algún mecanismo para la recuperación de salto desde el momento del phising y

en lugar de esperar hasta etapas posteriores para hacer algún tipo de cálculo o de estimación sobre el destino del salto en el caso de que la fecha y la ocasión no estén alineadas o que estén no alineadas si sería un caso comparable a

estos dos ejemplos si yo tengo un grupo de calles donde la lectura desde el punto de vista del procesador está alineado lo que estoy leyendo es todas las palabras correspondientes a una misma línea de calle y ordenadas sí sí la lectura si llega a ver de esa alineación entre el facebook y el kaiser road lo que voy a tener es que tengo

algunas palabras que estoy intentando leer desde una línea de calles por ejemplo las dos últimas palabras de una determinada línea de calle la línea cero y estoy queriendo leer otras palabras desde la línea 1 de calle porque se produce esto bueno imaginemos para este procesador que eventualmente podría ser de grado s igual a 4 si yo tengo que

tratar de que todas las lecturas que hago cuando voy a hacer un nuevo facing sean con direcciones múltiplos de 4 entonces voy a leer desde la dirección 0 desde la dirección 1 desde la dirección 2 y con eso me aseguro leer cuatro palabras sí consecutivas desde el punto de vista de la memoria ram se ve como que las lecturas las quiero hacer en la dirección 0 en la dirección 4 en la

dirección 8 en la dirección cualquier dirección múltiplos de 4 sí pero si llego a tener alguna instrucción de salto que realice un salto ya sea condicional o incondicional a alguna dirección que no sea múltiplo de 4 por ejemplo una dirección múltiplo de 2 estoy saltando de la dirección 22 entonces esto va a producir que se produzca un salto a una palabra que se

encuentra en una dirección no múltiplo de 4 y a partir de ahí quiero leer cuatro palabras consecutivas las 22 23 24 y 25 por ejemplo esto no es que esté invalidado pero si llega a ocurrir hay que solucionarlo de alguna manera simplemente para no perder un rendimiento no quiere decir que vaya a ocurrir algún problema por el

cual el programa deje de funcionar en este caso lo normal que va a suceder es que el sistema de memoria va a ser la lectura pero se va a ver forzado a hacer dos lecturas a dos líneas diferentes de calle para extraer las cuatro instrucciones que se necesitan y eso obviamente produce una caída en el rendimiento de lectura de instrucciones sí

1 hay al menos dos soluciones factibles sí y obviamente como veíamos en el curso anterior de arquitectura 1 con los procesadores escalares siempre una de las soluciones o un grupo de soluciones son soluciones de software y otro grupo de soluciones comprenden soluciones de hardware las soluciones relacionadas con

el software son que el compilador haga algún tipo de ordenamiento estático obviamente en tiempo de compilación de manera que todos los saltos que se produzcan dentro del programa sean siempre saltos a direcciones múltiplos de 4 si para hacer esto simplemente si existe algún tipo de salto a alguna instrucción de salto que salte a una instrucción que no sea múltiplo de 4 debiera compensar agregando

instrucciones no o sea corriendo el código de manera que el salto del destino del salto quede en una dirección múltiplo de 4 y de esa manera todo va a solucionarse y obviamente esto tiene dos desventajas la primera desventaja directa es que voy a tener un código ejecutable que va a ser más grande no necesariamente mucho más grande pero va a tener agregados de

instrucciones no de compensación sólo aparecía alineamiento y la segunda y más grave desventaja es que lejos del código generado el ejecutable generado es dependiente de ese tipo de procesador con grado s si yo quiero ejecutarlo en un procesador con un grado s distinto del procesador en que se compiló obviamente voy a necesitar recompilar otra vez el código si eso sí es una cuestión grave porque necesito siempre

tener los fuentes del código para generar código óptimo bueno la otra opción dijimos que es el uso de hardware especializado que en realidad es hardware que se implementa dentro del procesador como parte de la unidad de fecha y que resuelve el problema resuelve la desalineación en tiempo de ejecución si posibles soluciones

3 que aparecen en la literatura utilizar una red de alineamiento que consiste en reubicar las salidas de la calle mediante multiplexores que van a conducir las instrucciones que se le dan a la posición correcta dentro del grupo si en realidad esto implica que yo debo siempre leer líneas de calle dobles a las que el procesador necesita y en

función de multiplexores con múltiples entradas lo que hago es decidir qué entradas de los multiplexores conducen a las salidas para que el procesador reciba las instrucciones alineadas como corresponde también se puede utilizar una red de desplazamiento que lo que hace es también necesita que la calle tenga una línea de lectura de un grado mayor que

ese entonces siempre leo más de lo que necesito leer y a través de registros de desplazamiento muevo las instrucciones hacia la posición correcta si y si no utilizar un sistema de pre fecha y no que la lectura que vamos a ver más más en detalle un poco más adelante en las filminas sí pero qué consiste en ir

haciendo prelectura de las instrucciones y llevarlas en todo caso a una nueva calle en donde ya están alineadas según el grado es en el procesador sí acá pueden ver prestarle más atención a los dos métodos de multiplexado y el uso de registros de desplazamiento

qué es todo hardware con cierto costo que se tiene que meter en los pasos de facing y que obviamente introduce un cierto delay respecto de la lectura directa de instrucciones entonces veamos que si bien el racing parecía sencillo porque antes leía una instrucción hora de volver a ese instrucciones si me podemos mirar y agregó tengo que agregar hardware que no es hardware

necesariamente sencillo porque fíjense que cada una de estas líneas en realidad está representando una instrucción completa o sea que actualmente son 32 64 bits cada una de estas líneas entonces estos multiplexores involucran mucho hardware involucran algo más de delay respecto de un fecha normal lo mismo pasa con esto aunque es un poquito más lineal

se involucra bastante tiempo para hacer un desplazamiento imagínense que en el peor de los casos que yo tenga una lectura para cuatro instrucciones vuelve una filmina más atrás para cuatro instrucciones en donde hubiera tenido una de las instrucciones en esta posición y las otras tres instrucciones en estas tres posiciones de acá o sea

que esté desfasado a un múltiplo de 41 menos 1 y eso involucra que tengo que hacer un triple desplazamiento para un grado 4 y hacer un triple desplazamiento de registros de 32 bits eventualmente sea muy costoso en tiempo sí acá como ejemplo una

una máquina comercial el libre mes el ibm rs 6000 si tiene todas estas características para conformar el sistema de fecha inteligencia que la calle de instrucciones de servicios activo por conjuntos de dos días con un ancho de línea de 32 instrucciones de cada fila almacena cuatro conjuntos asociativos de dos instrucciones cada uno cada línea de calle se compone de cuatro filas una serie de

características específicas y que demandan una colección con conexionado de esta forma y lo que utiliza es justamente el método de desplazamiento ésta esto es sólo a modo de ejemplo ni siquiera hay que ponerse en profundidad a entenderlo pero lo que sí quería que vieran es que básicamente para terminar aportando en este caso cuatro

Frequently asked questions

El primer problema es que el fetch group y el cache line estén desalineados, y el segundo problema es la presencia de instrucciones de salto en el fetch group.

La literatura menciona utilizar una red de alineamiento con multiplexores, una red de desplazamiento, o un sistema de prefetching.

Actúan como buffers de desordenamiento que desacoplan las etapas de decodificación y ejecución, almacenando instrucciones hasta que cumplan los requisitos para ser emitidas.