WikiDer > Моделирование микроархитектуры
Микроархитектура симуляция это важный метод в компьютерная архитектура исследования и Информатика образование. Это инструмент для моделирования конструкции и поведения микропроцессор и его компоненты, такие как ALU, кэш-память, устройство управления, и путь к данным, среди прочего. Моделирование позволяет исследователям исследовать пространство проектирования, а также оценивать производительность и эффективность новых функций микроархитектуры. Например, несколько компонентов микроархитектуры, такие как предикторы ветвления, буфер переупорядочения, и кеш трассировки, прошли многочисленные циклы моделирования, прежде чем стали обычными компонентами современных микропроцессоров. Кроме того, моделирование также позволяет преподавателям преподавать курсы компьютерной организации и архитектуры на практическом опыте.
Для моделирования компьютерного оборудования на системном уровне см. полное моделирование системы.
Классификация
Моделирование микроархитектуры можно разделить на несколько категорий в соответствии с типами ввода и уровнем детализации. В частности, входными данными может быть трассировка, собранная в результате выполнения программы на реальном микропроцессоре (так называемое моделирование, управляемое трассировкой) или сама программа (так называемое моделирование, управляемое исполнением).
Симуляция на основе трассировки[1] читает фиксированную последовательность записей трассировки из файла в качестве входных данных. Эти записи трассировки обычно представляют собой, среди прочего, ссылки на память, результаты переходов или конкретные машинные инструкции. Несмотря на то, что моделирование на основе трассировки, как известно, является сравнительно быстрым и его результаты хорошо воспроизводимы, для него также требуется очень большой объем памяти. С другой стороны, симуляция, управляемая исполнением[2] читает программу и имитирует выполнение машинных инструкций на лету. Программный файл обычно на несколько порядков меньше, чем файл трассировки. Однако моделирование, управляемое выполнением, намного медленнее, чем моделирование, управляемое трассировкой, поскольку оно должно обрабатывать каждую инструкцию по очереди и обновлять все состояния задействованных компонентов микроархитектуры. Таким образом, выбор типов входных данных для моделирования - это компромисс между пространством и временем. В частности, очень подробная трассировка для высокоточного моделирования требует очень большого объема памяти, в то время как очень точное моделирование, управляемое выполнением, занимает очень много времени для выполнения всех инструкций в программе.
Помимо типов ввода, уровень детализации также может использоваться для классификации моделирования. В частности, часть программного обеспечения, имитирующая микропроцессор, выполняющий программу на пошаговой основе, известна как симулятор с точностью до цикла, в то время как симулятор набора команд только моделирует выполнение программы на микропроцессоре глазами планировщика инструкций вместе с приблизительной синхронизацией выполнения инструкций. Большинство классов информатики по компьютерной архитектуре с практическим опытом используют имитаторы с набором инструкций в качестве инструментов для обучения, тогда как симуляторы с точностью до цикла развертываются в основном для исследовательских проектов из-за сложности и потребления ресурсов.
Использование
Симуляторы микроархитектуры используются для различных целей. Это позволяет исследователям оценивать свои идеи без необходимости изготовления настоящего микропроцессорного чипа, что является дорогостоящим и требует много времени. Например, моделирование микропроцессора с тысячей ядер и несколькими уровнями кэш-памяти требует очень небольших затрат по сравнению с изготовлением прототипа микросхемы. Исследователи также могут поиграть с несколькими конфигурациями иерархии кеша, используя разные модели кеша в симуляторе, вместо того, чтобы создавать новый чип каждый раз, когда они хотят протестировать что-то другое.
Еще одно применение симулятора микроархитектуры - образование.[3] Учитывая, что курс компьютерной архитектуры учит студентов множеству различных функций микропроцессора и его архитектур, симулятор микроархитектуры идеален для моделирования и экспериментов с различными функциями и архитектурами в течение семестра. Например, студенты могут начать с симулятора микроархитектуры, который моделирует простую конструкцию микропроцессора в начале семестра. По мере прохождения семестра дополнительные функции, такие как конвейерная обработка инструкций, зарегистрировать переименование, станции бронирования, внеочередное исполнение, и табло, можно смоделировать и добавить в тренажер по мере их представления в классе. Симулятор микроархитектуры обеспечивает гибкость реконфигурации и тестирования с минимальными затратами.
Примеры
- Оттенок[4] (управляемый трассировкой симулятор набора команд)
- SimpleScalar[5] (управляемый, точный по циклу симулятор)
- СПИМ[6] (управляемый исполнением симулятор набора команд)
- СМЦИМ[7] (управляемый, точный по циклу симулятор)
Рекомендации
- ^ Улиг, Р. А., и Мадж, Т. Н. (2004). Моделирование памяти на основе трассировки: обзор. Опросы ACM Computing, 29(2), 128-170.
- ^ Бургер Д. и Остин Т. М. (1997). Набор инструментов Simplescalar версии 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.
- ^ Паттерсон, Д. А., и Хеннесси, Дж. Л. (2011). Организация и дизайн компьютера: аппаратно-программный интерфейс, Морган Кауфманн.
- ^ Таллсен, Д. М. (1996). Моделирование и моделирование одновременного многопоточного процессора. В материалах 22-й ежегодной конференции группы компьютерных измерений.