Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Скорость выполнения кода из флеша и ОЗУ у Cortex-M3
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
pirx
С одной стороны у Cortex-M3 при выполнении кода из ОЗУ для выборки команд и данных будет использоваться лишь одна шина.
Но с другой стороны на больших тактовых частотах приходится включать дополнительную задержку перед чтением из флеша (для STM32F103 два периода тактовой частоты при 48 MHz < SYSCLK <= 72 MHz, если я правильно понял даташит).
Будет проигрыш или выигрыш в скорости при размещении кода в ОЗУ?
Проверить на практике мне затруднительно – нужно разбираться со скриптами линкера и прочим.
ukpyr
Цитата
Но с другой стороны на больших тактовых частотах приходится включать дополнительную задержку перед чтением из флеша
там есть prefetch buffer, при включении которого задержка флеша нивелируется:
Цитата
"Prefetch buffer (2 x 64-bit blocks): it is enabled after reset; a whole block can be
replaced with a single read from the Flash memory as the size of the block matches the
bandwidth of the Flash memory. Thanks to the prefetch buffer, faster CPU execution is
possible as the CPU fetches one word at a time with the next word readily available in
the prefetch buffer"
Flexz
Учитывайте что у флешки в этих МК широкая шина и за один цикл обращения считывается ЕМНИП 128 бит, применительно к F103. Поэтому простой линейный код не страдает от расположения во фшелке. А вот с ветвящимся не так однозначно, с одной стороны при ветвлениях будет возникать задержка по обращению к флешу (если код во флешке), а с другой - ветвящийся код обычно активно работает с данными, поэтому задержка будет возникать и на шине данных (если код в озу), а если с оперативкой еще и DMA контроллер работает - будет только хуже.

Так что пишите код во флешку и не заморачивайтесь.
kan35
У STM32F2 и STM32F4 есть еще кэш, называемый ART. Он разделен на кэш инструкций и кэш данных, предсказывает ветвления. Заявляется что 99% кода выполняется с 0-м waitstate.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.