View
3
Download
0
Category
Preview:
Citation preview
Tutorías con Grupos Reducidos (TGR)
Sesión 2: Paralelismo a Nivel de Instrucción
ESTRUCTURA DE COMPUTADORES
Grupo de Arquitectura de Computadores (GAC)
Dyer Rolán García (GAC) Paralelismo a nivel de instrucción Curso 2011/2012 1 / 43
Índice
1 Introducción a la segmentación de cauce
2 Dependencias y paralelismo a nivel de instrucción
3 Riesgos en la ejecución
4 Cauce segmentado en el MIPS
5 Procesamiento de saltos
6 Ejercicios
Dyer Rolán García (GAC) Paralelismo a nivel de instrucción Curso 2011/2012 2 / 43
Índice
1 Introducción a la segmentación de cauce
2 Dependencias y paralelismo a nivel de instrucción
3 Riesgos en la ejecución
4 Cauce segmentado en el MIPS
5 Procesamiento de saltos
6 Ejercicios
Dyer Rolán García (GAC) Paralelismo a nivel de instrucción Curso 2011/2012 3 / 43
Repaso: procesador multicicloProcesador MIPS multiciclo visto en FC:
Estado 0
Inicio
LeerMemSelALUA = 0
IoD = 0EscrIREscrPC
FuentePC = 00
selALUB = 01ALUOp = 00
Estado 1
SelALUA = 0selALUB = 11ALUOp = 00
(Op = “LW”) o (Op = “SW”)
Estado 4
Estado 5
Acceso amemoria
Acceso amemoria
(Op = “LW”) (Op = “SW”)
Cálculodirección dememoria
Etapa de escritura
Estado 3
Estado 2
SelALUA = 1selALUB = 10ALUOp = 00
LeerMemIoD = 1
EscrMemI0D = 1
EscrRegMem2Reg = 1RegDest = 0
Finalización dela operación
(Op
=Arit
m-L
ógic
as)
Ejecución de laoperación
(Op =
“beq”)
Finalizaciónde salto condicional
Estado 8
SelALUA = 1selALUB = 00ALUOp = 01EscrPCCond
FuentePC = 01
(Op = “j”)
Finalizaciónde jump
Estado 9
EscrPCFuentePC = 10
Estado 7
Estado 6
SelALUA = 1selALUB = 00ALUOp = 10
RegDest = 1EscrReg
Mem2Reg=0
Dyer Rolán García (GAC) Paralelismo a nivel de instrucción Curso 2011/2012 4 / 43
Segmentación de cauce
Comparación entre la implementación multiciclo y la segmentada:
Instrucciones 1 2 3 4 5 6 7 8 9 10 11 12lw $1,16($2) IF ID EX MEM WB
addi $2,$2,4 IF ID EX MEM
beq $3,$0,loop IF ID EX
Instrucciones 1 2 3 4 5 6 7 8 9 10 11 12lw $1,16($2) IF ID EX MEM WB
addi $2,$2,4 IF ID EX MEM WB
beq $3,$0,loop IF ID EX MEM WB
Dyer Rolán García (GAC) Paralelismo a nivel de instrucción Curso 2011/2012 5 / 43
Operaciones multiciclo
Algunas operaciones tardan más de un ciclo de reloj en la etapa deejecuciónLas instrucciones en punto flotante tienen la misma segmentación quelas enteras, pero con las siguientes modificaciones:
▶ La etapa EX tiene diferente latencia dependiendo de la instrucción▶ Existen diversas unidades funcionales para cada tipo de operación
Dyer Rolán García (GAC) Paralelismo a nivel de instrucción Curso 2011/2012 6 / 43
Índice
1 Introducción a la segmentación de cauce
2 Dependencias y paralelismo a nivel de instrucción
3 Riesgos en la ejecución
4 Cauce segmentado en el MIPS
5 Procesamiento de saltos
6 Ejercicios
Dyer Rolán García (GAC) Paralelismo a nivel de instrucción Curso 2011/2012 7 / 43
DefiniciónEl paralelismo a nivel de instrucción (Instruction Level Parallelism-ILP) esla capacidad de procesar instrucciones en paralelo. Viene determinado porel número de instrucciones que pueden solaparse en las etapas de unprocesador.
Dos instrucciones son dependientes si se deben ejecutar en orden:1 Indican la posibilidad de un riesgo (una instrucción no se puede
ejecutar en el ciclo de reloj que le correspondería)2 Determinan el orden en el cual se deben calcular los resultados.3 Establecen la cantidad máxima de paralelismo que se puede obtener.
Hay tres tipos de dependencias:de datos o verdaderasde nombre (antidependencias y dependencias de salida)de control
Dyer Rolán García (GAC) Paralelismo a nivel de instrucción Curso 2011/2012 8 / 43
Índice
1 Introducción a la segmentación de cauce
2 Dependencias y paralelismo a nivel de instrucción
3 Riesgos en la ejecución
4 Cauce segmentado en el MIPS
5 Procesamiento de saltos
6 Ejercicios
Dyer Rolán García (GAC) Paralelismo a nivel de instrucción Curso 2011/2012 9 / 43
Riesgos en la ejecución
El CPI ideal de un procesador segmentado es unoSin embargo, hay situaciones, denominadas riesgos (hazards), queimpiden que se ejecute la siguiente instrucción del flujo deinstrucciones durante su ciclo de reloj.
Tipos de riesgos▶ Estructurales: el hardware no puede soportar la combinación de
instrucciones que se quieren ejecutar en el mismo ciclo.▶ De control: surgen del problema de determinar la instrucción correcta que
se tiene que ejecutar después de un salto.▶ De datos: surgen de la existencia de dependencias entre las instrucciones
(RAW, WAW, WAR).
Dyer Rolán García (GAC) Paralelismo a nivel de instrucción Curso 2011/2012 10 / 43
Índice
1 Introducción a la segmentación de cauce
2 Dependencias y paralelismo a nivel de instrucción
3 Riesgos en la ejecución
4 Cauce segmentado en el MIPS
5 Procesamiento de saltos
6 Ejercicios
Dyer Rolán García (GAC) Paralelismo a nivel de instrucción Curso 2011/2012 11 / 43
Unidad de control
Camino de datos segmentado con las señales de control identificadas
Dyer Rolán García (GAC) Paralelismo a nivel de instrucción Curso 2011/2012 12 / 43
Anticipación
Permite obtener las entradas de la ALU de cualquier registro desegmentación, no solo del ID/EX
Dyer Rolán García (GAC) Paralelismo a nivel de instrucción Curso 2011/2012 13 / 43
Anticipación
Permite obtener las entradas de la ALU de cualquier registro desegmentación, no solo del ID/EX
Dyer Rolán García (GAC) Paralelismo a nivel de instrucción Curso 2011/2012 13 / 43
Bloqueo
En algunas situaciones la anticipación no evita el riesgo RAW y sehace necesario bloquear el flujo de instrucciones en el cauce
Dyer Rolán García (GAC) Paralelismo a nivel de instrucción Curso 2011/2012 14 / 43
Bloqueo
En algunas situaciones la anticipación no evita el riesgo RAW y sehace necesario bloquear el flujo de instrucciones en el cauce
Necesitamos parar Necesitamos parar un cicloun ciclo
Dyer Rolán García (GAC) Paralelismo a nivel de instrucción Curso 2011/2012 14 / 43
Índice
1 Introducción a la segmentación de cauce
2 Dependencias y paralelismo a nivel de instrucción
3 Riesgos en la ejecución
4 Cauce segmentado en el MIPS
5 Procesamiento de saltos
6 Ejercicios
Dyer Rolán García (GAC) Paralelismo a nivel de instrucción Curso 2011/2012 15 / 43
Procesamiento de saltos
Los riesgos de control se originan a partir de las instrucciones desalto condicional que determinan la secuencia de instrucciones quehay que procesar tras ellas.Cuando se ejecuta un salto, éste puede cambiar o no el contador deprograma (PC): salto efectivo / salto no efectivo.El método más simple para tratar con saltos consiste en purgar elcauce y repetir la búsqueda de la instrucción siguiente al salto una vezque se detecta el salto.Pueden provocar una mayor pérdida de rendimiento para un cauceMIPS que un riesgo de datos.Unos ciclos de parada en cada salto no parecen mucho, pero en lapráctica puede suponer una pérdida del rendimiento de entre un 10%y un 30%, dependiendo de la frecuencia de saltos y de la latencia delos mismos (etapa en la que se decide el salto).
Dyer Rolán García (GAC) Paralelismo a nivel de instrucción Curso 2011/2012 16 / 43
Predicción de salto
Existen dos tipos de predicción de saltos:Predicción fija: la predicción no depende del comportamientodinámico del salto, el hardware siempre realiza la misma predicciónpara cada salto.Predicción dinámica: depende del comportamiento del salto entiempo de ejecución y cambiará si el salto cambia su comportamientodurante la ejecución.
Dyer Rolán García (GAC) Paralelismo a nivel de instrucción Curso 2011/2012 17 / 43
Salto retardado
Las instrucciones que se captan después de una instrucción de salto yantes de la modificación del PC se ejecutan en su totalidad.
▶ Se dice que estas instrucciones ocupan el hueco de retardo.El compilador debe ubicar después de la instrucción de salto:
▶ Una instrucción que no modifique la semántica del programa.▶ Una NOP.
La tarea del compilador es hacer las instrucciones sucesorasválidas y útiles.
Dyer Rolán García (GAC) Paralelismo a nivel de instrucción Curso 2011/2012 18 / 43
Índice
1 Introducción a la segmentación de cauce
2 Dependencias y paralelismo a nivel de instrucción
3 Riesgos en la ejecución
4 Cauce segmentado en el MIPS
5 Procesamiento de saltos
6 Ejercicios
Dyer Rolán García (GAC) Paralelismo a nivel de instrucción Curso 2011/2012 19 / 43
Ejercicio 1
Enunciado:Identifica todas las dependencias y su tipo en el siguiente código:
1 add $2, $5, $42 add $4, $2, $53 lw $4, 100($2)4 sub $10, $4, $16
Dyer Rolán García (GAC) Paralelismo a nivel de instrucción Curso 2011/2012 20 / 43
Ejercicio 1
Solución:1 Dependencias verdaderas.2 Antidependencias.3 Dependencias de salida.
add $2, $5, $4add $4, $2, $5lw $4, 100($2)sub $10, $4, $16Dye r Ro lá n Ga rc ía
Dyer Rolán García (GAC) Paralelismo a nivel de instrucción Curso 2011/2012 21 / 43
Ejercicio 1
Solución:1 Dependencias verdaderas.2 Antidependencias.3 Dependencias de salida.
add $2, $5, $4add $4, $2, $5lw $4, 100($2)sub $10, $4, $16Dye r Ro lá n Ga rc ía
Dyer Rolán García (GAC) Paralelismo a nivel de instrucción Curso 2011/2012 21 / 43
Ejercicio 1
Solución:1 Dependencias verdaderas.2 Antidependencias.3 Dependencias de salida.
add $2, $5, $4add $4, $2, $5lw $4, 100($2)sub $10, $4, $16Dye r Ro lá n Ga rc ía
Dyer Rolán García (GAC) Paralelismo a nivel de instrucción Curso 2011/2012 21 / 43
Ejercicio 2
Enunciado:El siguiente código se ejecuta en un procesador segmentado de 5etapas con salto fijo no efectivo que se decide en la 2ª etapa:
etiq: slt $t3, $a0, $a1bne $t3, $0, salirlw $t0, 0($a0)add $t2, $t2, $t0addi $a0, $a0, -4j etiq
salir: sw $t2, 0($a0)
Dibuja el diagrama multiciclo para una iteración y calcula el CPI si $a0inicialmente tenía el valor 0x1000FF10 y $a1 el valor 0x1000FF00.
Dyer Rolán García (GAC) Paralelismo a nivel de instrucción Curso 2011/2012 22 / 43
Ejercicio 2
Solución (Primera iteración):
Dyer Rolán García (GAC) Paralelismo a nivel de instrucción Curso 2011/2012 23 / 43
Ejercicio 2
Solución (Iteración de salida):
Dyer Rolán García (GAC) Paralelismo a nivel de instrucción Curso 2011/2012 24 / 43
Ejercicio 2
Solución (CPI):
CPIsec1 =4 ciclosent + (5 it × 10 ciclos/it) + 6 ciclossal
(5 it × 6 inst/it) + 3 instsal=
6033 = 1,81
Dyer Rolán García (GAC) Paralelismo a nivel de instrucción Curso 2011/2012 25 / 43
Ejercicio 3
Enunciado:Considere la siguiente secuencia de instrucciones empleada parauna copia de memoria a memoria:
lw $6, 100($5)sw $6, 200($5)
Muestre los cambios necesarios en el camino de datos para permitir queun código como este se ejecute sin bloqueos. Incluya las ecuaciones deanticipación para cada una de las señales de control de cada multiplexor.
Dyer Rolán García (GAC) Paralelismo a nivel de instrucción Curso 2011/2012 26 / 43
Ejercicio 3
Solución:
MEM
EX/MEM MEM/WB
Forwarding unit
MUX
MUX
MEM/WBRegisterRd
(MEM/WB RegisterRd == EX/MEM RegisterRd) and EX/MEM.MemWrite and MEM/WB.MemtoReg=0
EX/MEMRegisterRd
MemtoRegMemWrite
Dyer Rolán García (GAC) Paralelismo a nivel de instrucción Curso 2011/2012 27 / 43
Ejercicio 4
Enunciado:Calcular el CPI de un camino de datos segmentado con el siguienterepertorio de instrucciones: 22% cargas, 11% almacenamientos,49% tipo R, 16% saltos y 2% bifurcaciones. Suponer que la mi-tad del tiempo la instrucción que sigue a una instrucción de cargadepende del resultado de la carga. Considerar que las bifurcacio-nes tienen siempre 1 ciclo de reloj de retardo (CPIj=2). Suponerademás que el 25% de los saltos son efectivos.
¿Cuántas veces es más rápida una máquina segmentada (con CPI = 1), queno retarda la segmentación, si se compara con la máquina descrita?
Dyer Rolán García (GAC) Paralelismo a nivel de instrucción Curso 2011/2012 28 / 43
Ejercicio 4
Solución a):
CPI = 0, 22×(0, 5×1+0, 5×2)+ 0, 11×1 + 0, 49×1+0, 16×(0, 25×2+0, 75×1)+0, 02×2 = 1,17
Solución b):Rmaq1
Rmaq2=
CPImaq2
CPImaq1= 1,17
Dyer Rolán García (GAC) Paralelismo a nivel de instrucción Curso 2011/2012 29 / 43
Ejercicio 5 (I)
Enunciado:Supongamos un procesador segmentado de 4 etapas (IF, ID,EX/MEM y WB) con salto fijo no efectivo. En la etapa EX/MEMse realiza la ejecución de las instrucciones o el acceso a memoria yen WB se realiza la post-escritura. Además, este procesador tieneuna unidad de anticipación en la etapa EX/MEM y una unidad dedetección en la etapa ID.
a)¿Es posible ejecutar el siguiente código sin introducir ninguna burbuja?
lw $t0, 0($a0)add $t2, $t2, $t0
Dyer Rolán García (GAC) Paralelismo a nivel de instrucción Curso 2011/2012 30 / 43
Ejercicio 5 (y II)
b)Muestra el diagrama multiciclo del siguiente código:
addi $8, $0, 0etiq: lw $2, 0($4)
addi $4, $4, 4add $9, $9, $2addi $8, $8, 1slti $1, $8, 2bne $1, $0, etiqaddi $9, $9, 1
Dyer Rolán García (GAC) Paralelismo a nivel de instrucción Curso 2011/2012 31 / 43
Ejercicio 5
Solución (a):
lw $t0, 0($a0)add $t2, $t2, $t0
IF ID EX/MEM WBIF ID EX/MEM WB
$t0
García
Dyer Rolán García (GAC) Paralelismo a nivel de instrucción Curso 2011/2012 32 / 43
Ejercicio 5
Solución (b):addi $8, $0, 0etiq: lw $2, 0($4)addi $4, $4, 4add $9, $9, $2addi $8, $8, 1slti $1, $8, 2bne $1, $0, etiqaddi $9, $9, 1
IF ID EX/MEM WB
IF ID EX/MEM WB
IF ID EX/MEM WB
IF ID EX/MEM WB
IF ID EX/MEM WB
IF ID EX/MEM WB
IF ID EX/MEM WB
$8
IF
Siguiente iteración
Dyer Rolán García (GAC) Paralelismo a nivel de instrucción Curso 2011/2012 33 / 43
Ejercicio 6 (I)Enunciado:
En un procesador segmentado MIPS con salto fijo no efectivo,en donde el salto se decide en la etapa ID y tiene una unidad deanticipación en la etapa de EX, es decir, se anticipan los datos a laALU o unidades de punto flotante, se está ejecutando el siguientecódigo:
Loop:addi $s2, $s2, 4lwc1 $f1, 0($s2)mul.s $f1, $f1, $f2lwc1 $f2, 0x7000($s2)add.s $f2, $f1, $f2swc1 $f2, 0x7000($s2)bne $s2, $s1, Loopadd $s1, $s2, $t0
Dyer Rolán García (GAC) Paralelismo a nivel de instrucción Curso 2011/2012 34 / 43
Ejercicio 6 (y II)
Suponiendo que la latencia de la unidad de multiplicación enpunto flotante es de 4, la de suma en punto flotante de 2 yambas unidades son segmentadas,
a) Dibuja el diagrama multiciclo para una iteración donde el salto fueseefectivo.b) ¿Cómo se puede mejorar el rendimiento de la secuencia anteriorreordenando el código?c) Dibuja el diagrama multiciclo para una iteración donde el salto fueseefectivo si en lugar de salto fijo no efectivo se utiliza salto retardado.d) ¿Cómo se puede aprovechar el hueco del salto con la técnica de saltoretardado en el código de este ejercicio?
Dyer Rolán García (GAC) Paralelismo a nivel de instrucción Curso 2011/2012 35 / 43
Ejercicio 6
Solución (a):
Loop:
addi $s2, $s2, 4
lwc1 $f1, 0($s2)
mul.s $f1, $f1, $s2
lwc1 $f2, 0x7000($s2)
add.s $f2, $f1, $s2
swc1 $f2, 0x7000($s2)
bne $s2, $s1, Loop
add $s1, $s2, $t0
IF ID MEM
IF ID EX MEM
IF ID EX1
IF ID EX MEM
IF ID
ID EX
ID EX WB
IF
WBEX
WB
EX2 EX3 EX4 MEM WB
WB
EX1 EX2 MEM WB
MEM WB
MEM$f1
$f1
$f2
$s2
IF
IF
Dyer Rolán García (GAC) Paralelismo a nivel de instrucción Curso 2011/2012 36 / 43
Ejercicio 6
Solución (b):Loop: addi $s2, $s2, 4lwc1 $f1, 0($s2)mul.s $f1, $f1, $s2lwc1 $f2, 0x7000($s2)add.s $f2, $f1, $s2swc1 $f2, 0x7000($s2)bne $s2, $s1, Loopadd $s1, $s2, $t0
Dyer Rolán García (GAC) Paralelismo a nivel de instrucción Curso 2011/2012 37 / 43
Ejercicio 6
Solución (b):Loop: addi $s2, $s2, 4lwc1 $f1, 0($s2)mul.s $f1, $f1, $s2lwc1 $f2, 0x7000($s2)add.s $f2, $f1, $s2swc1 $f2, 0x7000($s2)bne $s2, $s1, Loopadd $s1, $s2, $t0
Loop: lwc1 $f1, 4($s2)addi $s2, $s2, 4mul.s $f1, $f1, $s2lwc1 $f2, 0x7000($s2)add.s $f2, $f1, $s2swc1 $f2, 0x7000($s2)bne $s2, $s1, Loopadd $s1, $s2, $t0
Dyer Rolán García (GAC) Paralelismo a nivel de instrucción Curso 2011/2012 37 / 43
Ejercicio 6
Solución (c):Loop: addi $s2, $s2, 4lwc1 $f1, 0($s2)mul.s $f1, $f1, $s2lwc1 $f2, 0x7000($s2)add.s $f2, $f1, $s2swc1 $f2, 0x7000($s2)bne $s2, $s1, Loopadd $s1, $s2, $t0addi $s2, $s2, 4
IF ID MEM
IF ID EX MEM
IF ID EX1
IF ID EX MEM
IF ID
ID EX
ID EX WB
IF
WBEX
WB
EX2 EX3 EX4MEMWB
WB
EX1 EX2MEMWB
MEMWB
MEM
$f1
$f1
$f2
$s2
IF
IF
ID EX MEMWB
IF ID MEMWBEX
Dyer Rolán García (GAC) Paralelismo a nivel de instrucción Curso 2011/2012 38 / 43
Ejercicio 6
Solución (d):Loop: addi $s2, $s2, 4lwc1 $f1, 0($s2)mul.s $f1, $f1, $s2lwc1 $f2, 0x7000($s2)add.s $f2, $f1, $s2swc1 $f2, 0x7000($s2)bne $s2, $s1, Loopadd $s1, $s2, $t0
Dyer Rolán García (GAC) Paralelismo a nivel de instrucción Curso 2011/2012 39 / 43
Ejercicio 6
Solución (d):Loop: addi $s2, $s2, 4lwc1 $f1, 0($s2)mul.s $f1, $f1, $s2lwc1 $f2, 0x7000($s2)add.s $f2, $f1, $s2swc1 $f2, 0x7000($s2)bne $s2, $s1, Loopadd $s1, $s2, $t0
Loop: lwc1 $f1, 4($s2)addi $s2, $s2, 4mul.s $f1, $f1, $s2lwc1 $f2, 0x7000($s2)add.s $f2, $f1, $s2bne $s2, $s1, Loopswc1 $f2, 0x7000($s2)add $s1, $s2, $t0
Dyer Rolán García (GAC) Paralelismo a nivel de instrucción Curso 2011/2012 39 / 43
Ejercicio 7
Enunciado:Identifica todas las dependencias del siguiente código:
salto: addi $4, $4, 4lwc1 $f18, 100($4)sub.s $f18, $f12, $f18swc1 $f18, 100($4)add $3, $6, $3beq $3, $8, saltonop
Si usamos el procesador MIPS habitual pero con salto retardado:
a) ¿Cuál sería el diagrama multiciclo para una iteración?b) Reordena el código para optimizar el rendimiento.
Dyer Rolán García (GAC) Paralelismo a nivel de instrucción Curso 2011/2012 40 / 43
Ejercicio 7
Solución (a):1 Dependencias verdaderas.2 Dependencias de salida.
salto: addi $4, $4, 4lwc1 $f18, 100($4)sub.s $f18, $f12, $f18 swc1 $f18, 100($4)add $3, $6, $3beq $3, $8, saltonop
Dyer Rolán García (GAC) Paralelismo a nivel de instrucción Curso 2011/2012 41 / 43
Ejercicio 7
Solución (a):1 Dependencias verdaderas.2 Dependencias de salida.
salto: addi $4, $4, 4lwc1 $f18, 100($4)sub.s $f18, $f12, $f18 swc1 $f18, 100($4)add $3, $6, $3beq $3, $8, saltonop
Dyer Rolán García (GAC) Paralelismo a nivel de instrucción Curso 2011/2012 41 / 43
Ejercicio 7
Solución (b):salto: addi $4, $4, 4lwc1 $f18, 100($4)sub.s $f18, $f12, $f18 swc1 $f18, 100($4)add $3, $6, $3beq $3, $8, saltonop
Dyer Rolán García (GAC) Paralelismo a nivel de instrucción Curso 2011/2012 42 / 43
Ejercicio 7
Solución (b):salto: addi $4, $4, 4lwc1 $f18, 100($4)sub.s $f18, $f12, $f18 swc1 $f18, 100($4)add $3, $6, $3beq $3, $8, saltonop
salto: lwc1 $f18, 104($4)add $3, $6, $3sub.s $f18, $f12, $f18 addi $4, $4, 4beq $3, $8, saltoswc1 $f18, 100($4)
Dyer Rolán García (GAC) Paralelismo a nivel de instrucción Curso 2011/2012 42 / 43
Ejercicio 7
Solución (c):salto: addi $4, $4, 4lwc1 $f18, 100($4)sub.s $f18, $f12, $f18swc1 $f18, 100($4)add $3, $6, $3beq $3, $8, saltonop
IF ID MEM
IF ID EX MEM
IF ID EX1
IF ID EX MEM
ID
IF EX
WBEX
WB
EX2MEMWB
WB
EX MEMWB
MEMWB
$4
$f18
$f18
IF
ID
Dyer Rolán García (GAC) Paralelismo a nivel de instrucción Curso 2011/2012 43 / 43
Recommended