Anda di halaman 1dari 81

Arquitectura

Introduccin Paralelismo de grano muy fino Paralelismo en la familia 80x86

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

Paralelismo producido internamente dentro de la CPU


Estructura pipeline. Arquitectura RISC. Arquitecturas superescalar y supersegmentada. Aplicacin a las familias de Intel 80x86 y Pentium.

Introduccin al paralelismo

Paralelismos a nivel de mquina


Mquinas para el aprovechamiento del paralelismo de datos. Multiprocesadores. Arquitecturas especficas diseadas para mbitos de aplicacin concretos.

Introduccin al paralelismo Necesidades de mayor capacidad de computacin:


Tratamiento de complejos modelos matemticos (meteorologa, ecologa, bioqumica, ) Manejo masivo de datos en tiempo real, fundamentalmente aplicables al campo de las comunicaciones. Explotacin de grandes bases de datos; extraccin de patrones y tendencias de los datos. Aplicaciones multimedia: imgenes de alta definicin, msica de alta fidelidad, reconocimiento del lenguaje hablado... Inteligencia artificial y sistemas expertos.

Introduccin al paralelismo

Mejora de la capacidad de computacin:


Aumento de la velocidad (frecuencia de funcionamiento de los circuitos electrnicos). Limitaciones tecnolgicas y fsicas. Uso del Paralelismo. Paralelismo: Capacidad de una mquina para simultanear acciones. Vinculado al aumento del rendimiento de la mquina (velocidad, capacidad de proceso).

Introduccin al paralelismo

Exclusiones:
Simultaneidad entre acciones de CPU y perifricos (Operaciones en segundo plano). Redundancia en procesos para conseguir fiabilidad.

Introduccin al paralelismo

Estructuras que producen el paralelismo:


Unidades funcionales: Cada parte de una mquina capaz de realizar acciones indpendientemente del resto. Configuracin de las UFs. Pipeline (segmentada). Paralela. Pseudopipeline.
9

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

Conflictos del paralelismo, tipos :


Desajustes de tiempo: Diferentes tiempos entre diferentes UFs. Imponen parones en el pipeline. Accesos a recursos compartidos: Afectan fundamentalmente a configuraciones paralelas. Dependencias: Afectan a la simultaneidad de acciones.
De operandos De saltos (condicionales e incondicionales)

16

Introduccin al paralelismo

Conflictos del paralelismo:


Parn en un pipeline

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.

Clasificacin cualitativa: Medido en n de instrucciones


20

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

Paralelismo de grano muy fino

RISC vs. CISC:


Aos 80. Implantacin de modelos de control del rendimiento. Nueva tecnologa RISC: Simplificar la unidad de control para mejorar su eficiencia. Tecnologa CISC: La existente hasta el momento. Instrucciones muy complejas, a veces especficas y muy numerosas. Salto semntico. Reduccin de los ciclos de fetch. Tamao del programa.

31

Paralelismo de grano muy fino

Procesadores CISC:
Consecuencias. Compiladores simples. Unidades de control complejas, microprogramadas. Bajo rendimiento en cadenas pipeline.

32

Paralelismo de grano muy fino

Procesadores CISC:
Ejecucin de una instruccin:

33

Paralelismo de grano muy fino

Procesadores CISC:
Lectura de los operandos:

34

Paralelismo de grano muy fino

Procesadores CISC:
Almacenamiento del resultado:

35

Paralelismo de grano muy fino

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

Paralelismo de grano muy fino

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

Paralelismo de grano muy fino

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

Paralelismo de grano muy fino

Proc. CISC. Dependencia de operandos:


Ejemplo: A+BA C + (A + 8) C

39

Paralelismo de grano muy fino

Proc. CISC. Dependencia de saltos:


Saltos incondicionales: Identificacin temprana, ms simple. Durante FE o LO. Saltos condicionales: Incertidumbre. Prdida de rendimiento.
Salto retardado (Se ver en procesadores RISC). Flujos mltiples. Precaptar destino del salto. Buffer de bucles. Prediccin de salto.

40

Paralelismo de grano muy fino

Proc. CISC. Dependencia de saltos:


Flujos mltiples.
Duplicar primeras etapas del pipeline. Se opta por los dos caminos y cuando se ejecuta la instruccin se descarta el camino fallido. A veces ms de dos caminos para trabajar con instrucciones de salto condicional encadenadas. Aumento significativo de los conflictos de acceso a los recursos (memoria). Eliminacin de la mayora de los huecos debidos a saltos.

41

Paralelismo de grano muy fino

Proc. CISC. Dependencia de saltos:


Precaptar destino del salto.
Leer la siguiente instruccin y la del destino del salto. Se limita a la fase de fetch de ambas instrucciones. Reduce el hueco en el pipeline.

42

Paralelismo de grano muy fino

Proc. CISC. Dependencia de saltos:


Buffer de bucles.
Similar a una cola de Prefetch pero de mayor tamao. Se pone en marcha al detectar un salto condicional hacia atrs (tpico de los bucles). Se pretende mantener en la cola todas las instrucciones del bucle. Si sobra espacio se almacenan tambin las instrucciones que siguen al bucle. Importante ahorro de ciclos de fetch en bucles pequeos.

43

Paralelismo de grano muy fino

Proc. CISC. Prediccin de saltos:


Optar por una alternativa: Saltar / No saltar. Si acierta sigue, si no deshacer proceso realizado (FE, DE, CD y LO). Criterios estticos, no depende de la historia anterior.
No cumple condicin. Alternativa ms simple. Cumple condicin. Mantener antiguo PC. Decisin segn el cdigo de operacin. Instr. bucle. Evaluacin previa de la condicin. Ayuda del compilador.

Consideraciones:
Direccin del salto. Entornos paginados y saltos de pgina.
44

Paralelismo de grano muy fino

Proc. CISC. Prediccin de saltos:


Saltos dinmicos, depende de la historia anterior.
Conmutador saltar/ no saltar. Asignacin de un estado a cada instruccin de salto. Al ejecutarla se observa el resultado, que podr cambiar de nuevo el estado. Tabla de historias de saltos (BHT). Similar al anterior, almacena adems del estado la direccin de destino del salto. Mayor tamao de la tabla y no aplicable a todos los direccionamientos.

45

Paralelismo de grano muy fino

Proc. CISC. Prediccin de saltos:


Saltos dinmicos, diferentes ejemplos:

46

Paralelismo de grano muy fino

Proc. CISC. Prediccin de saltos:


Saltos dinmicos, diferentes ejemplos:

47

Paralelismo de grano muy fino

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.

Solucin: Conjunto de instrucciones simples, uniformes, generales y poco numerosas.

48

Paralelismo de grano muy fino

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

Paralelismo de grano muy fino

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

Paralelismo de grano muy fino

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

Paralelismo de grano muy fino

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

Paralelismo de grano muy fino

Procesadores RISC. Pipeline.


Instrucciones que acceden a memoria:
Lectura y decodificacin de la instruccin. Calculo de la direccin del operando. Lectura o escritura del operando.

Instrucciones que NO acceden a memoria:


Lectura y decodificacin de la instruccin. Ejecucin.

53

Paralelismo de grano muy fino

Procesadores RISC. Pipeline.


Conflictos:
Desajustes de tiempos: Minimizados. Accesos a memoria: Slo en F/D y L/EO. Dependencias de operandos: Slo entre registros. Dependencias de saltos: Como en CISC y adems salto retardado.

54

Paralelismo de grano muy fino

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

Paralelismo de grano muy fino

Procesadores RISC. Salto retardado:

56

Paralelismo de grano muy fino

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

Paralelismo de grano muy fino

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

Paralelismo de grano muy fino

Arq. superescalar y supersegmentada.


Arq. superescalar:
Ms de un pipeline trabajando en paralelo. Algn pipeline puede ser de tipo especfico. El grado de la arquitectura es igual al de pipelines. Si no hay conflictos se despachan tantas instrucciones como pipelines hayan disponibles.

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

Paralelismo de grano muy fino

Arq. superescalar y supersegmentada.


Arquitectura superescalar

60

Paralelismo de grano muy fino

Arq. superescalar y supersegmentada.


Arq. supersegmentada

61

Paralelismo de grano muy fino

Arq. superescalar y supersegmentada.


EJECUCIN DESORDENADA DE INSTRUCCIONES:
Reduce la prdida de rendimiento por dependencias de operandos. Aprovechar los tiempos muertos de las etapas de la CPU con instrucciones posteriores mientras no se altere el resultado Existen distintas alternativas segn la fase en la que se admita el desorden (emisin, ser necesario un buffer, o ejecucin)

62

Paralelismo de grano muy fino

Arq. superescalar y supersegmentada.


EJECUCIN DESORDENADA DE INSTRUCCIONES :

63

Paralelismo de grano muy fino

Arq. superescalar y supersegmentada.


EJECUCIN DESORDENADA DE INSTRUCCIONES:
FD1 y FD2 son etapas de prefetch y decodificacin. EJ1 y EJ2 son unidades de ejecucin de enteros y EJ3 de coma flotante. ER1 y ER2 representan escritura de resultado. Secuencia de instrucciones: I1 .. I9. Instrucciones de 3 ciclos de duracin, 1 por etapa, salvo I1 que requiere dos ciclos en la fase de ejecucin. I3 e I4 operan con datos en coma flotante. I5 e I6 presentan dependencia de operandos.

64

Paralelismo de grano muy fino

Arq. superescalar y supersegmentada.


PSEUDODEPENDENCIAS DE OPERANDOS:
Ejecucin ordenada.

65

Paralelismo de grano muy fino

Arq. superescalar y supersegmentada.


PSEUDODEPENDENCIAS DE OPERANDOS:
Ejecucin desordenada en escritura de resultados.

66

Paralelismo de grano muy fino

Arq. superescalar y supersegmentada.


PSEUDODEPENDENCIAS DE OPERANDOS:
Ejecucin desordenada en emisin de instrucciones y ER.

67

Paralelismo en la familia 80x86

Arq. superescalar y supersegmentada.


PSEUDODEPENDENCIAS DE OPERANDOS:
Dependencia real (escritura/lectura): operando de Ik es resultado de Ii. Se pueden producir siempre que haya ejecucin paralela. R1 + R2 R3 (Ii) R3 + R4 R5 (Ik) Pseudodependencia de salida (escritura/escritura): Ik e Ii escriben sobre el mismo operando. Antidependencia (lectura/escritura): Ii lee un operando que debe escribir Ik. Las pseudodependencias se resuelven con la tcnica de renombrado de registros
68

Paralelismo de grano muy fino

Arq. superescalar y supersegmentada.


PSEUDODEPENDENCIAS DE OPERANDOS:
Dependencia real (escritura/lectura): operando de Ik es resultado de Ii. Se pueden producir siempre que haya ejecucin paralela. Ii R1 + R2 R3 Ik R3 + R4 R5

69

Paralelismo de grano muy fino

Arq. superescalar y supersegmentada.


PSEUDODEPENDENCIAS DE OPERANDOS:
Pseudodependencia de salida (escritura/escritura): Ik e Ii escriben sobre el mismo operando. Ii R1 + R2 R3 ........................ Ik R4 + R5 R3

Se resuelve con la tcnica de renombrado de registros

70

Paralelismo de grano muy fino

Arq. superescalar y supersegmentada.


PSEUDODEPENDENCIAS DE OPERANDOS:
Antidependencia (lectura/escritura): Ii lee un operando que debe escribir Ik. Ii R1 + R2 R3 ........................ Ik R4 + R5 R1
Slo se produce si en la ejecucin desordenada se ejecuta Ik antes que Ii

Se resuelve con la tcnica de renombrado de registros

71

Paralelismo en la familia 80x86

Intel 8086 .. 80286


EU
Unidad de Control ALU Registros Propsito general e ndices

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

Paralelismo en la familia 80x86 Intel 80386


Pipeline: 4/6 etapas segn criterio. Hasta 4 instrucciones en ejecucin. MMU Memory Management Unit. Gestiona las tareas de segmentacin y paginacin.

73

Paralelismo en la familia 80x86


Intel 80486
- Prefetch: 5/9 etapas segn criterio. - Hasta 6 instrucciones en ejecucin. - Decodificador con lgica cableada para instr. simples y microprogramado para las complejas.

74

Paralelismo en la familia 80x86


Coprocesadores matemticos
Circuitos inicialmente externos, cooperan con la CPU. Leen las instrucciones a la vez que la CPU. Si una instruccin es de coprocesador la ejecutan. Si la instruccion tiene operandos en la memoria, la CPU calcula y vuelca su direccin. Trabaja en paralelo con la CPU. Si la CPU debe esperar al coprocesador, se inserta la instruccin FWAIT.
75

Paralelismo en la familia 80x86


Procesadores CRISC.
Disponen de caractersticas de CISC y de RISC. intel 80486 dispone de un ncleo cableado y otro microprogramado. El cableado ejecuta las que se definen como core instructions. Puede despachar una de estas instrucciones ejecutada a cada ciclo de reloj. Resto de instrucciones en el ncleo microprogramado requieren mltiples ciclos de reloj.
76

Paralelismo en la familia 80x86


Intel Pentium
- Arquitectura superescalar de grado 2 (Pipes U y V). - Ejecucin ordenada. - Doble cach. - Unidad prediccin saltos. - Prefetch 128 bytes. - Pipeline 5 etapas. - MMU no representada.

77

Paralelismo en la familia 80x86


Intel Pentium Pro
Arquitectura superesc. de grado 3. Ejecucin desordenada. Doble cach L1 y L2. Unidad prediccin saltos. Prefetch 128 bytes. Pipeline 5 etapas. MMU no representada.

78

Paralelismo en la familia 80x86


Intel Pentium Pro
Dispone de 3 decodificadores de instrucciones que trabajan de forma ordenada. Convierten las instrucciones en secuencias de microoperaciones. Instrucciones 'simples' conversin rpida. Instrucciones 'complejas' conversin por medio de un microprograma. Las microoperaciones se almacenan en el Instruction Pool. 5 Unidades de ejecucin. 2 de enteros 2 de como flotante 1 de lectura de memoria. Retiran las operaciones de forma desordenada.

79

Paralelismo en la familia 80x86


Intel Pentium Pro
Ejemplo:
mem + reg mem mem regtemp (1 op.) regtemp + reg regtemp2 (1op) regtemp2 mem (2 op.)

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

Paralelismo en la familia 80x86


Intel Pentium Pro
BTB: Branch Target Buffer. Almacena la direccin de las instrucciones de salto, la historia relacionada con ella (estado) y la direccin de destino.

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

Anda mungkin juga menyukai