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

Riesgos de control y predicción de saltos




Enviado por Pablo Turmero



Partes: 1, 2, 3, 4


    Monografias.com
    Dos estrategias
    Estática: Suponer que los saltos hacia atrás se efectúan y los saltos hacia adelante no
    Dinámica: Predicción basada en perfiles: se guarda el comportamiento del salto, y se hace una predicción basada en ejecuciones previas
    Las instrucciones entre saltos mal predichos constituyen una buena métrica de los errores de predicción
    1. REVISIÓN: EVALUACIÓN DE LA PREDICCIÓN DE SALTO
    1

    Monografias.com
    Los riesgos limitan las prestaciones
    Estructural: requieren más recursos HW
    Datos: necesitan forwarding, planificación de código (compilador)
    Control: evaluación temprana & PC, saltos retardados, predicción
    El incremento de la longitud del cauce aumenta el impacto de los riesgos; la segmentación ayuda con el ancho de banda de instrucciones, pero no con la latencia
    Interrupciones, juegos de instrucciones, operaciones FP complican la segmentación
    Compiladores reducen el coste de los riesgos de datos y de control
    Load delay slots
    Branch delay slots
    Predicción de saltos
    Hoy: Cauces más largos => mejor predicción de saltos, mayor paralelismo de instrucción?
    REVISIÓN: SUMARIO DE CONCEPTOS PREVIOS
    2

    Monografias.com
    REVISIÓN DE CONCEPTOS
    La ejecución de instrucciones está segmentada
    Múltiples instrucciones son ejecutadas en paralelo
    Los riesgos en el cauce afectan a las prestaciones de la CPU
    Riesgos estructurales: la CPU no puede ejecutar la secuencia específica
    Riesgos de datos: las dependencias de datos entre instrucciones en el cauce.
    Riesgos de control: las instrucciones branch pueden cambiar el PC
    Soluciones para los riesgos de datos
    Crear secuencias no-dependientes
    Esperar hasta que instrucciones previas se completen (se crean burbujas)
    Anticipar los nuevos valores de registros a las próximas instrucciones
    Partir el banco de registros: escribir primero, leer después
    Optimizar el código (scheduling)
    3

    Monografias.com
    RIESGO PROVOCADO POR UN BRANCH
    4

    Monografias.com
    RIESGOS DE CONTROL
    Cuando una instrucción branch es buscada, no se sabe dónde continuará
    Dirección de salto (puede efectuarse o no) nos es desconocido
    Objetivo del salto (en caso de que se salte) la dirección efectiva de salto nos resulta desconocida
    Solución más simple
    Detener el cauce hasta que se ejecute la instrucción branch
    5

    Monografias.com
    SALTOS Y PRESTACIONES
    MPI: miss-per-instruction

    MPI expresa bien las prestaciones. Por ejemplo:
    MPI=1% => (1 de cada 100 instr , aprox 1 de cada 20 saltos)
    IPC=2 (IPC número promedio de instr ejecutadas por ciclo de reloj)
    Penalización por vaciado del cauce de 10 ciclos
    Obtenemos que:
    MPI=1% => 1 vaciado cada 100 instr
    Un vaciado cada 50 ciclos (dado que IPC=2)
    10 ciclos de penalización por vaciado cada 50 ciclos
    20% en las prestaciones
    (Gp:) número de predicciones incorrectas
    (Gp:) número total de instrucciones
    (Gp:) MPI =

    6

    Monografias.com
    TIPOS DE SALTOS
    Condicionales / incondicionales
    Condicional:
    Se necesita predecir dirección y objetivo del salto
    La dirección real sólo se conoce después de ejecutar la instrucción.
    Una predicción incorrecta origina un vaciado total del cauce
    Incondicional:
    Sólo se necesita predecir el objetivo del salto
    Directos / indirectos
    Directos:
    El objetivo del salto está especificado dentro de la instrucción (como un valor inmediato)
    La dirección objetivo real se conoce después de descodificar
    Una predicción incorrecta origina un vaciado parcial del cauce
    Indirectos:
    La dirección objetivo tiene que ser calculada
    La dirección objetivo real se conoce después de la etapa de ejecución
    Una predicción incorrecta origina un vaciado total del cauce
    7

    Monografias.com
    TIPOS DE SALTOS: ALGUNOS DATOS
    Condicionales directos: 70% de todos los saltos
    Son muy frecuentes
    La penalización por predicción incorrecta de la dirección es alta (vaciado completo)
    Es muy importante predecir correctamente la dirección del salto condicional
    Depende del flag de estado: overflow, signo, cero, paridad, acarreo, auxiliar
    Dirección: el objetivo se conoce en la etapa de descodificación
    Relativo al puntero de instrucción de la instrucción de salto

    Incondicionales directos
    Se efectúan siempre
    La dirección objetivo se conoce en la etapa de descodificación
    Es menos frecuente y la penalización por redirección errónea es baja (vaciado parcial)
    Tiene menor importancia una predicción incorrecta
    8

    Monografias.com
    TIPOS DE SALTOS: ALGUNOS DATOS
    Condicionales indirectos:
    Muchas máquinas no los tienen

    Incondicionales indirectos
    La dirección objetivo es el valor de un registro => se conoce en la de ejecución
    Los returns son saltos incondicionales indirectos
    Las calls pueden ser también incondicionales indirectos
    Son poco frecuentes y la penalización por predicción errónea es alta (vaciado completo)
    A veces es importante el predecirlos correctamente
    9

    Monografias.com
    MEJORA DE LA GESTIÓN DE LOS SALTOS
    Determinar si el branch es tomado o no lo antes posible
    Calcular la dirección del salto anticipadamente
    10

    Partes: 1, 2, 3, 4

    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