Dir (15.06.2010 11:23 - 11:33, просмотров: 173) ответил leon_n на У, как вы меня сразу то))) Не бейте сильно, виноват кое в чем был не прав, но флеш все же работает медленно! Упростил программу, и измерил всё ещё раз более внимательно, была ошибка, команда чтения(LDR) из ОЗУ всего то 1 такт, как и должно, быть, а вот
То, что у STR9 (ARM966) выполнение из флэши тормозное - это фича, а не баг. Флэш и сам МК там на разных кристаллах в одном корпусе расположены. Для того там и большая TCM предусмотрена чтобы ускориться. http://ru.renesas.com/products/mpumcu/superh/child_folder/sh_roadmap.jsp
Эти АРМы скорее исключение в этом смысле, чем правило. И вместо того, чтобы открывать Америку и заниматься измерениями, можно было бы просто почитать мануалы на ARM966 и STR9 и все бы стало на свое место.
Вообще то все АРМы используют достаточно медленную флеш. В большей или меньшей степени. Самая, наверное, быстрая флэш у LM3S - работает на частоте 50МГц. У других медленнее и вставляются такты ожидания. Чтобы ускорить выборку у LPC используется 128-битная шина доступа к флеш и MAM-акселератор. Поэтому в LPC17 утверждают, что эквивалентная скорость выборки из флэш - 1такт на частотах до 120МГц. У STM32 шина флэш-памяти 64-битная, поэтому с доступом к флеш там похуже.
Но в общем и целом все особенности работы с флеш практически ВО ВСЕХ случаях прекрасно документированы и заниматься садомазохизмом с измерениями времени выполнения команд из флеша нет смысла, т.к. это время зависит от множества факторов.
Но если вам действительно нужен реальный однотактовый доступ к флеш, предсказуемое выполнение программных loop-ов и не волнуют деньги - посмотрите на SuperH. Скорее всего SH2.