Чтобы разрешить проблему, нужно добавить к каждому процессору кэшпамять (рисунок б). Кэш-память может находиться внутри микросхемы процессора, рядом с микросхемой процессора, на плате процессора. В этом случае считывать многие слова можно будет из кэша, трафик на шине снизится, и система сможет обслуживать большее количество процессоров. Кэширование дает в данном случае значительный эффект.
На рисунке в) каждый процессор имеет не только кэш, но и собственную локальную память, к которой он получает доступ через выделенную локальную шину.
SMP – симметричный мультипроцессор.
1. Invalid — элемент кэш-памяти содержит недействительные данные.
2. Shared — несколько кэшей могут содержать данную строку; основная память обновлена.
3. Exclusive — никакой другой кэш не содержит эту строку; основная память обновлена.
4. Modified — элемент действителен; основная память недействительна; копий элемента не существует.
Протокол MESI используется в процессорах для слежения за
шиной.
UMA С КОММУТИРУЕМОЙ СТРУКТУРОЙ
Перекрестная коммутация на протяжении многих десятилетий используется в телефонных коммутаторах, позволяющих произвольным образом связывать группы входящих и исходящих линий.
На каждом пересечении горизонтальной (входящей) и вертикальной (исходящей) линии находится коммутационный узел (crosspoint), который можно открыть или закрыть в зависимости от того, нужно соединить горизонтальную и вертикальную линии или нет.
На рисунке а) три узла закрыты, благодаря чему одновременно устанавливается связь между следующими парами процессор-память (001, 000), (101, 101) и (ПО, 010).
Лучшее свойство перекрестной коммутации : неблокирующая - процессор всегда сможет соединиться с нужным модулем памяти, даже если некоторые линии или узлы уже заняты (предполагается, что сам модуль памяти доступен).
Худшее свойство перекрестной коммутации : число узлов растет
как п2.
СС-NUMA
При большем количестве устройств в коммутации структура усложняется.
Доступ становится неоднородным, т.е. доступ к удаленным элементам будет больше.
Система состоит из 256 узлов, в которой каждый узел состоит из одного процессора и 16-мегабайтного ОЗУ, связанного с процессором локальной шиной. Общий объем памяти составляет 232 байт. Она разделена на 226 строк кэша по 64 байт каждая. Память статически распределена по узлам: адреса 0-16 М располагаются в узле 0, адреса 16-32 М — вузле 1 и т. д. Узлы связаны коммуникационной сетью. Сеть может быть реализована в виде решетки, гиперкуба или иметь другую топологию.
Сначала процессор, выдавший команду, передает ее диспетчеру памяти, который транслирует ее, чтобы получить физический адрес. Диспетчер памяти разделяет этот адрес на три части (рисунок б). В десятичной системе счисления эти три части представляют собой узел 36, строку 4 и смещение 8. Диспетчер памяти видит, что слово памяти, к которому производится обращение, находится в узле 36, а не в узле 20, поэтому посылает запрос через сеть в узел 36, где находится нужная строка, узнает, есть ли строка 4 в кэше, и если да, то где именно.
Когда запрос приходит в узел 36, он направляется в устройство каталога. Устройство проверяет таблицу из 218 элементов (один элемент на каждую строку кэша) и извлекает элемент 4. На рисунке в) видно, что строка отсутствует в кэше, поэтому устройство вызывает строку 4 из локального ОЗУ, отправляет ее узлу 20 и обновляет элемент каталога 4, показывая, что эта строка находится в кэше узла 20.
Роль узлов:
1. Разделяющие читатели
2. Исключительные писатели
3. Аннулирование при записи
4. Ведение учета
Состояние данных:
1. Сырые – после того, как считались.
2. Свежие – только что считанные.
3. Устаревшие – модифицированные.
SCI – расширяемый связной интерфейс. Алгоритм остановок на каталогах, в которых хранится 2-х уровневая система информации кэш-строк.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.