segmentación del ciclo de instrucciónelectro.fisica.unlp.edu.ar/arq/transparencias/arqii_02...el...

53
Segmentación del ciclo de instrucción v.2016 John Hennessy & David Patterson, “Arquitectura de Computadores – Un enfoque cuantitativo”, 4ª edición Apéndice A (Capítulos 5 y 6 de la 1ª edición)

Upload: others

Post on 08-Jul-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Segmentación del ciclo de instrucciónelectro.fisica.unlp.edu.ar/arq/transparencias/ARQII_02...El ciclo de conmutación estará determinado por la etapa más lenta (t=max{ti}). Segmentación

Segmentación del ciclo de instrucción

v.2016

John Hennessy & David Patterson, “Arquitectura de Computadores – Un enfoque cuantitativo”, 4ª edición

Apéndice A (Capítulos 5 y 6 de la 1ª edición)

Page 2: Segmentación del ciclo de instrucciónelectro.fisica.unlp.edu.ar/arq/transparencias/ARQII_02...El ciclo de conmutación estará determinado por la etapa más lenta (t=max{ti}). Segmentación

Definición: ETAPA (stage) y CAUCE (pipeline)Productividad: frecuencia de salida del cauceLatencia: Dónde apoyo la ropa?

Segmentación

Productividad vs. latencia

Page 3: Segmentación del ciclo de instrucciónelectro.fisica.unlp.edu.ar/arq/transparencias/ARQII_02...El ciclo de conmutación estará determinado por la etapa más lenta (t=max{ti}). Segmentación

Deben realizarse múltiples tareas iguales (n).

Las tareas deben poder ser descompuestas en k etapas de menor duración.

Las entradas de cada etapa ki deben estar determinadas únicamente por las salidas de la etapa anterior ki-1.

Las duraciones de las diferentes etapas ti deben ser comparables. El ciclo de conmutación estará determinado por la etapa más lenta (t=max{ti}).

Segmentación

Condiciones necesarias

Latencia de todas las instrucciones = k.t

Productividad máxima = 1/t

Latencia de todas las instrucciones = k.t

Productividad máxima = 1/t

Page 4: Segmentación del ciclo de instrucciónelectro.fisica.unlp.edu.ar/arq/transparencias/ARQII_02...El ciclo de conmutación estará determinado por la etapa más lenta (t=max{ti}). Segmentación

Luego de k-1 ciclos las k etapas del cauce estarán trabajando.

Teóricamente en ese momento el cauce tiene la máxima productividad (k tareas simultáneas) hasta que se completen las n disponibles.

Si el cauce tiene k etapas de duración t (duración de la etapa más larga), al ejecutarse un conjunto de n tareas, la mejora obtenida con esta técnica puede expresarse como:

S=T secuencial

T segmentado

=nkt

t (k−1 )+nt=

nkk+n−1

→k

Segmentación

Cálculo de la mejora

Si se aumenta el número de etapas, aumenta la productividad (OJO)

Cuidado con el numerador, no es cierto que secuencial tardaría tanto

Page 5: Segmentación del ciclo de instrucciónelectro.fisica.unlp.edu.ar/arq/transparencias/ARQII_02...El ciclo de conmutación estará determinado por la etapa más lenta (t=max{ti}). Segmentación

Problema:

6 servicios de lavandería: lavado 30', secado 40', doblado 20', guardado 10'. Si se implementa un cauce de 4 etapas, se obtiene una mejora aproximada de 4?

Tsecuencial=6*(30'+40'+20'+10')=600'

Tsegmentado=40'*(4-1)+6*40'=360'

S=1.66, muy lejos de 4

Page 6: Segmentación del ciclo de instrucciónelectro.fisica.unlp.edu.ar/arq/transparencias/ARQII_02...El ciclo de conmutación estará determinado por la etapa más lenta (t=max{ti}). Segmentación

Las duraciones de las diferentes etapas no son iguales. La segmentación va al ritmo que impone la etapa más larga (en este caso el secado). Las dos últimas etapas podrían unificarse? S=1.875, más cerca de 3...

El número de tareas (servicios) no es lo suficientemente grande como para que sea despreciable el tiempo de llenado del cauce. Si n=12, S=2.15, más cerca de 3... De todos modos no se puede pasar de 2.5 debido al desbalance anterior.

Para n=1, S=0.83, menor que 1.

Falta considerar la desmejora que agrega comunicación entre etapas, la cual puede no ser despreciable.

% Matlabn=1:100;t=(n.*(30+40+30))./(40*(3­1)+n.*40);plot(n,t)

Page 7: Segmentación del ciclo de instrucciónelectro.fisica.unlp.edu.ar/arq/transparencias/ARQII_02...El ciclo de conmutación estará determinado por la etapa más lenta (t=max{ti}). Segmentación

Fundamento: Sólo una parte del hardware de la máquina de estados es utilizado en cada etapa del ciclo de instrucción.

Segmentación del ciclo de instrucción: Técnica de implementación (rem ORG + TEC) (invisible al programador) que superpone, en el tiempo, las diferentes etapas del ciclo de instrucción. Explotación del paralelismo entre partes de las instrucciones.

Aumenta productividad, desmejora la latencia (sincronización entre etapas costosa).

Es imposible realizar una instrucción en un ciclo de reloj. El óptimo esperable sería realizar cada etapa del pipeline en un ciclo de reloj, alcanzando una productividad de una instrucción por ciclo.

Segmentación

El ciclo de instrucción

Page 8: Segmentación del ciclo de instrucciónelectro.fisica.unlp.edu.ar/arq/transparencias/ARQII_02...El ciclo de conmutación estará determinado por la etapa más lenta (t=max{ti}). Segmentación

Segmentación

El ciclo de instrucción

FETCHFETCH

DECODEDECODE

EXECUTEEXECUTE

MEM

ALU y Registros(Datapath)

UC

EJECUCION DELA INSTRUCCION

EJECUCION DELA INSTRUCCION

DECODIFICACIONDECODIFICACION

CAPTACION DELA INSTRUCCION

CAPTACION DELA INSTRUCCION

FETCHFETCH

DECODEDECODE

EXECUTEEXECUTE

FETCHFETCH

DECODEDECODE

EXECUTEEXECUTE

← In

struccio

nes

i

i+1

i+2

Ciclos ->

n n+1 n+2 n+3 n+4

Modelo más simple: 3 etapas (3-stage pipeline). Requisitos:- registros intermedios- banco multiport (2+1)

Si la etapa de ejecución es la única que tiene acceso al DATAPATH, es la etapa más complicada (debe acceder a los registros operando, realizar la operación, y almacenar el resultado.

Page 9: Segmentación del ciclo de instrucciónelectro.fisica.unlp.edu.ar/arq/transparencias/ARQII_02...El ciclo de conmutación estará determinado por la etapa más lenta (t=max{ti}). Segmentación

Segmentación

El ciclo de instrucción

Decodificador(circuito

combinacional)Memoriade

Programa(cache)

PC

clock

+4

Lin

eas d

e c

on

trol

Instru

cció

nDATAPATH

EJECUTAREXECUTE

DECODIFICARDECODE

CAPTARFETCH

ALU

shifter

Registros

F/D D/E

Page 10: Segmentación del ciclo de instrucciónelectro.fisica.unlp.edu.ar/arq/transparencias/ARQII_02...El ciclo de conmutación estará determinado por la etapa más lenta (t=max{ti}). Segmentación

Segmentación

El ciclo de instrucción

La etapa de ejecución es más larga que las demás (lee registros, calcula y escribe registros). Se pude trasladar el acceso a los registros operando a la etapa de decodificación y agregar una cuarta etapa de escritura del resultado en registro destino (WB: write back).

F-D-E-W

La etapa de ejecución E sólo realiza la operación de la ALU. Las etapas 2 y 4 acceden al banco de registros (banco de registros multiport).

Page 11: Segmentación del ciclo de instrucciónelectro.fisica.unlp.edu.ar/arq/transparencias/ARQII_02...El ciclo de conmutación estará determinado por la etapa más lenta (t=max{ti}). Segmentación
Page 12: Segmentación del ciclo de instrucciónelectro.fisica.unlp.edu.ar/arq/transparencias/ARQII_02...El ciclo de conmutación estará determinado por la etapa más lenta (t=max{ti}). Segmentación

Con los almacenamientos no hay problema, pero ante una carga: Detener siempre (ineficiente), comprobar dependencia (toma tiempo) o no detener nunca (carga retardada).Ventajas del reordenamiento del código en cada caso.

Falta contemplar el acceso a memoria.Para la segmentación de 3 etapas, agregar una cuarta etapa.

Page 13: Segmentación del ciclo de instrucciónelectro.fisica.unlp.edu.ar/arq/transparencias/ARQII_02...El ciclo de conmutación estará determinado por la etapa más lenta (t=max{ti}). Segmentación

Resulta la segmentación clásica en 5 etapasTodas las instrucciones pasan por M (incluso las de ALU).La estapas F y M acceden a memoria (Harvard).

Falta contemplar el acceso a memoria.Otra opción:

Page 14: Segmentación del ciclo de instrucciónelectro.fisica.unlp.edu.ar/arq/transparencias/ARQII_02...El ciclo de conmutación estará determinado por la etapa más lenta (t=max{ti}). Segmentación

Segmentación

Operando en memoria

CAPTACION DELA INSTRUCCION

CAPTACION DELA INSTRUCCION

DECODIFICACIONDECODIFICACION

CAPTACION DELOPERANDO

CAPTACION DELOPERANDO

EJECUCION DELA INSTRUCCION

EJECUCION DELA INSTRUCCION

CALCULO DIRDEL OPERANDO

CALCULO DIRDEL OPERANDO

ESCRITURA DELOPERANDO

ESCRITURA DELOPERANDO

MEMORIA(datos)

REGISTROS

MEMORIA(programa)

ALU

AGU

UC y REGISTROS

FI

DI

CO

FO

EI

WO

STALLINGS-Intel(1,2): ADD R1,R2

CISC: operando en memoriaCISC: operando en memoria

Page 15: Segmentación del ciclo de instrucciónelectro.fisica.unlp.edu.ar/arq/transparencias/ARQII_02...El ciclo de conmutación estará determinado por la etapa más lenta (t=max{ti}). Segmentación

Segmentación

Operando en memoria

Page 16: Segmentación del ciclo de instrucciónelectro.fisica.unlp.edu.ar/arq/transparencias/ARQII_02...El ciclo de conmutación estará determinado por la etapa más lenta (t=max{ti}). Segmentación

Las instrucciones deben poder ser descompuestas en k etapas de menor duración.

Las entradas de cada etapa ki deben estar determinadas únicamente por las salidas de la etapa anterior ki-1.

Las duraciones de las diferentes etapas ti deben ser comparables. El clock del pipeline estará determinado por la etapa más lenta (t=max{ti}).

Segmentación

Condiciones necesarias

Latencia de todas las instrucciones = k.t

Productividad máxima = 1/t

Latencia de todas las instrucciones = k.t

Productividad máxima = 1/t

Page 17: Segmentación del ciclo de instrucciónelectro.fisica.unlp.edu.ar/arq/transparencias/ARQII_02...El ciclo de conmutación estará determinado por la etapa más lenta (t=max{ti}). Segmentación

Luego de k-1 ciclos las k etapas del pipeline estarán trabajando.

Teóricamente en ese momento el pipeline tiene la máxima productividad (k instrucciones simultáneas) hasta que se altere la secuencia (salto o interrupción).

Si aumento el número de etapas, aumenta la productividad, hasta cierto punto (ver luego).

Si el pipeline tiene k etapas de duración t (duración de la etapa más larga), al ejecutarse un conjunto de n instrucciones, la mejora obtenida con esta técnica puede expresarse como:

S=TT P

=nkt

t (k−1 ) +nt=

nkk+n−1

→ k

Segmentación

Mejora – Productividad vs. latencia

OBJETIVOS DEL DISEÑADOR: Equilibrar las etapas (igual duración), hacerlas independientes (que no compartan recursos) y mantenerlas ocupadas (atenuar los efectos de los saltos y la dependencia de datos)

Page 18: Segmentación del ciclo de instrucciónelectro.fisica.unlp.edu.ar/arq/transparencias/ARQII_02...El ciclo de conmutación estará determinado por la etapa más lenta (t=max{ti}). Segmentación
Page 19: Segmentación del ciclo de instrucciónelectro.fisica.unlp.edu.ar/arq/transparencias/ARQII_02...El ciclo de conmutación estará determinado por la etapa más lenta (t=max{ti}). Segmentación

Retardo adicional al tener que presentar la información entre etapas en registros intermedios (control de la segmentación).

La única opción es implementar las etapas de igual duración y todas las instrucciones deben respetarlas.

Aumenta la complejidad de la CPU.

Difícil mantener el cauce completo debido a los riesgos de la segmentación (a continuación).

Segmentación

Límites en la implementación

TIPICO 2-3-5 ETAPAS (RISC)

Page 20: Segmentación del ciclo de instrucciónelectro.fisica.unlp.edu.ar/arq/transparencias/ARQII_02...El ciclo de conmutación estará determinado por la etapa más lenta (t=max{ti}). Segmentación

80486 y Pentium: cinco etapas para instrucciones con enteros (FI, D1, D2, EX, WB) y ocho para instrucciones de punto flotante.

PowerPC: cuatro etapas para instrucciones con enteros y seis para instrucciones de punto flotante.

H-P (DLX): cinco etapas (IF, ID, EX, MEM, WB).

Segmentación

Ejemplos

Page 21: Segmentación del ciclo de instrucciónelectro.fisica.unlp.edu.ar/arq/transparencias/ARQII_02...El ciclo de conmutación estará determinado por la etapa más lenta (t=max{ti}). Segmentación

Segmentación

RISC en cinco etapasRISC: carga/almacenamientoRISC: carga/almacenamiento

1. FI: Captar la instrucción e incrementar PC 2. ID: Decodificar instrucción y captar registros 3. EX: Tres opciones: calcular dirección efectiva, ALU o salto 4. MEM: Acceso a memoria (solo carga o almacenamiento) – (Terminan store y saltos: 4c) 5. WB: Escribir registro de salida – (Termina el resto: 5c)

1. FI: Captar la instrucción e incrementar PC 2. ID: Decodificar instrucción y captar registros 3. EX: Tres opciones: calcular dirección efectiva, ALU o salto 4. MEM: Acceso a memoria (solo carga o almacenamiento) – (Terminan store y saltos: 4c) 5. WB: Escribir registro de salida – (Termina el resto: 5c)

4c < CPI < 5c

DATA

PATH

Page 22: Segmentación del ciclo de instrucciónelectro.fisica.unlp.edu.ar/arq/transparencias/ARQII_02...El ciclo de conmutación estará determinado por la etapa más lenta (t=max{ti}). Segmentación

MAR   PC; IR   M[MAR]; PC   PC + 4← ← ←

1. Captación (fetch) IFLa instrucción es transferida al registro de instrucción. En dos pasos porque el PC no tiene conexión directa a memoria.

2. Decodificación (decode) IDDecodificación y lectura de los registros involucrados. Puede hacerse simultáneamente por ser campo fijo.

3. Ejecución (execute) EXOperación de la ALU. Depende del tipo de instrucción. Referencia a memoria, salto/bifurcación o instrucción ALU. No al mismo tiempo.

A   REG[IR[25:21]]; B   REG[IR[20:16]]← ←

ALUout   A op B  (ALU)←MAR   A + IR[15:0]; MDR   Rd (Memory)← ←If A = B then PC := ALUout (Branch)

4. Acceso a memoria (memory access) MEMSe accede a memoria si es necesario (carga o almacenamiento) con la dirección calculada en el paso anterior. O realizar el salto.

5. Post-escritura (write-back) WBEscribir resultado en el registro, tanto si viene de la ALU como si viene de memoria.

MDR   M[MAR]; M[MAR]   MDR← ←

Rd   ← ALUoutA o MDR

Page 23: Segmentación del ciclo de instrucciónelectro.fisica.unlp.edu.ar/arq/transparencias/ARQII_02...El ciclo de conmutación estará determinado por la etapa más lenta (t=max{ti}). Segmentación

Segmentación

RISC en cinco etapas

Page 24: Segmentación del ciclo de instrucciónelectro.fisica.unlp.edu.ar/arq/transparencias/ARQII_02...El ciclo de conmutación estará determinado por la etapa más lenta (t=max{ti}). Segmentación

Segmentación

RISC en cinco etapas

Page 25: Segmentación del ciclo de instrucciónelectro.fisica.unlp.edu.ar/arq/transparencias/ARQII_02...El ciclo de conmutación estará determinado por la etapa más lenta (t=max{ti}). Segmentación

Segmentación

RISC en cinco etapas

Requisitos:- registros intermedios- banco multiport (2 lecturas + 1 escritura)- memoria de datos e instrucciones separadas- incrementar PC- detección temprana de saltos (riesgos de control) + forwarding (dependencias)

Page 26: Segmentación del ciclo de instrucciónelectro.fisica.unlp.edu.ar/arq/transparencias/ARQII_02...El ciclo de conmutación estará determinado por la etapa más lenta (t=max{ti}). Segmentación

Segmentación

ARM7 (3) y ARM9 (5)

Page 27: Segmentación del ciclo de instrucciónelectro.fisica.unlp.edu.ar/arq/transparencias/ARQII_02...El ciclo de conmutación estará determinado por la etapa más lenta (t=max{ti}). Segmentación

Segmentación

Cortex-M3 en tres etapas

Page 28: Segmentación del ciclo de instrucciónelectro.fisica.unlp.edu.ar/arq/transparencias/ARQII_02...El ciclo de conmutación estará determinado por la etapa más lenta (t=max{ti}). Segmentación

(Pipeline HAZARDS)

Ver definiciones de “hazard”, “stall”, “pipeline interlock (HW)”

Clasificación:

Riesgos estructurales

Riesgos por dependencia de datos

Riesgos de control

Segmentación

Riesgos de la implementación

Page 29: Segmentación del ciclo de instrucciónelectro.fisica.unlp.edu.ar/arq/transparencias/ARQII_02...El ciclo de conmutación estará determinado por la etapa más lenta (t=max{ti}). Segmentación

Sucede cuando un recurso (memoria, alu) debe ser utilizado por varias instrucciones simultáneamente.

Ejemplo: una instrucción de carga desde memoria impide el acceso durante un ciclo. El fetch de la instrucción i+3 debe ser suspendido.

Penalidad: 1 ciclo

Segmentación > Riesgos

1. Riesgos estructurales

Page 30: Segmentación del ciclo de instrucciónelectro.fisica.unlp.edu.ar/arq/transparencias/ARQII_02...El ciclo de conmutación estará determinado por la etapa más lenta (t=max{ti}). Segmentación

Segmentación > Riesgos > 1. Estructurales

Ejemplo

Page 31: Segmentación del ciclo de instrucciónelectro.fisica.unlp.edu.ar/arq/transparencias/ARQII_02...El ciclo de conmutación estará determinado por la etapa más lenta (t=max{ti}). Segmentación

Segmentación > Riesgos > 1. Estructurales

Ejemplo (cont)

Page 32: Segmentación del ciclo de instrucciónelectro.fisica.unlp.edu.ar/arq/transparencias/ARQII_02...El ciclo de conmutación estará determinado por la etapa más lenta (t=max{ti}). Segmentación

Duplicación de recursos, por ejemplo en el caso de la ALU.

Cache de datos e instrucciones independientes, para evitar los conflictos de memoria.

Un solo acceso a memoria de datos por instrucción (RISC).

Lectura (x2) y escritura (x1) simultánea del banco de registros (RISC).

Las unidades funcionales de PF pueden ser a la vez segmentadas para soportar varias instrucciones simultáneas (ver luego).

Segmentación > Riesgos > 1. Estructurales

Reducción de los efectos

Page 33: Segmentación del ciclo de instrucciónelectro.fisica.unlp.edu.ar/arq/transparencias/ARQII_02...El ciclo de conmutación estará determinado por la etapa más lenta (t=max{ti}). Segmentación

Sucede principalmente cuando una instrucción requiere un dato generado por la ejecución de una instrucción anterior que aún no ha finalizado. Esta situación puede complicarse cuando desordenemos la ejecución de las instrucciones, pero por ahora es simple.

Hasta que no se escribe un registro, no puede leerse. Tanto después de una carga como después de una operación de la ALU.

La penalidad depende del tipo de operación.

Segmentación > Riesgos

2. Riesgos por dep. de datos

Los efectos pueden reducirse utilizando técnicas de ADELANTAMIENTO (forwarding, bypassing). Camino adicional de HW. Por ejemplo, el resultado de la ALU es realimentado a su entrada, evitando el ciclo de escritura W.

Page 34: Segmentación del ciclo de instrucciónelectro.fisica.unlp.edu.ar/arq/transparencias/ARQII_02...El ciclo de conmutación estará determinado por la etapa más lenta (t=max{ti}). Segmentación

Segmentación > Riesgos > 2. Dependencia de datos

Forwarding

Page 35: Segmentación del ciclo de instrucciónelectro.fisica.unlp.edu.ar/arq/transparencias/ARQII_02...El ciclo de conmutación estará determinado por la etapa más lenta (t=max{ti}). Segmentación

Segmentación > Riesgos > 2. Dependencia de datos

Forwarding (cont)

Page 36: Segmentación del ciclo de instrucciónelectro.fisica.unlp.edu.ar/arq/transparencias/ARQII_02...El ciclo de conmutación estará determinado por la etapa más lenta (t=max{ti}). Segmentación

Segmentación > Riesgos > 2. Dependencia de datos

Forwarding (cont)

Page 37: Segmentación del ciclo de instrucciónelectro.fisica.unlp.edu.ar/arq/transparencias/ARQII_02...El ciclo de conmutación estará determinado por la etapa más lenta (t=max{ti}). Segmentación

Segmentación > Riesgos > 2. Dependencia de datos

Forwarding (cont)

a) Adelantamiento ALU-ALU. Se evita la detención.

b) Adelantamiento Ucarga-ALU. Debe producirse una detención (stall) utilizando hardware (pipeline interlock).

Page 38: Segmentación del ciclo de instrucciónelectro.fisica.unlp.edu.ar/arq/transparencias/ARQII_02...El ciclo de conmutación estará determinado por la etapa más lenta (t=max{ti}). Segmentación

Producidos por las instrucciones de salto. Las consecuencias dependen del tipo de salto, la implementación y el resultado del salto, en el caso de los condicionales.

Salto incondicional: no se conoce la dirección de la próxima instrucción hasta después de finalizada la decodificación. Se realiza el fetch de la instrucción siguiente y luego se descarta.

Salto condicional que NO SALTA: en el pipeline presentado no se verifica en E. Había captado bien la siguiente instrucción, por lo tanto puede continuar.

Salto condicional que SALTA: en E se verifica la condición y en W se modifica el PC. Hay que captar de nuevo.

Segmentación > Riesgos

3. Riesgos de controlEfecto de las

INTERRUPCIONES

Page 39: Segmentación del ciclo de instrucciónelectro.fisica.unlp.edu.ar/arq/transparencias/ARQII_02...El ciclo de conmutación estará determinado por la etapa más lenta (t=max{ti}). Segmentación

Segmentación > Riesgos > 3. De control

Ejemplos

Page 40: Segmentación del ciclo de instrucciónelectro.fisica.unlp.edu.ar/arq/transparencias/ARQII_02...El ciclo de conmutación estará determinado por la etapa más lenta (t=max{ti}). Segmentación

Las operaciones de control (condicionales o incondicionales) son muy frecuentes en los programas reales, por lo que pueden reducir drásticamente la performance del pipeline.

Estadísticas:

20-35% de las operaciones son saltos.

~65% de dichas operaciones toman el salto.

Hay casi el doble de saltos condicionales que de saltos incondicionales.

Segmentación > Riesgos > 3. De control

Estadísticas

Page 41: Segmentación del ciclo de instrucciónelectro.fisica.unlp.edu.ar/arq/transparencias/ARQII_02...El ciclo de conmutación estará determinado por la etapa más lenta (t=max{ti}). Segmentación

Instruction fetch units y colas de instrucciones (hardware adicional)

Buffer de bucles (pequeña cache de instrucciones consecutivas) [CRAY-1]

Útiles solo en el caso de saltos incondicionales.

Segmentación > Riesgos > 3. De control

Reducción de los efectos

Page 42: Segmentación del ciclo de instrucciónelectro.fisica.unlp.edu.ar/arq/transparencias/ARQII_02...El ciclo de conmutación estará determinado por la etapa más lenta (t=max{ti}). Segmentación

Flujos múltiples:

Se siguen los dos caminos posibles, duplicando las partes iniciales del hardware.

Puede entrar en el cauce una nueva bifurcación.

[IBM 370/168]

Salto retardado:

Modificación del ciclo de instrucción, que requiere reordenamiento del código por parte del compilador.

Luego de cada instrucción de salto hay un branch delay slot: la instrucción siguiente se ejecuta SIEMPRE.

60-80% efectivo, si no NOP.

[RISC]

Segmentación > Riesgos > 3. De control

Reducción de los efectos (cont)

Page 43: Segmentación del ciclo de instrucciónelectro.fisica.unlp.edu.ar/arq/transparencias/ARQII_02...El ciclo de conmutación estará determinado por la etapa más lenta (t=max{ti}). Segmentación

Predicción de saltos:

Estática

Siempre salta o nunca salta [Motorola 68020] Depende de la direccion [PowerPC 601]

Dinámica

Uno o dos bits (HW) asociados a cada instrucción de salto [IBM 3090/400]

Tabla de historia de saltos (memoria cache: tabla con dirección de la instrucción de bifurcación + bits de historia + destino) [AMD 29000]

NOTA: Ejecución especulativa (no solo fetch, comienzo a ejecutar)

Segmentación > Riesgos > 3. De control

Reducción de los efectos (cont)

Page 44: Segmentación del ciclo de instrucciónelectro.fisica.unlp.edu.ar/arq/transparencias/ARQII_02...El ciclo de conmutación estará determinado por la etapa más lenta (t=max{ti}). Segmentación

Esquema típico de predicción dinámica con dos bits: cambiar la predicción solo si suceden dos predicciones incorrectas consecutivas (ver variantes).

Segmentación > Riesgos > 3. De control

Reducción de los efectos (cont)

Page 45: Segmentación del ciclo de instrucciónelectro.fisica.unlp.edu.ar/arq/transparencias/ARQII_02...El ciclo de conmutación estará determinado por la etapa más lenta (t=max{ti}). Segmentación

Segmentación > Riesgos

Resumen

RIESGOS ESTRUCTURALES(conflicto de recursos)

RIESGOS ESTRUCTURALES(conflicto de recursos)

RIESGOS POR DEPENDENCIA DE DATOS(adelantamiento)

RIESGOS POR DEPENDENCIA DE DATOS(adelantamiento)

RIESGOS DE CONTROL(saltos e interrupciones)

RIESGOS DE CONTROL(saltos e interrupciones)

Page 46: Segmentación del ciclo de instrucciónelectro.fisica.unlp.edu.ar/arq/transparencias/ARQII_02...El ciclo de conmutación estará determinado por la etapa más lenta (t=max{ti}). Segmentación

Las instrucciones son ejecutadas por la CPU como una secuencia de pasos. La ejecución de instrucciones puede acelerarse sustancialmente utilizando segmentación (pipelining)

Un pipeline se organiza como una secuencia de k etapas. En un cierto instante puede haber k instrucciones activas en el pipeline. Ejemplo línea de montaje.

Aumentar el número de etapas aumenta la productividad, hasta cierto punto.

Los riesgos (hazards) impiden mantener la máxima tasa. Los riesgos estructurales se deben a conflictos en la utilización de recursos. También existen riesgos por dependencia de datos (inevitables) y riesgos de control debidos a las instrucciones de salto.

Las instrucciones de salto pueden deteriorar significativamente la performance del pipeline, por lo que deben aplicarse técnicas que reduzcan sus efectos.

Segmentación

Sumario

Page 47: Segmentación del ciclo de instrucciónelectro.fisica.unlp.edu.ar/arq/transparencias/ARQII_02...El ciclo de conmutación estará determinado por la etapa más lenta (t=max{ti}). Segmentación

Antes de emitir una nueva instrucción de punto flotante- Comprobar riesgos estructurales

- Comprobar dependencia de datos RAW- Comprobar adelantamiento

Extensión de la segmentación para manipular operaciones multicicloEMISION DE INSTRUCCIONES

Page 48: Segmentación del ciclo de instrucciónelectro.fisica.unlp.edu.ar/arq/transparencias/ARQII_02...El ciclo de conmutación estará determinado por la etapa más lenta (t=max{ti}). Segmentación

Extensión de la segmentación para manipular operaciones multicicloSEGMENTACION DE LAS UNIDADES FUNCIONALES

Page 49: Segmentación del ciclo de instrucciónelectro.fisica.unlp.edu.ar/arq/transparencias/ARQII_02...El ciclo de conmutación estará determinado por la etapa más lenta (t=max{ti}). Segmentación

F D E1 E2 E3 E4

F D E1

E2

E3

stall E4stal

l

stall

stall

stall

stall

WB

WB

F D E WB

F D E WB

SEGMENTACION DE INSTRUCCIONES MULTICICLO

SUMA PFE1: Restar exponentesE2: Rotar mantisaE3: Sumar mantisasE4: Normalizar

E: ALUa) Agregar etapas: Sufren latencia las inst ALU. No sirve para muchas etapas. Se usa para multiplicación de enteros (se puede hacer en 2 etapas).

b) Agregar funcionaldad a la ALU y repetir E: Equivale a insertar detenciones. ALU compleja. No afecta a las instrucciones simples. La instrucción multiciclo no tiene segmentación. Se usa para instrucciones muy largas y poco frecuentes (división).

F D E WB

Page 50: Segmentación del ciclo de instrucciónelectro.fisica.unlp.edu.ar/arq/transparencias/ARQII_02...El ciclo de conmutación estará determinado por la etapa más lenta (t=max{ti}). Segmentación

F D E1

F D E2

F D E3

F D E4

WB

WB

WB

WB

F D E WB

c) Aproximación RISC: La funcionalidad está en diferentes instrucciones. No existe la instrucción de suma en PF. Hay que implementarla por software. Similar a b).

F D E1

F D E23

F D E4

WB

WB

WB

ARM7: No tiene instrucciones de PF, pero incluye shifter en el datapath.

Page 51: Segmentación del ciclo de instrucciónelectro.fisica.unlp.edu.ar/arq/transparencias/ARQII_02...El ciclo de conmutación estará determinado por la etapa más lenta (t=max{ti}). Segmentación

F D

E1 E2 E3 E4

WB

E

d) Cauces paralelos: Pueden terminar dos al mismo tiempo (banco de registros PF separado), o incluso desordenadas. Se detiene. Pero no hace falta si hay una secuencia de instrucciones de PF. No desmejora las instrucciones simples.

RAW: Siempre existe. Se usa adelantamiento o detención.WAR: No existe pues la emisión de instrucciones es ordenada.WAW: Aparece debido a la finalización desordenada.

Page 52: Segmentación del ciclo de instrucciónelectro.fisica.unlp.edu.ar/arq/transparencias/ARQII_02...El ciclo de conmutación estará determinado por la etapa más lenta (t=max{ti}). Segmentación
Page 53: Segmentación del ciclo de instrucciónelectro.fisica.unlp.edu.ar/arq/transparencias/ARQII_02...El ciclo de conmutación estará determinado por la etapa más lenta (t=max{ti}). Segmentación

INTRODUCCIÓN A LAS ARQUITECTURAS SUPERESCALARESMientras ejecuto una secuencia de sumas en PF, el resto de las unidades

funcionales (UF) están libres. Si se pudieran captar y decodificar dos instrucciones simultáneamente, y las dos no requirieran la misma UF...