Всем привет!
Нужно интеллектуальное усиление

... возможно будет длинно, но не знаю как изложить короче... простите
Есть 2 исполнительных модуля, которые принимают, входные воздействия с определенной временной дискретностью 1 мкСек. Для этого на них заведен синхросигнал и все заданные до сигнала данные по фронту в обоих устройствах защелкиваются.
Есть идея ядра процессора, работающего на частоте 100 МГц, управляющего модулями. Устройства висят на его шине как периферия. Процессор без конвейера, работает так
1 такт проверка флага прерывания
1 такт выбор команды (в случае прерывания подмена на переход в обработчик)
4-12 тактов обращение в периферию или регистры (чтение операнда 1)
4-12 тактов обращение в периферию или регистры (чтение операнда 2)
2 такта декодирвание и выполнение команды
4-12 тактов обращение в перефирию или регистры (запись результата)
1 такт перестановка счетчика команд
и того на выполнение команды может уйти от 17 до 41 такта, то есть процессор имеет все возможности в 1 временной дискрет задать значение обоих модулей для обеспечения их синхронной работы. Но проблема заключается в том что может так получиться что в 1 модуль он запишет до синхросигнала, а в другой после, и модули разойдутся, начнут работать не синхронно.
То есть нужна какая то команда ожидания фронта синхросигнала, чтобы процессор ничего не делал до фронта, и как его увидит шел дальше. Это позволит гарантированно синхронизировать задачу параметров. И вот тут вопрос как реализовать эту команду?
Если эту команду сделать как и прочие, то она может быть очень долгой и ничего из нее хорошего не выйдет, фронт может случиться в начале команды, аузнаем о нем через 40 тактов, и оставшихся 60 может не хватить на задачу 2 модулей.
Если ее сделать какой-то особенной, то не понятно что делать с прерывания. Если их обрабатывать параллельно, то они могут "разрезать" выполнение команды, наверное это не очень хорошо, потому обрабатываю их перед каждой командой, но особеная команда будет немного рушить повторяемость.
Опять же выделение особенной команды требует перенести такт декодирования команды выше чтения 2 операндов, и получается что команды становятся все разные, а это усложнит ядро процессора и сожрет все ЛУТы, сейчас же все команды отрабатываются одинаково.
В общем прошу поделиться своими мыслями, по этому вопросы. Как бы сделали вы. И так далее... мне кажется что настало время просто с кем-то поговорить, потому что все решения что я придумал мне не нравятся, не изящные они какие-то
П.С. Задачу 2 устройствам данных за 1 команду не канает, обновление обоих нужно, но редко, и раздувать размер команды ради этого нельзя. Но точное понимание в каком такте задаются входные воздействия строго необходимы, потому даже это не решает проблемы.