Моделирование микроархитектуры - Microarchitecture simulation

Моделирование микроархитектуры - важный метод висследованиях компьютерной архитектуры иобразовании в области информатики . Это инструмент для моделирования конструкции и поведения микропроцессора и его компонентов, таких как ALU , кэш-память , блок управления и путь данных, среди прочего. Моделирование позволяет исследователям исследовать пространство проектирования, а также оценивать производительность и эффективность новых функций микроархитектуры. Например, несколько компонентов микроархитектуры, такие как предикторы ветвлений , буфер переупорядочения и кэш трассировки , прошли через многочисленные циклы моделирования, прежде чем стали обычными компонентами в современных микропроцессорах. Кроме того, симуляция также позволяет преподавателям преподавать компьютерные курсы по организации и архитектуре с практическим опытом.

Для моделирования компьютерного оборудования на системном уровне см. Полное моделирование системы .

Классификация

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

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

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

Использование

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

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

Примеры

  • Shade (управляемый трассировкой, имитатор набора команд)
  • SimpleScalar (симулятор с точностью до цикла, управляемый выполнением)
  • SPIM (управляемый исполнением симулятор набора команд)
  • SMTSIM (симулятор с точностью до цикла, управляемый исполнением)

Ссылки

внешние ссылки