Скачать 288.69 Kb.
|
Личный вклад автора. Все научные результаты диссертации получены автором лично. Публикации. По результатам диссертации опубликовано 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.
Рис. 2. Граф софт-архитектуры На следующем уровне располагаются макрообъекты, в состав которых входят узлы и объекты. Макрообъект может быть представлен в виде графа M, приведенного на рис. 3. Узлы составляют третий уровень в иерархии софт-архитектуры и предназначены для упрощения системы управления и структурирования описаний. На самом нижнем – четвертом уровне иерархии софт-архитектур - размещены объекты, являющиеся простейшими неделимыми элементами.
Рис. 3. Граф макрообъекта Перечень объектов, из которых могут формироваться макрообъекты и узлы, состоит из следующих типов элементов: процессоров, элементарных процессоров, динамических и статических коммутаторов, контроллеров распределенной памяти, интерфейсов, функциональных устройств, арифметико-логических устройств, внутренней памяти, регистров и преобразователей команд. Все типы объектов разделены на три класса по способу управления: непрограммируемые, операционные и процессорные. Далее во второй главе выполнена формализация всех перечисленных типов элементов софт-архитектур реконфигурируемых вычислительных систем. Выделены их основные отличительные характеристики, которые должны найти свое отражение в конструкциях языка программирования софт-архитектур. На рис. 4 приведен пример формализованного описания функциональных устройств. Функциональные устройства принадлежат к классу непрограммируемых объектов и выполняют одну функцию преобразования F, вследствие чего в их составе отсутствуют управляющие входы.
Рис. 4. Обобщенная структурная схема функциональных устройств На основе формализованного описания элементов софт-архитектур и методов программирования софт-архитектур разработан синтаксис языка программирования софт-архитектур SADL, включающий в свою структуру конструкции, позволяющие программировать структурный, синхронизационный и управляющий компоненты софт-архитектур. Любой из элементов софт-архитектуры может быть представлен следующим набором характеристик: типом элемента, именем элемента, описанием входов/выходов, именем файла VHDL-описания, переменными, участвующими в описании внутренней структуры элемента, описанием внутренней структуры элемента. Входы и выходы элементов софт-архитектуры разделены на 5 типов по их предназначению. Каждый из типов обозначается в языке SADL соответствующим зарезервированным словом: In, Out – информационные выходы и выходы; Ins, Outs – синхронизирующие входы и выходы; h – управляющие входы. Кроме того, в качестве входов/выходов процессорных объектов используются следующие зарезервированные слова: asm – описывает ассемблеры процессорных объектов; interface – описывает интерфейсы, подключаемые к процессорным объектам. Введение нескольких типов входов/выходов дает возможность архитектору самостоятельно создавать системы управления и синхронизации. Для каждого из типов элементов разработаны форматы представления внутренней структуры, сгруппированные следующим образом: описание внутренней структуры операционных и непрограммируемых объектов; описание динамически перестраиваемых процессорных объектов; описание внутренней структуры софт-архитектур, макрообъектов и узлов. Описание внутренней структуры операционных и непрограммируемых объектов заключается в формализации их вычислительных возможностей при помощи набора шаблонов. На рис. 5 представлено описание арифметико-логического устройства ALU_1.
Рис. 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 для размещения софт-архитектуры на аппаратной платформе и отображения на нее структурной составляющей параллельной программы. |
Методы решения задач с переменной интенсивностью потоков данных на... Специальность 05. 13. 11 Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей | Рабочая программа учебной дисциплины вычислительные системы Целью курса «Вычислительные системы» является изучение общих сведений о многопроцессорных вычислительных системах, включая их назначение,... | ||
Методы и средства организации обработки потоковой информации на распределенных... Специальность 05. 13. 11 Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей | Развитие языков программирования Прогресс компьютерных технологий определил процесс появления новых разнообразных знаковых систем для записи алгоритмов – языков программирования.... | ||
Книга фгуп «Санкт-Петербургское окб «Электроавтоматика» Рассматриваются основные принципы построения перспективных бортовых цифровых вычислительных систем в авиационном приборостроении.... | Мурачев Е. Г. М91 Средства и методы программирования на алгоритмическом... М91 Средства и методы программирования на алгоритмическом языке С++: Пособие по выполнению лабораторных работ. – М.: Мгту га, 2007.... | ||
Учебной дисциплины «Архитектура ЭВМ и вычислительных систем» предназначена... Учебная дисциплина «Архитектура ЭВМ и вычислительных систем» является общепрофессиональной дисциплиной, формирующей базовый уровень... | Рабочая программа по дисциплине с 3 «Технологии и методы программирования» Цель преподавания дисциплины: Целью изучения дисциплины «Технологии и методы программирования» является изучение современных технологий... | ||
Ульяновский государственный технический университет «Программная инженерия» магистерская программа «Методы и средства разработки программных систем» на кафедре «Информационные системы»... | Ветвление на языке Паскаль Вести понятие условного оператора на языке программирования Паскаль, обучить приемам построения простых вычислительных алгоритмов... | ||
Образовательное учреждение высшего профессионального образования... Цель курса «Архитектура вычислительных систем» состоит в изучении теоретических принципов, конструктивных и технологических основ... | Программа дисциплины «Архитектура вычислительных систем» для направления... Программа предназначена для преподавателей, ведущих данную дисциплину, учебных ассистентов и студентов направления подготовки 010400.... | ||
Рабочая программа по учебной дисциплине Высокоуровневые методы информатики... Рабочая программа предназначена для преподавания дисциплины «Высокоуровневые методы информатики и программирования» студентам очной... | Учебно-методический комплекс по дисциплине «Методы оценки эффективности вычислительных систем» ВС. В рамках курса рассматриваются вопросы анализа производительности и эффективности вс на основе использования различных измерительных... | ||
Рабочая программа учебной дисциплины «программные средства пэвм» Эвм и информационных систем, состава и структуры программного обеспечения, а также получение практических навыков работы в среде... | Рабочая программа учебной дисциплины «программные средства пэвм» Эвм и информационных систем, состава и структуры программного обеспечения, а также получение практических навыков работы в среде... |