Ожиганов А. А., Тарасюк М. В. Размещение считывающих элементов на композиционной кодовой шкале // Изв. вузов. Приборостроение. 1997. Т. 40, № 1. С. 42—47.
Александр Аркадьевич Ожиганов
Сведения об авторе д-р техн. наук, профессор; Санкт-Петербургский национальный исследовательский университет информационных технологий, механики и оптики, кафедра вычислительной техники; E-mail: ojiganov@mail.ifmo.ru
Рекомендована кафедрой вычислительной техники
Поступила в редакцию 08.02.12 г.
УДК 004.2, 681.3
И. С. Болгаров, Н. А. Маковецкая, А. Е. Шатунов, Н. П. Постников ПРОЕКТИРОВАНИЕ ПРИБОРНЫХ КОНТРОЛЛЕРОВ
Рассмотрены особенности встроенных вычислительных систем (приборных контроллеров), используемых в современных научных измерительных приборах и комплексах. Показана сложность разработки подобного рода систем, описаны тенденции и актуальные проблемы процесса проектирования. Предложены перспективные пути развития методов и технологий высокоуровневого проектирования посредством формального расширения пространства поиска решений.
Ключевые слова: встроенная вычислительная система, приборный контроллер, автоматизация эксперимента, сканирующий зондовый микроскоп, глубоко программируемые системы, заказное проектирование, процесс проектирования, высокоуровневое проектирование.
Введение. В современных научных измерительных и аналитических приборах и комплексах широко используются встроенные вычислительные системы (ВсС), выполняющие комплекс функций от сбора данных и управления экспериментом до финишной обработки, представления и архивирования полученной информации. Такие ВсС называются приборными контроллерами (ПрК).
ПрК относятся к „глубоко программируемым" (8'^т1еп81уе) системам и обычно реализуют несколько уровней обработки информации эксперимента, сервисные и вспомогательные функции. При создании ПрК используются различные вычислительные архитектуры и технологии, что делает разработку этой категории ВсС сложной научно-технической задачей.
Востребованным направлением создания сложных ПрК с высокими инструментальными, метрологическими и пользовательскими характеристиками является заказное проектирование, охватывающее все основные уровни вычислительной иерархии ВсС. Такого рода разработки выполняются в ограниченных временных и финансовых рамках при условии высокой надежности проектирования, что определяет необходимость решения ряда сложных методологических проблем проектирования на базе широкого спектра информационно-коммуникационных и микроэлектронных технологий [1].
Методология заказного проектирования ПрК. Перечислим основные тенденции в развитии технологий и средств проектирования ВсС, которые непосредственно связаны с усилением значения этапов архитектурного, функционального, логического проектирования:
— повышение уровня абстракции проектирования;
— широкое применение моделирования, методов формального анализа и верификации моделей;
— введение уровня абстрактного представления вычислительного процесса;
— усовершенствование технологий создания встраиваемого программного обеспечения.
Данные этапы, относящиеся к области высокоуровневого проектирования (High Level
Design, KLD), сегодня составляют до 70 % общего объема процесса разработки ВсС. По-прежнему широко используются традиционные технологии, относящиеся к низкоуровневому проектированию, когда архитектурное проектирование осуществляется на последующих фазах разработки. Выбор маршрута проектирования ПрК зависит, прежде всего, от сложности решаемой задачи и квалификации потенциальных разработчиков. Инструментарий сегодня достаточно развит и доступен, он не является ограничивающим фактором [2, 3].
На рис. 1 представлен упрощенный маршрут проектирования ВсС. От того, насколько проектировщики могут расширять зону работы с абстрактными моделями вычислительного процесса (ВП) и вычислительной системы в рамках всего маршрута проектирования, кардинально зависит качество проектирования ВсС.
Требования прикладной задачи
Варианты реализации
НЕ
Вручную
Абстрактные модели вычислительного процесса
Варианты реализации
Автоматизированно
„Программные" описания
Дополнительные уровни (виртуальные машины, ОС РВ, soft-процессоры, ...)
Конфигурационные образы
Варианты реализации
Автоматизированно
Конечный продукт
и
и ц
к
а р
т с б а ь н е в
о р
Рис. 1
Проектирование архитектуры ПрК. ПрК в зависимости от своей структуры, организации ВП, используемых вычислительных и языковых платформ могут быть разделены на группы: автономные, с хост-машиной (например, персональный компьютер), пространственно или/и функционально распределенные (многопроцессорные и сетевые структуры), с многоуровневой системой прикладного пользовательского программирования (СППП) и др.
На рис. 2 приведена структура вычислительных средств сканирующего зондового микроскопа (СЗМ), которые представляют собой ПрК, состоящий из ряда стандартных и специализированных аппаратных и программных блоков. ПрК обеспечивает многоуровневую организацию ВП в СЗМ, что позволяет гибко балансировать параметры целевого физического эксперимента и подстраиваться под требования различных категорий пользователей прибора (от студентов до экспертов в прикладной области).
Оценить сложность задач, решаемых разработчиком ПрК, и разнообразие вариантов их решения позволяют представленные ниже примеры. Первый из них относится к организации системы управления ПрК, второй иллюстрирует будни проектировщика, который решает задачу архитектурного проектирования значительной по сложности подсистемы ПрК, выбирая и осваивая инфокоммуникационные компоненты и технологии, с одной стороны, навязанные
техническим заданием, с другой полезные из соображений требуемой функциональности и повторного использования.
Рис. 2
Пример 1. Автоматизация эксперимента — основное назначение ПрК. Разработчик ПрК устанавливает общую направленность вычислительного процесса и задает базовые средства выражения алгоритма проведения эксперимента. Конечный пользователь описывает конкретный алгоритм эксперимента, используя средства прикладного программирования (конфигурирования) ПрК.
В случае СЗМ заказчиком озвучивались лишь общие пожелания по выполнению функций генерации сигналов, синхродетектирования, цифровой фильтрации и т.д. В связи с отсутствием четких требований к структуре вычислительного процесса было принято решение о разработке способа описания вычислительной схемы на основе функциональных блоков. Такое архитектурное решение обеспечило возможность эффективно реконфигурировать вычислительную схему для решения задач и достижения новых свойств. Был создан спецвычислитель (СВ) NL3 [4] на базе микросхемы программируемой логики Xilinx Spartan3E, а также разработано сопутствующее инструментальное ПО (компилятор NL3 и др.). Пользователю предоставлены система прикладного программирования эксперимента, отвечающая требованиям режима реального времени, а также средства прикладного программирования на языке Java. Таким образом, ПрК СЗМ предоставляет возможность гибкой декомпозиции алгоритма и реализации его в подходящей системе программирования.
Актуальность разработанной архитектуры ПрК подтверждается направлением исследований ведущих фирм в области вычислительной техники, однако на текущий момент существуют серьезные ограничения в использовании стандартных инструментов. Поэтому применение различного рода спецвычислителей оправдано, с одной стороны, ориентированностью на определенный класс задач, а с другой — возможностью оптимизации конечного продукта.
Способ распределения алгоритма по средам программирования влияет на качество ПрК как конечного изделия. Использование среды программирования „реального времени" более трудоемко по сравнению с использованием среды программирования общего назначения. Для ускорения процесса разработки алгоритм может быть реализован на процессоре общего назначения с „потерей качества". Дальнейшее снижение сложности и сроков программирования возможно при переносе алгоритмов эксперимента на хост-машину, что обычно применяется при создании прототипов.
Пример 2. В число подсистем ПрК СЗМ входит виртуальный осциллограф (ВО), предназначенный для визуализации внутренних процессов прибора на ПК под управлением ОС Windows, подключенном к СЗМ по каналу USB. ВО служит примером системы реального
времени с широкими возможностями конфигурирования пользователем. Ключевое требование ТЗ — работа в режиме реального времени со сравнительно большими объемами данных (порядка 100 000 срезов данных в секунду) — существенно повлияло на реализацию ВО.
Для обеспечения требуемой скорости передачи данных было принято решение нестандартным образом использовать штатные средства операционной системы (USB audio и kernel streaming). Основной сложностью явился выбор базового инструмента для реализации: в документации производителя ОС описаны разнообразные инструменты для работы с устройствами, но место каждого инструмента в общей картине функционирования ОС понять довольно трудно; в документации уделяется много внимания мелочам в ущерб описанию общей картины происходящего. „Пробелы" документации пришлось восполнять в процессе проектирования. В ходе этой работы было реализовано несколько небольших экспериментальных проектов. В итоге затраты на реализацию этой части оказались довольно велики, причем значительная их доля пришлась не на решение собственно задачи, а на исследование свойств инструментария.
Этот пример может служить иллюстрацией того, как повторное использование относительно сложных инфокоммуникационных технологий сдерживается отсутствием эффективных выразительных средств для донесения их сути (на уровне назначения и архитектуры) до проектировщика и/или нежеланием поставщика изыскивать и использовать такие средства.
Развитие методов и технологий высокоуровневого проектирования ПрК. Представленные примеры убедительно демонстрируют значимость этапов архитектурного проектирования ПрК и необходимость совершенствования соответствующих методологий и инструментов высокоуровневого проектирования [6].
Однако это плохо сочетается с доминирующей моделью знаний в области вычислительной техники, в основе которой лежит каноническая организация ВС с центральным программируемым процессором интерпретирующего типа, на базе которого в рамках ОС организуется прикладной вычислительный процесс посредством создания программы на языке высокого уровня с последующей трансляцией в команды аппаратного процессора и вызовы функций ОС.
Данная модель профессиональных знаний пригодна в секторе прикладного программирования на стандартных аппаратно-программных платформах и неэффективна в области ВсС.
Изменить взгляд специалиста на организацию ВсС и повысить эффективность HLD можно, прежде всего, посредством формального расширения пространства поиска решений при создании ВсС за счет:
— формирования системы высокоуровневых (архитектурных) абстракций для представления ВсС (процесса проектирования, базовых элементов ВС, системного уровня, оценки архитектурных решений);
— выделения функциональных и нефункциональных требований технического задания в аспекты процесса проектирования;
— широкого использования принципа платформо-ориентированного проектирования;
— совместного проектирования инструментальной и целевой компоненты проекта;
— достижения динамического баланса „альтернатив" проектирования между фазами „проектирование/реализация" ВсС и „разработка/исполнение" вычислительного процесса, а также между аппаратной и программной реализацией функций.
Заключение. Проектирование ПрК требует внедрения перспективных методов и технологий. Конкурентоспособность изделий, построенных на заимствованных шаблонных решениях, всегда будет невысока. Поэтому необходимо разумное сочетание технологий повторного использования и создания оригинальных продуктов. Взгляд на ВсС через призму высокоуровневого проектирования открывает перспективы преодоления кризиса сложности в инфо-коммуникационной отрасли, поддерживая как эффективное освоение готовых решений и технологий, так и быстрое и надежное создание оригинальных продуктов. Это в первую оче-
редь актуально для таких областей проектирования, как сложные приборные контроллеры и системы.
СПИСОК ЛИТЕРАТУРЫ
1. Платунов А. Е., Постников Н. П. Перспективы формализации методов проектирования встроенных систем // Электронные компоненты. 2005. № 1. С. 24—29.
2. Sangiovanni-Vincentelli A. Quo Vadis SLD: Reasoning about Trends and Challenges of System-Level Design // Proc. IEEE. 2007. Vol. 95, is. 3. P. 467—506.
3. Lee E., Neuendorffer S., Wirthlin M. Actor-oriented design of embedded hardware and software systems // J. Circuits, Systems, and Computers. 2003. Vol. 12, N 3. P. 231—260.
4. Ковязин Р. Р., Постников Н. П. Разработка проблемно-ориентированных процессоров // Науч.-техн. вестн. СПбГУ ИТМО. 2010. Вып. 70. С. 81—85.
5. Buschmann F., Buschmann F., Meunier R., Rohnert H., Sommerlad P., Stal M. Pattern-Oriented Software Architecture // Chichester. NY—Toronto—Singapore: John Wiley and Sons Ltd., 2001. Vol. 1. A System of Patterns. P. 53—70.
6. Platunov A. E., Kustarev P. V. Problems of Abstract Representation of Embedded Systems at High-level Stages Design // Proc. Intern. Workshop on Networked embedded and control system technologies: European and Russian R&D cooperation (NESTER). 2009. P. 100—107.
Сведения об авторах Иван Сергеевич Болгаров — ООО „ЛМТ", Санкт-Петербург; инженер;
E-mail: ivan.bolgarov@gmail.com Наталья Андреевна Маковецкая — ООО „ЛМТ", Санкт-Петербург; инженер; E-mail: mna@d1.ifmo.ru Алексей Евгеньевич Платунов — д-р техн. наук, профессор; Санкт-Петербургский национальный исследовательский университет информационных технологий, механики и оптики, кафедра вычислительной техники; E-mail: platunov@lmt.ifmo.ru Николай Павлович Постников — канд. техн. наук; ООО „ЛМТ", Санкт-Петербург; главный инженер;
E-mail: pnp@d1.ifmo.ru
Рекомендована кафедрой Поступила в редакцию
вычислительной техники 08.02.12 г.