Если программа и данные находятся еще и не в разных банках - тогда снижение производительности может еще больше быть У флэши наверняка своя шина. При выполнении программы из флэш, команды идут по одной шине, данные для предыдущей команды в это же время идут из СДРАМ.
Если у вас программа в СДРАМ, при этом она активно общается с данными в этой же памяти, да еще и ветвится - то на шину нагрузка возрастает очень сильно. А если еще и в одном банке - тогда добавляются еще расходы на переключение рядов/столбцов в СДРАМ.