Организация ЭВМ и систем / 481-550
.pdf
Мультипроцессорная когерентность кэш-памяти 5 2 1
в ограниченном числе кэшей — одновременно может быть не более чем п копий строки, при этом число указателей в записях справочника уменьшается до п (n < N). Чтобы однозначно идентифицировать кэш-память, хранящую копию, указатель вместо одного бита должен состоять из log2N биT, а общая длина указателей в каждой записи справочника вместо N бит будет равна пlog2N бит. При постоянном значении п темпы роста коэффициента сложности ограниченного справочника по мере увеличения размера системы ниже, чем в случае линейной зависимости.
Когда одновременно требуется более чем « копий, контроллер принимает решение, какие из копий сохранить, а какие аннулировать, после чего производятся соответствующие изменения в указателях записей справочника.
Метод сцепленных справочников также имеет целью сжать объем справочника. В немдля хранения записей привлекается связный список, который может быть реализован как односвязный (однонаправленный) и двусвязный (двунаправленный).
Рис. 11.18. Протоколобеспечения когерентности кэш-памяти сосцепленным справочником
В односвязном списке (рис. 11.18) каждая запись справочника содержит указатель на копию строки в одном из локальных кэшей. Копии одноименных строк
вразных кэшах системы образуют однонаправленную цепочку. Для этого в их тегах предусмотрено специальное поле, куда заносится указатель на кэш-память, содержащую следующую копию цепочки. В тег последней копии цепочки помещается специальный символ-ограничитель. Сцепленный справочник допускает цепочки длиной в N, то есть поддерживает Nкопий ячейки. При создании еще одной копии цепочку нужно разрушить, а вместо нее сформировать новую. Пусть, например,
впроцессоре 5 нет копии ячейки х и он обращается за ней к основной памяти. Указатель в справочнике изменяется так, чтобы указывать на кэш с номером 5, а указатель в кэше 5 — таким образом, чтобы указывать на кэш 2. Для этого контроллер основной памяти наряду с затребованными данными должен передать в кэш-па- мять 5 также и указатель на кэш-память с номером 2. Лишь после того, как будет сформирована вся структура цепочки, процессор 5 получит разрешение на доступ
кячейке х. Если процессор производит запись в ячейку, то вниз по тракту, определяемому соответствующей цепочкой указателей, посылается сигнал аннулирова-
5 2 2 Глава11.Организация памяти вычислительных систем
ния. Цепочка должна обновляться и при удалении копии из какой-либо кэш-па- мяти.
Двусвязный список поддерживает указатели как в прямом, так и в обратном направлениях. Это позволяет более эффективно вставлять в цепочку новые указатели или удалять из нее уже не нужные, но требует хранения большего числа указателей.
Схемы на основе справочника «страдают» от «заторов» в централизованном контроллере, а также от коммуникационных издержек в трактах между контроллерами локальных кэшей и центральным контроллером. Тем не менее они оказываются весьма эффективными в мультипроцессорных системах со сложной топологией взаимосвязей между процессорами, где невозможно реализовать протоколы наблюдения.
Ниже дана краткая характеристика актуальных на настоящее время протоколов обеспечения когерентности кэш-памяти на основе справочника. Для детального ознакомления с этими протоколами приведены ссылки на соответствующие литературные источники.
Протокол Tang. Здесь присутствует централизованный глобальный справочник, содержащий полную копию всей информации из каталогов каждого из локальных кэшей [212]. Это приводит к проблеме узких мест, а также требует поиска соответствующих входов.
Протокол Censier. В схеме справочника Censier для указания того, какие процессоры содержат локальную копию данного блока памяти, используется битовый вектор указателей. Такой вектор имеется для каждого блока памяти. Недостатками метода является его неэффективность при большом числе процессоров, и, кроме того, для обновления строк кэша требуется доступ к основной памяти [155].
Протокол Archibald. Схема справочника Archibald — это пара замысловатых схем для иерархически организованных сетей процессоров, С детальным описанием этого протокола можно ознакомиться в [52].
Протокол Stenstrom. Справочник Stenstrom для каждого блока данных предусматривает шесть допустимых состояний. Этот протокол относительно прост и подходит для любых топологий межсоединений процессоров. Справочник хранится в основной памяти. В случае кэш-промаха при чтении происходит обращение к основной памяти, которая посылает сообщение кэш-памяти, являющейся владельцем блока, если такой находится. Получив это сообщение, кэш-владелец посылает затребованные данные, а также направляет сообщение всем остальным процессорам, совместно использующим эти данные, для того чтобы они обновили свои битовые векторы. Схема не очень эффективна при большом числе процессоров, однако в настоящее время это наиболеепроработанный и широко распространенный протокол на основе справочника [155].
Контрольные вопросы
1.Проанализируйте влияние особенностей ВС с общей памятью и ВС с распределенной памятью на разработку программного обеспечения. Почему эти ВС называют соответственно сильно связанными и слабо связанными?
2.Поясните идею с чередованием адресов памяти. Из каких соображений выбирается механизм распределения адресов? Как он связан склассом архитектуры ВС?
Контрольные вопросы 5 2 3
3.Дайте сравнительную характеристику однородного и неоднородного доступов кпамяти.
4.В чем заключаются преимущества архитектуры СОМА?
5.Проведите сравнительный анализ моделей с кэш-когерентным и кэш-некоге- рентным доступом к неоднородной памяти.
6.Сформулируйте достоинства и недостатки архитектуры без прямого доступа к удаленной памяти.
7.Объясните смысл распределенной и совместно используемой памяти.
8.Разработайте свой пример, иллюстрирующий проблему когерентности кэшпамяти.
9.Охарактеризуйте особенности программных способов решения проблемы когерентности, выделите их преимущества и слабые стороны.
10.Сравните методики записи в память с аннулированием и записи в память с трансляцией, акцентируя их достоинства и недостатки.
11.Дайте сравнительную характеристику методов для поддержания когерентности в мультипроцессорных системах.
12.Выполните сравнительный анализ известных вам протоколов наблюдения.
13.Какой из протоколов наблюдения наиболее популярен? Обоснуйте причины повышенного к нему интереса.
14.Дайте развернутую характеристику протоколов когерентности на основе справочника и способов их реализации. В чем суть отличий этих протоколов от протоколов наблюдения?
Глава12
Топологии вычислительных систем
В основе архитектуры любой многопроцессорной вычислительной системы лежит способность к обмену данными между компонентами этой ВС. Коммуникационная система ВС представляет собойсетъ,узлыкоторой связаны трактами передачи данных — каналами. В роли узлов могут выступать процессоры, модули памяти, устройства ввода/вывода, коммутаторы либо несколько перечисленных элементов, объединенных в группу. Организация внутренних коммуникаций вычислительной системы называется топологией.
Топологию сети межсоединений (CMC) определяет множество узлов N объединенных множеством каналов С. Связьмеждуузламиобычнореализуется подвухточечной схеме (point-to-point). Любые два узла, связанные каналом связи, называют смежными узлами или соседями. Каждый канал
Ссоединяетодин узел-источник (source node) х с одним узлом-получателем (recipient node) у, где х,
Узел-источник, служащий началом канала с, будем обозначать sc а узел-по- лучатель — второй конец канала — rс. Часто пары узлов соединяют два канала - по одному в каждом направлении. Канал с = (х, у) характеризуется шириной (wc или wxy) — числом сигнальных линий; частотой (fс или fxy) — скоростью передачи битов по каждой сигнальной линии; задержкой (tc или txy) — временем пересылки бита из узлах в узелу. Для большинства каналов задержка находится в прямой зависимости отфизическойдлинылинии связи (lс) и скорости распространения сигнала (v):lc =vtc Полоса пропускания канала bс определяется выражением bc = wfc.
В зависимости от того, остается ли конфигурация взаимосвязей неизменной, по крайней мере пока выполняется определенное задание, различают сети со статической и динамической топологиями. В статических сетях структура взаимосвязейфиксирована. В сетяхсдинамическойтопологией в процессевычислений конфигурация взаимосвязей с помощью программных средств может быть оперативно изменена.
Узел в сети может быть терминальным, то есть источником или приемником данных, коммутатором, пересылающим информацию с входного порта на выходной, или совмещать обе роли. В сетях снепосредственнымисвязями (direct networks)
Топологии вычислительных систем |
5 2 5 |
каждый узел одновременно является как терминальным узлом, так и коммутатором, и сообщения пересылаются между терминальными узлами напрямую. В сетях с косвенными связями (indirect networks) узел может быть либо терминальным, либо коммутатором, но не одновременно, поэтому сообщения передаются опосредовано, с помощью выделенных коммутирующих узлов. (В дальнейшем для простоты изложения позволим называть оба варианта «прямыми» и «косвенными» сетями, также для краткости вместо терминального узла будем говорить «терми- нал»-, несмотря на некоторую языковую некорректность.) Существуют также такиетопологии, которые нельзя однозначно причислить ни к прямым, ни к косвенным. Любую прямую CMC можно изобразить в виде косвенной, разделив каждый узел на два — терминальный узел и узел коммутации. Современные прямые сети реализуются именно таким образом — коммутатор отделяется от терминального узла и помещается в выделенный маршрутизатор. Основное преимущество прямых CMC в том, что коммутатор может использовать ресурсы терминальной части своего узла. Это становится существенным, если учесть, что, как правило, последний включает в себя вычислительную машину или процессор.
Тремя важнейшими атрибутами CMC являются:
-стратегия синхронизации;
-стратегия коммутации;
-стратегия управления.
Две возможных стратегии синхронизации операций в сети — это синхронная и асинхронная. В синхронных CMC все действия жестко согласованы во времени, что обеспечивается за счет единого генератора тактовых импульсов (ГТИ), сигналы которого одновременно транслируются во все узлы. В асинхронных сетях единого генератора нет, а функции синхронизации распределены по всей системе, причем в разных частях сети часто используются локальные ГТИ.
Взависимости от выбранной стратегии коммутации различают сети с коммутациейсоединенийисетискоммутациейпакетов.Каквпервом,такивовтором варианте информация пересылается в виде пакета. Пакет представляет собой группу битов, для обозначения которой применяют также термин сообщение.
Всетях с коммутацией соединений путем соответствующей установки коммутирующих элементов сети формируется тракт от узла-источника до узла-получа- теля, сохраняющийся, пока весь доставляемый пакет ни достигнет пункта назначения. Пересылка сообщений между определенной парой узлов производится всегда по одному и тому же маршруту.
Сети с коммутацией пакетов предполагают, что сообщение самостоятельно находит свой путь к месту назначения. В отличие от сетей с коммутацией соединений, маршрут от исходного пункта к пункту назначения каждый раз может быть иным. Пакет последовательно проходит через узлы сети. Очередной узел запоминает принятый пакет в своем буфере временного хранения, анализирует его и делает выводы, что с ним делать дальше. В зависимости от загруженности сети принимается решение о возможности немедленной пересылки пакета к следующему узлу и о дальнейшем маршруте следования пакета на пути к цели. Если все возможные тракты для перемещения пакета к очередному узлу заняты, в буфере узла
5 2 6 Глава 12. Топологии вычислительныхсистем
формируется очередь пакетов, которая «рассасывается» по мере освобождения линий связи между узлами (если очередь также насыщается, согласно одной из стратегий маршрутизации может произойти так называемый «сброс хвоста» (tail drop), отказ от вновь поступающих пакетов).
Рис. 12.1. Структурасетис централизованным управлением
CMC можно также классифицировать по тому, как в них организовано управление. В некоторых сетях, особенно с переключением соединений, принято централизованное управление (рис. 12.1). Процессоры посылают запрос на обслуживание в единый контроллер сети, который производит арбитраж запросов с учетом заданных приоритетов и устанавливает нужный маршрут. К данному типу следует отнести сети с шинной топологией. Процессорные матрицы также строятся как сети с централизованным управлением, которое осуществляется сигналами от центрального процессора. Приведенная схема применима и к сетям с коммутацией пакетов. Здесь тег маршрутизации, хранящийся в заголовке пакета, определяет адрес узла назначения. Большинство из серийно выпускаемых ВС имеют именно этот тип управления.
В схемах с децентрализованным управлением функции управления распределены по узлам сети.
Вариант с централизацией проще реализуется, но расширение сети в этом случае связано со значительными трудностями. Децентрализованные сети в плане подключения дополнительных узлов значительно гибче, однако взаимодействие узлов в таких сетях существенно сложнее.
В ряде сетей связь между узлами обеспечивается посредством множества коммутаторов, но существуют также сети с одним коммутатором. Наличие большого числа кoммутаторов ведет к увеличению времени передачи сообщения, но позволяетиспользоватьпростыепереключающиеэлементы. Подобныесетиобычностроятся как многоступенчатые.
Метрики сетевых соединений 5 2 7
Метрикисетевыхсоединений
При описании CMC их обычно характеризуют с помощью следующих параметров:
-размера сети (N);
-числа связей (/);
-диаметра (D);
-порядка узла (d );
-пропускной способности (W);
-задержки (T);
-связности (Q);
-ширины бисекции (В );
-полосы бисекции (6).
Размер сети (network size) численно равен количеству узлов, объединяемых сетью.
Число связей (number of links) — это суммарное количество каналов между всеми узлами сети. В плане стоимости лучшей следует признать ту сеть, которая требует меньшего числа связей.
Диаметр сети (network diameter), называемый также коммуникационным расстоянием, определяет минимальный путь, по которому проходит сообщение между двумя наиболее удаленными друг от друга узлами сети. Путь (path) в сети — это упорядоченное множество каналов Р ={с,, с2,..., сп }по которым данные от узлаисточника, последовательно переходя от одного промежуточного узла к другому, поступают на узел-получатель. Для обозначения отрезка пути между парой смежных узлов применяют термин переход (hop — в живой речи также «транзит» и «хоп»). Минимальный путь от узла х до узла у — это путь с минимальным числом переходов. Если обозначить число переходов в минимальном пути от узла х до узла у через Н(х, у), то диаметр сети D — это наибольшее значение H(х, у) среди всех возможных комбинаций х и у. Так, в цепочке из четырех узлов наибольшее число переходов будет между крайними узлами, и «диаметр» такой цепочки равен трем. С возрастанием диаметра сети увеличивается общее время прохождения сообщения, поэтому разработчики ВС стремятся по возможности обходиться меньшим диаметром.
Порядок узла. Каждый узел сети связан с прочими узлами множеством каналов —множествовходныхканалов,а — множество выходных каналов. Порядок узла х представляет собой сумму числа входных |Cix| и выходных |COx| каналов узла, то есть равен числу узлов сети, с которыми данный узел связан напрямую. Например, в сети, организованной в виде матрицы, где каждый узел имеет каналы только к ближайшим соседям (слева, справа, сверху и снизу), порядок узла равен четырем. В вычислительной системе СМ-1, построенной по топологии гиперкуба, каждый узел связан с 12 другими узлами, следовательно, порядок узлов равен 12. Увеличение значения этой метрики ведет к усложнению коммутационных устройств сети и, как следствие, к дополнительным задержкам в передаче сообщений. С другой стороны, повышение порядка
5 2 8 Глава 12. Топологии вычислительныхсистем
узлов позволяет реализовать топологии, имеющие меньший диаметр сети, и тем самым сократить время прохождения сообщения. Так, если сеть, состоящая из 4096 узлов (212 или 642), построена по матричной схеме, ее диаметр составляет 126, а для гиперкуба — только 12. Разработчики ВС обычно отдают предпочтение таким топологиям, где порядок всех узлов одинаков, что позволяет строить сети по модульному принципу. *
Пропускная способность сети (network bandwidth) характеризуется количествоминформации, котороеможетбытьпереданопосети вединицувремени. Обычно измеряется в мегабайтах в секунду или гигабайтах в секунду без учета издержек на передачу избыточной информации, например битов паритета.
Задержка сети (network latency) — это время, требуемое на прохождение сообщения через сеть. В сетях, где время передачи сообщений зависит от маршрута, говорят о средней, минимальной и максимальной задержках сети.
Связность сети (network connectivity) можно определить как минимальное число узлов или линий связи, которые должны выйти из строя, чтобы сеть распалась на две непересекающихся сети. Следовательно, связность сети характеризует устойчивость сети к повреждениям, то есть ее способность обеспечивать функционирование ВС при отказе компонентов сети.
Ширинабисекции(bisectionwidth).Дляначалаопределимпонятиесрезасети (cut of network). Срез сети C(N1, N2) — это множество каналов, разрыв которых разделяет множество узлов сетиNнaдва непересекающихся набора узлов N1 и N2. Каждый элемент C(N1, N2) — это канал, соединяющий узел из набораN1 с узлом из N2 Бисекция сети — это срез сети, разделяющий ее примерно пополам, то есть так, что|N2|<=|N1|<=|N2|+1.ШиринубисекцииВхарактеризуютминимальнымчислом каналов, разрываемых при всех возможных бисекциях сети:
Ширина бисекции позволяет оценить число сообщений, которые могут быть переданы по сети одновременно, при условии что это не вызовет конфликтов из-за попытки использования одних и тех же узлов или линий связи.
Полоса бисекции (bisection bandwidth) — это наименьшая полоса пропускания по всем возможным бисекциям сети. Она характеризует пропускную способность тех линий связи, которые разрываются при бисекции сети, и позволяет оценить наихудшую пропускную способность сети при попытке одномоментной передачи нескольких сообщений, если эти сообщения должны проходить из одной половины сети в другую. Полоса бисекции b определяется выражением
. Для сетей с одинаковой шириной полосы во всех bс каналах справедливо соотношение: b - b с хВ . Малоезначение полосы бисекции свидетельствует о возможности конфликтов при одновременной пересылке нескольких сообщений.
Функции маршрутизацииданных
Кардинальным вопросом при выборе топологии CMC является способ маршрутизации данных, то есть правило выбора очередного узла, которому пересылается сообщение. Основой маршрутизации служат адреса узлов. Каждому узлу в сети
Функции маршрутизации данных 5 2 9
присваивается уникальный адрес. Исходя из этих адресов, а точнее, их двоичных представлений, производится соединение узлов в статических топологиях или их коммутация в топологиях динамических. В сущности, принятая система соответствия между двоичными кодами адресов смежных узлов — функция маршрутизации данных — и определяет сетевую топологию. Последнюю можно описать как набор функций маршрутизации, задающий порядок выбора промежуточных узлов на пути от узла-источника к узлу-получателю. В некоторых топологиях используется единая для всей CMC функция маршрутизации, в других — многоступенчатых — при переходе от одной ступени к другой может применяться иная функциямаршрутизации.
Функция маршрутизации данных задает правило вычисления возможного адреса одного из смежных узлов по адресу второго узла. Сводится это к описанию алгоритма манипуляции битами адреса-источника для определения адреса-полу- чателя. Ниже приводится формальное описание основных функций маршрутизации данных, применяемых в известных топологиях CMC, без анализа их достоинств и недостатков. Последнее, по мере надобности, будет сделано при рассмотрении конкретных топологий CMC. Для всех функций предполагается, что размерность сети равнаN1 а разрядность адреса — т, где т =log2N. Биты адреса обозначены как bi.
Перестановка
Функция перестановки (exchange) отвечает следующему соотношению:
Работающим примером для данной функции маршрутизации может служить топология гиперкуба (рис. 12.2).
Рис. 12.2. Примертопологии с функцией перестановки (трехмерный гиперкуб)
Тасование
Функция тасования (shuffle) может быть реализована в одном из четырех вариантов: идеальное тасование (perfect shuffle), отсутствие тасования (unshuffle), субтасование по i-му биту (ith subshuffle) и супертасование по i-му биту (ith supershuffle). Ниже приведены формальные описания каждого из перечисленных вариантов, а на рис. 12.3 — примеры соответствующих им топологий.
- идеальное тасование:
Из приведенной формулы видно, что два узла с адресами i и j имеют между собой непосредственную связь при условии, что двоичный код j может быть
5 3 0 Глава 12. Топологии вычислительных систем
получен из двоичного кода i циклическим сдвигом влево. ИдеальноеТасование — наиболее распространенный среди рассматриваемых вариантов функции тасования.
-отсутствие тасования:
-субтасование по i-му биту:
-супертасование по i-му биту:
а |
б |
в |
г |
Рис. 12.3. Примерытопологий стасованиемдля m = 3: a — идеальноетасование; б — отсутствие тасования; в — субтасование по второму биту; г — супертасование по второму биту
Баттерфляй
Функция «баттерфляй» (butterfly) — «бабочка» была разработана в конце 60-х годов Рабинером и Гоулдом. Свое название она получила из-за того, что построенная в соответствии с ней сеть по конфигурации напоминает крылья бабочки (рис. 12.4).
Математически функция может быть записана в виде
Рис. 12.4. Примеры топологии «баттерфляй» для: а — m = 2;б — m = 3
ХОТЯ функция -«баттерфляй» используется в основном при объединении ступеней в сетях с динамической многоступенчатой топологией, известны также и -«чистые» «баттерфляй»-сети.
