Documentos de Académico
Documentos de Profesional
Documentos de Cultura
monoprocesadores
Procesadores VLIW
Profesor: Mag. Marcelo Tosini
Ctedra: Arquitectura de Computadoras y tcnicas Digitales
Carrera: Ingeniera de Sistemas
Ciclo: 4 ao
Arquitectura VLIW bsica
Data de principios de los aos 70
Muy apoyada en la tecnologa de compiladores que optimicen el cdigo
Una instruccin especifica varias operacones agrupadas en un formato
largo de instruccin con longitudes desde 128 a 1024 bits
La planificacin de ejecucin de las operaciones es externa al procesador
El rendimiento del procesador queda determinado por la calidad del
compilador
Formato de instrucciones
inst 1 (op1)
inst 1 (op1) 100
inst 2 (op2)
inst 2 (op2) 101
inst 3 (op3)
inst 3 (op3) 102
inst 4 (op4)
inst 4 (op4) 103
inst 5 (op5)
inst 5 (op5) 104
inst 6 (op6)
inst 6 (op6) 105
inst 7 (op7)
inst 7 (op7) 106
inst 8 (op8)
inst 8 (op8) 107
inst 9 (op9)
inst 9 (op9) 108
inst 10 (op10)
inst 10 (op10) 109
Procesador
tradicional
operacin 1
operacin 1 100
101
102
103
104
105
106
107
108
109
Procesador
VLIW
NOP
NOP
operacin 5
operacin 5
NOP
NOP
operacin 2
operacin 2
operacin 3
operacin 3
operacin 6
operacin 6
NOP
NOP
operacin 7
operacin 7
operacin 4
operacin 4
NOP
NOP
NOP
NOP
NOP
NOP
operacin 8
operacin 8
operacin 10
operacin 10
NOP
NOP
NOP
NOP
operacin 9
operacin 9
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
operacin 11
operacin 11
operacin 12
operacin 12
operacin 14
operacin 14
operacin 16
operacin 16
NOP
NOP
operacin 13
operacin 13
NOP
NOP
operacin 15
operacin 15
una instruccin = una operacin una instruccin = varias operaciones
VLIW vs. Superescalar
0
1
2
3
4
5
6
Dynamic
scheduler
Dynamic
scheduler
FX 2
FX 1
FP
load/
store
32-64 bits
Superescalar
0
1
2
3
4
5
6
FX 2
FX 1
FP
load/
store
128-512 bits
VLIW
Instruction memory
Instruction memory
VLIW vs. Superescalar
Diferente divisin de tareas entre software (compilador) y hardware (procesador)
programa
programa
Optimizacin
(compilador)
Optimizacin
(compilador)
Anlisis de
dependencias
(compilador)
Anlisis de
dependencias
(compilador)
Planificacin y
reserva de recursos
(compilador)
Planificacin y
reserva de recursos
(compilador)
Anlisis de
dependencias
(procesador)
Anlisis de
dependencias
(procesador)
Planificacin y
reserva de recursos
(procesador)
Planificacin y
reserva de recursos
(procesador)
S
u
p
e
r
e
s
c
a
l
a
r
Ejecucin
(procesador)
Ejecucin
(procesador)
V
L
I
W
VLIW vs. Superescalar
En VLIW no se puede determinar si hay dependencias en ciertos casos
Ejemplo:
lw r1, 100(r2) ; si r2 = r4+100, hay dependencia!!!
sw r3, 0(r4)
Procesador superescalar
comprueba si la direccin r2 + 100 es igual a r4 + 0
igual => secuencializa las instrucciones
NO igual => paraleliza las instrucciones
Procesador superescalar
comprueba si la direccin r2 + 100 es igual a r4 + 0
igual => secuencializa las instrucciones
NO igual => paraleliza las instrucciones
Procesador VLIW
No puede determinarlo => el compilador siempre secuencializa
Procesador VLIW
No puede determinarlo => el compilador siempre secuencializa
Arquitectura VLIW: ventajas
La planificacin de la ejecucin esttica de instrucciones es
realizada por el compilador:
Menos lgica en la unidad de control del procesador
Mayor frecuencia de reloj (organizacin mas sencilla)
Mayor disponibilidad de especio para otras unidades
(Pe: unidades funcionales)
Es una arquitectura muy difundida en circuitos embebidos
DSPs
Multimedia (placas de sonido, video, etc.)
Arquitectura VLIW: Limitaciones
Tamao del cdigo
Mucho desperdicio de memoria por instrucciones NOP
Compatibilidad de cdigo objeto
Hay que recompilar todo el cdigo fuente para cada nueva
versin de procesador
Baja ocupacin de las unidades funcionales
Conflictos en el acceso al banco de registros desde varias unidades
Conflictos de prediccin esttica de accesos a memoria
Imposibilidad de determinacin de latencias en caso de posibles
fallos en accesos a Ram o cach
Dificultades en la prediccin esttica de saltos
Tamao del cdigo
nop
load
store
nop
nop
add
a
nop
sub
nop
nop
nop
add
b
nop
add
c
nop
nop
mul
nop
nop
nop
Formato de instruccin
VLIW desempaquetado
til para ejecucin
en las UF
Formato de instruccin
VLIW empaquetado
til para almacenar
en la memoria
add
a
store
load
sub
add
b
add
c
mul
nop
B 1
A 0
C 0
C 1
A 0
B 1
D 1
A 1
A B C D
0
Separador de instrucciones VLIW (1 = ltima instruccin)
Unidad funcional en la que se ejecutar la instruccin
B
Tamao del cdigo
En qu momento se descomprimen las instrucciones de memoria?
Carga en la I-Cach
Transferencia de bloques a la cache es lenta
(bus de acceso a RAM cuello de botella)
El algoritmo de compresin puede ser complejo ya que se
dispone de tiempo
se ocupa mucho especio de cache si las instrucciones estn
descomprimidas
Lectura de la I-Cach (Fetching)
En la cach se mantienen las instrucciones empaquetadas
La descompresin en la etapa de fetching puede ser lenta
(agrega una o ms etapas de segmentacin al proceso)
Ocupacin de las unidades funcionales
Meta principal: Mantener ocupadas todas las unidades funcionales
Problema:
Para N unidades funcionales usables en cada ciclo de reloj
Se leen 2 operandos fuente por unidad
Se escribe un resultado por unidad
Register
Bank
UF1
UF2
UFn