Tutorías con Grupos Reducidos (TGR) 1cm Sesión 2...

Post on 02-Aug-2020

1 views 0 download

Transcript of Tutorías con Grupos Reducidos (TGR) 1cm Sesión 2...

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