Transcript
Page 1: МОДЕЛИРОВАНИЕ ФУНКЦИОНАЛЬНЫХ УЗЛОВ ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ

Кичкидов В.А.

МОДЕЛИРОВАНИЕ ФУНКЦИОНАЛЬНЫХ УЗЛОВ ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ

В настоящей статье раскрывается тема определения характеристик вычислительной системы посред-

ством еѐ моделирования с использованием сетей массового обслуживания. Опираясь на раскрытый в

предыдущих статьях материал, автор описывает принцип построения модели, принцип получения расчет-

ных данных для моделирования.

В качестве примера предлагаемой методики автор проводит моделирование работы мультипроцессор-

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

ется вывод об узких местах вычислительной системы.

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

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

предлагаемого оборудования становится особенно острым.

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

произойти по ряду причин, одна из которых – неправильное понимание работы функциональных узлов

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

процессе проектирование необходим этап тщательного моделирования работы функциональных узлов и

системы в целом.

Ранее в процессе выполнения работы по анализу производительности подсистемы памяти нами был

разработан способ, основанный на использовании аппарата сетей массового обслуживания, позволяющий

построить модель блока вычислительной системы и получить численную оценку производительности бло-

ка в целом и его частей. Данный способ позволил нам провести анализ работы процессоров с памятью

в разных архитектурах вычислительных систем. Высказывается предположение, что с использованием

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

кие места и перегрузки системы, которые следует устранить.

Предложенный способ будет представлен на основе анализа работы с памятью мультипроцессоров ар-

хитектуры х86 с организацией памяти UMA и архитектуры x86-64 с организацией памяти NUMA. Исполь-

зование аппарата открытых СМО обусловлено, тем, что современные ОС являются многозадачными, и в

них практически всегда параллельно функционируют несколько задач, т.е. запросы в память от про-

цессора могут поступать до окончания обработки предыдущего запроса.

В качестве примера архитектуры UMA возьмем процессор семейства Intel Pentium IV технологии

Netburst с частотой шины 133 МГц (длительность такта T = 7.5 нс), обозначаемой с учетом техноло-

гии Quad Pumped Bus как 533 МГц. Такая шина за такт может передать 4 готовых к передаче 64-

разрядных слова. Но если готово к передаче только одно слово, то и оно будет передано за 1 такт.

Частота синхронизации процессора взята равной 2000 МГц. Предполагается, что обращение в па-

мять будет производиться каждый такт. В КЭШ память данных объемом 512 Кб согласно статистике по-

падает не менее 99% запросов. Поэтому, исходя из частоты процессора, равной 2 ГГц, получаем, что

частота запросов в оперативную память составит 0.02 заявки/нс.

= 2 * 1% = 0.02 (з/нс)

В расчетах используем модули памяти DDR PC3200 с частотой 200 МГц. По технологии DDR память

маркируется как 400 МГц. Эта «псевдо-частота» означает, что за один такт, длиной 5 нс, шина памя-

ти может передать 2 готовых 64-битных слова. Опять же необходимо помнить, что 1 готовое слово

будет передано не за половину такта, а за один полный такт, т.е. за 5 нс. Тайминги памяти CL-RCD-

RPT согласно данным микросхемы SPD равны 15 нс каждый (3-3-3).

Наилучший случай происходит, когда обращение происходит к открытой строке модуля памяти. При

этом необходимо подать только сигнал CAS, и модуль памяти подготовит данные через интервал CL (15

нс). По статистике такая ситуация происходит в 55% случаев.

Хуже случай, когда данные находятся в другой строке. При этом подаются сигналы RAS (активация

строки) и через время RCD – сигнал CAS (активация столбца). Таким образом, модулю памяти потребу-

ется время, равное CL + RCD (30 нс), для подготовки данных. Этот вариант получается с вероятно-

стью 40%.

Наихудший случай, когда данные находятся на неактивной странице. В этом случае текущая страни-

ца должна быть закрыта. На подготовку данных модулю памяти требуется время, равное CL + RCD + RPT

(45 нс). На этот вариант приходится 5% случаев.

Средне-взвешенное время работы модуля ОП составляет:

Vоп = 0.55 • 15 + 0.4 • 30 + 0.05 • 45 = 22.5 (нс)

Рассчитаем, сколько требуется времени шине для передачи контроллеру 32-битного адреса. Разряд-

ность шины – 64 бита. То есть 32-битный адрес будет передан за 1 такт.

1 • 7.5 = 7.5 (нс)

Для передачи 64-битного слова от памяти через контроллер к процессору требуется 1 такт шины

«память-контроллер» и 1 такт шины «контроллер-процессор»:

1 •5 + 1 • 7.5 = 12.5 (нс)

Просуммировав полученные значения, получим среднее время обращения к памяти:

22.5 + 7.5 + 12.5 = 42.5 (нс)

Итак, получено время обращения к памяти одного процессора. В переводе на такты процессора ча-

стотой 2 ГГЦ – это 85 тактов. 85 тактов исследуемый процессор архитектуры UMA ожидает данные,

которые не оказались в кэш-памяти. Современные алгоритмы предвыборки и пакетного чтения из памяти

сокращают шанс обращения процессора к оперативной памяти, но если обращение к памяти все-таки

произошло, технологии пока не в силах уменьшить время простоя процессора.

Примером архитектуры NUMA возьмем процессор технологии x86-64 марки Athlon64 (Opteron) часто-

той также 2000 МГц. Частота шины Hyper Transport составляет для данной модели 800 МГц (Tцикла =

1.25 нс). Из-за того, что данная шина полнодуплексная, в маркетинговых целях ее обозначают как

1600 МГц.

Относительно модуля оперативной памяти справедливы расчеты, произведенные выше в расчетах ар-

хитектуры UMA.

Vоп = 0.55 • 15 + 0.4 • 30 + 0.05 • 45 = 22.5 (нс)

Для передачи 32-разряднго адреса данных от процессора к контроллеру по высокоскоростной внут-

ренней шине считаем, что затрачивается один ее такт

0.5 • 1 = 0.5 (нс).

Передача 64-разрядного слова от модуля памяти по 200 МГц шине памяти произойдет за 1 такт.

1 •5 + = 5 (нс)

Это же слово передастся процессору за 1 такт внутренней шины

0.5 • 1 = 0.5 (нс)

Page 2: МОДЕЛИРОВАНИЕ ФУНКЦИОНАЛЬНЫХ УЗЛОВ ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ

Таким образом, среднее обращение к локальной памяти будет происходить за время:

22.5 + 0.5 + 5 + 0.5 = 28.5 (нс)

По сравнению с архитектурой x86 уже видна разница. Но нас интересует не она. Нас интересует

поведение многопроцессорных систем, построенных на данных архитектурах.

В случае многопроцессорной системы на основе х86-64 доступ к удаленной памяти увеличивается на

время, которое тратится на прохождение данных по каналам HyperTransport.

32-разрядный адрес по 16-разрядной шине HT будет передан за 2 такта:

2 • 1.25 = 2.5 (нс)

64-разрядные данные по 16-разрядной шине передадутся за 4 такта:

4 • 1.25 = 5 (нс)

Таким образом, доступ к удаленной памяти будет занимать:

28.5 + 2.5 + 5 = 36 (нс)

Следующим шагом мы строим модели многопроцессорных систем исследуемых архитектур, построенных

на проанализированных микропроцессорах. Для четырехпроцессорных систем архитектура UMA и NUMA

выглядит следующим образом.

ЦП ЦП ЦП ЦП

ОП ОП ОП ОП

Общая шина

Рис. 1. Структура мультипроцессора с организацией NUMA

ЦП ЦП ЦП ЦП

ОП ОП ОП ОП

Общая шина

Рис. 2. Структура мультипроцессора с организацией UMA

На рисунках 1 и 2 показаны системы UMA и NUMA , По данным схемам были созданы следующие моде-

ли:

ЦП1

ЦП2

ЦП0

ЦП3

ОШ

ОП1

ОП2

ОП0

ОП3

T

T

Рис. 3. СМО мультипроцессора с организацией UMA

ЦП1

ЦП2

ЦП0

ЦП3

ОШ

ОП1

ОП2

ОП0

ОП3

T

T

Рис. 4. СМО мультипроцессора с организацией NUMA При моделировании были проанализированы два варианта работы мультипроцессорной системы:

- каждый процессор исполняет собственный набор программ, который, в основном, помещается в ло-

кальной памяти; вероятность обращения к удаленной памяти невелика (условно MIMD);

- все процессоры исполняют некий единый программный комплекс, данные для которого равномерно

распределены по всей памяти, вероятности обращения к модулям памяти равны (условно MISD).

Для системы с организацией UMA оба варианта равнозначны, так как в такой системе отсутствуют

понятия локальной и удаленной памяти.

В качестве оценки архитектуры была использована латентность подсистемы памяти, измеряемая в

наносекундах. Необходимо сразу отметить, что значения латентности нельзя считать точными при ра-

боте с СМО открытого типа. Результатом является не точное время ожидания процессором данных из

памяти, но коэффициент совместимости быстродействия процессора и подсистемы памяти. Чем коэффици-

ент больше, тем больше разница в производительностях в пользу процессора, тем более ощутимы в

реальной системе задержки, связанные с получение данных из памяти. Для визуального представления

значения таких коэффициентов был проведен ряд расчетов с разным входным потоком заявок (с разной

частотой процессоров системы).

В результате моделирования были получены значения, представленные на рис. 5:

Page 3: МОДЕЛИРОВАНИЕ ФУНКЦИОНАЛЬНЫХ УЗЛОВ ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ

Рис. 5. Зависимость латентности подсистемы памяти от частоты потока запросов в память

На графике виден расклад сил среди архитектур в работе подсистемы памяти. Анализируя коэффици-

енты загрузки отдельных СМО, можно определить узкие места архитектур, а изменяя время обработки в

СМО или число каналов, можно определить оптимальные параметры узлов, избавляющие систему от узких

мест. Во все трех вариантах узким местом являлась общая шина. Проведем повторные расчеты с ис-

пользованием «двухканальной» общей шины (рис. 6).

На рис. 6 видно, как сильно уменьшилось время реакции системы с добавлением второго канала об-

щей шины. По результатам расчетов можно сделать выводы и предложить вполне конкретные решения по

увеличению быстродействия.

Рис. 6. Зависимость латентности подсистемы памяти от частоты потока запросов в память (двухка-

нальная общая шина).

Из проведенного исследования можно сделать следующие выводы. Предложенным способом можно со-

здавать модели в любом приближении: от исследования вычислительной системы в целом до анализа

мелкого функционального узла – алгоритм создания модели и расчеты при этом не изменятся. Произве-

дя вычисления, становятся очевидны части модели, которые не справляются с предложенной нагрузкой.

Локализовав узкое место системы, мы имеем возможность, изменив модель, провести исследование ха-

рактеристик узла, необходимых для избавления системы от перегрузки. Изменение модели производится

очень легко и не требует построения новой модели. Предложенный способ дает не только качественную

оценку производительности, но и количественную.

Выровненная по производительности своих узлов система обладает большей надежностью, следова-

тельно, можно говорить о повышении качества устройства. Предложенный способ в настоящее время

апробируется в процессе проектирования крупного узла вычислительной системы.

Литература 1. Р.А. Бикташев, В.А. Кичкидов: Анализ работы с памятью процессоров современных персональных

ЭВМ и мультипроцессоров на их основе. - "Технологии Microsoft в теории и практике программирова-

40

50

60

70

80

90

100

110

120

130

140

150

Суммарный поток заявок от 4 процессоров (з/нс)

Лете

нтн

ость

си

сте

м (

нс)

UMA 67 100 327

NUMA(MISD) 55 64 78 104 191

NUMA(MIMD) 42 46 52 60 71 86 109 150

0,01 0,02 0,03 0,04 0,05 0,06 0,07 0,08

40

50

60

70

80

90

100

110

120

130

140

150

Суммарный поток заявок от 4 процессоров (з/нс)

Летен

тн

ость

си

стем

с)

UMA 55 58 65 76 100 192

NUMA(MISD) 52 55 60 65 73 83 97 108

NUMA(MIMD) 42 46 52 60 71 86 109 150

0,01 0,02 0,03 0,04 0,05 0,06 0,07 0,08

Page 4: МОДЕЛИРОВАНИЕ ФУНКЦИОНАЛЬНЫХ УЗЛОВ ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ

ния" - материалы конференции под ред. Проф. Р.Г. Стронгина, Нижний Новгород, издательство Нижего-

родского университета, 2006 г. 338с.

2. Р.А. Бикташев, В.С. Князьков. Многопроцессорные системы: архитектура, топология, анализ

производительности: Учебное пособие. - Пенза: Пенз. гос. ун-т, 2004 г.


Recommended