SlideShare una empresa de Scribd logo
Problema
Dado el siguiente código:
inicio: LD F0,0(R2) % i1
LD F2,0(R4) % i2
LD F4,0(R6) % i3
ADDD F0,F0,F2 % i4
ADDD F0,F0,F4 % i5
DIVD F0,F0,F8 % i6
SD 0(R1),F0 % i7
ADDI R2,R2,#8 % i8
ADDI R4,R4,#8 % i9
ADDI R6,R6,#8 % i10
ADDI R1,R1,#8 % i11
JUMP inicio % i12
a) Obtenga el diagrama de flujo de datos de la secuencia. Considere que todas las instrucciones tienen una
latencia de 2 ciclos.
b) Transforme la secuencia en instrucciones VLIW para que pueda ser ejecutada por un procesador con un
formato de instrucción que permite emitir simultáneamente operaciones a cualquiera de las cuatro unidades
funcionales (son polivalentes). Considere las mismas latencias que en el apartado anterior y que puede efectuar
los reordenamientos que crea oportunos, siempre que no afecten al resultado.
c) Desenrolle el bucle original 4 veces y planifíquelo en forma de instrucciones VLIW teniendo en cuentas las
características del procesador y las latencias. Utilice todos los registros que sean necesarios y compacte el
código VLIW lo máximo posible.
d) ¿Qué mejora en el rendimiento se ha obtenido si se compara el código del apartado b con el del c?
1/2
Solución
a)
b) Son posibles varias soluciones según se realice el ordenamiento de las operaciones en las instrucciones. En la
solución que se propone, se han agrupado las instrucciones de incremento de los índices con la salvedad de R1.
Si se optase por incrementar R1 antes de la instrucción de almacenamiento SD 0(R1), F0 sería necesario
realizar un decremento negativo para compensar, es decir, SD -8(R1), F0.
Unidad funcional 1 Unidad funcional 2 Unidad funcional 3 Unidad funcional 4
inicio: LD F0, 0(R2) LD F2, 0(R4) LD F4, 0(R6) ADDI R2, R2, #8
ADDI R4, R4, #8
ADDD F0, F0, F2 ADDI R6, R6, #8
ADDD F0, F0, F4
DIVD F0, F0, F8
SD 0(R1), F0 ADDI R1, R1, #8 JMP inicio
2/2
i4
i6
i7
i1
i9
i2
i3
i11
i10
i12
2 2
2
2
2
2
2
2
2
2
i8
2
2
2
2
i5
2
c) La secuencia de código que se obtiene tras desenrrollar 4 veces el bucle original es la siguiente:
inicio: LD F0,0(R2) // Iter 1
LD F2,0(R4) // Iter 1
LD F4,0(R6) // Iter 1
LD F10,8(R2) // Iter 2
LD F12,8(R4) // Iter 2
LD F14,8(R6) // Iter 2
LD F20,16(R2) // Iter 3
LD F22,16(R4) // Iter 3
LD F24,16(R6) // Iter 3
LD F30,24(R2) // Iter 4
LD F32,24(R4) // Iter 4
LD F34,24(R6) // Iter 4
ADDD F0,F0,F2 // Iter 1
ADDD F0,F0,F4 // Iter 1
DIVD F0,F0,F8 // Iter 1
ADDD F10,F10,F12 // Iter 2
ADDD F10,F10,F14 // Iter 2
DIVD F10,F10,F8 // Iter 2
ADDD F20,F20,F22 // Iter 3
ADDD F20,F20,F24 // Iter 3
DIVD F20,F20,F8 // Iter 3
ADDD F30,F30,F32 // Iter 4
ADDD F30,F30,F34 // Iter 4
DIVD F30,F30,F8 // Iter 4
SD 0(R1),F0 // Iter 1
SD 8(R1),F10 // Iter 2
SD 16(R1),F20 // Iter 3
SD 24(R1),F30 // Iter 4
ADDI R2,R2,#32
ADDI R4,R4,#32
ADDI R6,R6,#32
ADDI R1,R1,#32
JUMP inicio
Una transformación en código VLIW realizando la máxima compactación posible se muestra en la siguiente
tabla. Los colores representan: 1ª iteración (negro) e instrucciones auxiliares, 2ª iteración (rojo), 3ª iteración
(verde), 4ª iteración (morado).
Unidad funcional 1 Unidad funcional 2 Unidad funcional 3 Unidad funcional 4
inicio: LD F0, 0(R2) LD F2, 0(R4) LD F10, 8(R2) LD F12, 8(R4)
LD F20, 16(R2) LD F22, 16(R4) LD F30, 24(R2) LD F32, 24(R4)
ADDD F0, F0, F2 LD F4, 0(R6) ADDD F10, F10, F12 LD F14, 8(R6)
ADDD F20, F20, F22 LD F24, 16(R6) ADDD F30, F30, F32 LD F34, 24(R6)
ADDD F0, F0, F4 ADDD F10, F10, F14
ADDD F20, F20, F24 ADDD F30, F30, F34
DIVD F0, F0, F8 DIVD F10, F10, F8 ADDI R2, R2, #32
DIVD F20, F20, F8 DIVD F30, F30, F8 ADDI R4, R4, #32
SD 0(R1), F0 SD 8(R1), F10 ADDI R6, R6, #32
SD 16(R1), F20 ADDI R1, R1, #32 SD 24(R1), F30 JMP inicio
d) El código consume 10 instrucciones VLIW ocupando un total de 160 bytes (10 instrucciones * 16 bytes por
instrucción). En comparación con el código VLIW sin desenrrollar, el rendimiento, prácticamente, se ha
incrementado por 4 ya que el número de ciclos por iteración es de 11 en comparación con el caso sin
desenrrollar que es 10 ciclos pero procesando 1 único elemento, y no 4 como en el caso que nos ocupa.
3/2

Más contenido relacionado

PPTX
Guia 5 3 2015 c2
PDF
Deco 7
DOCX
Ejemplos de win cupl
DOCX
Segundo Laboratorio - Sistemas Digitales I
DOCX
Cuarto Laboratorio - Sistemas Digitales I
DOCX
Primer Laboratorio - Sistemas Digitales I
PDF
PDF
Guia 5 3 2015 c2
Deco 7
Ejemplos de win cupl
Segundo Laboratorio - Sistemas Digitales I
Cuarto Laboratorio - Sistemas Digitales I
Primer Laboratorio - Sistemas Digitales I

La actualidad más candente (6)

PDF
Flip flop fidel cordova
DOCX
PPTX
Arquitectura De Los Computadore
DOCX
Portafolio-Arquitectura de Maquinas
DOC
Proyecto 7
DOCX
Mis preguntas del blog y las ultimas .l.
Flip flop fidel cordova
Arquitectura De Los Computadore
Portafolio-Arquitectura de Maquinas
Proyecto 7
Mis preguntas del blog y las ultimas .l.
Publicidad

Destacado (20)

PDF
Portafolio de servicios
PDF
Pdf cuadernillo comunicación docente44
PDF
Reference
PDF
Alumni Profile in Thomas Aquinas College Newsletter
PPTX
Introduccion a-la-programacion
PDF
Manual de-reciclaje las ceibas
PDF
Ic3 enunciado ejerc1 (2)
PDF
Toyota New RAV4 Catálogo
PPT
PPT
TRABALHO REALIZADO PELA 8ªSÉRIE-PROFªTUSNELDA
PPS
Um desafio de Deus
PPS
ApresentaçãO Giro 2
PPT
2013 Politica de Pyganflor
PDF
Divulgação de Resultados 2T09
PPT
Motion Graphics para Mobile TV em Portugal
PPTX
Modelos de Datos, Clasificación, Propósitos y Componentes
PPS
Numeros racionais
DOC
11103500 61599 sagar (1)
PPTX
Presentació motxi
PDF
Hoja de asistencia 5
Portafolio de servicios
Pdf cuadernillo comunicación docente44
Reference
Alumni Profile in Thomas Aquinas College Newsletter
Introduccion a-la-programacion
Manual de-reciclaje las ceibas
Ic3 enunciado ejerc1 (2)
Toyota New RAV4 Catálogo
TRABALHO REALIZADO PELA 8ªSÉRIE-PROFªTUSNELDA
Um desafio de Deus
ApresentaçãO Giro 2
2013 Politica de Pyganflor
Divulgação de Resultados 2T09
Motion Graphics para Mobile TV em Portugal
Modelos de Datos, Clasificación, Propósitos y Componentes
Numeros racionais
11103500 61599 sagar (1)
Presentació motxi
Hoja de asistencia 5
Publicidad

Similar a Problema vliw 2 (20)

PPT
C P U Uniciclo
PDF
Problemas m2
PPT
Organizacion de la unidad central de procesamiento
PPTX
Proceso del ciclo de intuccions de los procesadores actuales.
PPT
Organizacion-de-la-unidad-central-de-procesamiento
PPTX
Arquitectura de computadores segmentacion software
PDF
Guía de ejercicios resueltos y propuestos tema 4
DOC
Apuntes del pic 16f84
PDF
02c.Unidad central de proceso
PDF
Maquinas secuenciales sincronicas
PDF
TEMA 1.pdf
PPSX
Aplicaciones con el pic 16f84
PPSX
Aplicaciones con el pic 16f84
PDF
Todas las instrucciones son de un ciclo salvo aquellas que incluyen saltos qu...
PDF
Conjunto de 35 instrucciones
PDF
CONJUNTO DE INSTRUCCIONES PIC16F877A
PPTX
Componentes en bloques del procesador
PDF
Itcr el 3310 i semestre 2008 soluciones
DOCX
PPTX
Lab.270910.instrucciones basicas del pic 16 f84a
C P U Uniciclo
Problemas m2
Organizacion de la unidad central de procesamiento
Proceso del ciclo de intuccions de los procesadores actuales.
Organizacion-de-la-unidad-central-de-procesamiento
Arquitectura de computadores segmentacion software
Guía de ejercicios resueltos y propuestos tema 4
Apuntes del pic 16f84
02c.Unidad central de proceso
Maquinas secuenciales sincronicas
TEMA 1.pdf
Aplicaciones con el pic 16f84
Aplicaciones con el pic 16f84
Todas las instrucciones son de un ciclo salvo aquellas que incluyen saltos qu...
Conjunto de 35 instrucciones
CONJUNTO DE INSTRUCCIONES PIC16F877A
Componentes en bloques del procesador
Itcr el 3310 i semestre 2008 soluciones
Lab.270910.instrucciones basicas del pic 16 f84a

Más de Pedro Plopezh (7)

PDF
Guialeboro2017 ok
PDF
5 diversidad anaya
PDF
Solucion11
PDF
Problema redes 1
PDF
Problema escalar 2
PDF
Wdlxtut
PDF
Guialeboro2017 ok
5 diversidad anaya
Solucion11
Problema redes 1
Problema escalar 2
Wdlxtut

Último (20)

PPTX
Welcome to the 8th Physical Science Class 2025-2026
PDF
Integrando la Inteligencia Artificial Generativa (IAG) en el Aula
PDF
biología es un libro sobre casi todo el tema de biología
PDF
ciencias-1.pdf libro cuarto basico niños
PDF
Fundamentos_Educacion_a_Distancia_ABC.pdf
PPTX
caso clínico iam clinica y semiología l3.pptx
PDF
1. Intrdoduccion y criterios de seleccion de Farm 2024.pdf
DOCX
PLAN DE CASTELLANO 2021 actualizado a la normativa
PDF
Gasista de unidades unifuncionales - pagina 23 en adelante.pdf
PDF
Híper Mega Repaso Histológico Bloque 3.pdf
DOCX
Informe_practica pre Final.docxddadssasdddddddddddddddddddddddddddddddddddddddd
PDF
PFB-MANUAL-PRUEBA-FUNCIONES-BASICAS-pdf.pdf
PDF
Escuela de Negocios - Robert kiyosaki Ccesa007.pdf
PDF
MATERIAL DIDÁCTICO 2023 SELECCIÓN 1_REFORZAMIENTO 1° BIMESTRE.pdf
DOCX
UNIDAD DE APRENDIZAJE 5 AGOSTO tradiciones
PDF
Teologia-Sistematica-Por-Lewis-Sperry-Chafer_060044.pdf
PDF
Tomo 1 de biologia gratis ultra plusenmas
PDF
Salvese Quien Pueda - Andres Oppenheimer Ccesa007.pdf
PDF
Crear o Morir - Andres Oppenheimer Ccesa007.pdf
PDF
5°-UNIDAD 5 - 2025.pdf aprendizaje 5tooo
Welcome to the 8th Physical Science Class 2025-2026
Integrando la Inteligencia Artificial Generativa (IAG) en el Aula
biología es un libro sobre casi todo el tema de biología
ciencias-1.pdf libro cuarto basico niños
Fundamentos_Educacion_a_Distancia_ABC.pdf
caso clínico iam clinica y semiología l3.pptx
1. Intrdoduccion y criterios de seleccion de Farm 2024.pdf
PLAN DE CASTELLANO 2021 actualizado a la normativa
Gasista de unidades unifuncionales - pagina 23 en adelante.pdf
Híper Mega Repaso Histológico Bloque 3.pdf
Informe_practica pre Final.docxddadssasdddddddddddddddddddddddddddddddddddddddd
PFB-MANUAL-PRUEBA-FUNCIONES-BASICAS-pdf.pdf
Escuela de Negocios - Robert kiyosaki Ccesa007.pdf
MATERIAL DIDÁCTICO 2023 SELECCIÓN 1_REFORZAMIENTO 1° BIMESTRE.pdf
UNIDAD DE APRENDIZAJE 5 AGOSTO tradiciones
Teologia-Sistematica-Por-Lewis-Sperry-Chafer_060044.pdf
Tomo 1 de biologia gratis ultra plusenmas
Salvese Quien Pueda - Andres Oppenheimer Ccesa007.pdf
Crear o Morir - Andres Oppenheimer Ccesa007.pdf
5°-UNIDAD 5 - 2025.pdf aprendizaje 5tooo

Problema vliw 2

  • 1. Problema Dado el siguiente código: inicio: LD F0,0(R2) % i1 LD F2,0(R4) % i2 LD F4,0(R6) % i3 ADDD F0,F0,F2 % i4 ADDD F0,F0,F4 % i5 DIVD F0,F0,F8 % i6 SD 0(R1),F0 % i7 ADDI R2,R2,#8 % i8 ADDI R4,R4,#8 % i9 ADDI R6,R6,#8 % i10 ADDI R1,R1,#8 % i11 JUMP inicio % i12 a) Obtenga el diagrama de flujo de datos de la secuencia. Considere que todas las instrucciones tienen una latencia de 2 ciclos. b) Transforme la secuencia en instrucciones VLIW para que pueda ser ejecutada por un procesador con un formato de instrucción que permite emitir simultáneamente operaciones a cualquiera de las cuatro unidades funcionales (son polivalentes). Considere las mismas latencias que en el apartado anterior y que puede efectuar los reordenamientos que crea oportunos, siempre que no afecten al resultado. c) Desenrolle el bucle original 4 veces y planifíquelo en forma de instrucciones VLIW teniendo en cuentas las características del procesador y las latencias. Utilice todos los registros que sean necesarios y compacte el código VLIW lo máximo posible. d) ¿Qué mejora en el rendimiento se ha obtenido si se compara el código del apartado b con el del c? 1/2
  • 2. Solución a) b) Son posibles varias soluciones según se realice el ordenamiento de las operaciones en las instrucciones. En la solución que se propone, se han agrupado las instrucciones de incremento de los índices con la salvedad de R1. Si se optase por incrementar R1 antes de la instrucción de almacenamiento SD 0(R1), F0 sería necesario realizar un decremento negativo para compensar, es decir, SD -8(R1), F0. Unidad funcional 1 Unidad funcional 2 Unidad funcional 3 Unidad funcional 4 inicio: LD F0, 0(R2) LD F2, 0(R4) LD F4, 0(R6) ADDI R2, R2, #8 ADDI R4, R4, #8 ADDD F0, F0, F2 ADDI R6, R6, #8 ADDD F0, F0, F4 DIVD F0, F0, F8 SD 0(R1), F0 ADDI R1, R1, #8 JMP inicio 2/2 i4 i6 i7 i1 i9 i2 i3 i11 i10 i12 2 2 2 2 2 2 2 2 2 2 i8 2 2 2 2 i5 2
  • 3. c) La secuencia de código que se obtiene tras desenrrollar 4 veces el bucle original es la siguiente: inicio: LD F0,0(R2) // Iter 1 LD F2,0(R4) // Iter 1 LD F4,0(R6) // Iter 1 LD F10,8(R2) // Iter 2 LD F12,8(R4) // Iter 2 LD F14,8(R6) // Iter 2 LD F20,16(R2) // Iter 3 LD F22,16(R4) // Iter 3 LD F24,16(R6) // Iter 3 LD F30,24(R2) // Iter 4 LD F32,24(R4) // Iter 4 LD F34,24(R6) // Iter 4 ADDD F0,F0,F2 // Iter 1 ADDD F0,F0,F4 // Iter 1 DIVD F0,F0,F8 // Iter 1 ADDD F10,F10,F12 // Iter 2 ADDD F10,F10,F14 // Iter 2 DIVD F10,F10,F8 // Iter 2 ADDD F20,F20,F22 // Iter 3 ADDD F20,F20,F24 // Iter 3 DIVD F20,F20,F8 // Iter 3 ADDD F30,F30,F32 // Iter 4 ADDD F30,F30,F34 // Iter 4 DIVD F30,F30,F8 // Iter 4 SD 0(R1),F0 // Iter 1 SD 8(R1),F10 // Iter 2 SD 16(R1),F20 // Iter 3 SD 24(R1),F30 // Iter 4 ADDI R2,R2,#32 ADDI R4,R4,#32 ADDI R6,R6,#32 ADDI R1,R1,#32 JUMP inicio Una transformación en código VLIW realizando la máxima compactación posible se muestra en la siguiente tabla. Los colores representan: 1ª iteración (negro) e instrucciones auxiliares, 2ª iteración (rojo), 3ª iteración (verde), 4ª iteración (morado). Unidad funcional 1 Unidad funcional 2 Unidad funcional 3 Unidad funcional 4 inicio: LD F0, 0(R2) LD F2, 0(R4) LD F10, 8(R2) LD F12, 8(R4) LD F20, 16(R2) LD F22, 16(R4) LD F30, 24(R2) LD F32, 24(R4) ADDD F0, F0, F2 LD F4, 0(R6) ADDD F10, F10, F12 LD F14, 8(R6) ADDD F20, F20, F22 LD F24, 16(R6) ADDD F30, F30, F32 LD F34, 24(R6) ADDD F0, F0, F4 ADDD F10, F10, F14 ADDD F20, F20, F24 ADDD F30, F30, F34 DIVD F0, F0, F8 DIVD F10, F10, F8 ADDI R2, R2, #32 DIVD F20, F20, F8 DIVD F30, F30, F8 ADDI R4, R4, #32 SD 0(R1), F0 SD 8(R1), F10 ADDI R6, R6, #32 SD 16(R1), F20 ADDI R1, R1, #32 SD 24(R1), F30 JMP inicio d) El código consume 10 instrucciones VLIW ocupando un total de 160 bytes (10 instrucciones * 16 bytes por instrucción). En comparación con el código VLIW sin desenrrollar, el rendimiento, prácticamente, se ha incrementado por 4 ya que el número de ciclos por iteración es de 11 en comparación con el caso sin desenrrollar que es 10 ciclos pero procesando 1 único elemento, y no 4 como en el caso que nos ocupa. 3/2