Тематическую подборку редактировал Уэйн Вульф, написавший вводную заметку «Панорама встроенных систем» (The Embedded Systems Landscape). Все, что связано со встроенными компьютерами, иногда ассоциируется с простыми контроллерами в дешевых продуктах, и, хотя небольшие контроллеры действительно важны (ежегодно продаются миллиарды 8-разрядных систем), ими данная область не исчерпывается. Высокопроизводительные микроконтроллеры используются как поодиночке, так и в составе сети для самых разнообразных приложений. Под «высокой производительностью» понимаются вычислительная мощность, измеряемая миллиардами операций в секунду, например, в мобильных телефонах следующего поколения, основанных на использовании методов программно-управляемой радиосвязи, потребуются микропроцессоры, которые способны выполнять не менее 10 млрд. операций в секунду. Аналогично, высокая производительность встроенной вычислительной аппаратуры требуется для мультимедийных приложений, причем в данном случае высокая производительность нужна всегда, а не только при пиковой нагрузке. Однако проблема встроенных высокопроизводительных компьютеров является сложной не только потому, что требуется достичь действительно очень высокого уровня производительности, но и из-за того, что встроенные системы должны удовлетворять двум важным требованиям: реальное время и низкое потребление электроэнергии.
Первая статья подборки, которую написали Томас Хейзингер и Джозеф Сифакис, называется «Дисциплина проектирования встроенных систем» (The Discipline of Embedded Systems Design). Компьютерная наука взрослеет, исследователям удается разрешить многие фундаментальные проблемы, но для решения многих других проблем требуются новые прорывные результаты, которые невозможно предвидеть. Многие современные исследовательские проблемы заставляют действовать на пределе возможностей существующей технологии. Многие талантливые студенты сегодня не собираются связывать свою карьеру с ИТ, а выбирают для изучения биологические науки или наноинженерию. В то же время компьютерные технологии все больше проникает в повседневную жизнь — встроенное программное обеспечение управляет коммуникационными, транспортными и медицинскими системами.
Возможности встроенных систем кажутся неограниченными, от «умных» домов до автоматизированных автомагистралей, однако их стоимость часто оказывается чрезмерно высокой, а надежность недостаточной. Как это ни парадоксально, именно недостатки современных процессов разработки и сопровождения приводят к тому, что программное обеспечение остается наиболее дорогостоящей и наименее надежной частью встроенных приложений. В результате не удается извлечь выгоду из огромного потенциала технологий встроенных компьютерных и коммуникационных систем.
Основную причину этого авторы статьи видят в отсутствии строгих методов проектирования встроенных систем. С одной стороны, такие системы в основном игнорируются как объект исследований в области компьютерной науки, поскольку здесь обычно применяются абстракции, не позволяющие принимать во внимание физические ограничения. С другой стороны, для проектирования встроенных систем оказывается недостаточно традиционного опыта в области электроники, потому что составными частями встроенных систем являются вычисления и программное обеспечение. Проблема проектирования встроенных систем, безусловно, порождает ряд вопросов, относящихся к технологии, но более важно то, что для ее решения требуется создание нового научного фундамента.
Параллельно этому преподавателям потребуется обновить программы компьютерных учебных курсов — в индустрии специалисты в области электроники повседневно проектируют архитектуры программных систем и постоянно сталкиваются с физическими ограничениями, однако проектирование встроенных систем занимает периферийные позиции в учебных программах. Компьютерная наука в основном базируется на дискретной математике, а традиционные технические дисциплины — на непрерывной; поэтому сегодня индустрия требует инженеров, которые чувствовали бы себя как дома в обоих мирах.
Альберто Санджованни-Винцентелли и Марко ди Натале представили статью «Разработка встроенных систем для автомобильных приложений» (Embedded System Design for Automotive Applications). Сохраняя относительную стабильность, автомобилестроители и их поставщики сегодня находятся в состоянии стресса, вызываемого возрастающей важностью и добавленной стоимостью электроники.
Цепочка поставок в автомобильной промышленности включает не только производителей, поставляющих на потребительский рынок конечную продукцию, и поставщиков таких подсистем, как подсистемы управления трансмиссией, подвесками и тормозной системой (так называемые «поставщики первого уровня»), но и производителей электронных схем, микропроцессоров, операционных систем реального времени, а также контрактных изготовителей электронных компонентов.
Ответственность перед потребителями вынуждает производителей автомобилей ограничивать внешнее производство только компонентами, не влияющими на общую надежность автомобиля. Стандартным подходом является разработка систем путем сборки компонентов, полностью или частично спроектированных и разработанных поставщиками первого уровня. Однако эти поставщики сами сегодня все чаще прибегают к аутсорсингу.
Процесс поставок традиционно был ориентирован на простые интегрированные подсистемы, к которым со стороны предъявлялись общие требования к производительности, но не детализировались временные соотношения, требования к синхронизации и коммуникационным протоколам. В результате постоянно производится интеграция подсистем, однако делается это с применением эвристических методов. Результирующее отсутствие общего понимания взаимодействия подсистем и трудности, встречающиеся при интеграции сложных компонентов, делают системную интеграцию очень сложным занятием.
Новые методы анализа системного уровня и моделирования требуются не только для обеспечения предсказуемости и возможности компоновки при декомпозиции сквозных функций во время проектирования (и позже, во время системной интеграции), но также и для обеспечения поддержки проектировщиков на очень ранней стадии, когда производятся оценка и выбор электроники и программной архитектуры для линейки продуктов. Эта стадия оказывает сильное влияние на стоимость, эксплуатационные характеристики и качество линейки продуктов.
Выбор архитектуры обычно производится за годы до реальной разработки и интеграции подсистем. В этом процессе должны быть определены модели функций и возможные решения для реализации физической архитектуры, и должны быть произведены оценка качества и выбор наилучшей аппаратной платформы по отношению к производительности, надежности и ценовым показателям.
Для оптимизации проектирования систем автомобильной электроники требуются стандарты в областях программного обеспечения и аппаратуры, позволяющие автоматически конфигурировать подсистемы. Тогда возможность интеграции подсистем станет доступной всем контрактным производителям, и для достижения конкурентных преимуществ они будут все чаще полагаться на обеспечение новых и впечатляющих функциональных возможностей. Существенной технической проблемой является формирование стандартов, обеспечивающих интероперабельность между программными и аппаратными решениями, лицензируемыми у владельцев интеллектуальной собственности, и инструментальными средствами интеграции. Международный консорциум AUTOSAR ставит в качестве одной из основных своих целей решение этой проблемы.
Однако сначала необходимо преодолеть ряд технических и бизнес-проблем, в частности с технической точки зрения, хотя сейчас возможно совместное использование алгоритмов и функциональных структур, совместное использование программного обеспечения жесткого реального времени затруднительно, даже если предположить существенное улучшение методов и технологии проектирования. При наличии требований к поддержке реального времени и высокой надежности необходимо разрешить несколько проблем декомпозиции функций и интеграции подсистем.
Предсказуемость временных характеристик. Эта проблема относится к возможности предсказания поведения во времени на уровне системы (задержки и разброс) при наличии синхронизации между задачами и сообщениями, а также взаимодействий между задачами на уровнях операционной системы реального времени и программного обеспечения промежуточного слоя.
Функциональная надежность. Распределение функций по блокам управления двигателем и выработка политик коммуникации и синхронизации должны производиться в целях достижения функциональной надежности. В средствах проектирования системного уровня должна сочетаться поддержка шаблонов проектирования, удовлетворяющих требованиям разработки высоконадежных систем, со сдерживанием сбоев как на функциональном уровне, так и на уровне обеспечения временных соотношений. Такие инструментальные средства должны также поддерживать автоматическое построение деревьев сбоев для вычисления вероятности возникновения опасных ситуаций или просто причинно-следственных зависимостей, которые позволяют связать данный системный сбой со сбоями уровня подсистем или даже атомарных компонентов на основе выбранного варианта распределения функций.
Обеспечение возможностей компоновки и расширений в сопоставлении с эффективностью. Временные характеристики программных задач зависят от присутствия или отсутствия других задач, и аналогичные соображения применимы и к сообщениям. Можно было бы определить политику планирования, предотвращающую неустойчивость при динамическом изменении характеристик задач, но это привело бы к дополнительным накладным расходам. Кроме того, ни одна из коммерчески доступных операционных систем реального времени не поддерживает такую политику.
Стандартный компромисс между эффективностью и надежностью в данном случае имеет более серьезные последствия для бизнеса, чем обычно. Кто бы ни принял на себя ответственность за спецификацию подсистем и их интеграцию, ему потребуется строгая методология и железная воля, чтобы заставить поставщиков соответствовать ей. Этого может оказаться недостаточно, поскольку характеристики программного обеспечения трудно точно определить. У разработчиков может просто отсутствовать возможность гарантировать функциональное поведение системы, ее временные характеристики и надежность при наличии внешних компонентов.
Идеальный подход должен был бы состоять в автоматическом отображении набора задач на платформу с обеспечением гарантий корректного функционирования и выдерживания временных соотношений при оптимальном использовании ресурсов.
Авторами статьи «Использование технологии для устройств цифрового видео» (Using DaVinci Technology for Digital Video Devices) являются Дипу Талла и Джеремая Голстон. Для разработки новаторских и экономически эффективных продуктов, поддерживающих цифровое видео, требуются открытые и гибкие «системы на кристаллы», включающие процессоры, программное обеспечение и средства разработки. Производители ежегодно поставляют на рынок миллиарды портативных медиаплейеров, цифровых медиаадаптеров, приставок для потокового видео, цифровых видеокамер и т.д. У большей части этих продуктов требования к процессорам аналогичны тем, что имеются у сегодняшних персональных компьютеров, но их показатели потребляемой мощности и стоимости отличаются на порядки.
У устройств, поддерживающих цифровое видео, имеются различные особенности использования и стоимости, зависящие от стратегии обработки данных, уровня интеграции и методологий разработки. Так, ориентация на высокоуровневую операционную систему, такую как Linux или Windows CE, обычно приводит к выбору процессора общего назначения. Потребность в возможности программирования, модернизации в условиях эксплуатации, универсального декодирования видеосигналов стимулирует использование цифровых сигнальных процессоров, программируемых ускорителей и непрограммируемых аппаратных средств.
От того, должно ли быть устройство переносимым, требующим питания от электросети или постоянно находящимся во включенном состоянии, зависит выбор технологии обработки, схем синхронизации и т.д. Спецификация компонентов и конструктивные особенности оборудования влияют на уровень системной интеграции, включая аналоговые компоненты, память, возможности взаимодействия и компоновку. Жизненный цикл продукта и условия его эксплуатации воздействуют на выбор методологий проектирования, относящихся к тестированию, возможности быстрого создания усовершенствованного устройства и оптимизации (например, отбору по скорости и потребляемой мощности).
В последнее десятилетие технология «систем на кристалле» была основной технологией продуктов рынка оборудования цифрового видео. В таких системах обычно имеется несколько процессоров, программируемых ускорителей, непрограммируемых устройств, периферийных интерфейсов и аналоговых компонентов, интегрированных в одном кристалле с целью достижения высокой производительности, низкого уровня энергопотребления и небольшой стоимости. Большинство этих SoC основывалось на закрытых архитектурах, предоставляющих разработчикам ограниченный выбор вариантов реализации. Возрастающая сложность приложений цифрового видео приводит к необходимости гибкой разработки, допускающей настройку и добавление усовершенствованных возможностей. Производителям часто приходится использовать одну и ту же системную платформу для изготовления разных продуктов или объединять в одной системе разные приложения. По мере того как производители изготавливают все более сложные, многофункциональные продукты, разработчикам все чаще требуются «системы на кристалле» с открытой архитектурой, отвечающей быстро изменяющимся требованиям рынка.
Непрактично пытаться обеспечить в одной «системе на кристалле» все требуемое оборудование, отвечающее современным требованиям к эффективности, потребляемой мощности и стоимости конечных продуктов. Вместе элементной базой заказчикам предлагаются программное обеспечение и средства поддержки разработки широкого ассортимента оборудования цифрового видео.
Последнюю статью тематической подборки написал Ульрих Рамахер. Статья называется «Перспективы программно-зависимого радио для мультистандартных мобильных телефонов» (Software-Defined Radio Prospects for Multistandard Mobile Phones). На рынке мобильных телефонов с широкими функциональными возможностями нормой становится поддержка нескольких стандартов: GSM, WCDMA, HSDPA, 802.11, стандартов мобильного телевидения. Технология Bluetooth используется для локальной связи с аксессуарами телефонов и другим оборудованием. Готовятся стандарты для следующего поколения мобильных телефонов. Через несколько лет в развитых мобильных телефонах должны будут поддерживаться стандарты LTE, WiMax и UWB. Это множество существующих и ожидаемых стандартов в совокупности с потребностью быстрой реакции на изменяющиеся требования рынка радикально изменяет задачи системного архитектора.
В недавнем прошлом единственным архитектурным критерием являлись объем полупроводниковой электроники и потребляемая мощность. Это приводило к архитектуре, в которой для поддержки основной полосы частот доминировали специализированные схемные блоки, а цифровые сигнальные процессоры использовались для управления ими. Однако при расширении числа поддерживаемых стандартов этот подход к построению архитектуры приводит к недопустимому увеличению числа требуемых блоков.
Появились два альтернативных подхода: реконфигурируемые архитектуры и архитектуры на базе сигнальных процессоров с поддержкой ускорителей. В реконфигурируемых архитектурах распознаются алгоритмические функции, общие для некоторого набора стандартов, и для эмуляции этих общих функций используются реконфигурируемые пути данных. Поскольку в сценариях использования развитых мобильных телефонов одновременно поддерживается только несколько стандартов, можно было надеяться, что применение реконфигурируемых архитектур позволит добиться достаточно небольшого объема электронного оборудования при незначительном возрастании потребляемой мощности. В середине 90-х этот подход пытались применить многочисленные компании-«стартапы», но успеха на рынке мобильных телефонов они не имели.
Предпринималось несколько попыток разработать архитектуры, основанные исключительно на программируемых сигнальных процессорах. По соображениям потребления мощности такие системы должны состоять из нескольких процессоров, работающих на частоте в несколько сотен мегагерц. По соображениям объема электроники и производительности в них должны использоваться процессоры с ограниченными функциональными возможностями и специальными командами, поддерживаемыми небольшим числом ускорителей. Архитектура, основанная на сигнальных процессорах при поддержке со стороны ускорителей, обеспечивает наивысший уровень гибкости, но потребляемая мощность может оказаться слишком высокой для мобильных телефонов.
Вне тематической подборки опубликована статья «Совершенствование процесса разработки программного обеспечения: проект Competisoft» (Software Process Improvement: The Competisoft Project). Авторы статьи — Ханна Октаба, Феликс Гарсиа, Марио Пиаттини, Франциско Руиз, Франциско Пино и Клаудиа Алквисира. В 2005 году несколько исследователей и специалистов-практиков признали важность создания инфраструктуры, предназначенной для совершенствования процесса разработки и сертификации программного обеспечения в небольших организациях. Они предложили проект Competisoft в рамках программы CITED, инициированной в 1984 году с целью многостороннего научного и технического сотрудничества и поддерживаемой 21 страной Латинской Америки, Испанией и Португалией.
Участники проекта Competisoft предложили CITED поддержать экспериментальное исследование, в котором на основе постоянной обратной связи между исследователями и компаниями будет определена, усовершенствована и внедрена модель разработки программного обеспечения.
Всего доброго, до новой встречи. Не забудьте возобновить свое членство в IEEE Computer Society (см. www.computer.org/portal/pages/ieeecs/join/prof_index.html). С вопросами можно обращаться ко мне по адресу kuzloc@ispras.ru.