Микроминиатюаризация электроных компонент обеспечила экспоненциальный рост сложности (до десятков, а в самой ближайшей перспективе и сотен, миллионов логических вентилей) устройств, которые можно разместить на кристалле. Это приводит к возможности и необходимости разрабатывать широчайший спектр сложных цифровых систем от SoC (System-on-a-Chip - "система на кристалле") до NoC (Network-on-a-Chip - "сеть на кристалле"). При этом под SoC исторически понимают систему "процессор-память-программируемая логика-периферийные устройства", а под NoC (относительно недавно введенный термин) - распределенную систему, коммуникации в которой выполняются по алгоритмам, используемым в современных компьютерных сетях. Без названия пока остался огромный диапазон мультипроцессорных систем на кристалле, в которых взаимодействие между компонентами может быть организовано самыми различными способами - как применяемыми в современных мультипроцессорных комплексах из дискретных компонент, так и новыми, разработанными специально для мультипроцессорных комплексов на кристалле.
Серьезным препятствием на пути эффективного и быстрого использования всех возможностей современной цифровой электроники является отсутствие адекватных средств проектирования, разработки и верификации мультипроцессорных систем на кристалле, обеспечивающих сквозную совместную разработку их программного и аппаратного обеспечения.
Именно разработке такой системы и посвящена наша работа, результатом которой является готовый и постоянно развивающийся программно-аппаратный комплекс IEESD (Integrated Environment for Embedded Systems Development). Первая версия комплекса была выпущена в 2000 году. Он внедрен в учебный процесс ГГУ им.Ф.Скорины, неоднократно применялся для выполнения реальных разработок, на его базе проводятся соответствующие конкурсы (программирование микроконтроллеров; проектирование аппаратного обеспечения; совместная разработка программного и аппаратного обеспечения) в рамках Гомельской Недели Компьютерных Наук (Gomel Computer Science Week - http://www.gsu.by/gcsw). Комплекс IEESD и его отдельные компоненты регулярно демонстрируются на семинарах (Москва, Санкт-Петербург, Минск), республиканских и международных выставках (Минск). В 2002 и 2003 годах комплекс включался в стенд научно-технических достижений Беларуси на крупнейшую выставку новых компьютерных технологий - CeBIT (Ганновер, Германия). В начале 2003 года от российского Федерального института промышленной собственности получено извещение о решении выдачи патента Российской Федерации по заявке 99125815/09(027298) "Федорцов А.О., Долинский М.С. Внутрисхемный эмулятор".
К концептуальным основам IEESD можно отнести: универсальность, автоматическую генерацию низкоуровневых описаний встроенных цифровых систем (ВЦС), поддержку коллективной и распределенной разработки, сквозную верификацию, производительную симуляцию, гибкую интеграцию с эмуляцией, поддержку локального и дистанционного обучения.
Система IEESD обеспечивает открытый универсальный интерфейс взаимодействия с моделируемыми компонентами. Такой подход позволяет разрабатывать с помощью языков программирования модели произвольных микропроцессоров, микроконтроллеров, процессоров цифровой обработки сигналов и других сложных аппаратных компонент и включать их в общую моделируемую композицию. Оптимизированный событийный механизм моделирования гарантирует корректную и быструю симуляцию (от десятков тысяч до десяти миллионов инструкций в секунду на ПК типа Intel Pentium II, 1 ГГц, 256 Мбт) мультимикропроцессорных систем. Реализованные методологии и средства создания моделей процессоров и периферийных устройств упрощают и ускоряют соответствующие разработки.
Кроме того, система IEESD содержит богатую параметризованную библиотеку готовых компонент, включающую логические элементы, шифраторы, дешифраторы, мультиплексоры, демультиплексоры, сумматоры, компараторы, триггеры, регистры, счетчики, оперативные/постоянные запоминающие устройства, процессоры и др. Поддерживается создание пользовательских библиотек компонент. Обеспечивается визуальное иерархическое проектирование сложных ВЦС методами "снизу-вверх" и "сверху-вниз". Проектирование аппаратного обеспечения поддерживается системой HLCCAD (High Level Chip Computer-Aided Design) и специализированной посистемой разработки устройств с микропрограммным управлением MPDD. Разработка программного обеспечения выполняется с помощью системы WInter.
Для обеспечения возможности отлаживать программы на языках ассемблера различных процессоров, система IEESD включает компоненты настройки универсальной ассемблерной библиотеки (RtASM) на ассемблер целевого процессора. Кроме того, имеются единые средства хранения отладочной информации, взаимодействия с ней и линкования объектных и библиотечных модулей.
Возможность использовать языки программирования более высокого уровня, нежели ассемблер, поддерживается семейством конверторов отладочной информации, построенной внешними компиляторами, в единый формат представления отладочной информации в среде IEESD.
Кроме того, имеется встроенный в IEESD компилятор компиляторов UniSAn, упрощающий создание собственных компиляторов для произвольных языков программирования и верификации. На основе UniSAn, в частности, разработана вышеупомянутая универсальная ассемблерная библиотека RtASM.
Необходимым условием эффективности современных средств отладки является возможность аппаратной эмуляции ВЦС или ее части (процессорной и/или окружения процессора). IEESD включает в свой состав универсальный внутрисхемный симулятор UniICS, который? с одной стороны, обеспечивает взаимодействие симулируемых на инструментальной машине моделей процессоров с реальной платой, на которой этот процессор должен быть расположен, а, с другой стороны, обеспечивает аппаратную акселерацию и эмуляцию в ПЛИС выполняемых в IEESD проектов. Кроме того, IEESD включает в своей состав универсальный эмулятор UniICE, который обеспечивает взаимодействие эмулируемого процессора со средой отладки его программного обеспечения на инструментальной машине.
Таким образом, IEESD может применяться при разработке систем, содержащих практически любые цифровые и аналоговые компоненты (последние моделируются на функциональном уровне).
Существенным достоинством системы IEESD является ее бесшовная интеграция с САПР более низкого уровня (для цифровых компонент). Это обеспечивается следующим образом: для отлаженного в системе IEESD аппаратного обеспечения автоматически генерируется корректное синтезируемое VHDL-описание, а для отлаженного в IEESD программного обеспечения автоматически строятся машинные коды для целевых архитектур. Кроме того, по результатам симуляции в IEESD для аппаратной части проекта могут быть автоматически сгенерированы несколькими способами тестовые воздействия. Вся эта информация может быть использована в САПР более низкого уровня. Имеется возможность разрабатывать пользовательские программы генеррирующие синтезируемые описания для аналоговых компонент.
Система IEESD эффективно поддерживает коллективную работу над проектом, как за счет использования современных возможностей корпоративных компьютерных сетей, так и за счет специально предусмотренных средств разработки проектов.
Кроме традиционных для подобных систем встроенной помощи и документации (на русском и английском языках), обеспечиваются режимы автотестирования и интеграция с инструментальной системой дистанционного обучения (http://www.gsu.by), также разрабатываемой нами.
Пакет инструментальных систем сквозного совместного проектирования программного и аппаратного обеспечения встроенных мультипроцессорных систем включает в себя следующие компоненты:
WInter - среда проектирования и отладки программного обеспечения мультипроцессорных систем с возможностью высокоуровневой симуляции аппаратного обеспечения и внешней среды
HLCCAD - среда высокоуровневого проектирования и отладки аппаратного обеспечения цифровых систем с возможностью симуляции программного обеспечения на уровне машинных кодов и поведенческого моделирования внешней среды
IEESD - среда совместного проектирования и отладки программного и аппаратного обеспечения мультипроцессорных систем с поведенческой симуляцией/эмуляцией внешней среды
GENMOD - средства генерации моделей процессоров
MPDD - среда разработки и синтеза устройств с микропрограммным управлением.
UniICS - универсальный внутрисхемный симулятор
UniICE - универсальный внутрисхемный эмулятор
UniSAn - универсальный синтаксический анализатор
RtASM - ассемблер, настраиваемый на целевую архитектуру.
Необходимо подчеркнуть такое ОБЩЕЕ достоинство всех компонент как ИНТЕРОПЕРАБЕЛЬНОСТЬ. То есть, оставаясь в принципе независимыми разработками, и обеспечивая возможность своего использования без наличия других компонент, все компоненты развиваются исходя из неукоснительного выполнения требования прозрачной для пользователей бесшовной интеграции всех компонент в единый комплекс IEESD.