Контроллер разделяемой памяти для многопроцессорной вычислительной системы

• анализ скорости потока данных;

• раскрытие параллельности;

• раскрытие каскадирования;

• раскрытие компонентов. Для всех компонентов повтор пунктов 3, 4, 5;

• укладка вычислительной структуры на архитектуру вычислительной

системы.

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

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

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

1. Каляев И.А., Левин И.И. Высокопроизводительные многопроцессорные вычислительные системы с программируемой архитектурой на основе ПЛИС // Сб. трудов конференции «Моделирование 2006». Киев, 2006. С. 41-47.

2. Каляев А.В., Левин И.И. Модульно-наращиваемые многопроцессорные системы со структурно-процедурной организацией вычислений. М.: Янус-К, 2003. 380 с.

3. Каляев А.В. Многопроцессорные вычислительные системы с программируемой архитектурой. М.: Радио и Связь, 1984. 240 с.

4. Левин И.И., Сластен Л.М. Реализация информационных графов в архитектуре многопроцессорных систем//СуперЭВМ и многопроцессорные вычислительные системы. Материалы Международной научно-технической конференции. Таганрог: Изд-во ТРТУ, 2002. С. 98-100.

5. Левин И.И., Сластен Л.М. Алгоритм коммутации элементов многопроцессорной системы со структурно-процедурной организацией вычислений//Методы и средства обработки информации: Труды первой Всероссийской научной конференции / Под ред. Л.Н. Королева. - М.: Издательский отдел факультета вычислительной математики и кибернетики МГУ им. М.В. Ломоносова, 2003. С. 119-124.

И.И. Левин, Н.Н. Дмитренко, С.В. Носков

КОНТРОЛЛЕР РАЗДЕЛЯЕМОЙ ПАМЯТИ ДЛЯ МНОГОПРОЦЕССОРНОЙ ВЫЧИСЛИТЕЛЬНОЙ СИСТЕМЫ

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

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

Альтернативой являются многопроцессорные вычислительные системы со структурно-процедурной организацией вычислений (МВС СПОВ), которые в каждый момент времени представляют собой специализированный конвейерный вычислитель, структура которого адекватна структуре решаемой задачи или ее фрагмента. Данная архитектура теоретически обеспечивает реальную производительность системы, близкую к пиковой, для широкого класса решаемых задач. Для многопроцессорной вычислительной системы со структурно-процедурной организацией вычислений темп обработки информации равен скорости ее поступления, поэтому для достижения максимальной производительности необходимо организовывать непрерывные потоки большого количества данных на частоте работы вычислительного устройства. Для реализации этой задачи предназначен контроллер динамической памяти (КДП). Совокупность КДП и стандартных микросхем ОЗУ обеспечивает построение системы разделяемой памяти МВС СПОВ.

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

Память многопроцессорной вычислительной системы реализована с использованием микросхем синхронной динамической памяти фирмы Micron с максимальной рабочей частотой 166 МГц, объемом 32 Мбайта (8Мх32разряда). Каждая микросхема содержит четыре банка памяти по 4096 строк по 512 32-разрядных слов. Длительность цикла регенерации составляет 64 мс. Наибольшей скорости выполнения циклов записи/чтения удается добиться при работе в пределах одной строки. В случае смены строки возникает техническая пауза длительностью порядка десяти тактов, необходимая для выполнения деактивации текущей и активации новой строки. При произвольной смене строк зависимость количества слов N, передаваемых за одну секунду, от величины приращения адреса ДА определяется по формуле

L F

N =___________стр р

~ L + DAN ’

стр сс

где L(;Xp=512 - длина строки;

Fp=166 МГц - рабочая частота;

Ncc=6 - число тактов, требуемое для смены строк.

Если данные считываются (записываются) в естественном порядке (ДА=1), то скорость обращения составляет N» 164 млн. слов/с. Если же при каждом обращении к памяти осуществляется переход к новой строке (ДА>512), то N-24 млн. слов/с, т.е. скорость доступа уменьшается в семь раз. Кроме того, нельзя забывать о необходимости периодической регенерации строк, выполнение команды регенерации одной строки также требует паузы порядка 10 тактов.

Для повышения скорости доступа к блоку разделяемой памяти предложено выполнять блочное обращение к ОЗУ, причем целесообразно, чтобы длина блоков данных была равна длине строки памяти. Для реализации данного подхода в состав КДП введена дополнительная память FIFO объемом 512 слов, осуществляющая синхронизацию потоков данных, периода активации памяти и регенерации

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

Проектирование КДП выполнялось на САПР ISE 7.1i фирмы Xilinx. КДП разработан как IP-ядро (Intellectual Property), занимающее порядка 100 тыс. вентилей, которое может быть включено в практически любую ПЛИС, содержащую более 300 тыс. эквивалентных вентилей.

Разработана система команд КДП, включающая в себя операторы управления, операторы циклического обращения, операторы пересчета параметров. Оператор управления LOOP предназначен для организации циклов. Операторы управления условного перехода IF по значению ячейки памяти программ или по значению ячейки памяти данных осуществляют переход: если значение ячейки памяти равно нулю, то переход осуществляется к следующему оператору, иначе переход осуществляется к оператору J.

Операторы циклического обращения выполняют следующие действия:

1°. Формирование исполнительного адреса

А. := ВНА., i = 0, k -1,

где Ai - исполнительный адрес канала, ВНА - вектор начальных адресов.

2°. Производится обращение по всем каналам по адресам Ai.

3°. Модернизируется исполнительный адрес i-го канала:

В. := А. + ВАП.,

где ВАП - вектор адреса приращения.

4°. Если ТА=1 (тип адресации инкрементный), то переход к 5°.

5°. Если B>MOD, то переход к 6°, иначе к 7°, где MOD - порог.

6°. Пересчет исполнительного адреса Ai:=C+ B-MOD, переход к 2°,

где С - нижняя граница зоны исполнительных адресов.

7°. Ai:=Bi, переход к 2°.

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

Операторы CONTINUE предназначены для организации вложенных циклов.

На рис. 1 показана структурная схема контроллера динамической памяти (КДП).

Рис. 1. Структурная схема КДП

В составе КДП имеется блок интерфейса, который осуществляет взаимодействие между адресной частью КДП и стандартными микросхемами памяти. Блок интерфейса БИ выполняет следующие функции: инициирует микросхемы памяти при подаче питания и установлении тактовой частоты; формирует адреса банка, строки и столбца для записи/чтения данных из внешнего потока адресов, получаемых в КДП, в соответствии с выбранным способом адресации; своевременно подает команду деактивации/активации строк и команд записи/чтения данных с выдержкой требуемых временных интервалов между отдельными командами; своевременно подает команды регенерации памяти.

В состав контроллера памяти входят следующие блоки: блок инициализации памяти (БИ), обеспечивающий подготовку контроллера к работе, а также настраивающий его на один из возможных режимов работы; блок формирования адресов (БФА), предназначенный для выделения из входного 23-разрядного адреса, поступающего от КРП, адреса банка (2 разряда), строки (І2 разрядов) и столбца (9 разрядов), а также подачи разрядов адреса в нужные моменты времени на мультиплексированную шину адреса памяти; блок формирования команд (БФК), предназначенный для формирования требуемых командных последовательностей с установленными временными задержками между отдельными командами; блок регенерации (БР), предназначенный для формирования команд регенерации памяти в необходимый момент времени; блок синхронизации (БС), предназначенный для формирования тактовой частоты для микросхемы SDRAM из внутренней тактовой частоты КДП (ПЛИС); блок ввода-вывода (БВВ), предназначенный для подключения схемы контроллера к выводам ПЛИС.

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

• АШ = "І" совместно с командами чтения/записи включает режим автоматической деактивации строки после выполнения данной команды;

• АШ = "І" совместно с командой деактивации вызывает закрытие активных строк во всех банках.

В процессе работы предполагается использовать следующие команды SDRAM: ACTIVE; READ/WRITE; PRECHARGE; AUTO REFRESH.

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

• команды деактивации всех банков;

• команды регенерации;

• команды активации требуемой строки.

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

Интерфейс контроллера памяти содержит следующие сигналы:

• RqRD, RqWR - запросы на чтение и на запись одного 64-разрядного числа, поступающие от КРП (одновременно с ними в контроллер должен поступить адрес операции);

• ADDR - шина адреса операций чтения/записи, поступающего из блока формирования адресов памяти данных, входящего в состав КРП;

• Dwr - шина данных, по которой поступает информация, предназначенная для записи в SDRAM;

• CLK - внутренний тактовый сигнал КРП, предназначенный для тактирования элементов схемы контроллера и формирования тактовой частоты микросхем памяти;

• SBR - сигнал общего сброса КРП, предназначенный для установки схемы контроллера в исходное состояние;

• CKE, CS, RAS, CAS, WE - стандартные сигналы управления SDRAM;

• CLK_RAM - сигнал тактовой частоты для микросхем памяти;

• A - мультиплексированная шина адреса SDRAM;

• BA - сигналы выбора банка памяти;

• DQ - двунаправленная шина данных SDRAM;

• DQM - сигналы маскирования отдельных разрядов шины данных;

• EQ - внутренний сигнал КРП. Служит для приостановки процессов чте-

ния/записи на время смены строк или выполнения регенерации памяти;

• Drd - внутренняя шина данных, по которой в КРП поступает информация, считанная из SDRAM.

После включения питания блок инициализации (БИ) с заданными временными ограничениями выдает последовательность команд для инициализации микросхемы, загружает по шине адреса регистр управления и осуществляет активацию нулевой строки в нулевом банке. Затем он выдает сигнал окончания инициализации в контроллер. Этот сигнал разрешает работу остальным блокам, после чего в регистр управления SDRAM загружается следующее слово:

0 0 0 0 0 0 0 0 1 1 0 0 0 0

CAS Latency  Длина пакета

Этим устанавливается единичная длина пакета и задержка чтения CL=3 такта.

В режиме ожидания, когда на контроллер не поступает команда, работают только блоки синхронизации и регенерации. БР через заданные промежутки времени, равные І5,625 мкс, выдает запрос на регенерацию в блок формирования адреса. В БФА расположена схема формирования сигнала EQ (признак смены строк и регенерации), который используется как сигнал разрешения синхронизации. После поступления сигнала от блока регенерации сигнал EQ устанавливается в нуль и тем самым приостанавливаются все процессы обмена между КДП и SDRAM. EQ. Все потоки данных, адресов и команд, формируемые в контроллере для памяти данных, фиксируются в их текущем состоянии на время продолжительности процессов регенерации и смены строк. Этим исключается возможность потери данных и смещения информационных, адресных и управляющих потоков друг относительно друга.

При переходе EQ в нулевое состояние в блоке формирования команд вырабатывается цикл регенерации, представляющий собой следующую последовательность команд: PRECHARGE ^ AUTO REFRESH ^ ACTIVE. После этого выдается сигнал окончания регенерации в БФА, и признак EQ принимает единичное значение, в результате чего процессы обмена с памятью возобновляются.

Любое обращение к памяти начинается с поступления запросов RqRD /RqWR и адреса от контроллера. В случае, если новый адрес строки совпадает с адресом строки активной в данный момент, осуществляется обычная операция чтения/записи. Из команды чтения путем задержки на несколько тактов получается сигнал KEEPd, предназначенный для захвата данных с шины DQ. Этот сигнал учитывает задержку CL, заданную для процесса чтения. Если же поступивший адрес принадлежит другой строке, то сигнал EQ сбрасывается в нуль, приостанавливая процессы обмена, и происходит закрытие текущей строки и активация новой. Затем EQ вновь устанавливается в единицу и обмен продолжается.

Мультиплексор адреса (MUX A) работает следующим образом. Во время инициализации через него передается код для загрузки регистра управления. Затем мультиплексор переходит в свое основное рабочее состояние, соответствующее обмену в пределах одной строки. В этом состоянии он пропускает на выход адреса столбцов активной строки (9 разрядов) и адрес банка. При смене строки во время команды активации мультиплексор на один такт переключается и передает на шину адрес новой строки (І2 разрядов) и адрес банка, который также может измениться.

Оконечные каскады шин данных DQ!, DQ2 в исходном состоянии работают на прием и переключаются на передачу только при поступлении команд записи данных. На линиях DQM^ DQM2 установлен уровень логического нуля. Режим маскирования данных не используется.

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

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

І. Каляев А.В., Левин И.И. Модульно-наращиваемые многопроцессорные системы со структурно-процедурной организацией вычислений. М.: Янус-К, 2OO3. - 38O с.

Э.В. Мельник, И.В. Блуишвили, И.С. Пуха

МУЛЬТИАГЕНТНАЯ СРЕДА ОРГАНИЗАЦИИ РАСПРЕДЕЛЕННЫХ

ВЫЧИСЛЕНИЙ

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

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