departamento de automática - grupo de computación de...

73
Prof. Dr. José Antonio de Frutos Redondo Dr. Raúl Durán Díaz Curso 2010-2011 Departamento de Automática Arquitectura e Ingeniería de Computadores Tema 2 Estructuras segmentadas

Upload: dangduong

Post on 27-Sep-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Departamento de Automática - Grupo de computación de ...hpc.aut.uah.es/~rduran/Areinco/pdf/n_tema2.pdf · número de ciclos que separan la iniciación de dos operaciones (la distancia

Prof. Dr. José Antonio de Frutos RedondoDr. Raúl Durán DíazCurso 2010-2011

Departamento de AutomáticaArquitectura e Ingeniería de Computadores

Tema 2Estructuras segmentadas

Page 2: Departamento de Automática - Grupo de computación de ...hpc.aut.uah.es/~rduran/Areinco/pdf/n_tema2.pdf · número de ciclos que separan la iniciación de dos operaciones (la distancia

© J. A. de Frutos Redondo, R. Durán 2005

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

2. Estructuras segmentadas 2V1.4

Tema 2. Estructuras segmentadas

Noción de segmentaciónRendimiento.Tipos de cauces.Cauces no lineales y tablas de reserva.Cálculo de latencias en cauces.

Segmentación de instruccionesArquitectura DLX.Encauzamiento de instrucciones en el DLX.Parones.Múltiples unidades funcionales.

Page 3: Departamento de Automática - Grupo de computación de ...hpc.aut.uah.es/~rduran/Areinco/pdf/n_tema2.pdf · número de ciclos que separan la iniciación de dos operaciones (la distancia

© J. A. de Frutos Redondo, R. Durán 2005

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

2. Estructuras segmentadas 3V1.4

Noción de segmentación

¿Qué es la segmentación o pipelining?

Técnica para la generación de paralelismo en monoprocesadores.

Consiste en dividir una función en subfunciones independientes que pueden realizarse simultáneamente (trabajo en cadena).

En un instante determinado, se está trabajando sobre un número de elementos igual al número de etapas => paralelismo.

Page 4: Departamento de Automática - Grupo de computación de ...hpc.aut.uah.es/~rduran/Areinco/pdf/n_tema2.pdf · número de ciclos que separan la iniciación de dos operaciones (la distancia

© J. A. de Frutos Redondo, R. Durán 2005

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

2. Estructuras segmentadas 4V1.4

Noción de segmentación

Instrucciones

Resultados

Estructura convencional

UNIDAD DE PROCESAMIENTO DE INSTRUCCIÓN

Instrucciones

Resultados

Proceso encauzado (pipe-line)

f1 f2 f3 f4 f5 f1 f2 f3 f4 f5

Subfunción 1 Subfunción 2 Subfunción 3 Subfunción n

f1 f2 f3 fn

CAUCE PARA EL PROCESO DE INSTRUCCIONES

Page 5: Departamento de Automática - Grupo de computación de ...hpc.aut.uah.es/~rduran/Areinco/pdf/n_tema2.pdf · número de ciclos que separan la iniciación de dos operaciones (la distancia

© J. A. de Frutos Redondo, R. Durán 2005

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

2. Estructuras segmentadas 5V1.4

Etapas del cauce

Evolución de los elementos a través de las etapas del cauce:

f1f2f3f4f5

Subfunción

TiempoT1 T2 T3 T4 T5 T6

Tiempos del proceso segmentado

Inst. 1Inst. 1

Inst. 1

Inst. 1Inst. 1

Inst. 2Inst. 2

Inst. 2Inst. 2

Inst. 2

Inst. 3

Inst. 3Inst. 3

Inst. 3

Inst. 4Inst. 4

Inst. 5Inst. 4Inst. 5Inst. 6

Page 6: Departamento de Automática - Grupo de computación de ...hpc.aut.uah.es/~rduran/Areinco/pdf/n_tema2.pdf · número de ciclos que separan la iniciación de dos operaciones (la distancia

© J. A. de Frutos Redondo, R. Durán 2005

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

2. Estructuras segmentadas 6V1.4

Mejora del rendimiento

Mejora en el rendimiento:Suponemos que se cumple aproximadamente:

T0 => tiempo en ejecutar el proceso completo sin segmentarT => tiempo en ejecutar una etapak => número de etapas de que consta el cauce

Sin embargo, el tiempo en ejecutar n procesos sin segmentar:

kT

T 0=

0TnnsT ×=

Page 7: Departamento de Automática - Grupo de computación de ...hpc.aut.uah.es/~rduran/Areinco/pdf/n_tema2.pdf · número de ciclos que separan la iniciación de dos operaciones (la distancia

© J. A. de Frutos Redondo, R. Durán 2005

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

2. Estructuras segmentadas 7V1.4

Rendimiento del cauce

El tiempo en ejecutar el proceso segmentado sobre un elemento en k etapas será:

Y desde que sale el primer resultado del cauce, va saliendo uno nuevo cada T, por lo que el tiempo de procesar nelementos será:

Con todo esto, la ganancia es:

TksT ×=1

TnTksT ×−+×= )1(

)1()1( −+×=

×−+×××== nk

knTnkT

TknTsTns

kG

Page 8: Departamento de Automática - Grupo de computación de ...hpc.aut.uah.es/~rduran/Areinco/pdf/n_tema2.pdf · número de ciclos que separan la iniciación de dos operaciones (la distancia

© J. A. de Frutos Redondo, R. Durán 2005

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

2. Estructuras segmentadas 8V1.4

Rendimiento límite

Observemos que la ganancia límite, cuando n tiende a infinito, es k:

knkG ⎯⎯⎯⎯⎯ →⎯ ∞→

Page 9: Departamento de Automática - Grupo de computación de ...hpc.aut.uah.es/~rduran/Areinco/pdf/n_tema2.pdf · número de ciclos que separan la iniciación de dos operaciones (la distancia

© J. A. de Frutos Redondo, R. Durán 2005

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

2. Estructuras segmentadas 9V1.4

Requisitos para la segmentación

Características del proceso necesarias para poder aplicar segmentación:

Se debe poder descomponer en etapas.

Es necesario que las entradas de una etapa estén determinadas únicamente por las salidas de la anterior.

Cada etapa debe poder ser realizada por un circuito específico de forma más rápida que el conjunto del proceso.

Los tiempos de ejecución de cada etapa deben parecidos.

Page 10: Departamento de Automática - Grupo de computación de ...hpc.aut.uah.es/~rduran/Areinco/pdf/n_tema2.pdf · número de ciclos que separan la iniciación de dos operaciones (la distancia

© J. A. de Frutos Redondo, R. Durán 2005

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

2. Estructuras segmentadas 10V1.4

Tipos de cauces

Tipos de cauces:unifunción: ejecutan un único proceso.

multifunción: pueden ejecutar varios procesos:estáticos: en un instante determinado sólo pueden ejecutar uno.dinámicos: pueden ejecutar simultáneamente varios procesos.

lineal: a cada etapa sólo le puede seguir otra etapa concreta.

no lineal: se pueden establecer recorridos complejos de las etapas.

Page 11: Departamento de Automática - Grupo de computación de ...hpc.aut.uah.es/~rduran/Areinco/pdf/n_tema2.pdf · número de ciclos que separan la iniciación de dos operaciones (la distancia

© J. A. de Frutos Redondo, R. Durán 2005

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

2. Estructuras segmentadas 11V1.4

Aplicaciones

Aplicación de la segmentación:

A operadores aritméticos:ejecutan una o varias operaciones de la ALU.pueden ser lineales (sumas) o no lineales (división). En este caso suelen ser cíclicos (bucles).los procesadores actuales incluyen varias ALUs segmentadas, y cada una se puede ocupar de varias operaciones.

A ejecución de instrucciones:suelen ser cauces lineales.alguna de sus fases puede a su vez sub-segmentarse (uso de una ALU segmentada para la fase de ejecución).

Page 12: Departamento de Automática - Grupo de computación de ...hpc.aut.uah.es/~rduran/Areinco/pdf/n_tema2.pdf · número de ciclos que separan la iniciación de dos operaciones (la distancia

© J. A. de Frutos Redondo, R. Durán 2005

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

2. Estructuras segmentadas 12V1.4

Tablas de reserva

Cauces no lineales y tablas de reserva

AAAf3

Af2

AAf1

T6T5T4T3T2T1

BBf3

Bf2

BBf1

T5T4T3T2T1

MUX

MUX

f1

f2

f3

Page 13: Departamento de Automática - Grupo de computación de ...hpc.aut.uah.es/~rduran/Areinco/pdf/n_tema2.pdf · número de ciclos que separan la iniciación de dos operaciones (la distancia

© J. A. de Frutos Redondo, R. Durán 2005

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

2. Estructuras segmentadas 13V1.4

Latencia

Latencia:número de ciclos que separan la iniciación de dos operaciones (la distancia en ciclos entre las entradas de dos elementos al cauce)

Latencia prohibida: latencia con la que se producen colisiones (en el ejemplo, 1 es una latencia prohibida)

Latencia permitida: latencia con la que no se produce colisión (en el ejemplo, 2 es una latencia permitida)

ABAABf3

BAf2

ABBAf1

T6T5T4T3T2T1

A

B

T6

BABAf3

Af2

BABAf1

T7T5T4T3T2T1

Page 14: Departamento de Automática - Grupo de computación de ...hpc.aut.uah.es/~rduran/Areinco/pdf/n_tema2.pdf · número de ciclos que separan la iniciación de dos operaciones (la distancia

© J. A. de Frutos Redondo, R. Durán 2005

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

2. Estructuras segmentadas 14V1.4

Ciclos de latencia

Ciclo de latencia:secuencia de latencias permitidas que se puede repetir indefinidamente.

Ejemplo. Para la función B, se tiene que (1,4) es un ciclo de latencia:

B2

B3

T6

B3

B4

T7

B4

B3

T8

B3

B4

T9

B3B1B2B1f3

B4B2B1f2

B2B1B2B1f1

T10T5T4T3T2T1

Page 15: Departamento de Automática - Grupo de computación de ...hpc.aut.uah.es/~rduran/Areinco/pdf/n_tema2.pdf · número de ciclos que separan la iniciación de dos operaciones (la distancia

© J. A. de Frutos Redondo, R. Durán 2005

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

2. Estructuras segmentadas 15V1.4

Segmentación de instrucciones

Segmentación de instrucciones

Arquitectura DLX.Encauzamiento de instrucciones en el DLX.Parones:

por dependencia estructural,por dependencia de datos,por dependencia de control.

Múltiples unidades funcionales.

Ejemplo: el MIPS R4000.

Page 16: Departamento de Automática - Grupo de computación de ...hpc.aut.uah.es/~rduran/Areinco/pdf/n_tema2.pdf · número de ciclos que separan la iniciación de dos operaciones (la distancia

© J. A. de Frutos Redondo, R. Durán 2005

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

2. Estructuras segmentadas 16V1.4

Formato de instrucciones DLX

Carga/almacenamiento y operaciones con valores inmediatos, saltos condicionales:

Operaciones aritméticas:

Saltos incondicionales:

6 5 5 16

Opcode Rs Rt InmediatoLW R1,30(R2)SW 50(R4),R3ADDI R1,R2,#3BNEZ R4,LOOP

6 5 5 115

Opcode Rs Rt FunciónRd ADD R1,R2,R3

6 26

Opcode Desplazamiento J nombre

Page 17: Departamento de Automática - Grupo de computación de ...hpc.aut.uah.es/~rduran/Areinco/pdf/n_tema2.pdf · número de ciclos que separan la iniciación de dos operaciones (la distancia

© J. A. de Frutos Redondo, R. Durán 2005

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

2. Estructuras segmentadas 17V1.4

Máquina básica

Máquina básica no encauzada

Page 18: Departamento de Automática - Grupo de computación de ...hpc.aut.uah.es/~rduran/Areinco/pdf/n_tema2.pdf · número de ciclos que separan la iniciación de dos operaciones (la distancia

© J. A. de Frutos Redondo, R. Durán 2005

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

2. Estructuras segmentadas 18V1.4

Ciclos de cada instrucción

Ejecución de instrucciones en 5 ciclos

Rt ← LMDRd ← ALUoutputo bien (según tipo de instr.)Rt ← ALUoutput

WB

if (cond)PC ← ALUoutput

elsePC ← NPC

LMD ← Mem[ALUoutput]o bien, si es almacenamiento,Mem[ALUoutput] ← By en todo casoPC ← NPC

PC ← NPCMEM

ALUoutput ← NPC + Immcond ←(A op 0)

ALUoutput ← A + ImmALUoutput ← A op B

o bien

ALUoutput ← A op Imm

EX

A ← Rs; B ← RtImm ←

((IR16)16 ## IR16..31)

A ← Rs; B ← RtImm ←

((IR16)16 ## IR16..31)

A ← Rs; B ← RtImm ←

((IR16)16 ## IR16..31)

ID

IR ← Mem(PC)NPC ← PC+4

IR ← Mem(PC)NPC ← PC+4

IR ← Mem(PC)NPC ← PC+4

IF

SaltoCarga-almacenamientoALUEtapa

Page 19: Departamento de Automática - Grupo de computación de ...hpc.aut.uah.es/~rduran/Areinco/pdf/n_tema2.pdf · número de ciclos que separan la iniciación de dos operaciones (la distancia

© J. A. de Frutos Redondo, R. Durán 2005

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

2. Estructuras segmentadas 19V1.4

DLX encauzado

Etapas del cauce

Búsqueda (IF)se accede a memoria por la instrucción,se incrementa el CP.

Decodificación / Búsqueda de operandos (ID)se decodifica la instrucción,se accede al banco de registros por los operandos,se calcula el valor del operando inmediato con el signo extendido (por si hace falta más adelante).

WBMEMEXIDIF

Page 20: Departamento de Automática - Grupo de computación de ...hpc.aut.uah.es/~rduran/Areinco/pdf/n_tema2.pdf · número de ciclos que separan la iniciación de dos operaciones (la distancia

© J. A. de Frutos Redondo, R. Durán 2005

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

2. Estructuras segmentadas 20V1.4

DLX encauzado

Etapas del cauce

Ejecución / Dirección efectiva (EX)si es una instrucción de proceso, se ejecuta en la ALU,si es un acceso a memoria, se calcula la dirección efectiva,si es un salto, se calcula el destino, y si se toma o no.

Acceso a memoria / terminación del salto (MEM)si es un acceso a memoria, se accede,si es un salto, se almacena el nuevo CP.

Almacenamiento (WB)se almacena el resultado (si lo hay) en el banco de registros.

WBMEMEXIDIF

Page 21: Departamento de Automática - Grupo de computación de ...hpc.aut.uah.es/~rduran/Areinco/pdf/n_tema2.pdf · número de ciclos que separan la iniciación de dos operaciones (la distancia

© J. A. de Frutos Redondo, R. Durán 2005

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

2. Estructuras segmentadas 21V1.4

Máquina segmentada

Máquina segmentada

Page 22: Departamento de Automática - Grupo de computación de ...hpc.aut.uah.es/~rduran/Areinco/pdf/n_tema2.pdf · número de ciclos que separan la iniciación de dos operaciones (la distancia

© J. A. de Frutos Redondo, R. Durán 2005

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

2. Estructuras segmentadas 22V1.4

Ejecución de instrucciones segmentadas

Ejecución de instrucciones segmentadas

ID/EX.A ← Regs[IF/ID.IR6..10]ID/EX.B ← Regs[IF/ID.IR11..15] ID/EX.NPC ← IF/ID.NPCID/EX.IR ← IF/ID.IRID/EX.Imm ← (IF/ID.IR16)16 ## IF/ID.IR16..31

ID

IF/ID.IR ← Mem(PC)IF/ID.NPC,PC ← if (EX/MEM.cond)

EX/MEM.ALUoutputelsePC + 4

IF

Para todo tipo de instruccionesEtapa

Page 23: Departamento de Automática - Grupo de computación de ...hpc.aut.uah.es/~rduran/Areinco/pdf/n_tema2.pdf · número de ciclos que separan la iniciación de dos operaciones (la distancia

© J. A. de Frutos Redondo, R. Durán 2005

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

2. Estructuras segmentadas 23V1.4

Ejecución de instrucciones segmentadas

Ejecución de instrucciones segmentadas

sólo para cargas:Regs[MEM/WB.IR11..15 ] ←

MEM/WB.LMD;

Regs[MEM/WB.IR16..20 ] ←MEM/WB.ALUOutput;

o bienRegs[MEM/WB.IR11..15 ] ←

MEM/WB.ALUOutput;

WB

MEM/WB.IR ← EX/MEM.IR;MEM/WB.LMD ←

Mem[EX/MEM.ALUoutput];o bienMem[EX/MEM.ALUoutput]←

EX/MEM.B;

MEM/WB.IR ← EX/MEM.IR;MEM/WB.ALUOutput ←

EX/MEM.ALUOutput;

MEM

EX/MEM.ALUoutput ←ID/EX.NPC + ID/EX.Imm;

EX/MEM.cond ←(ID/EX.A == 0);

EX/MEM.IR ← ID/EX.IR;EX/MEM.ALUoutput ←

ID/EX.A + ID/EX.Imm;EX/MEM.cond ← 0;EX/MEM.B ← ID/EX.B;

EX/MEM.IR ← ID/EX.IR;EX/MEM.ALUoutput ←

ID/EX.A op ID/EX.B;o bienEX/MEM.ALUoutput ←

ID/EX.A op ID/EX.Imm;EX/MEM.cond ← 0;

EX

SaltoCarga-almacenamientoALUEtapa

Page 24: Departamento de Automática - Grupo de computación de ...hpc.aut.uah.es/~rduran/Areinco/pdf/n_tema2.pdf · número de ciclos que separan la iniciación de dos operaciones (la distancia

© J. A. de Frutos Redondo, R. Durán 2005

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

2. Estructuras segmentadas 24V1.4

Ejemplo de ejecución de instrucciones

Ejemplo de ejecución de instrucciones

Ciclo 1 2 3 4 5 6 7 8 9

Inst i IF ID EX MM WB

Inst i + 1 IF ID EX MM WB

Inst i + 2 IF ID EX MM WB

Inst i + 3 IF ID EX MM WB

Inst i + 4 IF ID EX MM WB

Page 25: Departamento de Automática - Grupo de computación de ...hpc.aut.uah.es/~rduran/Areinco/pdf/n_tema2.pdf · número de ciclos que separan la iniciación de dos operaciones (la distancia

© J. A. de Frutos Redondo, R. Durán 2005

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

2. Estructuras segmentadas 25V1.4

Ventajas de la segmentación

Ventajas de la segmentación:Principalmente, el mejor rendimiento:

ganancia en rendimiento = Nº etapas del cauce (a reloj constante),pero ¡cuidado!, sólo es el máximo teórico.

Es completamente hardware =>mejor que software.

El modelo de programación no cambia:pero veremos que afecta al programador (sobre todo al compilador).

Problema: hay que tener en cuenta que el control también se vuelve más complejo.

Page 26: Departamento de Automática - Grupo de computación de ...hpc.aut.uah.es/~rduran/Areinco/pdf/n_tema2.pdf · número de ciclos que separan la iniciación de dos operaciones (la distancia

© J. A. de Frutos Redondo, R. Durán 2005

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

2. Estructuras segmentadas 26V1.4

Parones

Parones:situaciones que impiden a la siguiente instrucción que se ejecute en el ciclo que le corresponde.

Tipos de parones:Por dependencia estructural:

provocados por conflictos por los recursos.Por dependencia de datos (parones por datos):

ocurren cuando dos instrucciones se comunican por medio de un dato (ejemplo: una lo produce y la otra lo usa).

Por dependencia de control (parones por control):ocurren cuando la ejecución de una instrucción depende de cómo se ejecute otra (ejemplo: un salto y los dos posibles caminos).

Page 27: Departamento de Automática - Grupo de computación de ...hpc.aut.uah.es/~rduran/Areinco/pdf/n_tema2.pdf · número de ciclos que separan la iniciación de dos operaciones (la distancia

© J. A. de Frutos Redondo, R. Durán 2005

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

2. Estructuras segmentadas 27V1.4

Ejemplo de parón

Supongamos un parón en la instrucción i + 2

Ciclo 1 2 3 4 5 6 7 8 9 10

Inst i IF ID EX MM WB

Inst i + 1 IF ID EX MM WB

Inst i + 2 (parón) IF ID EX MM WB

Inst i + 3 IF ID EX MM WB

Inst i + 4 IF ID EX MM WB

Page 28: Departamento de Automática - Grupo de computación de ...hpc.aut.uah.es/~rduran/Areinco/pdf/n_tema2.pdf · número de ciclos que separan la iniciación de dos operaciones (la distancia

© J. A. de Frutos Redondo, R. Durán 2005

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

2. Estructuras segmentadas 28V1.4

Efecto de los parones

Efecto: el rendimiento disminuye del máximo teórico.La ganancia de rendimiento, a reloj constante, es:

Máximo teórico: número de etapas del cauce.Con parones:

CPIns / CPI s =CPIns / (CPI ideal + ParonesPorInstrucción) = CPIns / (1 + ParonesPorInstrucción) = EtapasDelCauce / (1 + ParonesPorInstrucción)

CPIns Ciclos por instrucción sin segmentación.CPIs Ciclos por instrucción con segmentación.

Page 29: Departamento de Automática - Grupo de computación de ...hpc.aut.uah.es/~rduran/Areinco/pdf/n_tema2.pdf · número de ciclos que separan la iniciación de dos operaciones (la distancia

© J. A. de Frutos Redondo, R. Durán 2005

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

2. Estructuras segmentadas 29V1.4

Ejemplo de parón

Ejemplo:una instrucción de carga seguida de otras varias (la máquina tiene un único puerto de memoria).

Page 30: Departamento de Automática - Grupo de computación de ...hpc.aut.uah.es/~rduran/Areinco/pdf/n_tema2.pdf · número de ciclos que separan la iniciación de dos operaciones (la distancia

© J. A. de Frutos Redondo, R. Durán 2005

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

2. Estructuras segmentadas 30V1.4

Ejemplo del efecto del parón

Efecto: el load y la instrucción 3 tienen un conflicto: compiten por el puerto de memoria. El parón en el cauce:

Page 31: Departamento de Automática - Grupo de computación de ...hpc.aut.uah.es/~rduran/Areinco/pdf/n_tema2.pdf · número de ciclos que separan la iniciación de dos operaciones (la distancia

© J. A. de Frutos Redondo, R. Durán 2005

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

2. Estructuras segmentadas 31V1.4

Parones por dependencia estructural

Las limitaciones en los recursos implican parones estructurales:

1 puerto de memoria en lugar de 2;(fetch acceso a memoria).

1 ALU en lugar de 2;(incremento PC instrucción de proceso).

banco de registros con pocos puertos;(lectura escritura).

Solución a los parones estructurales:añadir más recursos, buscando un equilibrio entre rendimiento y coste.

Page 32: Departamento de Automática - Grupo de computación de ...hpc.aut.uah.es/~rduran/Areinco/pdf/n_tema2.pdf · número de ciclos que separan la iniciación de dos operaciones (la distancia

© J. A. de Frutos Redondo, R. Durán 2005

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

2. Estructuras segmentadas 32V1.4

Parones por dependencia de datos

Código con dependencia de datos

Page 33: Departamento de Automática - Grupo de computación de ...hpc.aut.uah.es/~rduran/Areinco/pdf/n_tema2.pdf · número de ciclos que separan la iniciación de dos operaciones (la distancia

© J. A. de Frutos Redondo, R. Durán 2005

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

2. Estructuras segmentadas 33V1.4

Adelanto de resultados

Solución a los parones por dependencia de datos: reenvío/adelanto de resultados (bypassing, forwarding).

La instrucción 1, que calcula el nuevo valor de R1, lo tiene listo al final del ciclo 3.

La instrucción 2, que lo lee, en realidad necesita que esté listo al principio del ciclo 4.

Se puede modificar la ALU con una realimentación, para que el nuevo valor de R1 vaya de la salida a la entrada (además, sigue siendo enviado al banco de registros en la fase WB).

Page 34: Departamento de Automática - Grupo de computación de ...hpc.aut.uah.es/~rduran/Areinco/pdf/n_tema2.pdf · número de ciclos que separan la iniciación de dos operaciones (la distancia

© J. A. de Frutos Redondo, R. Durán 2005

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

2. Estructuras segmentadas 34V1.4

Ejecución con adelanto

La ejecución queda ahora:

Page 35: Departamento de Automática - Grupo de computación de ...hpc.aut.uah.es/~rduran/Areinco/pdf/n_tema2.pdf · número de ciclos que separan la iniciación de dos operaciones (la distancia

© J. A. de Frutos Redondo, R. Durán 2005

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

2. Estructuras segmentadas 35V1.4

Adelanto de resultados

Adelanto de datos

Page 36: Departamento de Automática - Grupo de computación de ...hpc.aut.uah.es/~rduran/Areinco/pdf/n_tema2.pdf · número de ciclos que separan la iniciación de dos operaciones (la distancia

© J. A. de Frutos Redondo, R. Durán 2005

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

2. Estructuras segmentadas 36V1.4

Problemas del adelanto de resultados

Observaciones al adelanto de resultados:Se deben habilitar caminos de realimentación de todas a todas las unidades: de la ALU a memoria, de la ALU a la ALU, etc.Las dependencias se dan entre instrucciones de todos los tipos.Hay que tener en cuenta que el control se complica aún más:

hay que decidir cuándo se realimenta un resultado, controlar la realimentación, etc.

Aun así, puede no ser suficiente; por ejemplo, si una instrucción de memoria genera un dato para una operación de la ALU:

lw r1,0(r2)sub r4,r1,r5

Page 37: Departamento de Automática - Grupo de computación de ...hpc.aut.uah.es/~rduran/Areinco/pdf/n_tema2.pdf · número de ciclos que separan la iniciación de dos operaciones (la distancia

© J. A. de Frutos Redondo, R. Durán 2005

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

2. Estructuras segmentadas 37V1.4

Problemas del adelanto de resultados

Page 38: Departamento de Automática - Grupo de computación de ...hpc.aut.uah.es/~rduran/Areinco/pdf/n_tema2.pdf · número de ciclos que separan la iniciación de dos operaciones (la distancia

© J. A. de Frutos Redondo, R. Durán 2005

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

2. Estructuras segmentadas 38V1.4

Dependencias de datos: clasificación

Clasificación de las dependencias de datos:Lectura después de Escritura (RAW, dependencia):

una instrucción genera un dato que lee otra posterior (la que hemos visto hasta ahora).

Escritura después de Escritura (WAW, dependencia en salida):una instrucción rescribe un dato que otra posterior ya había escrito;en una máquina segmentada simple sólo se da si se permite que las instrucciones se adelanten unas a otras.

Escritura después de Lectura (WAR, antidependencia):una instrucción modifica un valor antes de que lo lea otra instrucción anterior;tampoco se puede dar en nuestro cauce.

Page 39: Departamento de Automática - Grupo de computación de ...hpc.aut.uah.es/~rduran/Areinco/pdf/n_tema2.pdf · número de ciclos que separan la iniciación de dos operaciones (la distancia

© J. A. de Frutos Redondo, R. Durán 2005

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

2. Estructuras segmentadas 39V1.4

Ejemplos de dependencias de datos

Ejemplos:

RAW: add r1,r2,r3add r4,r1,4

WAW: lw r1,0(r2)add r1,r2,r3

WAR: sw 0(r2),r1add r1,r3,r4

D(i) ∩ F(j) ≠ ∅

D(i) ∩ D(j) ≠ ∅

F(i) ∩ D(j) ≠ ∅

Page 40: Departamento de Automática - Grupo de computación de ...hpc.aut.uah.es/~rduran/Areinco/pdf/n_tema2.pdf · número de ciclos que separan la iniciación de dos operaciones (la distancia

© J. A. de Frutos Redondo, R. Durán 2005

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

2. Estructuras segmentadas 40V1.4

Reordenación de instrucciones

Aprovechamiento del cauce:reordenación de instrucciones

Se trata de calcular:

a = b + cd = e - fg = a + d

Page 41: Departamento de Automática - Grupo de computación de ...hpc.aut.uah.es/~rduran/Areinco/pdf/n_tema2.pdf · número de ciclos que separan la iniciación de dos operaciones (la distancia

© J. A. de Frutos Redondo, R. Durán 2005

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

2. Estructuras segmentadas 41V1.4

Reordenación de código

lw rb,blw rc,cadd ra,rb,rclw re,elw rf,fsub rd,re,rfadd rg,ra,rdsw g,rg

lw rb,blw rc,clw re,elw rf,fadd ra,rb,rcsub rd,re,rfadd rg,ra,rdsw g,rg

Código inicial Código reordenado

Page 42: Departamento de Automática - Grupo de computación de ...hpc.aut.uah.es/~rduran/Areinco/pdf/n_tema2.pdf · número de ciclos que separan la iniciación de dos operaciones (la distancia

© J. A. de Frutos Redondo, R. Durán 2005

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

2. Estructuras segmentadas 42V1.4

Eficacia de la reordenación

Eficacia de la reordenación

Porcentaje de las cargas que provocan un parón

0

10

20

30

40

50

60

70

TeX Spice gcc

ConSin

Page 43: Departamento de Automática - Grupo de computación de ...hpc.aut.uah.es/~rduran/Areinco/pdf/n_tema2.pdf · número de ciclos que separan la iniciación de dos operaciones (la distancia

© J. A. de Frutos Redondo, R. Durán 2005

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

2. Estructuras segmentadas 43V1.4

Parones por dependencia de control

Parones por dependencia de controlHasta ahora: el CP se actualiza en la fase de búsqueda (fetch).Si en el cauce entra un salto, hay dos instrucciones que pueden ser la siguiente que hay que buscar:

la que está a continuación del salto, o bienla que es el destino del salto.

Problema: necesitamos saber ya cuál es la siguiente instrucción que vamos a meter en el cauce, pero:

si es un salto condicional, aún no se sabe cuál de las dos es lacorrecta (se sabe en la fase EX);en cualquier caso, el contador de programa incrementado se almacena en la fase (WB).

Page 44: Departamento de Automática - Grupo de computación de ...hpc.aut.uah.es/~rduran/Areinco/pdf/n_tema2.pdf · número de ciclos que separan la iniciación de dos operaciones (la distancia

© J. A. de Frutos Redondo, R. Durán 2005

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

2. Estructuras segmentadas 44V1.4

Parones por dependencia de control

0

5

10

15

20

25co

mpr

ess

eqnt

ott

espr

esso gc

c li

dodu

c

ear

hydr

o2d

mdl

jdp

su2c

or

cond. hacia delante

cond. hacia atrás

incond.

Esto sólo sería importante si, en el código, el porcentaje de saltos (tomados y no tomados) es significativo.

Page 45: Departamento de Automática - Grupo de computación de ...hpc.aut.uah.es/~rduran/Areinco/pdf/n_tema2.pdf · número de ciclos que separan la iniciación de dos operaciones (la distancia

© J. A. de Frutos Redondo, R. Durán 2005

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

2. Estructuras segmentadas 45V1.4

Estadísticas de saltos

En promedio, para enteros:13% de instrucciones son saltos condicionales hacia delante,3% de instrucciones son saltos condicionales hacia atrás,4% son saltos incondicionales.Estos datos dependen fuertemente de las optimizaciones que use el compilador, pero como orientación sirven.

Resumiendo:1 de cada 5 instrucciones es un salto.

Conclusión: sí hay que tener en cuenta los saltos.

Page 46: Departamento de Automática - Grupo de computación de ...hpc.aut.uah.es/~rduran/Areinco/pdf/n_tema2.pdf · número de ciclos que separan la iniciación de dos operaciones (la distancia

© J. A. de Frutos Redondo, R. Durán 2005

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

2. Estructuras segmentadas 46V1.4

Estrategias frente a los saltos

¿Qué se puede hacer?Plan A:

en cuanto veamos que una instrucción es un salto, paramos el cauce, hasta que sepamos adónde salta;sabemos si es un salto en la fase ID;conocemos el destino en MEM.

Total: 3 ciclos de parón.Si el porcentaje de saltos es del 30%, y el CPI ideal es 1, la máquina tiene una ganancia del 50% del máximo teórico aproximadamente.Conclusión: No interesa.

Page 47: Departamento de Automática - Grupo de computación de ...hpc.aut.uah.es/~rduran/Areinco/pdf/n_tema2.pdf · número de ciclos que separan la iniciación de dos operaciones (la distancia

© J. A. de Frutos Redondo, R. Durán 2005

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

2. Estructuras segmentadas 47V1.4

Estrategias frente a los saltos

¿Qué se puede hacer?Plan B:

intentamos averiguar, en una fase anterior, si el salto se toma o no;vamos calculando el destino lo antes posible, por si acaso hace falta;por ejemplo, en la fase de decodificación (ambas).

Total: 1 ciclo de parón.Necesitamos un recurso adicional (un sumador).

Si el porcentaje de saltos es del 30%, y el CPI ideal es 1, la máquina tiene ahora una ganancia del 77% del máximo teórico, aproximadamente.Conclusión: Puede interesar.

Page 48: Departamento de Automática - Grupo de computación de ...hpc.aut.uah.es/~rduran/Areinco/pdf/n_tema2.pdf · número de ciclos que separan la iniciación de dos operaciones (la distancia

© J. A. de Frutos Redondo, R. Durán 2005

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

2. Estructuras segmentadas 48V1.4

Rediseño para menor coste en saltos

Page 49: Departamento de Automática - Grupo de computación de ...hpc.aut.uah.es/~rduran/Areinco/pdf/n_tema2.pdf · número de ciclos que separan la iniciación de dos operaciones (la distancia

© J. A. de Frutos Redondo, R. Durán 2005

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

2. Estructuras segmentadas 49V1.4

Rediseño para menor coste en saltos

Esquema de la nueva ejecución:

El resto de etapas quedan igual que antes.

ID/EX.A ← Regs[IF/ID.IR6..10]ID/EX.B ← Regs[IF/ID.IR11..15] ID/EX.NPC ← IF/ID.NPCID/EX.IR ← IF/ID.IRID/EX.Imm ← (IF/ID.IR16)16 ## IF/ID.IR16..31

ID

IF/ID.IR ← Mem(PC)IF/ID.NPC,PC ← if ((IF/ID.opcode == “salto”) &&

(Regs[IF/ID.IR6..10] == 0))IF/ID.NPC + (IF/ID.IR16)16 ## IF/ID.IR16..31elsePC + 4

IF

Para todo tipo de instruccionesEtapa

Page 50: Departamento de Automática - Grupo de computación de ...hpc.aut.uah.es/~rduran/Areinco/pdf/n_tema2.pdf · número de ciclos que separan la iniciación de dos operaciones (la distancia

© J. A. de Frutos Redondo, R. Durán 2005

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

2. Estructuras segmentadas 50V1.4

Tratamiento de los saltos

Formas de tratar un salto en el flujo de instrucciones:no hacer nada:

es el esquema más sencillo (y barato),también es el que peor rendimiento da;

suponer que el salto no se va a tomar:se siguen buscando instrucciones a continuación del salto,en caso de que se tome, se invalidan;

suponer que el salto se va a tomar:se calcula el destino, y se empieza a buscar por él en nuestra máquina no es viable: se conocen el sentido y el destino a la vez => no es suposición, es certeza

retardar la ejecución del salto:ejecutar la instrucción siguiente, tanto si el salto se toma, como si no.

Page 51: Departamento de Automática - Grupo de computación de ...hpc.aut.uah.es/~rduran/Areinco/pdf/n_tema2.pdf · número de ciclos que separan la iniciación de dos operaciones (la distancia

© J. A. de Frutos Redondo, R. Durán 2005

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

2. Estructuras segmentadas 51V1.4

Opción “suponer salto no se toma”

Opción: suponer que el salto no se toma.si en realidad no se toma:

si en realidad sí se toma:

i (salto) IF ID EX MM WB i + 1 IF ID EX MM WB i + 2 IF ID EX MM WB i + 3 IF ID EX MM WB

i (salto) IF ID EX MM WB i + 1 IF nada nada nada nada destino IF ID EX MM WB d + 1 IF ID EX MM WB

Page 52: Departamento de Automática - Grupo de computación de ...hpc.aut.uah.es/~rduran/Areinco/pdf/n_tema2.pdf · número de ciclos que separan la iniciación de dos operaciones (la distancia

© J. A. de Frutos Redondo, R. Durán 2005

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

2. Estructuras segmentadas 52V1.4

Opción “suponer salto no se toma”

Si en realidad el salto no se toma:el cauce no sufre alteración ninguna.Rendimiento:

penalización 0 ciclos.

Si en realidad el salto se toma:se anula la ejecución de la instrucción siguiente al salto, es decir, se borran los latches entre fases.Rendimiento:

penalización 1 ciclo.

Conclusión:Sería interesante saber qué porcentaje de saltos no se toma.

Page 53: Departamento de Automática - Grupo de computación de ...hpc.aut.uah.es/~rduran/Areinco/pdf/n_tema2.pdf · número de ciclos que separan la iniciación de dos operaciones (la distancia

© J. A. de Frutos Redondo, R. Durán 2005

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

2. Estructuras segmentadas 53V1.4

01020304050607080

com

pres

s

eqnt

ott

espr

esso gc

c li

dodu

c

ear

hydr

o2d

mdl

jdp

su2c

or

hacia delante

hacia atrás

¿Tomamos salto o no?

Porcentaje de saltos tomados sobre el total de ejecutados:

Page 54: Departamento de Automática - Grupo de computación de ...hpc.aut.uah.es/~rduran/Areinco/pdf/n_tema2.pdf · número de ciclos que separan la iniciación de dos operaciones (la distancia

© J. A. de Frutos Redondo, R. Durán 2005

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

2. Estructuras segmentadas 54V1.4

Opción “suponer salto se toma”

En promedio:En programas de enteros, el 62% de los saltos ejecutados se toman.En programas de coma flotante, el porcentaje sube al 70%.

Por lo tanto:sería más interesante la opción de suponer que el salto se va a tomar (es más probable).

Problema:para buscar la instrucción destino del salto, es necesario calcularla;en nuestra máquina, este valor se obtiene en la fase ID;para entonces, también sabemos si el salto se toma o no, por tanto ya no es necesario suponer nada.

Page 55: Departamento de Automática - Grupo de computación de ...hpc.aut.uah.es/~rduran/Areinco/pdf/n_tema2.pdf · número de ciclos que separan la iniciación de dos operaciones (la distancia

© J. A. de Frutos Redondo, R. Durán 2005

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

2. Estructuras segmentadas 55V1.4

Opción “retardar el salto”

Opción de ejecución retardada del salto.Cuando se llega a un salto, la siguiente instrucción se ejecuta,tanto si el salto se toma como si no se toma (delay-slot).

Implicaciones:a la hora de generar código es necesario tener esto en cuenta

=> cambio en la compilación/programación;el número de instrucciones, situadas a continuación de un salto,que se ejecutan puede variar con la arquitectura;a veces no es posible utilizar el hueco de retardo (delay-slot) para hacer trabajo útil

=> nop’s.

Page 56: Departamento de Automática - Grupo de computación de ...hpc.aut.uah.es/~rduran/Areinco/pdf/n_tema2.pdf · número de ciclos que separan la iniciación de dos operaciones (la distancia

© J. A. de Frutos Redondo, R. Durán 2005

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

2. Estructuras segmentadas 56V1.4

Relleno del delay-slot

Diferentes posibilidades para rellenar el delay-slot.

Page 57: Departamento de Automática - Grupo de computación de ...hpc.aut.uah.es/~rduran/Areinco/pdf/n_tema2.pdf · número de ciclos que separan la iniciación de dos operaciones (la distancia

© J. A. de Frutos Redondo, R. Durán 2005

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

2. Estructuras segmentadas 57V1.4

Aprovechamiento del delay-slot

Requisitos para aprovechar el delay-slot.Si las instrucciones se toman de antes del salto:

no debe haber dependencia entre ellas y el salto;siempre mejora el rendimiento.

Si las instrucciones se toman del destino del salto:no debe afectar al programa el que se ejecuten si el salto no setoma;puede haber ocasiones en las que el código no se copie, sino quese duplique (al destino se llega desde varios puntos);sólo mejora el rendimiento si el salto se toma.

Si las instrucciones se toman de a continuación del salto:no debe afectar al programa el que se ejecuten si el salto se toma;sólo mejora el rendimiento si el salto no se toma.

Page 58: Departamento de Automática - Grupo de computación de ...hpc.aut.uah.es/~rduran/Areinco/pdf/n_tema2.pdf · número de ciclos que separan la iniciación de dos operaciones (la distancia

© J. A. de Frutos Redondo, R. Durán 2005

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

2. Estructuras segmentadas 58V1.4

Dificultades para el aprovechamiento

Problema:Puede ser difícil encontrar instrucciones a continuación del salto, o del destino, que no afecten al programa si se ejecutan cuando el salto se toma o no, respectivamente.

Posibles soluciones:Saltos con anulación (o cancelación):

se predice si se van a tomar o no (por el compilador);se rellenan sus delay-slots con instrucciones según corresponda;si el salto se comporta…

como lo esperado => todo bien;al revés de lo esperado => se anula la ejecución de los delay-slots.

Con esto se relajan los requisitos sobre las instrucciones que van en los delay-slots y se facilita su aprovechamiento.

Page 59: Departamento de Automática - Grupo de computación de ...hpc.aut.uah.es/~rduran/Areinco/pdf/n_tema2.pdf · número de ciclos que separan la iniciación de dos operaciones (la distancia

© J. A. de Frutos Redondo, R. Durán 2005

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

2. Estructuras segmentadas 59V1.4

Ejecución de los delay-slots

Ejecución de los delay-slots, en porcentaje sobre el total de los saltos condicionales:

05

101520253035404550

com

pres

s

eqnt

ott

espr

esso gc

c li

dodu

c

ear

hydr

o2d

mdl

jdp2

su2c

or

vacío anulado

Page 60: Departamento de Automática - Grupo de computación de ...hpc.aut.uah.es/~rduran/Areinco/pdf/n_tema2.pdf · número de ciclos que separan la iniciación de dos operaciones (la distancia

© J. A. de Frutos Redondo, R. Durán 2005

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

2. Estructuras segmentadas 60V1.4

Uso de los delay-slots en la práctica

Observaciones sobre el uso de delay-slots:en promedio, el 30% se desperdician (35% en enteros, 25% en coma flotante) o lo que es igual, hasta un 70% se aprovechan;sin embargo, en nuestra máquina, los saltos sólo tienen 1 delay-slot; en otras, con cauces más largos, pueden tener más;esto puede hacer difícil el rellenarlos con trabajo útil;lo mismo ocurre con procesadores superescalares (ya los veremos en detalle: ejecutan varias instrucciones a la vez).

En resumen:los delay-slots tienen bastante utilidad en cauces sencillos, pero en cauces más complejos su efectividad es poca.

Conclusión: ya no se usan.

Page 61: Departamento de Automática - Grupo de computación de ...hpc.aut.uah.es/~rduran/Areinco/pdf/n_tema2.pdf · número de ciclos que separan la iniciación de dos operaciones (la distancia

© J. A. de Frutos Redondo, R. Durán 2005

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

2. Estructuras segmentadas 61V1.4

Múltiples unidades funcionales

Múltiples unidades funcionales

Problema: Unas instrucciones tardan más en ejecutarse que otras.

Ejemplo: una multiplicación y un desplazamiento lógicoSi el ciclo de reloj se ajusta a la más lenta, con las rápidas (y con las demás etapas del cauce) se está perdiendo tiempo.Si el ciclo de reloj se ajusta a la más rápida, a las lentas no les da con un ciclo.

Solución: Se segmenta también la fase de ejecución.

Page 62: Departamento de Automática - Grupo de computación de ...hpc.aut.uah.es/~rduran/Areinco/pdf/n_tema2.pdf · número de ciclos que separan la iniciación de dos operaciones (la distancia

© J. A. de Frutos Redondo, R. Durán 2005

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

2. Estructuras segmentadas 62V1.4

Cauce multifuncional

El nuevo cauce:

Page 63: Departamento de Automática - Grupo de computación de ...hpc.aut.uah.es/~rduran/Areinco/pdf/n_tema2.pdf · número de ciclos que separan la iniciación de dos operaciones (la distancia

© J. A. de Frutos Redondo, R. Durán 2005

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

2. Estructuras segmentadas 63V1.4

Nuevo flujo de instrucciones

El flujo de instrucciones a través del cauce es ahora:las instrucciones pasan por las fases IF e ID;a continuación, cada instrucción pasa a la unidad funcional que le corresponda para su ejecución;las instrucciones terminan el recorrido por su unidad funcional, y pasan a recorrer las fases MEM y WB.

Es necesario modificar la máquina:añadiendo latches entre las fases de las unidades funcionales;posibilitando el flujo desde ID hasta cualquier unidad funcional;por supuesto, el control se complica (pero no demasiado).

Page 64: Departamento de Automática - Grupo de computación de ...hpc.aut.uah.es/~rduran/Areinco/pdf/n_tema2.pdf · número de ciclos que separan la iniciación de dos operaciones (la distancia

© J. A. de Frutos Redondo, R. Durán 2005

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

2. Estructuras segmentadas 64V1.4

Ejemplo de ocupación del nuevo cauce

Ejemplo de ocupación del nuevo cauce

Se supone que las instrucciones no tienen dependencias entre sí.Las fases en cursiva indican cuándo se necesitan los datos.Las fases en negrita indican cuándo se generan los resultados.

MULTD IF ID M1 M2 M3 M4 M5 M6 M7 MM WBADDD IF ID A1 A2 A3 A4 MM WB LD IF ID EX MM WB SD IF ID EX MM WB

Page 65: Departamento de Automática - Grupo de computación de ...hpc.aut.uah.es/~rduran/Areinco/pdf/n_tema2.pdf · número de ciclos que separan la iniciación de dos operaciones (la distancia

© J. A. de Frutos Redondo, R. Durán 2005

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

2. Estructuras segmentadas 65V1.4

Complicaciones de la multifunción

Complicaciones que aparecen en el nuevo modelo:Las posibilidades de dependencia (=>parones) aumentan:

algunas unidades funcionales están segmentadas y pueden tener varias instrucciones en ejecución;además, varias unidades funcionales pueden estar activas simultáneamente.

Además los parones serán más largos, puesto que el cauce es más largo (dependiendo de la unidad funcional).Las instrucciones no tienen por qué terminar en orden:

cuidado con las dependencias en salida WAW;puede haber varias instrucciones en la fase WB a la vez (hay riesgo de conflicto estructural).

Buena noticia: las antidependencias WAR no pueden darse.

Page 66: Departamento de Automática - Grupo de computación de ...hpc.aut.uah.es/~rduran/Areinco/pdf/n_tema2.pdf · número de ciclos que separan la iniciación de dos operaciones (la distancia

© J. A. de Frutos Redondo, R. Durán 2005

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

2. Estructuras segmentadas 66V1.4

Ejemplo de ejecución multifuncional

Ejemplo:

Hay dependencias RAW de cada instrucción con la anterior. Esto implica parones.La instrucción 4 necesita el resultado de la 3, pero para su fase MEM, por lo que puede pasar a la fase EX en el ciclo 13.Hay dependencias estructurales: en el ciclo 16, la instrucción 4 no puede almacenar el dato porque la instrucción 3 está usando la etapa de memoria.

CICLO 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16ld f4,0(r2) IF ID EX MM WB multd f0,f4,f6 IF ID P M1 M2 M3 M4 M5 M6 M7 MM WB add f2,f0,f8 IF P ID P P P P P P A1 A2 A3 A4 MM sd 0(r2),f2 P IF P P P P P P ID EX P P P

Page 67: Departamento de Automática - Grupo de computación de ...hpc.aut.uah.es/~rduran/Areinco/pdf/n_tema2.pdf · número de ciclos que separan la iniciación de dos operaciones (la distancia

© J. A. de Frutos Redondo, R. Durán 2005

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

2. Estructuras segmentadas 67V1.4

MIPS R4000

El MIPS R4000Representativo de arquitecturas que aparecieron a partir de los años 80.Es una máquina de 64 bits.Implementa el repertorio MIPS-3.Tiene un cauce con gran número de etapas (super-segmentación).Esto le permitía utilizar una frecuencia alta (100-200 MHz)Utilizado por NEC, Nintendo, Silicon Graphics, Sony,...

Page 68: Departamento de Automática - Grupo de computación de ...hpc.aut.uah.es/~rduran/Areinco/pdf/n_tema2.pdf · número de ciclos que separan la iniciación de dos operaciones (la distancia

© J. A. de Frutos Redondo, R. Durán 2005

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

2. Estructuras segmentadas 68V1.4

Cauce del R4000

El cauce del R4000

IF: fetch, fase 1IS: fetch, fase 2RF: Decod, búsqueda de operandos, comprobación de dependencias

EX: ejecución, cálculo de dir. efectiva, cálculo/comprobación de saltoDF: acceso a mem, fase 1DS: acceso a mem, fase 2TC: comprobación de acierto de cachéWB: almacenamiento

Page 69: Departamento de Automática - Grupo de computación de ...hpc.aut.uah.es/~rduran/Areinco/pdf/n_tema2.pdf · número de ciclos que separan la iniciación de dos operaciones (la distancia

© J. A. de Frutos Redondo, R. Durán 2005

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

2. Estructuras segmentadas 69V1.4

MIPS R4000

Ejecución de un load en el R4000

El retardo de una carga son dos ciclos (implica posible parón, si la siguiente instrucción necesita el dato).

Page 70: Departamento de Automática - Grupo de computación de ...hpc.aut.uah.es/~rduran/Areinco/pdf/n_tema2.pdf · número de ciclos que separan la iniciación de dos operaciones (la distancia

© J. A. de Frutos Redondo, R. Durán 2005

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

2. Estructuras segmentadas 70V1.4

MIPS R4000

Ejecución de un salto en el R4000

Cuál es el destino del salto, y si se toma, se sabe al fin de la fase EX; por lo tanto, la penalización son 3 ciclos.

Page 71: Departamento de Automática - Grupo de computación de ...hpc.aut.uah.es/~rduran/Areinco/pdf/n_tema2.pdf · número de ciclos que separan la iniciación de dos operaciones (la distancia

© J. A. de Frutos Redondo, R. Durán 2005

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

2. Estructuras segmentadas 71V1.4

Delay-slots en el R4000

Los saltos en el R4000El R4000 permite el aprovechamiento de un delay-slot (aunque haya 3).Para los otros dos slots, se predice que el salto no se va a tomar y

ejecuta 2 instrucciones de la continuación del salto, perosi el salto se toma, se anula su ejecución.

Dispone de instrucciones de ‘salto probablemente tomado’:equivalentes a nuestro ‘salto con anulación’.

Page 72: Departamento de Automática - Grupo de computación de ...hpc.aut.uah.es/~rduran/Areinco/pdf/n_tema2.pdf · número de ciclos que separan la iniciación de dos operaciones (la distancia

© J. A. de Frutos Redondo, R. Durán 2005

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

2. Estructuras segmentadas 72V1.4

Coma flotante en el R4000

Las operaciones de coma flotante:Tiene 3 unidades funcionales:

división,multiplicación,suma.

La unidad de suma se usa también al final de la multiplicación yla división.La duración de las operaciones va de 2 ciclos para una negación a 112 ciclos para una raíz cuadrada.

Page 73: Departamento de Automática - Grupo de computación de ...hpc.aut.uah.es/~rduran/Areinco/pdf/n_tema2.pdf · número de ciclos que separan la iniciación de dos operaciones (la distancia

© J. A. de Frutos Redondo, R. Durán 2005

Arq

uite

ctur

a e

Inge

nier

ía d

e C

ompu

tado

res

2. Estructuras segmentadas 73V1.4

Estadísticas de parones en R4000

0

0,5

1

1,5

2

2,5

3

CPI

com

pres

s

eqnt

ott

espr

esso gc

c li

dodu

c

ear

hydr

o2d

mdl

jdp2

su2c

or

Resultados SPEC92

Estructurales FP

Resultados FP

Salto

Carga

Base