Академический Документы
Профессиональный Документы
Культура Документы
Это означает, что каждый процессор может адресовать как свою локальную память, так и память,
находящуюся на других узлах, однако время доступа к удаленным ячейкам памяти будет в
несколько раз больше, нежели время доступа к локальной памяти.
Обычно вся система работает под управлением единой ОС. Поскольку логически программисту
предоставляется абстракция общей памяти, то модель программирования, используемая в
системах NUMA, обычно в известной степени аналогична той, что используется на симметричных
мультипроцессорных системах, и организация межпроцессного взаимодействия опирается на
использование разделяемой памяти.
CC-NUMA
кэш-памяти по 26 (64) байта каждая. Каталог каждого процессорного блока содержит 218
элементов длиной в 9 бит с записями для каждой строки кэша, т.е. объем памяти каталога равен
9×218 бит, что составляет 1,76% от объема памяти одного процессорного блока.
Принцип работы. Рассмотрим, как работает мультипроцессор на основе каталога, предполагая,
что:
• затребованная строка может содержаться только в одной кэш-памяти, т.е. других ее копий не
существует.
• контроллер переводит команду в физический адрес, разделяя его на три части – адресуемый
узел А2 (8 бит), адресуемая строка S1 (18 бит) и смещение С (6 бит);
• поскольку в исходном узле А1 строка отсутствует, то узлу А2 через сеть направляется запрос;
Рассмотрим другую ситуацию, когда из узла А1 запрашивается строка S2, а в каталоге узла А2
указано, что строка S2 находится в кэш-памяти узла А3. В этом случае выполняются следующие
действия:
• из узла А2 посылается сообщение в узел А3, чтобы строка S2 из него была передана в узел А1;
• обновляется элемент каталога S2 узла А3, чтобы зафиксировать, что строка уже находится в узле
А1.
• заменить номер процессорного блока битовым отображением: один бит на процессорный блок;
• хранить в каждом элементе каталога 8-битное поле, чтобы связать все копии строки всех кэшей.
Об изменении строки необходимо сообщить в исходный процессорный блок даже в том случае,
когда в кэш-памяти существует только одна копия строки. При наличии нескольких копий
изменение одной из них требует объявления всех остальных копий недействительными.
В архитектуре COMA локальная память каждого процессора считается частью большой кэш-
памяти. Совокупность кэш-памяти всех процессоров рассматривается как глобальная память
системы, причем собственно глобальная память отсутствует.
Принципиальная особенность концепции COMA выражается в динамике.
С другой стороны, если единственная переменная или две различные переменные, хранящиеся в
одном блоке одной и той же кэш-памяти, требуются двум процессорам, этот блок должен
перемещаться между процессорами туда и обратно при каждом доступе к данным. Такие
эффекты могут зависеть от деталей распределения памяти и приводить к непредсказуемым
ситуациям.
Архитектура COMA реализована в целом ряде ВС, в частности в системах KSR-1 и DDM.
COMA имеет тенденцию быть более гибким, чем CC-NUMA, потому что COMA прозрачно
поддерживает миграцию и репликацию данных без необходимости в ОС.
Машины COMA дороги и сложны в сборке, потому что им требуется нестандартное
оборудование для управления памятью, а протокол когерентности сложнее реализовать.
Удаленный доступ в COMA часто медленнее, чем в CC-NUMA, поскольку для поиска
данных необходимо пройти через древовидную сеть.