Методы разработки и тестирования аппаратных потактовых моделей микропроцессоров на программируемых логических интегральных схемах тема диссертации и автореферата по ВАК РФ 05.13.05, кандидат наук Байда, Юрий Владимирович
- Специальность ВАК РФ05.13.05
- Количество страниц 131
Оглавление диссертации кандидат наук Байда, Юрий Владимирович
Оглавление
Введение
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
14
15
16 18 22
28
28 30 33 38
40
41
42
43
44
45
45
3.3. Инфраструктура HAsim
3.4. Анализ исходного кода модуля
3.5. Подготовка прототипа модуля
3.6. Создание аппаратного описания модуля
3.6.1. Расширение библиотеки компонент
3.6.2. Расширение функциональности портов
3.6.3. Мультиплексирование с разделением по времени
3.7. Подготовка тестовых последовательностей
3.8. Тестирование модуля
3.9. Выводы
4. Метод и система автоматизированного тестирования потактовых моделей микропроцессоров на ПЛИС
4.1. Архитектура системы тестирования
4.2. Генерация тестовых последовательностей
4.3. Генерация служебного модуля
4.4. Автоматическое тестирование
4.5. Использование времени ПЛИС
4.6. Использование дискового пространства
4.7. Использование процессорного времени
4.8. Выводы
5. Апробация разработанных методов и средств
5.1. Тестовый микропроцессор
5.2. Инструментальный модуль Xilinx ML605
5.2.1. Описание и технические характеристики
5.2.2. Физический канал гибридной модели
5.3. Эффективность процесса разработки
5.4. Скорость работы аппаратного симулятора
5.5. Использование ресурсов ПЛИС
5.6. Выводы
Заключение
Литература
Рекомендованный список диссертаций по специальности «Элементы и устройства вычислительной техники и систем управления», 05.13.05 шифр ВАК
Автоматизация конструирования генераторов тестовых программ для микропроцессоров на основе формальных спецификаций2017 год, кандидат наук Татарников Андрей Дмитриевич
Разработка специализированных прототипов на основе программируемой логики для эффективной функциональной верификации многоядерных микропроцессоров2014 год, кандидат наук Юрлин, Сергей Владимирович
Метод тестирования производительности и корректности микропроцессоров при помощи нацеленных тестовых программ2013 год, кандидат наук Зубковская, Наталья Владимировна
Встречное тестирование высокопроизводительных микропроцессоров2013 год, кандидат наук Чибисов, Петр Александрович
Разработка методов анализа основных параметров функциональных устройств микропроцессоров на начальной стадии проектирования2013 год, кандидат технических наук Ключников, Андрей Михайлович
Введение диссертации (часть автореферата) на тему «Методы разработки и тестирования аппаратных потактовых моделей микропроцессоров на программируемых логических интегральных схемах»
Введение
Актуальность темы исследования
Разработка микропроцессора как сложной системы включает в себя принятие большого количества проектных решений, существенно опирающихся на результаты имитационного моделирования, с помощью которого анализу подвергаются такие параметры, как производительность, потребляемая мощность и др.
Аналитические методы оценки, несмотря на свою простоту, обладают низкой точностью и подходят только для простых микропроцессоров, а методы оценки с использованием аппаратных прототипов, напротив, имеют очень высокую точность, но слишком сложны и затратны.
Для численных экспериментов обычно используется специальная программная имитационная модель (симулятор) микропроцессора, разработка которой низкозатратна по сравнению с разработкой аппаратного прототипа, а достигаемая точность гораздо выше, чем у аналитических методов.
Пригодный для использования симулятор должен быть достаточно точным и достаточно гибким, чтобы исследовать широкий диапазон проектных альтернатив, а время разработки модели плюс время моделирования должно быть достаточно коротким, чтобы не нарушать цикл проектирования [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)
* = = /*<>•■-о/'1 o/^so), (1.4)
teT,s0eS.
Природа множеств S и Т определяется уровнем абстракции модели. Например, в модели микропроцессора множество Т представляет собой дискретное множество меток времени, которые могут определяться срабатываниями генератора синхросигнала, исполнением команды и другими" событиями.
Определение 1.2. Говорят, что модель с заданной формальной спецификацией 21 = (S, fb) моделирует модель с формальной спецификацией 21' = (S'^g1), если существуют такие отображения ф: Т х S —»■ Т' х S1 и ф'. S' —У S, что \/t Е Т, Vs £ S справедливо
ЛМ) = =
dJ:f ф (дфг&*) О ... о gMtus) Q дФгМ^^ ^ (1>5)
Определение 1.3. Декартово произведение
5ix52x...x5n = 5, п € N (1.6)
называется п-арной декомпозицией множества состояний модели.
Например, множество состояний n-ядерного микропроцессора может быть представлено как S = ¿>Core х . . . X Score Х*Я)псоге, ще ¿Core —
4-V-'
п раз
множество состояний отдельного ядра, а ¿ипсоге — множество состояний оставшейся части микропроцессора, общей для всех ядер.
1.2. Сравнительный анализ видов симуляторов
1.2.1. Основные характеристики симулятора
К важнейшим характеристикам симулятора микропроцессора относятся следующие:
1) скорость — измеряется в количестве моделируемых тактов объекта (Гц) или тысяч команд в секунду (кк/с) реального времени;
2) точность —степень соответствия объекту моделирования;
3) сложность — измеряется в количестве человеко-часов, затраченных на разработку симуляторов.
Таким образом, любой симулятор может быть представлен точкой в этом трёхмерном пространстве, однако данные параметры не являются независимыми: отдельные виды симуляторов в силу различной точности обладают неодинаковой скоростью (см. рис. 1.1).
Далее мы подробнее рассмотрим четыре основных вида симуляторов [53], представленных в табл. 1.1.
Скорость, к/с
ю6-
ю3--
1--
А О
Функциональный симулятор
Е
ьв
Потактовый симулятор
В
Прототип на ПЛИС
С О
НТ1_-симулятор
Архитектурный
М и кроа рхитектурный
Логический
Этапы маршрута проектирования
Рис. 1.1. Скорости различных программных (О) и аппаратных (□) моделей, применяющихся на различных этапах маршрута проектирования микропроцессора
Таблица 1.1.
Сравнение основных видов симуляторов
Вид симулятора Скорость Точность Сложность
Функциональные
Интерпретирующий Высокая Низкая Низкая
Компилирующий Очень Низкая Низкая
высокая
Потакпговые
Управляемый Низкая Высокая Высокая
трассой
Управляемый Очень Очень Очень
исполнением низкая высокая высокая
1.2.2. Интерпретирующий функциональный симулятор
Функциональный симулятор (англ. functional simulator) применяется на этапе разработки архитектуры системы команд (англ. instruction set architecture) микропроцессора для проверки корректности его работы и имеет высокую скорость, моделируя порядка миллиона команд в секунду (см. рис. 1.1, точка А). Примерами такого рода симуляторов являются симуляторы sim-safe и sim-fast проекта SimpleScalar [36].
Пользуясь терминами определения 1.1, в функциональном симулято-ре множество меток Т задаёт моменты времени завершения исполнения очередной команды, а множество состояний S — программно-доступные архитектурные атрибуты состояния микропроцессора.
Интерпретирующий функциональный симулятор в своём составе имеет состояние моделируемого микропроцессора (регистры, флаги, память). Работа такого симулятора представлена циклом: извлечение очередной команды, декодирование команды, исполнение команды, обновление состояния.
Такие симуляторы, как правило, применяются для проверки корректности работы микропроцессора, а не для оценки его производительности, следовательно, имеют низкую точность. Однако время разработки такого симулятора весьма небольшое, тем более что к моменту начала проекта
функциональный симулятор часто уже существует (естественно, кроме случая работы над новой системой команд).
Функциональный симулятор также полезен тем, что с его помощью можно получить трассы исполненных команд и адресов доступа в память. Трасса (англ. trace) представляет собой функционально корректную последовательность команд или обращений к памяти, которая порождается при запуске на симуляторе тестовой программы. Эти трассы могут быть использованы в качестве входа для симуляторов, управляемых трассой (англ. trace-driven simulator), о которых будет сказано ниже.
Обычный функциональный симулятор обеспечивает поддержку только кода пользовательского уровня, т. е. не способен моделировать, например, прерывания или системные вызовы. Тем не менее, для корректного исполнения даже пользовательского приложения необходимо учитывать эффекты уровня системы; часто применяемый подход заключается в игнорировании прерываний и моделировании только системных вызовов [36].
Однако для таких приложений, как веб-сервер или система управления базами данных (СУБД), требуется полная поддержка кода системного уровня, поскольку в данных приложениях существенное количество времени приходится на исполнение такого кода. Поддержка системного кода необходима также для многопоточных приложений, поскольку их производительность зависит от работы планировщика операционной системы.
Симулятор системы (англ. full-system simulator) моделирует всю систему ЭВМ и позволяет запускать весь стек программного обеспечения, включая пользовательские приложения и операционные системы (в том числе и коммерческие). Известными примерами таких симуляторов являются Simics [123], М5 [93], Bochs [100], QEMU [39], SimNow [38].
1.2.3. Компилирующий функциональный симулятор
В компилирующем симуляторе в двоичный исполняемый файл теста встраивается (инструментируется) специальный служебный код, который обеспечивает во время исполнения теста сбор необходимых исследователю данных. Это обеспечивает более высокую скорость, поскольку инструментированный код исполняется реальной аппаратурой, однако целевая архитектура, как правило, должна совпадать с инструментальной.
Ключевым преимуществом здесь является то, что этот подход приводит к низким накладным расходам, поскольку инструментированный код исполняется реальной аппаратурой, в то время как функциональный симулятор моделирует поведение реальной аппаратуры.
Существует два типа инструментирования: статическое (до исполнения тестовой программы) и динамическое (во время исполнения тестовой программы). Примерами инструментов, использующих первый подход, служат Atom [130] и EEL [89], второй-Embra [143], Shade [46] и Pin [110].
Инструментирование обладает, однако, тем недостатком, что целевая архитектура, как правило, должна совпадать с инструментальной (низкая переносимость). Для решения этой задачи используют динамический двоичный транслятор (например, Shade [46]).
Подход, предложенный в работе [42], объединяет скорость инструментирования с переносимостью функционального симулятора. Здесь на вход так называемого синтезатора поступает исходный двоичный файл и определение на языке С всех поддерживаемых команд, а на выходе получается исходный код на языке С, в который можно добавить свой код, для получения, например, трассы адресов обращений к памяти.
1.2.4. Потактовый симулятор, управляемый трассой
На этапе разработки микроархитектуры требуется точное определение параметров узлов микропроцессора, влияющих на его производительность и энергопотребление, для чего применяется потактовый симулятор (англ. суcle-accurate simulator). В таком симуляторе множество меток Т соответствует тактам синхросигнала, а множество состояний S расширяется микроархитектурными атрибутами, не доступными программно, что приводит к существенному уменьшению скорости моделирования (рис. 1.1, точка В).
Симулятор, управляемый трассой (англ. trace-driven simulator), получает на вход трассу команд и адресов, полученную при запуске программы на функциональном симуляторе, и передаёт её в детализированный временной симулятор микроархитектуры. Таким образом, при этом происходит естественное разделение симулятора на функциональную и временную части.
Этот факт является отдельным преимуществом, поскольку функциональная часть может быть запущена всего один раз, а временная — несколько (для оценки различных микроархитектур), тем самым в некоторой степени уменьшая время оценки. В целом, такой симулятор имеет большое время разработки и обладает низкой скоростью, однако при этом достигается высокая точность моделирования и хорошее покрытие.
Существуют более специализированные симуляторы, управляемые трассой, которые моделируют только отдельные компоненты микроархитектуры, например, кэш-память или блок прогнозирования ветвления (англ. branch prediction). Примерами такого рода симулятора могут служить симуляторы кэша mlcache [101] и CMP$im [47]. Были разработаны также несколько подходов, позволяющих моделировать множество конфигураций кэша за один запуск симулятора [49].
Очевидным недостатком симулятора, управляемого трассой, является необходимость в существенном объёме дискового пространства, необходимого для хранения длинных тестовых трасс. Для решения этой задачи было разработано несколько подходов сжатия трасс [82,142].
К другому недостатку можно отнести тот факт, что современные микропроцессоры с суперскалярной архитектурой используют прогнозирование ветвления и выполняют некоторые команды спекулятивно: если команда была исполнена ошибочно, то затем происходит её отмена, и такая команда не попадает в трассу, получаемую из функционального симулятора, хотя может влиять на состояние кэш-памяти и блока прогнозирования ветвления [75,137].
Ещё одним недостатком данного подхода является невозможность моделирования влияния целевой микроархитектуры на взаимодействие и упорядочивание потоков в многопоточных тестах. Это обусловлено тем, что трасса уже задаёт определённый порядок потоков, однако этот порядок и межпоточные зависимости могут отличаться для различных микроархитектур.
В некоторых экспериментах такие эффекты могут быть незначительны, а в некоторых могут быть весьма существенны. Существенным здесь является то, что даже очень небольшое изменение микроархитектуры может привести к тому, что потоки будут блокировать друг друга в ином
порядке, что может привести к существенному изменению производительности микропроцессора только на данном конкретном тесте. Симулятор, управляемый трассой, не позволяет обнаружить данный эффект.
1.2.5. Потактовый симулятор, управляемый исполнением
В симуляторе, управляемом исполнением (англ. execution-driven simulator), в отличие от симулятора, управляемого трассой, функциональная и временная части работают совместно, что позволяет избавиться от недостатков подхода, описанного выше: отсутствует необходимость в хранении трасс, спекулятивно исполняемые команды и межпоточное взаимодействие моделируются корректно.
Данный подход стал стандартом де-факто для моделирования производительности микропроцессорных архитектур. Примерами реализации данного подхода служат SimpleScalar [36], RSIM [118], Asim [35], М5 [93], GEMS [102], Flexus [122], PTLSim [145], Lib.erty [99], MicroLib [108], UNISIM [138], MDSP [17].
В работе [94] предложена классификация такого рода симуляторов, которая рассматривает четыре способа связи между функциональной и временной частями симулятора (см. рис. 1.2):
— интегрированный;
— управляемый временной частью;
— с приоритетом функциональной части;
— с приоритетом временной части.
Интегрированный симулятор
Интегрированный симулятор, в котором функциональная и временная части не отделены друг от друга, очевидно, наиболее трудоёмок в разработке, его трудно расширять, а также существует риск, что модификация временной части внесёт ошибку в функциональную.
С точки зрения уменьшения сложности симулятора желательно разделить эти две части. Функциональная часть является довольно сложной в разработке, оптимизации и верификации, но после завершения может быть использована многократно с различными временными моделями.
Похожие диссертационные работы по специальности «Элементы и устройства вычислительной техники и систем управления», 05.13.05 шифр ВАК
Исследование и разработка потоковой рекуррентной архитектуры для эффективной реализации параллелизма в области цифровой обработки сигналов2023 год, кандидат наук Хилько Дмитрий Владимирович
Средства автоматизации структурно-функционального проектирования микропроцессорных систем с развитой поддержкой обучения2002 год, доктор технических наук Негода, Виктор Николаевич
Динамическая верификация цифровой аппаратуры на основе формальных спецификаций2012 год, кандидат физико-математических наук Чупилко, Михаил Михайлович
Методы и аппаратно-программные средства функционального тестирования СБИС микроконтроллеров при проведении радиационных испытаний на дозовые воздействия2009 год, кандидат технических наук Лебедев, Алексей Викторович
Метод автоматизации имитационного тестирования микропроцессоров с конвейерной архитектурой на основе формальных спецификаций2008 год, кандидат физико-математических наук Камкин, Александр Сергеевич
Список литературы диссертационного исследования кандидат наук Байда, Юрий Владимирович, 2013 год
Литература
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. Байда Ю. В. Опыт разработки аппаратного потактового симулятора микропроцессора с внеочередным исполнением команд на базе
программируемой логики // Научные труды Международной молодёжной научной конференции «XXXVIII Гагаринские чтения». — Т. 4.-М.: МАТИ, 2012. - Апрель. - С. 58-60.
6. Байда Ю. В. Особенности применения программируемых логических интегральных схем для имитационного моделирования микропроцессоров // Инновации и инвестиции. — 2013. — № 6. — С. 146-149.
7. Байда Ю. В. Повышение качества проектных решений при разработке микропроцессоров путём радикального увеличения скорости имитационного моделирования // Качество. Инновации. Образование.-2013,-№ И.
8. Зотов В. МюгоВ1аге — семейство 32-разрядных микропроцессорных ядер, реализуемых на основе ПЛИС фирмы ХШпх // Компоненты и технологии. - 2003. - № 9. — С. 18-31.
9. Зотов В. Особенности архитектуры нового поколения высокопроизводительных ПЛИС РРСА фирмы ХШпх серии У1г1ех-6 // Компоненты и технологии. — 2009. — № 8. — С. 78-85.
10. Ицыксон В. М. Исследование и проектирование моделей и программных средств эмуляции вычислительных систем: дис... канд. техн. наук: 05.13.13 / В. М. Ицыксон; СПбГТУ. - СПб., 1999.- 248 с.
11. Кельтон В. Д., Лоу А. М. Имитационное моделирование. Классика СЭ. - 3-е изд. - СПб.: Питер, 2004. - 847 с.
12. Ким А. К., Перекатов В. И., Ермаков С. Г. Микропроцессоры и вычислительные комплексы семейства «Эльбрус». Учебное пособие. — СПб.: Питер, 2012. - 272 с.
13. Кузелин М. О., Кнышев Д. А., Зотов В. Ю. Современные семейства ПЛИС фирмы ХШпх. Справочное пособие. Современная электроника. — М.: Горячая линия - Телеком, 2006. — 440 с.
14. Лекции по теории графов / В. А. Емеличев, О. И. Мельников, В. И. Сарванов, Р. И. Тышкевич. — Либроком, 2012. — 392 с.
15. Методология перехода от программной потактовой модели микропроцессора к аппаратному симулятору на базе программируемой логики / Ю. В. Байда, А. В. Бутузов, А. Г. Ефимов, М. С. Цветков // Труды Московского физико-технического института (государственного университета). - 2012. - Т. 4, № 3 (15). - С. 114-122.
16. Негода Д. В. Автоматизация проектирования симуляторов микропроцессоров и микроконтроллеров: дис... канд. техн. наук: 05.13.12 / Д. В. Негода; УГТУ. - Ульяновск, 2005. - 158 с.
17. Опыт подготовки студентов в учебно-исследовательской лаборатории МФТИ-Интел / Ю. В. Байда, М. В. Золотухин, Н. Е. Косарев и др. // Труды Московского физико-технического института (государственного университета). — 2011. — Т. 3, № 3.- С. 168-170.
18. Опыт прототипирования микропроцессоров компании ЗАО «МЦ-СТ» / Ф. К. Будылин, И. А. Полигцук, М. В. Слесарев, С. В. Юрлин // Вопросы радиоэлектроники. Серия ЭВТ. — 2012. — Июль. — № 3. — С. 132-142.
19. Пайлон Д., Питмен Н. UML 2 для программистов / Пер. с англ. Е. Матвеева. Бестселлеры O'Reilly. — СПб.: Питер, 2012,— 240 с.
20. Петров С. Шины PCI, PCI Express. Архитектура, дизайн, принципы функционирования. Аппаратные средства.— СПб.: БХВ-Петербург, 2006.- 416 с.
21. Репозиторий кода проекта ViCo [электронный ресурс] // Система управления версиями Лаборатории информатики и искусственного интеллекта, Массачусетский технологический институт.— 2012.— URL: https://asim.csail.mit.edu/svn/vico (дата обращения: 20.09.2013).
22. Робачевский А., Немнюгин С., Стесик О. Операционная система UNIX. - 2-е изд. - СПб.: БХВ-Петербург, 2006. - 656 с.
23. Страуструп Б. Язык программирования С++ / Пер. с англ. под ред. Н. Н. Мартынова. - М.: Бином, 2011. - 1136 с.
24. Структура вычислительных средств серии «Эльбрус»: эволюция проектных решений / В. К. Гусев, А. К. Ким, В. И. Перекатов, В. М. Фельдман // Вопросы радиоэлектроники. Серия ЭВТ. — 2011. — № 3. - С. 5-22.
25. Тарасов И. Анализ характеристик FPGA Xilinx семейств Virtex-6 и Spartan-6 // Компоненты и технологии. — 2009. — № 12. — С. 10-16.
26. Тарасов И. Инструменты автоматизации процессов моделирования и конфигурирования ПЛИС в САПР ISE // Компоненты и технологии. - 2010. - № 12. - С. 27-32.
27. Тарасов И. Новые возможности САПР Xilinx версии 12.3 // Компоненты и технологии. — 2010. — № 12. — С. 34-36.
28. Уолл Л., Кристиансен Т., Орвант Д. Программирование на Perl.— 3-е изд. — М.: Символ-Плюс, 2006.— 1152 с.
29. Хабибуллин И. Самоучитель XML.— СПб.: БХВ-Петербург, 2003.— 336 с.
30. A-Port networks: preserving the timed behavior of synchronous systems for modeling on FPGAs / M. Pellauer, M. Vijayaraghavan, M. Adler et al. // ACM Transactions on Reconfigurable Technology and Systems (TRETS).- 2009. - September. - Vol. 2.- P. 16:1 -16:26.
31. A-Ports: an efficient abstraction for cycle-accurate performance models on FPGAs / M. Pellauer, M. Vijayaraghavan, M. Adler et al. // Proceedings of ACM/SIGDA International Symposium on Field programmable gate arrays. — FPGA '08.— ACM, 2008.— February. — P. 87-96.
32. Accelerating simulation with FPGAs / M. Pellauer, M. Adler, A. Parashar, J. Emer // Processor and system-on-chip simulation / Ed. by R. Leupers, O. Temam. — New York, NY, USA: Springer, 2010. — P. 107-126.
33. Accurate functional-first multicore simulators / D. Chiou, H. Angepat, N. A. Patil, D. Sunwoo // IEEE Computer Architecture Letters. — 2009. - Vol. 8, no. 2. - P. 64-67.
34. Amos D., Lesea A., Richter R. FPGA-based prototyping methodology manual: best practices in design-for-prototyping. — Mountain View, CA, USA: Synopsis Press, 2011.-494 p.
35. Asim: a performance model framework / J. Emer, P. Ahuja, E. Borch et al. // IEEE Computer. - 2002. - Vol. 35, no. 2. - P. 68-76.
36. Austin T., Larson E., Ernst D. SimpleScalar: an infrastructure for computer system modeling // IEEE Computer. — 2002.— Vol. 35, no. 2. - P. 59-67.
37. 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.
38. Bedichek R. SimNow: fast platform simulation purely in software // Proceeding of Symposium on High performance chips / Stanford University. — Hot Chips 16. — 2004. — August.
39. Bellard F. QEMU, a fast and portable dynamic translator // Proceedings of USENIX Annual technical conference. - ATEC '05. - USENIX Association, 2005. — P. 41.
40. Birrell A. D., Nelson B. J. Implementing remote procedure calls // ACM Transactions on Computing Systems. — 1984. — Vol. 2, no. 1. — P. 39-59.
41. BlueSSD: an open platform for cross-layer experiments for NAND flash-based SSDs / S. Lee, K. Fleming, J. Park et al. // Proceedings of Annual Workshop on Architectural research prototyping. — WARP '10.-2010.-5 p.
42. Burtscher M., Ganusov I. Automatic synthesis of high-speed processor simulators // Proceedings of IEEE/ACM International Symposium on
Microarchitecture / IEEE Computer Society. - MICRO '37. - 2004. -December. — P. 55-66.
43. A case for FAME: FPGA architecture model execution / Z. Tan, A. Waterman, H. Cook et al. // Proceedings of IEEE/ACM International Symposium on Computer architecture. — ISCA '10.— IEEE Computer Society, 2010.- P. 290-301.
44. Chang C., Wawrzynek JBrodersen R. W. BEE2: a high-end reconfigurable computing system // IEEE Design & Test of Computers. — 2005. - March. - Vol. 22. - P. 114-125.
45. Chen J., Annavaram M., Dubois M. SlackSim: a platform for parallel simulations of CMPs on CMPs // ACM SIGARCH Computer Architecture News. - 2009. - July. - Vol. 37. - P. 20-29.
46. Cmelik B., Keppel D. Shade: a fast instruction-set simulator for execution profiling // Proceedings of ACM SIGMETRICS Conference on Measurement and modeling of computer systems. — SIGMETRICS '94. - ACM, 1994. - P. 128-137.
47. CMP$im: a Pin-based on-the-fly multi-core cache simulator / A. Jaleel, R. S. Cohn, C. K. Luk, B. Jacob // Proceedings of Annual Workshop on Modeling, benchmarking and simulation. — MoBS '08. — University of Michigan, 2008. — June. - P. 28-36.
48. A complexity-effective architecture for accelerating full-system multiprocessor simulations using FPGAs / E. Chung, E. Nurvitadhi, J.C. Hoe et al. // Proceedings of ACM/SIGDA International Symposium on Field programmable gate arrays. — FPGA '08. — ACM, 2008. - February. - P. 77-86.
49. Conte T. M., Hirsch M. A., Hwu W. M. Combining trace sampling with single pass methods for efficient cache simulation // IEEE Transactions on Computers. - 1998. - Vol. 47, no. 6. - P. 714-720.
50. Conte T. M., Hirsch M. A., Menezes K. N. Reducing state loss for effective trace sampling of superscalar processors // Proceedings of
International Conference on Computer design / IEEE. — ICCD '96. — 1996. - P. 468-477.
51. CPR: composable performance regression for scalable multiprocessor models / B.C. Lee, J. Collins, H. Wang, D. Brooks // Proceedings of IEEE/ACM International Symposium on Microarchitecture. — MICRO '41. - IEEE Computer Society, 2008. - November. - P. 270-281.
52. Darsim: a parallel cycle-level NoC simulator / M. Lis, K. Sup Shim, M. H. Cho et al. // Proceedings of Annual Workshop on Modeling, benchmarking and simulation. — MoBs '10. — 2010. — June.
53. Eeckhout L. Computer architecture performance evaluation methods / Ed. by M.D. Hill. Synthesis lectures on computer architecture.— Morgan & Claypool Publishers, 2010.— 146 p.
54. Ekanadham K., Tseng J., Pattnaik P. IBM PowerPC design in Blue-spec // Technical Report RC24706. — IBM Research Division, 2008. — 13 p.
55. Emer J. Accelerating architecture research // Proceedings of IEEE International Symposium on Performance analysis of systems and software. - ISPASS '09. - IEEE Computer Society, 2009. - April. — P. 8.
56. Emer JBeckmann C., Pellauer M. AWB: the Asim architect's workbench // Proceedings of Annual Workshop on Modeling, benchmarking and simulation. — MoBS '07. — University of Minnesota, 2007. — June.
57. Expression: a language for architecture exploration through compiler/simulator retargetability / A. Halambi, P. Grun, V. Ganesh et al. // Proceedings of Conference on Design, automation and test in Europe. — DATE '99. - ACM, 1999. - March.
58. Fast and cycle-accurate modeling of a multicore processor / A. Khan, M. Vijayaraghavan, S. Boyd-Wickizer, Arvind // Proceedings of IEEE International Symposium on Performance analysis of systems and software. - ISPASS '12. - 2012. - P. 178-187.
59. The FAST methodology for high-speed SoC/computer simulation / D. Chiou, D. Sunwoo, J. Kim et al. // Proceedings of IEEE/ACM International Conference on Computer-aided design. — ICCAD '07. — IEEE Computer Society, 2007. - P. 295-302.
60. FPGA-accelerated simulation technologies (FAST): fast, full-system, cycle-accurate simulators / D. Chiou, D. Sunwoo, J. Kim et al. // Proceedings of IEEE/ACM International Symposium on Microarchitecture. - MICRO '40. - IEEE Computer Society, 2007. - December. -P. 249-261.
61. FPGAs: world class designs / Ed. by C. Maxfield. World class designs. — Burlington, MA, USA: Newnes, 2009. — 488 p.
62. The future of architectural simulation / J. C. Hoe, D. Burger, J. Emer et al. // IEEE Micro. - 2010. - Vol. 30, no. 3. - P. 8-18.
63. Genbrugge D., Eyerman S., Eeckhout L. Interval simulation: raising the level of abstraction in architectural simulation // Proceedings of IEEE International Symposium on High performance computer architecture. - HPCA '10. — IEEE Computer Society, 2010. - January. — P. 307-318.
64. Gibeling G., Schultz A., Asanovic K. The RAMP architecture and description language // Technical Report. — University of California, 2006. - 22 p.
65. Graphite: a distributed parallel simulator for multicores / J. E. Miller, H. Kasture, G. Kurian et al. // Proceedings of IEEE International Symposium on High performance computer architecture. — HPCA '10. — IEEE Computer Society, 2010. - January. - P. 1-12.
66. Gruian F., Westmijze M. BlueJAMM: a Bluespec embedded Java architecture with memory management // Proceedings of International Symposium on Symbolic and numeric algorithms for scientific computing. - SYNASC '07. - IEEE Computer Society, 2007. - September. -P. 459-466.
67. Gruian F., Westmijze M. VHDL vs. Bluespec SystemVerilog: a case study on a Java embedded architecture // Proceedings of ACM Symposium on Applied computing. — SAC '08. — ACM, 2008. — April. — P. 1492-1497.
68. H.264 decoder: a case study in multiple design points / K. Fleming, C. C. Lin, D. Nirav et al. // Proceedings of IEEE/ACM International Conference on Formal methods and models for co-design. — MEM-OCODE '08. - IEEE Computer Society, 2008. - June. - P. 165-174.
69. Hadjiyiannis G., Hanono S., Devadas S. ISDL: an instruction set description language for retargetability // Proceedings of Design automation conference. - DAC '97. - ACM, 1997. - June. - P. 299-302.
70. HAsim: FPGA-based high-detail multicore simulation using timedivision multiplexing / M. Pellauer, M. Adler, M. Kinsy et al. // Proceedings of IEEE International Symposium on High performance computer architecture. - HPCA '11. - IEEE Computer Society, 2011. — February. - P. 406-417.
71. Hennessy J. L., Patterson D. A. Computer architecture: a quantitative approach. — 5th edition. — San Francisco, CA, USA: Morgan Kaufmann Publishers, 2012. — 877 p.
72. Henning J. L. SPEC CPU suite growth: an historical perspective // ACM SIGARCH Computer Architecture News. — 2007. — March.— Vol. 35, no. 1. - P. 65-68.
73. High-level synthesis: an essential ingredient for designing complex ASICs / Arvind, R. S. Nikhil, D. L. Rosenband, N. Dave // Proceedings of IEEE/ACM International Conference on Computer-aided design. — ICCAD '04. - IEEE Computer Society, 2004. - P. 775-782.
74. Hoe J. C. Operation-centric hardware description and synthesis: Ph. D. thesis in Electrical engineering and computer science / J. C. Hoe; MIT. - Cambridge, MA, USA, 2000. - June. - 149 p.
75. An integrated functional performance simulator / C. Bechem, J. Combs, N. Utamaphethai et al. // IEEE Micro. - 1999. - Vol. 19. -P. 26-35.
76. Intel Architecture IA-32 software developer's manual. — Intel Corporation, 2003. — Vol. 1: basic architecture. — 426 p.
77. Intel Atom processor core made FPGA-synthesizable / P. H. Wang, J.D. Collins, C.T. Weaver et al. // Proceedings of ACM/SIGDA International Symposium on Field programmable gate arrays. — FPGA '09. - ACM, 2009. - P. 209-218.
78. Intel Nehalem processor core made FPGA-synthesizable / G. Schelle, J. Collins, E. Schuchman et al. // Proceedings of ACM/SIGDA International Symposium on Field programmable gate arrays. — FPGA '10. — ACM, 2010.- P. 3-12.
79. ISO/IEC TR 9126-2:2003 Software engineering. Product quality. Part 2: External metrics. - ISO/IEC, 2003. - 86 p.
80. Jachimiec N., Vallina F. M. High-level synthesis tool delivers optimized packet engine design // Xcell Journal. - 2012. — Vol. 79. - P. 14-18.
81. Jacky J. The way of Z: practical programming with formal methods. — Cambridge, UK: Cambridge University Press, 1997. — 372 p.
82. Johnson E., Ha J., Baqar Zaidi M. Lossless trace compression // IEEE Transactions on Computers. — 2001. — Vol. 50, no. 2. — P. 158-173.
83. Jones D., Topham N. High speed CPU simulation using LTU dynamic binary translation // Proceedings of International Conference on High performance embedded architectures and compilers. — HiPEAC '09. — Springer-Verlag, 2009. - P. 50-64.
84. Jones D., Topham N. High speed CPU simulation using LTU dynamic binary translation // High performance embedded architectures and compilers / Ed. by A. Seznec, J. Emer, M. O'Boyle et al. — Springer Berlin Heidelberg, 2009. — Vol. 5409 of Lecture notes in computer science. — P. 50-64.
85. Jorgensen M., Shepperd M. A systematic review of software development cost estimation studies // IEEE Transactions on Software Engineering. — 2007. — January. — Vol. 33, no. 1. — P. 33-53.
86. Kautz H.A., Selman B., Coen M. Bottom-up design of software agents // Communications of the ACM. — 1994. — July. — Vol. 37, no. 7. - P. 143-146.
------- 87. Khan A., Vijayaraghavan M., Arvind. A general technique for deterministic model-cycle-level debugging // Proceedings of IEEE/ ACM International Conference on Formal methods and models for co-design. — MEMOCODE '12. - 2012. - P. 109-118.
88. Larsson F., Magnusson P., Werner B. SimGen: development of efficient instruction set simulators // SICS Technical Report R97:03. — Swedish Institute of Computer Science, 1997. — 17 p.
89. Larus J. R., Schnarr E. EEL: machine-independent executable editing // Proceedings of ACM SIGPLAN Conference on Programming language design and implementation. — PLDI '95. — ACM, 1995. — P. 291-300.
90. LEAP: a virtual platform architecture for FPGAs / A. Parashar, M. Adler, K. E. Fleming et al. // Workshop on the Intersections of Computer architecture and reconfigurable logic. — CARL '10.— 2010. — December. — 6 p.
91. LEAP scratchpads: automatic memory and cache management for reconfigurable logic / M. Adler, K. E. Fleming, A. Parashar et al. // Proceedings of ACM/SIGDA International Symposium on Field programmable gate arrays. - FPGA '11. - ACM, 2011. - P. 25-28.
92. The Liberty simulation environment: a deliberate approach to highlevel system modeling / M. Vachharajani, N. Vachharajani, D. A. Penry et al. // ACM Transactions on Computer Systems. — 2006. — Vol. 24, no. 3,- P. 211-249.
93. The M5 simulator: modeling networked systems / N. L. Binkert, R. G. Dreslinski, L. R. Hsu et al. // IEEE Micro. - 2006. - Vol. 26, no. 4. — P. 52-60.
94. Mauer C.J., Hill M.D., Wood D.A. Full-system timing-first simulation // SIGMETRICS Performance evaluation review. — 2002. — June. - Vol. 30. - P. 108-116.
95. Measuring benchmark similarity using inherent program characteristics / A. Joshi, A. Phansalkar, L. Eeckhout, L. K. John // IEEE Transactions on Computers. — 2006. — Vol. 55, no. 6. — P. 769-782.
96. Merz S. On the logic of TLA-f // Computing and Informatics. — 2001. — Vol. 22, no. 3-4. - P. 351-379.
97. 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.
98. A methodology for the design of application specific instruction set processors (ASIP) using the machine description language / A. Hoffmann, O. Schliebusch, A. Nohl et al. // Proceedings of IEEE/ACM International Conference on Computer-aided design. — ICCAD '01. — IEEE Computer Society, 2001, — P. 625-630.
99. Microarchitectural exploration with Liberty / M. Vachharajani, N. Vachharajani, D. A. Penry et al. // Proceedings of IEEE/ACM International Symposium on Microarchitecture. — MICRO '35. — IEEE Computer Society, 2002.-November. — P. 271-282.
100. Mihocka D., Shwartsman S. Virtualization without direct execution or jitting: designing a portable virtual machine infrastructure // Proceedings of IEEE/ACM International Symposium on Computer architecture. - ISCA '35. - IEEE Computer Society, 2008.
101. Mlcache: a flexible multi-lateral cache simulator / E. Tam, J. Rivers, G. S. Tyson, E. S. Davidson // Proceedings of International Symposium
on Modeling, analysis and simulation of computer and telecommunication systems / IEEE. - MASCOTS '98. - 1998. - July. - P. 19-26.
102. Multifacet's general execution-driven multiprocessor simulator toolset / M. M. Martin, D. J. Sorin, B. M. Beckmann et al. // ACM SIGARCH Computer Architecture News. — 2005. — Vol. 33, no. 4. — P. 92-99.
103. Naik K., Tripathy P. Software testing and quality assurance: theory ____and practice. —USA, -NY,-New York: John Wiley & Sons, 2011. —
648 p.
104. Nikhil R. S. Bluespec SystemVerilog: efficient, correct RTL from high level specifications // Proceedings of IEEE/ACM International Conference on Formal methods and models for co-design. — MEM-OCODE '04. - IEEE Computer Society, 2004. - June. - P. 69-70.
105. Nikhil R. S. Abstraction in hardware system design // ACM Queue. — 2011.-Vol. 9, no. 8.-P. 40.
106. Nikhil R. S., Czeck K. R. Bluespec SystemVerilog by example. — Lexington, KY, USA: CreateSpace, 2010. - 302 p.
107. Pellauer M. HAsim: cycle-accurate multicore performance models on FPGAs: Ph. D. thesis in Computer science and engineering / M. Pellauer; MIT. - Cambridge, MA, USA, 2011. - February. - 165 p.
108. Perez D. G., Mouchard G., Temam 0. MieroLib: a case for the quantitative comparison of micro-architecture mechanisms // Proceedings of IEEE/ACM International Symposium on Microarchitecture. — MICRO '37. - IEEE Computer Society, 2004. - December. - P. 43-54.
109. Phansalkar A., Joshi A., John L. Analysis of redundancy and application balance in the SPEC CPU2006 benchmark suite // ACM SIGARCH Computer Architecture News. - 2007. - Vol. 35, no. 2. — P. 412-423.
110. Pin: building customized program analysis tools with dynamic instrumentation / C. K. Luk, R. Cohn, R. Muth et al. // Proceedings of
ACM SIGPLAN Conference on Programming language design and implementation. - PLDI '05. - ACM, 2005. - P. 190-200.
111. A practical FPGA-based framework for novel CMP research / S. Wee, J. Casper, N. Njoroge et al. // Proceedings of ACM/SIGDA International Symposium on Field programmable gate arrays. — FPGA '07. — Monterey, CA, USA: ACM, 2007. - P. 116-125.
- —1-12r- ProtoFlex: FPGA-accelerated hybrid functional simulator / E. Chung, E. Nurvitadhi, J. C. Hoe et al. // Proceedings of IEEE International Symposium on Parallel and distributed processing. — IPDPS '07. — IEEE Computer Society, 2007. - P. 1-6.
113. Quick performance models quickly: closely-coupled partitioned simulation on FPGAs 7 M. Pellauer, M. Vijayaraghavan, M. Adler et al. // Proceedings of IEEE International Symposium on Performance analysis of systems and software. — ISPASS '08. — IEEE Computer Society, 2008.-April.-P. 1-10.
114. RAMP: a research accelerator for multiple processors / J. Wawrzynek, D. Patterson, M. Oskin et al. // IEEE Micro. — 2007. - March. — Vol. 27, no. 2. - P. 46-57.
115. RAMP Blue: a message-passing manycore system in FPGAs / A. Kras-nov, A. Schultz, J. Wawrzynek et al. // Proceedings of International Conference on Field programmable logic and applications. — FPL '07. — 2007. - August. - P. 54-61.
116. RAMP Gold: an FPGA-based architecture simulator for multiprocessors / Z. Tan, A. Waterman, R. Avizienis et al. // Proceedings of Design automation conference. — DAC '10. — ACM, 2010. — June. — P. 463-468.
117. Rosenband D. L., Arvind. Modular scheduling of guarded atomic actions // Proceedings of Design automation conference. — DAC '04. — ACM, 2004. - June. - P. 55-60.
118. Rsim: simulating shared-memory multiprocessors with ILP processors / C.J. Hughes, V.S. Pai, P. Ranganathan, S.V. Adve // IEEE Computer. - 2002. - February. - Vol. 35, no. 2. — P. 40-49.
119. Shanley T. The unabridged Pentium 4: IA32 processor genealogy / Ed. by B. Colwell. PC system architecture series. — New York, NY, USA: Addison-Wesley, 2005. - 1649 p.
_____120, Shen^^P.^Lipasti-M^H^sAodern processor design: fundamentals
of superscalar processors. Electrical and computer engineering series. — New York, NY, USA: McGraw-Hill Higher Education, 2004. - 656 p.
121. Shen X. Design and verification of adaptive cache coherence protocols: Ph. D. thesis in Computer science and engineering / X. Shen; MIT. — Cambridge, MA, USA, 2000.-February. - 165 p.
122. SimFlex: statistical sampling of computer system simulation / T. F. Wenisch, R. E. Wunderlich, M. Ferdman et al. // IEEE Micro. — 2006. - Vol. 26, no. 4. - P. 18-31.
123. Simics: a full system simulation platform / P. S. Magnusson, M. Chris-tensson, J. Eskilson et al. // Computer. — 2002. — Vol. 35, no. 2. — P. 50-58.
124. Simpoint 3.0: faster and more flexible program phase analysis / G. Hamerly, E. Perelman, J. Lau, B. Calder // Journal of Instruction Level Parallelism. - 2005. - Vol. 7, no. 4. - P. 1-28.
125. Simulating a chip multiprocessor with a symmetric multiprocessor / K. C. Barr, R. Matas-Navarro, C. Weaver et al. // Proceeding of Annual Boston area archictecture workshop. — BARC '05. — Brown University, 2005. — January.
126. SMARTS: accelerating microarchitecture simulation via rigorous statistical sampling / R. E. Wunderlich, T. F. Wenisch, B. Falsafi, J. C. Hoe // Proceedings of IEEE/ACM International Symposium on Computer architecture. — ISCA '03,— Los Alamitos, CA, USA: IEEE Computer Society, 2003. - P. 84-97.
127. Soft connections: addressing the hardware-design modularity problem / M. Pellauer, M. Adler, D. Chiou, J. Emer // Proceedings of Design automation conference. - DAC '09. - 2009. - July. - P. 276 - 281.
128. Software cost estimation with Cocomo II / B.W. Boehm, C. Abts, W. Brown et al. - Upper Saddle River, NJ, USA: Prentice Hall, 2000. -544 p.
129. Soule L., Gupta A. Parallel distributed-time logic simulation // IEEE Design and Test of Computers. — 1989. — November. — Vol. 6. — P. 3248.
130. Srivastava A., Eustace A. ATOM: a system for building customized program analysis tools // Proceedings of ACM SIGPLAN Conference on Programming language design and implementation. — PLDI '94. — ACM, 1994. - P. 196-205.
131. Sugumar R.A., Abraham S. G. Set-associative cache simulation using generalized binomial trees // ACM Transactions on Computing Systems. — 1995. — February. — Vol. 13, no. 1. — P. 32-56.
132. Sunwoo D., Kim J., Chiou D. QUICK: a flexible full-system functional model // Proceedings of IEEE International Symposium on Performance analysis of systems and software. — ISPASS '09. — IEEE Computer Society, 2009. - April. - P. 249-258.
133. SystemC: from the ground up / D. C. Black, J. Donovan, B. Bunton, A. Iveist. - 2nd edition. — New York, NY, USA: Sprienger, 2010. -338 p.
134. Thacker C. Beehive: a many-core computer for FPGAs [электронный ресурс] // Microsoft Research Silicon Valley [сайт], Microsoft. — 2010. — August. — URL: http://research.microsoft.com/en-us/um/people/birrell/ beehive/v6a/beehivev5.pdf (дата обращения: 20.09.2013).
135. Titzer В. L., Lee D. K., Palsberg J. Avrora: scalable sensor network simulation with precise timing // Proceedings of International Syrn-
posium on Information processing in sensor networks. — IPSN '05. — IEEE Press, 2005. - P. 477-482.
136. Trace-driven workload simulation method for multiprocessor system-on-chips / T. Isshiki, D. Li, H. Kunieda et al. // Proceedings of Design automation conference. — DAC '09. — ACM, 2009. — July. — P. 232-237.
137. Understanding-the effects of wrong-path memory references on processor performance / O. Mutlu, H. Kim, D.N. Armstrong, Y.N. Patt // Proceedings of IEEE/ACM International Symposium on Computer architecture. - ISC A '04. — IEEE Computer Society, 2004. - P. 56-64.
138. Unisim: an open simulation environment and library for complex architecture design and collaborative development / D. August, J. Chang, S. Girbal et al. // Computer Architecture Letters. — 2007. — Vol. 6, no. 2. - P. 45-48.
139. Using SimPoint for accurate and efficient simulation / E. Perelman, G. Hamerly, M. Van Biesbrouck et al. // SIGMETRICS Performance evaluation review. - 2003. — June. - Vol. 31. - P. 318-319.
140. V-SAT: a visual specification and analysis tool for system-on-chip exploration / A. Khare, A. Halambi, N. Savoiu et al. // Journal of Systems Architecture. - 2001. - Vol. 47, no. 3-4. - P. 263-275.
141. van der Aalst W. M. P. Formalization and verification of event-driven process chains // Information and Software technology. — 1999. — Vol. 41, no. 10,- P. 639-650.
142. The VPC trace-compression algorithms / M. Burtscher, I. Ganusov, S. J. Jackson et al. // IEEE Transactions on Computers. — 2005. — November. - Vol. 54, no. 11. — P. 1329-1344.
143. Witchel E., Rosenblum M. Embra: fast and flexible machine simulation // Proceedings of ACM SIGMETRICS Conference on Measurement and modeling of computer systems. — SIGMETRICS '96. — New York, NY, USA: ACM, 1996. - P. 68-79.
144. Wunderlich R. E., Hoe J. C. In-system FPGA prototyping of an Itanium microarchitecture // Proceedings of IEEE/ACM International Conference on Computer-aided design. - ICCAD '04. - IEEE, 2004. -P. 288-294.
145. Yourst M. T. PTLsim: a cycle accurate full system x86-64 microarchitectural simulator // Proceedings of IEEE International Symposium on Performance analysis of systems and software. — ISPASS '07. — IEEE Computer Society, 2007. - P. 23-34.
Обратите внимание, представленные выше научные тексты размещены для ознакомления и получены посредством распознавания оригинальных текстов диссертаций (OCR). В связи с чем, в них могут содержаться ошибки, связанные с несовершенством алгоритмов распознавания. В PDF файлах диссертаций и авторефератов, которые мы доставляем, подобных ошибок нет.