Introduccin
Paralelismo.
Introduccin y generalidades Paralelismo producido internamente dentro de la CPU Paralelismos a nivel de mquina
Introduccin al paralelismo
Introduccin y generalidades
Definicin y conceptos asociados al paralelismo.
Introduccin al paralelismo
Introduccin al paralelismo
Introduccin al paralelismo
Introduccin al paralelismo
Exclusiones:
Simultaneidad entre acciones de CPU y perifricos (Operaciones en segundo plano). Redundancia en procesos para conseguir fiabilidad.
Introduccin al paralelismo
Introduccin al paralelismo
Configuracin pipeline:
10
Introduccin al paralelismo
Configuracin pipeline:
Conexin en cascada, cada unidad recibe como entrada la salida de la anterior. Acciones uniformes en fases y tiempos. Solapa el tiempo de proceso de las acciones. Una accin finalizada en cada intervalo si la cadena est llena.
11
Introduccin al paralelismo
Configuracin paralela:
12
Introduccin al paralelismo
Configuracin paralela:
Las entradas y las salidas son comunes a todas las unidades. UFs sincronizadas. Las acciones se realizan completas en cada UF. Conflicto: acceso a recursos compartidos.
13
Introduccin al paralelismo
Configuracin pseudopipeline:
14
Introduccin al paralelismo
Configuracin pseudopipeline :
Conexin de UFs en paralelo. Desfase en la entrada de acciones de n ciclos ( al menos 1). Resultado indistinguible de PIPELINE. Reduce conflictos de PARALELA pero obtiene peor respuesta en el tiempo.
15
Introduccin al paralelismo
16
Introduccin al paralelismo
17
Introduccin al paralelismo
Grado de paralelismo:
Nmero de acciones simultneas que se realizan. Aplicable a la mquina o a parte de ella. El mximo lo establece el nmero de unidades funcionales existentes. Queda limitado por las caractersticas de la aplicacin en curso.
18
Introduccin al paralelismo
Eficiencia:
Relacin entre el Grado de paralelismo conseguido y la capacidad terica de paralelismo de la mquina. El aumento de UFs, aumenta los conflictos y disminuye la eficiencia. Se trabaja con valores medios.
19
Introduccin al paralelismo
Grano de paralelismo:
Tamao de cada una de las acciones en las que se divide el proceso para su realizacin simultnea. Clasificacin cualitativa: Muy grueso: programas. Grueso: subprogramas, tareas hijas, ... Fino: instruccin. Muy fino: fases de instruccin.
Introduccin al paralelismo
Tipos de paralelismo:
En funcin de quin especifique las acciones que se pueden realizar simultneamente. Explcito: El propio programa identifica las acciones (programacin concurrente). Implcito: No lo especifica el programa sino la mquina.
Por azar: Acciones independientes. Entorno multiusuario. Extrado por la mquina (compilador).
21
Introduccin al paralelismo
Fuentes de paralelismo:
Control. Diferentes acciones que se pueden realizar simultneamente.
22
Introduccin al paralelismo
Fuentes de paralelismo:
Datos. Misma accin sobre un conjunto estructurado de datos.
23
Introduccin al paralelismo
Fuentes de paralelismo:
Flujo. Mismos procesos sobre una gran conjunto de datos.
24
Introduccin al paralelismo
Clasificacin de Flynn:
Tambin conocida como taxonoma de Flynn Surge en los principios de los 70 Aunque no es definitiva para caracterizar todos los tipos de ordenadores se sigue utilizando como una primera aproximacin para definir un ordenador. Concibe al ordenador como un conjunto de unidades de cjto. de uds. de control y proceso. Esas uds. reciben flujos de instrucciones y de datos.
25
Introduccin al paralelismo
Clasificacin de Flynn:
Computadora SISD: (Single instruction (flow), single data(flow). Sistemas clsicos de monoprocesadores.
26
Introduccin al paralelismo
Clasificacin de Flynn:
Computadora SIMD: (Single instruction (flow), multiple data(flow). Sistemas vectoriales y matriciales.
27
Introduccin al paralelismo
Clasificacin de Flynn:
Computadora MISD: (Multiple instruction (flow), single data(flow). Enunciado de forma terica. Se discute si hay alguna mquina de este tipo. Quizs los ordenadores sistlicos
28
Introduccin al paralelismo
Clasificacin de Flynn:
Computadora MIMD: (Multiple instruction (flow), multiple data(flow). Pertenecen a esta categora los sistemas pluriprocesadores.
29
Introduccin al paralelismo
Clasificacin de Flynn:
30
31
Procesadores CISC:
Consecuencias. Compiladores simples. Unidades de control complejas, microprogramadas. Bajo rendimiento en cadenas pipeline.
32
Procesadores CISC:
Ejecucin de una instruccin:
33
Procesadores CISC:
Lectura de los operandos:
34
Procesadores CISC:
Almacenamiento del resultado:
35
Procesadores CISC:
Pipeline de dos etapas (instrucciones poco homogneas):
Conflicto de desajuste de tiempos. Conflicto de acceso a recursos. Conflicto de dependencia de saltos. No hay conflicto de dependencia de operandos.
36
Procesadores CISC:
Pipeline de seis etapas:
Mquinas de una sola direccin sin direccionamiento indirecto ni ejecucin mltiple. Pasos 3, 5, y 9 una sola vez. Pasos 4, 7 y 8 desaparecen.
37
Procesadores CISC:
Pipeline de seis etapas, conflictos: Desajustes de tiempos. Inevitables. No usar toda las UFs. Tipo de instrucciones o dir. Fallos de cach. Acceso a recursos: FE, LO y ER acceden a memoria Sol: Ms registros, cach doble pto., doble cach. Dependencia de operandos: Requiere identificacin para evitar errores, reduce el rendimiento.
Operandos registros: Bit de bloqueo. Operandos en memoria: Lista de direcciones bloqueadas.
Dependencia de saltos.
38
39
40
41
42
43
Consideraciones:
Direccin del salto. Entornos paginados y saltos de pgina.
44
45
46
47
Procesadores RISC.
Justificacin:
Instrucciones complejas poco utilizadas. Set amplio y complejo Mayor dificultad de optimizacin. Instrucciones y operandos largos posible mayor uso de memoria a pesar del menor nmero de instrucciones. Ciclos de fetch ms largos y cambios de pgina frec. Efectividad pipeline mermada por los desajustes de tiempos.
48
Procesadores RISC.
Principios generales:
Aumentar el nmero de registros internos del micro. Esto reduce los conflictos de acceso a memoria y el tiempo empleado. Optimizar diseo del pipeline para mejorar su rendimiento. Una instruccin por ciclo. Evitar conflictos y desajustes de tiempos. Conjunto de instrucciones limitado, sencillo y homogneo. nica manera de mejorar el pipeline.
49
Procesadores RISC.
Caractersticas:
Instrucciones de mismo tamao (32 bits) y mismo formato. Facilita diseo decodificador y control de ajuste de tiempos. Unidad de control cableada. Mejora de la eficiencia. Pocos modos de direccionamiento de memoria. No al direccionamiento indirecto. Mximo un operando en memoria. Instrucciones de proceso (ALU) slo con registros. Operandos en memoria siempre alineados.
50
Procesadores RISC.
Consecuencias:
Compiladores ms elaborados. Programas con mayor nmero de instrucciones ms cortas. Aumento del rendimiento. Poder despachar una instruccin ejecutada en cada ciclo de reloj.
51
Procesadores RISC.
Ficheros de registros. Se usan en algunas CPUs Adems registros globales y de coma flotante. Normalmente entre 8 y 16 niveles. Al desbordarlo se usa la Memoria Principal.
52
53
54
Procesadores RISC.
Salto retardado:
Intercambiar la instruccin de salto con la anterior a ella. Siempre se ejecutar la instruccin posterior al salto. Se evita el vaciado del pipeline. No aplicable si: Hay dos instrucciones de salto seguidas. Salto es destino de varios orgenes. La instruccin modifica la condicin de salto. En estos casos se aade una instruccin NOP al salto.
55
56
Procesadores RISC.
Salto retardado ejemplos:
En un sistema que usa la tcnica del salto y con la siguiente secuencia de instrucciones en el programa fuente: [I1] Instruccin que no es de salto [I2] Instruccin de comparacin A-B [I3] Salto condicional si A>B [I4] Instruccin que no es de salto Qu hara el compilador? El compilador inserta una instruccin NOP dado que la instruccin I2 fija la condicin de salto a seguir por I3, estas no pueden alterar su orden, por lo tanto, la secuencia que debera haber generado el compilador sera: [I1] [I2] [I3] NOP [I4]
57
Procesadores RISC.
Salto retardado ejemplos:
En un sistema que usa la tcnica del salto y con la siguiente secuencia de instrucciones en el programa fuente: [I1] Instruccin que no es de salto [I2] Salto incondicional a eti1 [I3] Salto condicional a eti2 [I4] Instruccin que no es de salto Qu hara el compilador? La tcnica del salto retardado se aplica tanto a los condicionales como a los incondicionales, por lo tanto, la secuencia que debera haber generado el compilador sera: [I2] [I1] [I3] NOP [I4].
58
Arq. supersegmentada:
Consiste en desdoblar en subfases las acciones que duren menos de un ciclo (medio ciclo). Grado de la arquitectura: instrucciones que se pueden finalizar en un ciclo.
59
60
61
62
63
64
65
66
67
69
70
71
BIU
Registros de segmento ALU Clculo de direcciones Cola de Prefetch
Paralelismo:
Mientras se ejecutan instrucciones en la EU (Execution Unit) se calculan direcciones de operandos y se producen ciclos de fetch adelantados en la BIU (Bus Interface Unit).
72
73
74
77
78
79
Registros 'alias': 40 registros de uso interno asignados por los decodificadores a las microoperaciones. Retire Unit: Permite ir retirando las operaciones del Instruction Pool e ir escribiendo los resultados en los destinos correspondientes.
80
Si no se ha ejecutado nunca se usa una prediccin esttica: que se saltar si el salto es incondicional o hacia atrs en otro caso se decide no saltar.
81