Цитата(Шаманъ @ May 25 2016, 16:19)

Аналогичную цифру для stm32f7xx я уже приводил выше - 2.14DMIPS/MHz можете посмотреть сами у STM в доках.
Вот типичный код для M4:
Код
LDRB R2,[R1, #+0]
STRB R2,[R0, #+0]
LDRB R2,[R1, #+1]
STRB R2,[R0, #+1]
LDRB R2,[R1, #+2]
STRB R2,[R0, #+2]
LDRB R2,[R1, #+3]
SUBS R2,R2,#+1
STRB R2,[R0, #+3]
LDRB R2,[R1, #+4]
SUBS R2,R2,#+1
STRB R2,[R0, #+4]
MOVW R2,#+2011
LDRB R1,[R1, #+5]
ADD R1,R1,#+2000
CMP R1,R2
IT CC
ADDCC R1,R1,#+100
STRH R1,[R0, #+6]
BX LR
За сколько тактов выполнится на M7 и на ARM9? Считая что нет ожиданий памяти и т.п. Правильно - примерно одинаково.
Всё эти DMIPS-ы достигаются на сложных а-ля DSP командах, выполняющих несколько операций за команду. В обычном коде (не процедуры сигнальной обработки) такхи команд встречается оч. мало.
А такой код будет выполняться быстрее на CPU с большей тактовой.
Или M7 сможет автоматически запараллелить выполнение каких-то команд из этого кода?
Цитата(Шаманъ @ May 25 2016, 16:19)

Да огромный выигрыш, как же. Если основная программа выполняет инструкцию с загрузкой/выгрузкой нескольких регистров (а их может быть и 10, и больше), то пока она не закончится Вы даже не сможете начать обрабатывать прерывание.
И что? Ну пускай не может прервать. Только это всего одна команда.
А Cortex-M на вход/выход потратит одну такую операцию на вход (8 сохранений контекста),
потом в ISR надо загрузить как минимум один указатель да рабочую область ОЗУ с переменными, загрузить все переменные, перед завершением все переменные выгрузить (если нужно), восстановить контекст (8 чтений). Разницу ощущаете?
Цитата(Шаманъ @ May 25 2016, 16:19)

Вам если и нужно, то MPU, а не MMU. MMU нужно если Вы собрались виртуальные адресные пространства организовывать и подобные вещи. Обычно это нужно когда будут запускаться сторонние программы - т.е. речь о совсем других системах. Кстати Cortex-M7 может быть с MPU

MPU у меня везде используется, но он слишком слаб: всего 8 регионов, минимальная гранулярность 32 байта (вроде) и регионы должны быть выровнены на границы кратные размеру. Это очень сильно сокращает возможности защиты. MMU не только для виртуализации, он и по защите гораздо более гибок. И кешем данных можно управлять удобнее с помощью него.