Темой октябрьского номера журнала Computer являются высокопроизводительные встроенные компьютеры. У тематической подборки имеется приглашенный редактор Вейне Вульф (Wayne Wolf, Georgia Institute of Technology). Его небольшая вводная заметка называется "Панорама встроенных систем" ("The Embedded Systems Landscape").
Все, что связано со встроенными компьютерами, часто ассоциируется с простыми контролерами в дешевых продуктах. Но хотя небольшие контроллеры действительно важны (ежегодно продаются миллиарды 8-битовых микроконтроллеров), ими далеко не исчерпывается данная область. Высокопроизводительные микроконтроллеры используются как по одиночке, так и связанные в сеть в самых разнообразных приложениях.
Под "высокой производительностью" здесь, вообще говоря, понимаются вычислительная мощность, измеряемая миллиардами операций в секунду. Например, в мобильных телефонах следующего поколения, основанных на использовании методов программно-управляемой радиосвязи, потребуются микропроцессоры, которые способны выполнять не менее 10 миллиардов операций в секунду. Аналогично, высокая производительность встроенной вычислительной аппаратуры требуется для мультимедийных приложений, причем в данном случае высокая производительность нужна всегда, а не только при пиковой нагрузке.
Однако проблема встроенных высокопроизводительных компьютеров является такой трудной не только потому, что требуется достичь действительно очень высокого уровня производительности, но и из-за того, что при этом нужно выдерживать два важных требования - реальное время и низкое потребление электроэнергии.
Первую статью тематической подборки написали Томас Хейзингер (Thomas A. Henzinger, EPFL in Lausanne, Switzerland) и Джозеф Сифакис (Joseph Sifakis, Verimag). Статья называется "Дисциплина проектирования встроенных систем" ("The Discipline of Embedded Systems Design").
Компьютерная наука становится все более зрелой. Исследователям удается разрешить многие исходные, фундаментальные проблемы этой дисциплины, но для решения многих других проблем требуются новые прорывные результаты, которые невозможно предвидеть. Многие современные исследовательские проблемы - в областях Semantic Web, нанотехнологий, вычислительной биологии, сенсорных сетей - заставляют действовать на пределе возможностей существующей технологии и применять ее в новых приложениях. Многие талантливые студенты теперь не собираются посвящать свою жизнь компьютерной науке, а выбирают для изучения биологические науки или наноинженерию. В то же время компьютерная технология все больше проникает в повседневную жизнь людей, и встроенное программное обеспечение управляет коммуникационными, транспортными и медицинскими системами.
Возможности встроенных систем кажутся неограниченными, от "умных" домов до автоматизированных автомагистралей, хотя их стоимость часто оказывается чрезмерно высокой, а надежность - недостаточной. Хорошим примером является автомобильная промышленность. В каждый автомобиль устанавливается все большее число электронных управляющих блоков, сложность программного обеспечения достигает такого уровня, на котором современные процессы и средства разработки не могут гарантировать наличия достаточно надежных систем при допустимых затратах.
Как это не парадоксально, именно недостатки современных процессов разработки, валидации и сопровождения приводят к тому, что программное обеспечение является наиболее дорогостоящей и наименее надежной частью встроенных приложений. В результате индустрия не может извлечь выгоду из огромного потенциала технологий встроенной компьютерной и коммуникационной аппаратуры.
Основную причину этой ситуации авторы видят в отсутствии строгих методов проектирования встроенных систем. С одной стороны, встроенные системы в основном игнорируются как объект исследований в области компьютерной науки, поскольку в исследованиях обычно применяются абстракции, не позволяющие принимать во внимание физические ограничения. С другой стороны, для проектирования встроенных систем оказывается недостаточно традиционного опыта специалистов в области электроники, потому что составными частями встроенных систем являются вычисления и программное обеспечение. К счастью, после кризисов открываются новые возможности. В данном случае появился шанс вдохновить специалистов в области компьютерной науки к проведению исследований, посвященных проектированию встроенных систем. Проблема проектирования встроенных систем, безусловно, порождает ряд вопросов, относящихся к технологии, но более важно то, что для ее решения требуется создание нового научного фундамента, который позволял бы систематически интегрировать вычислительные и физические компоненты системы. Для создания такого фундамента потребуются обогащенные компьютерные парадигмы, включающие модели и методы, которые традиционно используются при разработке электронных приборов.
Параллельно этому преподавателям потребуется обновить программы компьютерных учебных курсов. В индустрии подготовленные специалисты в области электроники повседневно проектируют архитектуры программных систем, и подготовленные компьютерные специалисты постоянно сталкиваются с физическими ограничениями. Тем не менее, проектирование встроенных систем занимает периферийные позиции в учебных программах, относящихся к обоим этим направлениям. Различие в культурах этих двух областей во многом объясняется тем, что компьютерная наука в основном базируется на дискретной математике, а традиционные технические дисциплины - на непрерывной математике. В индустрии отчаянно требуются инженеры, которые чувствовали бы себя как дома в обоих мирах. У дисциплины проектирования встроенных систем имеется потенциал для создания таких интегрированных специалистов. Но для построения научного фундамента этой дисциплины потребуется согласованные усилия исследователей, преподавателей и производственных специалистов.
Альберто Санджиованни-Винцентелли и Марко Ди Натале (Alberto Sangiovanni-Vincentelli, University of California, Berkeley, Marco Di Natale, Scuola Superiore S. Anna of Pisa, Italy) представили статью "Разработка встроенных систем для автомобильных приложений" ("Embedded System Design for Automotive Applications")
Сохраняя относительную стабильность, компании-производители автомобилей и их поставщики сегодня находятся в состоянии стресса, вызываемого возрастающей важностью и добавленной стоимостью электроники. Цепочка поставок в автомобильной промышленности состоит из следующих звеньев:
- производители автомобилей - изготовители комплексного оборудования, OEM, - такие как GM, Ford, DaimlerChrysler и Toyota, которые поставляют на потребительский рынок окончательную продукцию;
- поставщики первого уровня, такие как Bosch, Contiteves, Siemens, Nippondenso, Delphi и Magneti Marelli, обеспечивающие для OEM подсистемы управления трансмиссией, подвесками и тормозной системой;
- поставщики второго уровня: производители электронных схем, такие как Freescale, Infineon, ST и Renesas; поставщики технологий микропроцессоров, такие как ARM; поставщики операционных систем реального времени, такие как WindRiver и ETAS; все они работают на OEM и на поставщиков второго уровня;
- поставщики-изготовители, такие как Flextronics и TSMC.
Ответственность перед потребителями вынуждает производителей автомобилей ограничивать внешнее производство только компонентами, не влияющими на общую надежность автомобиля. Стандартным подходом OEM является разработка систем путем сборки компонентов, полностью или частично спроектированных и разработанных поставщиками первого уровня. Однако эти поставщики в своем производстве все чаще прибегают к аутсорсингу.
Процесс поставок традиционно был ориентирован на простые интегрированные подсистемы, к которым со стороны OEM предъявлялись общие требования к производительности, но не детализировались временные соотношения, требования к синхронизации и коммуникационным протоколам. В результате постоянно производится интеграция подсистем, но делается это с применением эвристических методов. Результирующее отсутствие общего понимания взаимодействия подсистем и трудности, встречающиеся при интеграции сложных компонентов, делают системную интеграцию очень сложным занятием.
Новые методы анализа системного уровня и моделирования требуются не только для обеспечения предсказуемости и возможности компоновки при декомпозиции сквозных функций во время проектирования (и позже, во время системной интеграции), но также и для обеспечения поддержки проектировщиков на очень ранней стадии, когда производятся оценка и выбор электроники и программной архитектуры для линейки продуктов. Эта важная стадия оказывает сильное влияние на стоимость, эксплуатационные характеристики и качество линейки продуктов.
Выбор архитектуры обычно производится за годы до реальной разработки и интеграции подсистем. В этом процессе должны быть определены модели функций и возможные решения для реализации физической архитектуры, и должны быть произведены оценка качества и выбор наилучшей аппаратной платформы по отношению к производительности, надежности и ценовым показателям.
Учитывая высокую стоимость исследований, подготовки специалистов и, возможно, приобретения лицензий для проектирования на системном уровне, желательным является использование согласованного набора моделей, методов и инструментальных средств во всем жизненном цикле продукта или платформы. Эта рекомендация распространяется со стадии анализа архитектуры на стадию декомпозиции и проектирования системы и включает шаги разработки на основе моделей с применением соответствующего промежуточного программного обеспечения и автоматической генерации кода приложений, окончательной интеграции, тестирования и валидации.
Для оптимизации проектирования систем автомобильной электроники требуются стандарты в областях программного обеспечения и аппаратуры, позволяющие автоматически конфигурировать подсистемы. Тогда возможность интеграции подсистем станет доступной всем OEM, и для достижения конкурентных преимуществ они будут все чаще полагаться на обеспечение новых и впечатляющих функциональных возможностей. Существенной технической проблемой является формирование стандартов, обеспечивающих интероперабильность между программными и аппаратными решениями, лицензируемыми у владельцев интеллектуальной собственности, и инструментальными средствами интеграции. Международный консорциум AUTOSAR ставит в качестве одной из основных своих целей решение этой проблемы.
Однако сначала необходимо преодолеть ряд технических и бизнес-проблем. В частности, с технической точки зрения, хотя в настоящее время возможно совместное использование OEM алгоритмов и функциональных структур, совместное использование программного обеспечения жесткого реального времени затруднительно, даже если предположить существенное улучшение методов и технологии проектирования. При наличии требований к поддержке реального времени и высокой надежности необходимо разрешить несколько проблем декомпозиции функций и интеграции подсистем:
- Предсказуемость временных характеристик. Эта проблема относится к возможности предсказания поведения во времени на уровне системы (задержки и разброс) при наличии синхронизации между задачами и сообщениями, а также взаимодействий между задачами на уровнях операционной системы реального времени (RTOS) и промежуточного программного обеспечения. Временные характеристики сквозных вычислений, вообще говоря, зависят от распределения функций между задачами и сообщениями в целевой архитектуре и политик управления ресурсами.
- Функциональная надежность. Распределение функций по блокам управления двигателем (system engine control unit, ECU) и выработка политик коммуникации и синхронизации должны производиться в целях достижения функциональной надежности. В средствах проектирования системного уровня должна сочетаться поддержка паттернов проектирования, удовлетворяющих требованиям разработки высоконадежных систем, со сдерживанием сбоев как на функциональном уровне, так и на уровне обеспечения временных соотношений. Такие инструментальные средства должны также поддерживать автоматическое построение деревьев сбоев для вычисления вероятности возникновения опасных ситуаций или просто причинно-следственных зависимостей, которые позволяют связать данный системный сбой со сбоями уровня подсистем или даже атомарных компонентов на основе выбранного варианта распределения функций.
- Обеспечение возможностей компоновки и расширений в сопоставлении с эффективностью. Временные характеристики программных задач зависят от присутствия или отсутствия других задач, и аналогичные соображения применимы и к сообщениям. Можно было бы определить политику планирования, предотвращающую неустойчивость при динамическом изменении характеристик задач, но это привело бы к дополнительным накладным расходам. Кроме того, ни одна из коммерчески доступных RTOS не поддерживает такую политику.
В последней ситуации наблюдается стандартный компромисс между эффективностью и надежностью, но в данном случае последствия для бизнеса оказываются более серьезными, чем обычно. Если программное обеспечение, поступающее из различных источников, должно интегрироваться на общей аппаратной платформе при отсутствии правил композиции и формальной верификации свойств составной системы, то кто должен отвечать за корректность функционирования окончательного продукта? Кто бы ни принял на себя ответственность за спецификацию подсистем и их интеграцию, ему потребуется строгая методология и железная воля, чтобы заставить поставщиков соответствовать ей. Этого может оказаться недостаточно, поскольку характеристики программного обеспечения трудно точно определить. У разработчиков может просто отсутствовать возможность гарантировать функциональное поведение системы, ее временные характеристики и надежность при наличии внешних компонентов.
Постоянное возрастание сложности проектирования встроенных систем делает непрактичными и чреватыми ошибками анализ и проектирование, производимые вручную. Идеальный подход должен был бы состоять в автоматическом отображении набора задач на платформу с обеспечением гарантий корректного функционирования и выдерживания временных соотношений при оптимальном использовании ресурсов.
Авторами статьи "Использование технологии для устройств цифрового видео" ("Using DaVinci Technology for Digital Video Devices") являются Дипу Талла и Джеремая Голстон (Deepu Talla, Jeremiah Golston, Texas Instruments).
Для разработки новаторских и экономически эффективных продуктов, поддерживающих цифровое видео (digital video, DV), требуются открытые и гибкие однокристальные системы (system-on-chip, SoC), которые включают процессоры, программное обеспечение и средства разработки. Производители ежегодно поставляют на рынок миллиарды единиц продукции DV: портативные медиа-плейеры, цифровые медиа-адаптеры, приставки для потокового видео (IPTV set-top box, STB), цифровые видеокамеры и т.д. У большей части этих продуктов требования к процессорам аналогичны тем, что имеются у сегодняшних персональных компьютеров, но их показатели потребляемой мощности и стоимости отличаются на порядки величин.
У устройств DV имеются различные особенности использования и стоимости, зависящие от стратегии обработки данных, уровня интеграции и методологий разработки. Например, ориентация на применение высокоуровневой операционной системы, такой как Linux или Windows CE обычно приводит к выбору процессора общего назначения. Потребность в возможности программирования, модернизации в условиях эксплуатации, универсального декодирования видео-сигналов стимулирует использование цифровых сигнальных процессоров (digital signal processors, DSP), программируемых ускорителей и непрограммируемых аппаратных средств.
От того, должно ли быть устройство переносимым, требующим питания от электросети или постоянно находящимся во включенном состоянии, зависит выбор технологии обработки, схем синхронизации и т.д. Спецификация компонентов и конструктивные особенности оборудования влияют на уровень системной интеграции, включая аналоговые компоненты, память, возможности взаимодействия и компоновку. Жизненный цикл продукта и условия его эксплуатации воздействуют на выбор методологий проектирования, относящихся к тестированию, возможности быстрого создания усовершенствованного устройства и оптимизации (например, отбору по скорости и потребляемой мощности).
В последнее десятилетие технология SoC являлась основной технологией продуктов рынка DV. В SoC обычно имеется несколько процессоров, программируемых ускорителей, непрограммируемых устройств, периферийных интерфейсов и аналоговых компонентов, интегрированных в одном кристалле с целью достижения высокой производительности, низкого уровня энергопотребления и небольшой стоимости. Большинство этих SoC основывалось на закрытых архитектурах, предоставляющих разработчикам ограниченный выбор вариантов реализации.
Однако возрастающая сложность приложений цифрового видео приводит к потребности гибкой разработки, допускающей настройку и добавление усовершенствованных возможностей. Производителям часто приходится использовать одну и ту же системную платформу для изготовления разных продуктов или объединять в одной системе разные приложений, как, например, обеспечивать в видеокамере средства распознавания объектов или добавлять функциональные возможности IPTV STB к видеотелефону. По мере того, как производители изготавливают все более сложные, многофункциональные продукты, разработчикам все чаще требуются SoC-процессоры с открытой архитектурой, отвечающей быстро изменяющимся требованиям рынка.
Непрактично пытаться обеспечить в одной SoC все требуемое оборудование, отвечающее современным требованиям к эффективности, потребляемой мощности и стоимости конечных продуктов. Вместе с интегрированным набором процессоров DaVinci компании Texas Instruments заказчикам предлагаются программное обеспечение и средства поддержки разработки широкого ассортимента оборудования DV. Процессоры DaVinci оптимизируются с целью соответствия требованиям к стоимости, производительности и функциональным возможностям конкретного оборудования DV.
Последнюю статью тематической подборки написал Ульрих Рамахер (Ulrich Ramacher, Infineon Technologies AG, Munich, Germany). Статья называется "Перспективы программно-зависимого радио для мультистандартных мобильных телефонов" ("Software-Defined Radio Prospects for Multistandard Mobile Phones").
На рынке мобильных телефонов с широкими функциональными возможностями нормой становится поддержка нескольких стандартов. В число используемых стандартов входят Global System for Mobile Communications (GSM), Wideband Code Division Multiple Access (WCDMA), High-Speed Downlink Packet Access (HSDPA), стандарты беспроводного Internet, такие как 802.11a/b/g, стандарты мобильного телевидения, такие как Digital Video Broadcasting-Handheld (DVB-H). Технология Bluetooth используется для локальной связи с аксессуарами телефонов и другим оборудованием. Готовятся стандарты для следующего поколения мобильных телефонов. К 2010-2012 гг. в развитых мобильных телефонах должны будут поддерживаться стандарты Long-Term Evolution (LTE), Worldwide Interoperability for Microwave Access (WiMax) и Ultra-Wideband (UWB). Это множество существующих и ожидаемых стандартов в совокупности с потребностью быстрой реакции на изменяющиеся требования рынка радикально изменяет задачи системного архитектора.
В недавнем прошлом единственным архитектурным критерием являлись объем полупроводниковой электроники и потребляемая мощность. Это приводило к архитектуре, в которой для поддержки основной полосы частот доминировали специализированные схемные блоки (application-specific circuit block, ASIC) макросы, а цифровые сигнальные процессоры (DSP) использовались для управления ими. Однако при расширении числа поддерживаемых стандартов этот подход к построению архитектуры приводит к недопустимому увеличению числа требуемых макросов.
Появились два альтернативных подхода: реконфигурируемые архитектуры и архитектуры, основанные на DSP с поддержкой ускорителями. В реконфигурируемых архитектурах распознаются алгоритмические функции, общие для некоторого набора стандартов, и для эмуляции этих общих функций используются реконфигурируемые пути данных. Поскольку в сценариях использования развитых мобильных телефонов одновременно поддерживается только несколько стандартов, можно было надеяться, что применение реконфигурируемых архитектур позволит добиться достаточно небольшого объема электронного оборудования при незначительном возрастании потребляемой мощности. В середине 1990-х гг. этот подход пытались применить многочисленные стартаповые компании, но успеха на рынке мобильных телефонов они не имели. Автор подробно объясняет причины этой неудачи.
Предпринималось несколько попыток разработать архитектуры, основанные исключительно на программируемых DSP. По соображениям потребления мощности такие системы должны состоять из нескольких DSP, работающих на частоте в несколько сотен МГц. По соображениям объема электроники и производительности в них должны использоваться DSP с ограниченными функциональными возможностями и специальными командами, поддерживаемыми небольшим числом ускорителей (макросов или специализированных процессоров). Эта архитектура является инверсией архитектуры, основанной на ASIC при поддержке со стороны DSP. Архитектура, основанная на DSP при поддержке со стороны ускорителей обеспечивает наивысший уровень гибкости, но потребляемая мощность может оказаться слишком высокой для мобильных телефонов.
Многие сторонники подхода программно-зависимого радио (Software-Defined Radio, SDR) утверждают, что в мобильных телефонах, основанных на этом подходе, удастся достичь требуемых показателей потребления мощности. Среди них распространено мнение, что именно решения, основанные на использовании программируемых мультипроцессоров, вытеснят сегодняшние мобильные телефоны. В статье описываются особенности этого подхода, и обосновывается его перспективность.
Вне тематической подборки в октябрьском номере журнала опубликована статья "Совершенствование процесса разработки программного обеспечения: проект Competisoft" ("Software Process Improvement: The Competisoft Project"). Авторами статьи являются Ханна Октаба, Феликс Гарсия, Марио Пиаттини, Фринциско Руиз, Франзциско Пино и Клаудия Алквисира (Hanna Oktaba, National Autonomous University of Mexico, Felix Garcia, Mario Piattini, Francisco Ruiz, University of Castilla-LaMancha, Francisco J. Pino, University of Cauca, Popayan, Colombia), Claudia Alquicira).
В 2005 г. несколько исследователей и специалистов-практиков признало важность создания инфраструктуры, предназначенной для совершенствования процесса разработки и сертификации программного обеспечения в небольших организациях. Они предложили проект Competisoft для программы IberoAmerican Science and Technology Development Program (Programa Iberoamericano de Ciencia y Tecnologia para el Desarrollo, CITED), созданной в 1984 г. с целью многостороннего научного и технического сотрудничества и поддерживаемой двадцати одной страной Латинской Америки, Испанией и Португалией. Задачей CITED является установление сотрудничества между университетскими исследовательскими группами, научно-исследовательскими институтами и новаторскими компаниями в участвующих в программе странах с целью внедрения научных и технических результатов в производственные системы.
Участники проекта Competisoft предложили CITED поддержать экспериментальное исследование, в котором на основе постоянной обратной связи между исследователями и компаниями должна была быть определена, усовершенствована и внедрена модель разработки программного обеспечения. В проекте участвовали исследователи из университетов Аргентины, Бразилии, Чили, Колумбии, Коста-Рика, Кубы, Эквадора, Мексики, Перу, Португалии, Испании, Уругвая и Венесуэлы, а также контрольная группа, включающая аргентинский институт стандартизации и сертификации (IRAM), правительство аргентинской области Neuquen и несколько небольших компаний из Колумбии, Перу, Испании, Аргентины, Чили, Эквадора, Мексики и Уругвая.
Для выполнения проекта Competisoft были изучены различные латиноамериканские инициативы, такие как Brazilian Process Improvement Model (Melhoria de Processos do Software Brasileiro, MoProSoft), Agile Software Process Improvement (SPI) и модель испанского министерства управления государственными и местными органами Metrica v3. При выполнении проекта широко заимствовались известные методы, предназначенные для малых компаний, а модель MoProSoft использовалась в качестве эталонной модели процесса разработки программного обеспечения. Можно расценивать модель Competisoft как развитие модели MoProSoft на основе опыта исследователей и специалистов-практиков в области совершенствования процесса разработки программного обеспечения на основе SPI.