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

 
 
> STM32 скорость работы во флеш
paskal
сообщение Sep 15 2013, 12:58
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 352
Регистрация: 29-10-06
Из: Тула
Пользователь №: 21 769



Есть положим STM32F103, у него максимальная тактовая 72 МГц. Будет ли процессор реально работать на этой частоте если программа выполняется из внутренней флеш памяти? Или там будут какие то задержки при выборке команд? Ведь флеш считается медленной памятью.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
adnega
сообщение Sep 15 2013, 13:23
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



Цитата(paskal @ Sep 15 2013, 16:58) *
Есть положим STM32F103, у него максимальная тактовая 72 МГц. Будет ли процессор реально работать на этой частоте если программа выполняется из внутренней флеш памяти? Или там будут какие то задержки при выборке команд? Ведь флеш считается медленной памятью.

Тут над архитектурой постарались не только ST, но и ARM.
Буфер предвыборки и отдельная ICode-шина делают все возможное, чтобы медленная Flash не влияла на производительность.
В случае линейно исполниемого кода работа идет на частоте ядра. Простые условные операции хорошо выполняются IT-блоками.
Нужно еще постараться, чтобы код из ОЗУ выполнялся быстрее, чем из Flash.
Go to the top of the page
 
+Quote Post
paskal
сообщение Sep 15 2013, 14:43
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 352
Регистрация: 29-10-06
Из: Тула
Пользователь №: 21 769



Цитата(adnega @ Sep 15 2013, 17:23) *
В случае линейно исполниемого кода работа идет на частоте ядра.

Но зачем тогда на частоту 72 МГц настраиваются задержки в регистре FLASH_ACR? В документе pm0042 расписано что до 24 МГц поле LATENCY записывается без тактов ожидания, до 56 МГц - 1 такт ожидания, а выше 2 такта.
Go to the top of the page
 
+Quote Post
adnega
сообщение Sep 15 2013, 14:57
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



Цитата(paskal @ Sep 15 2013, 18:43) *
Но зачем тогда на частоту 72 МГц настраиваются задержки в регистре FLASH_ACR? В документе pm0042 расписано что до 24 МГц поле LATENCY записывается без тактов ожидания, до 56 МГц - 1 такт ожидания, а выше 2 такта.

Flash память медленная и выборки с частотой 24Мгц для нее потолок.
При работе на частоте 72МГц при включенном буфере предвыборки из Flash читается не одно слово, а сразу четыре (128 бит).
Следующие четыре слова читаются с двумя тактами ожидания. Но пока Flash ожидает, ядро выбирает инструкции из тех четырех слов,
которые были перед этим считаны и находятся в буфере предвыборки.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 31st July 2025 - 06:52
Рейтинг@Mail.ru


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