Автоматизация построения инструментария кросс-разработки программного обеспечения для расширяемых встраиваемых систем тема диссертации и автореферата по ВАК РФ 05.13.11, кандидат физико-математических наук Рубанов, Владимир Васильевич

  • Рубанов, Владимир Васильевич
  • кандидат физико-математических науккандидат физико-математических наук
  • 2008, Москва
  • Специальность ВАК РФ05.13.11
  • Количество страниц 203
Рубанов, Владимир Васильевич. Автоматизация построения инструментария кросс-разработки программного обеспечения для расширяемых встраиваемых систем: дис. кандидат физико-математических наук: 05.13.11 - Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей. Москва. 2008. 203 с.

Оглавление диссертации кандидат физико-математических наук Рубанов, Владимир Васильевич

Введение.

Глава 1. Методы описания встраиваемой аппаратуры и построения инструментария кросс-разработки.

1.1 Проектирование встраиваемых систем.

1.1.1 Обобщенная схема проектирования встраиваемых систем.

1.1.2 Разработка программ с помощью кросс-инструментария.

1.1.3 Прототипирование на основе кросс-инструментария.

1.2 Языки описания моделей аппаратуры и соответствующие методы построения кросс-инструментов.

1.2.1 Языки синтезируемого описания аппаратуры.

1.2.2 АЕ)Ь языки.

1.2.3 Языки программирования общего назначения.

1.3 Анализ существующих подходов и постановка задачи.

1.3.1 Сравнительные характеристики рассмотренных методов.

1.3.2 Постановка задачи.

Глава 2. Обобщенная модель расширяемых встраиваемых систем.

2.1 Общее описание целевой системы и требования к модели.

2.1.1 Общее описание целевой системы.

2.1.2 Процесс проектирования расширяемой аппаратуры.

2.1.3 Требования к обобщенной модели.

2.2 Модельная память системы.

2.2.1 Определения.

2.2.2 Память процессора.

2.2.3 Память акселератора.

2.2.4 Память системы.

2.3 Модельное поведение системы.

2.3.1 Система команд процессора.

2.3.2 Система команд акселератора.

2.3.3 Вычислительные блоки процессора.

2.3.4 Вычислительные блоки акселератора.

2.3.5 Исполнительный блок.

2.3.6 Модельная работа системы.

2.3.7 Запуск команд акселераторов.

2.4 Модель системы.

2.4.1 Модель процессора.

2.4.2 Модель акселератора.

2.4.3 Модель полной системы.

2.4.4 Симулятор полной системы.

2.5 Анализ применимости модели.

Глава 3. Язык описания моделей аппаратуры 1ЭЕ.

3.1 Обозначения.

3.2 Лексика языка 1ЭЕ.

3.3 Описание процессора и акселераторов на языке 18Е.

3.3.1 Подмножество 18Е-С для описания выражений и поведения.

3.3.2 Описание глобальных параметров архитектуры.

3.3.3 Описание структуры памяти.

3.3.4 Описание типов ассемблерных лексем.

3.3.5 Описание типов операндов команд.

3.3.6 Описание системы команд.

3.3.7 Сквозные характеристики команд.

3.3.8 Описание межкомандных конфликтов.

3.4 Выводы.

Глава 4. Метод построения инструментария кросс-разработки.

4.1 Общее описание метода.

4.2 Двухуровневое описание расширяемых встраиваемых систем.

4.2.1 Описание базовых возможностей процессора на С/С++.

4.2.2 Описание памяти и системы команд на ISE.

4.3 Построение инструментария кросс-разработки.

4.3.1 Построение базового инструментария ядра.

4.3.2 Построение модулей расширений для акселераторов.

4.3.3 Построение полного кросс-инструментария.

4.4 Выводы.

Глава 5. Среда MetaDSP для построения кросс-инструментария и ее практические применения.

5.1 Компоненты системы MetaDSP.

5.2 Интегрированная среда мета-разработки.

5.2.1 Визуальный редактор и верификатор ISE-описаний.

5.2.2 Средства анализа системы команд и построения статистик.

5.2.3 Средства интеграции и работа с системой MetaDSP.

5.3 Практические применения метода и инструментов.

5.4 Выводы.

Рекомендованный список диссертаций по специальности «Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей», 05.13.11 шифр ВАК

Введение диссертации (часть автореферата) на тему «Автоматизация построения инструментария кросс-разработки программного обеспечения для расширяемых встраиваемых систем»

Современные достижения в удешевлении и сокращении сроков проектирования и создания цифровой аппаратуры наряду с развитием рынка разнообразных электронных устройств обусловили широкое распространение специализированных вычислительных систем (так называемых встраиваемых систем), ориентированных на решение узкого класса задач в рамках заданных жестких целевых характеристик (площадь кристалла, энергопотребление, быстродействие). Такие системы можно встретить практически в каждом электронном устройстве, начиная от бытовой техники и кончая самолетами и военными комплексами. При этом большую популярность приобретают расширяемые встраиваемые системы, которые проектируются на основе некоторого базового микропроцессорного ядра (soft core), которое дополняется в процессе проектирования специфическими для конкретной системы расширениями в виде сопроцессоров и/или дополнительных функциональных блоков, пополняющих систему команд и подсистему памяти ядра. При таком подходе спецификация одного и того же ядра повторно используется в системах . различного назначения, существенно сокращая затраты на проектирование, а использование специализированных для каждой системы расширений обеспечивает хорошие показатели производительности и энергопотребления.

В процессе создания встраиваемых систем важнейшую роль играет инструментарий кросс-разработки (кросс-инструментарий), позволяющий выполнять разработку, отладку и профилирование программ для целевой системы с использованием инструментальной машины с архитектурой, отличной от целевой. Основными компонентами такого инструментария являются ассемблер, компоновщик, сгшулятор, отладчик и профилировщик. В качестве инструментальной машины, как правило, выступает обычная рабочая станция. В отличие от спецификации для производства реальных микросхем, для построения кросс-инструментария достаточно более высокоуровневого описания архитектуры целевой системы — прежде всего структуры памяти/регистров и системы команд с временными характеристиками исполнения. Это делает потенциально возможным раннее создание инструментария кросс-разработки еще на этапе проектирования аппаратуры, что, в свою очередь, играет ключевую роль при решении следующих задач:

1. Прототипирование целевой аппаратуры и исследование проектных альтернатив (design space exploration) — разработка тестовых программ для целевой машины, их симуляция и профилирование на различных потенциальных вариантах аппаратуры позволяет получать оценки эффективности того или иного проектного варианта и принимать решения о, например, изменении системы команд ядра, добавлении / удалении памятей, регистров и целых сопроцессоров.

2. Раннее создание приложений — программное обеспечение для целевой платформы должно быть создано и предварительно отлажено еще до появления реальной аппаратуры для сокращения времени выхода на рынок полного решения в виде «аппаратура + программы».

3. Верификация спецификаций аппаратуры — использование построенного кросс-симулятора позволяет проводить его взаимную верификацию с VHDL/V erilog симуляторами (после появления VHDL/Verilog спецификаций на позднем этапе проектирования). Такая верификация играет важную роль в процессе финального обеспечения качества перед запуском аппаратуры в производство.

Конечно, после завершения проектирования аппаратуры полученные кросс-инструменты должны обладать достаточным качеством и быть пригодны для своего классического назначения — производственного применения при дальнейшей разработке реальных приложений.

Таким образом, актуальной задачей является раннее построение необходимых кросс-инструментов еще в процессе проектирования целевой аппаратуры (для нужд производителя аппаратуры) с возможностью дальнейшего их производственного использования для создания программ внешними пользователями (прикладные и системные программисты, разработчики новых расширений и новых комбинаций «ядро + расширения»). При этом кроме создания первой версии необходимо оперативно обеспечивать согласованное внесение дальнейших изменений в компоненты кросс-инструментария для отражения различных вариантов аппаратуры, возникающих как в процессе проектирования ядра, так и в процессе разработки расширений и при выборе конфигурации полной системы «ядро + расширения». Кроме того, в случае расширяемых встраиваемых систем важно разделить разработку базового кросс-инструментария (для основного ядра) и разработку соответствующих модулей/инструментов для различных расширений, с возможностью комбинации соответствующих компонентов при построении кросс-инструментария для полной системы. Это необходимо для разграничения ответственности и прав интеллектуальной собственности при разработке ядра и различных расширений, за которые часто отвечают разные компании.

Для построения кросс-инструментов необходимо задать машинно-читаемую спецификацию модели целевой аппаратной системы. Можно выделить три группы языков, потенциально пригодных для этой цели. Это HDL-языки (Hardware Definition Languages) для детального описания аппаратуры (например, Verilog/VHDL), ADL-языки (Architecture Description Languages) для высокоуровневого описания аппаратуры и, наконец, языки программирования общего назначения (например, C/C++).

Существенными недостатками симуляторов на основе HDL-описаний являются низкая скорость работы (разница в 3 порядка в сравнении с вручную разработанными симуляторами) и необходимость в детальном структурном описании аппаратуры. Низкая скорость работы делает использование таких симуляторов мало пригодным для прототипирования аппаратуры и отладки приложений. Кроме того, на основе VHDL/Verilog описания невозможно построение ассемблера и дисассемблера, так как явное описание системы команд в этих языках отсутствует.

АБЬ-языки активно развиваются в последнее десятилетие, разработаны и соответствующие программные средства, позволяющие проводить высокоуровневое прототипирование аппаратуры на уровне системы команд, в том числе с построением кросс-инструментов. Такой подход действительно хорошо работает на ранних этапах проектирования, когда принимаются «крупные» архитектурные решения, однако, по мере уточнения деталей конструкции, рано или поздно приходится сталкиваться с ограничениями соответствующего языка АХ)Ь и построить на основе такого описания достаточно точный и быстрый симулятор становится невозможно. Поэтому кросс-инструментарий, построенный полностью автоматически на основе АБЬ-описания, невозможно использовать для создания и отладки реальных программ, так как качество такого инструментария достаточно только для получения грубых оценок и не позволяет выполнять точное моделирование производительности приложений.

Ручное программирование кросс-инструментов на языке общего назначения (обычно С/С++) позволяет учитывать все необходимые детали и получать инструментарий производственного качества. Но необходимы существенные усилия и, самое главное, большое время для создания и модификации инструментов вручную, что делает этот подход малопригодным для прототипирования целевой аппаратуры ввиду слишком длинного цикла разработки и внесения изменений.

Таким образом, перспективным направлением исследований представляется изучение возможности объединения в себе преимуществ высокоуровневого описания на языках типа АОЬ и эффективного описания деталей на языках программирования общего назначения с разделением спецификаций процессорного ядра и расширений. Создание соответствующего метода автоматизированного построения кросс-инструментов на основе такого модульного комбинированного описания позволило бы быстро получать кросс-инструментарий для расширяемых встраиваемых систем нужного качества (с достаточной скоростью работы и точностью моделирования) с возможностью оперативного обновления для отражения различных вариантов аппаратуры.

На основе проведенного анализа актуальных проблем и существующих решений была сформулирована цель данной работы - исследование и разработка способа комбинированного описания расширяемой встраиваемой системы на языке типа АЛЬ и языке программирования общего назначения и разработка соответствующего метода автоматизированного построения инструментария кросс-разработки на основе таких описаний. Для достижения этой цели были поставлены следующие задачи:

1. Исследовать характеристики современных архитектур расширяемых встраиваемых систем, выделить достаточно широкий класс целевой аппаратуры и построить обобщенную модель выделенного класса, которая будет задавать четкую декомпозицию компонентов системы по необходимой степени глубины их описания (АОЬ-уровня или С++) с точки зрения автоматического построения кросс-инструментов.

2. Разработать АБЬ-подобный язык для описания необходимых компонентов построенной обобщенной модели с потактовой точностью на уровне системы команд и структуры памяти, а также для описания всей информации, необходимой для построения полного набора кросс-инструментария производственного качества (ассемблерный синтаксис, бинарное кодирование, межкомандные зависимости, специализированная диагностика ошибок и т.п.).

3. Разработать способ модульного описания конкретных моделей полной расширяемой встраиваемой системы с использованием разработанного АОЬ-подобного языка и языка программирования общего назначения С++1. Должно поддерживаться раздельное описание ядра и конкретных расширений, позволяющее проводить их независимую разработку с последующей интеграцией в виде различных комбинаций для получения определенной конфигурации полной системы.

4. Разработать архитектуру конструкции необходимых кросс-инструментов для расширяемых встраиваемых систем и реализовать мета-инструментальные средства для автоматического построения таких кросс-инструментов на основе предложенного способа комбинированного описания модели целевой системы.

5. Провести апробацию разработанного метода и мета-инструментальных средств на современных архитектурах расширяемых встраиваемых систем.

Практическая значимость предложенных средств модульного описания на основе разработанного языка КЕ заключается в возможности их использования для описания системы команд и структуры памяти отдельных компонентов расширяемых встраиваемых систем, что совместно с разработанными мета-инструментальными средствами может служить основой для построения различных программных комплексов имитационного моделирования, анализа, верификации и прототипирования таких систем.

Предложенный метод автоматизированного построения кросс-инструментария может быть использован разработчиками новых расширяемых встраиваемых систем для быстрого начального создания и последующего обновления соответствующего инструментария кросс

1 Язык программирования общего назначения эффективно использовать для описания сложных, но редко изменяющихся аспектов проектируемой системы. К счастью, такие описания обычно невелики. АБЬ-подобный язык эффективен для специализированного описания часто меняющихся основных аспектов, реализация которых в итоговом коде кросс-инструментов при этом составляет основную часть. разработки. Получаемые таким методом кросс-инструменты пригодны как для прототипирования аппаратуры и верификации УНОЬ/Уеп^ спецификаций в процессе проектирования, так и для разработки и отладки реальных приложений для целевой аппаратуры.

Разработанный метод и мета-инструментальные средства были успешно использованы в 5 промышленных проектах в 2001-2005 гг., в которых было построено в общей сложности более ста вариантов кросс-инструментов для различных модификаций аппаратуры заказчиков.

Результаты работы докладывались на семинаре НИИСИ РАН в 2003 году, на конференции «10 лет ИСП РАН» в 2004 году, на семинарах ИСП РАН в 2002-2008 гг., на конференции БУЯСоЗЕ 2007 (МГУ).

По теме диссертации опубликовано 7 работ [91]-[97], раскрывающих все основные результаты диссертации.

Диссертация состоит из введения, пяти глав, заключения, списка литературы и 3 приложений. Список литературы включает 97 наименований. Основной текст диссертации (без приложений и списка литературы) занимает 167 страниц.

Похожие диссертационные работы по специальности «Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей», 05.13.11 шифр ВАК

Заключение диссертации по теме «Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей», Рубанов, Владимир Васильевич

5.4 Выводы

В данной главе были рассмотрены мета-инструментальные средства (framework) поддержки предлагаемого в работе метода, объединенных общим названием MetaDSP, и представлены результаты их практического применения.

Среди основных компонентов таких средств выделяются инструменты работы с ISE-описаниями (визуальный редактор и верификатор, средства анализа и статистики), трансляторы ISE-описаний (генерирующие C/C++ код необходимых модулей кросс-инструментов на основе ISE), повторно используемые программные компоненты и, наконец, интегрированная среда мета-разработки, объединяющая все выше перечисленные компоненты в единые сценарии использования на уровне интерфейса пользователя.

Использование таких мета-инструментов позволяет реализовать заложенный в предлагаемом методе уровень автоматизации создания кросс-инструментов и внесения в них изменений как на уровне процессорного ядра, так и на уровне отдельных акселераторов. Визуальный редактор ISE-описаний и средства встроенной диагностики обеспечивают быстрое нахождение нужного для изменения места, повышают наглядность и согласованность самих изменений и интерактивно выполняют семантическую проверку их корректности, тем самым сокращая время на внесение изменений в спецификацию и количество связанных с этим ошибок. Также автоматически обеспечивается синтаксическая корректность получаемых 18Е-описаний. Средства анализа спецификаций и построения статистик обеспечивают разработчика дополнительными данными, которые, наряду с данными профилировщиков времени выполнения, помогают принимать решения о возможных путях оптимизации встраиваемой системы (как аппаратуры, так и программ). Наконец, трансляторы 18Е-описаний и повторно используемые программные компоненты минимизируют количество кода С/С++, который необходимо создать разработчику кросс-инструментов. При этом используются отлаженные модули и обеспечивается согласованность внесения изменений в кросс-инструменты за счет локализации специфичных для конкретной системы описаний в 1БЕ-спецификациях и (в случае базового симулятора) в отдельных С/С++ модулях.

Также, кроме непосредственного использования системы Ме1а08Р для построения кросс-инструментов в рамках предложенного сценария работы, компоненты системы могут использоваться для построения других специализированных систем мета-разработки кросс-инструментов. Например, для создания встроенного в целевую среду интегрированной разработки редактора и генератора модулей-модулей расширений акселераторов. Это особенно актуально в случае расширяемых встраиваемых систем, так как позволяет интерактивно вносить изменения в описания акселераторов и в соответствующую прикладную программу в рамках единой среды для оптимизации целевого решения «аппаратура + программа».

Разработанный метод и мета-инструментальные средства были успешно применены в 5 проектах по созданию кросс-инструментов, выполнявшихся в Институте системного программирования РАН (ИСП РАН) в 2001-2005 гг. по заказу промышленных партнеров.

Заключение

В диссертации получены следующие результаты, характеризующиеся научной новизной:

1. Предложена обобщенная модель целевого класса расширяемых встраиваемых систем, строго описывающая декомпозицию системы на абстрактные компоненты, имеющие различную степень изменчивости в процессе проектирования аппаратуры и требующие различный уровень необходимой глубины описания для обеспечения автоматического построения кросс-инструментария.

2. Разработан новый специализированный язык ШЕ для эффективного описания основных компонентов предложенной обобщенной модели.

3. Разработан метод модульного комбинированного описания конкретных моделей расширяемых встраиваемых систем на языках 18Е и С/С++1 и соответствующий метод автоматизированного построения кросс-инструментария на основе таких описаний, позволяющий эффективно строить и модифицировать кросс-инструменты с обеспечением их высокого производственного качества (прежде всего скорости работы и точности моделирования).

4. Предложена архитектура конструкции кросс-инструментария для расширяемых встраиваемых систем, позволяющая независимо строить базовый инструментарий для процессорного ядра системы и соответствующие модули для расширений ядра с настройкой полного кросс-инструментария во время выполнения. Такая архитектура позволяет динамически изменять конфигурацию (состав и характеристики) расширений моделируемой системы, а также обеспечивает разграничение ответственности и прав интеллектуальной собственности между производителями ядра, различных расширений и их комбинаций.

1 18Е используется для специализированного описания наиболее часто изменяющихся в процессе проектирования аппаратуры элементов (таких как система команд и структура памяти), в то время как С/С-Н- используется для эффективного описания редко меняющихся, но сложных аспектов, таких как конвейерные эффекты, прерывания и т.п.

Реализованы следующие мета-инструментальные средства поддержки предложенного метода:

1. визуальный редактор ISE-описаний системы команд и структуры памяти ядра и его расширений;

2. инструменты верификации и анализа ISE-описаний;

3. транслятор ISE-описаний ядра в код дешифратора и блока исполнения команд для построения симулятора ядра;

2. транслятор ISE-описаний расширений ядра в соответствующие модули для построения расширенного кросс-инструментария;

6. специальные библиотеки для построения симулятора ядра и модулей расширений;

7. средства динамической настройки ассемблера, дисассемблера, компоновщика, отладчика и интегрированной среды разработки на целевую аппаратуру на основе информации, извлекаемой на этапе их работы (in run-time) из ISE-описаний ядра и соответствующих расширений.

Проведена апробация предложенного метода и мета-инструментальных средств на 5 современных архитектурах расширяемых встраиваемых систем (Freehand Platform 2, VIA MicroDSP 1.0 и 1.1, VIA DSP 2, ZAC).

Список литературы диссертационного исследования кандидат физико-математических наук Рубанов, Владимир Васильевич, 2008 год

1. Я.А. Хетагуров. Из истории развития специализированных бортовых вычислительных машин. HTML. ('http://www.computer-museum.ru/liistussr/special.htm).

2. В.В. Липаев. Из истории развития отечественной вычислительной техники для военных систем управления в реальном времени. HTML. rhttp://www.computer-museum.ru/histussr/l 6.htm).

3. К. Колпаков. История развития авиационных бортовых цифровых вычислительных машин в России. HTML. fhttp://www.computer-museum.m/histussr/stpc.htm).

4. Lei Yang, Robert P. Dick, Haris Lekatsas, and Srimat Chakradhar. RAM for Free // IEEE Spectrum. August 2008.

5. А. Бухтев. Проектирование встроенных систем: от концепции до кристалла. // Электронные компоненты. 2007. №1.

6. A. Parker, etc. System-Level Design.

7. The VLSI Handbook—2nd ed. CRC Press, 2007.

8. Donald R. Cottrell. Design Automation Technology Roadmap. // The VLSI Handbook—2nd ed. CRC Press, 2007.

9. Software-Hardware Codesign.

10. IEEE Design & Test of Computers. January-March 2000. P.92-99.

11. M L Vallejo, J С Lopez. On the hardware-software partitioning problem: System Modeling and partitioning techniques.1. ACM TODAYS. 2003. Vol.8.

12. R Ernst, J Henkel, T Benner. Hardware-software co-synthesis for microcontrollers. // IEEE Design and Test. 1993. Vol.10.

13. Wayne Wolf. Embedded Computing Systems and Hardware/Software Co-Design. // The VLSI Handbook—2nd ed. CRC Press, 2007.

14. Embedded С. Стандарт ISO/IEC TR 18037:2004.

15. ExecutabIe and Linking Format in Wikipedia. HTML. (http://en.wikipedia.org/wiki/Executable and Linkable Format).

16. Generic ELF Specification. HTML. fhttp://www.linux-foundation.org/spec/book/ELF-generic/ELF-generic/book 1 .html).

17. M. Hartoog, J. Rowson, P. Reddy. Generation of Software Tools from Processor Descriptions for Hardware/Software Codesign.

18. Proc. of Design Automation Conference (DAC) 1997.

19. Lin Yung-Chia. Hardware/Software Co-design with Architecture • Description Language. // Programming Language Lab. NTHU, 2003.

20. Д.Ю. Булычев. Разработка программно-аппаратных систем на основе описания макроархитектуры.

21. Сборник Системное программирование. Санкт-Петербург, 2004.

22. Z. Navabi. Languages for Design and Implementation of Hardware. // The VLSI Handbook—2nd ed. CRC Press, 2007.

23. A.K. Поляков. Языки VHDL и VERILOG в проектировании цифровой аппаратуры. // М.: Солон-Пресс, 2003. 320 с.

24. П.Н. Бибило. Синтез логических схем с использованием языка VHDL. // М.: СОЛОН-Р, 2002. 384 с.

25. Volnei A. Pedroni. Circuit Design with VHDL // MIT Press, 2004.

26. IEEE Standard VHDL Language Reference Manual. IEEE Std 1076-1987. 25.IEEE Standard Multivalue Logic System for VHDL Model Interoperability. IEEE Std 1164.

27. IEEE Standard VHDL Synthesis Packages. IEEE Std 1076.3-1997.

28. M. Rofoue, Z. Navabi. RT Level Hardware Description with VHDL. // The VLSI Handbook—2nd ed. CRC Press, 2007.

29. Weng Fook Lee. Verilog Coding for Logic Synthesis. John Wiley & Sons, 2003.

30. IEEE Standard Hardware Description Language Based on the Verilog Hardware Description Language. IEEE Std 1364-2005.

31. Z. Navabi. Register Transfer Level Hardware Description with Verilog. // The VLSI Handbook—2nd ed. CRC Press, 2007.

32. Open SystemC Initiative. HTML. (http ://ww w. système .org).

33. IEEE Standard System C Language Reference Manual. IEEE Std 1666-2005.

34. S. Mirkhani and Z. Navabi. Register-Transfer Level Hardware Description with SystemC. // The VLSI Handbook—2nd ed. CRC Press, 2007.

35. Stephen Bailey. Comparison of VHDL, Verilog and SystemVerilog // Model Technology White Paper. 2005.35.Synopsys VCS. HTML, PDF.http.V/www.synopsys.com/products/simulation/simulation.html) (http://www.synopsys.com/products/simulation/vcs ds.pdf).

36. Mentor Graphics ModelSim. HTML. (http://www.mentor.com/products/fV/digitalverification/index.cfm).

37. Cadence NC-Sim. PDF. (http://www.cadence.com/datasheets/4492C Incisive Verilog DSfhl.pdf).

38. Cadence Incisive Simulators. HTML.http :// cadence.com/products/functionalver/ simulation/index, aspx).

39. P. Mishra and N. Dutt. Architecture description languages for programmable embedded systems // IEEE Proceedings Computers and Digital Techniques. Vol. 152, No. 3, May 2005.

40. W. Qin, and S. Malik. Architecture description languages for retargetable compilation // The Compiler Design Handbook, CRC Press, 2002.

41. H. Tomiyama, A. Halambi, P. Grun, N. Dutt, A. Nicolau. Architecture Description Languages for Systems-on-Chip Design.

42. Proc. Asia Pacific Conf. on Chip Design Language. 1999. P. 109-116.

43. Rainer Leupers. Retargetable Code Generation for Digital Signal Processors. Kluwer Academic Publishers, 1997.43 .M. Freericks. The nML Machine Description Formalism

44. Technical Report 1991/15. TU Berlin, Fachbereich Informatik, 1991.

45. A. Fauth, J. Van Praet, M. Freericks. Describing instruction set processors using nML//Proc. ofED&TC. 1995.

46. Chess/Checkers Products. Target Compiler Technology. HTML. (http://www.retarget.com/).

47. ISDL Project Homepage. HTML. (http://caa.lcs.mit.edu/caa/home.htmn.

48. G. Hadjiyannis, S. Hanono, S. Devadas. ISDL: An Instruction Set Description Language for Retargetability

49. Proc. of Design Automation Conference (DAC). 1997.

50. EXPRESSION Homepage. HTML. (http://www.cecs.uci.edu/~aces/index.html').

51. Ashok Halambi, Peter Grun, Vijay Ganesh, Asheesh Khare, Nikil Dutt and Alex Nicolau. EXPRESSION: A Language for Architecture Exploration through Compiler/Simulator Retargetability // Proc. of DATE. 1999.

52. P. Mishra, A. Shrivastava, N. Dutt. ADL-driven Software Toolkit Generation for DSE // ACM Transactions on Design Automation of Electronic Systems. 2006. P. 1-31.

53. M. Reshadi, N. Dutt, P. Mishra. A Retargetable Framework for Instruction-Set Architecture Simulation. // ACM Transactions on Embedded Computing Systems. Vol. 5, No. 2, May 2006. P. 431^452.

54. B.B. Липаев, JI.A, Серебровский, B.B, Филиппович. Принципы построения и основные требования к системам автоматизации программирования и отладки программ для управляющих систем. //Программирование. 1975. №2.

55. В.В. Липаев, Л.А, Серебровский, В.В, Филиппович. Система автоматизации программирования и отладки комплексов программ управления ЯУЗА-6. // Программирование. 1977. №2.

56. Analog Devices Processor Development Tools. HTML. (http://www.analog.com/processors/platforms/processorDevTools.html).

57. Texas Instruments Tools & Software Overview. HTML. ('http://focus.ti.com/dsp/docs/dspfindtoolswbytooltype.tsp?sectionId=3& tabId=2088&toolTvpeId=l&familyId=44).

58. Freescale Code Warrior Development Tools. HTML. (http://www.freescale.com/webapp/sps/site/homepage.isp? nodeld=012726&tid=FSH).

59. LSI DSP Products. HTML. (http://www.lsi.com/networking home/networking products/dsps/ index.html).

60. NXP (Philips Semiconductors) Development Tools for Microcontrollers. HTML. (http://www.nxp.com/products/microcontrollers/ support/developmenttools/).

61. ARM RealView Development Tools. HTML. (http://www.arm.com/products/DevTools/).

62. TASKING Embedded Software Development Tools. HTML. (http://www.tasking.com/).61 .Raisonance Embedded Development Tools. HTML. (http://www.raisonance.com/).

63. Signum Embedded Development Tools. HTML. fhttp://signum.com/).

64. Nohau (ICE Technology) Development Tools. HTML. (http://www.icetech.com/).

65. Keil Embedded Development Tools. HTML. (http://yyww.keil.com/).

66. Green Hills MULTI Integrated Development Environment. HTML. (http://www.ghs.com/products/MULTI IDE.html).

67. IAR Embedded Development Tools. HTML. (http://www.iar.com/).67.iSystem Solutions for Embedded System Development. HTML. (http://www.isystem.com/).

68. ARM Processor Families. HTML. (http://www.arm.com/products/CPUs/families.html).

69. ADSP-21xx Processor Manuals. HTML. (http://www.analog.com/processors/adsp/technicalLibrary/manuals/).

70. ARC 600 Core Family. HTML. (http://www.arc.com/configurablecores/arc60Q/).

71. Improv Systems Jazz DSP Core. HTML.http://ww w. impro v sys. com/Products/JazzD SP/ Jazz%2 OD SP. cfm).

72. Xtensa Configurable Processors Overview. HTML. (http://www.tensilica.com/products/xtensa overview.htm).

73. VIA Embedded. HTML. (http://www.via.com.tw/en/products/embedded/)

74. Булычев Д.Ю. Прототипирование встроенных систем на основе описания макроархитектуры // Диссертация на соискание ученой степени кандидата физико-математических наук. СПб.: СПбГУ, 2004.

75. В. Kernighan and D. Ritchie. The С Programming Language. Prentice Hall, 1988.

76. B. Stroustroup, The С++ Programming Language. Addison Wesley Publishing Company, 1997.

77. ISO/IEC 9899:1999 Programming languages - C.

78. ISO/IEC 14882:2003 Programming languages - С++.

79. ISO/IEC 18037 Programming languages -- С — Extensions to support embedded processors.

80. MicroDSP Architecture Specification // VIA Technologies Manual. 2004.

81. MicroDSP 2 Instruction Set Description // VIA Technologies Manual. 2005.

82. M68000 Family Programmer's Reference Manual. PDF.www.freescale.com/files/archives/doc/ref manual/M68000PRM.pdf).

83. DSP56000 Digital Signal Processing Family Manual. PDF. (http://ppd.fiial.gov/experiments/e907/TPC/DAQ/DSP56000UM.pdf).

84. Xtensa Architecture and Performance // Tensilica whitepaper. 2005. PDF. ("http://www.tensilica.com/pdf/xtensaarchwhitepaper.pdf).

85. TMS320C54x DSP Reference Set. Volume 1: CPU and Peripherals. // Texas Instruments Literature Number SPRU131G. PDF. (http://focus.ti.com/lit/ug/sprul3 lg/spru!3 lg.pdf).

86. TMS320C54x DSP Reference Set. Volume 2: Mnemonic Instruction Set. // Texas Instruments Literature Number SPRU172C. PDF. (http://focus.ti.com/lit/ug/sprul72c/sprul72c.pdf).

87. TMS320C6000 CPU and Instruction Set Reference Guide. // Texas Instruments Literature Number SPRU189F. PDF. (http://focus.ti.com/lit/ug/sprul 89g/sprul 89g.pdf).

88. Библиотека Windows Fibers. HTML. (http://msdn2.microsoft.com/en-us/librarv/ms682661.aspxy

89. Библиотека QuickThreads. HTML. (http://www.cs.washington.edU/research/compiler/papers.d/ quickthreads.html).

90. Семейство компиляторов GNU GCC. HTML. (http://gcc.gnu.org/).

91. B.B. Рубанов, Д.А. Марковцев, А.И. Гриневич, М.А. Миткевич. Динамическая поддержка расширений процессора в кросс-системе // Труды ИСП РАН, том 5. М., 2004. С. 63-88.

92. В.В. Рубанов, Д.А. Марковцев, А.И. Гриневич. Использование особенностей процессоров цифровой обработки сигналов в компиляторе языка 'С'

93. Труды ИСП РАН, том 8, часть 1. М., 2005. С. 137-158.

94. В.В. Рубанов, Д.А. Марковцев, А.И. Гриневич. Особенности кросскомпилятора языка С для ЦПОС

95. Программирование. 2006. №1. С. 26-40.

96. В.В. Рубанов, A.C. Михеев. Интегрированная среда описания системы команд для сигнальных процессоров

97. Труды ИСП РАН, том 9. М., 2006. С. 143-158.

98. V.V. Rubanov. Dynamic Support of Processor Extensions in Cross Development Tools // Proceedings of SYRCoSE 2007 (Moscow). P. 17-28.

99. B.B. Рубанов. Обзор методов описания встраиваемой аппаратуры и построения инструментария кросс-разработки

100. Труды ИСП РАН, том 15. М., 2008. С. 7-40.

101. В.В. Рубанов. Метод автоматизированного построения инструментария кросс-разработки для расширяемых встраиваемых систем. Препринт №20. М.: ИСП РАН, 2008. 98 с.

Обратите внимание, представленные выше научные тексты размещены для ознакомления и получены посредством распознавания оригинальных текстов диссертаций (OCR). В связи с чем, в них могут содержаться ошибки, связанные с несовершенством алгоритмов распознавания. В PDF файлах диссертаций и авторефератов, которые мы доставляем, подобных ошибок нет.