Обзор апрельского, 2003 года номера журнала Computer (IEEE Computer Society, V. 36, No. 4, April 2002)
Апрельский номер журнала является по-настоящему тематическим. Единой теме совместной разработки компьютерной аппаратуры и программного обеспечения посвящены все пять основных статей номера. Приглашенными редакторами номера являются Йорг Хенкель (Jorg Henkel), Ксиаобо Шарон Ху (Xiaobo Sharon Hu) и Шувра Бхаттачария (Shuvra Bhattacharyya). Вводная редакторская заметка озаглавлена «Продвижение на пути к решению проблемы разработки встроенных систем» (Taking on the Embedded System Design Challenge). Термином «совместная разработка аппаратуры и программного обеспечения» (hardware/software codesign — HSC) обозначают методологию, инструментальные средства и практическую деятельность, которые поддерживают интеграцию аппаратных и программных компонентов в течение их проектирования и разработки. Исходно приверженцы HSC ориентировались на методы компьютерной автоматизации проектирования, такие как спецификации и моделирование, декомпозиция, оценка производительности, совместное имитационное моделирование и совместная верификация. Однако в настоящее время область применения HSC существенно расширилась. В частности, HSC оказывает влияние на большинство аспектов разработки встроенных систем. Интегрированный подход к разработке привел к новому пониманию планирования процессов, коммуникационных протоколов, генерации кода, среды разработки программного обеспечения. На базе HSC появились подходы к проектированию процессоров, ориентированных на приложения, и архитектур, допускающих реконфигурацию и настройку в соответствии с требованиями заказчика. Как отмечают приглашенные редакторы, HSC является реальностью уже сегодня, а завтра применение HSC станет необходимым условием успешного создания встроенных систем.
Первая из пяти основных статей журнала написана Уэйном Вулфом (Wayne Wolf) и называется «Десятилетие совместной разработки аппаратуры и программ» (A Decade of Hardware/Software Codesign). В статье прослеживается история HSC, начало которой автор относит к началу 90-х годов, когда термин HSC был введен в обиход для описания совокупности проблем проектирования интегральных схем. В это время дело шло к появлению кристаллов, которые могли вместить и центральный процессор, и другие требуемые подсистемы. Возникали два класса проблем. Во-первых, требовались методологии системного проектирования, позволяющие использовать большие, заранее спроектированные центральные процессоры. Во-вторых, требовалось относиться к программному обеспечению как к одному из основных компонентов разработки кристаллов. Одни из первых программных систем, поддерживающих HSC, — Vulcan и Cosyma — были разработаны в Стэндфордском университете и техническом университете города Брауншвейг соответственно. Системы предназначались для поддержки проектирования микропроцессорных систем, включающих, помимо центрального процессора, дополнительную интегральную схему, ориентированную на приложения (ASIC — Application-Specific Integrated Circuit). Ближе к концу 90-х годов направление HSC приобрело зрелость. Был разработан ряд важных алгоритмов, появились программные системы, поддерживающие разработку сложных микропроцессорных архитектур с произвольной топологией внутренних соединений и произвольным комбинированием центральных процессоров и ASIC. В настоящее время HSC становится основным подходом к созданию различных «систем на кристалле», в особенности тех, которые базируются на вентильных матрицах с эксплуатационным программированием (FPGA — Field-Programmable Gate Array). В заключение автор перечисляет ряд открытых проблем, решение которых требуется для дальнейшего развития подхода HSC.
Название следующей статьи — «Metropolis: среда разработки интегрированных электронных систем» (Metropolis: An Integrated Electronic System Design Environment). У статьи шесть авторов, смешанный американо-итальянский коллектив: Фелис Баларин (Felice Balarin), Йосинори Ватанабе (Yosinori Watanabe), Гарри Хси (Harry Hsieh), Лучано Лаваньо (Luciano Lavagno), Клаудио Пассероне (Claudio Passerone), Альберто Санджованни-Винцетелли (Alberto Sangiovanni-Vincentelli). Процесс проектирования компьютерных устройств состоит из последовательности этапов. В настоящее время проектировщики вынуждены использовать наборы несвязанных инструментов; при реализации проекта применяются неформальные методы, включающие множество взаимодействий на естественном языке. Отсутствует гарантия того, что в ходе применения цепочки инструментов не будет утрачена семантика проекта. Потенциально возникающие ошибки трудно распознать и исправить. Разработанная авторами система Metropolis обеспечивает инфраструктуру проектирования, основанную на модели (метамодели) с точной семантикой, достаточно общей для того, чтобы поддерживать существующие вычислительные модели и приспосабливаться к новым моделям. Метамодель может поддерживать не только фиксацию и анализ функциональности, но и описание архитектуры и отображение функциональности на архитектурные элементы. В среде Metropolis возможно использование инструментов верификации, имитационного моделирования и синтеза.
У статьи «Совместное имитационное моделирование и эмуляция многопроцессорых систем на кристалле с использованием SystemC» (SystemC Cosimulation and Emulation of Multiprocessor SoC Designs) тоже шесть авторов, все из Италии: Люка Бенини (Luca Benini), Давид Берточчи (Davide Bertozzi), Давид Бруни (Davide Bruni), Никола Драго (Nicola Drago), Франко Фумми (Franco Fummi), Массимо Пончино (Massimo Poncino). SystemC — это среда имитационного моделирования с применением языков программирования C/C++ для описания аппаратуры. Для спецификации аппаратных блоков и коммуникационных каналов обеспечивается несколько пакетов классов. Программный код системы свободно доступен (www.systemc.org). Поддерживаются два варианта моделирования выполнения программного обеспечения способом, согласованным с оставшейся частью системы. В первом варианте используется имитационное моделирование на микроархитектурном уровне. Второй вариант основан на использовании имитационного моделирования на уровне команд.
Статью «Формальный подход к верификации производительности MpSoC» (A Formal Approach to MpSoC Performance Verification) написали три автора из Германии: Кай Рихтер (Kai Richter), Марек Джерсак (Marek Jersak) и Рольф Эрнст (Rolf Ernst). В многопроцессорных системах на кристалле (MpSoC — Multiprocessor system on Chip) используются сложные сети, на основе которых интегрируются процессорные ядра, специализированные устройства памяти и другие компоненты. Встроенные системы в таких применениях, как бытовая электроника и автомобилестроение, все чаще основываются на использовании MpSoC. Сложные взаимодействия аппаратных и программных компонентов MpSoC могут привести к серьезным просчетам в оценке производительности системы. Основная идея статьи состоит в том, что имитационное моделирование в целях оценки производительности позволяет получить удовлетворительные по качеству средние оценки, но на основе этого подхода трудно, а может быть, и невозможно убедиться в том, что требования к производительности будут удовлетворяться во всех экстремальных случаях. Предлагаемый подход основан на формальном анализе ключевых показателей системы, влияющих на ее производительность в экстремальных случаях. Как кажется, этот подход дополняет, но не отменяет потребность в имитационном моделировании.
Последняя большая статья номера написана Патриком Шаумонтом (Patrick Schaumont), и Ингрид Вербаувхид (Ingrid Verbauwhede). Название статьи — «Ориентированная на предметную область совместная разработка с целью обеспечения безопасности встроенных систем» (Domain-Specific Codesign for Embedded Security). В основе статьи лежат утверждения авторов, что, во-первых, обеспечение безопасности в Internet является абсолютным требованием времени, и, во-вторых, в ближайшем будущем подавляющим большинством Internet-узлов станут встроенные системы. Поэтому при проектировании и разработке встроенных систем необходимо уделять особое внимание их безопасности. Предлагается относиться к безопасности, как одной из предметных областей проектирования и разработки (наряду, например, с областями сетевых взаимодействий и графики). Разработан прототип встроенного приложения ThumpPod (www.ivgroup.ee.ucla.edu/thumppod), обеспечивающего безопасность системы путем комбинирования криптографической архитектуры Java с возможностями криптографического процессора.
Не удержусь от брюзжания. Февральский номер журнала за 2002 год был посвящен высокопроизводительным системам имитационного моделирования. В этом номере присутствовал другой набор авторов, но, по сути, речь шла о том же — как совместить разработку аппаратуры и программного обеспечения. Думаю, что в компьютерной области (наверное, и в других областях человеческой деятельности) ввод в обиход новых «заклинаний», в том числе, и HSC, — часто связан не с практическими потребностями, а с амбициями исследователей и разработчиков. Возникновение нового термина приводит к появлению новых конференций, журналов и т.д. С одной стороны это хорошо, поскольку обеспечивает новые возможности для молодежи, но, с другой стороны, может привести к распылению сил и средств.
В заключение обзора номера замечу, что в рубрике «Книжная полка» наконец-то, появилась рецензия на книгу, которая сразу заинтересовала и меня. Речь идет о книге Ситансу Митры «Настройка и оптимизация производительности баз данных» (Sitansu Mitra, Database Performance Tuning and Optimization, Springer-Verlag, 2002, ISBN 0-387-95393-0, 510 pp., $59.95). Как повелось, производители СУБД не очень (а вернее, ОЧЕНЬ НЕ) любят раскрывать секреты внутреннего устройства собственных систем. Проектировщики и администраторы баз данных работают с «черным ящиком», а инструкции по использованию системы, как правило, не позволяют понять смысл действий, которые можно произвести на основе поддерживаемого системой интерфейса. В книге Митры частично раскрывается внутренний мир СУБД Oracle. Это очень интересно и полезно для всех специалистов, профессионально работающих с любой развитой системой управления базами данных.
Вы прочитаете этот обзор в конце мая. Скоро наступит шестой месяц года, и у вас останется последняя возможность стать членом IEEE Computer Society в 2003 году. Готов вам в этом помогать, Сергей Кузнецов, kuzloc@ispras.ru.