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

 
 
 
Reply to this topicStart new topic
> 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
Lagman
сообщение Sep 15 2013, 13:08
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 875
Регистрация: 28-10-05
Пользователь №: 10 245



Как у STM32 не знаю, а если интересно по Renesas, то они говорят что в rx600 флеш работает на частоте процессора.
Go to the top of the page
 
+Quote Post
adnega
сообщение Sep 15 2013, 13:23
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 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
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 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
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 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
Lagman
сообщение Sep 16 2013, 15:21
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 875
Регистрация: 28-10-05
Пользователь №: 10 245



Цитата(adnega @ Sep 15 2013, 18:57) *
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 Текстовая версия Сейчас: 20th July 2025 - 01:43
Рейтинг@Mail.ru


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