Monografias.com > Computación
Descargar Imprimir Comentar Ver trabajos relacionados

Riegos de la segmentación avanzada




Enviado por Pablo Turmero



Partes: 1, 2, 3


    Monografias.com
    PRESTACIONES DE UNA UNIDAD SEGMENTADA
    El speedup ideal de una unidad segmentada es el número de etapas en el cauce
    Como se pueden alcanzar estas prestaciones?
    Existen problemas que limitan las prestaciones alcanzables entre ellos tenemos:
    Operaciones cuyos tiempos de ejecución difieren mucho: un add de una mult
    Falta de recursos hardware
    Datos que no están disponibles cuando se requieren
    1

    Monografias.com
    RIESGOS EN UNA UNIDAD SEGMENTADA
    Uno de los límites en la segmentación son los riesgos.
    Los riesgos impiden que la siguiente instrucción se ejecute en el ciclo de reloj que le corresponde. Pueden ser de tres tipos:

    Riesgos de datos: la instrucción depende de resultados de instrucciones previas que aún están en el cauce
    Riesgos estructurales: el HW no puede soportar esta combinación de instrucciones
    Riesgos de control: la segmentación de instrucciones de salto condicional y de otros tipos de instrucciones que cambian el PC

    La solución más común a estos problemas consiste en detener el cauce hasta que el riesgo desaparece, esto provoca la inserción de burbujas en el funcionamiento del cauce
    2

    Monografias.com
    RIESGOS DE DATOS
    Instr1 seguida de Instr2

    Riesgo Read After Write (RAW)
    Instr2 trata de leer un operando fuente antes de que la instr1 lo escriba
    Riesgo Write After Write (WAW)
    Instr2 trata de escribir un operando antes de que la instr1 lo escriba
    Si se escribe en más de una etapa, cuando se detiene la primera escritura y se permite la segunda
    Riesgo Write After Read (WAR)
    Instr2 trata de escribir un resultado antes de que la instr1 lo lea
    Instrucciones que escriben resultados al comienzo del cauce con otras que leen un operando fuente tarde dentro del cauce
    3

    Monografias.com
    RIESGOS DE DATOS: READ AFTER WRITE (RAW)
    4
    Instr J trata de leer un operando antes de que la Instr I lo escriba

    Este problema se produce por una “Dependencia” (en terminología del compilador). Este riesgo es el resultado de de una necesidad real de comunicación de un dato.

    “True” dependence
    (Gp:) I: add r1,r2,r3
    J: sub r4,r1,r3

    Monografias.com
    RIESGOS DE DATOS: WRITE AFTER READ (WAR)
    5
    La Instr J escribe el operando antes de que la Instr I lo lea
    Los diseñadores de compiladores denominan a este tipo de dependencia, “anti-dependencia” . Se produce como resultado de la reutilización del registro “r1”.
    En el caso de la arquitectura DLX con 5 etapas en el cauce no se puede producir ya que:
    Todas las instrucciones tienen 5 etapas,
    Las lecturas son siempre en la etapa 2 (ID),
    Las escrituras en la etapa 5 (WB)
    También llamada “Name dependence”
    (Gp:) I: sub r4,r1,r3
    J: add r1,r2,r3
    K: mul r6,r1,r7

    Monografias.com
    RIESGOS DE DATOS: WRITE AFTER WRITE (WAW)
    InstrJ escribe el operando antes de que la InstrI escribe en reg.
    Los diseñadores de compiladores denominan a este tipo de dependencia, “dependencia de salida” .Se produce también como resultado de la reutilización del nombre “r1”.
    En el caso de la arquitectura DLX con 5 etapas en el cauce no se puede producir ya que :
    Todas las instrucciones son de 5 etapas, y
    Las escrituras se realizan siempre en la etapa 5

    También llamada “Name dependence”
    6
    (Gp:) I: sub r1,r4,r3
    J: add r1,r2,r3
    K: mul r6,r1,r7

    Monografias.com
    EL HW/SW deben preservar el orden del programa: el orden en el que las instrucciones deben ejecutarse si se ejecutan secuencialmente una cada vez, viene determinado por su posición en el programa original
    Objetivo del HW/SW: explotar el paralelismo preservando el orden del programa, solo donde este afecte a la salida del programa.
    Las instrucciones implicadas en dependencias de nombre pueden ejecutarse simultáneamente si el nombre usado en la instrucción es modificado para que no exista conflicto
    Renombrado de registros resuelve la dependencias de nombre producidas por la reutilización de los registros
    Esto puede hacerse por compilador o por HW
    7
    ILP (PARALELISMO A NIVEL DE INSTRUCCIÓN) Y RIESGOS DE DATOS

    Monografias.com
    RIESGOS DE DATOS
    8
    Problemas con el comienzo de las siguientes instrucciones antes de que termine la primera
    Las dependencias que retroceden en el tiempo son de “datos”
    (Gp:) IF
    (Gp:) ID
    (Gp:) Ex
    (Gp:) M
    (Gp:) Wb

    (Gp:) IF
    (Gp:) ID
    (Gp:) Ex
    (Gp:) M
    (Gp:) Wb

    (Gp:) IF
    (Gp:) ID
    (Gp:) Ex
    (Gp:) M
    (Gp:) Wb

    Escritura: r2
    sub r2, r1, r3
    and r12, r2, r5
    or r13, r6, r2
    and r14, r2, r2
    sw r15, 100 (r2)
    (Gp:) IF
    (Gp:) ID
    (Gp:) Ex
    (Gp:) M
    (Gp:) Wb

    1 2 3 4 5 6 7 8
    Tiempo (ciclos de reloj)
    Orden
    progr.
    (Gp:) IF
    (Gp:) ID
    (Gp:) Ex
    (Gp:) M
    (Gp:) Wb

    ¿Cuales son lecturas incorrectas del reg r2?

    Monografias.com
    SOLUCIONES A LOS RIESGOS DE DATOS
    Los riesgos de datos pueden tratarse de diversas formas:
    Software: si el HW del proc. segmentado no es capaz de detectar y resolver los riesgos, esto tiene que resolverse en el compilador.
    El compilador introduce instr de no-op después de cada instrucción que cause o pueda causar riesgos. Evita el malfuncionamiento, pero no reduce los retardos.
    El compilador puede reordenar el código del programa (planificación de instr) para mejorar el funcionamiento (se uso este enfoque en los primeros RISC).
    Hardware: Se pueden distinguir tres soluciones:
    Interbloqueo. Es la forma más simple, y consiste en detectar el riesgo y detener el cauce hasta que este desaparezca. Esta solución provoca burbujas en el cauce.
    Forwarding (anticipación). Es más sofisticada, requiere hardware adicional. Consiste en no esperar a leer los datos hasta el momento en que se escriban en estos, sino leerlo en cuanto que esta disponible.
    Como el forwarding no es capaz de resolver todos los riesgos de datos, hay que combinarlo con el interbloqueo.
    9

    Monografias.com
    RIESGOS RAW: SOLUCIÓN SW
    10
    Introducir instrucciones de NOP (el compilador)
    Problema: esto ralentiza mucho el funcionamiento
    (Gp:) sub r2, r1, r3
    nop
    nop
    and r12, r2, r5
    or r13, r6, r2
    and r14, r2, r2
    sw r15, 100 (r2)
    (Gp:) IF
    (Gp:) ID
    (Gp:) Ex
    (Gp:) M
    (Gp:) Wb
    (Gp:) IF
    (Gp:) ID
    (Gp:) Ex
    (Gp:) M
    (Gp:) Wb
    (Gp:) IF
    (Gp:) ID
    (Gp:) –
    (Gp:) –
    (Gp:) –
    (Gp:) Escritura: r2
    (Gp:) IF
    (Gp:) ID
    (Gp:) –
    (Gp:) –
    (Gp:) –
    (Gp:) 1 2 3 4 5 6 7 8
    (Gp:) Tiempo (ciclos de reloj)
    (Gp:) Orden
    progr.
    (Gp:) IF
    (Gp:) ID
    (Gp:) Ex
    (Gp:) M
    (Gp:) Wb
    (Gp:) IF
    (Gp:) ID
    (Gp:) Ex
    (Gp:) M
    (Gp:) Wb
    (Gp:) IF
    (Gp:) ID
    (Gp:) Ex
    (Gp:) M
    (Gp:) Wb
    (Gp:) Lectura: r2

    Partes: 1, 2, 3

    Página siguiente 

    Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

    Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

    Categorias
    Newsletter