Problema 1
Problema 1
Problema 1
miento
del Parale
lismo
en las
RA
U
T
A
r
q
TEC
u
I
i
t
U
e
c
Q
t
R
u
E
r
A
S
a
D
s
A
R
O
D
TA
U
V
P
L
IW
M
O
C
EPIE UNSA
PROBLEMA #1
Reduccin de Dependencias entre Instrucciones
Desenrollado de bucle
PROBLEMA #1
0 Supongamos que un procesador VLIW cuyas
PROBLEMA #1
Unidad
Funcion
al
Latenc
ia
Op.
1
Op.
2
ALU
Memoria
Saltos
Op.
3
Op.
4
Operaciones
Realizadas
por la Unidad
Comparacin/Suma/Re
sta entera,
operaciones lgicas
Cargas y
Almacenamiento
X
Operacione
s1
Operaciones
2
ALU/Memori
a
ALU/Memori
a
ALU/Memori
a
ALU/Memori
a
ALU/Memori
a
ALU/Memori
a
Slot 1
Slot 2
Saltos
Condicionales e
Incondicionales
Operaciones
3
Operaciones
4
Ciclo
ALU/Saltos
ALU
ALU/Saltos
ALU
ALU/Saltos
ALU
Slot 3
Slot 4
PROBLEMA #1
void sum(int c[ ], int a[ ], int b[ ],
int n)
{ int i;
for (i=0; i<n; i++) c[i]=a[i]
+b[i];
}
int i
for(i=0; i<1000;
i++)
c[i] = a[i] + b[i];
PROBLEMA #1
loop: lw R5, 0(R2) ; cargo elemento de a
lw R6, 0(R3) ; cargo elemento de b
add R7, R6, R5 ; Sumo a + b
sw
0(R1), R7
; Guardo a + b en c
addi R1, R1, #8 ; incrementa la direccin
addi R2, R2, #8
addi R3, R3, #8
subi R4, R4, #1 ; decrementa la variable del
; bucle
bnez R4, loop ; condicin para el bucle
PROBLEMA #1
ALU
latencia
=1
Memoria latencia
=3
Saltos
latencia
=4
ALU/Memor ALU/Memor
ia
ia
loop
lw r5, 0(r2)
lw r6, 0(r3)
loop:
lw
lw
add
sw
addi
addi
addi
subi
bnez
R5, 0(R2)
R6, 0(R3)
R7, R6, R5
0(R1), R7
R1, R1, #8
R2, R2, #8
R3, R3, #8
R4, R4,
R4, loop
ALU/Saltos
ALU
Ciclo
1
2
3
sw 0(r1), r7
6
7
8
PROBLEMA #1
BUCLE SIN
DESENROLLAR
BUCLE
DESENROLLADO
4 VECES
loop:
lw
r5, 0(r2)
lw r6, 0(r3)
lw r8, 8(r2)
lw r9, 8(r3)
lw r11, 16(r2)
lw r12, 16(r3)
lw r14, 24(r2)
lw r15, 24(r3)
add r07 r06, r05
add r10 r09, r08
add r13 r12, r11
add r16 r15, r14
sw 0(r1), r07
sw 8(r1), r10
sw 16(r1), r13
sw 24(r1), r16
addi
r1, r1, #8
addi
r2, r2, #8
addi
subi
bnez
r3, r3, #8
r4, r4, #4
r4, loop
PROBLEMA #1
Iteracin
1
Iteracin
2
Iteracin 3
Iteracin 4
lw r5, 0(r2)
lw r8, -8(r2)
lw r11, -16(r2)
lw r6, 0(r3)
lw r14, -24(r2)
lw r9, -8(r3)
lw r12, -16(r3)
lw r15, -24(r3)
add r10, r9,
r8
sw -8(r1), r10
PROBLEMA #1
loop
ALU/Memoria
ALU/Memori
a
ALU/Salto
s
ALU
Ciclo
lw r5, 0(r2)
lw r6, 0(r3)
lw r8, 8(r2)
lw r9, 8(r3)
lw r11, 16(r2)
lw r12, 16(r3)
lw r14, 24(r2)
lw r15, 24(r3)
sw 0(r1), r07
sw 8(r1), r10
sw 16(r1), r13
sw 24(r1), r16
Slot 1
Slot 2
Slot 3
4
5
6
7
Slot 4
cdigo desenrollado.
0 Ciclos por Iteracin = 9
0 Operaciones realizadas = 22
0 Operaciones por ciclo = 2.44
0 Palabras de memoria utilizadas = 36
0 Palabras de memoria necesarias = 22
0 El porcentaje de memoria ocupado sin codificar ninguna
operacin es 14 de 36 (38.889%).
0 Se necesitan 9 ciclos por iteracin, pero se ha reducido el