Методы и средства программирования софт-архитектур для реконфигурируемых вычислительных систем





Скачать 288.69 Kb.
НазваниеМетоды и средства программирования софт-архитектур для реконфигурируемых вычислительных систем
страница2/3
Дата публикации24.11.2014
Размер288.69 Kb.
ТипАвтореферат
100-bal.ru > Информатика > Автореферат
1   2   3

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

Публикации. По результатам диссертации опубликовано 17 печатных работ, из них 7 статей, из которых 2 статьи опубликованы в ведущих рецензируемых научных журналах, входящих в Перечень ВАК РФ, тезисы и материалы 10 докладов на международных и российских научно-технических конференциях. По теме исследования получено 3 свидетельства об официальной регистрации программ для ЭВМ, результаты работы отражены в 11 отчетах о НИОКР.

Структура и объем диссертации. Диссертация состоит из введения, четырех глав, заключения, списка использованных источников и двух приложений. Работа содержит 174 страниц основного текста, 62 рисунков, список используемой литературы из 93 источников, 19 страниц приложений.
КРАТКОЕ СОДЕРЖАНИЕ РАБОТЫ
Во введении изложены актуальность темы диссертации, цель и задачи исследования, научная новизна, практическая ценность, основные научные положения, выносимые на защиту, а также приведено краткое содержание каждой из глав.

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

Первый подход к программированию реконфигурируемых систем характеризуется трансляцией параллельных программ на множество логических примитивов ПЛИС. Основными средствами программирования в рамках данного подхода являются: язык описания аппаратуры VHDL и языки программирования высокого уровня, такие как COLAMO. Преимуществом подхода является высокая реальная производительность создаваемых вычислительных структур вследствие их узкой специализированности. К недостаткам относятся длительность трансляции параллельных программ на уровень логических примитивов ПЛИС и статичность получаемых вычислительных структур.

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

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

1) определения перечня объектов для решения задач предметной области;

2) разработки схемотехнического описания объектов при помощи стандартных средств разработки;

3) разработки описания объектов при помощи языка программирования софт-архитектур;

4) размещения полученных описаний в библиотеке элементов софт-архитектур;

5) объединения объектов в функционально законченное устройство – макрообъект при помощи языка программирования софт-архитектур;

6) объединения нескольких макрообъектов в софт-архитектуру при помощи языка программирования софт-архитектур;

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

8) размещения элементов софт-архитектуры на аппаратной платформе.

Для решения прикладных задач при помощи софт-архитектур разработан метод, состоящий из следующих этапов:

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

2) генерации структурного, процедурного и потокового компонентов параллельной программы;

3) отображения структурного компонента параллельной программы на софт-архитектуру реконфигурируемой вычислительной системы;

4) трансляции процедурного компонента параллельной программы на уровень команд устройств софт-архитектуры;

5) формирования загрузочного файла, содержащего команды элементов софт-архитектурой;

6) загрузки конфигурационных файлов ПЛИС, полученных в результате размещения элементов софт-архитектуры на аппаратной платформе реконфигурируемой системы;

7) передачи в софт-архитектуру загрузочного файла;

8) загрузки в софт-архитектуру исходных данных решаемой задачи;

9) запуска программы на исполнение.

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


Рис. 1. Модернизированная структура системного программного обеспечения второго и третьего уровней программирования
В рамках разработанной структуры компоненты системного программного обеспечения выполняют следующие функции: синтезатор Fire!Constructor обеспечивает размещение элементов софт-архитектуры на аппаратные платформы РВС; транслятор COLAMO выполняет декомпозицию параллельной программы на структурный, процедурный и потоковый компоненты; транслятор Argus генерирует загрузочные файлы для софт-архитектуры; синтезатор Stream!Constructor выполняет отображение структурного и процедурного компонентов параллельной программы на уровень команд элементов софт-архитектуры.

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

Во второй главе для реализации методов программирования, приведенных в главе 1, сформирована иерархия элементов софт-архитектур и выполнена формализация описаний элементов софт-архитектур, что позволило разработать язык программирования софт-архитектур SADL. Предлагаемая иерархия софт-архитектур состоит из четырех уровней. На верхнем уровне располагаются софт-архитектуры, в качестве элементов которых могут выступать макрообъекты, объединенные между собой синхронизационными и информационными связями. Структурная составляющая софт-архитектуры может быть представлена в виде графа T, приведенного на рис. 2.





T[M, D, S],

M = {m1, m2,…,mi} – множество макрообъектов;

D = {d1, d2, …, dj} – множество информационных связей;

S = {s1, s2, …, sk} - множество синхронизирующих связей.

Рис. 2. Граф софт-архитектуры
На следующем уровне располагаются макрообъекты, в состав которых входят узлы и объекты. Макрообъект может быть представлен в виде графа M, приведенного на рис. 3. Узлы составляют третий уровень в иерархии софт-архитектуры и предназначены для упрощения системы управления и структурирования описаний. На самом нижнем – четвертом уровне иерархии софт-архитектур - размещены объекты, являющиеся простейшими неделимыми элементами.




M [O, E, D, S, H, DI, SI, O, SO],

O = {o1, o2, …, oi} –объекты;

E = {e1, e2, …, ei} –узлы;

D = {d1, d2, …, dk} –информационные связи;

S = {s1, s2, …, sl} –синхронизирующие связи;

H = {h1, h2, …, hp} –управляющие связи;

DI = {di1, di2, …, diq} –информационные входы макрообъекта;

SI = {si1, si2, …, siq1} –синхронизирующие входы макрообъекта;

DO = {do1, do2, …, dor} –информационные выходы макрообъекта;

SO = {so1, so2, …, sor1} –синхронизирующие выходы макрообъекта

Рис. 3. Граф макрообъекта
Перечень объектов, из которых могут формироваться макрообъекты и узлы, состоит из следующих типов элементов: процессоров, элементарных процессоров, динамических и статических коммутаторов, контроллеров распределенной памяти, интерфейсов, функциональных устройств, арифметико-логических устройств, внутренней памяти, регистров и преобразователей команд. Все типы объектов разделены на три класса по способу управления: непрограммируемые, операционные и процессорные.

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




FU [F, DI, DO, Ins_1, Outs_1]

F – функция преобразования;

DI {di1, di2, …, diq} –информационные входы;

DO {do1, do2, …, dor} –информационные выходы;

Ins_1– синхронизирующий вход;

Outs_1– синхронизирующий выход.

Рис. 4. Обобщенная структурная схема функциональных устройств
На основе формализованного описания элементов софт-архитектур и методов программирования софт-архитектур разработан синтаксис языка программирования софт-архитектур SADL, включающий в свою структуру конструкции, позволяющие программировать структурный, синхронизационный и управляющий компоненты софт-архитектур.

Любой из элементов софт-архитектуры может быть представлен следующим набором характеристик: типом элемента, именем элемента, описанием входов/выходов, именем файла VHDL-описания, переменными, участвующими в описании внутренней структуры элемента, описанием внутренней структуры элемента. Входы и выходы элементов софт-архитектуры разделены на 5 типов по их предназначению. Каждый из типов обозначается в языке SADL соответствующим зарезервированным словом: In, Out – информационные выходы и выходы; Ins, Outs – синхронизирующие входы и выходы; h – управляющие входы. Кроме того, в качестве входов/выходов процессорных объектов используются следующие зарезервированные слова: asm – описывает ассемблеры процессорных объектов; interface – описывает интерфейсы, подключаемые к процессорным объектам. Введение нескольких типов входов/выходов дает возможность архитектору самостоятельно создавать системы управления и синхронизации. Для каждого из типов элементов разработаны форматы представления внутренней структуры, сгруппированные следующим образом: описание внутренней структуры операционных и непрограммируемых объектов; описание динамически перестраиваемых процессорных объектов; описание внутренней структуры софт-архитектур, макрообъектов и узлов.

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


ALI_1 : ALU;

ALU_1 (in: in_1, in_2; Out: out_1; Ins: ins_1; Outs: outs_1; h: h_1;SchFile: ALU_1.vhdl);

Var

In_1, in_2, out_1 : integer size 32;

Ins_1, outs_1 : integer size 16;

h_1 : integer size 2;

Begin

Case h_1 of

0: Out_1 := in_1 + in_2;

1: Out_1 := in_1 - in_2;

2: Out_1 := in_1 * in_2;

3: Out_1 := in_1/in_2;

End;

End.




Рис. 5. Описание арифметико-логического устройства ALU_1
Описание внутренней структуры процессорных объектов заключается в формализации системы команд при помощи конструкций языка SADL. Формат описания процессорных объектов приведен ниже:

ProcessorName (asm: sam1, …, asmi; interface: inter1, …, interj; SchFile : SchFile.vhdl);

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

В третьей главе разработаны алгоритмы транслятора языка SADL. Структура транслятора (рис. 6) состоит из четырех основных частей, выполняющих соответствующие этапы трансляции: лексического анализатора, синтаксического анализатора, этапа подстановки реальных элементов и генератора целевого кода. Библиотека элементов предназначена для хранения в ней уже оттранслированных описаний элементов софт-архитектуры. Таблицы символов содержат информацию о транслируемом элементе. Первый этап трансляции выполняется лексическим анализатором, основная задача которого заключается в разделении исходного текста программы на лексемы.

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


Рис. 6. Структура транслятора языка программирования софт-архитектур SADL
Процесс синтаксического анализа состоит из выполнения следующих частей: построения внутреннего представления элемента софт-архитектуры; построения развернутого графа софт-архитектуры; проверки синтаксиса входного текста на соответствие правилам описания; анализа системы управления и анализа синхронизации. Третий этап трансляции заключается в поиске и подстановке реальных имен объектов на соответствующие места в дереве разбора виртуальных элементов. Включение этого этапа трансляции в общую структуру связано с тем, что в описании может быть указан тип объекта, а не конкретное имя схемотехнического элемента. В этих случаях транслятором выполняются автоматический поиск и подстановка реальных имен элементов на соответствующие места в дерево разбора виртуальных элементов. Ниже приведен алгоритм подстановки реальных элементов:

1º. Определить элементы, требующие замены, и сформировать из них список .

2º. Установить начальное значение счетчика .

3º. Установить начальное значение счетчика.

4º. Определить перечень параметров элемента в соответствии с типом элемента.

5º. , .

6º.  Если параметры элемента из библиотеки соответствуют параметрам , то перейти к п. 8º иначе перейти к 9º.

7º. Добавление найденного элемента в список .

8º. .

9º. .

10º. Если , где – количество элементов соответствующего типа в библиотеке, то перейти к п. 6º.

11º. Если , т.е. ни один элемент из библиотеки не найден, то переход к п. 12º , иначе переход к п. 14º.

12º. Выдать сообщение об ошибке.

13º. Переход к п. 19º.

14º. Поиск в массиве наиболее подходящего элемента .

15º. Добавление найденного элемента в список реальных элементов.

16º. 

17º. 

18º. Если , где – количество элементов в списке , то перейти к п. 3º.

19º Конец.

На основании характеристик рассматриваемого элемента транслятор выбирает наиболее подходящий реальный элемент из библиотеки и подставляет его описание в дерево разбора. Процесс подстановки останавливается, когда все элементы в дереве разбора будут реальными. Последним этапом трансляции описания является генерация целевого кода, в процессе которого элементы из внутреннего представления транслятора преобразуются в промежуточное представление и сохраняются в формате XML. В дальнейшем XML-описание будет использовано синтезатором Fire!Constructor, транслятором COLAMO и синтезатором Steam!Constructor для размещения софт-архитектуры на аппаратной платформе и отображения на нее структурной составляющей параллельной программы.
1   2   3

Похожие:

Методы и средства программирования софт-архитектур для реконфигурируемых вычислительных систем iconМетоды решения задач с переменной интенсивностью потоков данных на...
Специальность 05. 13. 11 Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей
Методы и средства программирования софт-архитектур для реконфигурируемых вычислительных систем iconРабочая программа учебной дисциплины вычислительные системы
Целью курса «Вычислительные системы» является изучение общих сведений о многопроцессорных вычислительных системах, включая их назначение,...
Методы и средства программирования софт-архитектур для реконфигурируемых вычислительных систем iconМетоды и средства организации обработки потоковой информации на распределенных...
Специальность 05. 13. 11 Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей
Методы и средства программирования софт-архитектур для реконфигурируемых вычислительных систем iconРазвитие языков программирования
Прогресс компьютерных технологий определил процесс появления новых разнообразных знаковых систем для записи алгоритмов – языков программирования....
Методы и средства программирования софт-архитектур для реконфигурируемых вычислительных систем iconКнига фгуп «Санкт-Петербургское окб «Электроавтоматика»
Рассматриваются основные принципы построения перспективных бортовых цифровых вычислительных систем в авиационном приборостроении....
Методы и средства программирования софт-архитектур для реконфигурируемых вычислительных систем iconМурачев Е. Г. М91 Средства и методы программирования на алгоритмическом...
М91 Средства и методы программирования на алгоритмическом языке С++: Пособие по выполнению лабораторных работ. – М.: Мгту га, 2007....
Методы и средства программирования софт-архитектур для реконфигурируемых вычислительных систем iconУчебной дисциплины «Архитектура ЭВМ и вычислительных систем» предназначена...
Учебная дисциплина «Архитектура ЭВМ и вычислительных систем» является общепрофессиональной дисциплиной, формирующей базовый уровень...
Методы и средства программирования софт-архитектур для реконфигурируемых вычислительных систем iconРабочая программа по дисциплине с 3 «Технологии и методы программирования»
Цель преподавания дисциплины: Целью изучения дисциплины «Технологии и методы программирования» является изучение современных технологий...
Методы и средства программирования софт-архитектур для реконфигурируемых вычислительных систем iconУльяновский государственный технический университет
«Программная инженерия» магистерская программа «Методы и средства разработки программных систем» на кафедре «Информационные системы»...
Методы и средства программирования софт-архитектур для реконфигурируемых вычислительных систем iconВетвление на языке Паскаль
Вести понятие условного оператора на языке программирования Паскаль, обучить приемам построения простых вычислительных алгоритмов...
Методы и средства программирования софт-архитектур для реконфигурируемых вычислительных систем iconОбразовательное учреждение высшего профессионального образования...
Цель курса «Архитектура вычислительных систем» состоит в изучении теоретических принципов, конструктивных и технологических основ...
Методы и средства программирования софт-архитектур для реконфигурируемых вычислительных систем iconПрограмма дисциплины «Архитектура вычислительных систем» для направления...
Программа предназначена для преподавателей, ведущих данную дисциплину, учебных ассистентов и студентов направления подготовки 010400....
Методы и средства программирования софт-архитектур для реконфигурируемых вычислительных систем iconРабочая программа по учебной дисциплине Высокоуровневые методы информатики...
Рабочая программа предназначена для преподавания дисциплины «Высокоуровневые методы информатики и программирования» студентам очной...
Методы и средства программирования софт-архитектур для реконфигурируемых вычислительных систем iconУчебно-методический комплекс по дисциплине «Методы оценки эффективности вычислительных систем»
ВС. В рамках курса рассматриваются вопросы анализа производительности и эффективности вс на основе использования различных измерительных...
Методы и средства программирования софт-архитектур для реконфигурируемых вычислительных систем iconРабочая программа учебной дисциплины «программные средства пэвм»
Эвм и информационных систем, состава и структуры программного обеспечения, а также получение практических навыков работы в среде...
Методы и средства программирования софт-архитектур для реконфигурируемых вычислительных систем iconРабочая программа учебной дисциплины «программные средства пэвм»
Эвм и информационных систем, состава и структуры программного обеспечения, а также получение практических навыков работы в среде...


Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
100-bal.ru
Поиск