Цитата(SII @ Oct 11 2012, 10:40)

Да всё это понятно, но, если скорость обработки настолько критична, что считать приходится отдельные такты (а сохранение/загрузка регистров и тому подобные действия -- это именно несколько тактов), то следует подумать о переходе на более мощный контроллер или, например, использовать ПЛИС.
Дополнительный блок регистров, это лишь бонус. Если мы рассматриваем nested interrupts (для запрета вложенных прерываний необходимость FIQ и так очевидна, имхо), то, при достаточно разветвленной системе прерываний и наличии приоритетов, программная реализация NVIC - это не только упомянутый stacking/ustacking, но еще и очередь приоритетов, что всегда - компромисс между скоростью и возможностями. И уж точно не несколько тактов. В лучшем случае - несколько десятков тактов. Плюсом, любое менее приоритетное прерывание, хоть и не будет вытеснено, но может затормозить обработчик на время проверки приоритетов. Так что, в обоих случаях, быстрый FIQ может найти свое применение.