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

кандидата технических наук
Салибекян, Сергей Михайлович
город
Москва
год
2012
специальность ВАК РФ
05.13.15
цена
450 рублей
Диссертация по информатике, вычислительной технике и управлению на тему «Разработка и анализ объектно-атрибутной архитектуры распределенной вычислительной системы с управлением потоком данных»

Автореферат диссертации по теме "Разработка и анализ объектно-атрибутной архитектуры распределенной вычислительной системы с управлением потоком данных"

На правах рукописи

005015915

Салибекян Сергей Михайлович

РАЗРАБОТКА И АНАЛИЗ ОБЪЕКТНО-АТРИБУТНОЙ АРХИТЕКТУРЫ РАСПРЕДЕЛЕННОЙ ВЫЧИСЛИТЕЛЬНОЙ СИСТЕМЫ С УПРАВЛЕНИЕМ ПОТОКОМ ДАННЫХ

Специальность -

05.13.15 Вычислительные машины, комплексы и компьютерные сети

Автореферат

диссертации на соискание ученой степени кандидата технических наук

Москва 2012

005015915

Работа выполнена в Федеральном бюджетном государственном образовательном учреждении высшего профессионального образования «Московский государственный институт электроники и математики (технический университет)»

Научный руководитель:

кандидат технических наук, доцент, профессор кафедры ВсиС МИЭМ Панфилов Пётр Борисович

Официальные оппоненты:

Плоткин Арнольд Леонидович

Кечиев Леонид Николаевич

д.т.н., проф., руководитель программы ЗАО «Интел А/О»

университетской

д.т.н., проф., зав. кафедрой «Радиоэлектронные и телекоммуникационные устройства и системы» Московского государственного института электроники и математики

Ведущая организация:

ОАО «Научно-исследовательский институт «Аргон»»

Защита состоится "22" мая 2012 г. в 12 часов на заседании диссертационного совета Д212.133.03 при ГБОУ ВПО «Московский государственный институт электроники и математики (технический университет)» по адресу: 109028, г.Москва, Б.Трехсвятительский пер., д.З.

Отзыв на автореферат в двух экземплярах, заверенный гербовой печатью, просим выслать по адресу: 109028, г.Москва, Б. Трехсвятительский пер., д.З.

С диссертацией можно ознакомиться в библиотеке ГБОУ ВПО «Московский государственный институт электроники и математики (технический университет)».

Автореферат разослан "_" апреля 2012 г.

Ученый секретарь диссертационного совета Д 212.133.03 д.т.н., доцент

Леохип Ю.Л.

ОБЩАЯ ХАРАКТЕРИСТИКА РАБОТЫ

Актуальность работы.

Парадигма управления вычислительным процессом с помощью потока данных (парадигма dataflow) рассматривается многими исследователями и разработчиками вычислительных систем (ВС) в качестве перспективного направления развития вычислительной техники и альтернативы доминирующему на протяжении последних десятилетий подходу, основанному на управлении вычислительным процессом посредством потока команд (парадигма control flow). В современных ВС организация вычислений по принципу control flow поддерживается как на аппаратном уровне (процессорная архитектура фон Неймана), так и на программном (наиболее популярные парадигмы программирования - процедурное и объектно-ориентированное (ООП) - так же работают по данному принципу). Управлению вычислениями посредством потока команд присущи ряд характерных свойств, которые могут рассматриваться как серьезные ограничения в развитии вычислительной техники, особенно при переходе к массивным параллельным и распределенным вычислительным структурам, а именно:

- негибкая архитектура ВС (формат команд жёстко задан);

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

- неудобство организации распределенных вычислений в связи с тем, что фон-неймановская программа может полноценно функционировать только в пределах единого адресного пространства вычислительного узла. Широко применяемый в настоящее время механизм удалённого вызова процедур достаточно громоздок: при вызове удалённой процедуры необходимо организовывать сложный интерфейс описания передаваемых процедуре параметров. Это происходит из-за того, что, согласно парадигме control flow, все параметры процедуры должны передаваться одновременно;

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

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

- трудность проектирования и моделирования гетерогенных (состоящих из вычислительных узлов различной архитектуры) программно-аппаратных комплексов;

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

Серьезные надежды на преодоление указанных ограничений связываются с развитием и внедрением в практику построения ВС парадигмы управления вычислительным процессом dataflow. История исследований проблематики dataflow-ВС и ВС с динамической архитектурой развивается с 70-х годов прошлого века, особый вклад в ее разработку внесли такие зарубежные и отечественные ученые как Герд, Арвинд, Катайл, Деннис, Карп, Миллер, Адаме, Клей, B.C. Бурцев, В.М.Глушков, В.А.Торгашев.

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

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

Для того, чтобы реальным стал серьезный прорыв в области dataflow-систем, необходимо, прежде всего, предложить новую архитектуру ВС, построенную в парадигме dataflow, с характеристиками, которые позволяли бы ей конкурировать по производительности и удобству использования с control flow-системами, как на аппаратном, так и на программном уровнях.

Цель и задачи работы

Целью работы является разработка и исследование новой архитектуры универсальной ВС с управлением потоком данных и разработка языка программирования для описания алгоритма решения вычислительной задачи для dataflow-BC.

Для достижения поставленных целей требуется решение следующих основных

задач:

1. Анализ существующих аппаратных и программных решений dataflow-BC;

2. Разработка и аппаратной и программной архитектур dataflow-BC;

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

4. Анализ разработанной архитектуры;

5. Разработка оптимальной организации среды создания и запуска ОА-образов:

6. Разработка основных приёмов программирования в ОА-архитектуре.

7. Реализация среды создания и выполнения ОА-образа

8. Решение практических задач с помощью среды создания и выполнения ОА-

образа.

Методы исследования. Теоретические исследования проведены с использованием методов дискретной математики (теории множеств, теории графов, математической логики).

Экспериментальные исследования. Решение прикладных задач на базе разработанной среды создания и выполнения ОА-образа.

На защиту выносятся:

1. Принципы атрибутной архитектуры;

2. Принципы объектно-атрибутной (OA) архитектуры;

3. Метод организации и запуска ОА-образа;

4. Алгоритмы реализации логики работы основных типов ФУ;

5. Метод вывода абстрактных данных в ОА-системе;

6. Реализация среды создания и выполнения ОА-образа;

7. Решение практических задач с помощью ОА-программирования;

8. Метод автономного (без подключения оборудования) моделирования распределенной ОА-системы.

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

1. Разработана атрибутная архитектура ВС с управлением потоком данных;

2. Разработана объектно-атрибутная архитектура ВС, с управлением данных, способная работать с абстрактными данными.

3. Разработан язык программирования для описания алгоритма для атрибутной и объектно-атрибутной ВС.

4. Предложена математическая модель для описания работы dataflow-BC с распределенным управлением.

5. Предложен способ автономного (без подключения внешнего оборудования) моделирования систем автоматизации.

6. Создана программное обеспечение, работающее по принципам объектно-атрибутной архитектуры.

Практическая значимость

1. ВС, построенные по принципам атрибутной и объектно-атрибутной архитектур обеспечивают высокий параллелизм вычислений и гибкость организации вычислительного процесса.

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

3. Программная реализация ВС разработанной архитектуры обладает кроссплатформенностию.

4. В ОА-архитектуре обеспечивается абстракция данных и программы.

5. Созданная математическая модель более практичная для моделирования атрибутной и объектно-атрибутной ВС и параллельного вычислительного процесса, чем применяемая сейчас модель сетей Петри.

Связь исследования с федеральными целевыми программами исследований

Диссертационные исследования составили основу научно-исследовательской работы на тему «Исследование и разработка архитектуры и среды программирования перспективной суперкомпьютерной системы на основе динамической модели вычислений с управлением потоком данных», выполняемой коллективом кафелдры вычислительных систем и сетей МИЭМ в рамках Федеральной целевой программы «Исследования и разработки по приоритетным направлениям развития научно-технологического комплекса науки на 2007-2013 годы» Министерства образования и науки Российской Федерации (шифр заявки «2011-1.4-514-034-018»),

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

Реализация результатов. Результаты диссертационной работы внедрены и нашли практическое использование в центре Психолого-педагогической реабилитации и коррекции «Строгино» при создании программно-аппаратного комплекса диагностики и реабилитации «Термопульсатор».

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

Основные теоретические и практические результаты диссертации использовались при непосредственном участии автора при проведении НИР по тематическому плану.

Разработанная архитектура применялась при создании программы «Среда создания и запуска объектно-атрибутных образов».

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

Апробация работы. Основные положения диссертационной работы докладывались на конференциях: IX Всероссийская научная конференция «Нейрокомпьютеры и их применение» (доклад был рекомендован для публикации в журнале «Нейрокомпьютеры: разработка и применение»); Юбилейной научно-технической конференции «Моделирование авиационных систем», 12-14 апреля 2011; на III Международной научно-практической конференции (Ростов-на-Дону 10-12 мая 2011 г.) (доклад был рекомендован для публикации в журнале «Информационные технологии»); на V Международной научно-практической конференции «Объектные системы» (Ростов-на-Дону 10-12 декабря 2011 г.); на конференции «Развитие суперкомпьютерных и грид-технологий в России» в рамках «Второго Московский Суперкомпьютерного форума» Россия, Москва, ВВЦ 26-27 октября 2011 года; на кафедре «Вычислительны системы и сети» использовалась в курсовом проектировании по дисциплине «Высокопроизводительные вычислительные системы», в лабораторных работах по дисциплине «Конструкторско-технологическое обеспечение производства ЭВМ».

Публикации. Основные результаты работы изложены в 11 публикациях, в том числе в четырех статьях, опубликованных в журналах, рекомендуемых ВАК.

На программу создания и запуска объектно-атрибутного образа получено свидетельство о государственной регистрации программы для ЭВМ №2011617079.

Структура и объём работы Диссертация состоит из Введения, четырёх глав, и Заключения. Основной текст изложен на 183 машинописных страницах, содержит 105 рисунков, список литераторы включает 58 наименований.

КРАТКОЕ СОДЕРЖАНИЕ РАБОТЫ

Во введении обоснована актуальность работы, сформулированы цель работы и перечень решаемых задач. Кратко изложено содержание работы, сформулированы научная новизна и практическая полезность работы. Дается краткое введение в dataflow-архитектуру ВС, а также сравнение dataflow и классической control flow архитектур ВС. Представим вычислительный процесс (ВП) в виде вычислительного (потокового) графа (вершинами графа будут являться операции, производимые над данными, а к дугам приписываются передаваемые между операциями данные). В концепции control flow алгоритм вычислений задаётся с помощью описания узлов графа. Так, в фон-неймановской машине команда имеет следующие поля: код операции (описание действия над данными), адрес первого операнда, адрес второго операнда, адрес ячейки памяти, куда следует записать результат). На программном уровне также преобладает подход control flow: в классической программе процедура или функция, по сути, является укрупнённой командой - она описывает определённые действия, которые будут производиться над операндами, передаваемыми в качестве параметров. В парадигме же dataflow акцент делается на описание передачи данных между узлами графа, описывающими операции над данными.

В первой главе приводится обзор и анализ существующих программных и аппаратных решений вычислительных систем (ВС), управляемых потом данных. Даётся классификация аппаратных решений dataflow: статический dataflow, динамический dataflow, dataflow с памятью фреймов, реализация специализированных dataflow-ВС на ПЛМ (FPGA). Приводятся примеры конкретных dataflow-ВС: Manchester Dataflow Computer, Manchester Dataflow Computer, проект Moonson и т.д. Также проводится анализ языков программирования, работающих в парадигме dataflow, таких как LUCID, ID (IRVINE DATAFLOW), Val, SISAL, POST, ПИФАГОР, Mozart, DCF. Выясняются причины недостаточной популярности подобных языков в среде программистов-профессионалов.

Делается вывод, что главной причиной низкой по сравнению с классическим процессором производительности аппаратных dataflow-ВС кроется в том, что в качестве вычислительного ядра подобных систем выступает классический процессор, а окружающее его оборудование, предназначенное для организации управления ВП с помощью потока данных, является лишь «обременительной» нагрузкой для этого ядра. Dataflow-ВС, на базе ПЛИС хоть и не имеют фон неймановского вычислительного ядра, и обладают высокой производительностью, однако не являются универсальными системами, т.к. их архитектура заточена на решение конкретной вычислительной задачи.

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

На основании выводов по проведенному анализу сформулированы цели и основные задачи исследования.

Во второй главе рассматриваются базовые понятая разработанной автором атрибутной и объектно-атрибутной архитектур (А- и ОА-архитектуры). Приводится математическая модель А-архитектуры.

Описание атрибутной (А-) архитектуры включает определение следующих основных понятий:

Информационная пара (ИП) (атрибутированные данные) - совокупность нагрузки (данных или ссылки на информационную конструкцию), и ярлыка/атрибута (уникального идентификатора), описывающего нагрузку.

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

Милликоманда (мК) - информационная пара, где ярлык указывает ФУ-ву, каким образом следует обрабатывать прикрепленные к нему данные.

Для реализации атрибутной (милликомандной) ВС с централизованным управлением используется следующая архитектура (рис. 1).

Рис. 1 .Милликомандный/атрибутный процессор с цешрализованиым управлением (ДШмК - дешифратор милликоманд, ША - шина атрибутов, ШД - шина данных)

Атрибутная ВС состоит из нескольких автономных ФУ, объединённых шиной данных (ШД) и шиной атрибутов/милликоманд (ША). Генератор атрибутов (ГА) представляет собой ФУ, которое специализируется на выборке из ОП милликоманд, составляющих программу вычислений. ГА выдаёт выбранные из ОП милликоманды на ША (в состав ГА входит счётчик милликоманд, в котором хранится адрес текущей выбираемой милликоманды; после выборки милликоманды счётчик автоматически увеличивается на 1). ШД используется для обмена данными мемеду ФУ. Милликоманда состоит из двух полей: номер ФУ, которому она предназначается, и атрибута, описывающего передаваемые данные. Цикл работы системы состоит из двух тактов: такта запроса данных и такта выдачи данных. На первом такте ГА выдает на ША мшшикоманду запроса данных. Все ФУ принимают и дешифрируют милликоманду, приходящую по ША, с помощью дешифратора милликоманд (ДШмК). В том случае, если ФУ определяет, что в первом поле милликоманды стоит не его уникальный номер, то оно её игнорирует. В том же случае, когда значение в поле «номер ФУ» совпадает с номером ФУ, ФУ принимает милликоманду и по второму полю (атрибут) определяет, какие данные и в каком формате ему следует выдать на ШД. После выдачи значения на ШД начинается второй такт работы системы: ГА выбирает из ОП следующую милликоманду и выдает ее на ША. ФУ, которому милликоманда предназначается, считывает с ШД выданные на первом такте данные и по атрибуту определяет, какие именно данные и в каком формате к нему

поступили. Две милликоманды, составляющие цикл работы системы (т.е. милликоманды выдачи и приёма данных) будем называть связкой милликоманд. Например, для того, чтобы произвести сложение двух чисел, понадобится следующая миллипрограмма: Регистр ¡.Выдать —> Сумматор.ПервоеСлагаемое Регистр2.Выдать Сумматор.ВтороеСлагаемое Сумматор.Результат —> РегистрРезулътата.Принять

где

символ «-»> - это обозначение связки милликоманд; и

до символа точки «.» стоит мнемоника ФУ, которому адресуется милликоманда, а после «.» - мнемоника атрибута передаваемых или запрашиваемых данных.

В А-системе описывается именно обмен данными между ФУ, что соответствует парадигме dataflow, и в состав ВС не входит фон-неймановское вычислительное ядро. А-система, в отличие от ВС фон Неймана, обладает «врожденным» параллелизмом, ведь последовательно работают лишь ША и ШД, ФУ же работают параллельно (асинхронно): в то время, когда одно ФУ осуществляет вычисления, по 1ЦЦ и ША могут передаваться милликоманды и данные для других ФУ. Если известно время выполнения операций каждым типом ФУ, не будет представлять особого труда произвести статическое распараллеливание программы, заключающееся в синтезе оптимальной последовательности милликоманд, описывающих алгоритм вычислений (такую последовательность милликоманд может, например, синтезировать оптимизирующий компилятор). Линия «Останов» (рис. I) предназначена для предотвращения коллизий во время вычислительного процесса: в том случае, когда происходит запрос данных, которые находятся еще в процессе вычисления, ФУ выдаёт сигнал на линию «Останов» и тем самым блокирует дальнейшую работу ГА; после того, как данные будут получены, ФУ выдаст их на ШД, снимаег сигнал «Останов» - и ГА продолжает свою работу.

В А-архитектуре существует возможность реализовать распределённое управление, когда вычислительным процессом управляют сами ФУ (рис. 2). В такой ВС ШД и ША сливаются в одну шину данных/атрибута (ШДА), по которой единовременно передаются данные (нагрузка) и их ярлык. В состав ФУ вводится специальный регистр, где хранится милликоманда, которую ФУ следует «прикрепить» к результату вычислений: сформированную таким образом ИП выдаётся на ШДА, откуда её могут принять сразу несколько ФУ. Для корректной работы ВС должен быть реализован определённый алгоритм арбитража ШДА, чтобы не возникали коллизии в том случае, когда несколько ФУ станут одновременно выдавать данные на ШДА. В А-архитектуре с распределённым управлением происходит отказ от последнего атрибута фон неймановской машины -оперативной памяти (оперативная память как бы «размазывается» всем ФУ, входящим в состав ВС). Распределённое управление даёт ВС свойство самораспараллеливания вычислений.

Объектно-атрибутная (ОА-) архитектура - это дальнейшее развитие А-архитектуры.

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

В

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

Во вторых, в ОА-архитектуре в качестве нагрузки к передаваемой по ШДА ИП кроме константы может выступать и ссылка на переменную или другую информационную конструкцию. Благодаря механизму применения ссылок и капсул появляется возможность организации ОА-графа, который можно использовать для описания объектов любой сложности (рис 3).

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

ОА-архитектура обеспечивает удобный механизм синтеза описания объектов от простого к сложному. Информационные капсулы или ОА-дерево, описывающие какой-либо объект или часть объекта будем называть абстракцией. Синтез абстракций начинается с информационных атомов (неделимых абстракций), например, при создании системы управления техническим объектом атомами будут сигналы, снимаемые с

датчиков управляемого объекта; для систем смыслового распознания текста атом - это отдельный символ, составляющий текст. Затем ФУ по программе, заложенной в них, синтезируют более сложные абстракции и передают их на следующий уровень обработки (рис. 4). ФУ, работающие на следующем уровне, обрабатывают поток поступивших абстракций с предыдущего уровня, синтезируют на их основе новые абстракции и передают их на уровень выше. На каждом новом уровне число абстракций уменьшается, а их сложность (объём) возрастает. Процесс синтеза абстракций назовем конусом абстракций. Вершиной конуса абстракций является ключевая абстракция, описывающая распознаваемый объект целиком. Исходя из ключевой или промежуточной абстракции ВС может, согласно заложенному алгоритму, выдавать выходные информационные конструкции.

ОА-система может быть реализована как аппаратно, так и программно. При программной реализации ОА-система состоит из двух компонентов: платформы и ОА-образа. Платформа - это программа, описывающая алгоритмы работы ФУ. Эти алгоритмы можно задать как с помощью ассемблера, так и с помощью языка высокого уровня. Например, на языке Си программа реализации логики работы ФУ будет иметь следующий вид:

void ALU(void »Context, int millicomand, void *Load), {switch millicomand case {case О: II сброс (Reset)

case 1: // Установить значение аккумулятора (Set)

case 2: // Сложить (Add)

case 3: // Вычесть (Sub)

case // Выдать содержимое аккумулятора (Put)

// и т д.

)

где

Context - ссылка на контекст (набор виртуальных регистров для хранения промежуточных данных) ФУ;

millicomand - индекс милликоманды;

Load - ссылка на нагрузку милликоманды.

Интерфейс, подпрограммы реализации логики работы ФУ, состоящий из трёх полей, одинаков для всех ФУ. Интерфейс может скрывать за собой все особенности аппаратной платформы вычислительного узла, и для того, чтобы перенести алгоритм функционирования ФУ на другую аппаратную платформу необходимо лишь написать программу реализации логики работы ФУ для нового вычислительного узла. Современные же средства переносимости (на уровне компиляции, на уровне выполнения и на уровне интерпретации языка программирования) в большинстве своём требуют весьма значительных объёма оперативной памяти и быстродействия вычислительного узла. OA-платформа же может функционировать как па мощных супер-ЭВМ, так и на наипростейших микроконтроллерах. Вычислительные узлы различной аппаратной платформы с запущенной на них OA-платформой, объединённые линиями связи, образуют вычислительное пространство, способное работать, как единое целое. Например, имеется возможность распределять части OA-конуса абстракций по различным вычислительным узлам: синтезируемые абстракции могут передаваться как в оперативную память того же вычислительного узла, так и по линиям коммуникации в другие вычислительные устройства (рис. 4).

Переносимость ОА-платформы и возможность эмуляции входного потока атрибутированных данных даёт возможность автономной (без подключения реального оборудования) отладки и аппаратно-программных комплексов (АПК). Так, благодаря мобильности ОА-образ может быть запущен на выполнение как в реальном АПК, так и на обычном персональном компьютере. Механизм же ИП позволяет легко подменять источник входной информации для ВС. Например, в реальной ОА-системе управления техническим объектом датчики, которые снимают параметры управляемого объекта, снабжают эти данные соответствующим атрибутом и отправляют полученную ИП на ШДА. (Входной поток информационных атомов поступает на нижний уровень (основание) конуса абстракций). И ничего не может нам помешать при автономном моделировании создаваемой ВС «запустить» на ШДА ИП, снабженную точно таким же ярлыком, как с датчика, из другого источника данных. Так, набор входных ИП может задавать программист для того, чтобы наблюдать за реакцией ОА-среды на поступающую информацию. Реакцию же системы можно отследить по ИП, которыми по ШДА обмениваются между собой ФУ во время вычислительного процесса. Для моделирования поведения более сложных объектов автоматизации составляются последовательности милликоманд, задается время поступления ИП в эмулятор системы, пишутся специальные программные имитаторы поведения управляемого объекта.

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

В диссертационной работе была предложена собственная математическая (сетевая) модель пошагового функционирования распределенной атрибутной и объектно-атрибутной архитектур (рис. 5). Необходимость разработки новой модели возникла, во-первых, в связи с тем, что такие популярные модели, как сети Петри, являются слишком громоздкими при моделировании параллельных вычислений (событием в сети Петри является активация перехода, в результате которого изменяют свое состояние сразу несколько узлов графа, и потому описание параллельных процессов получается таким сложным). Другой причиной отказа от модели сетей Петри является то, что в этой модели не эмулируется последовательная передача данных по линиям связи: например, все фишки-метки, полученные после активации перехода, тут же попадают в новые состояния (узлы графа), - такая модель неприменима к атрибутной архитектуре, где данные передаются между ФУ последовательно через ШДА.

Исходные данные

Рис. 5. Динамическая модель ОА-системы

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

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

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

Динамическая модель служит для моделирования вычислительного процесса в OA-системе. Строится она следующим образом: нумеруются все входные и выходные вершины вычислительных узлов, каждой входной и выходной вершине сопоставляется соответственно ячейка входного ЕМ и выходного ОМ вектора (в ячейке может хранится null (значение не поступило) или поступивший операнд). Вычислительный процесс в данной модели представляет собой последовательность двух видов событий: активации вычислительных вершин Vi, которая влечёт за собой заполнение элементов вектора входных значений ОМ; и активации передачи данных от входной к выходной вершине, т.е. переписывание значения из ячейки вектора выходных значений в ячейку вектора входных операндов.

Матричная динамическая модель. Пронумеруем подряд элементы массивов входных данных всех узлов атрибутного графа; также подряд пронумеруем элементы массивов результатов выполнения функции и составим входную матрицу смежности между массивами ОМ и ЕМ (столбцы — индексы матрицы ЕМ, строки - индексы матрицы ОМ). Ячейка матрицы Aij будет равна 1, если элемент массива результатов выполнения функции (ОМ) с индексом i, связан с входным элементом входных данных (ЕМ) с индексом j. Полученная таким образом матрица позволит описать переход системы в новое состоянии с помощью матричных операций.

Временное моделирование предназначено для определения с помощью модели времени выполнения алгоритма без учёта вычисления реальных величин, получаемых во время вычислительного процесса. Дополнительно каждой вершине Vi сопоставляется вектор времени готовности данных СТ совпадающий по размерности с множеством выходных значений вершины Vi, где хранятся времена вычисления выходных данных. Также вводятся вектор времени готовности входных данных ЕТ и вектор готовности выходных данных ОТ, куда записывается время поступления операндов. Изначально те элементы вектора ЕТ, в которых хранятся исходные данные, равны 0, т.е. данные в них присутствуют изначально, все остальные ячейки равны. Также в модель вводится параметр Т - текущее модельное время: активироваться могут только те вычислительные вершины Vi, все времена прихода операндов в которые (вектор ЕТ) меньше текущего модельного времени. Соответственно, передача операнда от выходной вершины (из ячейки вектора ОТ) может передаваться в ячейку входного вектора (ЕТ) только в том случае, если время прихода операнда меньше текущего модельного времени.

Численное моделирование предназначено только для получения численных значений, возникающих во время вычислительного процесса. В модель вводятся вектор для хранения входных операндов Е1 и вектор для хранения выходных операндов 01.

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

Выполнение атрибутного графа представляет собой последовательность передачи данных от одного элемента массива выходных данных ОМ к элементам массива входных данных ЕМ и выполнения операций, описанных в вычислительных узлах атрибутного графа, произошедших в определенное время Т (моделирование время начинается в момент Т=0).

1. (ЕМ,ЕТ)=Тгап8^1,ЕМ,ЕТ,ОМ,ОТ,Т,0 - акт передачи данных с индексом ¡;

2. (ОМ,ОТ)=ЕхУ(У, ЕМ,ЕТ, ОМ,ОТ,Т) - активация вычислительной вершины;

где

Transf - функция передачи данных из элемента массива ОМ с индексом 1 в элементы массива ЕМ с индексами из массива Е1 и установки времени получения входных данных в массиве ЕТ;

I - время передачи информации между узлами;

ЕхУ - функция активации вычислительной вершины V (результаты выполнения операции помещаются в элементы массива ОМ с индексами У.ОЕ и времена готовности выходных данных помещаются в элементы массива ОТ с индексами У.ОТ.

Выполнение атрибутного графа описывается как последовательность операции трансляции данных и активации (выполнения) вычислительных вершин (1): (ЕМ, ЕТ, ОМ, ОТ)= Тга^(...),ТгагаГ(...ХТпни^(...), ЕхУ(...),Тга1и*(...), ЕхУ(...)..., где (ЕМ, ЕТ)=ТгапзГ (¡, ЕМ, ЕТ, ОМ, ОТ, А, Т)=

((ЕМ + (« х А)*ОМ), (ЕТ + ((с1 х А)*(Т+0))) где \ - индекс выходных данных;

е1 - вектор-строка (размерность совпадает с размерностью вектора ОМ), где все элементы кроме ¡-й равны 0, ¡-й элемент равен 1;

* - операция поэлементного перемножения вектора (Сл=А1*В0.

Передача данных с индексом \ может состояться только в том случае, если Ои>=Т.

Функция активации вычислительного узла:

(ОМ, ОТ)=ЕхУ(У, ЕМ, ЕТ, ОМ, ОТ, СТ, Т)=

(ОМ = А11ос(ОМ, У.01, УД5атр1(У.Е1, ЕМ))),

(ОТ = А11ос(ОТ,У.01,У.СТ 0 Т)), где ° - операция прибавления константы ко всем элементам массива;

8агар1 (I, М) - функция выборки элементов массива, где I - массив индексов, М -массив, из которого требуется выбрать элементы с индексами из массива индексов I (ЕМ]=МЦ, где ]=1..к (к - размерность массива I)), РМ - выходной массив);

А11ос(М,01,М2) - функция распределения по индексам значений в массиве с временной меткой (элементы массива М2 записываются в элементы массива М с индексами из массива 01); М0^М2^ где ]=1..к (к - размерность массива 01; 01 - массив индексов).

Вычислительный узел V может быть активизирован только в том случае, если ЕТУ.Е1]>=Т, где ]=1..к (к - размерность массива У.Е1).

В третьей главе приводится описание разработанной объектно-атрибутной среды для создания и выполнения ОА-образа.

Разработанный программный продукт предназначен для создания, отладки и выполнения ОА-образа. В среде реализованы более 60-ти классов ФУ, ОА-язык программирования (компилятор ОА-языка создан на базе ОА-архитектуры); имеется возможность не только программирования, но и управления ОА-системой в реальном времени, то есть коррекция алгоритма работы системы без перезагрузки ОА-программы.

Распределённый режим функционирования OA-образа обеспечивается с помощью ФУ типа «Шлюз», который обеспечивает передачу информации между вычислительными узлами, и ФУ типа «Маршрутизатор», которое определяет маршрут передачи информации. Интерфейс среды создания и запуска OA-образа и лексика ОА-языка реализованы в двух вариантах: англоязычном и русскоязычном. Синтаксис OA-языка довольно прост: {...}- обозначение капсулы; = - символ сопоставления атрибута и нагрузки; [...]- выделение отдельной ИП;

(...)- выделение переменной (в том числе нагрузки или атрибута); Перед {...}, [...], (...) стоит имя капсулы, ИП, атрибута или нагрузки соответственно.

Название ФУ.Милликоманда - описание расширенной милликоманды (в расширенной милликоманде указывается не только милликоманда, но и ФУ, которое эту милликоманду выполняет).

Пример программы, написанной на ОА-языке:

NewFU={Mnemo="Window" FUType=FUForm) NewFU={Mnemo="OutField" FUType-FUTextEdit) NewFU={Mnemo="OutField2" FUType=FUTextEdit)

Bus=(Window.Create Window.PointPut=temp OutField.ParentSet=temp(nil) !

Window.VisibleSet=true

OutField.TopSet=10 OutField.LeftSet=10

Window.PointPut=temp 0utField2.ParentSet=temp(nil)!

OutField2.TopSet=40 OutField2.LeftSet-10)

Bus={OutField.TextSet="Source" 0utField2.TextSet="Result window") Bus={OutCons.VarOut="Ok!")

где NewFU - команда создания нового ФУ (мпето - название создаваемого ФУ, FUType - тип создаваемого ФУ,

Bus - указание, что описанная капсула должна выдаваться на Шину. Данная OA-программа описывает создание графической формы Windows с расположенньм не ней полем текстового ввода и вывод не неё переменной variable.

Далее приведены описания основных типов ФУ, необходимых для реализации основных алгоритмов, а именно: диспетчер ФУ (ФУ, выполняющее функции Шины); диспетчер объектов (осуществляет синтез информационных конструкций в ОА-системе); ФУ «Список» (осуществляет поиск необходимой информации и вызов соответствующих процедур обработки данных); Автомат (предназначен для выполнения алгоритма в последовательном стиле); Целочисленное, дробное и логическое арифметико-логические устройства; ФУ ввода-вывода информации; ФУ вывода информации; Шлюз (осуществляет обмен информацией по линиям связи); Маршрутизатор (осуществляет маршрутизацию передаваемых в OA-системе данных).

Для передачи капсул и OA-деревьев между вычислительными узлами реализован индексный режим синтеза капсул: все ИП, составляющие передаваемое ОА-дерево располагаются в массиве, а ссылки на информационные конструкции заменяются индексами соответствующих полей ИП. После передачи по линии связи на вычислительном узле-приемнике индексы заменяются на ссылки - и таким образом формируется копия переданного по Шлюзу OA-дерева. Таким образом происходит отвязка OA-конструкций от адресного пространства конкретного вычислительного узла.

Четвёртая глава посвящена описанию практического применения архитектуры: программно-аппаратный комплекс биообратной связи «Термопульсатор» (разработан для Центра психолого-педагогической реабилитации и коррекции «Строгино»), Программно-аппаратный комплекс, реализованный на базе среды создания и выполнения ОА-образа, предназначен для организации биологически обратной связи комплекса и пациента.

Воздействие на пациента производится с помощью изображения, выводимого на монитор компьютера и нагревательных элементов, воздействующих на биологически активные точки пациента. Параметры с пациента снимаются с помощью датчика дыхания. Данный программно-аппаратный комплекс эксплуатируется в Центре психолого-педагогической реабилитации и коррекции «Строгино» с ноября 2010 года. Курс реабилитации на данном комплексе длительностью 2,5 месяца прошли уже более 30 пациентов.

ОСНОВНЫЕ РЕЗУЛЬТАТЫ РАБОТЫ

Основные результаты работы заключаются в разработке архитектур ВС, реализующих принцип управления вычислениями с помощью потока данных, включая атрибутную (милликомандную) и объектно-атрибутную (А- и ОА-) архитектуры, и языка параллельного программирования для этих архитектур. Разработаны основные приёмы создания аппаратных систем А- и OA-архитектур и программирования ОА-систем.

В работе также получены следующие выводы и результаты:

1. Произведённый анализ существующих систем dataflow и парадигм создания распределённых систем, выяснены их недостатки.

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

3. Предложена объектно-атрибутная архитектура, работающая по принципу dataflow, реализуемая как аппаратным, так и программным образом. При программной реализации ВС ОА-арихитектуры обладает лёгкой переносимостью с одной аппаратной платформы на другую и способностью обеспечить работу гетерогенной распределённой вычислительной системы как единой системы.

5. Разработан язык программирования для ОА-системы.

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

7. Разработана среда создания и запуска OA-образа, позволяющая как создавать OA-образ с помощью OA-языка программирования, так и производить его автономную отладку, загрузку в вычислительные узлы, составляющие распределённую ОА-систему.

8. С помощью разработанной среды создания и запуска OA-образа решены некоторые прикладные задачи: для Центра психолого-педагогической реабилитации и коррекции разработан и успешно функционирует программно-аппаратный комплекс «Термопульсатор».

9. Предложена математическая модель распределенной атрибутной ВС.

Личный вклад автора. Все результаты, составляющие основное содержание диссертации, получены автором самостоятельно под научным руководством профессора кафедры ВСиС МИЭМ к.т.н., доц. Панфилова П.Б. В работах, выполненных в соавторстве, внесен следующий вклад: предложен способ создания и моделирования систем автоматизации на основе ОА-архитектуры [2,11]; предложен способ создания баз знаний на основе вычислительной системы ОА-архитектуры [3,7], предложен новый способ создания объектных программ на основе ОА-архитектуры [4,9], предложен способ создания и моделирования систем автоматизации на основе ОА-архитектуры [5], предложен способ организации высокопроизводительных вычислительных систем ОА-архитектуры [6]; предложен способ реализации нейронных сетей с помощью ОА-архитектуры [8], разработана архитектура распределенной вычислительной системы «шестиногий шагающий аппарат»[10].

ПЕРЕЧЕНЬ ПУБЛИКАЦИЙ ПО ТЕМЕ ДИССЕРТАЦИИ Публикации в журналах, входящих в перечень ВАК:

1. Салибекян С.М. Принципы милликомандной архитектуры как основа построения высокопроизводительных адаптивных вычислительных систем // Автоматизация и современные технологии. 2002. № 5. - Стр. 25-32.

2. Салибекян С.М., Панфилов П.Б OA-архитектура построения и моделирования распределенных систем автоматизации // Автоматизация в промышленности. N11, 2010 с. -Стр. 51-56

3. Салибекян С.М., Панфилов П.Б. Объектно-атрибутный подход к построению интеллектуальных систем // Нейрокомпьютеры: разработки и применение. 2011, Xsl 1 - с. 9-17

4. Салибекян С.М., Панфилов П.Б. Объектно-атрибутная архитектура - новый подход к созданию объектных систем // Информационные технологии. 2012, №2 с. 8-14

Другие публикации:

5. Салибекян С.М., Панфилов П.Б. OA-архитектура для создания и имитационного моделирования информационных систем. Юбилейная научно-техническая конференция «Моделирование авиационных систем», 12-14 апреля 2011, Т.З - с. 361-370

6. Салибекян С.М., Панфилов П.Б. Перспективная суперкомпьютерная система на основе объектно-атрибутной модели вычислений с управлением потоком данных / Второй Московский Суперкомпьютерный Форум Россия, Москва, ВВЦ 26-27 октября 2011 года.

7. Салибекян С.М., Панфилов П.Б. Объектно-атрибутный подход к созданию интеллектуальных систем. IX Всероссийская научная конференция «Нейрокомпьютеры и их применение 2011». Тезисы доклада, М. 2011. URL: http://www.it.mgppu.nl/confiic/tezisy.pdf

8. Салибекян С.М., Панфилов П.Б. Атрибутная архитектура как способ аппаратной реализации нейронных сетей. IX Всероссийская научная конференция «Нейрокомпьютеры и их применение 2011». Тезисы доклада, М. 2011. URL: http://www.it.mgppu.ru/confnc/tezisy.pdf

9. Салибекян С.М., Панфилов П.Б. OA-архитектура - новый подход к созданию объектных систем // Объектные системы - 2011: материалы Ш Международной научно-практической конференции (Ростов-на-Дону 10-12 мая 2011 г.) / Под общ. ред. П.П. Олейника. - Ростов-на-Дону, 2011. - С. 73-79 URL: http://objectsystems.ru/files/Object_Systems_2011_Proceedings.pdf

10. Салибекян С.М., Панфилов П.Б. Построение распределенных гетерогенных вычислительных систем на базе объектно-атрибутной архитектуры. // Объектные системы - 2011 (Зимняя сессия): материалы V Международной научно-практической конференции (Ростов-на-Дону, 10-12 декабря 2011 г.) / Под общ. ред. П.П. Олейника. - Ростов-на-Дону: ШИ ЮРГТУ (НПИ), 2011. - С. 83-88 URL: http://www.objectsystems.ru/files/2011WS/Object_Systems_2011_Winter_Session_Proceedings .pdf

11. S.M. Salibekyan, P.B. Panfilov. Object-attribute architecture for design and modeling of distribute automation system. // Automation and remote control. Volume 73, Number 3, 587595, DOI: 10.1134/S0005117912030174

Подписано в печать 19.04.2012 г. Формат 60x90 1/16 Печать на ризографе. Тираж 120 экз. Заказ № 7901. Объем: 1,0 усл. п.л.

Отпечатано в типографии ООО "Алфавит 2000", ИНН: 7718532212, г. Москва, ул. Маросейка, д. 6/8, стр. 1, т. 623-08-10, www.alfavit2000.ru

Текст работы Салибекян, Сергей Михайлович, диссертация по теме Вычислительные машины и системы

61 12-5/3891

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ______

МОСКОВСКИЙ ГОСУДАРСТВЕНННЫЙ ИНСТИТУТ ЭЛЕКТРОНИКИ И МАТЕМАТИКИ (технический университет)

На правах рукописи

Салибекян Сергей Михайлович

«Разработка и анализ объектно-атрибутной архитектуры распределенной вычислительной системы с управлением потоком данных»

Специальность 05.13.15 «Вычислительные машины, комплексы и компьютерные сети»

ДИССЕРТАЦИЯ

на соискание ученой степени кандидата технических наук

Научный руководитель к.т.н., доцент Панфилов П.Б.

Москва 2012

Оглавление

Список определений, обозначений и сокращений..........................................6

Введение.............................................................................................................11

Глава 1. Обзор существующих решений dataflow..........................................15

1.1 Аппаратные решения dataflow...............................................................15

1.1.1 Классификация аппаратных систем dataflow.................................15

1.1.1.1 Классификация по количеству фон неймановских команд, помещенных в узле потокового графа.................................................15

1.1.1.2 Классификация по способу реализации потокового графа. .16

1.1.1.3 Dataflow-системы с памятью программ..................................18

1.1.1.3.1 Статический dataflow (поток данных с одним токеном на дуге)....................................................................................................19

1.1.1.3.2 Динамический dataflow (поток с тегированными токенами)............................................................................................20

1.1.1.3.3 Память с явной адресацией токенов (память фреймов). 24

1.1.1.4 Организация доступа к данным в системах с памятью программ................................................................................................26

1.1.1.5 Классификация по структуре вычислительных узлов...........28

1.1.1.6 Основные проблемы машин с памятью команд.....................29

1.1.1.7 Классификация по виду коммутационной среды...................31

1.1.1.8 Гибридные архитектуры, сочетающие потоки команд и данных....................................................................................................31

1 1 1.8.1 Крупнозернистый поток данных (coarse-grained dataflow)

.............................................................................................................31

1.1.1.8.2 Тредовые системы..............................................................32

1.1.1.8.3 RISC поток данных.............................................................35

1.1.1.8.4 Использование сложных машинных операций...............36

1.1.2 Анализ аппаратных решений dataflow...........................................37

1.2 Программные решения dataflow............................................................38

1.2.1 Функциональная парадигма............................................................38

1.2.1.1 U-язык.........................................................................................39

1.2.1.2 LUCID.........................................................................................39

1.2.1.3 ID.................................................................................................40

1.2.1.4 VAL.............................................................................................40

1.2.1.5 SISAL.........................................................................................41

1.2.1.6 POST...........................................................................................43

1.2.1.7 ПИФАГОР..................................................................................43

1.2.1.8 Mozart.........................................................................................46

1.2.2 Объектно-ориентированные языки программирования...............46

1.2.3 DCF....................................................................................................48

1.2.4 Модель акторов.................................................................................49

1.2.5 Графическое программирование.....................................................50

1.2.13 Анализ программных решений dataflow......................................51

1.3 Выводы и задачи дальнейшего исследования.......................................52

Глава 2. Атрибутная и объектно-атрибутная архитектуры............................56

2.1 Атрибутная архитектура.........................................................................56

2.1.1 Основные понятия атрибутной архитектуры.................................56

2.1.2 Описание атрибутной архитектуры................................................58

2.1.3 Параллельный режим работы атрибутного процессора...............62

2.1.3 Основные типы ФУ..........................................................................64

2.1.3.1 Генератор атрибутов (ГА).........................................................65

2.1.3.2 Регистр........................................................................................66

2.1.3.3 Целочисленное арифметико-логическое устройство (АЛУ).бб

2.1.3.4 Устройство доступа к оперативной памяти............................67

2.1.4 Простейший А-процессор...............................................................68

2.1.5 Распределенное управление в А-архитектуре...............................68

2.1.6 Пример работы А-системы с распределенным управлением......71

2.1.7 Приемы реализации атрибутных систем с децентрализованным управлением...............................................................................................74

2.1.7.1 ФУ Вентиль................................................................................"74

2.1.7.2 Шлюзование...............................................................................75

2.1.8 Математическая модель А-архитектуры........................................76

2.1.8.1 Статическая модель А-архитектуры........................................77

2.1.8.2 Динамическая векторная модель А-архитектуры..................78

2.1.8.3 Матричная динамическая модель А-архитектуры.................79

2.1.8.4 ВременнОе численное моделирование...................................80

2.1.8.5 Численное моделирование........................................................82

2.1.8.6 ВременнОе моделирование......................................................83

2.2 Объектно-атрибутная архитектура........................................................85

2.2.1 Основные понятия объекно-атрибутной архитектуры.................85

2.2.2 Основные типы ФУ..........................................................................88

2.2.2.1 Шина (диспетчер ФУ)...............................................................88

2.2.2.2 Арифметико-логическое устройство (АЛУ)...........................88

2.2.2.2 Автомат.......................................................................................89

2.2.2.3 Устройство ввода-вывода..........................................................90

2.2.2.4 Диспетчер капсул.......................................................................90

2.2.3 Работа примитивной ОА-системы..................................................91

2.2.5 Приемы ОА-программирования......................................................93

2.2.5.1 Работа с ВФУ Автомат..............................................................93

2.2.5.2 ОА-программирование без оператора .................................95

2.2.6 Изоморфизм ОА-архитектуры.........................................................95

2.2.6.1 Изоморфизм на уровне логики работы ФУ.............................96

2.2.6.2 Изоморфизм на уровне реализации логики работы ФУ........96

2.2.6.3 Применение нескольких режимов работы ФУ.......................98

2.2.6.4 Применение ФУ Интерпретатор..............................................99

2.2.6.5 Изоморфизм на уровне данных.............................................100

2.2.7 Абстракция в ОА-архитектуре......................................................101

2.2.7.1 ОА-дерево как замена классов в ООП...................................101

2.2.7.2 ОА-дерево абстракций для организации интеллектуальных систем...................................................................................................Ю2

2.2.8 Мобильность OA-системы.............................................................104

2.2.9 Создание гетерогенных распределенных ВС, перераспределение OA-образа по вычислительным узлам...................................................105

2.2.10 Создание и имитационное моделирование аппаратно-программных комплексов на основе OA-архитектуры........................106

2.2.11 Аппаратная реализация ВФУ......................................................107

Глава 3. Среда создания и выполнения OA-образа......................................109

3.1 Описание OA-платформы.....................................................................109

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

3.3 Реализация виртуальных функциональных устройств......................111

3.3.1 Контекст ВФУ.................................................................................Ш

3.3.2 Функция инициализации ВФУ......................................................112

3.3.3 Процедура уничтожения (выгрузки) ВФУ...................................113

3.3.4 Процедура реализации логики работы ВФУ................................113

3.3.5 Функциональное устройство «Шина» («Диспетчер функциональных устройств»)................................................................114

3.4 Синтаксис языка для создания OA-образа..........................................118

3.5 Организация распределенных и параллельных вычислений............122

3.5.1 Индексный режим..........................................................................122

3.5.2 Шлюзование и маршрутизация.....................................................124

3 5.4 Загрузка OA-образа по распределенным вычислительным узлам ...................................................................................................................127

3.5.5 Параллельный режим работы АО-среды.....................................128

3.5.5.1 Параллелизм на уровне аппаратуры......................................129

3.5.5.2 Параллелизм на уровне Шины...............................................129

3.5.5.2 Параллелизм на уровне ВФУ.................................................129

3.6 Основные типы ВФУ.............................................................................130

3.6.1 Список основных типов ВФУ.......................................................131

3.6.2 Шина (диспетчер ВФУ).................................................................131

3.6.3 Автомат............................................................................................132

3.6.4 Диспетчер капсул............................................................................133

3.6.3 Поиск...............................................................................................135

3.6.4 Список.............................................................................................137

3.6.5 Устройство ввода-вывода...............................................................139

3.6.6 Устройство визуализации OA-дерева...........................................140

3.6.7 Маршрутизатор...............................................................................141

3.6.8 TCP-шлюз........................................................................................142

3.7 Приемы OA-программирования...........................................................143

3.7.1 Цикл.................................................................................................143

3.7.2 Рекурсия..........................................................................................144

3.7.2.1 Копирование капсулы с миллипрограммой..........................145

3.7.2.2 Применение регистровых файлов..........................................145

3.7.2.3 Копирование контекста ВФУ Автомат..................................146

3.7.3 ФУ Список.......................................................................................147

3.7.4 Совмещение нескольких информационных конструкций на одном наборе данных..............................................................................148

3.7.5 Поиск с выдачей милликоманд на Шину как реализация программирования без оператора if.......................................................150

3.7.6 Конус абстракций...........................................................................153

Глава 4. Практическое применение систем ОА-архитектуры.....................157

4.1 Введение.................................................................................................157

4.2 Аппаратно-программный комплекс «Термопульсатор»....................157

4.3 Аппаратный состав комплекса.............................................................158

4.4 Программный состав комплекса..........................................................160

4.4.1 ВФУ Светооборудование...............................................................160

4.4.2 ВФУ Таймер....................................................................................161

4.4.3 ВФУ АЦП/ЦАП..............................................................................161

4.4.4 ВФУ обработчик сигналов.............................................................162

4.4.5 ВФУ График....................................................................................164

4.4.6 ВФУ Диаграмма..............................................................................165

4.4.6 ВФУ Генератор сигнала.................................................................166

4.4.7 Прочие типы ВФУ..........................................................................168

4.5 Интерфейс пользователя комплекса «Термопульсатор»....................169

4.5.1 Окно пациента................................................................................169

4.5.2 Окно оператора...............................................................................169

4.6 Алгоритм функционирования комплекса «Термопульсатор»...........170

4.6.1 Перечень ВФУ, входящих в состав комплекса.............................170

4.6.2 Формирование исходного потока данных....................................171

4.6.3 Управление аппаратурой комплекса.............................................173

4.7 Опыт эксплуатации комплекса.............................................................174

Список использованных источников.............................................................177

Список определений, обозначений и сокращений

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

ВС Вычислительная система.

ВТ Вычислительная техника.

ВП Вычислительный процесс.

ОП Оперативная память.

БП Буферная память.

ПЛИС Программируемая логическая интегральная схема

(GPGA) Программируемая логическая интегральная схема

(ант. field-programmable gate array, FPGA).

АП Ассоциативная память.

ООП Объектно-ориентированное программирование

АПК Аппаратно-программный комплекс.

ФУ Функциональное устройство.

ФЭ Функциональный элемент.

ПЭ Процессорный элемент.

ВФУ Виртуальное функциональное устройство. ФУ,

реализованное программным способом.

ИП Информационная пара. ИП состоит из двух полей:

атрибут (ярлык), идентифицирующий нагрузку, и нагрузка. Нагрузка представляет собой либо константу, либо указатель на какую-либо информационную конструкция, расположенную в ОП. Мк Милликоманда — это ИП, используемая для

передачи информации между ФУ в атрибутной и объектно-атрибутной архитектурах. Милликоманда -это токен с предельно простым форматом сообщения (атрибут и операнд). А-архитектура Атрибутная архитектура. OA-архитектура Объектно-атрибутная архитектура ТТТА Шина атрибутов.

ТТТД Шина данных.

ШДА Шина данных-атрибута. По данной шине за один

так передается ИП (атрибут и нагрузка). Используется в А- и ОА-системах с распределенным управлением.

ГА Генератор атрибутов — ФУ специализирующееся на

выборе милликоманд из оперативной памяти и выдаче их на ША. ГА является устройством управления в атрибутной системе с централизованным управлением. Кроме выборки милликоманд из ОП ГА реализует условные и безусловные переходы.

АЛУ Арифметико-логическое устройство.

АЦП Аналого-цифровой преобразователь.

Control flow Управление ВП с помощью потока команд

(вычисления активизируются при приходе команды с комплектом готовых к обработке операндов).

Dataflow Управление ВП с помощью потока данных

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

вычисления операнды).

Токен Информационная конструкция для передачи

операндов в dataflow-BC.

Тред Совокупность последовательно выполняемых

классических команд.

RISC От англ. Restricted (reduced) instruction set computer,

дословно — компьютер с сокращенным набором команд

VLIW-архитектура От англ. Very Lade Instruction Word — дословно очень

большое машинное слово. В процессоре данной архитектуры параллельно выполняющиеся команды объединяются в длинное слово еще на стадии компиляции (оптимизирующая компиляция). Все

команды, входящие в длинное машинное слово, одновременно направляются на выполнение на несколько исполнительных устройств процессора.

I-структура сложный/составной тип данных, каждое поле

которого снабжается битом присутствия данных (широко применяется в распределенных datafow-BC).

Память команд ОП, в которой помещаются шаблоны (template)

команд (используется в dataflow-системах с памятью команд).

Актор (actor) Отдельная подпрограмма, работающая в стиле

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

выполнения вычислений.

Функциональный Язык программирования, где алгоритм записывается в

язык виде функций.

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

парадигма помощью последовательности инструкций.

Расширенная Милликоманда, в атрибуте которой указывается как

милликоманда атрибут нагрузки, так и ФУ, которое должно

выполнять милликоманду.

Миллипрограмма Последовательность милликоманд, выдаваемая на

ШД или ШДА, для реализации определенного алгоритма.

Информационная Обособленный набор ИП, служащих для описания

капсула определенного объекта или содержащий

миллипрограмму.

ОА-дерево абстракций (ОА-смысловой граф)

Централизованное

управление ВП Распределенное

управление ВП ОА-платформа

ОА-образ

ВФУ Шина

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

Ситуация, когда управление ВП осуществляется централизованно.

Ситуация, когда ВП управляется всеми ФУ,

входящими в А- или ОА-систему, в совокупности. Совокупность программ реализации логики работы

ВФУ, загруженных на вычислительный узел. ОА-

платформа зависима от аппаратной архитектуры

вычислительного узла.

Состояние контекстов ВФУ и синтезированные в данный момент ОА-информационные конструкции (переменные, капсулы, ОА-деревья). ОА-образ независим от аппаратной архитектуры вычислительных узлов, на которых запущена ОА-система.

ВФУ, специализирующееся на передаче милликоманд между другими ВФУ (по атрибуту поступившей к нему расширенной милликоманды Шина определяет ФУ-адресата и передает ему данную милликоманду).

Конус абстракций

Обратный конус абстракций Автономное моделирование

Способ синтеза описания объекта в ОА-архитектуре (синтез происходит от простого к сложному). В основании конуса лежат элементарные смысловые конструкции. ФУ первого уровня производят синтез из элементарных конструкций более сложные конструкции, и т. д. В вершине конуса абстракций находится ключевая абстракция, описывающая смысл всего распознаваемого объекта.

Способ синтеза абстракций, применяемый в ОА-

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