tubetranscript.io

Gabriel Enrique González · Transcript · · Updated

Arquitectura de Computadoras y Técnicas Digitales 2020 Clase: Planificacion en ILP – Transcript

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

Summary

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

  • Los procesadores super escalares son considerados el arquetipo de procesadores que realizan procesamiento paralelo a nivel de instrucciones.
  • La planificación estática reordena las instrucciones en tiempo de compilación para aumentar las posibilidades de ejecución paralela.
  • El desenrollamiento de lazos o loop unrolling busca reducir las detenciones por riesgos de control presuponiendo que las iteraciones son independientes.
Video thumbnail: Arquitectura de Computadoras y Técnicas Digitales 2020 Clase:  Planificacion en ILP
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.

después por lo que vi he visto por lo que después siempre me olvido de vincular el vídeo a al aula virtual así que si me olvido a carmelo acordar y en cinco minutos los vínculos pero siempre me olvido de hacer ese paso y más ahora porque hasta ahora siempre teníamos clase en vídeo acá hasta el día peor ácido y la clase como

un profesor en serio capaz que esta misma clase después la puedo convertir en vídeo eso estaría piola vamos vamos a tratar de que salga así bueno hasta la clase pasada estuvimos viendo temas introductorios de la materia estuvimos adentrándonos en lo que es paralelismo en mono procesadores

y nos concentramos en procesadores super escalares arrancamos por ahí porque bueno dos razones principales la primera es los procesadores super escalares son el arquetipo de procesadores que hacen el procesamiento paralelo si por un lado por otro lado que el paralelismo comienza dentro de un procesador que en

este caso pasa a ser un procesador en paralelo un procesador con capacidad de manejar i lp o sea para el mismo nivel de instrucciones sí y después podemos utilizar este tipo de procesadores para construir el resto de los modelos esto es modelos de procesamiento de múltiples tareas en paralelo o modelos de multi computadoras

o de multiprocesadores digamos en esos modelos en que uso o que implementó paralelismo a nivel de de poner muchos procesadores juntos nada quita que esos procesadores al mismo tiempo tengan paralelismo a nivel de instrucciones o sea sean super escalares sí por otro lado para otros modelos un poco diferentes como puede ser el very long

instrucción word los believe o los procesadores de peak así mismo también con los procesadores con multiplicar en simultáneo o cualquier otro modelo los super escalares son la base entonces por esa razón vimos los super escalares un paquete de filminas pesadito pesadito en cuanto a que mucho concepto nuevo introducido

muchas filminas para introducir todos estos conceptos y en general bueno varias dudas que se generaron en ustedes recuerden que cualquier cosa me preguntan respecto de dudas de lo anterior si preguntan mañana la en la práctica lo que vimos en todo caso hasta ahora entonces es hardware como desde el punto de vista de hardware implementó un

sistema de procesador que me permita ejecutar múltiples instrucciones en paralelo atendiendo a que esa ejecución se va a encontrar con un problema fundamental que son los riesgos ahora son cinco los riesgos tres de datos uno de control y uno de recursos o estructurales y bueno y vimos como desde el punto de vista de hardware alguna

ayudita de los compiladores se puede solucionar todo ese problema sí acuérdense cuando no se puede solucionar algo lo que pasa es que se detiene el procesador y haga una diferencia importante el año pasado cuando vimos la versión escalar los procesadores mix segmentados dijimos que con compromisos de hardware esto es hardware adicional y con soluciones de software si entre

ambos se podía llegar a ser un procesador que fueran clips esto es un procesador sin bloqueo de las etapas de segmentación en un procesador super escalar no podemos asegurar eso si por más que tratemos que el compilador haga un esfuerzo y que desde el punto de vista del hardware implementamos las soluciones que sean puede llegar a haber bloqueos está bien y no lo vamos a poder no lo vamos a poder evitar

la razón principal de esto es que el compilador ya no tiene todo el control y el compilador vamos a ver en este paquete es un disparador de rendimiento pero el procesador es el último en manejar el dinamismo del paralelismo de instrucciones y si por ahí no ve a algo lo maneja mal se va a bloquear no lo va a poder evitar lo que sí vamos a ver el día de hoy es

rápidamente pasar del hardware al software esto es que cosas se hacen desde el punto de vista de los compiladores para ayudar al procesador a ejecutar instrucciones en paralelo está bien el procesador ya tiene capacidad para detectar que las instrucciones son independientes entre sí y se pueden ejecutar en paralelo y entonces lo hace

si les tiró la pregunta de rigor de donde el procesador permite o sea puede detectar paralelismo entre instrucciones ustedes que me dirían qué etapa permitiría que el procesador detecte paralelismo entre instrucciones y las ejecute en paralelo

me quedo callado porque estoy esperando respuestas en el chat fíjense clásica pregunta de parcial etapa del procesador permite la detección y ejecución de instituciones en paralelo no no los tres no son una etapa santiago en todo caso es un tipo de ver angular y

that no es en el despacho da nada nada decoud menos te faltó decir no no no no nicolás no fíjense que en todo caso el prefecto el phising el de code

el despacho son etapas en orden si son en orden no pueden ser paralelas no pueden ejecutar cosas en paralelo benjamín cuál fue la pregunta todo qué etapa del procesador permite detectar paralelismo entre instrucciones y por ende y mandarlas ejecutar en paralelo

si se van avanzando van avanzando dan a dale si benjamín las estaciones de reserva exacto en las estaciones de reserva las instrucciones se entran en desorden o entran en orden pero ya a partir de ahí están en desorden y cuando salen cuando se emiten ejecuciones porque tienen todos sus operando porque hay un recurso disponible pueden salir tranquilamente

dos instrucciones en paralelo a ejecutar porque cumplen con esos criterios y obviamente si están saliendo es porque no tienen dependencias de datos con ninguna otra instrucción porque ya tienen todos superando y además no tienen dependencia de datos entre ellas bueno en caso de que no tengas una reservación

station por cada unidad funcional no bueno ahí hay variantes y está bien si hay una una estación de reserva acuérdense que hay una variante chicos y la bibliografía los menciona de esa manera pero lo aclaro acá según tomasulo en su en su paper en la publicación en la cual definía el

concepto de estaciones de reserva más común de datos sí y el funcionamiento por tags que son los tres las tres inclusiones que hacen una arquitectura básica para convertirla en una arquitectura de tomás o lo tomas o lo llamas es estación de reserva a cada una de las centralitas a cada una de las filas en otras bibliografías se habla de estación de reserva para

referirse a toda la estructura compleja que tiene cierta cantidad de espacios siga todo el buffer completo lo podemos manejar indistintamente mientras nos quede claro eso sí entonces en el caso de que tengamos estaciones de reserva o una estación de reserva como va a ser generalizada esto es que ella va a

emitir a todas las unidades funcionales fíjense que esa estación de reserva estaría haciendo la función de despacho si estaría siendo unidad de despacho lo único que está despachando instrucciones en orden de perdón en desorden que tiene que tener ese rol de poder despachar varias instrucciones al mismo tiempo etcétera según la cantidad de diferentes unidades funcionales que tenga si

tenemos estaciones de reserva dedicadas esto es una o un grupo de estaciones de reserva dedicada por cada unidad funcional hacen una emisión simple o sea tienen una única salida sí si tengo una unidad de una estación de reserva o un buffer de estaciones de

reserva centralizado que desde ahí alimenta a distintas unidades funcionales se entiende que son distintas unidades o al menos como yo lo hablé recién en distintas unidades funcionales con distinta funcionalidad punto fijo punto flotante etcétera entonces la estación de reserva tiene que hacer

el despacho a esas unidades funcionales de acuerdo al tipo de instrucción podemos tener un caso intermedio en donde supongamos que dentro del grupo o dentro de la parte de punto fijo de mi procesador tengo una estación de reserva y que tiene tres unidades funcionales de

punto fijo por ejemplo entonces puede emitir de a tres instrucciones de puntos fijos eso sería un intermedio todo para la pregunta que hiciste danna de que no entendiste ese sería el otro extremo y entonces tendríamos las dos combinaciones si leonel se siguen utilizando de hecho

de alguna manera en la micro arquitectura de intel trabajan de esa manera si pasan de orden a desorden y después es como que el despacho está en la parte del desorden pero ya se despachan instrucciones que se sabe que se pueden ejecutar entonces no hay bloqueos de instrucciones y esa es la gran diferencia esa es la

gran ventaja de incluir estaciones de reserva que yo permito la emisión en desorden esto es que no hay instrucciones que porque no se pueden mandar la ejecución bloquean instrucciones que están atrás entonces si se les ordenan cosas de que cualquiera se puede emitir y luego se despachan la ciudad hacia la hacia la unidad funcional que la requiera

acuérdense que es lo que el bloque vimos que era clarísimo lo que vimos es una arquitectura muy genérica dentro de todas las arquitecturas de power pc de ibm se parece bastante a la arquitectura genérica que vimos ahora si miran ustedes busquen en google una arquitectura un pentium y si a grandes rasgos van a encontrar obviamente el phising si miran una

arquitectura lm del pressing la decodificación van a encontrar todos los componentes que estamos viendo pero no se parecen en nada a la arquitectura teórica que estuvimos analizando que es una arquitectura muy bien diferenciada y está con todos los elementos y cosas de esas incluso el intercambiando el grado de paralelismo cambia hay una parte en que es paralelo pero que puede pasar a ser

Frequently asked questions

Es un orden de ejecución de las instrucciones que no viola ninguna dependencia entre instrucciones y mantiene la consistencia computacional del algoritmo.

Se realiza en las estaciones de reserva con el fin de ocupar plenamente todas las unidades funcionales disponibles.

Representa la distancia desde el principio de una iteración hasta el principio de la iteración siguiente.