Как Gem5 принимает и декодирует исполняемые файлы от пользователя? - PullRequest
2 голосов
/ 15 марта 2020

Например:

/ home / gem5 / build / X86 / gem5.opt --debug-flags = TLB, кэш /home/gem5/configs/example/se.py --cpu -type = DerivO3CPU --caches --mem-type = SimpleMemory -I 10000 - c out --options = "1 in_16.txt out.txt" >> test2.txt

Жирная часть в SE CLI для Gem5 показывает мой вклад в это. Как именно Gem5 обрабатывает это и получает инструкции для моделирования? Какие файлы я должен искать для этого? Насколько я знаю, ни один учебник не упоминает об этом.

1 Ответ

1 голос
/ 15 марта 2020

out - это обычный исполняемый пользовательский файл ELF , например, C hello world, такой же, как те, которые вы запускаете на своем Linux хосте.

Использование динамически Связанный исполняемый файл описан в: Как запустить динамически связанный исполняемый файл в режиме эмуляции системного вызова se.py в gem5? , так что обычно статическое связывание проще.

gem5 анализирует формат ELF, помещает память в правильные местоположения, помещает P C в правильное местоположение и запускает симуляцию, точно так же, как системный вызов exec ядра Linux будет .

Несколько запускаемых примеров доступны здесь .

...