Моделирование микроархитектуры
микроархитектуры Моделирование является важным методом исследования компьютерной архитектуры и обучения информатике . Это инструмент для моделирования конструкции и поведения микропроцессора и его компонентов, таких как АЛУ , кэш-память , блок управления и путь передачи данных, среди прочего. Моделирование позволяет исследователям исследовать пространство проектирования, а также оценивать производительность и эффективность новых функций микроархитектуры. Например, некоторые компоненты микроархитектуры, такие как предсказатели ветвей , буфер повторного порядка и кэш трассировки , прошли многочисленные циклы моделирования, прежде чем стали обычными компонентами современных микропроцессоров. Кроме того, моделирование также позволяет преподавателям преподавать курсы по компьютерной организации и архитектуре, используя практический опыт.
Для моделирования компьютерного оборудования на уровне системы см. полное моделирование системы .
Классификация
[ редактировать ]Моделирование микроархитектуры можно разделить на несколько категорий в зависимости от типов входных данных и уровня детализации. В частности, входными данными может быть трассировка, полученная при выполнении программы на реальном микропроцессоре (так называемое моделирование, управляемое трассировкой) или сама программа (так называемое моделирование, управляемое выполнением).
Моделирование на основе трассировки [1] считывает фиксированную последовательность записей трассировки из файла в качестве входных данных. Эти записи трассировки обычно представляют собой, среди прочего, ссылки на память, результаты ветвей или конкретные машинные инструкции. Хотя известно, что трассировочное моделирование сравнительно быстрое и его результаты хорошо воспроизводимы, оно также требует очень большого объема памяти. С другой стороны, моделирование, управляемое исполнением [2] читает программу и моделирует выполнение машинных инструкций на лету. Файл программы обычно на несколько величин меньше файла трассировки. Однако моделирование, управляемое выполнением, намного медленнее, чем моделирование, управляемое трассировкой, поскольку оно должно обрабатывать каждую инструкцию одну за другой и обновлять все состояния задействованных компонентов микроархитектуры. Таким образом, выбор типов входных данных для моделирования — это компромисс между пространством и временем. В частности, очень подробная трассировка для высокоточного моделирования требует очень большого объема памяти, тогда как очень точное моделирование, основанное на выполнении, требует очень много времени для выполнения всех инструкций в программе.
Помимо типов входных данных, для классификации моделирования также можно использовать уровень детализации. В частности, часть программного обеспечения, которая имитирует микропроцессор, выполняющий программу на циклической основе, известна как симулятор с точностью до цикла , тогда как симулятор набора команд моделирует только выполнение программы на микропроцессоре с точки зрения инструкции. планировщик вместе с грубым таймингом выполнения инструкций. Большинство классов информатики по компьютерной архитектуре с практическим опытом используют симуляторы набора команд в качестве инструментов для обучения, тогда как симуляторы с точностью до цикла используются в основном для исследовательских проектов из-за сложности и потребления ресурсов.
Использование
[ редактировать ]Симуляторы микроархитектуры используются для самых разных целей. Это позволяет исследователям оценивать свои идеи без необходимости изготовления настоящего микропроцессорного чипа, что является дорогостоящим и трудоемким процессом. Например, моделирование микропроцессора с тысячей ядер и несколькими уровнями кэш-памяти требует очень небольших затрат по сравнению с изготовлением прототипа чипа. Исследователи также могут экспериментировать с несколькими конфигурациями иерархии кэша, используя разные модели кэша в симуляторе, вместо того, чтобы создавать новый чип каждый раз, когда они хотят протестировать что-то новое.
Еще одно применение симулятора микроархитектуры - в образовании. [3] Учитывая, что курс компьютерной архитектуры знакомит студентов с множеством различных функций микропроцессора и его архитектур, симулятор микроархитектуры идеально подходит для моделирования и экспериментирования с различными функциями и архитектурами в течение семестра. Например, в начале семестра студенты могут начать с симулятора микроархитектуры, который моделирует простую конструкцию микропроцессора. По ходу семестра можно моделировать и добавлять в симулятор дополнительные функции, такие как конвейеризация инструкций , переименование регистров , станции резервирования , выполнение вне очереди и табло по мере их внедрения в классе. Симулятор микроархитектуры обеспечивает гибкость реконфигурации и тестирования с минимальными затратами.
Примеры
[ редактировать ]- Оттенок [4] (трассировочный симулятор набора команд)
- Простой скаляр [5] [6] (симулятор с точностью до цикла, управляемый выполнением)
- SPIM [7] (симулятор набора команд, управляемый выполнением)
- СМТСИМ [8] (симулятор с точностью до цикла, управляемый выполнением)
- Мульти2Сим (2007)
- GPGPU-Sim (2007), производный от SimpleScalar
Ссылки
[ редактировать ]- ^ Улиг, Р.А., и Мадж, Теннесси (2004). Моделирование памяти на основе трассировки: обзор. Обзоры вычислительной техники ACM , 29 (2), 128–170.
- ^ Бургер Д. и Остин ТМ (1997). Набор инструментов Simplescaler версии 2.0. Новости компьютерной архитектуры , 25(3), 13-25.
- ^ Скадрон, К. (1996). Обзорный курс по микропроцессорам для изучения продвинутой компьютерной архитектуры. В материалах конференции ACM SIGCSE 2002 г., 152–156.
- ^ Цмелик, РФ, и Кеппель, Д. (1994). Shade: быстрый симулятор набора инструкций для профилирования выполнения. Обзор оценки производительности ACM SIGMETRICS , 22(1), 128-137.
- ^ Остин Т., Ларсон Э. и Эрнст Д. (2002). SimpleScalar: инфраструктура для моделирования компьютерных систем. Компьютерный журнал IEEE , 35(2), 59-67.
- ^ Д. Бургер и ТМ Остин. Набор инструментов SimpleScalar, версия 2.0. http://www.simplescalar.com , 1997.
- ^ Паттерсон, Д.А., и Хеннесси, Дж.Л. (2011). Компьютерная организация и дизайн: аппаратно-программный интерфейс , Морган Кауфманн.
- ^ Таллсен, DM (1996). Моделирование и моделирование одновременного многопоточного процессора. В материалах 22-й ежегодной конференции группы компьютерных измерений.