stringtranslate.com

Распределенная общая память

В информатике распределенная общая память ( DSM ) — это форма архитектуры памяти , в которой физически разделенные памяти могут быть адресованы как единое общее адресное пространство . Термин «общий» не означает, что существует единая централизованная память, а означает, что адресное пространство является общим, т. е. один и тот же физический адрес на двух процессорах относится к одному и тому же месту в памяти. [1] : 201  Распределенное глобальное адресное пространство ( DGAS ) — это аналогичный термин для широкого класса программных и аппаратных реализаций , в которых каждый узел кластера имеет доступ к общей памяти в дополнение к частной (т. е. не общей) памяти каждого узла .

Обзор

Система распределенной памяти, часто называемая мультикомпьютером , состоит из нескольких независимых узлов обработки с локальными модулями памяти, которые соединены общей сетью взаимосвязей. Программные системы DSM могут быть реализованы в операционной системе или как программная библиотека и могут рассматриваться как расширения базовой архитектуры виртуальной памяти . При реализации в операционной системе такие системы прозрачны для разработчика; это означает, что базовая распределенная память полностью скрыта от пользователей. Напротив, программные системы DSM, реализованные на уровне библиотеки или языка, не являются прозрачными, и разработчикам обычно приходится программировать их по-другому. Однако эти системы предлагают более переносимый подход к реализациям систем DSM. Система DSM реализует модель общей памяти в физически распределенной системе памяти.

DSM может быть достигнута как с помощью программного обеспечения, так и с помощью оборудования. Примерами оборудования являются схемы когерентности кэша и контроллеры сетевого интерфейса . Существует три способа реализации DSM:

Преимущества

Недостатки

Сравнение с передачей сообщений

Системы DSM программного обеспечения также обладают гибкостью для организации разделяемой области памяти различными способами. Подход на основе страниц организует разделяемую память в страницы фиксированного размера. Напротив, подход на основе объектов организует разделяемую область памяти как абстрактное пространство для хранения разделяемых объектов переменного размера. Другая часто встречающаяся реализация использует пространство кортежа , в котором единицей разделения является кортеж .

Архитектура общей памяти может включать разделение памяти на общие части, распределенные между узлами и основной памятью; или распределение всей памяти между узлами. Протокол согласованности , выбранный в соответствии с моделью согласованности , поддерживает согласованность памяти .

Согласованность памяти каталога

Когерентность памяти необходима, чтобы система, организующая DSM, могла отслеживать и поддерживать состояние блоков данных в узлах по всей памяти, составляющей систему. Каталог — один из таких механизмов, который поддерживает состояние блоков кэша, перемещающихся по системе.

Штаты

Диаграмма состояний блока памяти в DSM. Блок «принадлежит», если один из узлов имеет блок в состоянии EM.
Диаграмма состояний блока памяти в DSM. Блок «принадлежит», если один из узлов имеет блок в состоянии EM.

Базовый DSM будет отслеживать по крайней мере три состояния среди узлов для любого заданного блока в каталоге. [2] Будет некоторое состояние, определяющее блок как некэшированный (U), состояние, определяющее блок как исключительно принадлежащий или измененный принадлежащий (EM), и состояние, определяющее блок как общий (S). По мере того, как блоки поступают в организацию каталога, они перейдут из U в EM (состояние владения) в начальном узле. Состояние может перейти в S, когда другие узлы начнут читать блок.

Существует два основных метода, позволяющих системе отслеживать, где кэшируются блоки и в каком состоянии на каждом узле. Запрос-ответ, ориентированный на дом, использует дом для обслуживания запросов и управления состояниями, тогда как запросчик-ориентированный позволяет каждому узлу управлять и управлять своими собственными запросами через дом.

Запрос и ответ, ориентированные на дом

В системе, ориентированной на дом, DSM избежит необходимости обрабатывать гонки запросов-ответов между узлами, позволяя выполнять только одну транзакцию за раз, пока домашний узел не решит, что транзакция завершена — обычно, когда домашний узел получил ответ каждого отвечающего процессора на запрос. Примером этого является режим Intel QPI home-source. [3] Преимущества этого подхода в том, что он прост в реализации, но его стратегия запроса-ответа медленная и буферизованная из-за ограничений домашнего узла.

Запрос и ответ, ориентированные на запрашивающего

В системе, ориентированной на запрос, DSM позволит узлам общаться друг с другом по своему усмотрению через дом. Это означает, что несколько узлов могут попытаться начать транзакцию, но это требует дополнительных соображений для обеспечения согласованности. Например: когда один узел обрабатывает блок, если он получает запрос на этот блок от другого узла, он отправит NAck (отрицательное подтверждение), чтобы сообщить инициатору, что обрабатывающий узел не может выполнить этот запрос немедленно. Примером этого является режим Intel QPI snoop-source. [3] Этот подход быстрый, но он не предотвращает состояния гонки естественным образом и генерирует больше трафика шины.

Модели согласованности

DSM должна следовать определенным правилам для поддержания согласованности порядка чтения и записи между узлами, называемой моделью согласованности системы .

Предположим, что у нас есть n процессов и Mi операций памяти для каждого процесса i , и что все операции выполняются последовательно. Мы можем заключить, что ( M1 + M2 + … + Mn )!/( M1 ! M2 !… Mn !) являются возможными чередованиями операций. Проблема с этим выводом заключается в определении корректности чередующихся операций. Согласованность памяти для DSM определяет, какие чередования разрешены.

Последовательные вызовы и ответы в DSM
Последовательные вызовы и ответы в DSM

Репликация

Существует два типа алгоритмов репликации. Репликация чтения и репликация записи. При репликации чтения несколько узлов могут читать одновременно, но только один узел может писать. При репликации записи несколько узлов могут читать и писать одновременно. Запросы на запись обрабатываются секвенсором. Репликация общих данных в целом имеет тенденцию:

Однако сохранение согласованности и последовательности может стать более сложной задачей.

Согласованность выпуска и ввода

Примеры

Смотрите также

Ссылки

  1. ^ Паттерсон, Дэвид А.; Хеннесси , Джон Л. (2006). Архитектура компьютера: количественный подход (4-е изд.). Берлингтон, Массачусетс: Morgan Kaufmann. ISBN 978-01-2370490-0.
  2. ^ Солихин, Ян (2015). Основы параллельной многоядерной архитектуры . Бока-Ратон, Флорида: Chapman and Hall/CRC. стр. 339–340. ISBN 9781482211184.
  3. ^ ab Sorin, Daniel J.; Hill, Mark D.; Wood, David A. (2011). Учебник по согласованности памяти и когерентности кэша . Morgan & Claypool. стр. 174. ISBN 978-16-0845564-5.

Внешние ссылки