stringtranslate.com

Memoria compartida distribuida

En informática , la memoria compartida distribuida ( DSM ) es una forma de arquitectura de memoria en la que las memorias físicamente separadas se pueden abordar como un único espacio de direcciones compartido . El término "compartida" 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  Espacio de direcciones global distribuido ( DGAS ), es un término similar para una amplia clase de implementaciones de software y hardware, en las que cada nodo de un clúster tiene acceso a la memoria compartida además de la memoria privada de cada nodo (es decir, no compartida). ) memoria .

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 locales conectados por una red de interconexión general. Los sistemas de software DSM 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, dichos sistemas son transparentes para el desarrollador; lo que significa que la memoria distribuida subyacente está completamente oculta a los usuarios. Por el contrario, los sistemas de software DSM 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 físicamente distribuida.

DSM se puede lograr tanto a través de software como de hardware. Los ejemplos de hardware incluyen circuitos de coherencia de caché y controladores de interfaz de red . Hay tres formas de implementar DSM:

Ventajas

Desventajas

Comparación con el paso de mensajes

Los sistemas de software DSM 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 comúnmente vista utiliza un espacio de tupla , en el que la unidad de intercambio es una tupla .

La arquitectura de memoria compartida puede implicar separar la memoria en partes compartidas distribuidas entre los nodos y la memoria principal; o distribuir toda la memoria entre nodos. Un protocolo de coherencia , elegido de acuerdo con un modelo de coherencia , mantiene la coherencia de la memoria .

Coherencia de la memoria del directorio.

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 estado 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 estado 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 nodos para cualquier bloque determinado en el directorio. [2] Habrá algún estado para dictar el bloque como sin caché (U), un estado para dictar un bloque como de propiedad exclusiva o propiedad modificada (EM) y un estado para dictar un bloque como 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 comienzan a leer el bloque.

Existen dos métodos principales para permitir que el sistema rastree dónde se almacenan en caché los bloques y en qué condiciones en cada nodo. La solicitud-respuesta centrada en el hogar utiliza el hogar para atender solicitudes y controlar estados, mientras que la centrada en el solicitante permite que cada nodo impulse 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 principal haya decidido que la transacción ha finalizado, generalmente cuando el nodo principal haya recibido todas las respuestas. respuesta del procesador a la solicitud. Un ejemplo de esto es el modo de fuente doméstica QPI de Intel. [3] Las ventajas de este enfoque son que es simple de implementar pero su estrategia de solicitud-respuesta es lenta y amortiguada debido a las limitaciones del nodo principal.

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 hogar. 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 informarle al iniciador que el nodo de procesamiento no puede cumplir con esa solicitud de inmediato. Un ejemplo de esto es el modo de búsqueda de fuente QPI de Intel. [3] Este enfoque es rápido pero no previene naturalmente las condiciones de carrera y genera más tráfico de autobuses.

Modelos de consistencia

El DSM debe seguir ciertas reglas para mantener la coherencia sobre cómo se ve el orden de lectura y escritura entre los nodos, lo que se denomina 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 entrelazamientos de las operaciones. El problema con esta conclusión es determinar la exactitud de las operaciones entrelazadas. La coherencia de la memoria para DSM define qué entrelazados están permitidos.

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

Replicación

Hay dos tipos de algoritmos de replicación. Lectura de replicación y escritura de replicación. 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 coherencia puede resultar más difícil.

Consistencia de lanzamiento y entrada

Ejemplos

Ver 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 paralelo . Boca Ratón, Florida: Chapman y Hall/CRC. págs. 339–340. ISBN 9781482211184.
  3. ^ ab Sorín, Daniel J.; Colina, Mark D.; Madera, David A. (2011). Introducción a la coherencia de la memoria y la coherencia de la caché . Morgan y Claypool. pag. 174.ISBN _ 978-16-0845564-5.

enlaces externos