Содержание к диссертации
Введение
1. Моделирование при проектировании с использованием ПЛИС . - 16 -
1.1 Абстрактное и низкоуровневое моделирование - 16 -
1.2 Особенности проектирования с использованием ПЛИС - 21 -
1.3 Задачи, решаемые при низкоуровневом моделировании систем, разрабатываемых с использованием ПЛИС - 26 -
1.4 Выводы -29-
2. Принципы построения низкоуровневых моделей - 31 -
2.1 Общие принципы построения низкоуровневой модели ВК - 31 -
2.2 Архитектура ВК "Эльбрус-Уомикро" -35-
2-3 Структура модели ВК "Эльбрус-90микро" - 38 -
2.4 Выводы -47-
3. Методы повышения быстродействии низкоуровневых моделей вычислительных комплексов - 49 -
3.1 Использование особенностей языков моделирования аппаратуры для повышения Сіродействия моделей -49-
3.2 Библиотека СVI - 53 -
3.3 Замена части тестируемых устройств эквивалентным кодом 57
3.4 Генератор эквивалентного кода устройств - 60 -
3.5 Результаты - 63 -
3.6 Выводы - 65 -
Заключение - 66 -
Литература
- Особенности проектирования с использованием ПЛИС
- Задачи, решаемые при низкоуровневом моделировании систем, разрабатываемых с использованием ПЛИС
- Архитектура ВК "Эльбрус-Уомикро"
- Замена части тестируемых устройств эквивалентным кодом
Введение к работе
Актуальность темы, В последнее время все большую популярность приобретает методика проектирования радиоэлектронной аппаратуры с использованием Программируемых Логических Интегральных Схем (ПЛИС). Малое время проецирования, простота моделирования, а также возможность оперативного исправления ошибок на этапе реализации и малая стоимость разработки делает эту методику очень привлекательной. С другой стороны, относительно скромные характеристики программируемых схем по сравнению с полузаказными и заказными кристаллами позволяли, до последнего времени, использовать ПЛИС лишь в небольших проектах и при разработке несложных устройств.
Однако ПЛИС последних поколений значительно расширили сферу применения этой технологии. В частности, временные характеристики современных ПЛИС удовлетворяют требованиям, предъявляемым к системным контроллерам, контроллерам высокоскоростных интерфейсов ввода-вывода и, тем более, к медленным периферийным контроллерам. Размеры же современных программируемых схем позволяют достичь высокого уровня интеграции, полностью соответствующего современным требованиям. Вне пределов возможностей ПЛИС-технологий пока остаются лишь высокопроизводительные процессоры.
Таким образом, современные ПЛИС дают возможность разрабатывать схемы большего объема, высокой сложности и быстродействия, позволяя, таким образом, создавать целые системы, используя только ПЛИС-технологию. Типичным примером подобной системы может служить множество микроконтроллеров, составляющие набор системной логики материнской платы, В диссертационной работе речь пойдет именно о таких системах.
Целью диссертационной работы является создание модели комплексной системы микроконтроллеров, основанной на низкоуровневом описании устройств, составляющих систему и решения с ее помощью задач, возникающих при разработке систем с использованием ПЛИС-технологий. Исходя из поставленной цели, в работе решаются следующие задачи:
• Анализ особенностей проектирования с использованием ПЛИС с целью определения круга задач, решение которых возможно при помощи низкоуровневого моделирования системы.
• Разработка концепции модели исходя из особенностей проектирования с использованием ПЛИС
• Создание моделей архитектур "Эльбрус-90микро" и "Эльбрус-3MLt с использованием разработанных концепций.
• Решение проблемы скорости моделирования путем описания части модели на языке высокого уровня.
• Оценка производительности системы.
Предмет исследования составляют способы повышения быстродействия низкоуровневых моделей.
Методы исследования включают в себя рассмотрение различных способов повышения быстродействия низкоуровневой модели системы, реализацию и оценку эффективности этих способов путем сравнения времени работы тестов на модели до и после их применения
Научная новизна работы заключается в применении межпроцессного взаимодействия при сочетании языков высокого уровня и языков описания аппаратуры при моделировании, а также в использовании результатов логического синтеза системы автоматического проектирования для генерации эквивалентных описании устройств на языке высокого уровня.
Практическая ценность результатов работы состоит в создании ряда моделей различных систем в рамках проектов по созданию вычислительных комплексов ь Эльбрус-90микро" в конструктиве рабочей станции и CompactPCI, а также комплекса "Эльбрус-ЗМ". Эти модели успешно использовались для отладки исходного кода устройств, оценки и повышения производительности систем, а также при финальной наладке наборов системной логики. В процессе работы разработана интерфейсная библиотека CVI и генератор эквивалентных модулей.
Вычислительный комплекс "Эльбрус-90микро" успешно прошел государственные испытания, начато его серийное производство в конструктиве рабочей станции. Разработка вычислительного комплекса иЭльбрус-ЗМ" находится на стадии физического дизайна.
Основные практические результаты, выносимые на защиту.
• Разработаны следующие средства для повышения быстродействия низкоуровневых моделей:
? Библиотека С VI.
? Генератор эквивалентных модулей.
• Разработаны низкоуровневые модели вычислительных комплексов иЭльбрус-90микро" и "Эльбрус-ЗМ", При разработке использовались вышеперечисленные средства повышения быстрод е йств и я.
• Проведен анализ эффективности предложенных средств повышения быстродействия.
Публикации.
По теме диссертации опубликованы 6 работ:
• Статья "Моделирование сложных систем при проектировании радиоэлектронной аппаратуры с использованием ПЛИС" в журнале "Успехи современной радиоэлектроники" (№7, 2002).
• Статья "Повышение быстродействия низкоуровневых моделей вычислительных комплексов, проектируемых с использованием ПЛИС в сборнике научных трудов ИМВС РАН (2003).
• Доклад Технология проектирования системных контроллеров для отечественной рабочей станции с архитектурой SPARC" в сборнике трудов конференции памяти академика Мельникова (Москва, 1999}
• Тезисы доклада "Особенности отладки и оптимизации работы периферийных контроллеров, разрабатываемых с использованием ШІИС-технологий" на XXVli международной научной конференции Тагарипские чтения" (Москва, апрель 2001).
Тезисы доклада Проблемы низкоуровневого моделирования систем, проектируемых с использованием ПЛИС" на XXVIII международной научной конференции "Гагаринские чтения" (Москва, апрель 2002).
• Тезисы доклада "Генерация эквивалентного кода устройств при низкоуровневом моделировании систем, проектируемых с использованием ПЛИС" на XXVIX международной научной конференции "Гагаринские чтения (Москва, апрель 2003).
Краткое содержание работы.
В главе I рассматриваются низкоуровневое и абстрактное моделирование вычислительных систем, особенности и недостатки каждой методики моделирования, а также задачи, которые целесообразно решать при помощи каждого подхода. Делается вывод, что лишь низкая скорость моделирования препятствует использованию низкоуровневых моделей для решения более широкого круга задач. Далее рассматриваются особенности проектирования устройств с использованием ПЛИС, анализируется спектр задач, которые могут решаться при помощи модели на разных этапах проектирования. Делается вывод о том, что низкоуровневая модель наиболее соответствует спектру задач, возникающих при моделировании вычислительных систем, проектируемых с использованием ПЛИС.
Низкоуровневое моделирование подразумевает использовани е исходных описаний устройств на языке описания аппаратуры, в противоположность ему абстрактное моделирование проводится с использованием функциональных описаний на языке высокого уровня. К достоинствам первого метода относятся: адекватное поведение модели реальному устройству, полная доступность внутренних интерфейсов устройств и, как следствие, простота диагностики обнаруженных ошибок. К достоинствам второго метода относятся: высокая скорость моделирования, обилие и гибкость средств разработки.
При моделировании обычно решаются следующие задачи:
1J Использование модели системы как тестовой оболочки при отладке каждого из устройств. 2) Создание потоковых тестов для обнаружения ошибок при взаимодействии устройств.
3) Сбор статистики для оценки алгоритмов арбитража и управления потоками данных.
4) Оценка производительности системы.
5) Верификация протоколов взаимодействия устройств.
В силу необходимости доступа к внутренним интерфейсам устройств, первые две задачи могут успешно решаться лишь при использовании низкоуровневого моделирования. Наоборот, задачи 3 и 5 более эффективно решаются абстрактной моделью в силу высокой скорости моделирования. Задача оценки производительности системы, несмотря на высокие требования к скорости моделирования, требует также воссоздание реальной картины работы системы, что затруднительно в абстрактной модели. Следовательно, для решения этой задачи лучше подходит низкоуровневая модель.
Вывод: низкоуровневая модель лучше подходит для решения большинства задач моделирования, и лишь низкая скорость низкоуровневой модели не позволяет использовать ее для решения более широкого крута задач.
Важной особенностью проектирования с использованием ПЛИС является то, что переход от физического дизайна к реализации не требует сложных технологических процессов и может повторяться многократно без существенных затрат. Использование данного подхода имеет немало преимуществ, но возникаег еше одна задача, которую необходимо решать при помощи модели - воссоздание аварийных ситуаций, обнаруженных во время тестирования реального устройства. Данная задача может решаться ЛИШЬ при помощи низкоуровневой модели.
При проектировании с использованием ПЛИС перед моделью встает весь спектр вышеперечисленных задач. При этом в силу особенностей проектирования для решения большинства из них более предпочтительным выглядит низкоуровневое моделирование.
В главе 2 рассматриваются общие принципы построения низкоуровневой модели вычислительного комплекса, выделяются общие элементы, проводится описание каждого элемента, рассматриваются его функции и задачи, им решаемые. Далее рассматривается архитектура вычислительного комплекса "Эльбрус90-микро" и его низкоуровневой модели в рамках вышеописанных принципов. Описывается схема работы каждого элемента.
В модели произвольного вычислительного комплекса можно выделить некие общие по функциональности элементы. К ним можно отнести:
• Тестируемые устройства (ТУ).
• Генераторы нагрузки (ГН).
• Модули мониторинга и статистики (ММС).
• Имитаторы периферийных устройств (ИПУ).
Тестируемые устройства составляю!, собственно, объект тестирования.
Генераторы нагрузки обеспечивают поток данных в систему. Должны обеспечивать большое количество параметров настройки конфигурации потока и обеспечивать соответствие потока заданным характеристикам Модули мониторинга и статистики осуществляют контроль над отдельными интерфейсами, обеспечивал остановку моделирования с соответствующей диагностикой в случае возникновения ошибочных ситуаций. Если существует необходимость сбора статистики по соответствующему интерфейсу, то это удобнее осуществлять в соответствующем ММС.
Имитаторы периферийных устройств симулируют активность устройств, внешних по отношению к тестируемой системе. Они подключаются к каждому внешіїему интерфейсу системы, чья активность необходима для проведения тестов.
Архитектура комплекса "Эльбрус90-микро" представлена системной шиной MBus, на которой работают до четырех процессоров, контроллеры шин SBus и РСГ и контроллер памяти. На шине SBus располагаются котроллеры периферии: SCSL Ethernet, параллельного порта и контроллер шины медленных периферийных устройств EBus, на которой, в свою очередь, располагаются контроллер флоппи-дисковода, клавиатуры и мыши.
В рамках модели вычислительного комплекса "Эльбрус90-микро" тестируемыми устройствами являются системные контроллеры периферийных шин SBus и РСГ MSI и MPI соответственно, контроллер памяти, периферийные контроллеры SCSI, Ethernet, параллельного порта и контроллер периферийной шины ЕВ us. Каждый из интерфейсов (MBus, SBus, SCSI, PCI, EBus, Ethernet, память) оснащен соответствующим модулем мониторинга, а все внешние интерфейсы закрыты имитаторами периферии.
В главе 3 проводится анализ основных недостатков низкоуровневого моделирования и способы их устранения. Предлагается использование языков высокого уровня для описания отдельных элементов модели. Описывается библиотека С VI, ее состав и применение. Рассматриваются проблемы эквивалентной генерации модулей. Предлагается решение рассмотренных проблем путем использования промежуточного представления данных САПР. Описывается генератор эквивалентных модулей, в котором реализован предложенный подход. Д&тее приводятся результаты применения предложенных методов повышения быстродействия в моделях вычислительных комплексов "Эльбрус90-микро" и "Эльбрус-ЗМ".
Основным недостатком низкоуровневых моделей является их низкое быстродействие. Для повышения быстродействия низкоуровневой модели предлагается описать часть ее на более быстром языке высокого уровня. При переносе на абстрактный уровень сервисной части модели (все кроме тестируемых устройств) сохраняются основные преимущества низкоуровневой модели - адекватность реальной системе и доступ к внутренним интерфейсам устройств.
Для взаимодействия абстрактной и низкоуровневой частей модели необходим интерфейс. Такой интерфейс можно реализовать, используя PL1 (programmable logic interface) языка моделирования аппаратуры. PLI можно использовать для реализации непосредственного взаимодействия устройств, но подобный способ обладает массой недостатков, в частости, необходимостью перекомпиляции симулятора при каждом изменении интерфейса или состава модели, наличие своей оригинальной функции взаимодействия для каждого из устройств и т.д.
Всех этих недостатков лишен другой способ организации взаимодействия - межпроцессный. При помощи PLI и функций операционной системы реализуется интерфейс межпроцессного обмена, пользуясь которым можно создавать произвольные схемы взаимодействия, тге затрагивая самих интерфейсных библиотек, CVI (С to Verilog interface) - интерфейсная библиотека построенная на описанных выше принципах, была создана и успешно использовалась в низкоуровневых моделях вычислительных комплексов иЭльбрус90-ми1фо" и "Эльбрус-ЗМ".
В некоторых случаях возможна замена части тестируемых устройств их эквивалентами на языке высокого уровня. Это возможно, например, при отладке устройства по отношению ко всем остальным. Таким образом возникает задача создания подобных эквивалентов. Вариант одновременного написания двух модулей обладает массой недостатков, от удвоенного обьема работ до доказательства эквивалентности и проблем с модификацией. С другой стороны, автоматическая генерация эквивалентных модулей представляется слишком сложной задачей для решения в рамках проекта по разработке вычислительного комплекса.
Однако, задачу автоматической генерации эквивалентного кода устройств можно сильно упростить, если за основу /тдя генерации кода взять не исходное описание устройства, а промежуточное представление данных САПР - net list. Данное представление состоит из набора простейших элементов, каждый из которых легко реализуется на языке высокого уровня. В силу небольшого количества данных элементов задача автоматической генерации эквивалентных модулей значительно упрощается и сводится к описанию библиотеки элементов для каждого семейства ПЛИС, синтаксического анализатора промежуточных представлений и, собственно, генератора.
Генератор эквивалентных модулей на основе промежуточного представления данных САПР был разработан и успешно использован при моделировании вычислительного комплекса "Эльбрус-ЗМ".
В заключении приводятся основные результаты диссертационной работы и делаются выводы об эффективности предложенных методов.
Особенности проектирования с использованием ПЛИС
Проектирование с использованием ПЛИС имеет ряд особенностей, которые оказывают влияние, в частности, на методологию моделирования. Появляются дополнительные задачи, решаемые при помощи модели, некоторые задачи, наоборот, снимаются с рассмотрения. Рассмоірим этапы проектирования с использованием ПЛИС, для того чтобы уяснить, какие задачи решаются при помощи моделирования при данном способе проектирования [7]: На первом этапе происходит разбиение схемы устройства на блоки по принципу функциональной независимости и минимальности интерфейсов.
На втором этапе каждый из блоков описывается на выбранном языке описания аппаратуры, при этом учитываются ограничения, накладываемые на конструкции языка САПР, которая будет в дальнейшем использоваться для физического дизайна устройства.
На третьем этапе проводится отладка модулей средствами выбранного языка. Обычно при отладке отдельных модулей используются простые тесты, и не требуется создание отладочной оболочки.
На четвертом этапе блоки объединяются согласно схеме устройства.
На пятом этапе устройство моделируется как единое целое. Этот этап подразумевает создание отладочной оболочки для устройства. В случае обнаружения ошибок при взаимодействии модулей возможен возврат к третьему эгану после коррекции исходных описаний устройств.
На шестом этапе происходит синтез физического дизайна устройства с помощью САПР. По результатам синтеза возможен возврат на пятый или даже на третий этапы проектирования после коррекции исходных описаний устройств, в случае если полученные результаты не удовлетворяют техническому заданию. После необходимых корректировок этапы 3, 4, 5 и 6 проходятся повторно.
На последнем этапе проводится программирование ПЛИС и тестирование устройства в "железе". При обнаружении ошибок на этом этапе происходит коррекция исходных описаний устройств и возврат к третьему или пятому этапу. На Рис. 1 представлена последовательность этапов проектирования с использованием ПЛИС.
Разбиение схемы на логические модули, составление блок-схемы устройства. Описание логических модулей схемы на языке описания аппаратуры с учетом требований САПР. 2 Моделирование и отладка логических модулей с использованием средств языка, выбранною для описания схемы. з Объединение логических модулей. I Моделирование и отладка устройства как единого целого. Коррекгировка исходного описания по результатам тестирования. і Создание физического дизайна с помощью САПР Программирование ПЛИС и тестирование устройства в "железе". Корректировка исходного описания по результатам тестирования.
Этапы проектировании с использованием ПЛИС.
Важной особенностью проектирования с использованием ПЛИС является то, что переход от физического дизайна к реализации не требует сложных технологических процессов и может повторяться многократно без существенных затрат [7]. Это позволяет отказаться от длительного тестирования на этапе разработки, проведя вместо этого тестирование физической реализации устройства. Преимущества такого подхода состоят в следующем: Скорость работы тестов на реальном устройстве выше скорости работы тестов на любой модели. Это особенно актуально, учитывая низкую скорость работы языков, используемых для моделирования аппаратуры. Решается проблема генерации реальной нагрузки, которая всегда встает при написании стресс-тестов и оценке производительности при моделировании. Замеры производительности реального устройства дают более достоверные результаты, чем любая модель.
Однако при таком подходе возникает проблема анализа аварийных ситуации, обнаруженных во время тестирования реальных устройств, обусловленная тем, что при тестировании реальных устройств наблюдаемыми являются лишь интерфейсы тестируемых устройств, а их внутренние сигналы недоступны. Модель, использующая исходные описания устройств, позволяет решить данную проблему, предоставляя полный доступ к внутренним интерфейсам устройств. Необходимо лишь добавить в подобную модель механизм воссоздания ситуаций, зафиксированных в тестах реальной системы. Заметим, что решить данную задачу при помощи абстрактной модели не представляется возможным.
Необходимо также заметить, что реальные тесты не оптимальны для начального тестирования, так как требуют значительного времени подготовки, что при большом количестве ошибок приведет к значительным потерям времени. Данный факт не позволяет ограничиться только этим подходом при отладке системы и требует применения комплексного подхода, то есть совмещения моделирования и реальных тестов
Задачи, решаемые при низкоуровневом моделировании систем, разрабатываемых с использованием ПЛИС
При разработке систем, содержащих множество ПЛИС-устройств, возникает необходимость объединения описаний всех устройств с целью создания модели всей системы. С помощью подобной модели можно решать широкий спектр задач, среди которых можно выделить следующие [141: 1) Использование модели системы как тестовой оболочки при отладке каждого из устройств. 2) Имитация аварийных ситуаций, обнаруженных при тестировании реальных устройств. 3) Создание Пашковых тестов для обнаружения ошибок при взаимодействии устройств. 4) Сбор статистики для оценки алгоритмов арбитража и управления потоками данных. 5) Оценка производительности системы. Рассмотрим эти задачи более подробно.
1. При разработке большой системы с множеством 11ЛИС-устройств возникает необходимость начальной отладки каждого из них. Для этого необходимо поместить каждое из разрабатываемых устройств в некую тестовую среду, в которой и будет проходить тестирование. Естественно, что для каждого устройства такая среда будет индивидуальна, но при этом можно выделить некие общие элементы каждой из них. Во-первых, должен присутствовать источник нагрузки/ответная часть. Этот модуль отвечает за формирование входных воздействий на тестируемое устройство и реакцию на его выходные воздействия. Во-вторых, должен присутствовать блок мониторинга и статистики, который будет определять некорректные состояния интерфейса устройства и, если это необходимо, собирать статистику работы устройства.
При использовании системной модели в качестве тестовой оболочки для всех устройств отпадает необходимость в использовании искусственных генераторов нагрузки для каждого устройства, так как источником нагрузки для любого устройства обычно служит другое тестируемое устройство, В модели системы необходим лишь один генератор нагрузки для всей системы. Один модуль мої і иторинга и статистики необходим для каждого интерфейса, что при моделировании систем с интерфейсами, поддерживающими более двух устройств, даст выигрыш по сравнению с индивидуальным тестированием устройств.
2. Как отмечалось, при проектировании с использованием ПЛИС часть тестирования удобно проводить на реальных устройствах, но при всех достоинствах этого метода очевидны и о недостатки, главным из которых является ограниченность средств анализа обнаруженных аварийных ситуаций. При тестировании реальных устройств наблюдаемыми являются лишь интерфейсные сигналы. Самый простой способ решения этой проблемы - использование незанятых ножек корпуса кристалла для добавления в интерфейс внутренних сигналов. Этим методом нельзя решить проблему полностью, так как при выборе корпуса разработчики руководствуются, в частности, критерием стоимости микросхемы и, как следствие, количество незанятых ножек невелико. В подобной ситуации можно использовать модель системы, позволяющую в точности повторить полученную в тесте реального устройства аварийную ситуацию и провести ее полный анализ средствами используемого языка,
3. Наличие в модели системы генератора нагрузки позволяет проводить широкий спектр разнообразных потоковых тестов, от имитации реальных режимов работы системы до интенсивных стресс - тестов (максимальная загрузка устройств). Имитация реальных режимов работы помогает выявлять ошибки взаимодействия усіройств на стадии первичной отладки до создания физического дизайна схем. При подобном моделировании возникает проблема генерации нагрузки, эквивалентной реальной. Существует несколько путей решения этой проблемы. Самый простой из них - использование трасс работы устройства, нагружающего реальную систему, его аналога или его точной модели. В случае же отсутствия подобной информации можно использовать параметризуемые случайные генераторы, настраиваемые в соответствии с теоретическими предположениями о параметрах потока. В таком виде нагрузка будет отличаться от реальной, но для первичного тестирования отличие будет несущественным.
Стресс-тесты необходимы для определения пиковой пропускной способности системы и ее устойчивости к пиковым нагрузкам. Подобные тесты реальной системы обычно невозможны, в отличие от модели, где для организации подобных тестов необходима лишь возможность генерации нагрузки, отличной от реальной нагрузки.
4. Для настройки некоторых устройств и оценки работы некоторых алгоритмов необходимы статистические данные о работе системы. Возможности по сбору статистической информации в реальной системе ограничены и, при отсутствии аппаратной поддержки, дают невысокую точность. Модель обеспечивает более высокую точность и более широкие возможности, но лишь при наличии генератора, способного создавать реальную нагрузку. При отсутствии возможности обеспечить эквивалентность нагрузки использование модели нецелесообразно. В большинстве случаев рекомендуется использовать сочетание методов моделирования и тестов реальной системы.
5. Если нет возможности произвести оценку производительности системы на реальных тестах, то можно использовать для этих целей модель системы. Как и в предыдущем случае необходимо иметь генератор реальной нагрузки. Несмотря на то, что исследование производительности системы лучше производить на реальных тестах, некоторые части этого исследования можно проводить только на модели. К этим частям относится уже упоминавшееся ранее исследование пиковой производительности системы, сюда же можно отнести и исследования производительности в нестандартных условиях, которые невозможно воспроизвести в реальной системе.
Архитектура ВК "Эльбрус-УОмикро"
Эти свойства можно разделить на две іруїшьі. Первая и вторая требуют от генератора работы с внешним источником транзакций, а вторая и третья - самостоятельной генерации транзакций в соответствии со случайным распределением или логикой работы драйвера устройства.
В качестве основы генератора нагрузки было разработано устройство-трапзактор, поддерживающее протокол системной шины МВш, скрывающее все его особенности и предоставляющее простой интерфейс, позволяющий передавать в систему транзакции произвольного вида, не заботясь о деталях передачи. Четыре подобных устройства были размещены в четырех процессорных слотах системы, а к ним, в свою очередь, подключались схемы, реализующие те или иные функции генератора нагрузки. Наличие четырех генераторов дало возможность более гибко решать разнообразные задачи и отлаживать многопроцессорный вариант системы. Например, работа драйвера SCSI устройства с одного процессора может рассматриваться на фоне заданного случайного потока данных в память от другого или при работе одной из схем на одном процессоре, второй процессор считывает те же данные, позволяя задействовать механизм обеспечения когерентности кэш-памяти.
Для обеспечения возможности прогона процессорных трасс был написан парсер, позволяющий привести транзакции, описанные в файле трассы, к виду, позволяющему использовать транзактор для передачи данных в систему.
Для проведения параметризуемых транзакций был разработан простой язык, позволяющий описание транзакций в простой мнемопичной форме преобразовывать в формат трасс, снимаемых с процессора в реальной системе. Таким образом, задача свелась к первой и не потребовала написания дополнительного кода для генератора нагрузки.
Для решения задачи генерации случайной нагрузки был разработан параметризуемый генератор. Параметрами можно задавать вид транзакций, диапазон используемых адресов и параметры распределения задержек между транзакциями.
Кроме того, была разработана библиотека драйверов различных устройств, включающая в себя драйвера SCSI, Ethernet, параллельного порта, PCI устройства, SBus устройства и т,д. Работа части из них рассмотрена выше, при описании имитаторов периферийных устройств. Все схемы обладают большим количеством параметров и позволяют создавать разнообразные тесты с акцентом на решение определенных задач.
Как было замечено выше, архитектурная особенность ВК такова, что при начале работы управление передается нулевому процессору, в на нем же лежит ответственность за начальную инициализацию системы. Поэтому генератор нагрузки, обслуживающий нулевой слот, отличается от всех прочих. По окончанию процедуры начальной установки он отрабатывает процедуру инициализации. В процессе отработки данной процедуры происходит программирование системных контроллеров (MSI, ЕМС и MPI), настройка механизма прерываний и, в случае необходимости, таймера. Также на этом генераторе лежит ответственность за инициализацию механизма виртуальной памяти, состоящую в размещении таблицы трансляций адресов в памяти и передаче точки входа в эту таблицу системным контроллером. На данный момент сама таблица формируется вручную, но в дальнейшем планируется проводить автоматическую генерацию таблицы процедурой начальной инициализации, в зависимости от конфигурации системы. Еще одной архитектурной особенностью системы является то, что в любой момент времени прерывание может получать лишь один процессор из четырех. Так как, в отличие от реальной системы, в модели может возникнуть необходимость обработки прерываний сразу несколькими процессорами, то в нулевом генераторе была реализована схема распределения прерываний. По умолчанию все прерывания отправляются в нулевой процессор. В зависимости от конфигурации системы, нулевой процессор перенаправляет прерывание тому процессору, который его ожидает, В обязанности любой процедуры обработки прерываний входит восстановление нулевого процессора как цели всех прерываний. Конфигурации, в которых одно прерывание требуется сразу нескольким процессорам, считаются некорректными.
Замена части тестируемых устройств эквивалентным кодом
Работа сервисной части модели обычно занимает небольшую часть от работы всей модели системы (обычно 10-20%). Таким образом, выигрыш от ускорения работы сервисной части весьма невелик. Основная часть времени работы модели уходит на обработісу описаний тестируемых устройств. И в большинстве ситуаций замена описаний усіройств высокопроизводительной моделью невозможна, так как необходимо использовать отладочные средства языка описания аппаратуры для анализа и коррекции самих описаний. Но в ряде случаев такая замена вполне допустима.
Во-первых, при отладке определенного устройства все прочие можно заменить высокопроизводительными аналогами, так как их анализ при помощи средств отладки языка описания аппаратуры проводиться не будет. Во-вторых, при проведении статистических тестов или тестов производительности допустима замена большинства устройств их высокоскоростными аналогами.
Несмотря на то, что ускорение посредством замены части устройств их аналогами, описанными на высокопроизводительных языках, возможно лишь в частных случаях, пренебрегать такой возможностью нельзя. Имеется два варианта получения аналога описания устройства на языке высокого уровня.
Первый - параллельное описание устройства сразу на двух языках. Недостатки этого метода очевидны. Во-первых - сильно увеличивается время разработки, во-вторых - возникает проблема соответствия версий описания, особенно при интенсивной модификации кода, и, в-третьих, сложно создать полностью эквивалентные описания из-за сильного различия в языках программирования. Всех этих недостатков лишен второй способ - автоматическая генерация эквивалентного кода.
Задача автоматической генерации эквивалентного кода довольно сложна, но ее можно сильно упростить, если в качестве исходного кода брать не описание на языке описания аппаратуры, а промежуточный результат работы САПР - net list.
При проектировании с использованием ПЛИС net list создается на основе элементов, соответствующих внутренней структуре используемой микросхемы. Состав этих элементов может варьироваться в зависимости от типа выбранного ПЛИС-устройства, по в любом случае, количество их невелико, и рассчитан каждый из них на выполнение одной из элементарных функций. Следующие элементы присутствуют в обязательном порядке в любом ПЛИС-устройствс: Программируемый элемент, реализующий произвольную логическую функцию от нескольких переменных. Триггер. Элемент ввода/вывода. Элемент памяти.
Могут присутствовать также и другие элементы, такие как счетчик, делитель/умножитель частоты и т.д. В любом случае, функции, реализуемые каждым элементом, весьма просты и их реализация на языке высокого уровня не встречает никаких затруднений.
Таким образом, задача автоматической генерации эквивалентного кода устройств сводится к следующей: создание библиотеки описаний элементов на языке высокого уровня для каждого из используемых ПЛИС-устройств, создание лексического анализатора (парсера) для работы с net list4 ом, создание программы-генератора эквивалентного кода из соответствующих элементов библиотеки. Необходимо заметить, что при таком подходе нет необходимости в проведении лексического разбора исходного описания схемы, а вопрос эквивалентности полученного кода решается на уровне эквивалентности описания элементов, что, в силу их простоты, является несложной задачей [18].