автореферат диссертации по информатике, вычислительной технике и управлению, 05.13.05, диссертация на тему:Методы разработки и тестирования аппаратных потактовых моделей микропроцессоров на программируемых логических интегральных схемах

кандидата технических наук
Байда, Юрий Владимирович
город
Москва
год
2013
специальность ВАК РФ
05.13.05
цена
450 рублей
Диссертация по информатике, вычислительной технике и управлению на тему «Методы разработки и тестирования аппаратных потактовых моделей микропроцессоров на программируемых логических интегральных схемах»

Автореферат диссертации по теме "Методы разработки и тестирования аппаратных потактовых моделей микропроцессоров на программируемых логических интегральных схемах"

УДК 004.318

На правах рукописи

Байда Юрий Владимирович

Методы разработки и тестирования аппаратных потактовых моделей микропроцессоров на программируемых логических интегральных схемах

05.13.05—Элементы и устройства вычислительной техники и систем управления

АВТОРЕФЕРАТ диссертации на соискание учёной степени кандидата технических наук

з 1 ОКТ 2013

Москва 2013

005536195

Работа выполнена на кафедре микропроцессорных технологий Московского физико-технического института (государственного университета).

Научный руководитель:

Бутузов Александр Валерьевич

кандидат технических наук, руководитель подразделения по разработке микроархитектуры ЗАО «Интел А/О»

Официальные оппоненты:

Топорков Виктор Васильевич

доктор технических наук, профессор, заведующий кафедрой вычислительной техники НИУ «Московский энергетический институт»

Груздов Фёдор Анатольевич

кандидат технических наук, начальник отдела разработки высокопроизводительных микропроцессоров ЗАО «МЦСТ»

Ведущая организация:

ОАО «Институт точной механики и вычислительной техники им. С. А. Лебедева»

Защита состоится 27 ноября 2013 года в 15:00 на заседании диссертационного совета Д409.009.01 при ОАО «Институт электронных управляющих машин им. И. С. Брука» по адресу: 119334. г. Москва, ул. Вавилова, д. 24.

С диссертацией можно ознакомиться в библиотеке ОАО «Институт электронных управляющих машин им. И. С. Брука».

Автореферат разослан 23 октября 2013 года.

Учёный секретарь

диссертационного совета

кандидат технических наук, профессор

Красовский В. Е.

Общая характеристика работы

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

Для измерения производительности проектируемого микропроцессора традиционно используются программные сиыуляторы, которые при достаточной точности обладают очень низкой скоростью, моделируя порядка одной тысячи команд в секунду реального времени.

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

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

Результаты исследований, опубликованных "в современной литературе, свидетельствуют о том, что существенного (па 2-3 порядка) повышении скорости моделирования без потери точности можно достичь реализацией ио-тактового симулятора на программируемых логических интегральных схемах (ПЛИС).

Поскольку конфигурация вентильной матрицы ПЛИС, в которой реализован симулятор, в отличие от прототипа, не должна повторять в точности конечную электрическую схему микропроцессора, а только моделировать её поведение и временные характеристики, то разработчик модели получает ряд преимуществ, недоступных разработчику прототипа. Например, симуляция одного такта моделируемого микропроцессора в этом случае может выполняться за несколько тактов ПЛИС.

Тем не менее, использование ПЛИС затруднено низким уровнем абстракции традиционных языков описания аппаратуры, гораздо более длительным циклом разработки по сравнению с разработкой программного обеспечения, следовательно, наличие эффективной методологии разработки является ключевым фактором успеха, что говорит об актуальности исследования.

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

Предмет исследования — методы разработки и тестирования потакто-ных моделей микропроцессоров

Цель исследования — построение эффективных методов разработки и тестирования аппаратных потактовых моделей микропроцессоров па ПЛИС, позволяющих добиться без потери точности существенного повышения скорости моделирования при низкой сложности разработки.

Для достижения цели исследования решаются следующие задачи: исследование существующих способов повышения скорости потактовых моделей микропроцессоров и их классификация; исследование особенностей применения ПЛИС для потактового моделирования микропроцессоров, позволяющих снизить трудоёмкость по сравнению с разработкой прототипа;

— разработка эффективного метода разработки аппаратных потактовых симуляторов микропроцессоров на ПЛИС;

разработка метода и системы автоматизированного тестирования аппаратных потактовых симуляторов микропроцессоров на ПЛИС; апробация разработанных методов и средств для разработки потактового симулятора современного многоядерного микропроцессора для подтверждения результатов исследования.

Научная новизна исследования определена решением поставленных задач и заключается в следующем:

- проведён анализ и предложена классификация способов повышения скорости потактовых моделей микропроцессоров, включая: сэмплинг, абстрагирование, распараллеливание и применение ПЛИС;

■— выделены особенности применения ПЛИС для потактового моделирования микропроцессоров, позволяющие снизить трудоёмкость по сравнению с разработкой прототипа, за счёт того, что конфигурация вентильной матрицы не повторяет конечную электрическую схему микропроцессора;

разработан восходящий метод модульной разработки аппаратных потактовых симуляторов микропроцессоров на ПЛИС, отличительной особенностью которого является использование существующего программного потактового симулятора в качестве эталона, что позволяет существенно снизить трудоёмкость разработки;

-- разработан метод тестирования аппаратных потактовых симуляторов

микропроцессоров на ПЛИС, отличающийся тем, что тестирование и отладка модели возможны, начиная с самого нижнего уровня иерархии модулей;

— разработана система автоматизированного тестирования аппаратных потактовых симуляторов микропроцессоров на ПЛИС, включающая средства автоматической генерации служебного кода.

Методы исследования. Задача и способы повышения скорости потактовых симуляторов микропроцессора рассматривались с позиций системного анализа и синтеза. При создании методов разработки и тестирования потактовых симуляторов на ПЛИС были применены теория графов и теория множеств. Для разработки автоматизированной системы тестирования использовались методы объектно-ориентированного программирования.

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

Разработанные методы и средства были внедрены »экспериментальный комплекс предварительного проектирования микропроцессоров на сверхбольших интегральных схемах ЗАО «Интел А/О».

Теоретические исследования, связанные с разработкой моделей микропроцессоров, легли в основу разделов лекций курса «Основы программного моделирования ЭВМ» кафедры микропроцессорных технологий МФТИ (ГУ).

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

— 53-й Научной конференции МФТИ «Современные проблемы фундаментальных и прикладных паук», Москва, 2010;

— Международной молодёжной научной конференции «XXXVII Гагарин-скис чтения», Москва, 2011;

— XI Международной научно-практической конференции «Фундаментальные и прикладные исследования, разработка и применение высоких технологий в промышленности», Санкт-Петербург, 2011;

— Международной молодежной научной конференции «XXXVIII Гага-ринские чтения», Москва, 2012;

— XIII Международной научно-практической конференции «Современные проблемы гуманитарных и естественных паук», Москва. 2012,

— Всероссийском молодёжном конкурсе научных работ по современным проблемам фундаментальных и прикладных паук, Москва, 2013.

Публикация результатов работы. Основные результаты работы отражены в 10 публикациях, в том числе: три статьи опубликованы в изданиях, входящих в Перечень ВАК, и две статьи —в зарубежном издании.

Структура и объём работы. Диссертация состоит из введения, пяти глав, заключения и списка литературы, насчитывающего 145 наименований. Работа изложена на 131 страницах, содержит 31 рисунок и 12 таблиц.

Содержание работы

Во введении обоснована актуальность темы диссертационной работы, указаны цель и задачи исследования, научная новизна и практическая значимость исследования, описана структура диссертации.

D первой главе рассматриваются задача моделирования микропроцессоров, классификация симуляторов, рассматривается проблема повышения скорости программных потактоных симуляторов и анализируются существующие способы её решения.

Симулятор (англ. simulator)— это некоторая реализация конкретной имитационной модели микропроцессора. К основным характеристикам симуляторов микропроцессоров в настоящей работе относятся:

1) скорость — количество моделируемых тактов в секунду реального времени (Гц) или команд в секунду реального времени (к/с.);

2) точность степень соответствия снмулятора объекту моделирования;

3) сложность измеряется в количестве строк исходного кода или количестве человеко-часов, затраченных на разработку снмулятора.

На разных этапах маршрута проектирования микропроцессоров применяются различные виды симуляторов, обладающие различной точностью и, как следствие, скоростью (см. рис. 1). Функциональный симулятор (англ. functional simulator) применяется на этапе разработки архитектуры системы команд (англ. instruction set architecture) микропроцессоров для проверки корректности его работы и имеет высокую скорость моделирования (точка А).

На этапе разработки микроархитектуры требуется точное определение параметров узлов микропроцессоров, влияющих на его производительность и энергопотребление, для чего применяется потактовый симулятор (англ. cycle-nccuratc simulator). В таком симуляторе моделируемое состояние расширяется микроархитектурными атрибутами, что приводит к существенному уменьшению скорости моделирования (точка В).

С »о рос'», «/с

ИЛ

10«

А

о ;

Функциональный • симулятор

D

. — о

Прототип на ПЛИС

6° Потакто«ый симулятор

С О

RTL-симулятор

Архитектурно*

Микрздриитотураый

Логический

Этапы Mjpujpytj ' прогоироипия

Рис 1 Скорости различных npoi раммиых (О) и аппаратных (| !) моделей, применяющихся на различных зтапах маршрута про«ктиро«ания микропроцессора

Непосредственно пе|)СД стоном производства микропроцессоров требуется логически отлаженное описание аппаратуры на уровне регистровых передач (англ. register transfer level, RTL). Для отладки этого описании используются RTL-симуляторы (точка С) и прототипы на ПЛИС, которые позволяют повысить скорость ja счс-г применения апнарат>'ры (точка D).

Однако па мик|ЮАрхнтрктур|1ом этапе RTL-опигянне. пеобхинипч ня применения прототипов, отсутствует Таким образом, существует техничесюи-щмтиаорсчис между низкой гко|югтью п(>огряммиых нотактоных с нмулито|мв. используемых па данном этапе, и необходимой точностью ( точка Е).

Существующие способы повышения скорости мотактоных симуляторов можно ра:«делить на четыре оснонные группы В тнбч I нрннгленм пример», реализаций способов из каждой группы с их основными характеристиками

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

Абстрагированием называются подходы, направленные на модификацию модели и уменьшение степени ее детализации Примером такой модификации может служит)) iie]>excyi от фиксации каждого такта к фиксации ощхгделепнмх событий (например, попадание или н)х>мах при обращении в кэш-память).

Таблиці і

Способы увеличения скорости программных потлктовых сииуляторов

Реалиіация Архитектуры Конвейер Ускорение Вносимая ошибка Сложность

Средн Макс

1. Слиплши

SMARTS Alplut. PISA Полный 33,8 0,6% 2.7% Низкая

SnnPoinl Alpha Полный 19.6 з.гк 14,3% Низкая

2 Абстртироаанис

InUTvwl x86, Pow rPC Схематично 8,5 4.6% 11% Низкая

Air.Silii-JIT AllCotnpucI Событийный 3.8 1.4% 5% Низкни

CMPSim xWí Только кіт 435 4% 17% Низкая

3. Раггшра.<иг.шппчис

SlackSun PISA Полный 7,8 1,8% 3,9% Низкая

Grnphitr x86 Полный 5,1 3.4% 7,6% Низкяи

DAUSIM MIPS Полный 4,6 8% 7 Нижня

4 Применение ПЛИС

FAST xRfi Полный 4 — Выгоккм

ПАМР GuJil SPARC V8 Только к»ш 15 - - Средняя

НАмін АІрІм, MIPS Полный 2(10 Высокая

Примечание Vímoptxi* » *носимал ошибка прлледепы относятыыю нслолыушых «горами jrj/кмм

Распараллеливание заключается н параллельном исполнении коди си-му.мгорн. например, на иычииипелыкш кластере. Поткговыс симуля горы обладают высокой степенью параллелизма, однако распараллеливание не даёт же іагмоги ускорения и 1-і« существенных накладных расходом на барьерную пшх|юші:»нлшо, которую нужно производить каждый моделируемый такт. Если нрон люлиті. синхрони зацию не каждый медальный такт, а с некоторым интервалом (англ. slack), то возникает потеря точности.

Таким образом, первые три группы способов ускорения потактовых имитационных моделей, несмотря на низкую сложность реализации, решают проблему ни:ікой скорости за счёт уменьшения точности моделирования.

Наконец, четвёртая группа решений предполагает применение ПЛИС для уско|№пия моделирования Использование ПЛИС позволяет Э(|х1>сктнвно задействовать массовый параллелизм модели и решить проблему синхронизации

задач путем непосредственной передачи данных между аппаратными блоками исполняющими нсмшиснмые їздячи, получая уско|№ііие на 2-3 іюрялкі 0< < потери точности.

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

Следует учесть, ЧТО увеличение времени разработки снмулятора может свести на нет преимущества модели на ПЛИС', связанные с сокращением времени поведения экспериментов, следовательно, использование эффективных методов разработки и тестировании является ключевым фактором успеха

Во второй главе рассматриваются особенности применении ПЛИС как снмулятора, позволяющие снизить сложность по сравнению с разработкой щютогнпа, вводится модельное представление, приводятся сведения о применяемом в работе высокоуровневом языке описания аппаратуры ВІнекрес. При применении ПЛИС для моделирования микропроцессора конфнгу-

раІІІІЯ ВСНТИЛЫЮЙ МаТ]>1П(Ы І1Є ПОВТОРИТ В ТОЧНОСТИ Конечную (іеКТрН'Ц. кую

схему микропроцессора, а только моделирует сё поведение и временные хи-|мистсристики, я» счёт чет существенно снижается СЛОЖНОСТЬ модели ПО СраВ нению с прототипом.

В частности, однн такт моделируемого мнкрощищессора выполняется 3)1 несколько тактов ПЛИС, и характеристика КМ II (англ ГРСА-суг1> я-1п-ттісі-сусіез тіхо) показывает среднее количеству тактов ПЛИС, заграчинае-мых на моделщхшапие одного такта микропроцессора

Ти'Хищ»

Е Такты^пИС

РМН = —-, (])

Тактымодел»

иткуда ИШу'Ш'М

Г _ /плис

;моа"' РМИ к '

и

,рс _ /мад<л> _/плис__. .

II Ьм^ - СРІШтт = СРІмо^. х ГМІГ

Дальнейшее снижение сложности модели в данной работе происходит за счёт её разделения на отдельные модули, обычно соответствующие узлам

микропроцессоров. Множество состоя ни Л модели при этом декомпозируется на состояния п отдельных модулей.

S = S„„ х Smi х ... х S„u, п Є N. (4)

Модуль не опирается на такт ( ИІІХ|ЮСИГНЯЛа моделируемого МИКроЩК»-цічсора, и вычислении внутри него могут быть рассмотрены как бесконечно быгтрые Отсчет тактов модели осуществляется введением задержки на плре-дачу «сообщений между модулями в так называемых портах.

Порт представляет собой очередь сообщений определённого формата, которые ііс|и-діііот( я мсж/'іу модулями. Параметрами порта являются:

задержка (англ. lutciicy) количество модельных тактов, требуемых па неї хламу сообщения через порт;

пропускная способность (англ. bandundth) максимальное количество сообщений, пе|>одаваемых через порт ча одни такт модели.

Пользуясь терминами теории графов, модель в данном представлении, именуемом кратко МП-представлением (от слов «модуль» и «порт»), образует ориентированный взвешенный мультиграф

С. = <М, Р), т, € М, V, - (т.,,иht,lj,bj) Є Р, (5)

где вершинами пі, являются модули модели, рсбр<ши порты, весями ребер lj fc No задержки соответствующих портов, а весами bj Є N пропускные енособности (см. рие. 2).

Граф модели О

m, : Выбор ка —СО— "'2 : Декодирование -ш- —Щ— »1,: Исполнение -са- »л, : Запись

Порт п ■ (т,, ті,1,1) Рік. 2. МП-представление простейшего конвейера микропроцессор»

Важнейшим свойством МП-иредставлення модели является го, что любые Вза11МОДей(ТВ11Я между модулями П|ЮИСХОДЯТ только через порты, что позволяет рассматривать модули независимо друг от друга.

Традиционно разработка уст|юйств на ПЛИС осуществляется с применением языков описания аппаратуры низкою уровня, таких как УІШЬ,

10

Verilog и SystemVerilog. Эти языки дают разработчикам полный контроль над разрабатываемой аппаратурой, но их низкоуровневый код сложен и негибок.

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

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

В третьей главе предлагается и обосновывается восходящий метод разработки аппаратных потактовых симуляторов микропроцессоров па ПЛИС. В тексте диссертации основные этапы разработки по предложенному методу подробно описаны па примере модули кэша третьего уровня.

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

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

Разработанный метод был реализован в работе на примере ускорения существующего программного снмулятора, разработанного в инфраструктуре Asim, с использованием инфраструктуры HAsini для создания снмулятора на ПЛИС, однако может быть применён и при использования других су шествующих или вновь разрабатываемых инфраструктур, использующих МП-представленис.

Чтобы использовать преимущества ПЛИС для быстрого моделирования аппаратуры, а инструментальной ЭВМ для обработки редких, но сложных по реализации в ПЛИС событий, разрабатываемая модель создаётся гибридной: временная часть снмулятора располагается в ПЛИС, а функциональная, уже обладающая достаточной скоростью, в инструментальной ')НМ

Снижение трудоёмкости разработки гибридного снмулятора осу тис шляется за счёт использования так называемой виртуальной платформы (англ. viril

tuai platform) — стандартизированного набора высокоуровневых интерфейсов, анпаратио-пезависимой в отличие от физической платформы, специфичной для конкретной ПЛИС.

Виртуальная платформа обеспечивает разработчика средствами для сбора статистики, отслеживания событий и вывода отладочной информации, а также предоставляет набор служб, абстрактных устройств, иерархию памяти и протокол коммуникации для различных физических платформ. Основной ин терфейс между симулятором и платформой представляет асинхронный протокол RRR (англ. remote request response).

Первый этап разработки аппаратного симулятора по предлагаемому методу заключается в изучении исходного кода одного из модулей эталонной программной модели. На этом этапе составляется список входных и выходных портов модуля, определяются их имена, задержки, пропускные способности и форматы сообщений, изучается алгоритм работы модуля.

На втором этапе создаётся прототип модуля на языке Bluespec, содержащий все входные и выходные порты, а также вспомогательные компоненты, предназначенные для тестирования разрабатываемого модуля. Вспомогательные компоненты могут создаваться автоматически с помощью средств генерации кода и включают специальный служебный модуль.

В функции служебного модуля входит создание мнимого окружения для тестируемого модуля, чтение эталонных последовательностей сообщений входных портов из инструментальной ЭВМ и передача их в ПЛИС, а также сохранение последовательностей выходных сообщений модуля и передача их на инструментальную ЭВМ.

На третьем этапе создаётся описание модуля на языке Bluespec. Для этого может использоваться как исходный код программного симулятора, так и документация с описанием работы модуля, наличие которой является желательным, по не обязательным. Написание алгоритма работы модуля является самой трудоемкой частью разработки: разработчик должен не только понять реализацию алгоритма на языке С++ в эталонной модели, но и написать эквивалентную реализацию на языке Bluespec.

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

Кроме того, стандартная библиотека языка Bluespec была дополнена собственной библиотекой компонентов, с помощью которых шаг написания модуля существенно упрощался. Разработанная библиотека включила в себя шаблоны односвязного и двус.вязного списков, кэша, алгоритмы вытеснения из кэша и др.

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

Наконец, пятым этапом разработки является проверка модуля с использованием полученных тестовых последовательностей. Для этого к тестируемому модулю подключается служебный модуль, который считывает тестовые последовательности, полученные из эталонной модели, и записывает сообщения во входные порты тестируемого модуля. Затем выходные сообщения тестируемого модуля сравниваются с эталонными.

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

С формальной точки зрения, учитывая уравнение (4), восходящий способ разработки и модульное тестирование означает, что разработчику необходимо проверить ТОЛЬКО |S1Hi j СОСТОЯНИЙ ДЛЯ каждого отдельного модуля И Yl'i=0 l^nijl СОСТОЯНИИ ДЛЯ всех модулей вместо |£m, X Sm.2 X ... X SnlJ = ПГ=0 l^'fil со~ стояний в случае тестирования полной системы.

Для проведения тестирования к разработанному модулю подключается специальный служебный модуль (англ. unit stub), который управляет сбором статистики, подаёт на входные порты последовательность сообщений из файла (журнала), сохраненного ранее при запуске эталонной модели, а также сохраняет выходные отклики модуля в отдельные файлы по портам (см. рис. 3).

В дальнейшем выходные последовательности из эталонного и разработанного модулей проверяются на эквивалентность, причём сравнение происходит не в ПЛИС, а в инструментальной ЭВМ — там же, где хранятся тестовые последовательности сообщений. Это обусловлено, в первую очередь, ограниченными

Рис. З Структура модели для тестирования отдельного модуля

ресурсами памяти ПЛИС: двоичный файл работы модифицированного порта может занимать несколько гигабайт

Работ» тестируемого модуля считается корректной, если на заданном множестве тестовых последовательностей двоичные трассы выходных сообщений тестируемого мономы «»впадают с трассами выходных сообщений модуля эталонной модели.

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

Аіггоматіиированніїя система тестирования существенно упрощает процесе проверки корректности работы модуля, например, автоматизируя еозда-нне служебной» модуля подключаемого к тестируемому модулю или проиэ-полыюй комбинации модулей разрабатываемого симулитора.

Система тгеггщювшшя автоматизирует запуск как отдельного теста, так н большого набора тестов. Отдельные тесты позволяют разработчику проверить алгоритмы работы написанного модуля. большие наборы тестов П|хінерить функциональность модуля в различных сценариях, собрать статистику |>аботы модуля и измерить скоіюсть работы симулягора

14

Ч..Г-- •-- •

Таблиці 2

Сравнение характеристик тестового микропроцессора с аналогами

Характеристика Тестовый МП Intel Соте HAsim siro-outorder RAMP Gold

Число поток»» 16 2 1 1 1

Число АЛУ 4 4 4 4 1

К ми команд M кБ 32 кБ 16 кБ 64 кБ 32 кБ

К «ii днііііі.іх 16 кБ 32 кБ 16 кБ 64 кБ 32 кБ

Кэш 2-го уровня 12Я кБ 2.KÏ кБ 256 кБ 8 МБ К МБ

Кэш 3-ГО у|юнии 2 МБ 2 МБ - —

Разработанные средства генерации кода позволяют автоматически получат!» исходный код для следующей функциональности:

сериализацин выходных сообщений модулей программной и аппаратной моделей;

десериалн зация входных сигналов модулей программной модели; чтение тестовых пооледопатсльиостей на сто|юне инструментальной ЭВМ, их передача в ПЛИС;

прием выходных последовательностей m ПЛИС и их запись ня гто|х>нг инструментальной ЭВМ; управляющая логика служебного модуля. Инфраструктура разработанной системы тестирования хокали:<онаиа, позволяя оставить код непосредственно модулей незатронутым, что делает разработанный метод тестирования масштабируемым и иизкозатратиым но сравнению с традиционными хн-годамн тестирования, в котсрых правкам подвергается код симулятора

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

тестовый микропроцессор), характеристики которого приведены в табл. 2, а иерархия модулей на рис. 4.

В качестве аппаратной платформы для |>еализацин симулятора в настоящей работе был выбран инструментальный модуль Xilinx MLG05 lia базе ПЛИС Virtex-6 LX240T ёмкостью 241 тыс. логических ячеек. В качестве инструментальной ЭВМ использовалась рабочая станция HP Z800 на базе двух процессоров Intel Xeon X5G70, работающих на тактовой частоте 2,93 ГГц.

? I

4

Учдето« подготовил »оиаид

Н—

"ЯдроО!

Выборка команд

Кэш команд

Декодирование команд

-1 1 ~ Очередь

декодированных команд

Упорядочивание обращений к памяти

нть

Кэш данных

Кэш третьего уровня (разделяемый)

Задержи ОЗУ (50 не х 2.9 ГГц) Рис. 4. Структура временной части разрабатываемой модели мшролроцессора

Этапы логического синтеза модели выполнялись н системе автоматизированного проскпцювания Synopsys Synplify Pro F-2Ü11.09. а этапы физического синтсза, размещения и трассировки п системе Xilinx ISE 13.1.

Основной ме|юП сложности модели, предлагаемой в данной работе, является мера количества строк исходного кода, написанного вручную (без помощи автоматических генераторов кода), без учета комментариев и пустых строк. Как ННД1Ю из рис. 5, по количеству строк кода, написанных вручную, аппаратная модель, разработанная в рамках предложенного метода, всего в 1,4 pata сложнее программной модели. Оценка количества ст|кж описания тестового МП на языке Veri log составляет 138 тыс., что почти в 10 раз больше.

■ Написано »ручную ■ Получено автоматически

«0000

30 ООО

20000

10000

■"»■и 1*0

ТестоаиА МП Тес'оамй МП Intel Coi* (С«а) H*»im IBiimpecl (С««) (Blueipecl

nrrvoutwdei RAMP Gold (С».I (SyttemVeiilog)

Рис. 5. Сравнение количества строк исходного кода различных симуляторов

Для оценки эффективности процесса разработки в рамках данного исследования подложено использовать модель издержек разработки С0С0М0 II (англ. corutrvctive cmt modr.l), в котороft п|юекты делится на три класса: органические (разработка с мягкими ограничении), нолуразделемные (смешанные ог]шничения), встроенные (множество жёстких оі°|>аничеііий).

Трудоёмкость разработки Е (англ. effort) в человеко-месяцах как функция размера іцюекта S (англ. яге) в тысячах строк кода вычисляется в рамках применяемого нами базового уровня модели но формуле Е = а х S6, где коэффициенты и и b определяются классом п|юекта.

Рассматривая іцхіект разработки аппаратного нотактового снмулятора микі>опроцсесо|>а как встроенный, получим следующую оценку трудоёмкости:

Е = и х S* = 3,G x 18,1і м = 110 человеко-месяцев.

(6)

Таблица З

Скоростные характеристики разработанного аппаратного симулятора

Модуль FMR /модель. кГц Скорость, кк/( : Ускорение

Кэш команд 90 733 2 933 367

Выборка команд 123 537 2 140 268

Декодирование команд 19 3 474 13 895 1737

Очередь декодированных команд 76 868 3 474 434

Участок подготовки команд 429 154 615 77

Исполнение команд 14 4 714 18 857 2 357

Планирование команд 92 717 2 870 359

Участок исполнения команд 98 673 2 694 337

Кэш данных 20 3 300 13 200 1650

Кэш второго уровня 20 3300 13 200 1050

Кэш третьего уровня 14 4 714 18 857 2 357

Упорядочивание обращений к памяти 73 904 3 616 452

Подсистема памяти 172 384 1535 192

Интерфейс функциональной части 339 195 779 97

Вся модель 482 137 548 68

Примечание 1. Частота ПЛИС во всех моделях равна 66 МГц Примечание 2. Ускорение вычислено на основании частоты программной модели, равной 2 кГц.

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

Код служебного модуля, полученный автоматически, гораздо проще кода логики самой модели, поэтому для оценки по модели СОСОМО II были взяты коэффициенты для органического класса:

Е = а х й6 = 2,5 х 20,81'05 = 60 человеко-месяцев (7)

Таким образом, средства автоматической генерации кода позволили сэкономить 60 человеко-месяцев, в то время как разработка самих средств генерации заняла примерно 3 человеко-месяца.

Полученные скоростные характеристики разработанного аппаратного си-муляторя мик]юп|юцсссора, приведённые в табл. 3. показывают, что при средней скорости работы эталонного программного симулятора, равной 2 кГц, достигнуто увеличение скорости МОДСЛИ|ЮВЯНИЯ в 68 раз (см. рис. б).

10 000 } 100-яоо

Тестовый МП Т«то«мб МП Intel Со<* (С*<) HAum nmoutofder RAMP Gold (НШ»М} 1С**) (Bluespec) (См) ISyiterrVenloj)

Рис 6. Сравнение скоростей различных аппаратных и программных симулятороа

Опенка логической сложности прототипа тестового микропроцессора, откованная на мясштябн|юшшин данных по (функциональным блокам iiii.no-гичных проектов, даёт значение в 1,9 млн логических ячеек, что примерно в 11 раз больше, чем логическая сложность разработанной модели (см. рис. 7).

10 ООО

1900

| ■

(■И. ■ , I 1 У У у

ТктмхАМП Тестоаыб МП Intel Core HAum um-outorder RAMP Gold

(модель) (прототм) (прототип) (модель) (прототип) (модель)

Рис. 7. Сравнение логической сложности различных моделей и прототипов

Относительно высокая скорость и низкая логическая сложность моделей HAsim. sim-outorder и RAM? Gold объясняется их более ниакой точностью, поскольку они разрабатывались и исследовательских целях.

19

Основные результаты и выводы работы

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

— предложена классификация способов повышения скорости потактовых моделей микропроцессоров, включая: еэмплинг, абстрагирование, распараллеливание н применение ПЛИС;

— показано, что первые три вида способов решают проблему низкой скорости за счёт уменьшения точности моделирования, а применение ПЛИС позволяет существенно увеличить скорость моделирования без потери точности, но отличается высокой сложностью.

2. Выделены особенности применения ПЛИС для потактового моделирования микропроцессоров, позволяющие снизить трудоёмкость по сравнению с разработкой прототипа, а именно:

— показаны преимущества разделения тактов синхросигнала ПЛИС и моделируемого микропроцессора;

— предложено применять МП-представление, позволяющее единым образом описывать как программные, так и аппаратные модели; предложено использовать для описания аппаратуры язык высокого уровня Вкеярес Зуз1етУеп1оц.

3. Разработан восходящий метод модульной разработки аппаратных потактовых симуляторов микропроцессоров на ПЛИС с использованием существующего программного потактового симулятора в качестве эталона, который:

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

— позволяет существенно сократить трудоёмкость разработки;

— допускает независимую работу коллектива разработчиков.

4. Разработаны метод и система автоматизированного тестирования аппаратных потактовых симуляторов микропроцессоров на ПЛИС, включающая в себя средства автоматической генерации кода, что позволяет:

— тестировать и отлаживать модель на всех этапах разработки, в отличие от методов, когда тестирование и отладка возможны только после создания полной модели;

— существенно упростить процесс тестирования симулятора за счёт автоматизации большинства операций;

— исключить ручное написание служебного кода.

5. Проведена апробация разработанных методов и средств для разработки потактового симулятора четырёхядерного суперскалярпого микропроцессора с внеочередным исполнением команд, которая показала следующие результаты:

— трудоёмкость разработки в 3 раза шоке по сравнению с данными модели издержек СОСОМО II;

— скорость моделирования увеличилась в 68 раз по сравнению с эталонным программным потактовым симулятором;

использование логических ресурсов ПЛИС в 11 раз ниже но сравнению с оценкой логической сложности прототипа.

Список публикаций по теме исследования

1. Байда Ю. В. Программно-аппаратный симулятор процессора с векторным счетчиком инструкций на базе программируемых логических интегральных схем // Труды 53-й научной конференции МФТИ «Современные проблемы фундаментальных и прикладных наук». Часть I. Радиотехника и кибернетика. - Т. 1. - М.: МФТИ, 2010. - Ноябрь. - С. 80-81.

2. Байда Ю. В. Переход от программной имитационной модели микропроцессора к иотактовому симулятору на базе программируемой логики // Сборник статей XI Международной научно-нрактичеекой конференции «Фундаментальные и прикладные исследования, разработка и применение высоких технологий в промышленности» / Под ред. А. П. Кудинова. — Т. 3: Высокие технологии, образование, промышленность. — СПб.: Издательство Политехнического университета, 2011. —Апрель. — С. 62-64.

3. Байда Ю. В. Применение программного потактового симулятора микропроцессора при разработке программно-аппаратной имитационной модели па базе программируемых логических интегральных схем // Научные труды Международной молодёжной научной конференции «XXXVII Гага-ринские чтения». - Т. 4. - М.: МАТИ, 2011. - Апрель. - С. 35-36.

4. Байда Ю. В. Задача и способы повышения скорости потактового симулятора микропроцессора // Сборник статей XIII Международной научно-практической конференции «Современные проблемы гуманитарных и естественных наук». — Т. 1. — М.: Спецкнига, 2012. — Декабрь. — С. 97-99.

5. Байда Ю. В. Опыт разработки аппаратного потактового симулятора микропроцессора с височс1)сдным исполнением команд на базе программируемой логики // Научные труды Международной молодёжной научной конференции «XXXVIII Гагаринские чтения». - Т. 4. - М.: МАТИ, 2012. -Апрель. — С. 58-60.

6. Байда Ю. В. Особенности применения программируемых логических интегральных схем для имитационного моделирования микропроцессоров // Инновации и инвестиции. — 2013. — № 6. — С. 146-149.

7. Байда Ю. В. Повышение качества проектных решений при разработке микропроцессоров путем радикального увеличения скорости имитационного моделирования // Качество. Инновации. Образование. — 2013.— № 11.

8. Методология перехода от программной потактовой модели микропроцессора к аппаратному симулятору на базе программируемой логики / Ю. В. Байда, А. В. Бутузов, А. Г. Ефимов, М. С. Цветков // Труды Московского физико-технического института (государственного университета). — 2012. - Т. 4, № 3 (15). - С. 114-122.

9. Baida Yu., Butuzov A., Efimov A. Method of converting a microprocessor software performance model to FPGA-based hardware simulator // Computer science and engineering. — 2013. — Vol. 3, no. 2. — P. 35- 41.

10. Method and system for automated unit-level testing of FPGA-based cycle-accurate microprocessor simulator using software simulator as a golden model / Yu. Baida, A. Lechenko, A. Efimov, A. Butuzov // Computer science and engineering. — 2013. — Vol. 3, no. 3. — P. 51-55.

Подписано в печать:

21.10.2013

Заказ № 8933 Тираж -100 экз. Печать трафаретная. Типография «11-й ФОРМАТ» ИНН 7726330900 115230, Москва, Варшавское ш., 36 (499) 788-78-56 www.autoreferat.ru

Текст работы Байда, Юрий Владимирович, диссертация по теме Элементы и устройства вычислительной техники и систем управления

Московский физико-технический институт (государственный университет) Факультет радиотехники и кибернетики Кафедра микропроцессорных технологий

На правах рукописи

04201364019

Байда Юрий Владимирович

Методы разработки и тестирования аппаратных потактовых моделей микропроцессоров на программируемых логических интегральных схемах

Диссертация на соискание учёной степени кандидата технических наук

05.13.05 —Элементы и устройства вычислительной техники

и систем управления

Научный руководитель: кандидат технических наук Бутузов Александр Валерьевич

Москва 2013

Оглавление

Введение

1. Имитационное моделирование микропроцессоров

1.1. Задача имитационного моделирования............

1.2. Сравнительный анализ видов симуляторов.........

1.2.1. Основные характеристики симулятора........

1.2.2. Интерпретирующий функциональный симулятор . .

1.2.3. Компилирующий функциональный симулятор . . .

1.2.4. Потактовый симулятор, управляемый трассой . . .

1.2.5. Потактовый симулятор, управляемый исполнением

1.3. Способы повышения скорости потактовых симуляторов . .

1.4. Выводы.............................

2. Применение ПЛИС для имитационного моделирования

2.1. Способы применения ПЛИС .................

2.2. Разделение модельного такта и такта ПЛИС........

2.3. Модельное представление...................

2.4. Язык описания аппаратуры Bluespec SystemVerilog.....

2.5. Существующие разработки..................

2.5.1. ProtoFlex........................

2.5.2. FAST...........................

2.5.3. RAMP..........................

2.5.4. HAsim..........................

2.6. Выводы.............................

3. Восходящий метод модульной разработки потактовых моделей микропроцессоров на ПЛИС

3.1. Основная идея метода.....................

3.2. Инфраструктура Asim.....................

4

10

10 13

13

14

15

16 18 22 26

28

28 30 33 38 40

40

41

42

43

44

45

45 48

3.3. Инфраструктура HAsim........................................52

3.4. Анализ исходного кода модуля................................56

3.5. Подготовка прототипа модуля ................................60

3.6. Создание аппаратного описания модуля......................61

3.6.1. Расширение библиотеки компонент....................65

3.6.2. Расширение функциональности портов ..............66

3.6.3. Мультиплексирование с разделением по времени . . 68

3.7. Подготовка тестовых последовательностей..................71

3.8. Тестирование модуля............................................71

3.9. Выводы..........................................................73

4. Метод и система автоматизированного тестирования потактовых моделей микропроцессоров на ПЛИС 75

4.1. Архитектура системы тестирования..........................75

4.2. Генерация тестовых последовательностей....................79

4.3. Генерация служебного модуля ................................84

4.4. Автоматическое тестирование..................................87

4.5. Использование времени ПЛИС................................88

4.6. Использование дискового пространства......................89

4.7. Использование процессорного времени........................89

4.8. Выводы..........................................................90

5. Апробация разработанных методов и средств 92

5.1. Тестовый микропроцессор......................................92

5.2. Инструментальный модуль Xilinx ML605 ....................95

5.2.1. Описание и технические характеристики............95

5.2.2. Физический канал гибридной модели ................98

5.3. Эффективность процесса разработки ............100

5.4. Скорость работы аппаратного симулятора .........104

5.5. Использование ресурсов ПЛИС................107

5.6. Выводы.............................111

Заключение 112

Литература 114

Введение

Актуальность темы исследования

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

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

Для численных экспериментов обычно используется специальная программная имитационная модель (симулятор) микропроцессора, разработка которой низкозатратна по сравнению с разработкой аппаратного прототипа, а достигаемая точность гораздо выше, чем у аналитических методов.

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

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

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

Результаты исследований, опубликованных в современной литературе [59,70,92,112], свидетельствуют о том, что существенного (на 2-3 порядка) повышения скорости моделирования без потери точности можно достичь реализацией потактового симулятора на программируемых логических интегральных схемах (ПЛИС).

Применение ПЛИС позволяет эффективно задействовать параллелизм низкого уровня (англ. fine-grained), степень которого в такого рода приложениях измеряется как минимум сотнями [129] и решить проблему синхронизации задач путём непосредственной передачи данных между аппаратными блоками, исполняющими независимые задачи.

Поскольку конфигурация вентильной матрицы ПЛИС, в которой реализован симулятор, в отличие от прототипа, не должна повторять в точности конечную электрическую схему микропроцессора, а только моделировать её поведение и временные характеристики, то разработчик модели получает ряд преимуществ, недоступных разработчику прототипа. Например, симуляция одного такта моделируемого микропроцессора в этом случае может выполняться за несколько тактов ПЛИС.

Тем не менее, использование ПЛИС затруднено низким уровнем абстракции традиционных языков описания аппаратуры, гораздо более длительным циклом разработки но сравнению с разработкой программного обеспечения, следовательно, наличие эффективной методологии разработки является ключевым фактором успеха, что говорит об актуальности исследования.

Объект и предмет исследования

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

Предмет исследования — методы разработки и тестирования потактовых моделей микропроцессоров.

Цель и задачи исследования

Цель исследования — построение эффективных методов разработки и тестирования аппаратных потактовых моделей микропроцессоров на ПЛИС, позволяющих добиться без потери точности существенного повышения скорости моделирования при низкой сложности разработки.

Для достижения цели исследования решаются следующие задачи:

— исследование существующих способов повышения скорости потактовых моделей микропроцессоров и их классификация;

— исследование особенностей применения ПЛИС для потактового моделирования микропроцессоров, позволяющих снизить трудоёмкость по сравнению с разработкой прототипа;

— разработка эффективного метода разработки аппаратных потактовых симуляторов микропроцессоров на ПЛИС;

— разработка метода и системы автоматизированного тестирования аппаратных потактовых симуляторов микропроцессоров на ПЛИС;

— апробация разработанных методов и средств для разработки потактового симулятора современного многоядерного микропроцессора для подтверждения результатов исследования.

Научная новизна исследования

Научная новизна исследования определена решением поставленных задач и заключается в следующем:

— проведён анализ и предложена классификация способов повышения скорости потактовых моделей микропроцессоров, включая: сэмплинг, абстрагирование, распараллеливание и применение ПЛИС;

— выделены особенности применения ПЛИС для потактового моделирования микропроцессоров, позволяющие снизить трудоёмкость по сравнению с разработкой прототипа, за счёт того, что конфигурация вентильной матрицы не повторяет конечную электрическую схему микропроцессора;

— разработан восходящий метод модульной разработки аппаратных потактовых симуляторов микропроцессоров на ПЛИС, отличи-

тельной особенностью которого является использование существующего программного потактового симулятора в качестве эталона, что позволяет существенно снизить трудоёмкость разработки;

— разработан метод тестирования аппаратных потактовых симу-ляторов микропроцессоров на ПЛИС, отличающийся тем, что тестирование и отладка модели возможны, начиная с самого нижнего уровня иерархии модулей;

— разработана система автоматизированного тестирования аппаратных потактовых симуляторов микропроцессоров на ПЛИС, включающая средства автоматической генерации служебного кода.

Методы исследования

Задача и способы повышения скорости потактовых симуляторов микропроцессора рассматривались с позиций системного анализа и синтеза. При создании методов разработки и тестирования потактовых симуляторов на ПЛИС были применены теория графов и теория множеств. Для разработки автоматизированной системы тестирования использовались методы объектно-ориентированного программирования.

Практическая значимость исследования

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

Разработанные методы и средства были внедрены в экспериментальный комплекс предварительного проектирования микропроцессоров на сверхбольших интегральных схемах ЗАО «Интел А/О».

Теоретические исследования, связанные с разработкой моделей микропроцессоров, легли в основу разделов лекций курса «Основы программного моделирования ЭВМ» кафедры микропроцессорных технологий Московского физико-технического института (государственного университета).

Апробация результатов работы

Результаты работы докладывались на всероссийских и международных научно-технических конференциях:

— 53-й Научной конференции МФТИ «Современные проблемы фундаментальных и прикладных наук», Москва, 2010;

— Международной молодёжной научной конференции «XXXVII Га-гаринские чтения», Москва, 2011;

— XI Международной научно-практической конференции «Фундаментальные и прикладные исследования, разработка и применение высоких технологий в промышленности», Санкт-Петербург, 2011;

— Международной молодёжной научной конференции «XXXVIII Гагаринские чтения», Москва, 2012;

— XIII Международной научно-практической конференции «Современные проблемы гуманитарных и естественных наук», Москва, 2012;

— Всероссийском молодёжном конкурсе научных работ по современным проблемам фундаментальных и прикладных наук, Москва, 2013.

Публикация результатов работы

Основные результаты работы отражены в 10 публикациях [1-7,15, 37,97], в том числе: три статьи опубликованы в изданиях, входящих в Перечень ведущих рецензируемых научных журналов и изданий, в которых должны быть опубликованы основные научные результаты диссертаций на соискание учёной степени доктора и кандидата наук, утверждённый Высшей аттестационной комиссией (ВАК) Министерства образования и науки РФ, и две статьи —в зарубежном издании.

Структура и объём работы

Диссертация состоит из введения, пяти глав, заключения и списка литературы, насчитывающего 145 наименований. Работа изложена на 131 страницах, содержит 31 рисунок и 12 таблиц.

В первой главе рассматриваются задача моделирования микропроцессоров, классификация симуляторов, рассматривается проблема повышения скорости программных потактовых симуляторов и анализируются существующие способы её решения.

Во второй главе рассматриваются особенности применения ПЛИС как симулятора, позволяющие снизить сложность по сравнению с разработкой прототипа, вводится модельное представление, приводятся сведения о применяемом в работе высокоуровневом языке описания аппаратуры ВЫеврес.

В третьей главе предлагается и обосновывается восходящий метод разработки аппаратных потактовых симуляторов микропроцессоров на ПЛИС. В тексте диссертации основные этапы разработки по предложенному методу подробно описаны на примере модуля кэша третьего уровня.

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

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

Глава 1.

Имитационное моделирование м и кроп роцессоров

1.1. Задача имитационного моделирования

Имитационное моделирование (англ. simulation) [11] широко применяется в настоящее время во всех областях науки и техники. В вычислительной технике широкое распространение имитационное моделирование получило в области разработки архитектуры и микроархитектуры ЭВМ.

Маршрут проектирования микропроцессора начинается с передачи разработчикам набора требований; например, спроектировать высокопроизводительный микропроцессор отечественной архитектуры «Эльбрус» [24] или архитектуры х8б [119,120], либо низкопотребляющий микропроцессор архитектуры ARM [71] или SPARC [12]. На основе этих требований формируется начальное представление о проектируемой системе.

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

Аналитические методы оценки, несмотря на свою простоту, обладают низкой точностью. Более того, для современных микропроцессоров как сложных систем невозможно создать модель, описанную аналитически [11]. С другой стороны, методы оценки с использованием аппаратных прототипов, напротив, имеют очень высокую точность, но недоступны на ранних этапах маршрута проектирования и слишком затратны [53].

Процесс проектирования микропроцессора носит итеративный характер: каждое исследование на имитационной модели приводит к небольшим изменениям критически важных параметров системы. Наконец, когда спецификация закончена, начинается дорогостоящий и длительный по времени процесс описания аппаратуры микропроцессора на уровне регистровых передач (англ. register transfer level, RTL) и следующие за ним этапы отладки и производства.

В зависимости от цели исследования имитационное моделирование может осуществляться на различных уровнях абстракции [16], причём существуют различные классификации таких уровней. В работе [10] представлена следующая классификация от высоких уровней абстракции к более низким уровням:

— системный,

— архитектурный,

— интегральных схем,

— регистровый,

— логических элементов,

— схемотехнический,

— кремниевый, —

согласно которой в настоящей диссертации рассматриваются уровни от регистрового и выше.

Симулятор (англ. simulator)—это некоторая реализация (как правило программная) конкретной имитационной модели микропроцессора. Моделируемая архитектура микропроцессора называется целевой архитектурой (англ. target architecture), а архитектура вычислительной машины, на которой запускается симулятор, как и сама машина, называется инструментальной (англ. host architecture). Далее но тексту термины имитационное моделирование и симуляция применяются равноправно.

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

Определение 1.1. Алгебра

(l.i)

teT, (1.2)

где S — множество состояний модели, Т — вполне упорядоченное множество меток, fb — однопараметрическое семейство функций изменения состояния, называется формальной спецификацией модели.

Состояние St модели на метке t при начальном состоянии so на метке to, таким образом, описывается следующей функцией:

(1.3)

* = = /