coolibin
Apr 20 2009, 16:18
Согласно документации инструкции b и bl выполняются за 2*S + N циклов, где, я так понял, S - это последовательный цикл, N - непоследовательный, причем N цикл длится немного дольше. Вот здесь уже не понятно на сколько дольше и вообще хотелось бы узнать как правильно сделать задержку на определенное время? и существуют какие нибудь профайлеры или типа того, с помощью которых можно измерить скорость выполнения той или иной функции?
aaarrr
Apr 20 2009, 17:43
N-цикл, так же как S- и любой другой, может быть расширен, если того требует контроллер памяти. Например, если доступ к памяти осуществляется без тактов ожидания, то время выполнения инструкций B и BL составит 3 такта, с одним - 6 тактов и т.д.
Как правило, симуляторы позволяют загрузить свою карту памяти для точной симуляции. Ну, и следует заметить, наверное, что в большинстве случаев добиться "cycle exact" задержек не представляется возможным в виду наличия работающего DMA, MAM etc.