170 likes | 361 Views
Arquitecturas MIMD. Parte II. Ing . José Leónidas Díaz Chow Departamento de Arquitectura y Sistemas Facultad de Electrotecnia y Computación Universidad Nacional de Ingeniería , Nicaragua. Acceso a recursos compartidos. En Multiprocesadores
E N D
Arquitecturas MIMD Parte II Ing. José LeónidasDíaz Chow Departamento de Arquitectura y Sistemas Facultad de Electrotecnia y Computación Universidad Nacional de Ingeniería, Nicaragua
Acceso a recursoscompartidos • En Multiprocesadores • Dos áreas de recursos son críticas: • Memoria: • Requerida protección de memoria (como en cualquier SO multiprogramado). • Acceso a regiones y estructuras de memoria compartidas. • Es necesario sincronización de regiones críticas: Acceso exclusivo de los recursos. • Necesario soporte de hardware para implementación de mecanismos de exclusión mútua: gates, pinlocks y semáforos. • Estructura de Interconexión: • Se convierte en recursocompartido total o parcialmente en dependencia del tipo. • Bus comúnes el máscrítico. • Se requierenmecanismos de control de flujo o métodos de arbitraje
Arbitraje del bus • La Arquitectura de bus común es muy sencilla y de bajo costo. • Obliga a acceso exclusivo durante la transacción. • Los procesadores lo emplean para acceder a Memoria (y a Entrada Salida en caso de SMPs). • Se requiere implementar mecanismos de arbitraje: lógica y controlador que concede el bus a un dispositivo específico. • Tipos de árbitro: • Arbitrio fijo: • Árbitro paralelo: Codificador/Decodificador de prioridades • Árbitro serial: Cadena de margaritas • Arbitrio dinámico: • Árbitro paralelo: Estructura dinámica y/o algoritmo de prioridades dinámicas • Árbitro serie: Cadena circular de margaritas.
Exclusión mutua • Concurrencia de la ejecución en multiprocesadores • Necesidad de acceso a estructuras de datos y del SO que son compartidas. • Requerido garantizar la coherencia • Acceso debe ser mutuamente excluyente. • Se requiere soporte por SO y por hardware: • Gateo puerta: Puerto de acceso a una estructura compartida. • Semáforo: Indicador de acceso. • Pinlocko seguro: Componente hardware que garantiza TEST&SET atómico.
Comunicación entre Procesadores • Es necesario definir formas de comunicación y sincronización de procesadores en un sistema MIMD. • Coordinaciones del SistemaOperativo • Cooperación en ejecución de unatareacomún
ComunicaciónInterprocesador • Multiprocesadores: • Uso de sistema de Entrada Salida • Los procesadores se ven entre sí como periféricos • Uso de puertos de E/S para intercambio de datos • Uso de Interrupciones para sincronización. • Área de memoria para intercambio de mensajes. • Cada procesador tiene su buzón. • Cada procesador puede poner mensajes o solicitudes a otros. • Sincronización mediante Polling o Interrupciones. • Uso de un bus de comunicación interprocesador dedicado. • Bus alternativo al bus del sistema, frecuentemente serial. • Controlador de bus auxiliargestiona la comunicación al procesador.
ComunicaciónInterprocesador • Multicomputadoras: • Pordefecto se comunicanmediantepaso de mensajes. • Forma de comunicaciónesobligatoria para todos los efectos, inclusive datos. • Mensajes son enrutados del procesadorfuente al destino. • Más o menosdesacoplado, en dependencia de la arquitectura: • MMPs: Uso de buses diseñadosespecialmente para la comunicación. • SistemasDistribuidos: Uso de los mecanismos de redes.
Coherencia de Cachés • La Jerarquía de Memoria: solución al problema de bajodesempeñoporcuello de botella en multiprocesadores de bus común. • Uso de cachés locales reducer significativamente el tráfico a la memoria central. • Política de escritura: Write through vs Write Back • Concurrencia: variables o estructuras en memoriacompartidas • Variosprocesadorestienen el mismobloque de memoria en caché local
Coherencia de Cachés • Riesgo de pérdida de coherencia de caché: • Variosprocesadorestienenmisma variable en sucaché local. • Un procesadorescribe la variable compartidadejandoinconsistentelasotrascopias. P1 P2 P3 P4 X X = 7 X X A = 5 A = 5 A = 5 A = 5 Memoria A = 5 X
Coherencia de Cachés • Requeridomantener la coherencia del dato en todaslascachés y la memoria central. • ¿Cómo lograr que los procesadores se enteren cuando su copia no es válida?: Protocolo. • Snoopyprotocols (protocolos de sondeo). • Protocolosbasados en Directorios.
Coherencia de Cachés • Protocolos de Sondeo (Snoopy protocols) • Apropiado para sistemas basados en buses. • Desempeño limitado a pocos procesadores. • Se sondeanlas transacciones de memoria en el bus. • Controlador de cachéademás del operaciones de procesador y estado de bloqueslleva control de transacciones. • Se agregan bits a cada línea de caché para saber su estado. • Se agregan líneas especiales al bus para transmitir información entre caches. • Política Write Back dificultaestatarea: Controladoresdebenanunciarcuandoescriben en un bloquemediantelíneasadicionales o simulandotransacciones en el bus.
Coherencia de Cachés • Protocolosbasados en Directorio • Recolecta y mantiene la información de todas las copias de los bloques en las cachés. • Emplea un directorio central en memoria que almacena el estado de cada bloque de caché. • Todaslas solicitudes son verificadas en el directorio central • Requiere alto ancho de banda para chequeo. • Creacuello de botella en el bus peromásligeroque el de transacciones a Memoria • Apropiado para sistemas a gran escala con complejos esquemas de interconexión.
Protocol Valid-Invalid • Protocolo de sondeo con política Write-Through: • Cada bloque en dos estados posibles: V, I. • Se carga el bloque y se pone en V. • Cuando un procesadorescribe en un bloque, el controladormantiene el estado V y manda a actualizar la memoria central mediantetransacción de escrituradel bloque. • Todos los controladoressensan la escritura en el bus, e invalidan el estado del bloque en sucaché. • CuandoProcesadorva a leer, el controladorcarga el bloquesi el estadoesInválido.
Protocol Valid-Invalid • Estados: • V: Válido (Valid) • I: Inválido (Invalid) • Eventos generados por el procesador: • PrRd (ProcesorRead) • PrWr(ProcesorWrite) • Operaciones detectadas en el bus: • BusWr • BusRd
Protocol Valid-Invalid • Con política Write-Through: • Requerimiento de elevado ancho de banda • Todas las escrituras de todos los procesadores se realiza a través del bus. • Ejemplo: procesador de 200MHz, 1 CPI y 15% instr. STORE de 8 bytes: • Cada procesador genera 30M stores o 240MB datos por segundo • Un bus de 1GB/s puede soportar sólo 4 procesadores sin saturarse • Write-through muy ineficiente para SMPs
Protocolo MSI • Política Write-Back: MSI • Estados: • Invalid (I): No usado/invalidado. • Shared(S): en varias cachés. • Modified (M): uno sólo. • Eventos generados por el procesador: • PrRd(read) • PrWr(write) • Operaciones detectadas en el bus • BusRd: Lee copia. • BusRdX: Notifica modificación de copia. • BusWB: actualiza memoria.
Protocolo MSI • Shared o Compartido(S): Bloque no ha sido modificado. Memoria principal y cero o más caches tienen copia actualizada. • Modificado (M): Solo este procesador tiene una copia válida del bloque en su cache. Bloque en memoria principal esta anticuada y ninguna otra cache tiene copia valida. Las demás copias potenciales son invalidadas vía una transacción de bus.