Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Краткая теория. Цель работы. Изучение с помощью простейшей имитационной модели типовых структур и особенностей взаимодействия памяти разного уровня современных






 

Цель работы. Изучение с помощью простейшей имитационной модели типовых структур и особенностей взаимодействия памяти разного уровня современных многопроцессорных вычислительных систем.

 

По способу организации памяти все многомашинные и многопроцессорные вычислительные системы делятся на два класса:

a) с общей памятью (SH – shared memory);

b) с распределенной памятью (DM – distributed memory).

В системах с общей памятью каждый процессор имеет полный доступ ко всему адресному пространству. Память является общим ресурсом. Такие системы называются сильно связанными.

В вычислительных системах с распределенной памятью каждый процессор имеет собственную локальную память. Процессоры объединяются в сеть и обмениваются данными в виде сообщений. Такие системы называются слабо связанными.

Общая классификация по доступу к памяти многопроцессорных и многомашинных ВС приведена на рис. 7.1.

 

ВС с общей памятью, в которых доступ к памяти производится единообразно и с одинаковым временем, называют системами с однородным доступом к памяти и обозначают UMA (Uniform Memory Access). К таким ВС относятся симметричные мультипроцессорные системы SMP, в которых все процессоры связаны посредством шины или высокоскоростной сетью соединений и работают в едином виртуальном и физическом адресном пространстве. Другим классом ВС с памятью типа UMA являются векторно-конвейерные мультипроцессорные системы PVP. К ним относятся, в первую очередь, суперкомпьютеры семейства Cray.

 
 

Недостатком архитектуры UMA является сложность масштабирования, т.е. увеличения числа процессоров и устройств памяти.

Другой тип ВС с общей памятью – системы с неоднородным доступом к памяти NUMA (Non-Uniform Memory Access). В них каждый процессор имеет свою локальную память, например, кэш. Все процессоры также работают в едином адресном пространстве.

Внутри класса NUMA существуют разновидности организации памяти: COMA, CC-NUMA, NCC-NUMA.

COMA – архитектура, содержащая только кэш-памяти. Локальная память каждого процессора построена как большая кэш. Кэш-памяти всех процессоров в совокупности являются глобальной памятью системы. Данные не привязаны к определенному модулю памяти и переносятся в кэш того процессора, который последним их запросил. Последняя копия элемента данных из кэша никогда не удаляется. Для переноса данных из одного кэша в другой операционная система не задействуется, а используются каталоги кэшей.

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

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

 
 

Другой ветвью классификации являются многомашинные или мультикомпьютерные системы и комплексы, в которых используется архитектура без прямого доступа к удаленной памяти NORMA (No Remote Memory Access). Такая организация применяется в кластерных вычислительных системах (Clusters of Workstations - COW) и в системах с массовой параллельной обработкой MPP.

 

Рис. 7.2. Мультипроцессорная ВС с распределенной памятью

 

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

 
 

Кэш-память каждого процессора может содержать данные двух типов: частные и разделяемые. Частные данные используются только одним процессором, а разделяемые - несколькими процессорами и загружаться сразу в несколько кэшей.

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

Когерентность можно обеспечить при соблюдении следующих условий:

1)если чтение и запись в одну и ту же ячейку памяти достаточно отделены друг от друга по времени;

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

Эти условия регламентируются и поддерживаются системными протоколами. Такие протоколы называются протоколами когерентности кэш-памяти. Существует два класса протоколов:

1) наблюдения;

2) на основе справочников.

Протоколы наблюдения являются наиболее распространенными в современных системах, так как они используют структуру, подобную архитектуре современных ЭВМ: процессоры с кэш-памятью, соединенные шиной (сетью) с общей оперативной памятью.

Каждый кэш хранит строку данных и информацию о ее состоянии (признак):

a) разделяемая или нет;

b) модифицирована или нет;

c) наличие в кэш блока ОП.

Кэши располагаются на общей (разделяемой) шине. Контроллер каждой локальной памяти содержит блок слежения за системной шиной, который контролирует операции записи. При необходимости обновления информации в некотором кэше его процессор захватывает шину и передает по ней адрес строки. Все остальные процессоры анализируют этот адрес и проверяют, нет ли у них такой строки. Если она есть, то необходимо скорректировать свою информацию. Доступ к шине строго последовательный, поэтому все операции выполняются последовательно.

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

В любых системах основные проблемы возникают при записи в разделяемую строку. Эта операция может выполняться одним из двух методов (протоколов):

1) записью с аннулированием;

2) записью с обновлением.

 

1. Запись с аннулированием

Если какой-либо процессор производит изменения в одной из строк своей локальной памяти, все имеющиеся копии этой строки в других локальных блоках помечаются как недостоверные или аннулируются (бит достоверности обнуляется). Если другой процессор обращается к такой строке, то происходит кэш-промах и замещение корректным значением из той локальной памяти, где произошла модификация данных.

 

2. Запись с обновлением

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

Рассмотренные методы имеют следующие достоинства и недостатки. Первый из них приостанавливает работу процессоров из-за конфликтов, а второй – требует увеличения полосы пропускания памяти. В последнем случае можно снизить интенсивность обмена за счет использования соответствующего признака строки («разделяемая» или нет). Наличие такого признака при записи с аннулированием также ускоряет работу системы (если строка не разделяемая, то аннулирование не нужно).

В процессе выполнения программ статус строки может меняться. Если один из процессоров обнаружил, что другой обращается к неразделяемой строке в его кэше (по совпадению адресов оперативной памяти), то признак блока заменяется на «разделяемый».

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

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.