-
- Это я уже понял... Как код выровнять? - IBAH(20.01.2025 23:38)
- Я не программист и не понимаю, как вообще код (не данные!) может быть невыровненным для исполнения его АЛУ микроконтроллера? По-моему вы не
там копаете. - reZident(20.01.2025 23:42)
- Всё там. Вы забываете, что код не исполняется напрямую из FLASH, а
читается в кэш из более широкой шины памяти. Флеш медленнее
процессора. И, чтобы не тормозить выполнение кода, за раз читается
кратно больше бит, чем занимает одна команда процессора. Таким
образом, скорость линейной подачи команд достаточна для выполнения
процессором на полной скорости. Nikolay_Po(63 знак., 20.01.2025 23:52)
- В корневом сообщении написано Cortex-M0 и тактовая 32МГц. Какой еще
кэш при таких условиях? - reZident(21.01.2025 01:42)
- Флеш до 24МГц, обычно. И 128 или 256 бит шириной. В любом случае,
пусть хоть и одна строка, но кэш (как его ни называй) есть. И
ожидание после смены адреса из-за латентности флеш есть. И одно
дело, когда ногодрыг помещается в одну строку "кэша", другое -
когда не помещается. И постоянно требуется переход на другую строку
флеш с ожиданием данных. - Nikolay_Po(21.01.2025 09:48)
- Ну ОК. Я почему-то думал, что при частотах для которых разработано
ядро Cortex-M0 при любой флеш-памяти будет 0_wait_state и кеш там в
лучшем (или худшем?) случае одноуровневый на ширину одной
"слово-команды". В конце концов это же не какой-нибудь Cortex-A53 с
частотой 1ГГц. - reZident(21.01.2025 11:10)
- Для примера, LPC4370 сделали в 2012 году (вроде бы). Там два
вспомогательных CM0 с рабочей частотой 204 МГц. Правда, там флеша
нет совсем. - SciFi(21.01.2025 11:20)
- Дык я не спорю. Когда-то отложилось в голове, что M0 это малопотребляющее "медленное" ядро и дальше я не углублялся. - reZident(21.01.2025 11:27)
- А RP2040 у меня вчера завелся на 300 МГц. - Гyдвин(21.01.2025 11:23)
- Разгон? По пачпорту вот что обещают: SciFi(1 знак., 21.01.2025 11:30, картинка)
- Ой там разгон - 7%. - Kpoк(21.01.2025 17:12)
- Просто в дурине ткнул вот сюда, оно и завелось в двух ядрах ;) Гyдвин(1 знак., 21.01.2025 11:41, картинка)
- Разгон? По пачпорту вот что обещают: SciFi(1 знак., 21.01.2025 11:30, картинка)
- Для примера, LPC4370 сделали в 2012 году (вроде бы). Там два
вспомогательных CM0 с рабочей частотой 204 МГц. Правда, там флеша
нет совсем. - SciFi(21.01.2025 11:20)
- Там в мануале на несколько страниц расписано. Ширина 32 разряда, есть предвыборка, которая может на несколько процентов улучшить дристоны. SciFi(1 знак., 21.01.2025 10:11, картинка)
- Ну ОК. Я почему-то думал, что при частотах для которых разработано
ядро Cortex-M0 при любой флеш-памяти будет 0_wait_state и кеш там в
лучшем (или худшем?) случае одноуровневый на ширину одной
"слово-команды". В конце концов это же не какой-нибудь Cortex-A53 с
частотой 1ГГц. - reZident(21.01.2025 11:10)
- В даташыте сказано, что там 32-разрядные слова. А многие инструкции процессора 16-разрядные. Так что вот так вот, эффекты от выравнивания возможны, коли есть wait states. - SciFi(21.01.2025 08:12)
- Флеш до 24МГц, обычно. И 128 или 256 бит шириной. В любом случае,
пусть хоть и одна строка, но кэш (как его ни называй) есть. И
ожидание после смены адреса из-за латентности флеш есть. И одно
дело, когда ногодрыг помещается в одну строку "кэша", другое -
когда не помещается. И постоянно требуется переход на другую строку
флеш с ожиданием данных. - Nikolay_Po(21.01.2025 09:48)
- В корневом сообщении написано Cortex-M0 и тактовая 32МГц. Какой еще
кэш при таких условиях? - reZident(21.01.2025 01:42)
- Всё там. Вы забываете, что код не исполняется напрямую из FLASH, а
читается в кэш из более широкой шины памяти. Флеш медленнее
процессора. И, чтобы не тормозить выполнение кода, за раз читается
кратно больше бит, чем занимает одна команда процессора. Таким
образом, скорость линейной подачи команд достаточна для выполнения
процессором на полной скорости. Nikolay_Po(63 знак., 20.01.2025 23:52)
- Я не программист и не понимаю, как вообще код (не данные!) может быть невыровненным для исполнения его АЛУ микроконтроллера? По-моему вы не
там копаете. - reZident(20.01.2025 23:42)
- Это я уже понял... Как код выровнять? - IBAH(20.01.2025 23:38)