Здравствуйте, netch80, Вы писали:
N>И сидят три процессора и рулят каждый своим шаговым двигателем, отсчитывая nopʼами задержку... ой, нет трёх процессоров? Какой облом. Значит, таймеры в софте, очередь ближайших срабатывающих (ну, сделана массивом или вообще явным тестом
Каким "тестом"?
Что тестировать-то?
Просто в цикле крутишь несколько счетчиков параллельно, при обнулении счетчика выдаёшь сигнал.
Причем, в одном слове можно располагать несколько счетчиков обычно.
N>на каждой итерации — неважно)? А как же пункт 1?
Это ты слишком сложные для себя вопросы пока задаешь. ))
V>>2. Точность таймера с учётом времени реакции на прерывание может не удовлетворять требуемым скоростям (скоростям обработки детали, например).
N>Это же какой контроллер надо подобрать, чтобы он на прерывание реагировал дольше, чем длится 2-3 команды?
Любой, с длиной конвейера больше 2-х, вестимо.
В любом случае, для сценари использования таймера "выдай мне прерывание через столько-то времени" (а там именно такой сценарий) — это будет накопление ошибки, бо обычно у тебя нет никакой информации о том, сколько действительно времени потребовалось на реакцию на таймер. А когда таймеров более одного, ты находишься в обработке прерывания одного из них, прерывания от других запрещены... Дальше продолжать или уже догадался?
N>Там должны быть кэш DRAM, OoO исполнение команд... ой, а откуда это он у нас такой? Кто его сюда поставил?
Ну вот опять. В неприличной форме напрашиваешься на грубый ликбез.
Скучно...