stringtranslate.com

Memoria compartida distribuida

En informática , la memoria compartida distribuida ( DSM ) es una forma de arquitectura de memoria donde las memorias separadas físicamente pueden direccionarse como un único espacio de direcciones compartidas . El término "compartido" no significa que haya una única memoria centralizada, sino que el espacio de direcciones es compartido, es decir, la misma dirección física en dos procesadores se refiere a la misma ubicación en la memoria. [1] : 201  El espacio de direcciones global distribuido ( DGAS ) es un término similar para una amplia clase de implementaciones de software y hardware, en el que cada nodo de un clúster tiene acceso a la memoria compartida además de la memoria privada (es decir, no compartida) de cada nodo .

Descripción general

Un sistema de memoria distribuida, a menudo llamado multicomputadora , consta de múltiples nodos de procesamiento independientes con módulos de memoria local que están conectados por una red de interconexión general. Los sistemas DSM de software se pueden implementar en un sistema operativo o como una biblioteca de programación y se pueden considerar como extensiones de la arquitectura de memoria virtual subyacente. Cuando se implementan en el sistema operativo, estos sistemas son transparentes para el desarrollador; lo que significa que la memoria distribuida subyacente está completamente oculta para los usuarios. Por el contrario, los sistemas DSM de software implementados a nivel de biblioteca o lenguaje no son transparentes y los desarrolladores generalmente tienen que programarlos de manera diferente. Sin embargo, estos sistemas ofrecen un enfoque más portátil para las implementaciones de sistemas DSM. Un sistema DSM implementa el modelo de memoria compartida en un sistema de memoria distribuida físicamente.

La DSM se puede implementar mediante software y hardware. Algunos ejemplos de hardware son los circuitos de coherencia de caché y los controladores de interfaz de red . Existen tres formas de implementar la DSM:

Ventajas

Desventajas

Comparación con el paso de mensajes

Los sistemas DSM de software también tienen la flexibilidad de organizar la región de memoria compartida de diferentes maneras. El enfoque basado en páginas organiza la memoria compartida en páginas de tamaño fijo. Por el contrario, el enfoque basado en objetos organiza la región de memoria compartida como un espacio abstracto para almacenar objetos compartibles de tamaños variables. Otra implementación que se ve comúnmente utiliza un espacio de tuplas , en el que la unidad de compartición es una tupla .

La arquitectura de memoria compartida puede implicar la separación de la memoria en partes compartidas distribuidas entre los nodos y la memoria principal, o la distribución de toda la memoria entre los nodos. Un protocolo de coherencia , elegido de acuerdo con un modelo de consistencia , mantiene la coherencia de la memoria .

Coherencia de la memoria de directorios

La coherencia de la memoria es necesaria para que el sistema que organiza el DSM pueda rastrear y mantener el estado de los bloques de datos en los nodos de las memorias que componen el sistema. Un directorio es uno de esos mecanismos que mantiene el estado de los bloques de caché que se mueven por el sistema.

Estados

Diagrama de estados de un bloque de memoria en un DSM. Un bloque es "propiedad" si uno de los nodos tiene el bloque en estado EM.
Diagrama de estados de un bloque de memoria en un DSM. Un bloque es "propiedad" si uno de los nodos tiene el bloque en estado EM.

Un DSM básico rastreará al menos tres estados entre los nodos para cualquier bloque dado en el directorio. [2] Habrá un estado que dictará que el bloque no está en caché (U), un estado que dictará que el bloque es de propiedad exclusiva o de propiedad modificada (EM) y un estado que dictará que el bloque es compartido (S). A medida que los bloques ingresan a la organización del directorio, pasarán de U a EM (estado de propiedad) en el nodo inicial. El estado puede pasar a S cuando otros nodos comiencen a leer el bloque.

Existen dos métodos principales para permitir que el sistema realice un seguimiento de dónde se almacenan en caché los bloques y en qué estado se encuentran en cada nodo. El método de solicitud-respuesta centrado en el hogar utiliza el hogar para atender las solicitudes y controlar los estados, mientras que el método centrado en el solicitante permite que cada nodo controle y administre sus propias solicitudes a través del hogar.

Solicitud y respuesta centradas en el hogar

En un sistema centrado en el hogar, el DSM evitará tener que manejar carreras de solicitud-respuesta entre nodos al permitir que solo se realice una transacción a la vez hasta que el nodo de origen haya decidido que la transacción ha finalizado, generalmente cuando el hogar ha recibido la respuesta de todos los procesadores que respondieron a la solicitud. Un ejemplo de esto es el modo de origen doméstico QPI de Intel. [3] Las ventajas de este enfoque son que es fácil de implementar, pero su estrategia de solicitud-respuesta es lenta y se almacena en búfer debido a las limitaciones del nodo de origen.

Solicitud y respuesta centradas en el solicitante

En un sistema centrado en el solicitante, el DSM permitirá que los nodos se comuniquen entre sí a voluntad a través del home. Esto significa que varios nodos pueden intentar iniciar una transacción, pero esto requiere consideraciones adicionales para garantizar la coherencia. Por ejemplo: cuando un nodo está procesando un bloque, si recibe una solicitud para ese bloque de otro nodo, enviará un NAck (Reconocimiento negativo) para indicarle al iniciador que el nodo que lo procesa no puede cumplir con esa solicitud de inmediato. Un ejemplo de esto es el modo de búsqueda de origen QPI de Intel. [3] Este enfoque es rápido, pero no evita naturalmente las condiciones de carrera y genera más tráfico de bus.

Modelos de consistencia

El DSM debe seguir ciertas reglas para mantener la coherencia en cómo se visualiza el orden de lectura y escritura entre los nodos, denominado modelo de coherencia del sistema .

Supongamos que tenemos n procesos y Mi operaciones de memoria para cada proceso i , y que todas las operaciones se ejecutan secuencialmente. Podemos concluir que ( M1 + M2 + … + Mn )!/( M1 ! M2 !… Mn !) son posibles intercalaciones de las operaciones. El problema con esta conclusión es determinar la corrección de las operaciones intercaladas. La coherencia de memoria para DSM define qué intercalaciones están permitidas.

Invocaciones y respuestas secuenciales en DSM
Invocaciones y respuestas secuenciales en DSM

Replicación

Existen dos tipos de algoritmos de replicación: replicación de lectura y replicación de escritura. En la replicación de lectura, varios nodos pueden leer al mismo tiempo, pero solo un nodo puede escribir. En la replicación de escritura, varios nodos pueden leer y escribir al mismo tiempo. Las solicitudes de escritura son manejadas por un secuenciador. La replicación de datos compartidos en general tiende a:

Sin embargo, preservar la coherencia y la consistencia puede resultar más difícil.

Consistencia de entrada y salida

Ejemplos

Véase también

Referencias

  1. ^ Patterson, David A. ; Hennessy, John L. (2006). Arquitectura informática: un enfoque cuantitativo (4.ª ed.). Burlington, Massachusetts: Morgan Kaufmann. ISBN 978-01-2370490-0.
  2. ^ Solihin, Yan (2015). Fundamentos de la arquitectura multinúcleo paralela . Boca Raton, Florida: Chapman and Hall/CRC. págs. 339–340. ISBN 9781482211184.
  3. ^ ab Sorin, Daniel J.; Hill, Mark D.; Wood, David A. (2011). Introducción a la coherencia de la memoria y la caché . Morgan & Claypool. pág. 174. ISBN 978-16-0845564-5.

Enlaces externos