Gabriel Enrique González · Transcript · · Updated
Arquitectura de Computadoras y Técnicas Digitales 2020 Clase: Final de ILP y Procesadores VLIW – Transcript
Video by Gabriel Enrique González · Watch the original on YouTube
Summary
AI-generated from the transcript. Verify details against the source video.
- Gabriel Enrique González explica que las técnicas de segmentación de software actúan con iteraciones dependientes entre sí y requieren calcular el tiempo de inicio de iteración.
- Los procesadores VLIW agrupan varias operaciones en un formato largo de instrucción donde la planificación es externa y realizada por el compilador.
- La arquitectura EPIC desarrollada por Intel y HP introduce paralelismo explícito y predicación completa de instrucciones en comparación con el modelo VLIW clásico.

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.
si ustedes no me hacen acordar yo no me acuerdo ya estoy siendo a alguien se le puso a grabar entonces si le voy a grabar porque la puso alguien a grabar que no sé quién es ya se está grabando hacemos como siempre termina la grabación termina la grabación y cuando termina de
procesarla google se la pasó como decía cuando se habla de planificación pero orientada a procesadores que tienen capacidad de paralelismo entonces nada surgen nuevas técnicas orientadas a básicamente detectar por parte del
compilador qué instrucciones son independientes entre sí y por otro lado tratar de reordenar las para poner las juntas básicamente sí santiago iturralde ya la clase pasada había comentado de que este año nadal ha dado todo este evento que hay con él con la pandemia
etcétera y con la suspensión de clases y vamos a suspender la promoción de la materia solo porque no tengo ni siquiera un conocimiento de cómo va a funcionar el examen el examen parcial o sea los exámenes parcial recuperatorio etcétera [Música] seguramente no van a ser difíciles pero
el miedo que tengo es que sean demasiado fáciles y no quiero regalar una materia sin haber evaluado de una manera que me parezca justa lo estuvimos analizando con la y con los otros integrantes de la cátedra lo estuvimos hablando en reuniones con secretaria académica con la gestión para todas las materias se les autorizó
este año digamos a que más allá de que podemos todos los años de que podamos cambiar nuestros esquemas de promoción o promoción o incluso nuestros esquemas de trabajos prácticos etcétera a fin de adaptar la materia a lo que se considera las metodologías que tenemos de evaluación ahora si bien respeto a móvil como herramienta
para educación a distancia etcétera [Música] no creo que en este primer año en el que todos ustedes se meten a usar moldes nosotros nos metemos a usar móvil y hacer cuestionarios sólo con hacer un cuestionario a distancia en el cual no podemos hacer muchas evaluaciones de cómo lo hicieron de cuántos estaban juntos etcétera
etcétera y les demos toda la promoción de la materia está entonces ya la semana pasada les había comentado de que bueno al menos por este año no va a haber no va a haber un esquema de promoción antes de seguir con la clase
alguna otra consulta tienen no hay ningún problema pero así no superponemos la parte de cualquier consulta que quieran hacerme con con hirviendo ya la clase nada [Música]
bueno continuó entonces con la con la clase donde había quedado sí bueno entre las diferentes técnicas vimos que había estoy haciendo tipo repaso de lo que se vio la clase pasada vimos que había por lo menos tres grandes grupos de técnicas técnicas sencillas que actúan sobre sobre pedazos
breves de código particularmente sobre los bloques básicos que son los bloques de instrucciones que hay entre saltos básicamente mirándolo un poco más alto nivel' podríamos decir que sería en el grupo de instrucciones puras que hay dentro de una rama de no una rama hizo un while o lo que fuere dentro de un dentro de la estructura de control de un programa sí
digamos del bloque básico son técnicas sencillas pero que no tienen mucha aumentar mucho la eficiencia o el paralelismo porque trabajan con pequeños grupos de instrucciones y después el siguiente grupo no tanto por el tamaño o por la extensión de las instrucciones que abarca sino por la repetitividad son aquellas técnicas que trabajan con
bucles con lazos sin con grupos repetitivos de instrucciones y entonces ahí habíamos empezado a ver vimos que había dos técnicas particularmente o dos grupos de técnicas aquellas que trabajan con lazos en donde las iteraciones [Música]
independientes entre sí y otros en dónde las iteraciones son dependientes entre sí a ver si me dan un minuto que acaba de sonar el timbre por favor un minuto
hola estoy acá de nuevo bueno entonces dentro de ese primer grupo como una técnica representativa vimos la semana pasada el loop en rolling sí que es más intuitiva que uno puede sin aprender
la metodología en particular ve cómo funcionaba la técnica sí y después dentro del segundo grupo de aquellas que reordenan iteraciones que tienen dependencias entre sí estaba la de segmentación de software así que yo les comenté que en realidad este tipo de técnicas de segmentación de software son más complicadas uno tiene que trabajar o
sea tiene que aprenderse la técnica una técnica en particular de reordenamiento obviamente uno no se aprende para hacerlas porque esto lo hace el compilador no pero me refiero nosotros acá tendríamos que aprender una en particular y aplicarla y en general trabajan con heurísticas y son técnicas medio complejas y entonces yo si lo que les comenté la semana pasada es que para
estas técnicas de segmentación de software en general trato de no tomar como a nivel teórico pero no tomo resolución de ejercicios porque pueden llegar a ser medio complicados sí y en forma intuitiva no se pueden hacer y son técnicas complicadas habíamos quedado en este punto sí
o sea en las técnicas de segmentación de software y habíamos empezado a analizar un poco cómo funcionaban estas técnicas lo que vimos es que en este grupo de técnicas pero en que abro la pizarrita la pizarrita mía para poder
para poder trabajar en este grupo de técnicas las integraciones dependen una década del anterior digamos o de iteraciones anteriores y cada cada nueva iteración se inicia un cierto tiempo después ese tiempo después depende de qué instrucción de una iteración actual depende de qué instrucción de la luna
iteración previa y entonces ese tiempo el compilador lo calcula y es lo que en general llamamos tiempo de inicio de iteración si para cada nueva iteración y me subí y ese tiempo si uno lo analiza completo va a depender de las dependencias de datos que tenga una nueva iteración respecto de la anterior
y va a depender de las dependencias estructurales que existen en ese procesador o sea qué cantidad de recursos para hacer operaciones de multiplicación suma o acceso a memoria o lo que sea tenga el procesador si entonces la clase pasada habíamos más o menos dejado por acá analizando las restricciones de ese
valor m debidas a las dependencias si es debida a las dependencias de datos si entonces vemos que se valore el psuv y tiene un máximo que es el tiempo secuencial de integración que sería el caso de qué por alguna razón la última sentencia o la última instrucción de inmigración
genere el valor que utiliza la primera instrucción de la siguiente iteración entonces de alguna manera las iteraciones van a tener que estar ordenadas una exactamente abajo de la otra si en superponer ordenada entonces ese sería el tiempo te sube leo tiempo secuencial si tiempo lineal
que me limita por arriba por abajo ya habíamos visto antes que dos iteraciones van a poder ejecutarse sin problemas siempre que se respete el tiempo crítico si ese tiempo crítico es cuanto antes debe empezar una iteración que la que le continúa para que puedan ejecutarse sí y entonces el m sube ese tiempo de inicio
de iteración ese intervalo de inicio de iteración relativo a los datos o relativo a las dependencias de datos va a ser esto que era el cociente que habíamos visto cuando estudiamos trazas sea la sumatoria de todos los tiempos / la sumatoria de todas las instancias si lo que sería la latencia del ciclo / las distancias del
ciclo pero en este caso aplicado a la latencia de la trastá que tiene el tiempo crítico dividido la distancia entre iteraciones de la traza que tiene el tiempo crítico sí las restricciones por recursos esta fue la última filmina que habíamos estado mirando también van a limitar el número de operaciones que se pueden hacer pero
porque limitan el número de operaciones de un mismo tipo que pueden ejecutarse simultáneamente entonces a grandes rasgos lo que yo veo es si en una iteración tengo cierta cantidad de operaciones de un tipo determinado por ejemplo multiplicaciones y sé que una multiplicación tarda cierta cantidad de ciclos por ejemplo tres ciclos y tengo 5 multiplicaciones entonces voy
a tener 15 ciclos para hacer multiplicaciones si mi procesador tiene por ejemplo 3 multiplicadores dentro de su alud entonces redondeando acuérdense que estos promedios voy a poder o sea voy a necesitar los 15 ciclos divididos los tres multiplicadores 5 ciclos en el mejor de los casos 5 ciclos en paralelo
para hacer multiplicaciones está bien entonces esa ese cálculo para ese recurso como yo yo recién con la multiplicación lo hago para todo el resto de los recursos si genéricamente lo podemos llegar a generalizar para operaciones de puntofijo operaciones de punto flotante operaciones de acceso memoria y me va a dar cuál es la