Инструкция по времени на ARM Cortex-m3 (в частности, LPC1343) - PullRequest
4 голосов
/ 26 июля 2010

Я хочу написать очень чувствительный ко времени код на LPC1343, где мне нужно считать точные тактовые циклы.Есть две проблемы: -

  1. Я читал, что код, выполняющийся из внутренней флэш-памяти, не всегда может работать на полных 72 МГц, и могут быть введены состояния ожидания.Но я не могу найти "официальный" документ об этом.Я видел одно место, в котором рекомендовалось копировать чувствительные ко времени функции в оперативную память ... Я ищу либо однозначно сказать, что этого не происходит, либо информацию о том, как это влияет на время.

  2. Сколько времени занимают инструкции филиала?Я читал, что у этого ядра есть предсказание ветвления, поэтому время может меняться. Это правильно, и если да, есть ли способ предсказать, как оно будет себя вести, или отключить это (поскольку точное время важнее, чем сохранение нескольких тактов для меня).

Ответы [ 2 ]

2 голосов
/ 25 августа 2010

Вот некоторые реальные исследования LPC11xx и LPC13xx: http://knowledgebase.nxp.com/showthread.php?t=460

Короче говоря, нет «правильного» ответа, результаты могут зависеть от настроек ускорителя флэш-памяти, выравнивания памяти, архитектуры шины (neumann vsГарвард), 32-битные и 16-битные инструкции и т. д.

2 голосов
/ 26 июля 2010

Синхронизация команд для Cortex-M3 доступна по адресу arm.com:

http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0337g/BABBCJII.html

Также существуют конвейерные операции, поэтому подсчет команд немного затруднен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...