Как выглядят входные данные трассировки, предоставляемые симуляторам, управляемым трассировкой?

#memory-management #trace #cpu-architecture #simulator #branch-prediction

#управление памятью #трассировка #архитектура процессора #тренажёр #прогнозирование ветвей

Вопрос:

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

Симулятор, управляемый трассировкой: для выполнения тестовой программы / программного обеспечения в собственном двоичном коде ISA используется реальная машина. Этот двоичный файл обычно инструментируется (модифицируется) таким образом, что при выполнении каждой команды информация, такая как операционный код инструкции, адрес данных и информация о ветвлении, записывается в файл трассировки. Позже эти трассировки считываются в симулятор, который может работать на любой машине (другой ISA) и анализируются для изучения производительности.

Симулятор, управляемый выполнением: тест выполняется напрямую. Одновременно с выполнением программы выполняется исследование производительности.

Можете ли вы объяснить, как выглядят трассировки (входные данные для симулятора, управляемого трассировкой)? В целом я знаю, что в нем должны быть такие вещи, как код операции, ссылки на память, результаты ветвления и т. Д. Что еще нужно сохранить, чтобы симулятор не сталкивался с проблемами при запуске / запуске теста с резкой точки (т. Е. Не с самого начала)?