Содержание к диссертации
Введение
1. Проблемы проектирования встраиваемых вычислительных систем 22
1.1. Встраиваемые вычислительные системы 22
1.1.1. Понятие встраиваемой вычислительной системы 22
1.1.2. Проектирование программно-реализованных встраиваемых систем 30
1.1.3. Встроенное программное обеспечение 33
1.1.4. Классификация встраиваемых систем 38
1.2. Состояние и перспективы высокоуровневого проектирования ВсС 42
1.2.1. Проектирование заказных микропроцессорных систем 42
1.2.2. Методики проектирования встраиваемых систем 49
1.2.3. Языки описания архитектуры встраиваемых систем 56
1.3. Предпосылки повышения уровня абстракции в методиках проектирования встраиваемых систем 58
1.3.1. Кризис методик проектирования встраиваемых систем 58
1.3.2. Перспективы развития методик проектирования встраиваемых систем 61
1.4. Выводы 64
1.5. Постановка задачи 66
2. Архитектурное проектирование встраиваемых вычислительных систем 69
2.1. Система архитектурных абстракций ВсС 69
2.1.1. Архитектурное проектирование и группы архитектурных абстракций 69
2.1.2. Вычислительные и невычислительные абстракции 72
2.1.3. Элементы архитектурного проектирования 57
2.1.4. Проектное пространство ВсС и фазы организации вычислительного процесса «Designime /Runime» 95
2.2. Проектирование архитектуры ВсС 102
2.2.7. Архитектурная платформа и критерии проектирования архитектуры 102
2.2.2. Шаблоны процессов проектирования ВсС. 106
2.2.3. Реализация архитектурных моделей встраиваемых систем 109
2.2.4. Проектирование микроархитектуры ВсС 115
2.2.5. Роль моделирования в архитектурном проектировании ВсС 115
2.3. Аспектная модель процесса проектирования ВсС 121
2.3.7. Аспектный подход к проектированию ВсС 127
2.3.2. Аспектное пространство процесса проектирования и целевой системы 126
2.3.3. Архитектура ВсС, архитектурные агрегаты. Классификация архитектурных моделей 127 2.3.4. Методы и средства аспектного анализа 135
2.3.5. Аспектная классификация ВсС 147
2.4. Выводы 144
3. Модели вычислений встраиваемых вычислительных систем 148
3.1. Архитектурная абстракция «модель вычислений» в проектировании ВсС 148
3.7.7. Поведенческий аспект архитектурной модели 148
3.1.2. Понятие «модель вычислений» в проектировании встраиваемых систем 151
3.1.3. Совместимость и синхронизация в моделях вычислений 154
3.1.4. Базовые модели вычислений встраиваемых систем 155
3.2. Средства моделирования вычислительных процессов встраиваемых систем 155
3.2.1. Способы описания распределенных ВсС 155
3.2.2. Симуляция моделей вычислений 162
3.2.3. Инструментальный комплекс моделирования вычислительных процессов Ptolemy П. 162
3.3. Объектно-событийная.модель вычислений распределенных ВсС 162
3.3.1. Общие положения объектно-событийной модели 162
3.3.2. Элементы объектно-событийной модели 166
3.3.3. Расчет временных характеристик объектно-событийной модели 187
3.3.4. Расширение ОСМВ на основе денотативного описания 188
3.4. Выводы 188
4. Использование разработанных методов и средств проектирования встраиваемых вычислительных систем 191
4.1. Анализ технических решений уровня реализации ВсС 191
4.1.1. Пример подсистемы визуализации аналитического прибора 192
4.1.2. Пример проектирования-драйвера периферийного интерфейса 196
4.1.3. Проектирование специализированных вычислителей системы железнодорожной автоматики «Тракт» 201
4.2. Принцип актуализации вычислительного процесса в проектировании ВсС 205
4.2.1. Модель актуализации вычислительного процесса 205
4.2.2. Фазы актуализации вычислительного процесса ВсС 210
4.3. Прототип САПР на базе ОСМВ 215
4.3.1. Микроархитектура вычислителя NL3 215
4.3.2. Модели и параметры DPU 222
4.3.3. Автоматизированная система прикладного пользовательского программирования NL3 228
4.3.4. Средства прикладного пользовательского программирования вычислителей NL1 и NL2 235
4.4. Инструментальный аспект проектирования ВсС 242
4.4.1. Инструментальный аспект архитектурной модели ВсС 242
4.4.2. Инструментальный комплекс вложенной отладки распределенных ВсС 252
4.4.3. Динамические инструментальные компоненты 256
4.4.4. Инструментальный комплекс МЗР 259
4.5. Оценка опыта проектирования ВсС коллектива НПФ «ЛМТ» 261
4.6. Выводы 262
5. Подготовка специалиста-разработчика встраиваемых вычислительных систем 265
5.1. Состояние и тенденции в подготовке специалистов по проектированию ВсС 265
5.1.1. Модель знаний выпускника вуза — специалиста по вычислительной технике 265
5.1.2. Проектирование «от зон компетенции» 270
5.1.3. Программы подготовки специалистов в области выичслителъной техники 274
5.2. Модернизация программы профильной подготовки разработчиков ВсС 277
5.2.1. Внедрение методов и средств архитектурного проектирования встраиваемых систем в процесс подготовки специалистов и практическую деятельность производственных коллективов 277
5.2.2. Проблемы и предложения в области модернизации программы профильной подготовки разработчиков ВсС 279
5.3. Практика подготовки специалистов — разработчиков ВсС 286
5.5.7. Реализация инновационной образовательной программы 286
5.3.2. Аппаратно-программная платформа SDK для подготовки специалистов по проектированию встраиваемых систем 288
5.4. Выводы 294
Заключение 296
Литература 299
6. Приложения 315
- Понятие встраиваемой вычислительной системы
- Проектное пространство ВсС и фазы организации вычислительного процесса «Designime /Runime»
- Элементы объектно-событийной модели
- Аппаратно-программная платформа SDK для подготовки специалистов по проектированию встраиваемых систем
Введение к работе
Актуальность темы. Стремительный рост потребности во встраиваемых вычислительных системах (ВсС) различного назначения заставляет разработчиков активно совершенствовать методы и средства проектирования. Встраиваемые (или встроенные) системы и сети (embedded systems & networks) можно определить как специализированные (заказные) микропроцессорные системы, непосредственно взаимодействующие с объектом контроля или управления и объединенные с ним конструктивно.
Активно растет доля ВсС со сложной внутренней организацией, которая проявляется в таких особенностях, как многопроцессорная гетерогенная архитектура, распределенный характер вычислений, широкий диапазон потенциально доступных разработчику вычислительных ресурсов. Большинство сегодняшних ВсС составляют распределенные информационно-управляющие системы (РИУС), в которых доля технических решений, характерных для иных классов вычислительных систем (ВС), не является доминирующей. Это позволяет сделать вывод об актуальности поиска и развития всего многообразия технических решений в области ВсС (а не только ограниченного их числа в рамках ряда канонических аппаратно-программных платформ), а также методов и средств их проектирования.
Процесс создания ВсС характеризуется высокой сложностью. Это определяется сочетанием таких условий проектирования, как нестандартность задачи, требование технической оптимальности решений (модель ограниченных вычислительных ресурсов), минимальные временные и финансовые бюджеты разработки, присутствие большого числа дополнительных требований и ограничений (надежность, ограничения реального времени, тяжелые условия эксплуатации и многое другое).
Ключевой особенностью создания ВсС следует считать необходимость комплексного проектирования, охватывающего практически все уровни организации ВС. Однако сегодня в достаточной степени формализованы и автоматизированы лишь нижние и часть средних этапов маршрутов проектирования.
Таким образом, первоочередное значение приобретает развитие методов и средств высокоуровневого (архитектурного, HLD - High Level Design) проектирования ВсС, где центральное место занимает формирование цельного взгляда на организацию всех фаз вычислительного процесса, как собственно на цель проектирования.
Активные работы в данном направлении проводят отечественные коллективы под руководством А.Н. Терехова, В.В. Топоркова, А.К. Кима, специалисты ИСП РАН, ПОМИ им. В.А.Стеклова, СПбГУ ИТМО. Из зарубежных специалистов в первую очередь следует отметить работы А. Санджованни-Винсентелли, Е. Ли, А. Феррари, Г. Мартина, Г. Аха, А. Джеррайи.
Создание четкой системы понятий архитектурного уровня позволит разработчику ВсС эффективно работать не на уровне примеров реализаций, а на уровне принципов организации ВС/вычислительного процесса. Важнейшей задачей является создание системы архитектурных абстракций, в которых не противопоставляются аппаратная и программная составляющие ВС, но при этом охватываются все уровни технических решений.
Практическая польза от подобной формализованной системы понятий состоит в возможности развития на ее основе общей теории и методологии проектирования ВсС, создания эффективных методик и САПР архитектурного и сквозного проектирования ВсС.
Следует признать, что в подавляющем большинстве коллективов проектировщиков ВсС сегодня недостаточно высоко оценивается роль и трудоемкость этапов высокоуровневого проектирования, отсутствует адекватный технический язык для общения на этом уровне. Они оперируют лишь конкретными реализациями вычислительных механизмов (то есть «ассемблерными кодами», в которых трудно или невозможно проследить концептуальные моменты и решения). Мери Шоу в статье «Мы можем обучать информатике лучше» пишет: «Давайте организуем наши курсы вокруг идей, а не вокруг артефактов. Это сделает наши цели более ясными как для студентов, так и для преподавателей. Машиностроительные институты не преподают проектирование бойлера, они преподают термодинамику. В то же время, как минимум два из основных курсов по информатике «Создание компиляторов» и «Операционные системы» являются артефактными динозаврами программирования». [Mary Shaw. We can teach software better. Computing Research News 4(4):2-12, September 1992]. С момента опубликования статьи ситуация кардинально не поменялась.
Система вычислительных архитектурных абстракций может привнести эффективный язык общения в область проектирования ВсС, повысить «прозрачность» разработок, резко ускорить развитие вычислительных архитектур. Однако для этого необходимы усилия не только со стороны действующих разработчиков вычислительной техники, но и поддержка высшей школы в части модернизации учебного процесса на профильных кафедрах университетов.
Целью работы является создание методологической и теоретической базы высокоуровневого автоматизированного проектирования встраиваемых вычислительных систем, основывающейся на системе архитектурных вычислительных абстракций. Это обеспечит развитие методов и средств архитектурно - структурного проектирования в комплексе с формированием сценариев и инфраструктуры процесса проектирования.
Задачи исследований. Для достижения указанной цели в работе ставились и решались следующие задачи.
1. Постановка проблемы фрагментарности методов и средств высокоуровневых этапов проектирования для ВсС, критичных к качеству архитектурных решений. Поиск возможностей повышения качества
проектирования ВсС и обоснование необходимости использования вычислительных архитектурных абстракций как основного инструмента повышения эффективности процесса проектирования.
-
Разработка системы абстракций, которая на этапе архитектурного проектирования адекватно отражает вычислительные и невычислительные аспекты ВсС, учитывает сценарий и инфраструктуру процесса проектирования. Формирование в рамках аспектной модели проектирования ВсС критериев надежности и качества проектирования архитектуры ВсС.
-
Разработка методики высокоуровневого проектирования ВсС, в том числе:
разработка метода поиска архитектурных решений ВсС, обеспечивающего эффективный анализ и синтез вариантов организации вычислительного процесса ВсС;
разработка метода создания корректного и детального архитектурного представления ВсС, выступающего в качестве исходных спецификаций для этапа реализации проекта;
развитие моделей вычислений распределенных ВсС;
-
Разработка методики формирования инструментальной инфраструктуры проекта ВсС на основе декомпозиции вычислительного процесса по фазам проектирование / конфигурирование / исполнение жизненного цикла ВсС.
-
Создание методических основ внедрения технологий и средств высокоуровневого проектирования ВсС на базе вычислительных архитектурных абстракций и аспектной модели в научно-производственных коллективах и профильных высших учебных заведениях.
Методы исследования. Теоретические и практические исследования
базируются на комплексном использовании положений линейной алгебры,
теории вероятностей, теории множеств, формальной и темпоральной логики,
теории конечных автоматов, теории графов, теории взаимодействия
открытых систем, методов системного и функционального анализа,
функционального и объектно-ориентированного программирования и
проектирования, имитационного моделирования, структурно-
функционального описания аппаратуры.
Научная новизна работы состоит в теоретическом обобщении и решении научной проблемы, имеющей важное народнохозяйственное значение в области автоматизации проектирования встраиваемых вычислительных систем. В результате исследований автором получены следующие основные научные результаты:
-
Предложены оригинальные базовые определения ВсС и платформ, классификация ВсС, постановка задач проектирования в области ВсС на основе системы архитектурных абстракций.
-
Разработана оригинальная система вычислительных абстракций архитектурного уровня, определяющая стратегию и маршрут процесса проектирования ВсС.
-
Разработана аспектная методика проектирования ВсС, базирующаяся на созданной системе архитектурных абстракций и введенных понятиях инфраструктуры проекта и инфраструктуры создаваемой целевой системы. Разработаны методы поиска архитектурных решений ВсС и методы представления архитектуры ВсС для этапа реализации в рамках аспектной методики.
-
На основе исследования критически важных аспектов проектирования в рамках предложенной модели введено понятие единого проектного пространства архитектуры ВсС, включающее наряду с другими такие важнейшие координаты как реконфигурируемость, совокупность фаз организации вычислительного процесса (включая проектирование, конфигурирование и исполнение), распределение инструментальных компонент. На этой основе созданы методы организации вычислительного процесса ВсС и формирования инструментальной инфраструктуры, в том числе, для распределенных встраиваемых систем.
-
Предложены и исследованы новые модели вычислений, составляющие класс объектно-событийных моделей. Они обеспечивают эффективное представление информационной и управляющей компонент, в первую очередь, распределенных ВсС на этапах архитектурного, структурного, логического проектирования.
-
Разработана типовая инструментальная цепочка проектирования ВсС на базе средств объектно-событийного моделирования разрабатываемой системы. В рамках инструментального аспекта ВсС предложен принцип совместного проектирования инструментальной и целевой системы.
Основные защищаемые положения диссертационной работы включают:
-
Принцип использования архитектурных абстракций в проектировании ВсС и систему абстракций, важнейшие из которых: аспект проектирования, архитектурная платформа, архитектурный агрегат, вычислительный механизм.
-
Перечень критически важных аспектов проектирования ВсС в рамках аспектной модели вычислительной архитектуры.
-
Аспектную методику проектирования ВсС, в рамках которой введено понятие архитектурной модели ВсС с абстрактным, виртуальным, реализуемым уровнями ее конкретизации.
-
Понятие единого проектного пространства архитектуры ВсС и концепцию организации вычислительного процесса ВсС на фазах проектирования, конфигурирования и исполнения как единого процесса проектирования вычислительной системы с явным формированием и выбором общей архитектуры. В рамках данного подхода проектируются (выбираются) в комплексе такие компоненты ВсС, как макроархитектура, множество микроархитектур, инструментарий, системное программное обеспечение и другие, которые традиционно разделяются разработчиками на
изолированные (в контексте принятия концептуальных, архитектурных решений) части.
-
Принцип совместного проектирования целевой ВсС и ее инструментальной инфраструктуры, инструментальная модель ВсС.
-
Состав учебных модулей и базовые принципы подачи учебного материала для подготовки специалиста в области высокоуровневого проектирования сложных ВсС.
Практическая ценность. Полученные результаты повышают надежность и качество ключевых принимаемых проектных решений при создании ВсС за счет расширения пространства поиска архитектурных решений, нового механизма их анализа, большей прозрачности процесса проектирования в целом.
Разработчик получает инструмент комплексного представления продуктов этапа высокоуровневого проектирования ВсС, что обеспечивает высокую степень их повторного использования и эффективный контроль фазы реализации проекта.
В значительной степени решается проблема семантического разрыва областей компетенции специалистов по проектированию аппаратной и программной составляющих ВсС на основе понятия вычислительного механизма и определения встроенного программного обеспечения как совокупности компонент конфигурирования/программирования на всех этапах организации вычислительного процесса ВсС.
Конкретные рекомендации и разработанные инструментальные средства обеспечивают внедрение предлагаемой автором парадигмы проектирования ВсС в научно-производственных коллективах и в учебный процесс профильных высших учебных заведений.
Кроме того, в результате исследования разработано и опробовано значительное число новых технических решений (вычислительных механизмов) в части аппаратно-программной реализации ВсС, зафиксированных в виде вычислительных платформ, которые ориентированы на повторное использование.
Реализация результатов работы. Теоретические и практические результаты, полученные в диссертационной работе, использованы в научно-исследовательских и опытно-конструкторских работах, проводимых в СПбГУ ИТМО и в научно-производственной фирме «ЛМТ» (СПб, ), научным руководителем или ответственным исполнителем которых является автор. Часть из них перечислена ниже:
«Разработка способов формального представления проектной информации для технологии сквозного проектирования встроенных вычислительных систем» (СПбГУ ИТМО, 2003-2007 гг.);
Серия работ по созданию микропроцессорных систем прецизионного управления в составе нанотехнологических комплексов (ЗАО «НТ МДТ», в рамках ОКР «Разработка и освоение производства приборов и оборудования для нанотехнологии», 2003-2006 гг.);
«Разработка шлюзов контроллерных сетей серии GW-EC» (ОАО «Приборный завод «Тензор», 2004 г.);
«Разработка программируемых блоков TFK сбора информации и управления в составе лабораторных теплофизических измерительных комплексов» (СПбГУ НиПТ, 2004 г.);
«Разработка предложений в комплексную программу создания Интеллектуальной транспортной системы в Санкт-Петербурге по направлению «Комплекс информационно-вычислительных средств ИТС Санкт-Петербурга» (ЗАО «НИПИ ТРТИ», 2005 г., в соответствии с «Концепцией создания ИТС в Санкт-Петербурге на 2005-2008 гг.»);
Серия ОКР по созданию цифровых электронных модулей аналитико-технологических приборов по направлению «Разработка учебно-научной лаборатории для нанодиагностики и нанотехнологий на базе сканирующей зондовой микроскопии, спектроскопии и литографии» (ООО «НТ-СПб», 2006-2007 гг.);
«Разработка архитектуры и методики проектирования аппаратных и программных средств систем на кристалле, комбинирующих различные типы ядер и способы обработки информации» (СПбГУ ИТМО, 2009-2010 гг.).
Результатами НИОКР являются специализированные вычислительные платформы и комплексы технических средств, на основе которых серийно выпускается большое число прикладных систем и приборов. Среди них системы распределенной автоматики для железнодорожного (КТС «Тракт», КТС «Бриз») и судового (КТС АРЗООО) транспорта, для задач энергетики и ЖКХ (СУНО «Луч2», СУМЭ «ЛучЗ», АСКУЭ «Луч-ТС»); семейство прецизионных теплофизических приборов ИТС с уникальными контроллерами TFK нескольких версий. Производятся и развиваются семейства зондовых сканирующих микроскопов «НаноЭдьюкатор» (платформа LIC5091) и «МиниЛаб» (платформа ML).
Результаты работы использованы в учебных лекционных курсах, которые читались автором в СПбГУ ИТМО, в МИПК СПб ГИТМО (ТУ) и в ряде других организаций на протяжении более чем 30 лет. Автором создано четыре поколения учебно-лабораторного микропроцессорного оборудования, которое обеспечивает курсы по организации, проектированию и применению ВС общего назначения и ВсС. Сегодня семейство учебных контроллеров SDK используется более чем в 45 университетах РФ и Республики Беларусь по направлениям информатики, вычислительной техники и смежным специальностям.
Под руководством автора в рамках «Инновационной образовательной программы СПбГУ ИТМО» (Приоритетный национальный проект «Образование», 2007 - 2008гг.) создано и успешно развивается новое направление магистерской подготовки «Встроенные вычислительные системы», которое включает две специализации: 230100.68.31 «Проектирование встроенных вычислительных систем» и 230100.68.32
«Системотехника интегральных вычислителей. Системы на кристалле». Направление развивается в соответствии с программой развития СПбГУ ИТМО как Национального исследовательского университета, в частности, создана магистерская программа «Сетевые встроенные системы».
Развитием данной работы являются 7 успешно защищенных кандидатских диссертаций, выполненных аспирантами под руководством автора.
Практическое использование результатов диссертационной работы подтверждено соответствующими документами о внедрении.
Апробация работы. Основные результаты работы докладывались и обсуждались в 1979 - 2010 годах на следующих Всесоюзных, Всероссийских, Международных, региональных и отраслевых конференциях, семинарах и совещаниях: II Всесоюзном семинаре «Синтез управляющих устройств на основе микропроцессоров и однородных сред» (Рязань, 1979), Республиканском семинаре «Специализированные микропроцессорные системы» (Челябинск, 1981), межотраслевом семинаре «Применение микропроцессорного комплекта БИС К584 в разработке радиоэлектронной аппаратуры» (Минск, 1983), семинаре Рабочей группы по технологии программирования ГКНТ СМ СССР «Технология программирования микропроцессорной техники» (Брест, 1984), Всероссийской конференции «Микропроцессорные системы» (Челябинск, 1984), Всесоюзной конференции «ДИАЛОГ-84-МИКРО» (Ленинград, 1984), Координационном совещании по межвузовской целевой комплексной программе «Микропроцессоры и микроЭВМ» (Фрунзе, 1985), II Международной конференции «Информационные технологии на железнодорожном транспорте» (СПб., 1997), I Всероссийской конференции «Компьютерные технологии в науке, проектировании, производстве» (Н.Новгород, 1999), VII Международной конференции «Региональная информатика 2000» (СПб., 2000), I Всероссийской конференции «Разработка электроники на заказ» (СПб., 2005), VII Всероссийской научно-практической конференции «Энергоэффективность систем жизнеобеспечения города» (Красноярск, 2006), Третьей международной научно-практической конференции «Исследование, разработка и применение высоких технологий в промышленности» (СПб., 2007), I и II Санкт-Петербургском конгрессе «Профессиональное образование, наука, инновации в XXI веке» (СПб., 2007, 2009), Международной конференции «Information and communication technologies in the 7 Framework Program of the EU. Russia — EU Cooperation» (Москва, 2008), Международной конференции «ICINCO - Networked embedded and control system technologies: European and Russian R&D cooperation» (Милан, 2009), Международной конференции «CIV EL-2009» (Москва, 2009), научной и учебно-методической конференции СПб ГИТМО (ТУ) - СПбГУ ИТМО (СПб., 1991 - 2010), а также на других конференциях и
семинарах.
Публикации. По теме диссертации опубликованы 83 печатные работы, среди которых 18 статей в изданиях, включенных в список ВАК РФ, терминологический словарь, брошюра, 6 учебных пособий, более 30 статей в научно-технических журналах и сборниках, а также тезисы и тексты докладов на различных конференциях и семинарах. Список 49 основных работ приведен в конце автореферата.
Структура и объем диссертационной работы.
Понятие встраиваемой вычислительной системы
Постоянно растущая потребность в информационно-управляющих системах (ИУС) различного назначения на современном этапе заставляет разработчиков вычислительной техники активно совершенствовать способы и средства их проектирования.
Значительную долю ИУС составляют встраиваемые системы и сети (embedded systems & networks), которые по функциональному назначению и конструктивному исполнению тесно связаны с объектом контроля или управления. Такие системы называют встраиваемыми или встроенными, мы будем рассматривать эти термины как синонимы, с сокращенным обозначением «ВсС».
Встраиваемые вычислительные системы и сети (или просто встраиваемые системы, ВсС) находят широкое применение в бытовой электронике, промышленной автоматике, на транспорте, в телекоммуникационных системах, медицинском оборудовании, в военной и аэрокосмической технике, в других областях. Сфера применения ВсС постоянно расширяется и в том или ином виде эти системы в ближайшее время проникнут во все области деятельности человека.
Разнообразие задач автоматизации и способов их решения порождает огромное число вариантов ВсС. С учетом существующих технических ограничений и выделяемых финансово-временных бюджетов выбор варианта реализации может превращаться для разработчика в сложную научно-техническую задачу [72, 160]. Разработчику очень важно иметь четкое представление о предмете проектирования, доступных методах и средствах его создания, уметь подобрать или создать близкие прототипы. В общем случае ВсС являются для разработчиков вычислительной техники одним из наиболее сложных объектов проектирования. Даже поверхностный анализ типовых требований и ограничений, которые необходимо учитывать при создании ВсС, подтверждает это. Вот некоторые примеры [94, 97, 119].
Характеристика реактивных систем реального времени:
реагируют на состояние внешней среды;
постоянный цикл взаимодействия со средой;
в идеале, выполняют бесконечный целевой алгоритм;
должны учитывать внешние временные ограничения (реальное время).
Характеристика мобильных массовых ВсС:
сложный набор функций;
работа в режиме реального времени;
низкая стоимость производства;
низкое энергопотребление;
проектируются в сжатые сроки часто малыми рабочими группами;
программирование в рамках модели «с учетом вычислительных ресурсов», в отличие от подхода «неограниченные ресурсы».
Характеристика ВсС, выполняемых по технологии «система на кристалле» (SOC):
сборка «готовых компонентов», зачастую приобретенных у сторонних производителей («интеллектуальная собственность»);
иерархия «черных ящиков»;
проектирование и верификация выполняются больше на системном уровне, чем на логическом;
акцент на взаимодействие компонент;
большая важность программного обеспечения. В значительной степени сложность создания ВсС подтверждается г и отсутствием в литературе четкого определения для этого класса вычислительных систем. Приведем некоторые примеры определений [30].
«Встроенной системой можно считать любую вычислительную систему, которая не является ПК, портативным компьютером (laptop) или большим универсальным компьютером (mainframe computer)».
«Устройство, которое включает в себя программируемый компьютер, но не является при этом компьютером общего назначения».
«Сложно определить. Практически любая вычислительная система, не являющаяся настольным компьютером».
«Система обработки информации, встроенная в какой-либо продукт».
Диапазон- реализаций» ВсС, действительно, очень велик. В него попадают и простейшие устройства уровня домашнего таймера, и сложнейшие распределенные иерархические системы, управляющие критически важными объектами. Важно что, проектируя ВсС, разработчик всегда создает специализированную вычислительную систему независимо от степени соотношения готовых и заново і создаваемых решений. Он должен анализировать все уровни организации системы. Он имеет дело не с созданием приложения в готовой операционной среде при наличии мощных и удобных инструментальных средств, а с созданием новой специализированной ВС в условиях жестких ограничений самого разного плана [54, 37, 53, 55].
Безусловно, часть задач в области создания ВсС удается решать шаблонными способами, особенно если речь идет о развитии или модификации уже готовой системы. Но даже в этом случае требуется использование качественной вычислительной платформы, мощного специализированного инструментария, тщательная верификация и тестирование продукта. Задачи создания ВсС, которые не укладываются по тем или иным причинам в рамки шаблонных решений, постоянно требуют совершенствования методов и средств проектирования.
Тенденция усложнения ВсС проявляется, прежде всего, в том, что большинство систем реализуются в виде многопроцессорных распределенных ВС или контроллерных сетей. Это дополнительно усложняет задачу проектировщика. Рассмотрим основные свойства современных распределенных ВсС [22, 17].
Множество взаимодействующих узлов: более двух, интерес сегодня представляют системы с единицами тысяч взаимодействующих встроенных компьютеров.
Работа в составе систем управления без участия человека. В таких системах оператор может присутствовать, он может получать информацию и частично иметь возможность воздействовать на работу системы, однако основной объем управления выполняет распределенная ВсС. Степень функциональной и пространственной децентрализации управления может меняться в широких пределах.
Вычислительные элементы ВсС выполняют задачи, отличные от задач вычислений и коммуникаций общего назначения.
Распределенные ВсС используются в составе больших по масштабу технических объектов (например, инженерное сооружение, объект энергоструктуры, транспортная система, летательный аппарат) или взаимодействуют с объектами естественной природы (например, комплексы мониторинга окружающей среды).
Распределенные ВсС могут характеризоваться узлами с ограниченным энергопотреблением, иметь фиксированную или гибкую топологию, выполнять критичные для жизнедеятельности человека функции, требовать высокотехнологичной реализации или создаваться как прототип. Суммируя перечисленные выше особенности ВсС необходимо отметить следующее. Это системы «глубоко интегрированные» с объектами физического мира. Их элементы практически всегда ограничены по ресурсам. ВсС системы длительного жизненного цикла, часто автономные. Масштаб ВсС по размерам и сложности меняется в очень широких пределах. Эти системы рассчитаны часто на непрофессиональных (в вычислительной технике) пользователей. ВсС часто выполняют критически важные функции.
Вот как эти системы определяются в Оксфордском словаре по вычислительной технике [90]:
Система реального времени (СРВ): любая система, в которой время формирования выходного воздействия является существенным. Примеры СРВ: управление технологическими процессами, встроенные вычислительные системы, кассовые торговые системы и т.д.
Встроенная вычислительная система (ВсС): любая система, которая использует компьютер как элемент, но чья основная функция не есть функция компьютера. Примеры ВсС: DVD-проигрыватель, светофорный объект, банкомат, паркомат и т.д.
Проектное пространство ВсС и фазы организации вычислительного процесса «Designime /Runime»
Уже на этапе начального формирования архитектуры создаваемой ВсС проектировщик сталкивается с проблемой анализа множества возможных вариантов организации, как самой целевой системы, так и инфраструктуры проекта (например, в части инструментального аспекта, стиля и способов повторного использования элементов, тестирования документирования1 и т.д.). Последующее развитие проекта вглубь также предполагает решение значительного числа задач выбора технических решений при создании частных архитектур подсистем, платформ, при проработке аспектов. В сегодняшнем арсенале методов и средств разработчика ВсС инструменты решения такой проблемы сильно ограничены и предлагают либо шаблонные решения в рамках конкретных Framework - систем, либо свободное неформализованное проектирование.
Одним из направлений в решении данной задачи следует считать формализацию проектного пространства технических решений архитектурного уровня ВсС (пространство поиска технических решений в рамках проекта создания ВсС). Такое n-мерное пространство молено представлять в виде совокупности координат изменения (параметризации) ключевых принципов (свойств) архитектуры. Примерами осей координат, существенных для частных и общих архитектур ВсС, выступают соотношение HW/SW реализации, степень реконфигурируемости, распределенности, параллелизма, on/off-board размещения [инструментальных] функций, on/off-line фазы вычислительного процесса. Элементами этого пространства выступают вычислительные механизмы, которые, как было отмечено выше, составляют основу архитектурных агрегатов аспектной модели системы и проекта.
Ближайшими шагами по формализации этого пространства являются выделение и классификация параметров архитектуры, и определение (фиксация) наиболее значимых точек этого пространства (де-факто существующих технических решений, доказавших свою эффективность) с разнесением их по координатам. Вторым очевидным шагом должен быть анализ заполнения пространства координат известными решениями и попытка синтеза решений, заполняющих выявленные пустоты. Третьим шагом может быть систематическое описание (с единых позиций) свойств и характеристик решений по каждой из осей пространства.
Конечно, укладывать такие сложные объекты, как подсистемы вычислительных архитектур, в многомерное пространство проектных решений, возможно только при условии высокой степени абстрагирования. Разработчику необходимо приложить значительные усилия, направленные на представление его проектных решений в терминах организации вычислительного процесса. Дополнительную проблему может составлять необходимость отражать, содержательную сторону функционирования готовых сторонних компонент, которые разработчик планирует использовать в системе или в проекте, так как необходимая информация по организации! таких компонент может быть недоступна по вторичным причинам.
Важной проблемой является соотношение координат проектного пространства технических решений с аспектным пространством проекта. Если аспектная модель направлена на развитие и отслеживание состояния локализованных частных проблем: проектирования ВсС на всем протяжении проекта, то проектное пространство технических решений выступает своеобразным, пулом; известных и потенциально-существующих решений, которые разработчик использует на конкретных фазах и шагах проекта: Можно считать, что эти пространства ортогональны: аспектное пространство расположено вдоль оси потока проектирования, а пространство технических решений - поперек, пересекая ось. проектирования многократно по мере необходимости поиска решения при проработке проекта вглубь.
Устанавливающим связь понятием: между этими, пространствами, в проекте, по существу, является; архитектурная, платформа: Она фиксирует шаблоны реализации и элементную базу, выбранные разработчиком на основе анализа, всего; единого пространства технических решений архитектурного уровня: Анализ . единого проектного пространства технических решений позволяет в значительной мере оценить степень сбалансированности полученной архитектуры и существующие резервы . альтернативных технических решений.
Важнейшим понятием проектного пространства ВсС следует считать систему проектных координат, число которых не ограничено и явный учет которых разработчиком выполняется на основе вычислительных и невычислительных ограничений проекта, с учетом приоритетов этих ограничений. Система проектных координат включает как вычислительные (непосредственно связанные с целевой функциональностью), так и невычислительные плоскости. Примерами вычислительных осей координат могут служить соотношение HW/SW реализации, степени реконфигурируемости, распределенности, параллелизма, on/off-board размещение различных категорий функций (в первую очередь, инструментальных), реализация design/runime (on/off-line) фаз вычислительного процесса и другие. Невычислительные оси могут представлять технические решения по конструкции узлов, способам документирования частей проекта, системе энергопитания, вопросам обеспечения тепловых режимов, электромагнитной совместимости, технологии производства, метрологии и другим.
Явное выделение координат направлено на использование разработчиком потенциала существующих степеней свободы проекта, что в значительной степени базируется на важнейшем тезисе - свободе в выборе реализации. Выстраивание и заполнение координат в техническом мировоззрении проектировщика само по себе является мощным инструментом формализации знаний и опыта, способствует более глубокому анализу возможных решений, позволяет эффективнее выполнять декомпозицию задачи.
Пространство проектных координат в методиках и технологиях проектирования ВсС может занимать различное место и иметь разное значение. Предлагаемая в работе аспектная модель проектирования в значительной мере основывается на данном пространстве, трактуя его как пространство возможных технических решений, используемое последовательно на разных фазах детализации проекта ВсС. При этом координаты технических решений могут явно включаться в орбиту процесса проектирования в соответствии с важностью того или иного аспекта разработки. Решения могут выбираться- согласованно в- пространстве подмножества- координат, как для) целевой, так, и для обеспечивающей, части проекта.
Элементы объектно-событийной модели
При использовании предлагаемой ОСМВ разработчик имеет дело со следующими сущностями:
Объект (функциональный блок). ФБ являются носителями поведенческих аспектов проектируемой системы. В узком смысле они являются реализацией алгоритмов обработки данных и формирования сигналов управления. Обладают свойствами полиморфизма и инкапсуляции, позволяют создавать иерархические модели, зачастую являясь композицией более мелких ФБ. Каждый отдельно взятый ФБ можно рассматривать как самостоятельную систему.
Событие. Все элементы модели связаны некоторыми сигналами. Изменение (активизация) сигнала называется событием. События характеризуются временем возникновения и, в случае необходимости, данными (состоянием) сигнального входа. События переносят данные между ФБ, и активизируют последние для выполнения тех или иных действий.
Порт. Порт является механизмом передачи событий между ФБ. Обмен событиями ФБ осуществляет именно с помощью портов. Порты могут быть двух типов: входные и выходные. ФБ воспринимает событшг по входным портам и генерирует выходные события по выходным портам. Входные порты ФБ могут быть двух типов: синхронные и асинхронные. Событие на синхронном порте активизирует ФБ.
Узел. Физический носитель вычислительных ресурсов целевой системы, реализующий "отображенные" на него ФБ и порты. При реализации модели узлы системы обеспечивают выполнение следующих задач:
о Предоставление необходимых ресурсов реализациям ФБ; о Поддержка всех необходимых форматов данных событий; о Реализация необходимого количества портов ФБ; о Обеспечение синхронизации событий.
Функциональный блок
ФБ реализует часть целевой функции, обладает набором входов/выходов (входных и выходных портов), назначен (отображен) на конкретный узел (набор узлов) целевой РИУС. В принципе, работать, с моделью можно и, не проводя отображения ФБ на целевые узлы. ФБ можно сформировать двумя способами:
1. ФБ является выражением конкретного алгоритма, заданного тем или иным способом;
2. ФБ является композицией других, более мелких ФБ.
Имея в виду эти способы получения ФБ, можно выделить достаточно важный класс ФБ — атомарных. Атомарным (примитивным) функциональным блоком (АФБ) называется ФБ, который обладает законченной и конкретной функциональностью и имеет некоторую реализацию (возможно несколько различных реализаций) в рамках целевой вычислительной платформы. Очевидно, что АФБ не нуждается в дальнейшей структурной декомпозиции на более мелкие ФБ. Иерархичность модели реализуется за счет представления более крупных ФБ (на верхних уровнях иерархии) в виде композиции более мелких.
Для абстрагирования от специфики программной или аппаратной реализации частей системы необходимо выбрать подходящие средства описания. Очень важным отличием аппаратных реализаций от программных реализаций является параллелизм. Параллелизм в аппаратных реализациях проявляется двояко: параллелизм во времени и параллелизм в использовании ресурсов. Программа же трактуется как упорядоченная во времени последовательность операций, при этом традиционно ось времени единственная и все операции выполняются строго последовательно. При реализации программных алгоритмов вполне возможно разделение таких ресурсов системы, как процессорное время (отдельные функции могут выполняться последовательно и независимо), так и память (отдельные функции, выполняясь последовательно, могут использовать одни и те же ячейки памяти).
Аппаратная схема трактуется как набор подсистем существующих и работающих одновременно и выполняющих одно и тоже действие во времени. Т.к. традиционно вся функциональность аппаратной реализации существует одновременно (параллельность во времени), невозможно также легко как в случае программной реализации обеспечить разделение ресурсов памяти кода и данных (параллельность в ресурсах). Очевидно, что в особых случаях можно применить различные техники распараллеливания вычислений, чтобы сделать одновременным выполнение функций в программной реализации и обеспечить последовательность в аппаратной реализации.
Переход от "разделяемых" локальных переменных к строго выделенным ресурсам имеет смысл только в случае, если интерпретатор имеет возможность обрабатывать наборы данных за одну инструкцию, т.н. SIMD (Single-Instruction Multiple-Data) процессоры. В противном случае сокращения времени выполнения функций не добиться. Еще нужно иметь в виду, что для объединения вычисления функций необходимо, чтобы к определенному моменту были готовы данные для обеих ветвей алгоритма. Имея в распоряжении только один последовательный интерпретатор, нет необходимости создавать отдельные копии кода функции в памяти. В РИУС зачастую дело обстоит иначе. В распоряжении разработчиков имеется множество вычислителей, и данные для функций могут быть готовы совершенно в различные моменты времени, так что объединить их выполнение на практике не будет возможности.
Тот или иной способ реализации вычислительного процесса не влияет на общую модель системы на высоких уровнях рассмотрения. Данное утверждение позволяет сделать вывод о том, что представление на уровне ФБ позволяет абстрагироваться от специфики реализации отдельных вычислительных механизмов и дает возможность описать систему без предварительного разбиения на программную и аппаратную составляющие. На последнем этапе проектирования при генерации кода программной компоненты и аппаратной компоненты ФБ могут быть заменены аналогичными элементы моделирования в выбранных языках реализации. Например, при генерации кода программной компоненты на языке C/C++ ФБ адекватно замещается объектом, при генерации кода аппаратной компоненты на языке VerilogHDL ФБ замещается модулем (module). Во всех случаях иерархия ФБ моделей осуществляется за счет использования реализаций более мелких ФБ при описании структуры более крупных ФБ. То же самое можно утверждать про создание объектов/модулей в упомянутых языках.
Для проведения моделирования необходимо абстрагироваться от способа внутренней организации конкретного ФБ и тонкостей его реализации. Модельными параметрами ФБ должны явиться свойства, независящие от его организации и реализации. Такими важными при моделировании параметрами могут стать временные характеристики различного рода.
Рассмотрим несколько сигналов s1, s2, s3, ... sm+n. Пусть / — набор входных сигналов (s , s", ... sm), а. О — набор выходных сигналов (sJ+"\ s2+m, ... sn+m) некоторого ФБ. Временные характеристики ФБ определяются тремя параметрами.
Сложность генерации выходного события т. Данный параметр представляет собой матрицу, состоящую из п строк и m столбцов.
Элемент матрицы тч представляет собой количество" событий, которые необходимо обработать по входу j, чтобы сформировать событие на выходе /. Очевидно, по построению, что Vi(0 / «) Vj(0 j m) Tv 0,r;jeZ. (3.1)
Минимальный интервал следования входных событий. Для каждого ФБ имеются ограничения на следование входных событий. Эти ограничения связаны с физикой происходящих внутри блока процессов, и практически ни при каких условиях не могут быть нарушены. К таким ограничениям относятся максимальная скорость работы ЦАП или АЦП, максимальная частота тактирования аппаратных схем и различных микроконтроллеров. Для АФБ этот параметр определяется по документации и может быть только ухудшен. Параметр представляет собой числовые значения временных интервалов для каждого входа ФБ.
Аппаратно-программная платформа SDK для подготовки специалистов по проектированию встраиваемых систем
Важнейшей составляющей подготовки специалистов в области проектирования ВсС являются инструментальные средства для начального освоения элементной базы, прототипирования и отладки ВсС малой и средней сложности.
Профессиональные зарубежные коллективы разработчиков контроллеров используют промышленные технологии проектирования, которые развиваются и поддерживаются ведущими мировыми фирмами в области вычислительных САПР (такими как Cadence, Mentor Graphics), дополняя эти технологии своими наработками.
Массовый отечественный разработчик микропроцессорных систем в большинстве случаев к таким технологиям доступа не имеет и вынужден пользоваться "подручными средствами". Данная группа разработчиков расширяется, постоянно пополняясь специалистами из смежных с вычислительной техникой областей.
Ориентация на рынке инструментальных микропроцессорных средств полезна как начинающим разработчикам, так и специалистам с опытом.
В данном разделе мы ограничимся рассмотрением "low-end" сектора аппаратных инструментальных средств микропроцессорной техники, которые удобно поделить на следующие категории:
учебные стенды (учебные контроллеры);
оценочные и прототипные платы и наборы;
контроллеры - конструкторы;
прочие инструментальные контроллеры.
Предназначены для изучения принципов организации и работы микропроцессорной элементной базы, вспомогательных элементов (память, контроллеры ввода-вывода, оконечные устройства и др.), получения навыков проектирования и низкоуровневого программирования микропроцессорных систем различного назначения.
Учебные стенды представляют собой функционально-законченные устройства, в которых есть вычислительное ядро, набор устройств ввода-вывода и средств общения с оператором, учебно-инструментальное программное обеспечение. Большое значение имеет оснащение методическими материалами. Стенды могут быть спроектированы для автономной работы или для работы с инструментальной ЭВМ (персональный компьютер).
Сегодня в России практически не выпускаются подобные устройства. Профильные учебные заведения используют либо морально устаревшее оборудование, либо создают учебную базу своими силами. Некоторый набор стендов предлагает Росучприбор.
К этой категории инструментальных средств относятся платы развития (evaluation board), демонстрационные платы, наборы прототипирования (development kit, starter kit). Задачи, решаемые этой категорией средств, состоят в демонстрации возможностей конкретного микропроцессорного компонента, в поддержке процесса освоения нового элемента разработчиком (например, уточнение особенностей схемного включения), в быстром создании прототипа будущей системы.
Такие платы обычно демонстрируют каноническую схему включения элемента. Они содержат необходимые для такого включения схемы памяти, тактирования, буферизации, питания, снабжаются инструментальным интерфейсом, необходимыми для демонстрации основных режимов работы. изучаемого элемента органами управления (переключатели, джамперы), минимальными средствами индикации, разъемами расширения. Состав инструментального программного обеспечения может варьироваться от простейшего загрузчика (программатора) до полноценной системы программирования и отладки (IDE — интегрированная среда программирования), что обычно определяется сложностью демонстрируемого элемента. В комплект обязательно входит полная принципиальная электрическая схема устройства и краткое руководство пользователя. Исходные тексты инструментального программного обеспечения обычно не поставляются.
Оценочные и прототипные платы и наборы для своих элементов выпускают практически все фирмы — производители микропроцессорной техники или фирмы, специализирующиеся на инструментальных микропроцессорных средствах. Среди отечественных производителей следует отметить фирмы Фитон и КТЦ МК. Стоимость таких средств лежит в широком диапазоне (от десятков до тысяч долларов США), и обычно существенно завышена относительно аналогичных по сложности серийных изделий.
Оценочные и прототипные платы плохо приспособлены для создания на их базе конечных изделий, так как не имеют большинства атрибутов промышленных и приборных контроллеров (схем контроля питания, гальванической изоляции, защиты и других).
Средства, наиболее популярные у массового разработчика. Представляют собой полуфабрикат микропроцессорного контроллера, на основании которого легко собрать несложную целевую систему в ограниченном количестве экземпляров.
Контроллеры-конструкторы разнообразны по своей организации и составу периферийных блоков, могут снабжаться схемами защиты, элементами поддержки работы в реальном времени. Они выполняются часто с макетным полем или большим числом разъемов расширения. Важным их отличием от промышленных контроллеров является необходимость программирования пользовательской задачи на уровне реальной аппаратуры (а не на уровне виртуальной машины ПЛК или операционной системы) независимо от используемого языка программирования (ассемблер, Си, Бейсик).
Контроллеры-конструкторы являются "открытыми системами", что определяет состав сопроводительной документации (принципиальные электрические схемы и описание архитектуры) и инструментального программного обеспечения (загрузчики, программаторы, мониторы-отладчики, библиотеки драйверов устройств и специальных вычислительных функций).
В России известны контроллеры-конструкторы ряда отечественных и зарубежных фирм, например, таких как КТЦ МК, Каскод, Z-World.
В эту группу мы относим прочие аппаратные инструментальные средства, состав которых разнообразен и постоянно расширяется. Наиболее известными представителями этой категории средств являются программаторы ППЗУ, эмуляторы, анализаторы интерфейсов и сетей, JTAG-тестеры, сигнатурные анализаторы, адаптеры внутрисистемной отладки, программируемые генераторы, комбинированные устройства.
Такие средства следует рассматривать как законченные изделия1 с известной функциональностью, что определяет завершенность их исполнения, наличие только пользовательской документации, "закрытое" нерасширяемое программное обеспечение.