shpory - line.tom.ru

advertisement
Оглавление
Измерение параметров функционирования систем ........................................................... 2
Оценка производительности вычислительных систем...................................................... 4
Оценка надежности вычислительных систем .................................................................... 5
Повышение быстродействия элементной базы .................................................................. 6
Формы параллелизма (мелкозернистый, крупнозернистый и т.п.) .................................. 7
Закон Амдала ......................................................................................................................... 9
Классификация вычислительных систем. Классификации Флинна, Хокни и Фенга .. 10
Классификация вычислительных систем. Классификации Дункана и Хендлера. ....... 13
Классификация Хендлера ................................................................................................... 14
Классификация ВС по способу размещения данных в иерархической памяти и
способу доступа к этим данным ........................................................................................ 15
Механизмы неявной реализации когерентности. Однопроцессорный подход. ........... 16
Механизмы неявной реализации когерентности. Многопроцессорный подход.
Сосредоточенная память..................................................................................................... 17
Механизмы неявной реализации когерентности. Многопроцессорный подход.
Физически распределенная память.................................................................................... 19
1
Измерение параметров функционирования систем
Концепция наблюдателя:
Наблюдатель может быть внутренним либо внешним.
 Внешний наблюдатель рассматривает систему как "черный ящик", который
содержит ограниченное число известных функций. Наблюдение сводится к
измерению изменений в реакции системы при контролируемых изменениях
рабочей нагрузки.
 Внутренний наблюдатель обеспечивает измерения и контроль за изменениями,
происходящими внутри системы.
Наблюдаемое поведение системы есть последовательность изменений наблюдаемых
состояний системы. Наблюдаемое состояние, отражающее поведение системы даже
на самом нижнем уровне системы – это состояние всех запоминающих элементов в
системе: основной памяти, регистровой, внешней, регистровой памяти внешних
устройств и т.д. Обычно в понятие состояния системы включают лишь память,
отражающую значения объектов в программе.
Описание поведения программ.
 денотационный. – Программа рассматривается как отображение Ф: X=>Y, где
X – исходные данные, а Y – результаты (акцент ставится на преобразовании
программой данных). Отображение состоит из последовательности
отображений {Фi}, реализуемых операторами программы, которые изменяют
значения ее переменных.
 операционный.
–
Динамика
программы
рассматривается
как
последовательность событий (под событием понимается смена состояния). В
этом походе значительно расширяется понятие состояния. В него включены не
только непосредственно память программы, но и другие виды памяти в
системе.
Данные, собираемые в ходе измерений, можно подразделить по форме на
четыре категории: трассы, относительная активность, частотные характеристики
действий и статистические (усредненные) характеристики действий.
Виды наблюдателей.
Все средства наблюдения за информационными потоками в вычислительных
системах можно подразделить на программные, микропрограммные и аппаратные
 Программный наблюдатель – это специализированная программа (или
комплекс программ), встроенная в измеряемую систему. Наблюдатель
выступает посредником между теми компонентами системы, за которыми он
наблюдает. Программный наблюдатель всегда изменяет измеряемую систему.
 Микропрограммные наблюдатели. С микропрограммного уровня доступны
такие индикаторы аппаратуры, которые с вышележащих уровней не доступны.
Недостатки: использование специализированной дорогостоящей аппаратуры;
события, возникающие в системе на столь низком уровне, трудно
транслировать в события более высокого уровня, на котором обычно работает
программист.
 Аппаратные наблюдатели подразделяются на внутренние и внешние. Внешний
аппаратный наблюдатель подключается к определенным точкам системы,
2
"подслушивает" сигналы на ее линиях, обрабатывает и записывает их у себя,
вне измеряемой системы. Аппаратный наблюдатель представляет собой
совершенно автономную систему, которая не нуждается ни в какой помощи со
стороны измеряемой системы. Он практически не вмешивается в ее работу, а,
стало быть, не изменяет ее поведения.
3
Оценка производительности вычислительных систем
Если несколько процессоров составляют вычислительную систему (ВС), то
важной характеристикой ее эффективности при специализированном использовании
(например, в составе АСУ) является коэффициент загрузки процессоров kз
Ti (i=1, … ,n) – время занятости каждого процессора решением задачи на всем
отрезке полного решения задачи, длиной Треш.
T1
T2
Tреш
Если P0 – производительность одного процессора, то реальная
производительность ВС, состоящей из n процессоров, при решении данной задачи
составляет:
P0 - определяется классом решаемых задач
4
Оценка надежности вычислительных систем
Под надежностью ВС понимается вероятность решения поставленной перед
ней задачи.
Надежность ВС в составе сложной системы управления определяется
следующими факторами:
 вероятностью пребывания в исправном состоянии в момент начала цикла
управления;
 вероятностью пребывания в исправном состоянии в течение всего цикла
управления;
 помехоустойчивостью, т.е. способностью с допустимыми потерями
временных, точностных и аппаратурных ресурсов на требуемом качественном
уровне завершить цикл управления при возникновении неисправностей.
Расчет модели надежности.
Пусть λ1 – частота сбоев (количество сбоев в единицу времени), найденная как
одна из характеристик выбранной ЭВМ; λ2 – частота отказов; λ1+λ2=λ.
Тогда λ*t – количество сбоев и отказов за время t, которое называется циклом
управления.
Вероятность сбоя или отказа на таком элементарном отрезке:
Вероятность безотказной работы на элементарном отрезке :
на всех элементарных отрезках :
Вероятность безотказной работы:
Тогда P2(t)+P3(t)=1-P1(t)=1-e-λt
Вероятности сбоев и отказов:
Полная
вероятность
,
успешного
решения
задачи:
5
Повышение быстродействия элементной базы
Уменьшение (укорачивание) длина канала транзисторов (переход на более тонки
технологии), составляющих дискретные структуры процессора, что в свою очередь
увеличивает их быстродействие.
Снижение площади транзистора, что должно сопровождаться уменьшением его
внутренней емкости. Однако применение high-k диэлектрика для изоляции затвора
транзисторов выполненных по 45 нм тех. процессу, снижает емкость затвора
незначительно и сохраняет емкость затвора на уровне близком к 65 нм тех. процессу.
Данный факт не позволяет снизить удельную (на 1 ключ) потребляемую мощность не
смотря на снижение размера
Отсутствие прироста тактовой частоты (более 3ГГц) при уменьшении площади
кристалла процессора.
Мощность, потребляемая процессором (P, Вт) определяемая потерями в структурах
процессора пропорциональна частоте переключения fn транзисторов и квадрату
питающего напряжения Е2
Уменьшение площади занимаемой транзистором. Размещение большего число
транзисторов и усложнение структуры процессора на подложке, размер которой не
превышает подложку предыдущей серии процессоров.
6
Формы параллелизма (мелкозернистый, крупнозернистый и т.п.)
Распараллеливание операций – перспективный путь повышения производительности
вычислений. Согласно закону Мура число транзисторов экспоненциально растёт, что
позволяет в настоящее время включать в состав CPU большое количество
исполнительных устройств самого разного назначения.
Уровни параллелизма
Степень
гранулярности:
Микроуровневый параллелизм
Мелкозернистый
Параллелизм уровня команд
Среднезернистый
Параллелизм уровня потоков
Параллелизм уровня заданий
Мультипроцессорные
системы
Мультикомпьютерные
системы
Крупнозернистый
Ярусно-параллельная форма
Более определенной формой представления параллелизма является яруснопараллельная форма (ЯПФ): алгоритм вычислений представляется в виде ярусов,
причем в нулевой ярус входят операторы (ветви), не зависящие друг от друга, в
первый ярус – операторы, зависящие только от нулевого яруса, во второй – от
первого яруса и т. д.
Для ЯПФ характерны параметры, в той или иной мере отражающие степень
параллелизма метода вычислений: bi – ширина i-го яруса; B – ширина графа ЯПФ
(максимальная ширина яруса, т. е. максимум из bi, i = 1, 2, ...); li – длина яруса (время
операций) и L длина графа; ε – коэффициент заполнения ярусов; θ – коэффициент
разброса указанных параметров и т. д.
Мелкозернистый (скалярный) параллелизм
При исполнении программы регулярно встречаются ситуации, когда исходные
данные для i-й операции вырабатываются заранее, например, при выполнении (i-2)-й
или (i-3)-й операции. Тогда при соответствующем построении вычислительной
системы можно совместить во времени выполнение i-й операции с выполнением (i1)-й, (i-2)-й, ... операций.
Крупнозернистый параллелизм
Векторный параллелизм. Наиболее распространенной в обработке структур данных
является векторная операция (естественный параллелизм). Вектор — одномерный
массив, который образуется из многомерного массива, если один из индексов не
фиксирован и пробегает все значения в диапазоне его изменения.
Области применения векторных операций над массивами обширны: цифровая
обработка сигналов (цифровые фильтры); механика, моделирование сплошных сред;
7
метеорология; оптимизация; задачи движения; расчеты электрических характеристик
БИС и т. д.
Параллелизм независимых ветвей
Суть параллелизма независимых ветвей состоит в том, что в программе решения
большой задачи могут быть выделены независимые программные части – ветви
программы, которые при наличии нескольких обрабатывающих устройств могут
выполняться параллельно и независимо друг от друга. Двумя независимыми ветвями
программы считаются такие части задачи, при выполнении которых выполняются
следующие условия:
1. ни одна из входных величин для ветви программы не является выходной
величиной другой программы (отсутствие функциональных связей);
2. для обеих ветвей программы не должна производиться запись в одни и те же
ячейки памяти (отсутствие связи по использованию одних и тех же полей
оперативной памяти);
3. условия выполнения одной ветви не зависят от результатов или признаков,
полученных при выполнении другой ветви (независимость по управлению);
4. обе ветви должны выполняться по разным блокам программы (программная
независимость).
Это широко распространенный в практике вариант решение одной и той же модели
при разных входных параметрах, причем, все варианты (как правило, с длительным
счетом) должны быть получены за ограниченное время. Например, варианты
моделирования используются при анализе атмосферной модели климата, при расчете
ядерного взрыва, обтекания летательного аппарата, расчета полупроводниковых
приборов.
Параллелизм вариантов отличается от идеологии крупнозернистого параллелизма.
Отличие состоит в том, что в случае крупнозернистого параллелизма вычисления
проводятся внутри одной задачи и требования к скорости обмена между частями
задачи достаточно высокие. В параллелизме вариантов распараллеливаются целые
задачи, обмен между которыми в принципе отсутствует.
Системы распределенных вычислений идеальны для решения вариантных задач.
8
Закон Амдала
Одной из главных характеристик параллельных систем является ускорение R
параллельной системы, которое определяется выражением: R = T1 /Tn , где T1 − время
решения задачи на однопроцессорной системе, а Tn − время решения той же задачи на
n − процессорной системе.
Пусть W = Wск + Wпр, где W − общее число операций в задаче, Wпр − число операций,
которые можно выполнять параллельно, а Wcк − число скалярных
(нераспараллеливаемых) операций.
Если обозначить через t время выполнения одной операции. Тогда закон Амдала
выглядит следующим образом:
Здесь a = Wск /W − удельный вес скалярных операций.
Следствия закона Амдала
Закон Амдала определяет принципиально важные для параллельных вычислений
положения:
 ускорение зависит от потенциального параллелизма задачи (величина 1– а) и
параметров аппаратуры (числа процессоров n);
 предельное ускорение определяется свойствами задачи.
Сетевой закон Амдала
Основной вариант закона Амдала не отражает потерь времени на
межпроцессорный обмен сообщениями. Эти потери могут не только снизить
ускорение вычислений, но и замедлить вычисления по сравнению с
однопроцессорным вариантом. Поэтому необходима некоторая модернизация
выражения:
Здесь Wc − количество передач данных, tc − время одной передачи данных.
Выражение:
является сетевым законом Амдала.
9
Классификация вычислительных систем. Классификации Флинна, Хокни и
Фенга
Классификация Флина
Базируется на понятии потока, под которым понимается последовательность
элементов, команд или данных, обрабатываемая процессором.
SISD (singleinstructionstream / singledatastream)
- одиночный поток команд и одиночный поток
данных.
SIMD (singleinstructionstream /
multipledatastream) - одиночный поток команд и
множественный поток данных.
MISD (multipleinstructionstream /
singledatastream) - множественный поток
команд и одиночный поток данных.
MIMD (multipleinstructionstream /
multipledatastream) - множественный поток
команд и множественный поток данных.
Архитектуры ЭВМ
Результаты
Память программ
ПД
Память
ЦУУ
ПК
ПЭ1
SISD- архитектура
ПД1
Память данных и результатов
ЦУУ
...
Память программ
ПКN
...
ПN
ПД
Память данных и результатов
MISD-архитектура
ЦУУ
ПК1
ПК2
П1
П2
ПД1
ПД2
ПКN
...
...
ПN
ПДN
Память данных и результатов
Результаты
П2
SIMD- архитектура
Результаты
П1
ПК2
ПЭN
ПД2
Память программ
ПК1
…
ПЭ2
Результаты
Процессор
MIMD-архитектура
10
Недостатки классификации Флина
1. Некоторые архитектуры четко не вписываются в данную классификацию
2. Чрезмернаязаполненность класса MIMD
Классификация Хокни
Основная идея классификации состоит в следующем.
Множественный поток команд может быть обработан двумя способами: либо одним
конвейерным устройством обработки, работающем в режиме разделения времени для
отдельных потоков, либо каждый поток обрабатывается своим собственным
устройством.
Примеры классификации Флина
• SISD – PDP-11, VAX 11/780, CDC 6600 и CDC 7600
• SIMD – ILLIAC IV, CRAY-1
• MISD – нет
• MIMD – большинство современных машин
Примеры классификации Хокни
MIMD конвейерные – Denelcor HEP
MIMD переключаемые с распределенной памятью – PASM, PRINGLE
MIMD переключаемы с общей памятью – CRAYX-MP, BBNButterfly
MIMD звездообразная сеть – ICAP
MIMD регулярные решетки – IntelParagon, CRAY T3D
MIMD гиперкубы – NCube, InteliPCS
MIMD с иерархической структурой (кластеры) – Cm* , CEDAR
Классификация Фенга
Идея классификации вычислительных систем на основе двух простых характеристик.
Первая - число бит n в машинном слове, обрабатываемых параллельно при
выполнении машинных инструкций. Вторая характеристика равна числу слов m,
обрабатываемых одновременно данной вычислительной системой. Вторую
характеристику обычно называют шириной битового слоя.
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
11
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
Любую вычислительную систему C можно описать парой чисел (n, m) и представить
точкой на плоскости в системе координат длина слова - ширина битового слоя.
Площадь прямоугольника со сторонами n и m определяет интегральную
характеристику потенциала параллельности P архитектуры и носит название
максимальной степени параллелизма вычислительной системы: P(C)=mn.
Примеры классификации Фенга
• Разрядно-последовательные пословно-последовательные (n=m=1):
MINIMA с естественным описанием (1,1)
• Разрядно-параллельные пословно-последовательные (n>1; m=1):
IBM 701 с описанием (36,1), PDP-11 (16,1), IBM 360/50,
VAX 11/780 - обе с описанием (32,1)
• Разрядно-последовательные пословно-параллельные (n=1; m>1):
STARAN (1, 256) и MPP (1,16384) фирмы GoodyearAerospace, прототип
системы ILLIAC IV компьютер SOLOMON (1, 1024),
ICL DAP (1, 4096).
• Разрядно-параллельные пословно-параллельные (n>1; m>1):
ILLIAC IV (64, 64), TI ASC (64, 32), C.mmp (16, 16), CDC 6600 (60, 10), BBN
Butterfly GP1000 (32, 256).
Недостаток
• не делает никакого различия между процессорными матрицами, векторноконвейерными и многопроцессорными системами;
• отсутствует акцент на том, за счет чего компьютер может одновременно
обрабатывать более одного слова.
12
Классификация вычислительных систем. Классификации Дункана и
Хендлера.
Классификация Дункана
Требования:
1) Из классификации должны быть исключены машины, параллелизм в
которых заложен на самом узком уровне:
 конвейеризация на этапе подготовки и выполнения команды;
 наличие в архитектуре нескольких функциональных устройств,
работающих независимо;
 наличие отдельных процессоров ввода/вывода.
2) Классификация должна быть согласованной с классификацией Флинна.
3) Классификация должна описывать архитектуры, которые однозначно не
укладываются в систематику Флинна.
13
Классификация Хендлера
В основу классификации закладывает явное описание возможностей
параллельной и конвейерной обработки информации вычислительной системой. При
этом он намеренно не рассматривает различные способы связи между процессорами
и блоками памяти и считает, что коммуникационная сеть может быть нужным
образом сконфигурирована и будет способна выдержать предполагаемую нагрузку.
Классификация базируется на различии между тремя уровнями обработки
данных в процессе выполнения программ:
• уровень выполнения программы;
• уровень выполнения команд;
• уровень битовой обработки.
t( PEPE ) = (k×k',d×d',w×w') ,где:
k - число процессоров (каждый со своим УУ), работающих параллельно
k' - глубина макроконвейера из отдельных процессоров
d - число АЛУ в каждом процессоре, работающих параллельно
d' - число функциональных устройств АЛУ в цепочке
w - число разрядов в слове, обрабатываемых в АЛУ параллельно
w' - число ступеней в конвейере функциональных устройств АЛУ
Дополнение:Для описания сложных структур с подсистемами ввода-вывода; для
описания возможных режимов функционирования вычислительных систем,
поддерживаемых для оптимального соответствия структуре программ.
Хендлер предлагает использовать три операции:
• первая операция (×) отражает конвейерный принцип обработки и предполагает
последовательное прохождение данных сначала через первый ее аргументподсистему, а затем через второй;
• вторая операция параллельного исполнения (+), фиксирует возможность
независимого использования процессоров разными задачами;
• третья операция - операция альтернативы (V), показывает возможные
альтернативные режимы функционирования вычислительной системы.
14
Классификация ВС по способу размещения данных в иерархической
памяти и способу доступа к этим данным
1) Явное размещение данных; явное указание доступа к данным:
Программист явно задаёт действия по поддержке когерентности памяти
посредством передачи данных, программируемой с использованием специальных
команд send и receive. Каждый процессор имеет своё собственное адресное
пространство, а согласованность элементов данных выполняется путём
установления соответствия между областями памяти, предназначенной для
передачи командой send, и областью памяти, предназначенной для приёма данных
командой receive, в другом блоке памяти.
2) Неявное размещение данных; неявное указание доступа к данным:
В ВС с разделяемой памятью механизм реализации когерентности прозрачен для
прикладного программиста, и в программах отсутствуют какие-либо другие
команды обращения к памяти, кроме команд loadи store.Используется единое
физическое или виртуальное адресное пространство.
Преимущества:
 однородность адресного пространства памяти, позволяющая при создании
приложений не учитывать временные соотношения между обращениями к
разным блокам иерархической памяти;
 создание приложений в привычных программных средах;
 легкое масштабирование приложений для исполнения на разном числе
процессоров и разных ресурсах памяти.
3) Неявное размещение данных как страниц памяти; явное указание доступа
к данным.
В этой архитектуре используется разделяемое множество страниц памяти, которые
размещаются на внешних устройствах. При явном запросе страницы
автоматически обеспечивается когерентность путём пересылки уже запрошенных
ранее страниц не из внешней памяти, а из памяти модулей, имеющих эти
страницы.
4) Явное размещение данных с указанием разделяемых модулями страниц;
неявное указание доступа к данным посредством команд loadи store.
В каждом компьютере кластера предполагается организация памяти на основе
механизма виртуальной адресации. Адрес при этом состоит из двух частей:
группы битов, служащих для определения номера страницы, и адреса внутри
страницы. В каждом компьютере в ходе инициализации выделяется предписанное,
возможно разное, вплоть до полного отсутствия, количество физических страниц
памяти, разделяемых этим компьютером с другими компьютерами кластера.
После установления во всех компьютерах отображения страниц памяти, доступ к
удаленным страницам памяти выполняется посредством обычных команд чтения и
записи.
15
Механизмы неявной реализации когерентности. Однопроцессорный
подход.
Реализация механизма когерентности в ВС с разделяемой памятью требует
аппаратурно-временных затрат. Уменьшить временную составляющую затрат можно
за счет увеличения аппаратурной составляющей и наоборот.
Однопроцессорный. Организация когерентности кэш-памяти: кэш-память с
прямым доступом, частично-ассоциативная кэш-память и ассоциативная
память.
Организация когерентности при однопроцессорном подходе
• Первый способ предполагает внесение изменений в оперативную память сразу
после их возникновения в кэше. Кэш-память, работающая в таком режиме,
называется памятью со сквозной записью.
• Второй способ предполагает отображение изменений в основной памяти
только в момент вытеснения строки данных из кэша. Кэш-память при таком
способе обновления называется кэш-памятью с обратной записью.
Способы организации кэш-памяти при однопроцессорном подходе
Прямое отображение:
Адрес строки
Частично-ассоциативное отображение
Адрес внутри
Тег
Индекс
a
b
7
Адрес строки
строки
Адрес основной
памяти
c
7
Адрес Адрес внутри
группы
строки
Тег
4
b
9
7
1
7
Адрес
основной
4
памяти
f
e
5
1
4
b
(b,c)
a (адрес)
5
v (данные)
a
7
7
128
1
128
b
9
b
a
a
Контроль совпадений/
несовпадений
5
Действительный/
4
1
b
c
9
b
1
b
Сравнение
адреса
d
9
c
1
b
9
d
Шифратор совпадений/несовпадений
2
Фиксатор
недействительный
Данные считывания/
записи
V1
V1
V1
V1
Выбор
данных
Ассоциативное отображение
Адрес внутри
строки
Адрес строки (тег)
Шифратор совпадений/несовпадений
V2
Адрес основной
памяти
b
a
Данные считывания/
записи
14
4
1
a (адрес)
с
14
7
1
(b,c)
128
v (данные)
128
7
Контроль совпадений/
несовпадений
с
Действительный/недействительный
Фиксатор
Данные считывания/
записи
16
Механизмы неявной реализации когерентности. Многопроцессорный
подход. Сосредоточенная память
В современных микропроцессорах, используемых для построения мультипроцессорных
систем, идентичность данных в кэшах ВМ (когерентность кэшей) поддерживается с
помощью межмодульных пересылок.
Сосредоточенная память
Алгоритм поддержки когерентности кэшей MESI(ModifiedExclusiveSharedInvalid),
представляет собой организацию когерентности кэш-памяти с обратной записью. Этот
алгоритм предотвращает лишние передачи данных между кэш-памятью и основной
памятью.
Каждый ВМ имеет собственную локальную кэш-память, имеется общая разделяемая
основная память, все ВМ подсоединены к основной памяти посредством шины.К шине
подключены также внешние устройства.
Все действия с использованием транзакций шины, производимые ВМ и внешними
устройствами, с копиями строк, как в каждой кэш-памяти, так и в основной памяти,
доступны для отслеживания всем ВМ.
Многопроцессорный подход корганизация механизма неявной реализации
когерентности в системах с сосредоточенной памятью
Алгоритм поддержки когерентности кэшей – MESI (Modified, Exclusive, Shared, Invalid),
представляет собой организацию когерентности кэш-памяти с обратной записью.
Каждая строка кэш-памяти ВМ может находиться в одном из следующих состояний:
М – строка модифицирована (доступна по чтению и записи только в этом ВМ, потому что
модифицирована командой записи по сравнению со строкой основной памяти);
Е – строка монопольно копированная (доступна по чтению и записи в этом ВМ и в
основной памяти);
S – строка множественно копированная или разделяемая (доступна по чтению и записи в
этом ВМ, в основной памяти и в кэш-памятях других ВМ, в которых содержится ее копия);
I – строка, невозможная к использованию (строка не доступна ни по чтению, ни по
записи).
Состояние строки используется, во-первых, для определения процессором ВМ
возможности локального, без выхода на шину, доступа к данным в кэш-памяти, а, вовторых, — для управления механизмом когерентности.
Исх. состояние строки
Состояние после чтения
Состояние после записи
I
Если WT = 1, тогда Е, иначе S;
Обновление строки путем ее
чтения из основной памяти
Сквозная запись в основную
память; I
S
E
S
Е
M
М
Если WT = 1 тогда Е, иначе S
М
М
Для управления режимом работы механизма поддержки когерентности используется
бит WT, состояние 1 которого задает режим сквозной записи, а состояние 0 – режим
обратной записи в кэш-память.
17
Кэш-память заполняется только при промахах чтения. При промахе записи
транзакция записи помещается в буфер и посылается в основную память при
предоставлении шины.
18
Механизмы неявной реализации когерентности. Многопроцессорный
подход. Физически распределенная память
Прямолинейный подход к поддержанию когерентности кэшей в
мультипроцессорной системе, основная память которой распределена по ВМ,
заключается в том, что при каждом промахе в кэш в любом процессоре инициируется
запрос требуемой строки из того блока памяти, в котором эта строка размещена. Этот
блок памяти называться резидентным.
Запрос передается через коммутатор в модуль с резидентным для строки
блоком памяти, из которого затем необходимая строка через коммутатор
пересылается в модуль, в котором произошел промах.
При этом в каждом модуле для каждой резидентной строки ведется
список модулей, в кэшах которых эта строка размещается, либо организуется
распределенный по ВМ список этих строк. Строка, размещенная в кэше более чем
одного модуля, называться разделяемой.
Когерентность кэшей обеспечивается следующим. При обращении к кэшпамяти в ходе операции записи данных, после самой записи, процессор
приостанавливается до тех пор пока не выполнится последовательность, как
минимум, из трех действий: измененная строка кэша пересылается в резидентную
память модуля, затем, если строка была разделяемой, она пересылается из
резидентной памяти во все модули, указанные в списке разделяющих эту строку.
После получения подтверждений, что все копии изменены, резидентный модуль
пересылает в процессор, приостановленный после записи, разрешение продолжать
вычисления.
Для обеспечения наименьших простоев процессоров можно использовать
алгоритм DASH.
Каждый модуль памяти имеет для каждой строки, резидентной в модуле,
список модулей, в кэшах которых размещены копии строк.
С каждой строкой в резидентном для нее модуле связаны три ее возможных
глобальных состояния:
1) "некэшированная", если копия строки не находится в кэше какого-либо
другого модуля, кроме, возможно, резидентного для этой строки;
2) "удаленно-разделенная", если копии строки размещены в кэшах других
модулей;
3) "удаленно-измененная", если строка изменена операцией записи
в каком-либо модуле.
Кроме этого, каждая строка кэша находится в одном из трех локальных состояний:
1) "невозможная к использованию";
2) "разделяемая", если есть неизмененная копия, которая, возможно,
размещается также в других кэшах;
19
3) "измененная", если копия изменена операцией записи
Каждый процессор может читать из своего кэша, если состояние читаемой строки
"разделяемая" или "измененная". Если строка отсутствует в кэше или находится в
состоянии "невозможная к использованию", то посылается запрос "промах чтения",
который направляется в модуль, резидентный для требуемой строки.
Если глобальное состояние строки в резидентном модуле "некэшированная"
или "удаленно-разделенная", то копия строки посылается в запросивший модуль и в
список модулей, содержащих копии рассматриваемой строки, вносится модуль,
запросивший копию.
Если состояние строки "удаленно-измененная", то запрос "промах чтения"
перенаправляется в модуль, содержащий измененную строку. Этот модуль
пересылает требуемую строку в запросивший модуль и в модуль, резидентный для
этой строки, и устанавливает в резидентном модуле для этой строки состояние
"удаленно-разделенная".
Если процессор выполняет операцию записи и состояние строки, в которую
производится запись "измененная", то запись выполняется и вычисления
продолжаются. Если состояние строки "невозможная к использованию" или
"разделяемая", то модуль посылает в резидентный для строки модуль запрос на
захват в исключительное использование этой строки и приостанавливает выполнение
записи до получения подтверждений, что все остальные модули, разделяющие с ним
рассматриваемую строку, перевели ее копии в состояние "невозможная к
использованию«.
Если глобальное состояние строки в резидентном модуле "некэшированная", то
строка отсылается запросившему модулю, и этот модуль продолжает
приостановленные вычисления.
Если глобальное состояние строки "удаленно-разделенная", то резидентный
модуль рассылает по списку всем модулям, имеющим копию строки, запрос на
переход этих строк в состояние "невозможная к использованию". По получении этого
запроса каждый из модулей изменяет состояние своей копии строки на "невозможная
к использованию" и посылает подтверждение исполнения в модуль, инициировавший
операцию записи. При этом в приостановленном модуле строка после исполнения
записи переходит в состояние "удаленно-измененная".
20
Download