реклама на сайте
подробности

 
 
> количество циклов команды
ve4e
сообщение Feb 18 2015, 17:55
Сообщение #1





Группа: Новичок
Сообщений: 3
Регистрация: 18-02-15
Пользователь №: 85 240



Здравствуйте.
Как узнать за сколько циклов выполняется команда на ARM ?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
gerber
сообщение Feb 18 2015, 21:01
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 750
Регистрация: 1-11-11
Пользователь №: 68 088



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


--------------------
"... часами я мог наблюдать, как люди работают." (М. Горький)
Go to the top of the page
 
+Quote Post
jcxz
сообщение Feb 19 2015, 03:31
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(gerber @ Feb 19 2015, 03:01) *
В связи с этим знание количества циклов выполнения собственно ядром ничего не решает и нужно разве что из спортивного любопытства.

В МК с кешем более 90% выборок кода (а то и данных) могут выполняться из кеша.
И, при правильной организации ПО, наиболее часто используемые данные располагаются во внутренней ОЗУ, которая как я понимаю обычно - 0-wait state.
К тому-же SDRAM для Cortex-M (к примеру) - скорее исключение и в основном он используется без внешней ОЗУ, а значит и данные расположены во внутренней.

И даже если выборки идут напрямую из внутренней флешь, то тоже не всё так печально.
Например: в Tiva (семейство Cortex-M от TI) хоть внутренняя флешь работает на частоте 20МГц, но шина к ней - 256-битная, что даже на линейном коде сплошь состоящем из 4-байтовых команд, обеспечивает
предвыборку и выполнение кода на максимальной частоте CPU ==120МГц без тактов ожидания.

На более взрослых ARM, кеш кода/данных уже (как правило) обязательно наличествует (и большего объёма), так что там % кеш-промахов при выполнении кода ещё меньше.

Так что - любопытство скорее не спортивное wink.gif
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 5th August 2025 - 19:33
Рейтинг@Mail.ru


Страница сгенерированна за 0.01419 секунд с 7
ELECTRONIX ©2004-2016