Pontificia Universidad Católica de Chile

Slides:



Advertisements
Presentaciones similares
Procesadores Superescalares
Advertisements

El modelo de Von Neumann
DISEÑO DE TRANSFERENCIA ENTRE REGISTROS
Definición En un sistema de base de datos distribuida, los datos se almacenan en varios computadores. Los computadores de un sistema distribuido se comunican.
UNIVERSIDAD DEL VALLE DE MEXICO CAMPUS CHAPULTEPEC
Fernando Escribano Pro 1º de Bachillerato
Multiprocesadores 3.1 Dominios de aplicación
I.T.E.S.R.C. Romina Tamez Andrea Martínez Ma. De Lourdes Solís
Base de Datos Distribuidas FUNDAMENTOS DE BASES DE DATOS DISTRIBUIDAS
Tecnologías Cliente / Servidor Capitulo III Richard Jiménez V. clienteserver.wordpress.com.
PROCESADORES SUPERESCALARES
La maquina de Turing La máquina de Turing es una caja negra (tan simple como una máquina de escribir y tan compleja como un ser humano) capaz no sólo de.
Que es un plc.
Sistemas Distribuidos y Paralelos
Pipelines: Riesgos.
Tema II Unidad de memoria. 2 Unidad de memoria 2.1 Definiciones y conceptos básicos Localización Capacidad Unidad de transferencia
Windows XP sp3.
Introducción a los Sistemas de Bases de Datos Distribuidos
EMISION MULTIPLE DE INSTRUCCIONES
Johanna Lizeth Rodríguez Lorena Fda. Chávarro Ramos
Algorítmo de Mapeo Directo
PARADIGMA Es un esquema de pensamiento que nos lleva a concebir las cosas de una manera determinada. el término paradigma puede indicar el concepto de esquema.
Alejandro Ledezma Milanez Sonia Lizbeth Hernández Martinez Zaira Samara Chavez Hernandez Gilberto Saduj Castañeda Garcia.
Composición Interna de un Procesador
PROCESAMIENTO PARALELO.  Organización lógica ◦ Visión que tiene el programados  Capacidad de expresar tareas paralelas (Estructura de control)  Método.
Arquitectura del Computador
HILOS Y COMUNICACIÓN ENTRE PROCESOS
TRADUCTOR DE UN PROGRAMA
Centralizados y Distribuidos
ARQUITECTURAS SIMD TIPOS
Conceptos generales: Concurrencia: Existencia simultánea de varios procesos en ejecución. IMPORTANTE: EXISTENCIA SIMULTÁNEA NO IMPLICA EJECUCIÓN SIMULTÁNEA.
Unidad III Administración de procesos
Ing. Karen Torrealba de Oblitas
Procesamiento paralelo
CONMUTACIÓN TELEFÓNICA
INSTITUTO TECNOLÓGICO DE CD. GUZMÁN
Memoria Cachés. Universidad de SonoraArquitectura de Computadoras2 Introducción Caché es el nivel de memoria situada entre el procesador y la memoria.
Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),
Asignación de Espacio No Contiguo
TEMA 2: Organización de computadores
Organización de Computadoras
Servidores Conceptos Generales.
TEMA 10. SISTEMAS OPERATIVOS DISTRIBUIDOS
Inst. Tec. de Morelia ISC BASES DE DATOS DISTRIBUIDAS VERANO DEL 2006 MC. Anastacio Antolino Hernández TAXONOMÍA DE FLYNN.
Arquitecturas Paralelas
Teoría de Sistemas Operativos Sincronización Procesos Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz
PROGRAMACIÓN PARALELA Modelos de programación paralela Modelos computacionales Paradigmas de programación paralela Programación en memoria compartida:
“Organización y Arquitectura de Computadores” William Stallings
Introducción a los SOs.
Tema 8: Introducción a los SOs. Tema 8: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.), Introducción.
Teoría de Sistemas Operativos Departamento de Electrónica 2º Semestre, 2002 Gabriel Astudillo Muñoz
Tema 5: Multiprocesadores
Estructura de los Sistemas Operativos
Metodología de la programación
Protocolos de Sondeo SNOOPY
ARQUICTECTURA DE SERVIDORES
Son los atributos de un sistema que son visibles para un programador, es decir aquellos atributos que impactan directamente en la ejecución lógica de un.
INTERRUPCIONES – ABRAZO MORTAL
Tecnologías Cliente / Servidor
Transacciones seguras  Concurrencia Ing. Yeberth Martinez Programación II.
Curso: Fundamentos de Computación
Republica Bolivariana de Venezuela Universidad Alonso de Ojeda Facultad de Ingeniería Escuela de Computación Ing. Prof. Leonel Sequera Entrada y Salidas.
SISTEMAS OPERTIVOS DE RED Los usuarios están conectados a la red y que pueden compartir recursos. Cada equipo ejecuta con sus propios recursos su propio.
PROCESADOR.- El procesador es el cerebro del sistema, encargado de procesar toda la información. Básicamente, es el "cerebro" de la computadora. Prácticamente,
Sistemas Distribuidos Conceptos Básicos Propiedades MSI. Nancy A. Olivares Ruiz.
Gestión de Memoria – Parte 2
La programación modular es un paradigma de programación que consiste en dividir un programa en módulos o subprogramas con el fin de hacerlo más legible.
Arquitectura de Computadoras (Taller) Semestre II de 2008.
Consistencia y Replicación
Arquitectura de Computadores
Transcripción de la presentación:

Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación [ Arquitectura de Computadores ] MULTIPROCESADOR Y ARQUITECTURAS ALTERNATIVAS IIC 2342 Semestre 2006-2 Domingo Mery Präsentation D.Mery 1 Arquitectura de Computadores

[ Índice ] 7.1 SIMD, MIMD, VLIW, EPIC 7.2 Arquitectura sistólica 7.3 Sistemas de memoria compartida 7.4 Coherencia de caché 7.5 Modelos de memoria y consistencia D.Mery 2 Arquitectura de Computadores Präsentation

[ Índice ] 7.1 SIMD, MIMD, VLIW, EPIC 7.2 Arquitectura sistólica 7.3 Sistemas de memoria compartida 7.4 Coherencia de caché 7.5 Modelos de memoria y consistencia D.Mery 3 Arquitectura de Computadores Präsentation

SIMD, MIMD, … [ Multiprocesadores ] Paralelismo: D.Mery 4 Arquitectura de Computadores Präsentation

SIMD, MIMD, … [ Multiprocesadores ] Paralelismo: Esta multiplicación es “paralelizable” fácilmente empleando m procesadores, cada uno se ocupa de multiplicar una fila de la matriz A con el vector x. D.Mery 5 Arquitectura de Computadores Präsentation

SIMD, MIMD, … [ Multiprocesadores ] SISD: Single Instruction Single Data, es una secuencia de instrucciones y una secuencia de datos. Un único procesador interpreta una única secuencia de instrucciones, para operar con los datos almacenados en una única memoria. Los computadores monoprocesador caen en esta categoría. D.Mery 6 Arquitectura de Computadores Präsentation

SIMD, MIMD, … [ Multiprocesadores ] SISD: SI SD Unidad de control proceso Unidad de memoria D.Mery 7 Arquitectura de Computadores Präsentation

SIMD, MIMD, … [ Multiprocesadores ] SISD: Processor Data Output Data Input Data Output Instructions D.Mery 8 Arquitectura de Computadores Präsentation

SIMD, MIMD, … [ Multiprocesadores ] SIMD: Single Instruction Multiple Data, es una secuencia de instrucciones y múltiples secuencias de datos. Una única instrucción de máquina controla paso a paso la ejecución simultánea y sincronizada de un cierto número de elementos de proceso. Cada elemento de proceso tiene una memoria asociada, de forma que cada instrucción es ejecutada por cada procesador, con un conjunto de datos diferentes. Los procesadores matriciales y vectoriales pertenecen a esta categoría. D.Mery 9 Arquitectura de Computadores Präsentation

SIMD, MIMD, … [ Multiprocesadores ] SIMD: SD Elemento de proceso 1 Memoria Local 1 SI SD Unidad de control Elemento de proceso 2 Memoria Local 2 SD Elemento de proceso n Memoria Local n D.Mery 10 Arquitectura de Computadores Präsentation

SIMD, MIMD, … [ Multiprocesadores ] SIMD: A B C Instruction Stream Processor A B C Data Input stream A stream B stream C Data Output SIMD: D.Mery 11 Arquitectura de Computadores Präsentation

SIMD, MIMD, … [ Multiprocesadores ] MISD: Multiple Instruction Single Data, son múltiples secuencias de instrucciones y una secuencia de datos. Se transmite una secuencia de datos a un conjunto de procesadores, cada uno de los cuales ejecuta una secuencia de instrucciones diferente. Esta estructura ha sido implementada sólo con fines de investigación. D.Mery 12 Arquitectura de Computadores Präsentation

SIMD, MIMD, … [ Multiprocesadores ] MISD: A Output Data Input B Stream Processor A B C Instruction Stream A Stream B Instruction Stream C Esto es más un ejercicio intelectual que un ejercicio práctico. D.Mery 13 Arquitectura de Computadores Präsentation

SIMD, MIMD, … [ Multiprocesadores ] MIMD: Multiple Instruction Multiple Data, son múltiples secuencias de instrucciones y múltiples secuencias de datos. Un conjunto de procesadores ejecuta simultáneamente secuencias de instrucciones diferentes con conjuntos de datos diferentes. Los clusters son ejemplos de esta categoría. D.Mery 14 Arquitectura de Computadores Präsentation

SIMD, MIMD, … [ Multiprocesadores ] MIMD: A B C Instruction Stream A Processor A B C Data Input stream A stream B stream C Data Output Instruction Stream A Stream B Stream C D.Mery 15 Arquitectura de Computadores Präsentation

SIMD, MIMD, … [ Multiprocesadores ] MIMD (con memoria compartida): SD Unidad de Control 1 Elemento de proceso 1 SI SD Unidad de Control 2 Elemento de proceso 2 SI SD Unidad de Control n Elemento de proceso n D.Mery 16 Arquitectura de Computadores Präsentation

SIMD, MIMD, … [ Multiprocesadores ] MIMD (con memoria distribuida): Red de Interco-nexión SI SD Unidad de Control 1 Elemento de proceso 1 Memoria Local 1 SI SD Unidad de Control 2 Elemento de proceso 2 Memoria Local 2 SI SD Unidad de Control n Elemento de proceso n Memoria Local n D.Mery 17 Arquitectura de Computadores Präsentation

SIMD, MIMD, … [ Multiprocesadores ] MIMD (con memoria compartida y caché): Los datos pueden ser modificados y guardadados en la caché D.Mery 18 Arquitectura de Computadores Präsentation

SIMD, MIMD, … [ Multiprocesadores ] VLIW: Very Long Instruction Word, La idea es que el compilador empaquete muchas instrucciones (de 4 a 8) en una sola palabra de instrucción muy larga. Esta palabra corresponde a un conjunto de unidades funcionales (FU). VLIW corresponde a una arquitectura superescalar. instrucción operation 1 operation 2 operation 3 operation 4 operation 5 D.Mery 19 Arquitectura de Computadores Präsentation

SIMD, MIMD, … [ Multiprocesadores ] VLIW: IF DC RF1 EX1 WB1 RF2 EX2 RFk EXk WBk D.Mery 20 Arquitectura de Computadores Präsentation

SIMD, MIMD, … [ Multiprocesadores ] VLIW: D.Mery 21 Arquitectura de Computadores Präsentation

SIMD, MIMD, … [ Multiprocesadores ] Tradicional vs. VLIW: En VLIW, la decisión del orden de las ejecuciones la toma el compilador. En el superescalar la decisión la toma el hardware. D.Mery 22 Arquitectura de Computadores Präsentation

SIMD, MIMD, … [ Multiprocesadores ] EPIC: (Es el nombre que Intel le puso a VLIW): Explicitly Parallel Instruction Computing, se basa en innovaciones como predicción, especulación y paralelismo explícito. Es un método para ordenar las instrucciones de tal forma que puedan ejecutarse de manera paralela. D.Mery 23 Arquitectura de Computadores Präsentation

SIMD, MIMD, … [ Multiprocesadores ] Paralelismo explícito: Ejemplo de un banco con recibidor que envía al cliente a hacer cola a cualquier ventanilla (el cliente no es atendido correctamente) vs. un recibidor inteligente que envía al cliente a la ventanilla adecuada. D.Mery 24 Arquitectura de Computadores Präsentation

[ Índice ] 7.1 SIMD, MIMD, VLIW, EPIC 7.2 Arquitectura sistólica 7.3 Sistemas de memoria compartida 7.4 Coherencia de caché 7.5 Modelos de memoria y consistencia D.Mery 25 Arquitectura de Computadores Präsentation

Arquitectura sistólica [ Multiprocesadores ] Arquitectura sistólica Un arreglo sistólico es un conjunto de procesadores dispuestos de una manera regular (por lo general rectangular) donde los datos fluyen sincrónicamente a través del arreglo entre sus vecinos. Cada procesador toma en cada paso toma datos de sus vecinos (por lo general Norte y Oeste), los procesa y se los entrega a sus procesadores vecinos (por lo general Sur y Este). D.Mery 26 Arquitectura de Computadores Präsentation

Arquitectura sistólica [ Multiprocesadores ] Arquitectura sistólica D.Mery 27 Arquitectura de Computadores Präsentation

Arquitectura sistólica [ Multiprocesadores ] Arquitectura sistólica Ejemplos: procesamiento digital de señales, procesamiento digital de imágenes, multiplicación de matrices, evaluación de polinomios etc. Rápidos en estas operaciones, sin embargo están limitados a estas aplicaciones, para otras operaciones no son prácticos. D.Mery 28 Arquitectura de Computadores Präsentation

Arquitectura sistólica [ Multiprocesadores ] Arquitectura sistólica Arreglo lineal de procesadores La comunicación fluye a la derecha y a la izquierda. D.Mery 29 Arquitectura de Computadores Präsentation

Arquitectura sistólica [ Multiprocesadores ] Arquitectura sistólica La evaluación polinomial es simple Se usa la regla de Horner: Los elementos de proceso (PE) se colocan en pareja Se multiplica una entrada por , El resultado se pasa a la derecha Se suma aj al resultado de la izquierda Se pasa el resultado a la derecha y = ((((anx + an-1)*x + an-2)*x + an-3)*x …… a1)*x + a0 D.Mery 30 Arquitectura de Computadores Präsentation

Arquitectura sistólica [ Multiprocesadores ] Arquitectura sistólica TOPOLOGÍAS: 1D, 2D, 3D y 4D D.Mery 31 Arquitectura de Computadores Präsentation

Arquitectura sistólica [ Multiprocesadores ] Arquitectura sistólica Procesadores vectoriales y matriciales: diseñados para operaciones con vectores y matrices. D.Mery 32 Arquitectura de Computadores Präsentation

Arquitectura sistólica [ Multiprocesadores ] Arquitectura sistólica Ejemplo: Producto punto Se hace fetch a cada elemento del vector. D.Mery 33 Arquitectura de Computadores Präsentation

Arquitectura sistólica [ Multiprocesadores ] Arquitectura sistólica Ejemplo: Producto matricial D.Mery 34 Arquitectura de Computadores Präsentation

Arquitectura sistólica [ Multiprocesadores ] Arquitectura sistólica Operación: A*B+ C El resultado (A*B) se realimenta en un registro vectorial D.Mery 35 Arquitectura de Computadores Präsentation

[ Índice ] 7.1 SIMD, MIMD, VLIW, EPIC 7.2 Arquitectura sistólica 7.3 Sistemas de memoria compartida 7.4 Coherencia de caché 7.5 Modelos de memoria y consistencia D.Mery 36 Arquitectura de Computadores Präsentation

Memoria compartida Accesos a la memoria: [ Multiprocesadores ] Memoria distribuida P P M M D.Mery 37 Arquitectura de Computadores Präsentation

Memoria compartida Accesos a la memoria: [ Multiprocesadores ] D.Mery 38 Arquitectura de Computadores Präsentation

Memoria compartida [ Multiprocesadores ] Sistema con memoria compartida: Memoria Compartida SI SD Unidad de Control 1 Elemento de proceso 1 SI SD Unidad de Control 2 Elemento de proceso 2 SI SD Unidad de Control n Elemento de proceso n D.Mery 39 Arquitectura de Computadores Präsentation

Memoria compartida [ Multiprocesadores ] El principal problema es cuando todos los procesadores intentan acceder a la memoria global al mismo tiempo (cuello de botella) Memoria Red de interconexión Procesadores D.Mery 40 Arquitectura de Computadores Präsentation

Memoria compartida [ Multiprocesadores ] Red de interconexión Solución: Dividir la Memoria en Módulos Cada módulo conectado a los procesadores por una red de switching de alta performance Este enfoque tiende a trasladar el cuello de botella a la red Memoria Procesadores D.Mery 41 Arquitectura de Computadores Präsentation

Memoria compartida Características: [ Multiprocesadores ] Un espacio de direcciones único y común. Comunicación vía read & write Sincronización vía bloqueos (locks). D.Mery 42 Arquitectura de Computadores Präsentation

Memoria compartida [ Multiprocesadores ] Sección crítica D.Mery 43 Arquitectura de Computadores Präsentation

[ Índice ] 7.1 SIMD, MIMD, VLIW, EPIC 7.2 Arquitectura sistólica 7.3 Sistemas de memoria compartida 7.4 Coherencia de caché 7.5 Modelos de memoria y consistencia D.Mery 44 Arquitectura de Computadores Präsentation

Coherencia de caché [ Multiprocesadores ] En los sistemas multiprocesador se disponen de varios niveles de caché asociados a cada procesador. Esta organización es esencial para obtener un buen desempeño. Sin embargo, esto ocasiona el problema conocido como coherencia de caché… D.Mery 45 Arquitectura de Computadores Präsentation

Coherencia de caché [ Multiprocesadores ] coherencia de caché… Pueden existir varias copias del mismo dato simultáneamente en cachés diferentes y, si los procesadores actualizan sus copias, puede producirse una visión inconsistente de la memoria. D.Mery 46 Arquitectura de Computadores Präsentation

Coherencia de caché [ Multiprocesadores ] Los datos pueden ser modificados y guardadados en la caché Qué pasa si otro procesador quiere esos datos? El procesador lee los datos antiguos! D.Mery 47 Arquitectura de Computadores Präsentation

Coherencia de caché [ Multiprocesadores ] Existen dos técnicas principales Escritura directa Post-escritura D.Mery 48 Arquitectura de Computadores Präsentation

Coherencia de caché [ Multiprocesadores ] Escritura directa: Todas las operaciones de escritura se hacen tanto en la caché como en la memoria principal inmediatamente. Así se asegura que el contenido de la memoria sea siempre válido. Desventaja: se genera un gran tráfico a la memoria principal que puede disminuir el desempeño. D.Mery 49 Arquitectura de Computadores Präsentation

Coherencia de caché [ Multiprocesadores ] Post-escritura: Cada bloque de la caché posee un bit de actualización que se inicializa en ‘0’ cuando se carga un bloque nuevo en la caché. Cada vez que se escriba en el bloque el bit de actualización se pone en ‘1’. Cuando se desee reemplazar el bloque, el bloque se copia a la memoria principal sólo si el bit de actualización es ‘1’. Desventaja: muchas veces hay porciones de la memoria principal que no son válidos. D.Mery 50 Arquitectura de Computadores Präsentation

Coherencia de caché [ Multiprocesadores ] Soluciones por Software Intentan evitar la necesidad de circuitería y lógica hardware adicional, dejando que el compilador y el sistema operativo se encarguen del problema. Ventaja: transfiere el costo de la detección de posibles problemas desde el hardware al software. Desventaja: el compilador toma a veces decisiones conservadoras que pueden ocasionar una utilización ineficiente de la caché. D.Mery 51 Arquitectura de Computadores Präsentation

Coherencia de caché [ Multiprocesadores ] Soluciones por Software El compilador realiza un análisis del código para determinar qué datos puedan dar problemas al pasar a la caché y los marca como “non-cachable”. Luego, el sistema operativo (o el hardware) impide que se pasen a la caché estos datos marcados. D.Mery 52 Arquitectura de Computadores Präsentation

Coherencia de caché [ Multiprocesadores ] Soluciones por Software El enfoque más simple consiste en impedir que cualquier dato compartido pase a la caché!! Otras soluciones analizan el código y determinan periodos seguros para las variables compartidas, es decir, se detectan las regiones críticas de los programas (en los cuales los programas acceden a variables compartidas) y no se permite que dos programas estén simultáneamente en la misma región crítica. D.Mery 53 Arquitectura de Computadores Präsentation

Coherencia de caché [ Multiprocesadores ] Soluciones por Hardware Permiten reconocer en el momento de la ejecución las situaciones de inconsistencias potenciales. Puesto que el problema se considera sólo en el momento en que aparece, existe un uso más efectivo de las cachés, mejorándose el desempeño en relación a las soluciones por software. Además, estas soluciones son transparentes para el programador y el compilador, reduciendo la complejidad en el desarrollo del software. D.Mery 54 Arquitectura de Computadores Präsentation

Coherencia de caché [ Multiprocesadores ] Protocolos de directorio (Soluciones por Hardware): Recogen y mantienen la información acerca de dónde residen las copias de las líneas de la memoria. Por lo general, existe un controlador centralizado que es parte del controlador de memoria principal y un directorio que se almacena en la memoria principal. El directorio contiene información de estado global en relación con los contenidos de las diferentes cachés locales. Cuando el controlador individual de una caché hace una petición, el controlador centralizado comprueba y emite las órdenes precisas para la transferencia entre memoria y caché (o entre distintas cachés). D.Mery 55 Arquitectura de Computadores Präsentation

Coherencia de caché [ Multiprocesadores ] Protocolos de directorio (Soluciones por Hardware): Antes de que un procesador pueda escribir en una copia local de una línea, debe solicitar al controlador acceso exclusivo a dicha línea. Antes de ceder este acceso exclusivo, el controlador envía un mensaje a todos los procesadores. Después de recibir el reconocimiento de cada unos de esos procesadores el controlador cede el acceso exclusivo al procesador que lo solicitó. D.Mery 56 Arquitectura de Computadores Präsentation

Coherencia de caché [ Multiprocesadores ] Protocolos de directorio (Soluciones por Hardware): Cuando otro procesador intenta leer una línea cedida para acceso exclusivo de otro procesador, enviará una notificación de fallo de caché al controlador. Entonces, el controlador manda una orden al procesador que posee la línea requerida, para que lo vuelva a escribir en memoria principal. Ahora, la línea puede compartirse para lectura por el procesador original y el que solicita el acceso. D.Mery 57 Arquitectura de Computadores Präsentation

Coherencia de caché [ Multiprocesadores ] Protocolos de directorio (Soluciones por Hardware): Desventaja de este método: se puede generar un cuello de botella ya que puede haber un exceso de comunicación entre los controladores locales y el controlador de la memoria principal. D.Mery 58 Arquitectura de Computadores Präsentation

Coherencia de caché [ Multiprocesadores ] Protocolos de sondeo o “Snoopy” (Soluciones por Hardware): Distribuyen la responsabilidad de mantener coherencia de caché entre todos los controladores de caché multiprocesador. Una caché debe reconocer cuándo una línea de las que tiene está siendo compartida con otras cachés. Cuando se realiza una actualización en una línea de caché compartida, debe anunciarse a todas las otras cachés mediante un mecanismo de difusión (broadcast). Cada controlador de caché es capaz de sondear la red para observar las notificaciones que se difunden y reaccionar adecuadamente. D.Mery 59 Arquitectura de Computadores Präsentation

Coherencia de caché [ Multiprocesadores ] Protocolos de sondeo MESI (Soluciones por Hardware): La caché de datos incluye dos bits de estado que indican uno de los cuatro siguientes estados: Modified: la línea de caché ha sido modificada (es distinta a su valor en memoria prinicipal), y está disponible sólo en esta caché. Exclusive: la línea de caché tiene el mismo contenido que en memoria principal, y no está presente en ninguna otra caché. Shared: la línea caché tiene el mismo contenido que en memoria principal, y puede estar presente en otra caché. Invalid: la línea de caché no contiene datos validos. D.Mery 60 Arquitectura de Computadores Präsentation

Coherencia de caché [ Multiprocesadores ] Línea de caché en procesador que inicia transferencia Escribir en memoria la línea de caché modificada Invalida transacción Lectura para modificación Cargar línea de caché RH Acierto de lectura RMS Fallo de lectura, compartida RME Fallo de lectura, exclusiva WH Acierto de escritura WM Fallo de escritura D.Mery 61 Arquitectura de Computadores Präsentation

[ Índice ] 7.1 SIMD, MIMD, VLIW, EPIC 7.2 Arquitectura sistólica 7.3 Sistemas de memoria compartida 7.4 Coherencia de caché 7.5 Modelos de memoria y consistencia D.Mery 62 Arquitectura de Computadores Präsentation

Modelo de memoria [ Multiprocesadores ] Modelo de Memoria: Especifica cómo se resuelven los conflictos de acceso a la memoria. Estos conflictos suceden sólo cuando la memoria es compartida. D.Mery 63 Arquitectura de Computadores Präsentation

Modelo de memoria [ Multiprocesadores ] El acceso a la memoria compartida puede ser visto como un contrato entre el hardware y el software de memoria. Si el software acepta cumplir con ciertas reglas, la memoria conviene en entregar ciertos resultados. La discusión se centra en la naturaleza de las reglas. Estas reglas se denomina “modelos de consistencia”. D.Mery 64 Arquitectura de Computadores Präsentation

Modelo de memoria [ Multiprocesadores ] Ejemplo: CPU-0 escribe ‘1’ en la posición X de la memoria. luego… CPU-1 escribe ‘2’ en la posición X. luego... CPU-2 lee la posición X y obtiene ‘1’ ¿algo falló??? Todo depende de lo que la memoria prometió en su contrato! D.Mery 65 Arquitectura de Computadores Präsentation

Modelo de memoria [ Multiprocesadores ] Modelos posibles: Consistencia estricta Consistencia secuencial Consistencia de procesador Consistencia débil Consistencia de liberación D.Mery 66 Arquitectura de Computadores Präsentation

Modelo de memoria [ Multiprocesadores ] Consistencia estricta: Cualquier lectura de una posición X siempre devuelve el valor de la escritura más reciente de X. En la práctica este modelo es imposible de implementar de otra manera que no sea tener un solo módulo de memoria que atiende todas las solicitudes bajo el régimen de primero llega-primero se atiende, sin uso de cachés ni repetición de datos. Una implementación así convertiría a la memoria en un enorme cuello de botella y por ello este modelo no es recomendable. D.Mery 67 Arquitectura de Computadores Präsentation

Modelo de memoria [ Multiprocesadores ] Consistencia secuencial: En presencia de múltiples solicitudes de lectura y escritura, el hardware escoge (de forma no determinista) cierta intercalación de todas las solicitudes, pero todas las CPU perciben el mismo orden. D.Mery 68 Arquitectura de Computadores Präsentation

Modelo de memoria [ Multiprocesadores ] Consistencia secuencial: Ejemplo: 1. CPU-1 escribe 100 en posición X 2. 1 ns después: CPU-2 escribe 200 en X 3. 1 ns después: CPU-3 y CPU-4 leen dos veces posición X CPU 1 2 3 y 4 (X)100 (X)200 lee X, lee X (dos veces) D.Mery 69 Arquitectura de Computadores Präsentation

Modelo de memoria [ Multiprocesadores ] Consistencia secuencial: Secuencias posibles: E100 E100 E200 E200 L3 = 100 L4 = 200 L3 = 200 E200 E100 L3 = 200 L4 = 200 L3 = 100 L4 = 200 L3 = 200 L4 = 100 L4 = 200 L4 = 200 L3 = 100 CPU 1 2 3 y 4 (X)100 (X)200 lee X, lee X (dos veces) D.Mery 70 Arquitectura de Computadores Präsentation

Modelo de memoria [ Multiprocesadores ] Consistencia secuencial: Secuencias posibles: E100 E100 E200 E200 L3 = 100 L4 = 200 L3 = 200 E200 E100 L3 = 200 L4 = 200 L3 = 100 L4 = 200 L3 = 200 L4 = 100 L4 = 200 L4 = 200 L3 = 100 Pase lo que pase, una memoria secuencialmente consistente nunca permitirá que la CPU-3 obtenga (100,200) mientras la CPU-4 obtiene (200,100). D.Mery 71 Arquitectura de Computadores Präsentation

Modelo de memoria [ Multiprocesadores ] Consistencia secuencial: Se garantiza que hay un solo ordenamiento global de todas las escrituras que todas las CPU ven igual. Cuando suceden varias cosas al mismo tiempo, existe un orden verdadero en el que ocurren, tal vez determinados por los tiempos y la casualidad, pero todos los procesadores observan este mismo orden. D.Mery 72 Arquitectura de Computadores Präsentation

Modelo de memoria [ Multiprocesadores ] Consistencia del procesador: Este modelo tiene dos propiedades: Todas las CPU ven las escrituras de cualquier CPU en el orden que se emitieron. Para cada palabra de memoria, todas las CPU ven todas las escrituras en ella en el mismo orden. D.Mery 73 Arquitectura de Computadores Präsentation

Modelo de memoria [ Multiprocesadores ] Consistencia del procesador: Este modelo tiene dos propiedades: Todas las CPU ven las escrituras de cualquier CPU en el orden que se emitieron. Ejemplo: si la CPU-1 emite escrituras con los valores 1A, 1B y 1C a la posición X en ese orden, entonces todos los demás procesadores las verán en ese orden también. Esto es, una CPU no verá en la posición X el valor 1B y luego el 1A. D.Mery 74 Arquitectura de Computadores Präsentation

Modelo de memoria [ Multiprocesadores ] Consistencia del procesador: Este modelo tiene dos propiedades: Para cada palabra de memoria, todas las CPU ven todas las escrituras en ella en el mismo orden. Este punto asegura que cada localidad de memoria tendrá un valor inequívoco después de que varias CPU escriben en ella y después se detienen. Todos deben estar de acuerdo en quién fue el último. D.Mery 75 Arquitectura de Computadores Präsentation

Modelo de memoria [ Multiprocesadores ] Consistencia del procesador: Ejemplo: CPU-1 escribe 1A, 1B, 1C en X CPU-2 escribe 2A, 2B, 2C en X CPU-3 lee continuamente X como: 1A, 1B, 2A, 2B, 1C, 2C ó 2A, 1A, 2B, 2C, 1B, 1C ó etc. No se garantiza que toda CPU verá el mismo ordenamiento (esto es consistencia secuencial). PERO sí se garantiza verá una secuencia en la que 1B ocurra antes que 1B (el orden en que cada CPU realiza sus escrituras se observa en todas las otras CPU. D.Mery 76 Arquitectura de Computadores Präsentation

Modelo de memoria [ Multiprocesadores ] Consistencia débil: No se garantiza que las escrituras de una sola CPU se verán en orden. En el ejemplo anterior pudiera ser que una CPU lea 1B antes que 1A. Sin embargo, existen algunas variables de sincronización o una operación de sincronización, con la que todas las escrituras pendientes de terminan y no se inicia ninguna nueva hasta que todas las viejas se lleven a cabo y la sincronización termina. El vaciado si es secuencialmente consistente. D.Mery 77 Arquitectura de Computadores Präsentation

Modelo de memoria [ Multiprocesadores ] Consistencia de liberación: La consistencia débil tiene el problema de que es muy ineficiente porque debe terminar todas las operaciones de memoria pendiente y detener las nuevas hasta que terminen las actuales. La idea de la consistencia de liberación se basa en que cuando un proceso sale de una sección crítica no es necesario hacer que todas las escrituras se lleven a cabo independientemente; sólo es necesario asegurarse de que terminen antes de que cualquier programa ingrese otra vez a esa sección crítica. D.Mery 78 Arquitectura de Computadores Präsentation