Arquitecturas Paralelas 12-13

Slides:



Advertisements
Presentaciones similares
Capítulo I Gestión de E/S 1.- Gestión de E/S 2.- Hardware de E/S 3.- Software de E/S.
Advertisements

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.
III - Gestión de memoria
Multiprocesadores 3.1 Dominios de aplicación
Arquitectura de Computadores I
Base de Datos Distribuidas FUNDAMENTOS DE BASES DE DATOS DISTRIBUIDAS
PROGRAMACIÓN PARALELA Tema 5: Análisis de algoritmos paralelos
Microprocesadores para comunicaciones Escuela Técnica Superior de Ingenieros de Telecomunicación Organización y estructura de las memorias caché.
SERVIDOR DNS Y WINS INTEGRANTES: Farroñan Beltran Brenher
Ana Lucia Farfan Estrada. Angela Aybar Rengifo.
Arquitecturas Paralelas 12-13
Sistemas Distribuidos y Paralelos
Introducción a los Sistemas Operativos Memoria Virtual
Departamento de Ingeniería de Sistemas Universidad de Antioquia
Sistemas Operativos Distribuidos
Memoria Compartida Distribuida
SISTEMAS DE MEMORIA DEL COMPUTADOR
Tema II Unidad de memoria. 2 Unidad de memoria 2.1 Definiciones y conceptos básicos Localización Capacidad Unidad de transferencia
S.O. Multiusuario, red. Servicio: Cliente/Servidor, p2p
Arquitecturas Paralelas IF - EHU Arquitecturas Paralelas 7. Coherencia de Datos en computadores DSM - Introducción - Directorios de coherencia: MP/MC -
EL Sistemas Digitales Ing. José Alberto Díaz García Escuela de Ingeniería Electrónica Arquitectura Segmentada Pipeline (Segmentación)
UPV-EHU / ATC Arquitecturas Paralelas Sincronización de procesos en sistemas SMP - Introducción - Exclusión mutua - Sincronización mediante eventos.
Algorítmo de Mapeo Directo
Servidores de nombres de dominio (DNS)
PROCESAMIENTO PARALELO.  Organización lógica ◦ Visión que tiene el programados  Capacidad de expresar tareas paralelas (Estructura de control)  Método.
Universidad de SonoraArquitectura de Computadoras1 PROGRAMA CION PARALELA Y DISTRIBUIDA PRESENTA: JESUS BECERRIL PACHECO MODELOS DE ACCESO A LA MEMORIA.
Arquitectura del Computador
Vista General del Funcionamiento del Computador y sus Interconexiones
HILOS Y COMUNICACIÓN ENTRE PROCESOS
Tema 10: Gestión de Memoria
Conceptos generales: Concurrencia: Existencia simultánea de varios procesos en ejecución. IMPORTANTE: EXISTENCIA SIMULTÁNEA NO IMPLICA EJECUCIÓN SIMULTÁNEA.
Algoritmos Distribuidos Semana 1. Parte 2 Comunicación por Pase de Mensajes Claudia León Universidad Central de Venezuela Facultad de Ciencias Escuela.
PROGRAMACIÓN PARALELA Tema 4: Metodología de la programación
OMAR SANCHEZ ROBLES HECTOR PEREZ GARCIA. “Sistemas de cómputo compuesto por un gran número de CPU´s conectados mediante una red de alta velocidad”, Tanenbaum.
Estructura y Tecnología de Ordenadores Noviembre 2004.
BASE DE DATOS BY: Julián Villar Vázquez.
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.),
Overview Sistemas Computacionales
Asignación de Espacio No Contiguo
Soporte HW para Administración de Memoria Cecilia Hernández
EL SISTEMA OPERATIVO.
Arquitectura NFS El servidor NFS exporta uno o más directorios
Planificación de Procesos
5. Sistemas de archivos avanzados1 Tema 5: Sistemas de Archivos Avanzados Resumen: –Sistema de archivos distribuido –File Replication Service.
TEMA 10. SISTEMAS OPERATIVOS DISTRIBUIDOS
Arquitecturas Paralelas
Teoría de Sistemas Operativos Sincronización Procesos Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz
Telecomunicaciones y Trabajo Distribuido. Sistema Distribuido Recursos Servidor Red Servidor Nodo ANodo C Nodo B.
BASES DE DATOS DISTRIBUIDAS
Teoría de Sistemas Operativos Departamento de Electrónica 2º Semestre, 2002 Gabriel Astudillo Muñoz
Tema 5: Multiprocesadores
Estructura de los Sistemas Operativos
Teoría de Sistemas Operativos Sistema de I/O. 2 Introducción Una de las funciones principales del sistema operativo es el control de todos los dispositivos.
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 20 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.
Teoría de Sistemas Operativos Sistemas distribuidos.
Protocolos de Sondeo SNOOPY
Luis Villalta Márquez. Servidores de nombres de dominio (DNS)
Jorge De Nova Segundo. Clientes DNS Se puede considerar que un resolver es cualquier software capaz de preguntar a un servidor DNS e interpretar sus respuestas.
INTERRUPCIONES – ABRAZO MORTAL
Republica Bolivariana de Venezuela Universidad Alonso de Ojeda Facultad de Ingeniería Escuela de Computación Ing. Prof. Leonel Sequera Entrada y Salidas.
Rafael Luis Camiña Cultrera
Conociendo el modelo Cliente-Servidor
Sistemas Distribuidos Conceptos Básicos Propiedades MSI. Nancy A. Olivares Ruiz.
Administración de Base de Datos Recuperación Prof Mercy Ospina Torres
Pontificia Universidad Católica de Chile
Gestión de Memoria – Parte 2
Arquitectura de Computadores Clase 18 Memoria Caché: Fundamentos IIC 2342 Semestre Rubén Mitnik Pontificia Universidad Católica de Chile Escuela.
Arquitectura de Computadores
Transcripción de la presentación:

Arquitecturas Paralelas 12-13 3. Coherencia de los datos en multiprocesadores SMP - Introducción - Protocolos de tipo snoopy - Protocolos de invalidación - Protocolos de actualización - Atomicidad Arquitecturas Paralelas 12-13

Arquitecturas Paralelas 12-13 Introducción  La memoria de un computador está organizada jerárquicamente: Reg. MC1 MC2... MP Disco + velocidad + capacidad  Los accesos a memoria no son aleatorios: t → @A t + ∆t →@A t → @A t + 1 → @A+1 Arquitecturas Paralelas 12-13

Arquitecturas Paralelas 12-13 Introducción Reg. MC1 MC2... MP Disco palabra bloque  Cada nivel de memoria es un subconjunto del anterior. Objetivo: dado que no caben todos los datos, traeremos a la cache aquellos datos que, con mayor probabilidad, se vayan a utilizar. La unidad de transferencia es el bloque (line): N palabras de direcciones contiguas. Arquitecturas Paralelas 12-13

Arquitecturas Paralelas 12-13 Introducción Reg. MC1 MC2... MP Disco  Se trabaja con copias de los datos. ¿Cómo se mantienen iguales (coherentes) esas copias? Política de escritura. write-through: los cambios se hacen en todas las copias, genera mucho tráfico en el bus. write-back: los cambios se hacen solo en niveles inferiores; las copias se actualizan en memoria principal cuando hay que reemplazar los datos. Arquitecturas Paralelas 12-13

Arquitecturas Paralelas 12-13 Introducción  En multiprocesadores SMP, se utilizan memoria compartida y variables compartidas para comunicar procesos. Por lo tanto, el número de copias de los bloques de datos puede ser mayor (P+1) y las copias no dependen de una única unidad de control. Reg. MC1 MC2... MP Disco Arquitecturas Paralelas 12-13

Arquitecturas Paralelas 12-13 Introducción  Aparecen copias de un bloque de datos: - porque se comparten variables (shared) - porque están en el mismo bloque, aunque no se compartan los datos (falsa compartición) X Y Z T bloque de datos variables del procesador P1 variables del procesador P2  ¿Cómo se mantendrán todas esas copias coherentes cuando cambia una de ellas? Arquitecturas Paralelas 12-13

Arquitecturas Paralelas 12-13 Introducción  El sistema de memoria tiene que ser coherente: todos los procesos tienen que utilizar la misma información y actualizada.  Se dice que un sistema es coherente si: - al leer una variable, se obtiene el último valor escrito en esa variable (si ha transcurrido suficiente tiempo desde la escritura). - todas las escrituras sobre una variable se “ven” en el mismo orden en todos los procesadores. Arquitecturas Paralelas 12-13

Arquitecturas Paralelas 12-13 Introducción  Hay dos estrategias para mantener coherentes los sistemas de memoria compartida: Sistemas SMP: pocos procesadores, memoria centralizada, bus → protocolos de tipo snoopy Sistemas DSM: muchos procesadores, memoria distribuida, red → directorios de coherencia Arquitecturas Paralelas 12-13

Arquitecturas Paralelas 12-13 Protocolos snoopy  Para la comunicación entre los procesadores de un sistema SMP y su memoria se utiliza un bus. El bus es una red centralizada, y, por lo tanto, todas las transferencias de datos son “públicas”. ¿Cómo se puede saber que una variable que está en nuestra cache se necesita o cambia en otro procesador? >> Espiando el bus para saber qué hacen los demás y enviando señales de control especiales a todos los procesadores por medio del bus. Arquitecturas Paralelas 12-13

Arquitecturas Paralelas 12-13 Protocolos snoopy  ¿Qué hay que hacer con una copia de un bloque si cambia en otro procesador? A=4 mem. principal cache wr A,#3 - Como la información ya no se puede utilizar las copias se invalidan.   A=3 INV A protocolos de invalidación Arquitecturas Paralelas 12-13

Arquitecturas Paralelas 12-13 Protocolos snoopy  ¿Qué hay que hacer con una copia de un bloque si cambia en otro procesador? A=4 mem. principal cache wr A,#3 - La información de las copias se actualiza con el nuevo valor. A=3 BC A, 3 protocolos de actualización Arquitecturas Paralelas 12-13

Arquitecturas Paralelas 12-13 Protocolos snoopy  Para gestionar las copias de los bloques de datos, se añade información de control en el directorio de la cache. Se utilizan esos bits de control para definir los estados de los bloques. Se utilizan los 5 estados siguientes : I inválido E exclusivo: una sóla copia y coherente con MP M modificado: una sóla copia y no coherente con MP S compartido: varias copias, todas coherentes O propietario: varias copias (una O, las otras S) no coherentes con MP Arquitecturas Paralelas 12-13

Arquitecturas Paralelas 12-13 Protocolos snoopy  Para definir esos 5 estados hacen falta 3 bits en el directorio de la cache: valid dirty shared 0 - - I 1 0 0 E 1 0 1 S 1 1 0 M 1 1 1 O Arquitecturas Paralelas 12-13

Arquitecturas Paralelas 12-13 Protocolos snoopy  Para gestionar los estados de los bloques de datos y generar las señales de control el snoopy tiene que espiar dos fuentes de información: 1. las acciones del procesador local 2. las acciones correspondientes al resto de procesadores que aparecen en el bus snoopy P C Arquitecturas Paralelas 12-13

Arquitecturas Paralelas 12-13 Protocolos snoopy 1. Acciones del procesador local: PR @ El procesador lee una palabra. Si no está en cache habrá que pedir el bloque → BR @ PW @,dat El procesador escribe una palabra. Hay que invalidar o actualizar el resto de las copias del sistema: INV @ o BC @,dat. Además, si es fallo, habrá que pedir el bloque (BR + INV/BC). Arquitecturas Paralelas 12-13

Arquitecturas Paralelas 12-13 Protocolos snoopy 2. Acciones de otros procesadores: BR @ Otro procesador ha pedido un bloque. Si está en la cache local, actualizar el estado… INV @ Un procesador ha generado la señal para invalidar un bloque concreto. Si está en la cache, hay que invalidar el bloque. BC @,dat Un procesador ha generado la señal para actualizar una palabra. Si está en la cache… Arquitecturas Paralelas 12-13

Arquitecturas Paralelas 12-13 Protocolos snoopy 3. Otras señales de control: BW Escritura de un bloque en memoria principal (WB) BW* Escritura de una palabra en memoria principal (WT)  En función de los estados, política de escritura, estrategia para gestión de copias, etc. Se obtienen distintos protocolos de tipo snoopy. Arquitecturas Paralelas 12-13

Protocolos de invalidación (1) Protocolo MSI (Silicon Graphics) PW (BR,INV) (INV) - PW PR (BR) M S I PR PW BR INV I, - S M INV (BW) BR (BW) -BR acierto. fallo S BR M BR,INV S M INV S I M M S I BW BW Arquitecturas Paralelas 12-13

Protocolos de invalidación (1)  Ojo: el protocolo de coherencia tiene que generar el menor tráfico posible. M: MC1 → MP → MC2 MC1 → MP, MC2  En algunos casos hay más de una opción para traer un bloque. S: MCi, MCj.... / MP → MCk Arquitecturas Paralelas 12-13

Protocolo de invalidación (2) Protocolo MESI (Illinois): estado E / línea de control sh PW (BR,INV) - PW (INV) PR PR nsh (BR) PR sh PR PW BR INV I, - E S M M S I E INV (BW) BR (BW) -BR BR acierto fallo nsh: E sh: S BR M BR,INV E M S I BW S M M INV Arquitecturas Paralelas 12-13

Protocolo de invalidación (3) Protocolo MOSI (Berkeley): estado O PW (BR,INV) (INV) - PW INV (BW) -BR BR PR (BR) PR PW BR INV I, - S M O M S I O acierto fallo S BR M BR,INV M S M INV S I BW O O M INV O Arquitecturas Paralelas 12-13

Protocolos de actualización (1) Protocolo MSE(I) (Firefly): línea de control sh PR PR nsh (BR) PR sh PW - PW PW nsh (BC) PW sh (BR) (BR,BC) PR PW BR BC - E S M M S E acierto fallo nsh: E sh: S BR BR BR,BC nsh: M sh: S BR (BW) -BR-BC BR S M E M S BW nsh: E sh: S BC Arquitecturas Paralelas 12-13

Protocolos de actualización (2) Protocolo MOES(I) (Dragon): sh línea de control PR PW BR BC - E S M O acierto fallo BR nsh: E sh: S BR BR,BC nsh: M sh: O O M S E M S - BC nsh: M sh: O O S Arquitecturas Paralelas 12-13

Arquitecturas Paralelas 12-13 Resumen  Resumen El snoopy es hardware de control específico de las caches y se utiliza en sistemas SMP para mantener la coherencia de los datos. Espía las operaciones del procesador local y las del resto de procesadores (gracias al bus). Actualiza los estados de los bloques de datos en la cache, y genera señales de control especiales para avisar al resto de los snoopy-s. Cuando cambia el contenido de una copia (una escritura), hay dos opciones: invalidar el resto de las copias, o actualizarlas. Arquitecturas Paralelas 12-13

Arquitecturas Paralelas 12-13 Resumen  Resumen Se pueden definir varios protocolos de coherencia en función de los estados, políticas de escritura etc. que se utilizan. Hay que intentar minimizar el tráfico que se genera de datos y de control. Importante: cuando un bloque pasa de estado M/O a estado E/S hay que actualizar la memoria principal (y, por supuesto, cuando se produce un remplazo de un bloque modificado). Arquitecturas Paralelas 12-13

Controlador de coherencia Para mantener la coherencia el hardware tiene que controlar tanto las acciones del procesador como del “bus”. Las peticiones para trabajar con la cache pueden venir simultáneamente del procesador local y del “bus”. snoopy P C El snoopy es un algoritmo distribuido y por definición, no atómico; por tanto, pueden aparecer varios problemas. Veamos las características físicas de un determinado controlador de coherencia, para entender cómo se resuelven algunos problemas. Arquitecturas Paralelas 12-13

Controlador de coherencia system bus Cache data RAM tags + state snoopy Bus side controller compar Processor side controller P Cmd Addr proc. Write-back buffer Data buffer tag state to controller data addr contr MC Replicar el directorio de la cache, uno para el procesador y el otro para las operaciónes del “bus”. Un bloque de datos puede estar también en el búfer de escritura: hay que replicar el hardware de búsqueda. Arquitecturas Paralelas 12-13

Controlador de coherencia system bus Cache data RAM tags + state snoopy Bus side controller compar Processor side controller P Cmd Addr proc. Write-back buffer Data buffer tag state to controller data addr contr MC ¿Cuánto tiempo hay que esperar a la respuesta de los snoopys? - tiempo fijo (max.) - tiempo variable (el necesario) Más líneas de control en el bus: sh, dirty, inh... Arquitecturas Paralelas 12-13

Controlador de coherencia  El problema principal es la falta de atomicidad: se pueden mezclar acciones de distintos procesadores sobre el mismo bloque de datos. P.e., dos procesadores, a la vez, solicitan el mismo bloque de datos. Si en ese momento no hay ninguna copia en el sistema (sh = 0), ambos cargarán el bloque en estado E! O, dos procesadores escriben a la vez en su cache en un bloque que está en estado S, por lo que se anulan mutuamente sus copias! Arquitecturas Paralelas 12-13

Controlador de coherencia  Una simplificación: la utilización del bus es atómica. Para ello, dos señales de control: BRQ (bus request): quiero utilizar el bus. BGR (bus grant): el bus es para ti.  A pesar de todo, la atomicidad no está garantizada, y por lo tanto, pueden ocurrir carreras (races): llegar, siguiendo un algoritmo, a un estado incorrecto, debido a que el algoritmo no se ha ejecutado de manera atómica. Arquitecturas Paralelas 12-13

Arquitecturas Paralelas 12-13 Carreras  Solución: Además de la atomicidad de las operaciones del bus (BRQ, BGR), añadir estados transitorios al protocolo de coherencia. Los estados transitorios no se introducen en el directorio (a nivel de bloque) sino que son estados del controlador. Arquitecturas Paralelas 12-13

Controlador de coherencia P MC data addr contr Bus side controller tags + state snoopy Cache data RAM tags + state proc. Processor side controller compar to controller tag Write-back buffer compar to controller state Cmd Addr Data buffer Addr Cmd system bus Arquitecturas Paralelas 12-13

Arquitecturas Paralelas 12-13 Carreras BR PW PR PW/PR PR/BR INV BR (BW) INV (BW) M S I E Protocolo MESI  IM / SM / ISE  BRQ / BGR BGR (BR,INV) BGR (INV) IM SM ISE INV PW (BRQ) PW (BRQ) PR (BRQ) BGR (BR) nsh BGR (BR) sh Arquitecturas Paralelas 12-13

Arquitecturas Paralelas 12-13 Carreras  Otros problemas que suelen aparecer en algoritmos distribuidos: Deadlock: el sistema se bloquea para siempre no puede ni continuar ni retroceder. Livelock: el sistema no esta bloqueado pero repite lo mismo una y otra vez, y no puede continuar. Starvation: ciertos snoopy-s no consiguen nunca llevar a cabo las operaciones correspondientes porque siempre se adelantan los demás. Arquitecturas Paralelas 12-13

Arquitecturas Paralelas 12-13 Jerarquía de buses  En sistemas SMP, el bus se utiliza para la comunicación entre memoria y procesos. Que el acceso a memoria sea centralizado supone muchos problemas porque el bus se satura fácil → el número de procesadores es limitado. La solución general es dividir la memoria y así se obtienen sistemas DSM, donde se utilizan redes de comunicación. En esos sistemas no se utilizan los snoopy-s. Arquitecturas Paralelas 12-13

Arquitecturas Paralelas 12-13 Jerarquía de buses  Como adelanto, veamos un caso en el que la red de comunicaciones es una jerarquía de buses y se puede utilizar el snoopy. snoopy local MP SMP P C MP B1 B2 K Hardware para coherencia global Arquitecturas Paralelas 12-13

Arquitecturas Paralelas 12-13 Jerarquía de buses  Los controladores de coherencia son un estilo de “directorios” que almacenan información sobre los bloques. Se dividen en dos partes: KL: información de bloques locales que se han llevado a caches remotas (estados) KR: información de bloques remotos traídos a caches locales (estados/datos) Arquitecturas Paralelas 12-13

Arquitecturas Paralelas 12-13 Jerarquía de buses B1 MP MC rd, fallo S M S S E S BR @ KL KR @ E S S S S B2 Arquitecturas Paralelas 12-13

Arquitecturas Paralelas 12-13 Jerarquía de buses KL KR B1 MP MC S wr I INV @ M I INV @ M INV @ I INV @ B2 Arquitecturas Paralelas 12-13