ARQII_02-Segmentacion

Embed Size (px)

Citation preview

  • 8/8/2019 ARQII_02-Segmentacion

    1/35

    Segmentacin

    William Stallings, Organizacin y Arquitectura deComputadores, Captulo 11: Estructura y funcin de la CPU.

    John Hennessy David Patterson,Arquitectura deComputadores Un enfoque cuantitativo 1a Edicin

    Captulo 6: Segmentacin(4a Edicin, Apndice A)

  • 8/8/2019 ARQII_02-Segmentacion

    2/35

  • 8/8/2019 ARQII_02-Segmentacion

    3/35

    Fundamento: Slo una parte del hardware es utilizado en cada etapa delciclo de instruccin.

    Definicin: Tcnica de implementacin (invisible al programador) quesuperpone, en el tiempo, las diferentes etapas del ciclo de instruccin.Explotacin del paralelismo entre partes de las instrucciones.

    Ejemplo de la lnea de montaje (PIPELINE, tubera?). Aumentaproductividad, pero desmejora la latencia (la sincronizacin entre etapas escostosa).

    Es imposible realizar una instruccin en un ciclo de reloj. El ptimoesperable sera realizar cada etapa del pipeline en un ciclo de reloj,alcanzando una productividad de una instruccin por ciclo.

    Segmentacin

    El ciclo de instruccin

  • 8/8/2019 ARQII_02-Segmentacion

    4/35

    Segmentacin

    El ciclo de instruccin

    FETCH DECODE EXECUTE

    MEM

    ALU

    UC

    EJECUCION DELA INSTRUCCION

    DECODIFICACION

    CAPTACION DELA INSTRUCCION

    FETCH DECODE EXECUTE

    FETCH DECODE EXECUTEIns

    truccin i

    i+1

    i+2

    Ciclo

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

    Modelo muy simple. Qusucede cuando las instruccionescomienzan a sofisticarse?

  • 8/8/2019 ARQII_02-Segmentacion

    5/35

    Segmentacin

    El ciclo de instruccinCAPTACION DE

    LA INSTRUCCION

    DECODIFICACION

    CAPTACION DELOPERANDO

    EJECUCION DELA INSTRUCCION

    CALCULO DIRDEL OPERANDO

    ESCRITURA DELOPERANDO

    MEMORIA

    (datos)

    MEMORIA

    (datos)

    MEMORIA

    (programa)

    ALU

    ALU

    UC

    FI

    DI

    CO

    FO

    EI

    WO

    STALLINGS

    CISC: operando en memoria

  • 8/8/2019 ARQII_02-Segmentacion

    6/35

    Segmentacin

    Stallings seis etapas

  • 8/8/2019 ARQII_02-Segmentacion

    7/35

    Segmentacin

    HP en cinco etapasRISC: carga/almacenamiento

    1. FI: Captar la instruccin e incrementar PC2. ID: Decodificar instruccin y captar registros (Terminan saltos: 2c)3. EX: Tres opciones: calcular direccin efectiva, ALU R-R o ALU R-Inmediato4. MEM: Acceso a memoria (solo carga o almacenamiento) (Termina store: 4c)

    5. WB: Escribir registro de salida (Termina el resto: 5c)

    4c < CPI < 5c

  • 8/8/2019 ARQII_02-Segmentacion

    8/35

    Segmentacin

    HP en cinco etapas

  • 8/8/2019 ARQII_02-Segmentacion

    9/35

    Segmentacin

    HP en cinco etapas

  • 8/8/2019 ARQII_02-Segmentacion

    10/35

    Segmentacin

    HP en cinco etapas

  • 8/8/2019 ARQII_02-Segmentacion

    11/35

    Las instrucciones deben poder ser descompuestas enketapas de menor duracin.

    Las entradas de cada etapa kideben estar

    determinadas nicamente por las salidas de la etapa

    anterior ki-1. Las duraciones de las diferentes etapas t

    ideben ser

    comparables. El clock del pipeline estardeterminado por la etapa ms lenta (t=max{t

    i}).

    Segmentacin

    Condiciones

    Latencia de todas las instrucciones = k.t

    Productividad mxima = 1/t

  • 8/8/2019 ARQII_02-Segmentacion

    12/35

    Luego de k-1 ciclos las ketapas del pipeline estarn trabajando. Tericamente en ese momento el pipeline tiene la mxima

    productividad (kinstrucciones simultneas) hasta que se altere lasecuencia (salto o interrupcin).

    Si aumento el nmero de etapas, aumenta la productividad, hastacierto punto (ver luego).

    Si el pipeline tiene ketapas de duracin t(duracin de la etapams larga), al ejecutarse un conjunto de n instrucciones, laaceleracin obtenida con esta tcnica puede expresarse como:

    S= TT

    P

    = nkt

    t k1 +nt= nkk+n1

    k

    Segmentacin

    Aceleracin

    OBJETIVOS DEL DISEADOR: Equilibrar las etapas (igual duracin),hacerlas independientes (que no compartan recursos) y mantenerlas

    ocupadas (atenuar los efectos de los saltos y la dependencia de datos)

  • 8/8/2019 ARQII_02-Segmentacion

    13/35

  • 8/8/2019 ARQII_02-Segmentacion

    14/35

    Retardo adicional al tener que presentar lainformacin entre etapas en registros intermedios(control de la segmentacin).

    La nica opcin es implementar las etapas de igual

    duracin y todas las instrucciones deben respetarlas.

    Aumenta la complejidad de la CPU.

    Difcil mantener el cauce completo debido a losriesgos de la segmentacin (a continuacin).

    Segmentacin

    Lmites en la implementacin

    MAXIMO 6-9 ETAPAS

  • 8/8/2019 ARQII_02-Segmentacion

    15/35

    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 parainstrucciones de punto flotante.

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

    PowerPC: Es una arquitectura de computadoras de tipo RISC introducida en1990 por la Alianza AIM, un consorcio de empresas compuesto por Apple,IBM y Motorola, de cuyas primeras letras, surgi la sigla. Los procesadores

    de esta familia son producidos por IBM y Freescale Semiconductor que esla division de semiconductores y microprocesadores de Motorola, siendoutilizados principalmente en ordenadores o computadores Macintosh de

    Apple Computer. Mas informacin en el sitio de IBM, Arquitecturas Power.Prctica de repaso: comparacin con Pentium en Stallings, captulos 1, 4 y11.

    Segmentacin

    Ejemplos

  • 8/8/2019 ARQII_02-Segmentacion

    16/35

    HAZARDS: Situaciones que impiden la ejecucin de laprxima instruccin de la secuencia durante sucorrespondiente ciclo (el procesador queda detenido,suspendido, stalled, durante uno o ms ciclos). Todas lasinstrucciones posteriores son tambin suspendidas y no se

    realiza una nueva captacin mientras dure la suspensin.Clasificacin:

    Riesgos estructurales

    Riesgos por dependencia de datos

    Riesgos de control

    Segmentacin

    Riesgos de implementacin

  • 8/8/2019 ARQII_02-Segmentacion

    17/35

    Sucede cuando un recurso (memoria, alu) debe ser utilizado por variasinstrucciones simultneamente.

    Ejemplo: una instruccin de carga desde memoria impide el accesodurante un ciclo. El fetch de la instruccin i+3 debe ser suspendido.

    Penalidad: 1 ciclo

    Segmentacin > Riesgos

    1. Riesgos estructurales

  • 8/8/2019 ARQII_02-Segmentacion

    18/35

    Segmentacin > Riesgos > 1. Estructurales

    Ejemplo

  • 8/8/2019 ARQII_02-Segmentacion

    19/35

    Segmentacin > Riesgos > 1. Estructurales

    Ejemplo (cont)

  • 8/8/2019 ARQII_02-Segmentacion

    20/35

    Duplicacin de recursos, por ejemplo en el caso dela ALU.

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

    Un solo acceso a memoria de datos por instruccin(RISC).

    Lectura y escritura simultnea del banco deregistros (RISC).

    Las unidades funcionales de PF pueden ser a la vezsegmentadas para soportar varias instruccionessimultneas (ver ejercicio en la prctica).

    Segmentacin > Riesgos > 1. Estructurales

    Reduccin de los efectos

    Segmentacin > Riesgos

  • 8/8/2019 ARQII_02-Segmentacion

    21/35

    Sucede principalmente cuando una instruccin requiere undato generado por la ejecucin de una instruccin anteriorque an no ha finalizado.

    Ejemplo:

    Penalidad: 2 ciclos

    Segmentacin > Riesgos

    2. Riesgos por dependencia dedatos

  • 8/8/2019 ARQII_02-Segmentacion

    22/35

    Para dos instrucciones consecutivas los riesgos pueden clasificarseen tres categoras, siendo la primera la ms usual.

    RAW (read after write): la segunda instruccin lee un dato antesque la primera lo genere. Lee el dato antiguo.

    WAR (write after read): la segunda escribe un destino antes quesea ledo por la primera. La primera toma el valor incorrecto(nuevo).

    WAW (write after write): la segunda escribe un operando antes

    de que sea escrito por la primera. Escrituras en ordenincorrecto. Queda lo escrito por la primera.

    Segmentacin > Riesgos > 2. Dependencia de datos

    Clasificacin

  • 8/8/2019 ARQII_02-Segmentacion

    23/35

    ADELANTAMIENTO (forwarding,bypassing)

    Camino adicional de HW.

    El resultado de la ALU es realimentado

    a su entrada, evitando el ciclo deescritura WO.

    Penalidad: 1 ciclo (antes 2)

    Segmentacin > Riesgos > 2. Dependencia de datos

    Reduccin de los efectos

  • 8/8/2019 ARQII_02-Segmentacion

    24/35

    Segmentacin > Riesgos > 2. Dependencia de datos

    Forwarding

  • 8/8/2019 ARQII_02-Segmentacion

    25/35

    Segmentacin > Riesgos > 2. Dependencia de datos

    Forwarding (cont)

  • 8/8/2019 ARQII_02-Segmentacion

    26/35

    Producidos por las instrucciones de salto.

    Ejemplo salto incondicional: no se conoce la direccin de laprxima instruccin hasta despus del FO. Se realiza el fetchde la instruccin siguiente y luego se descarta.

    Penalidad: 3 ciclos

    Segmentacin > Riesgos

    3. Riesgos de controlEfecto de las

    INTERRUPCIONES

  • 8/8/2019 ARQII_02-Segmentacion

    27/35

    Salto condicional que SALTA: no se conoce la direccin de laprxima instruccin hasta despus del EI.

    Penalidad: 3 ciclos

    Segmentacin > Riesgos > 3. De control

    Ejemplo

  • 8/8/2019 ARQII_02-Segmentacion

    28/35

    Ejemplo salto condicional que NO SALTA: no se conoce lacondicin hasta despus del EI, cuando la siguienteinstruccin puede continuar.

    Penalidad: 2 ciclos

    Existe penalidad aunque no salte!

    Segmentacin > Riesgos > 3. De control

    Ejemplo (cont)

  • 8/8/2019 ARQII_02-Segmentacion

    29/35

    Las operaciones de control (condicionales o incondicionales)son muy frecuentes en los programas reales, por lo quepueden reducir drsticamente la performance del pipeline.

    Estadsticas:

    20-35% de las operaciones son saltos.

    ~65% de dichas operaciones toman el salto.

    Hay casi el doble de saltos condicionales que de saltosincondicionales.

    Segmentacin > Riesgos > 3. De control

    Estadsticas

  • 8/8/2019 ARQII_02-Segmentacion

    30/35

    Instruction fetch units y colas de instrucciones (hardwareadicional)

    Buffer de bucles (pequea cache de instrucciones consecutivas)[CRAY-1]

    tiles solo en el caso de saltos incondicionales.

    Segmentacin > Riesgos > 3. De control

    Reduccin de los efectos

  • 8/8/2019 ARQII_02-Segmentacion

    31/35

    Flujos mltiples:Se siguen los dos caminos posibles, duplicando las partesiniciales del hardware.

    Puede entrar en el cauce una nueva bifurcacin.

    [IBM 370/168]Salto retardado:

    Reordenamiento por compilador.

    Luego de cada instruccin de salto hay un branch delay slot: la

    instruccin siguiente se ejecuta.60-80% efectivo, si no NOP.

    [RISC]

    Segmentacin > Riesgos > 3. De control

    Reduccin de los efectos (cont)

    S t i Ri 3 D t l

  • 8/8/2019 ARQII_02-Segmentacion

    32/35

    Prediccin de saltos: Esttica

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

    Dinmica Uno o dos bits (HW) asociados a cada instruccin de salto

    [IBM 3090/400] Tabla de historia de saltos (memoria cache: tabla con

    direccin de la instruccin de bifurcacin + bits de historia

    + destino) [AMD 29000]

    NOTA: Ejecucin especulativa (no solo fetch, comienzo a ejecutar)

    Segmentacin > Riesgos > 3. De control

    Reduccin de los efectos (cont)

    S t i Ri 3 D t l

  • 8/8/2019 ARQII_02-Segmentacion

    33/35

    Esquema tpico de prediccin dinmica con dos bits: cambiar la

    prediccin solo si suceden dos predicciones incorrectasconsecutivas (ver variantes).

    Segmentacin > Riesgos > 3. De control

    Reduccin de los efectos (cont)

    Segmentacin > Riesgos

  • 8/8/2019 ARQII_02-Segmentacion

    34/35

    Segmentacin > Riesgos

    Resumen

    RIESGOS ESTRUCTURALES(conflicto de recursos)

    RIESGOS POR DEPENDENCIA DE DATOS(RAW-WAR-WAW)

    RIESGOS DE CONTROL(saltos - interrupciones)

    Segmentacin

  • 8/8/2019 ARQII_02-Segmentacion

    35/35

    Las instrucciones son ejecutadas por la CPU como una secuencia de pasos.La ejecucin de instrucciones puede acelerarse sustancialmente utilizandosegmentacin (pipelining)

    Un pipeline se organiza como una secuencia de k etapas. En un ciertoinstante puede haber k instrucciones activas en el pipeline. Ejemplo lneade montaje.

    Aumentar el nmero de etapas aumenta la productividad, hasta ciertopunto.

    Los riesgos (hazards) impiden mantener la mxima tasa. Los riesgosestructurales se deben a conflictos en la utilizacin de recursos. Tambinexisten riesgos por dependencia de datos 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 tcnicas que reduzcansus efectos.

    Segmentacin

    Sumario