1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

81
1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86

Transcript of 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

Page 1: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

1

Arquitectura

• Introducción• Paralelismo de grano muy fino• Paralelismo en la familia 80x86

Page 2: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

2

Paralelismo.

• Introducción y generalidades

• Paralelismo producido internamente dentro de la CPU

• Paralelismos a nivel de máquina

Paralelismo.

• Introducción y generalidades

• Paralelismo producido internamente dentro de la CPU

• Paralelismos a nivel de máquina

Introducción

Page 3: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

3

Introducción y generalidades

Definición y conceptos asociados al paralelismo.

Introducción y generalidades

Definición y conceptos asociados al paralelismo.

Introducción al paralelismo

Page 4: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

4

Paralelismo producido internamente dentro de la CPU

• Estructura pipeline.• Arquitectura RISC.• Arquitecturas superescalar y supersegmentada.• Aplicación a las familias de Intel 80x86 y Pentium.

Paralelismo producido internamente dentro de la CPU

• Estructura pipeline.• Arquitectura RISC.• Arquitecturas superescalar y supersegmentada.• Aplicación a las familias de Intel 80x86 y Pentium.

Introducción al paralelismo

Page 5: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

5

Paralelismos a nivel de máquina

• Máquinas para el aprovechamiento del paralelismo de datos.

• Multiprocesadores.• Arquitecturas específicas diseñadas para ámbitos

de aplicación concretos.

Paralelismos a nivel de máquina

• Máquinas para el aprovechamiento del paralelismo de datos.

• Multiprocesadores.• Arquitecturas específicas diseñadas para ámbitos

de aplicación concretos.

Introducción al paralelismo

Page 6: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

6

Necesidades de mayor capacidad de computación:

• Tratamiento de complejos modelos matemáticos (meteorología, ecología, bioquímica, …)

• Manejo masivo de datos en tiempo real, fundamentalmente aplicables al campo de las comunicaciones.

• Explotación de grandes bases de datos; extracción de patrones y tendencias de los datos.

• Aplicaciones multimedia: imágenes de alta definición, música de alta fidelidad, reconocimiento del lenguaje hablado...

• Inteligencia artificial y sistemas expertos.

Necesidades de mayor capacidad de computación:

• Tratamiento de complejos modelos matemáticos (meteorología, ecología, bioquímica, …)

• Manejo masivo de datos en tiempo real, fundamentalmente aplicables al campo de las comunicaciones.

• Explotación de grandes bases de datos; extracción de patrones y tendencias de los datos.

• Aplicaciones multimedia: imágenes de alta definición, música de alta fidelidad, reconocimiento del lenguaje hablado...

• Inteligencia artificial y sistemas expertos.

Introducción al paralelismo

Page 7: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

7

Mejora de la capacidad de computación:

• Aumento de la velocidad (frecuencia de funcionamiento de los circuitos electrónicos). Limitaciones tecnológicas y físicas.

• Uso del Paralelismo.

Paralelismo: Capacidad de una máquina para simultanear acciones. Vinculado al aumento del rendimiento de la máquina (velocidad, capacidad de proceso).

Mejora de la capacidad de computación:

• Aumento de la velocidad (frecuencia de funcionamiento de los circuitos electrónicos). Limitaciones tecnológicas y físicas.

• Uso del Paralelismo.

Paralelismo: Capacidad de una máquina para simultanear acciones. Vinculado al aumento del rendimiento de la máquina (velocidad, capacidad de proceso).

Introducción al paralelismo

Page 8: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

8

Exclusiones:

• Simultaneidad entre acciones de CPU y periféricos (Operaciones en segundo plano).

• Redundancia en procesos para conseguir fiabilidad.

Exclusiones:

• Simultaneidad entre acciones de CPU y periféricos (Operaciones en segundo plano).

• Redundancia en procesos para conseguir fiabilidad.

Introducción al paralelismo

Page 9: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

9

Estructuras que producen el paralelismo:

Unidades funcionales: Cada parte de una máquina capaz de realizar acciones indpendientemente del resto.

Configuración de las UFs.• Pipeline (segmentada).• Paralela.• Pseudopipeline.

Estructuras que producen el paralelismo:

Unidades funcionales: Cada parte de una máquina capaz de realizar acciones indpendientemente del resto.

Configuración de las UFs.• Pipeline (segmentada).• Paralela.• Pseudopipeline.

Introducción al paralelismo

Page 10: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

10

Introducción al paralelismo

Configuración pipeline:Configuración pipeline:

Page 11: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

11

Configuración pipeline:

• Conexión 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 acción finalizada en cada intervalo si la cadena

está llena.

Configuración pipeline:

• Conexión 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 acción finalizada en cada intervalo si la cadena

está llena.

Introducción al paralelismo

Page 12: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

12

Introducción al paralelismo

Configuración paralela:Configuración paralela:

Page 13: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

13

Configuración 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.

Configuración 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.

Introducción al paralelismo

Page 14: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

14

Introducción al paralelismo

Configuración pseudopipeline:Configuración pseudopipeline:

Page 15: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

15

Configuración pseudopipeline :

• Conexión 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.

Configuración pseudopipeline :

• Conexión 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.

Introducción al paralelismo

Page 16: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

16

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)

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)

Introducción al paralelismo

Page 17: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

17

Conflictos del paralelismo:

Parón en un pipeline

Conflictos del paralelismo:

Parón en un pipeline

Introducción al paralelismo

Page 18: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

18

Grado de paralelismo:

• Número de acciones simultáneas que se realizan.• Aplicable a la máquina o a parte de ella.• El máximo lo establece el número de unidades

funcionales existentes.• Queda limitado por las características de la

aplicación en curso.

Grado de paralelismo:

• Número de acciones simultáneas que se realizan.• Aplicable a la máquina o a parte de ella.• El máximo lo establece el número de unidades

funcionales existentes.• Queda limitado por las características de la

aplicación en curso.

Introducción al paralelismo

Page 19: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

19

Eficiencia:

• Relación entre el Grado de paralelismo conseguido y la capacidad teórica de paralelismo de la máquina.

• El aumento de UFs, aumenta los conflictos y disminuye la eficiencia.

• Se trabaja con valores medios.

Eficiencia:

• Relación entre el Grado de paralelismo conseguido y la capacidad teórica de paralelismo de la máquina.

• El aumento de UFs, aumenta los conflictos y disminuye la eficiencia.

• Se trabaja con valores medios.

Introducción al paralelismo

Page 20: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

20

Grano de paralelismo:Tamaño de cada una de las acciones en las que se

divide el proceso para su realización simultánea.

Clasificación cualitativa:• Muy grueso: programas.• Grueso: subprogramas, tareas hijas, ...• Fino: instrucción.• Muy fino: fases de instrucción.

Clasificación cualitativa: Medido en nº de instrucciones

Grano de paralelismo:Tamaño de cada una de las acciones en las que se

divide el proceso para su realización simultánea.

Clasificación cualitativa:• Muy grueso: programas.• Grueso: subprogramas, tareas hijas, ...• Fino: instrucción.• Muy fino: fases de instrucción.

Clasificación cualitativa: Medido en nº de instrucciones

Introducción al paralelismo

Page 21: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

21

Tipos de paralelismo:En función de quién especifique las acciones que se

pueden realizar simultáneamente.• Explícito: El propio programa identifica las acciones

(programación concurrente).• Implícito: No lo especifica el programa sino la

máquina.– Por azar: Acciones independientes.

Entorno multiusuario.– Extraído por la máquina (compilador).

Tipos de paralelismo:En función de quién especifique las acciones que se

pueden realizar simultáneamente.• Explícito: El propio programa identifica las acciones

(programación concurrente).• Implícito: No lo especifica el programa sino la

máquina.– Por azar: Acciones independientes.

Entorno multiusuario.– Extraído por la máquina (compilador).

Introducción al paralelismo

Page 22: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

22

Fuentes de paralelismo:Control. Diferentes acciones que se pueden realizar

simultáneamente.

Fuentes de paralelismo:Control. Diferentes acciones que se pueden realizar

simultáneamente.

Introducción al paralelismo

Page 23: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

23

Fuentes de paralelismo:Datos. Misma acción sobre un conjunto estructurado

de datos.

Fuentes de paralelismo:Datos. Misma acción sobre un conjunto estructurado

de datos.

Introducción al paralelismo

Page 24: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

24

Fuentes de paralelismo:Flujo. Mismos procesos sobre una gran conjunto de

datos.

Fuentes de paralelismo:Flujo. Mismos procesos sobre una gran conjunto de

datos.

Introducción al paralelismo

Page 25: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

25

Clasificación de Flynn:• También conocida como taxonomía 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 aproximación 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.

Clasificación de Flynn:• También conocida como taxonomía 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 aproximación 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.

Introducción al paralelismo

Page 26: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

26

Clasificación de Flynn:

Computadora SISD: (Single instruction (flow), single data(flow). Sistemas clásicos de monoprocesadores.

Clasificación de Flynn:

Computadora SISD: (Single instruction (flow), single data(flow). Sistemas clásicos de monoprocesadores.

Introducción al paralelismo

Page 27: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

27

Clasificación de Flynn:

Computadora SIMD: (Single instruction (flow), multiple data(flow). Sistemas vectoriales y matriciales.

Clasificación de Flynn:

Computadora SIMD: (Single instruction (flow), multiple data(flow). Sistemas vectoriales y matriciales.

Introducción al paralelismo

Page 28: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

28

Clasificación de Flynn:Computadora MISD: (Multiple instruction (flow), single data(flow). Enunciado de forma teórica.

Se discute si hay alguna

máquina de este tipo.

Quizás los ordenadores

sistólicos

Clasificación de Flynn:Computadora MISD: (Multiple instruction (flow), single data(flow). Enunciado de forma teórica.

Se discute si hay alguna

máquina de este tipo.

Quizás los ordenadores

sistólicos

Introducción al paralelismo

Page 29: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

29

Clasificación de Flynn:Computadora MIMD: (Multiple instruction (flow), multiple data(flow). Pertenecen a esta categoría los sistemas pluriprocesadores.

Clasificación de Flynn:Computadora MIMD: (Multiple instruction (flow), multiple data(flow). Pertenecen a esta categoría los sistemas pluriprocesadores.

Introducción al paralelismo

Page 30: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

30

Clasificación de Flynn:Clasificación de Flynn:

Introducción al paralelismo

Page 31: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

31

RISC vs. CISC:Años 80. Implantación de modelos de control del rendimiento. Nueva tecnología RISC: Simplificar la unidad de control para mejorar su eficiencia.

Tecnología CISC: La existente hasta el momento. Instrucciones muy complejas, a veces específicas y muy numerosas.• Salto semántico.• Reducción de los ciclos de fetch.• Tamaño del programa.

RISC vs. CISC:Años 80. Implantación de modelos de control del rendimiento. Nueva tecnología RISC: Simplificar la unidad de control para mejorar su eficiencia.

Tecnología CISC: La existente hasta el momento. Instrucciones muy complejas, a veces específicas y muy numerosas.• Salto semántico.• Reducción de los ciclos de fetch.• Tamaño del programa.

Paralelismo de grano muy fino

Page 32: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

32

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

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

Paralelismo de grano muy fino

Page 33: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

33

Procesadores CISC:

Ejecución deuna instrucción:

Procesadores CISC:

Ejecución deuna instrucción:

Paralelismo de grano muy fino

Page 34: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

34

Procesadores CISC:

Lectura delos operandos:

Procesadores CISC:

Lectura delos operandos:

Paralelismo de grano muy fino

Page 35: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

35

Procesadores CISC:

Almacenamientodel resultado:

Procesadores CISC:

Almacenamientodel resultado:

Paralelismo de grano muy fino

Page 36: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

36

Procesadores CISC:Pipeline de dos etapas (instrucciones poco homogéneas):

• Conflicto de desajuste de tiempos.• Conflicto de acceso a recursos.• Conflicto de dependencia de saltos.• No hay conflicto de dependencia de operandos.

Procesadores CISC:Pipeline de dos etapas (instrucciones poco homogéneas):

• Conflicto de desajuste de tiempos.• Conflicto de acceso a recursos.• Conflicto de dependencia de saltos.• No hay conflicto de dependencia de operandos.

Paralelismo de grano muy fino

Page 37: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

37

Procesadores CISC:Pipeline de seis etapas:

Máquinas de una sola dirección sin direccionamiento indirecto ni ejecución múltiple.• Pasos 3, 5, y 9 una sola vez.• Pasos 4, 7 y 8 desaparecen.

Procesadores CISC:Pipeline de seis etapas:

Máquinas de una sola dirección sin direccionamiento indirecto ni ejecución múltiple.• Pasos 3, 5, y 9 una sola vez.• Pasos 4, 7 y 8 desaparecen.

Paralelismo de grano muy fino

Page 38: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

38

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: Más registros, caché doble pto., doble caché.• Dependencia de operandos: Requiere identificación para evitar errores, reduce el rendimiento.

– Operandos registros: Bit de bloqueo.– Operandos en memoria: Lista de direcciones bloqueadas.

• Dependencia de saltos.

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: Más registros, caché doble pto., doble caché.• Dependencia de operandos: Requiere identificación para evitar errores, reduce el rendimiento.

– Operandos registros: Bit de bloqueo.– Operandos en memoria: Lista de direcciones bloqueadas.

• Dependencia de saltos.

Paralelismo de grano muy fino

Page 39: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

39

Proc. CISC. Dependencia de operandos:Ejemplo:

A + B A

C + (A + 8) C

Proc. CISC. Dependencia de operandos:Ejemplo:

A + B A

C + (A + 8) C

Paralelismo de grano muy fino

Page 40: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

40

Proc. CISC. Dependencia de saltos:• Saltos incondicionales: Identificación temprana, más simple. Durante FE o LO.• Saltos condicionales: Incertidumbre. Pérdida de rendimiento.

– Salto retardado (Se verá en procesadores RISC).– Flujos múltiples.– Precaptar destino del salto.– Buffer de bucles.– Predicción de salto.

Proc. CISC. Dependencia de saltos:• Saltos incondicionales: Identificación temprana, más simple. Durante FE o LO.• Saltos condicionales: Incertidumbre. Pérdida de rendimiento.

– Salto retardado (Se verá en procesadores RISC).– Flujos múltiples.– Precaptar destino del salto.– Buffer de bucles.– Predicción de salto.

Paralelismo de grano muy fino

Page 41: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

41

Proc. CISC. Dependencia de saltos:• Flujos múltiples.

– Duplicar primeras etapas del pipeline.– Se opta por los dos caminos y cuando se ejecuta la

instrucción se descarta el camino fallido.– A veces más de dos caminos para trabajar con

instrucciones de salto condicional encadenadas.– Aumento significativo de los conflictos de acceso a los

recursos (memoria).– Eliminación de la mayoría de los huecos debidos a saltos.

Proc. CISC. Dependencia de saltos:• Flujos múltiples.

– Duplicar primeras etapas del pipeline.– Se opta por los dos caminos y cuando se ejecuta la

instrucción se descarta el camino fallido.– A veces más de dos caminos para trabajar con

instrucciones de salto condicional encadenadas.– Aumento significativo de los conflictos de acceso a los

recursos (memoria).– Eliminación de la mayoría de los huecos debidos a saltos.

Paralelismo de grano muy fino

Page 42: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

42

Proc. CISC. Dependencia de saltos:• Precaptar destino del salto.

– Leer la siguiente instrucción y la del destino del salto.– Se limita a la fase de fetch de ambas instrucciones.– Reduce el hueco en el pipeline.

Proc. CISC. Dependencia de saltos:• Precaptar destino del salto.

– Leer la siguiente instrucción y la del destino del salto.– Se limita a la fase de fetch de ambas instrucciones.– Reduce el hueco en el pipeline.

Paralelismo de grano muy fino

Page 43: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

43

Proc. CISC. Dependencia de saltos:• Buffer de bucles.

– Similar a una cola de Prefetch pero de mayor tamaño.– Se pone en marcha al detectar un salto condicional hacia

atrás (típico de los bucles).– Se pretende mantener en la cola todas las instrucciones del

bucle.– Si sobra espacio se almacenan también las instrucciones

que siguen al bucle. – Importante ahorro de ciclos de fetch en bucles pequeños.

Proc. CISC. Dependencia de saltos:• Buffer de bucles.

– Similar a una cola de Prefetch pero de mayor tamaño.– Se pone en marcha al detectar un salto condicional hacia

atrás (típico de los bucles).– Se pretende mantener en la cola todas las instrucciones del

bucle.– Si sobra espacio se almacenan también las instrucciones

que siguen al bucle. – Importante ahorro de ciclos de fetch en bucles pequeños.

Paralelismo de grano muy fino

Page 44: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

44

Proc. CISC. Predicción de saltos:Optar por una alternativa: Saltar / No saltar. Si acierta sigue, si no deshacer proceso realizado (FE, DE, CD y LO).• Criterios estáticos, no depende de la historia anterior.

– No cumple condición. Alternativa más simple.

– Cumple condición. Mantener antiguo PC.

– Decisión según el código de operación. Instr. bucle.

– Evaluación previa de la condición. Ayuda del compilador.

Consideraciones:– Dirección del salto.– Entornos paginados y saltos de página.

Proc. CISC. Predicción de saltos:Optar por una alternativa: Saltar / No saltar. Si acierta sigue, si no deshacer proceso realizado (FE, DE, CD y LO).• Criterios estáticos, no depende de la historia anterior.

– No cumple condición. Alternativa más simple.

– Cumple condición. Mantener antiguo PC.

– Decisión según el código de operación. Instr. bucle.

– Evaluación previa de la condición. Ayuda del compilador.

Consideraciones:– Dirección del salto.– Entornos paginados y saltos de página.

Paralelismo de grano muy fino

Page 45: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

45

Proc. CISC. Predicción de saltos:• Saltos dinámicos, depende de la historia anterior.

– Conmutador saltar/ no saltar. Asignación de un estado a cada instrucción 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 además del estado la dirección de destino del salto. Mayor tamaño de la tabla y no aplicable a todos los direccionamientos.

Proc. CISC. Predicción de saltos:• Saltos dinámicos, depende de la historia anterior.

– Conmutador saltar/ no saltar. Asignación de un estado a cada instrucción 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 además del estado la dirección de destino del salto. Mayor tamaño de la tabla y no aplicable a todos los direccionamientos.

Paralelismo de grano muy fino

Page 46: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

46

Proc. CISC. Predicción de saltos:Saltos dinámicos, diferentes ejemplos:

Proc. CISC. Predicción de saltos:Saltos dinámicos, diferentes ejemplos:

Paralelismo de grano muy fino

Page 47: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

47

Proc. CISC. Predicción de saltos:Saltos dinámicos, diferentes ejemplos:

Proc. CISC. Predicción de saltos:Saltos dinámicos, diferentes ejemplos:

Paralelismo de grano muy fino

Page 48: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

48

Procesadores RISC. • Justificación:

– Instrucciones complejas poco utilizadas.– Set amplio y complejo Mayor dificultad de optimización.– Instrucciones y operandos largos posible mayor uso de

memoria a pesar del menor número de instrucciones.– Ciclos de fetch más largos y cambios de página frec.– Efectividad pipeline mermada por los desajustes de

tiempos.

• Solución: Conjunto de instrucciones simples, uniformes, generales y poco numerosas.

Procesadores RISC. • Justificación:

– Instrucciones complejas poco utilizadas.– Set amplio y complejo Mayor dificultad de optimización.– Instrucciones y operandos largos posible mayor uso de

memoria a pesar del menor número de instrucciones.– Ciclos de fetch más largos y cambios de página frec.– Efectividad pipeline mermada por los desajustes de

tiempos.

• Solución: Conjunto de instrucciones simples, uniformes, generales y poco numerosas.

Paralelismo de grano muy fino

Page 49: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

49

Procesadores RISC. • Principios generales:

– Aumentar el número de registros internos del micro. Esto reduce los conflictos de acceso a memoria y el tiempo empleado.

– Optimizar diseño del pipeline para mejorar su rendimiento. Una instrucción por ciclo. Evitar conflictos y desajustes de tiempos.

– Conjunto de instrucciones limitado, sencillo y homogéneo. Única manera de mejorar el pipeline.

Procesadores RISC. • Principios generales:

– Aumentar el número de registros internos del micro. Esto reduce los conflictos de acceso a memoria y el tiempo empleado.

– Optimizar diseño del pipeline para mejorar su rendimiento. Una instrucción por ciclo. Evitar conflictos y desajustes de tiempos.

– Conjunto de instrucciones limitado, sencillo y homogéneo. Única manera de mejorar el pipeline.

Paralelismo de grano muy fino

Page 50: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

50

Procesadores RISC. • Características:

– Instrucciones de mismo tamaño (32 bits) y mismo formato. Facilita diseño 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.– Máximo un operando en memoria.– Instrucciones de proceso (ALU) sólo con registros.– Operandos en memoria siempre alineados.

Procesadores RISC. • Características:

– Instrucciones de mismo tamaño (32 bits) y mismo formato. Facilita diseño 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.– Máximo un operando en memoria.– Instrucciones de proceso (ALU) sólo con registros.– Operandos en memoria siempre alineados.

Paralelismo de grano muy fino

Page 51: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

51

Procesadores RISC. • Consecuencias:

– Compiladores más elaborados.– Programas con mayor número de instrucciones más cortas.– Aumento del rendimiento. Poder despachar una instrucción

ejecutada en cada ciclo de reloj.

Procesadores RISC. • Consecuencias:

– Compiladores más elaborados.– Programas con mayor número de instrucciones más cortas.– Aumento del rendimiento. Poder despachar una instrucción

ejecutada en cada ciclo de reloj.

Paralelismo de grano muy fino

Page 52: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

52

Procesadores RISC. Ficheros de registros.

Se usan en algunas CPUs

Además registrosglobales y de comaflotante.

Normalmente entre 8y 16 niveles.

Al desbordarlo se usala Memoria Principal.

Procesadores RISC. Ficheros de registros.

Se usan en algunas CPUs

Además registrosglobales y de comaflotante.

Normalmente entre 8y 16 niveles.

Al desbordarlo se usala Memoria Principal.

Paralelismo de grano muy fino

Page 53: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

53

Procesadores RISC. Pipeline. • Instrucciones que acceden a memoria:

– Lectura y decodificación de la instrucción.– Calculo de la dirección del operando.– Lectura o escritura del operando.

• Instrucciones que NO acceden a memoria:– Lectura y decodificación de la instrucción.– Ejecución.

Procesadores RISC. Pipeline. • Instrucciones que acceden a memoria:

– Lectura y decodificación de la instrucción.– Calculo de la dirección del operando.– Lectura o escritura del operando.

• Instrucciones que NO acceden a memoria:– Lectura y decodificación de la instrucción.– Ejecución.

Paralelismo de grano muy fino

Page 54: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

54

Procesadores RISC. Pipeline. Conflictos:

– Desajustes de tiempos: Minimizados.– Accesos a memoria: Sólo en F/D y L/EO.– Dependencias de operandos: Sólo entre

registros.– Dependencias de saltos: Como en CISC y

además salto retardado.

Procesadores RISC. Pipeline. Conflictos:

– Desajustes de tiempos: Minimizados.– Accesos a memoria: Sólo en F/D y L/EO.– Dependencias de operandos: Sólo entre

registros.– Dependencias de saltos: Como en CISC y

además salto retardado.

Paralelismo de grano muy fino

Page 55: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

55

Procesadores RISC. Salto retardado:

– Intercambiar la instrucción de salto con la anterior a ella.– Siempre se ejecutará la instrucción posterior al salto.– Se evita el vaciado del pipeline.

No aplicable si:– Hay dos instrucciones de salto seguidas.– Salto es destino de varios orígenes.– La instrucción modifica la condición de salto.

En estos casos se añade una instrucción NOP al salto.

Procesadores RISC. Salto retardado:

– Intercambiar la instrucción de salto con la anterior a ella.– Siempre se ejecutará la instrucción posterior al salto.– Se evita el vaciado del pipeline.

No aplicable si:– Hay dos instrucciones de salto seguidas.– Salto es destino de varios orígenes.– La instrucción modifica la condición de salto.

En estos casos se añade una instrucción NOP al salto.

Paralelismo de grano muy fino

Page 56: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

56

Procesadores RISC. Salto retardado:Procesadores RISC. Salto retardado:

Paralelismo de grano muy fino

Page 57: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

57

Procesadores RISC. Salto retardado ejemplos:

En un sistema que usa la técnica del salto y con la siguiente secuencia de instrucciones en el programa fuente:

–[I1] Instrucción que no es de salto

–[I2] Instrucción de comparación A-B

–[I3] Salto condicional si A>B

–[I4] Instrucción que no es de salto

¿Qué haría el compilador?

El compilador inserta una instrucción NOP dado que la instrucción I2 fija la condición de salto a seguir por I3, estas no pueden alterar su orden, por lo tanto, la secuencia que debería haber generado el compilador sería: [I1] [I2] [I3] NOP [I4]

Procesadores RISC. Salto retardado ejemplos:

En un sistema que usa la técnica del salto y con la siguiente secuencia de instrucciones en el programa fuente:

–[I1] Instrucción que no es de salto

–[I2] Instrucción de comparación A-B

–[I3] Salto condicional si A>B

–[I4] Instrucción que no es de salto

¿Qué haría el compilador?

El compilador inserta una instrucción NOP dado que la instrucción I2 fija la condición de salto a seguir por I3, estas no pueden alterar su orden, por lo tanto, la secuencia que debería haber generado el compilador sería: [I1] [I2] [I3] NOP [I4]

Paralelismo de grano muy fino

Page 58: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

58

Procesadores RISC. Salto retardado ejemplos:

En un sistema que usa la técnica del salto y con la siguiente secuencia de instrucciones en el programa fuente:

–[I1] Instrucción que no es de salto

–[I2] Salto incondicional a eti1

–[I3] Salto condicional a eti2

–[I4] Instrucción que no es de salto

¿Qué haría el compilador?

La técnica del salto retardado se aplica tanto a los condicionales como a los incondicionales, por lo tanto, la secuencia que debería haber generado el compilador sería: [I2] [I1] [I3] NOP [I4].

Procesadores RISC. Salto retardado ejemplos:

En un sistema que usa la técnica del salto y con la siguiente secuencia de instrucciones en el programa fuente:

–[I1] Instrucción que no es de salto

–[I2] Salto incondicional a eti1

–[I3] Salto condicional a eti2

–[I4] Instrucción que no es de salto

¿Qué haría el compilador?

La técnica del salto retardado se aplica tanto a los condicionales como a los incondicionales, por lo tanto, la secuencia que debería haber generado el compilador sería: [I2] [I1] [I3] NOP [I4].

Paralelismo de grano muy fino

Page 59: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

59

Arq. superescalar y supersegmentada. Arq. superescalar:

– Más de un pipeline trabajando en paralelo. Algún pipeline puede ser de tipo específico.

– 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.

Arq. superescalar y supersegmentada. Arq. superescalar:

– Más de un pipeline trabajando en paralelo. Algún pipeline puede ser de tipo específico.

– 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.

Paralelismo de grano muy fino

Page 60: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

60

Arq. superescalar y supersegmentada.

Arquitecturasuperescalar

Arq. superescalar y supersegmentada.

Arquitecturasuperescalar

Paralelismo de grano muy fino

Page 61: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

61

Arq. superescalar y supersegmentada. Arq. supersegmentada

Arq. superescalar y supersegmentada. Arq. supersegmentada

Paralelismo de grano muy fino

Page 62: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

62

Arq. superescalar y supersegmentada. • EJECUCIÓN DESORDENADA DE INSTRUCCIONES:

– Reduce la pérdida 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 según la fase en la que se admita el desorden (emisión, será necesario un buffer, o ejecución)

Arq. superescalar y supersegmentada. • EJECUCIÓN DESORDENADA DE INSTRUCCIONES:

– Reduce la pérdida 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 según la fase en la que se admita el desorden (emisión, será necesario un buffer, o ejecución)

Paralelismo de grano muy fino

Page 63: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

63

Arq. superescalar y supersegmentada. • EJECUCIÓN DESORDENADA DE INSTRUCCIONES :

Arq. superescalar y supersegmentada. • EJECUCIÓN DESORDENADA DE INSTRUCCIONES :

Paralelismo de grano muy fino

Page 64: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

64

Arq. superescalar y supersegmentada. • EJECUCIÓN DESORDENADA DE INSTRUCCIONES:

– FD1 y FD2 son etapas de prefetch y decodificación.– EJ1 y EJ2 son unidades de ejecución de enteros y EJ3 de

coma flotante.– ER1 y ER2 representan escritura de resultado.– Secuencia de instrucciones: I1 .. I9.– Instrucciones de 3 ciclos de duración, 1 por etapa, salvo I1

que requiere dos ciclos en la fase de ejecución.– I3 e I4 operan con datos en coma flotante.– I5 e I6 presentan dependencia de operandos.

Arq. superescalar y supersegmentada. • EJECUCIÓN DESORDENADA DE INSTRUCCIONES:

– FD1 y FD2 son etapas de prefetch y decodificación.– EJ1 y EJ2 son unidades de ejecución de enteros y EJ3 de

coma flotante.– ER1 y ER2 representan escritura de resultado.– Secuencia de instrucciones: I1 .. I9.– Instrucciones de 3 ciclos de duración, 1 por etapa, salvo I1

que requiere dos ciclos en la fase de ejecución.– I3 e I4 operan con datos en coma flotante.– I5 e I6 presentan dependencia de operandos.

Paralelismo de grano muy fino

Page 65: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

65

Arq. superescalar y supersegmentada. • PSEUDODEPENDENCIAS DE OPERANDOS:

Ejecución ordenada.

Arq. superescalar y supersegmentada. • PSEUDODEPENDENCIAS DE OPERANDOS:

Ejecución ordenada.

Paralelismo de grano muy fino

Page 66: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

66

Arq. superescalar y supersegmentada. • PSEUDODEPENDENCIAS DE OPERANDOS:

Ejecución desordenada en escritura de resultados.

Arq. superescalar y supersegmentada. • PSEUDODEPENDENCIAS DE OPERANDOS:

Ejecución desordenada en escritura de resultados.

Paralelismo de grano muy fino

Page 67: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

67

Arq. superescalar y supersegmentada. • PSEUDODEPENDENCIAS DE OPERANDOS:

Ejecución desordenada en emisión de instrucciones y ER.

Arq. superescalar y supersegmentada. • PSEUDODEPENDENCIAS DE OPERANDOS:

Ejecución desordenada en emisión de instrucciones y ER.

Paralelismo de grano muy fino

Page 68: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

68

Arq. superescalar y supersegmentada. • PSEUDODEPENDENCIAS DE OPERANDOS: Dependencia real (escritura/lectura): operando de Ik es

resultado de Ii. Se pueden producir siempre que haya ejecución 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 técnica de renombrado de registros

Arq. superescalar y supersegmentada. • PSEUDODEPENDENCIAS DE OPERANDOS: Dependencia real (escritura/lectura): operando de Ik es

resultado de Ii. Se pueden producir siempre que haya ejecución 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 técnica de renombrado de registros

Paralelismo en la familia 80x86

Page 69: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

69

Arq. superescalar y supersegmentada. • PSEUDODEPENDENCIAS DE OPERANDOS: Dependencia real (escritura/lectura): operando de Ik es

resultado de Ii. Se pueden producir siempre que haya ejecución paralela.

Ii R1 + R2 R3

Ik R3 + R4 R5

Arq. superescalar y supersegmentada. • PSEUDODEPENDENCIAS DE OPERANDOS: Dependencia real (escritura/lectura): operando de Ik es

resultado de Ii. Se pueden producir siempre que haya ejecución paralela.

Ii R1 + R2 R3

Ik R3 + R4 R5

Paralelismo de grano muy fino

Page 70: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

70

Arq. superescalar y supersegmentada. • PSEUDODEPENDENCIAS DE OPERANDOS:

Pseudodependencia de salida (escritura/escritura): Ik e Ii escriben sobre el mismo operando.

Arq. superescalar y supersegmentada. • PSEUDODEPENDENCIAS DE OPERANDOS:

Pseudodependencia de salida (escritura/escritura): Ik e Ii escriben sobre el mismo operando.

Paralelismo de grano muy fino

........................Ik R4 + R5 R3

Ii R1 + R2 R3

Se resuelve con la técnica de renombrado de registros

Page 71: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

71

Paralelismo de grano muy fino

Arq. superescalar y supersegmentada. • PSEUDODEPENDENCIAS DE OPERANDOS:

Antidependencia (lectura/escritura): Ii lee un operando que debe escribir Ik.

Arq. superescalar y supersegmentada. • PSEUDODEPENDENCIAS DE OPERANDOS:

Antidependencia (lectura/escritura): Ii lee un operando que debe escribir Ik.

........................Ik R4 + R5 R1

Ii R1 + R2 R3

Sólo se produce si en la ejecución desordenada se ejecuta Ik antes que Ii

Se resuelve con la técnica de renombrado de registros

Page 72: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

72

Intel 8086 .. 80286Intel 8086 .. 80286

Paralelismo en la familia 80x86

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).

EUUnidad de Control

ALU

Registros Propósito

general e índices

Registros de segmento

ALU Cálculo de direcciones

Cola de Prefetch

BIU

Page 73: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

73

Intel 80386•Pipeline: 4/6 etapassegún criterio.•Hasta 4 instrucciones en ejecución.• MMU Memory Management Unit. Gestiona las tareasde segmentación y paginación.

Intel 80386•Pipeline: 4/6 etapassegún criterio.•Hasta 4 instrucciones en ejecución.• MMU Memory Management Unit. Gestiona las tareasde segmentación y paginación.

Paralelismo en la familia 80x86

Page 74: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

74

Paralelismo en la familia 80x86

Intel 80486- Prefetch: 5/9 etapas según criterio.- Hasta 6 instrucciones en ejecución.- Decodificador con lógicacableada para instr. simplesy microprogramado paralas complejas.

Intel 80486- Prefetch: 5/9 etapas según criterio.- Hasta 6 instrucciones en ejecución.- Decodificador con lógicacableada para instr. simplesy microprogramado paralas complejas.

Page 75: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

75

Paralelismo en la familia 80x86

Coprocesadores matemáticos

• Circuitos inicialmente externos, cooperan con la CPU.• Leen las instrucciones a la vez que la CPU. Si una

instrucción es de coprocesador la ejecutan.• Si la instruccion tiene operandos en la memoria, la CPU

calcula y vuelca su dirección.• Trabaja en paralelo con la CPU. Si la CPU debe

esperar al coprocesador, se inserta la instrucción FWAIT.

Coprocesadores matemáticos

• Circuitos inicialmente externos, cooperan con la CPU.• Leen las instrucciones a la vez que la CPU. Si una

instrucción es de coprocesador la ejecutan.• Si la instruccion tiene operandos en la memoria, la CPU

calcula y vuelca su dirección.• Trabaja en paralelo con la CPU. Si la CPU debe

esperar al coprocesador, se inserta la instrucción FWAIT.

Page 76: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

76

Paralelismo en la familia 80x86

Procesadores CRISC.

• Disponen de características de CISC y de RISC.• intel 80486 dispone de un núcleo 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 núcleo microprogramado requieren múltiples ciclos de reloj.

Procesadores CRISC.

• Disponen de características de CISC y de RISC.• intel 80486 dispone de un núcleo 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 núcleo microprogramado requieren múltiples ciclos de reloj.

Page 77: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

77

Paralelismo en la familia 80x86

Intel Pentium- Arquitectura superescalarde grado 2 (Pipes U y V).- Ejecución ordenada.- Doble caché.- Unidad predicción saltos.- Prefetch 128 bytes.- Pipeline 5 etapas.- MMU no representada.

Intel Pentium- Arquitectura superescalarde grado 2 (Pipes U y V).- Ejecución ordenada.- Doble caché.- Unidad predicción saltos.- Prefetch 128 bytes.- Pipeline 5 etapas.- MMU no representada.

Page 78: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

78

Paralelismo en la familia 80x86

Intel Pentium ProArquitectura superesc.de grado 3.

Ejecución desordenada.

Doble caché L1 y L2.

Unidad predicción saltos.

Prefetch 128 bytes.

Pipeline 5 etapas.

MMU no representada.

Intel Pentium ProArquitectura superesc.de grado 3.

Ejecución desordenada.

Doble caché L1 y L2.

Unidad predicción saltos.

Prefetch 128 bytes.

Pipeline 5 etapas.

MMU no representada.

Page 79: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

79

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' conversión rápida.• Instrucciones 'complejas' conversión por medio de un microprograma.

Las microoperaciones se almacenan en el Instruction Pool.

5 Unidades de ejecución. 2 de enteros 2 de como flotante 1 de lectura de memoria. Retiran las operaciones de forma desordenada.

Intel Pentium Pro

Dispone de 3 decodificadores de instrucciones que trabajan de forma ordenada.

Convierten las instrucciones en secuencias de microoperaciones.• Instrucciones 'simples' conversión rápida.• Instrucciones 'complejas' conversión por medio de un microprograma.

Las microoperaciones se almacenan en el Instruction Pool.

5 Unidades de ejecución. 2 de enteros 2 de como flotante 1 de lectura de memoria. Retiran las operaciones de forma desordenada.

Page 80: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

80

Paralelismo en la familia 80x86

Intel Pentium ProEjemplo:

mem regtemp (1 op.)

mem + reg mem 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.

Intel Pentium ProEjemplo:

mem regtemp (1 op.)

mem + reg mem 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.

Page 81: 1 Arquitectura Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86.

81

Paralelismo en la familia 80x86

Intel Pentium ProBTB: Branch Target Buffer. Almacena la dirección de las instrucciones de salto, la historia relacionada con ella (estado) y la dirección de destino.

Si no se ha ejecutado nunca se usa una predicción estática: que se saltará si el salto es incondicional o hacia atrás en otro caso se decide no saltar.

Intel Pentium ProBTB: Branch Target Buffer. Almacena la dirección de las instrucciones de salto, la historia relacionada con ella (estado) y la dirección de destino.

Si no se ha ejecutado nunca se usa una predicción estática: que se saltará si el salto es incondicional o hacia atrás en otro caso se decide no saltar.