Профилирование теста, скомпилированного для SPARC v8 на x86

Я пытаюсь сделать (небольшое) улучшение процессора leon3 (набор инструкций - SPARC v8) для академического упражнения. Прежде чем я решу, что нужно улучшить, я хочу описать пару программ тестирования, для которых я хочу адаптировать улучшения.

У меня нет доступа к машине SPARC v8.

В настоящее время я использую ознакомительную версию tsim (симулятора leon3), которая выполняет профилирование на функциональном уровне. Что на самом деле не так уж и полезно.

Я пробовал странные вещи, такие как компиляция с включенным развертыванием цикла, а затем подсчет интересных инструкций в коде сборки, но gcc отказывается развертывать циклы, вероятно, потому, что некоторые из них заходят слишком глубоко (например, 4 вложенных цикла for).

В идеале я ищу симулятор SPARC v8, который запускает тест и профилирует его на уровне инструкций (такие вещи, как: 'smul' выполнялся x раз), чтобы я мог решить, с чего начать с улучшением. Конечно, если есть другие способы сделать это, если не профайлер, я не буду возражать.

Любые идеи?


person ArjunShankar    schedule 13.05.2011    source источник
comment
1) Развертывание, вероятно, имеет смысл только в самом внутреннем цикле и только в том случае, если его содержимое очень легкое. (Вы всегда можете развернуть цикл самостоятельно.) 2) Может ли cachegrind выполнить синхронизацию этой инструкции? (Я не знаю.)   -  person Mike Dunlavey    schedule 13.05.2011
comment
Cachegrind работает на Valgrind, который, к сожалению, не поддерживает SPARC. : /   -  person BjoernD    schedule 13.05.2011


Ответы (2)


Возможным вариантом может стать моделирование процессора в Modelsim. С помощью Modelsim вы можете выполнить функциональное моделирование всего процессора LEON3. Хотя симуляция будет довольно медленной и, вероятно, будет полной излишней для ваших целей, но Aeroflex Gaisler предоставляет отличные скрипты для работы с Modelsim.

Студенческую версию modelsim можно найти здесь:

http://www.mentor.com/company/higher_ed/modelsim-student-edition

person Maurice    schedule 27.10.2013
comment
Прошло более двух лет с тех пор, как я решил эту проблему, и в конечном итоге я решил использовать ModelSim. С тех пор я никогда не возвращался, чтобы обновить этот вопрос. Это должен быть правильный ответ, и я это отмечаю. - person ArjunShankar; 28.10.2013

Если вы действительно хотите вникнуть в аппаратное обеспечение, вы найдете полезный симулятор, который поможет вам в этом.

На ум приходит Simics. Раньше у них были бесплатные академические лицензии, но, поскольку они были куплены Intel, теперь вам нужно подать заявку на лицензию, что, по моему опыту, занимает пару недель. Если вы готовы инвестировать на этот раз, вы обязательно получите инструмент, который соответствует вашим потребностям, хотя они поддерживают LEON2, а не LEON3, в качестве модели, но для профилирования это должно быть хорошо.

Qemu также имеет поддержка LEON, но, поскольку они сильно перекомпилированы, с его помощью, вероятно, будет сложно профилировать на уровне инструкций.

person BjoernD    schedule 13.05.2011