PDF de programación - Paralelismo en monoprocesadores - Planificación en ILP

Imágen de pdf Paralelismo en monoprocesadores - Planificación en ILP

Paralelismo en monoprocesadores - Planificación en ILPgráfica de visualizaciones

Publicado el 31 de Julio del 2017
725 visualizaciones desde el 31 de Julio del 2017
797,4 KB
79 paginas
Creado hace 9a (22/04/2015)
Paralelismo en

monoprocesadores

Planificación en ILP

Profesor: Mag. Marcelo Tosini
Cátedra: Arquitectura de Computadoras y técnicas Digitales
Carrera: Ingeniería de Sistemas
Ciclo: 4º año

1

Conceptos básicos

• Orden secuencial: orden de las instrucciones tal como surge de la
compilación tradicional. Las instrucciones de máquina respetan el
orden computacional impuesto por el código de alto nivel.

• Consistencia secuencial: orden de ejecución de las instrucciones que no
viola ninguna dependencia entre instrucciones (control, recursos o datos)
y, por lo tanto, mantiene la consistencia computacional del algoritmo.

• Secuencia (de ejecución): orden en que se ejecutan las instrucciones en

un procesador. La secuencia de ejecución puede diferir del orden
secuencial siempre y cuando no se pierda la consistencia secuencial.

2

Planificación

Reordenamiento de las instrucciones de un programa a fin de optimizar el uso

del procesador o aumentar la posibilidad de paralelismo.

Quien planifica:

• Compilador (Planificación estática): Reordenamiento de

instrucciones en tiempo de compilación para aumentar las
posibilidades de ejecución paralela.

• Procesador (Planificación dinámica): Selección de instrucciones

para ejecución a fin de ocupar plenamente todas las unidades
funcionales disponibles dentro del procesador.

3

Papel del compilador en la planificación

• Planificación estática:

Proporcionar código paralelo optimizado y libre de dependencias

Usada en procesadores antiguos sin capacidad de planificar
(primeros Superescalares y VLIW)

•Planificación dinámica:

Disparador de rendimiento

La detección y resolución de dependencias se realiza por hardware

Procesadores modernos (Escalares y Superescalares)

4

Tipos de Planificación de instrucciones en
ILP

• Planificación estática con optimización paralela

• Realizada por el compilador
• El procesador recibe código sin dependencias y optimizado para ejecución
paralela
• Procesadores VLIW

• Planificación dinámica sin optimización paralela estática

• Realizada por el procesador
• El procesador recibe código no optimizado para ejecución paralela
• Detecta y resuelve las dependencias
• Primeros procesadores ILP

• Planificación dinámica con optimización paralela estática

• Realizada por el procesador y el compilador
• El procesador recibe código optimizado para ejecución paralela
• Detecta y resuelve las dependencias
• Mayor parte de los procesadores superescalares

5

Diferencias entre compiladores
tradicionales e ILP

• Ejecución secuencial: no hay dependencias WAW ni WAR

• Criterios de asignación de registros:

• Los compiladores tradicionales maximizan la reutilización

de registros

• Los compiladores ILP evitan la reutilización de registros para

disminuir las dependencias WAR y WAW

• Los procesadores ILP necesitan más registros

• Dependencias de datos asociadas a referencias a memoria

• Sólo se tienen en cuenta para compiladores ILP

(adelantamiento de Loads)

6

Niveles de planificación estática

Planificación

de bloque básico

Planificación

de código

Planificación

de lazos

Planificación

global o de traza

i

R
e
n
d
m
e
n
t
o

i

i

N
v
e
l

d
e

p
a
r
a
e

l

l
i
s
m
o

e
x
t
r
a
d
o

í

7

Planificación de bloque básico

• Es la técnica de planificación más simple y menos efectiva

• Sólo las instrucciones dentro de un bloque básico son elegibles para

su reordenamiento

• Un bloque básico (BB) es una secuencia de código que no contiene

saltos

• Trabaja con listas de items (tareas, instrucciones) planificables de

las cuales se selecciona el item más adecuado en cada instante (ciclo
de ejecución)

• Se debe definir:

• Regla de selección: Permite seleccionar el conjunto de ítems

planificables

• Regla de elección de la mejor planificación: Selecciona del

conjunto el ítem más apto en un instante dado

8

Reglas de selección y elección de la
mejor planificación

• regla de selección: Son instrucciones elegibles

• No tienen dependencias con instrucciones anteriores
• Los recursos hardware necesarios están disponibles

• Elección de la mejor planificación: Buscar las instrucciones

que puedan causar paradas de otras instrucciones

• Basados en:

• Prioridad: pe.: distancia al final del bloque

• Criterios: Aplicación de un conjunto de criterios en un

orden determinado

• Número de sucesores
• Longitud de la vía más lenta

9

Ejemplo: DLX

for (I = 1 ; I <= 100 ; I++)
for (I = 1 ; I <= 100 ; I++)

x[I] = x[I] + s;
x[I] = x[I] + s;

lazo:
lazo:

LD
LD
f0, 0(r1)
f0, 0(r1)
ADDD f4, f0, f2
ADDD f4, f0, f2
SD
SD
0(r1), f4
0(r1), f4
SUBI
r1, r1, #8
r1, r1, #8
SUBI
BNEZ r1, lazo
BNEZ r1, lazo

; carga x[I]
; carga x[I]
; suma s
; suma s
; guarda x[I]
; guarda x[I]
; decrementa I
; decrementa I
; salta a inicio
; salta a inicio

Latencias:
Latencias:

ALU Pto Flotante : 3 ciclos
ALU Pto Flotante : 3 ciclos
ALU Pto Fijo
ALU Pto Fijo
: 1 ciclo
: 1 ciclo
Store : 1 ciclo
Store : 1 ciclo
Load : 2 ciclos
Load : 2 ciclos
: 2 ciclos
Saltos
Saltos
: 2 ciclos
10

Planificación en el DLX

Sin planificación

Con salto retardado

lazo:
lazo:

f0, 0(r1)
f0, 0(r1)

LD
LD
detención
detención
ADDD f4, f0, f2
ADDD f4, f0, f2
detención
detención
detención
detención
SD
SD
SUBI
SUBI
BNEZ r1, lazo
BNEZ r1, lazo
detención
detención

0(r1), f4
0(r1), f4
r1, r1, #8
r1, r1, #8

lazo:
lazo:

f0, 0(r1)
f0, 0(r1)

LD
LD
detención
detención
ADDD f4, f0, f2
ADDD f4, f0, f2
SUBI
SUBI
BNEZ r1, lazo
BNEZ r1, lazo
SD
SD

0(r1), f4
0(r1), f4

r1, r1, #8
r1, r1, #8

• SUBI y BNEZ suben a los slots de detención

del ADDD

• SD baja al slot de detención de BNEZ

Tiempo : 9 ciclos

Tiempo : 6 ciclos

11

Planificación arriba-abajo

Las operaciones se planifican en cuanto los operandos están disponibles

La mayoría de las operaciones comienzan tan pronto como es posible

La evaluación del salto se realiza en las primeras etapas del algoritmo

Pasos:

1. Selección del conjunto de instrucciones planificables (CP)
2. Elección de una instrucción del CP (preferentemente vía crítica)
3. Se planifica la instrucción.
4. Se rearma CP
5. Se repite desde 2. hasta que CP se vacíe

12

Planificación arriba-abajo

Armar un grafo de precedencia de instrucciones

• Cada nodo es una instrucción del bloque básico
• Cada arco indica la dependencia RAW entre los nodos que conecta
• Cada arco se marca con 2 valores:

• Latencia de la instrucción precedente (Li)
• Latencia total acumulada (La)
• Notación : (Li , La)

Parámetro:

• Earliest-Time (ET): para el sucesor de una instrucción planificada.

ET = tiempo actual + latencia de la instrucción planificada

13

Ejemplo

A = B + C – D

if E-D > 0 then

…..

Ld
r1, b(r0)
Ld
r2, c(r0)
Add
r3, r1, r2
Ld
r4, d(r0)
Sub
r5, r3, r4
Sd
r5, a(r0)
Ld
r6, e(r0)
Sub
r8, r6, r4
Cmp r9, r8, r0
r9, _then
Bc

Bloque básico

Instrucciones del bloque básico

14

Ejemplo…

Orden

Instrucción

Nemotecnico

Latencia (ns)

1:

2:

3:

4:

5:

6:

7:

8:

9:

Ld

Ld

Add

Ld

Sub

Sd

Ld

Sub

r1, b(r0)

r2, c(r0)

r3, r1, r2

r4, d(r0)

r5, r3, r4

r5, a(r0)

r6, e(r0)

r8, r6, r4

Cmp

r9, r8, r0

10:

Bc

r9, _then

Lb

Lc

Add

Ld

Sub

Sta

Le

Sub2

Cmp

Bc

2

2

3

2

3

1

2

3

5

2

15

Ejemplo

La traza de mayor latencia es la
del salto que tarda 12 ciclos de reloj

La planificación debiera adelantar esta
traza para que empiece cuanto antes

Lb

(2,2)

Lc

(2,2)

Add

(3,5)

Ld

(2,2)

Sub

(3,8)

Sta

(1,9)

(2,2)

Le
(2,2)

Sub2

(3,5)

Cmp

(5,10)

Bc

(2,12)

16

Existe una dependencia
de control entre BC y
Sta

Traza mas larga

Ejemplo
Planificación para tiempo 0

Ciclo

Conjunto de
planificables

Elegida

0

Lb , Lc, Ld , Le

Le

Lb

(2,2)

Lc

(2,2)

Add

(3,5)

Ld

(2,2)

Sub

(3,8)

Sta

(1,9)

(2,2)

Le
(2,2)

Sub2

(3,5)

Cmp

(5,10)

Bc

(2,12)

17

Ejemplo
Planificación para tiempo 1

Ciclo

0

1

Conjunto de
planificables

Lb , Lc, Ld , Le

Lb , Lc, Ld

Elegida

Le

Ld

Lb

(2,2)

Lc

(2,2)

Add

(3,5)

Ld

(2,2)

Sub

(3,8)

Sta

(1,9)

(2,2)

Sub2

ET = 2

(3,5)

Cmp

(5,10)

Bc

(2,12)

18

Ejemplo
Planificación para tiempo 2

Ciclo

0

1

2

Conjunto de
planificables

Lb , Lc, Ld , Le

Lb , Lc, Ld

Lb , Lc

Elegida

Le

Ld

Lb

Lb

(2,2)

Lc

(2,2)

Add

(3,5)

Sub

ET = 3

(3,8)

Sta

(1,9)

Sub2

ET = 3

(3,5)

Cmp

(5,10)

Bc

(2,12)

19

Ejemplo
Planificación para tiempo 3

Lc

(2,2)

ET = 4

Add

(3,5)

Conjunto de
planificables

Lb , Lc, Ld , Le

Lb , Lc, Ld

Lb , Lc

Elegida

Le

Ld

Lb

Ciclo

0

1

2

3

Lc , Sub2

Sub2

Sub

ET = 3

(3,8)

Sta

(1,9)

Sub2

ET = 3

(3,5)

Cmp

(5,10)

Bc

(2,12)

20

Ejemplo
Planificación para tiempo 4

Ciclo

0

1

2

3

4

Conjunto de
planificables

Lb , Lc, Ld , Le

Lb , Lc, Ld

Lb , Lc

Lc , Sub2

Lc

Elegida

Le

Ld

Lb

Sub2

Lc

Lc

(2,2)

ET = 4

Add

(3,5)

Sub

ET = 3

(3,8)

Sta

(1,9)

Cmp

ET = 6

(5,10)

Bc

(2,12)

21

Ejemplo
Planificación para tiempo 6

Ciclo

0

1

2

3

4

6

Conjunto de
planificables

Lb , Lc, Ld , Le

Lb , Lc, Ld

Lb , Lc

Lc , Sub2

Lc

Add , Cmp

Elegida

Le

Ld

Lb

Sub2

Lc

Cmp

ET = 6

Add

(3,5)

Sub

ET = 3

(3,8)

Sta

(1,9)

Cmp

ET = 6

(5,10)

Bc

(2,12)

22

Ejemplo
Planificación para tiempo 7

Ciclo

0

1

2

3

4

6

7

Conjunto de
planificables

Lb , Lc, Ld , Le

Lb , Lc, Ld

Lb , Lc

Lc , Sub2

Lc

Add , Cmp

Add

Elegida

Le

Ld

Lb

Sub2

Lc

Cmp

Add

ET = 6

Add

(3,5)

Sub

ET = 3

(3,8)

Sta

(1,9)

Bc

ET = 11

(2,12)

23

Ejemplo
Planificación para tiempo 10

Ciclo

0

1

2

3

4

6

7

10

Conjunto de
planificables

Lb , Lc, Ld , Le

Lb , Lc, Ld

Lb , Lc

Lc , Sub2

Lc

Add , Cmp

Add

Sub

Elegida

Le

Ld

Lb

Sub2

Lc

Cmp

Add

Sub

Sub

ET = 10

(3,8)

Sta

(1,9)

Bc

ET = 11

(2,12)

24

Ejemplo
Planificación para tiempo 11

Ciclo

0

1

2

3

4

6

7

10

11

Conjunto de
planificables

Lb , Lc, Ld , Le

Lb , Lc, Ld

Lb , Lc

Lc , Sub2

Lc

Add , Cmp

Add

Sub

Bc

Elegida

Le

Ld
  • Links de descarga
http://lwp-l.com/pdf5872

Comentarios de: Paralelismo en monoprocesadores - Planificación en ILP (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad