-
- Это чётко - когда работа идёт из кэша. А когда случилось ветвление,
промах - тут уже может зависеть от места расположения данных во
флеш, от выравнивания. Может, какие архитектурные нюансы, типа
пересечения границы страницы и прочее... - Nikolay_Po(07.03.2025 09:29)
- Да, как мне кажется я и подобрался к этим архитектурным нюансам.
Вот и захотелось прояснить насколько получится и как это объяснить.
Ядро V2 достаточно простое, исхожу из того что кеша нет (могу
ошибаться, но подтверждения, что кеш есть тоже не видел). Может
быть есть какой-то буфер для префетча. По аналогии с другими МК WCH
предполагаю, что программа работает из теневого RAM, куда программа
перекочевала из флеш при загрузке. В месте кода где различия
обращение идет только к petrd(4 знак., 07.03.2025 09:48)
- Вроде бы доках упоминают flash wait states, это не бьётся с
"теневым ОЗУ". - SciFi(07.03.2025 10:02)
- Почему-же. В V20x V30x одновременно есть и zero-wait и
non-zero-wait. Для V003 может и не так, но суть моего вопроса не в
этом. - petrd(07.03.2025 10:20)
- Лёгкость мысли необычайная. Предлагаю разделить факты и предположения. Это как бы важно. - SciFi(07.03.2025 10:34)
- Теневое ОЗУ это для шустрых чипов за сотню МГЦ. - Andreas(07.03.2025 10:04)
- Почему-же. В V20x V30x одновременно есть и zero-wait и
non-zero-wait. Для V003 может и не так, но суть моего вопроса не в
этом. - petrd(07.03.2025 10:20)
- Чуть выше Zikon дал ссылку на статью, в которой сразу обращают внимание на то, что в один 32-бит регистр за раз попадает две 16-бит команды - это уже по сути мелкий кэш. - Vit(07.03.2025 09:52)
- Вроде бы доках упоминают flash wait states, это не бьётся с
"теневым ОЗУ". - SciFi(07.03.2025 10:02)
- Да, как мне кажется я и подобрался к этим архитектурным нюансам.
Вот и захотелось прояснить насколько получится и как это объяснить.
Ядро V2 достаточно простое, исхожу из того что кеша нет (могу
ошибаться, но подтверждения, что кеш есть тоже не видел). Может
быть есть какой-то буфер для префетча. По аналогии с другими МК WCH
предполагаю, что программа работает из теневого RAM, куда программа
перекочевала из флеш при загрузке. В месте кода где различия
обращение идет только к petrd(4 знак., 07.03.2025 09:48)
- Это чётко - когда работа идёт из кэша. А когда случилось ветвление,
промах - тут уже может зависеть от места расположения данных во
флеш, от выравнивания. Может, какие архитектурные нюансы, типа
пересечения границы страницы и прочее... - Nikolay_Po(07.03.2025 09:29)