La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Segmentación No Lineal

Presentaciones similares


Presentación del tema: "Segmentación No Lineal"— Transcripción de la presentación:

1 Segmentación No Lineal
Unidad 2: Segmentación Segmentación No Lineal Docente: Ing. José Díaz Chow

2 Objetivos (1/2) Explicar el concepto de segmentación no lineal y su diferencia con la segmentación lineal. Utilizar diferentes formas de representar y describir las funciones y operación de los cauces no lineales. Exponer el campo de aplicación de los cauces no lineales y las diferentes implementaciones en uso hoy día.

3 Objetivos (2/2) Enumerar los tipos de dependencias y sus riesgos asociados que pueden darse en los cauces no lineales. Conocer técnicas para tratar los riesgos por dependencias estructurales, específicamente en la prevención de colisiones y maximizar el rendimiento del cauce.

4 Contenido 2.10 Segmentación no lineal Segmentación general o no-lineal
Representaciones Implementaciones Riesgos de la Segmentación NL Planificación de recursos

5 Segmentación no lineal
Segmentación no limitada por relación de precedencia lineal entre las subtareas Excención y multiplicidad de etapas Repetición de etapas (loops) Retorno a etapas anteriores (feedback) Multiples trayectorias (multifunción y dinámicos)

6 Contenido 2.10 Segmentación no lineal Segmentación general o no-lineal
Representaciones Implementaciones Riesgos de la Segmentación NL Planificación de recursos

7 Representación de Cauces NL
Diagramas de bloques y descripción: Grafo de precedencia y trayectorias:

8 Representación de Cauces NL
Tabla de Reserva del cauce: Sj \Ti 1 2 3 4 5 6 7 8 X

9 Contenido 2.10 Segmentación no lineal Segmentación general o no-lineal
Representaciones Implementaciones Riesgos de la Segmentación NL Planificación de recursos

10 Implementaciones Cauces lineales: Segmentados de instrucciones
Cauces aritméticos simples Cauces no-lineales: Cauces aritméticos en P.F Segmentados escalares/S.E.: Multiciclos

11 Procesadores Multiciclo
DLX Multiciclo

12 Mejoras de la Técnica Más de 1 instrucción por ciclo Superpipelining:
Tiempo de etapa es una fracción (p.e. ½) del período de reloj Superescalar: Procesador con varias unidades funcionales y/o cauces de ejecución.

13 Contenido 2.10 Segmentación no lineal Segmentación general o no-lineal
Representaciones Implementaciones Riesgos de la Segmentación NL Planificación de recursos

14 Riesgos de la Segmentación NL
Riesgos se incrementan por la no linealidad de implementación: Unidades en PF pueden hacer que instrucciones posteriores concluyan antes. Para aprovechar la multiplicidad de unidades funcionales, tenemos en ejecución múltiples operaciones en PF en paralelo. Dependencias estructurales: Colisiones en Unidades funcionales o en etapas de cauces aritméticos. Dependencias de datos: Problemas de Coherencia. Dependencias de control: Requerido garantizar la coherencia cuando hay operaciones en PF multiciclo.

15 Riesgos de la Segmentación NL
En CPUs NoLineales de Instrucciones: Dependencias estructurales: Colisiones en Unidades funcionales, cuando dos operaciones iguales: ADDF f23, f2, f7 ADDF f18, f5, f9 Dependencias de datos: Dependencias de Datos provocan riesgos de incoherencia de resultados: ADDF f5, f2, f7 MULF f18, f5, f9

16 Riesgos de la Segmentación NL
Detección de dependencias estructurales por el código de operación. ADDF f23, f2, f7 ADDF f18, f5, f9 MULF f17, f4, f11 Se detiene la emisión de nuevas instrucciones del mismo tipo. Pérdida de eficiencia Si no hay DD, se debería de adelantar MULF: Ejecución en desorden para mayor eficiencia

17 Riesgos de la Segmentación NL
Dependencias de Datos: Aplican las mismas dependencias R-D. ADDF f5, f2, f7 MULF f18, f5, f9 Posible implementación de forwarding Detección previa de Dependencia, marcaje de registro y no emisión de MULF hasta que resultado disponible o f5 consistente. Pueden aparecer dependencias D-R (WAR) y R-R (WAW) debido a que las operaciones duran tiempos diferentes y a la ejecución en desorden.

18 Riesgos de la Segmentación NL
Requerido garantizar secuencia correcta de los cálculos. Necesario mecanismo de control que trate las dependencias estructurales y de datos integralmente. Dos enfoques se han empleado: Uso del marcador (Scoreboard) Algoritmo de Tomasulo

19 Riesgos de la Segmentación NL
Scoreboad o Marcador: Estructura de datos y control centralizada. D/L se divide en dos etapas: Decodificar y detectar Dependencias estructurales Detectar Dependencias de Datos y Leer Operandos Cada instrucción pasa por el marcador que lleva un tablero de DD Emite la instrucción si no hay dependencias Controla la escritura ordenada de resultados

20 Riesgos de la Segmentación NL
Tomasulo: Estructura de datos y control distribuida (estaciones de reserva). Carga de instrucciones en una cola y se emiten si hay estaciones de reserva disponibles. Estaciones de reserva controlan cada unidad de ejecución. Llevan copia de las operaciones y los datos Estructura de datos de control de los registros y DD Implementa forwarding para mejorar la eficiencia

21 Riesgos de la Segmentación NL
Tomasulo:

22 Riesgos de la Segmentación NL
Tomasulo: Emisión en orden Control entre estaciones de reserva (Tabla de datos) Ejecución en orden pero finalización puede ser en desorden. Escrituras en orden.

23 Riesgos de la Segmentación NL
En Cauces Aritméticos: Dependencias Estructurales en etapas del cauce: Provocan riesgos de Colisión. Detección en Tabla de reserva Etapas utilizadas más de una vez por función. Implementación de un Mecanismo de bloqueo. Vector de Colisiones. Mejora de la eficiencia: Planificación de recursos

24 Contenido 2.10 Segmentación no lineal Segmentación general o no-lineal
Representaciones Implementaciones Riesgos de la Segmentación NL Planificación de recursos

25 Planificación de Recursos
Planificación de recursos en cauces aritméticos: Basada en mecanismo de bloqueo de colisiones. Permite detectar las secuencias de inicializaciones más provechosas. Minimiza las penalizaciones  mejor desempeño del Cauce.

26 Mecanismo de bloqueo Uso de vector de colisiones para bloquear las inicializaciones de nuevas tareas en latencias prohibidas (aquellas latencias o pulsos de reloj en las cuales, si se inicia, habrá una colisión). El vector de colisiones se implementa como un registro binario de desplazamiento: En cada pulso de reloj el registro desplaza una posición a la derecha. Se verifica si bit desplazado es 1 ó 0. Si es 1 se bloquea la inicialización y si es 0 se permite. Cuando se permite la inicialización, se hace un OR del registro con el valor del vector de colisiones original a fin de reservar las prohibiciones que la nueva inicialización va a generar.

27 Algoritmo de Planificación.
(P1) Análisis de colisiones en tabla de reservas: Sj \Ti 1 2 3 4 5 6 7 8 X Lista de latencias prohibidas F (y libres F’). F = { 1, 5, 6, 8 } F’ = { 2, 3, 4, 7 }

28 Algoritmo de Planificación.
(P2) Vector de colisiones (Elemento de bloqueo) C = (Cn C1) | Ci = 1  i  F  Ci = 0  i  F’ C = ( ) (P3) Diagrama de estados (Base de la estrategia) - Primer estado es C. - Se simula cada nuevo estado del registro de bloqueo luego de cada posible inicialización (latencias libres): A cada estado existente se desplaza i ciclos a la derecha i  F’ y se aplica OR con C. Si el resultado es diferente de algún estado existente, es un nuevo estado.

29 Algoritmo de Planificación.

30 Algoritmo de Planificación.
En base los estados generados a partir de las transiciones en las diferentes latencias libres posibles, creamos un diagrama de estados que caracteriza el funcionamiento del cauce en todos sus estados posibles.

31 Algoritmo de Planificación.
Diagrama de Estados del cauce

32 Algoritmo de Planificación.
(P4) Determinar ciclos simples (lm, mlm, ca) Ciclo simple Latencia media (lm) ¿Es Avaricioso? ( 7 ) 7 ( 3, 7 ) 5 ( 3, 4 ) 3.5 SI, y tiene la mlm ( 4, 3, 7 ) 4.6 ( 4, 7 ) 5.5 ( 2, 7 ) 4.5 ( 2, 2, 7 ) 3.6 SI ( 3, 4, 7 ) (P5) Estrategia: Secuencia que favorecen los ciclos avariciosos


Descargar ppt "Segmentación No Lineal"

Presentaciones similares


Anuncios Google