Компьютерные системы с архитектурой СОМА

В системах с архитектурой СОМА память в вычислительном модуле строится как кэш-память; ее называют еще «притягивающей» памятью (attraction memory — AM). При запросе фрагмента памяти из другого вычислительного модуля поступивший фрагмент размещается как в кэш-памяти запрашивающего модуля, так и в принадлежащей ему АМ. Размещенный в АМ фрагмент может быть удален из нее, если нет места для вновь поступившего другого фрагмента.

АМ содержит для каждого фрагмента данных тег, включающий его адрес и состояние. При промахе в кэш контроллер памяти вычислительного модуля просматривает теги АМ для определения возможности извлечения требуемого фрагмента из локальной памяти АМ. При отсутствии фрагмента формируется запрос на его доставку. Для поиска фрагмента в системах наподобие KSR-1 и DDM используются специальные аппаратные средства сети межмодульных связей. В KSR-1 сеть строится как древовидная иерархия колец, в которой вычислительные модули служат листовыми элементами. В DDM сеть представляет собой древовидную иерархию шин. Эти системы называют также иерархическими СОМА. Каждый уровень древовидной структуры включает каталог, содержащий сведения о всех фрагментах, размещенных в нижележащих модулях-листьях, поэтому при поиске фрагмента необходимо просматривать каталоги вышележащих уровней древовидной структуры до тех пор, пока не будет обнаружен требуемый фрагмент.

В системах с так называемой плоской СОМА-архитектурой в каждом вычислительном модуле для указания местоположения резидентных в этом модуле фрагментов вводится каталог. В таких системах может применяться обычная высокоскоростная сеть, в отличие от специализированной сети, необходимой для иерархической СОМА-архитектуры. При промахе в АМ по адресу требуемого фрагмента определяется резидентный вычислительный модуль, в каталоге которого содержится информация о местонахождении требуемого фрагмента. В резидентный модуль направляется запрос фрагмента. Запрос вызывает передачу фрагмента или, при его отсутствии в резидентной памяти, перенаправляется согласно каталогу к месту нахождения фрагмента (рис. 27).

Компьютерные системы с архитектурой СОМА - student2.ru
Рис. 27. Структуры модулей Структуры вычислительных модулей для NUMA, иерархической и плоской COMA-архитектур

Притягивающая память АМ функционирует во многом подобно обычной кэш-памяти, однако для фрагментов АМ нет резидентного блока, в который помещается модифицированный фрагмент при его удалении из АМ. Поэтому фрагмент, удаляемый из АМ одного вычислительного модуля, должен быть помещен в АМ другого модуля. Поскольку возможно одновременное существование нескольких копий одного фрагмента, одна из копий объявляется основной; в отличие от прочих, которые могут быть затерты, если не модифицировались, основная обязательно должна быть перемещена в другую АМ. Перемещение фрагмента в АМ называют впрыскиванием; его можно сделать как в предварительно выбранный по специальному запросу вычислительный модуль, у которого есть место в АМ, так и в произвольно назначаемый модуль. В последнем случае возможно возникновение цепочки впрыскиваний, в том числе циклической, что потребует дополнительных механизмов для разрешения этих ситуаций. Еще одним решением может быть перемещение фрагмента в тот вычислительный модуль, из которого он поступил первоначально. Отношение объема памяти, используемого программой, к общему суммарному объему АМ всех модулей называется давлением. Чем меньше давление, тем больше памяти остается для копий фрагментов данных и тем меньше нагрузка на сеть передачи данных, поскольку при этом уменьшается количество промахов в АМ.

Развитием идей СОМА служат архитектуры S-COMA (Simple COMA) и MS-COMA (Multiplexed Simple COMA). В системах с архитектурой S-COMA операционная система выделяет для поступающих фрагментов особую область АМ. Ее размер кратен размеру страницы памяти. Блок управления памятью вычислительного модуля отображает только страницы локальной памяти. При первом доступе в вычислительном модуле к разделяемой странице памяти вырабатывается ошибка доступа. Операционная система отображает страницу для размещения запрошенных данных в особой области. Затем аппаратура перемещает требуемый фрагмент (обычно строку кэш-памяти) в выделенную страницу. Оставшаяся часть страницы не используется, пока модуль не запросит соответствующие строки кэш-памяти. Так как физический адрес фрагмента устанавливается в вычислительном модуле, две копии одних и тех же данных в разных модулях имеют разные адреса. Для разделяемых данных используется глобальное адресное пространство, отображение в которое в каждом модуле выполняется специальной таблицей.

В системах с архитектурой S-COMA возможна фрагментация выделенной области памяти, вызванная неполным заполнением страниц. Поэтому может потребоваться излишнее число страниц, что приведет к возрастанию нагрузки на операционную систему. Эта проблема устранена в MS-COMA, где допускается одновременное отображение множества виртуальных страниц в одну физическую.

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

В зависимости от того, преобладает в прикладной программе копирование или миграция, более эффективной оказывается либо архитектура NUMA-RC, либо Flat-COMA. Сравнение делается в предположении о равенстве аппаратных средств: вычислительные модули системы с архитектурой NUMA-RC имеют кэш третьего уровня, емкость которого равна емкости памяти АМ в модулях сопоставляемой системы с архитектурой Flat-COMA.

Наши рекомендации