pirx 0 12 августа, 2013 Опубликовано 12 августа, 2013 · Жалоба С одной стороны у Cortex-M3 при выполнении кода из ОЗУ для выборки команд и данных будет использоваться лишь одна шина. Но с другой стороны на больших тактовых частотах приходится включать дополнительную задержку перед чтением из флеша (для STM32F103 два периода тактовой частоты при 48 MHz < SYSCLK <= 72 MHz, если я правильно понял даташит). Будет проигрыш или выигрыш в скорости при размещении кода в ОЗУ? Проверить на практике мне затруднительно – нужно разбираться со скриптами линкера и прочим. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ukpyr 0 12 августа, 2013 Опубликовано 12 августа, 2013 (изменено) · Жалоба Но с другой стороны на больших тактовых частотах приходится включать дополнительную задержку перед чтением из флешатам есть 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" Изменено 12 августа, 2013 пользователем ukpyr Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flexz 0 12 августа, 2013 Опубликовано 12 августа, 2013 · Жалоба Учитывайте что у флешки в этих МК широкая шина и за один цикл обращения считывается ЕМНИП 128 бит, применительно к F103. Поэтому простой линейный код не страдает от расположения во фшелке. А вот с ветвящимся не так однозначно, с одной стороны при ветвлениях будет возникать задержка по обращению к флешу (если код во флешке), а с другой - ветвящийся код обычно активно работает с данными, поэтому задержка будет возникать и на шине данных (если код в озу), а если с оперативкой еще и DMA контроллер работает - будет только хуже. Так что пишите код во флешку и не заморачивайтесь. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kan35 7 15 августа, 2013 Опубликовано 15 августа, 2013 · Жалоба У STM32F2 и STM32F4 есть еще кэш, называемый ART. Он разделен на кэш инструкций и кэш данных, предсказывает ветвления. Заявляется что 99% кода выполняется с 0-м waitstate. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться