SII писал(а):
Совершенно верно. ИА-32 в системах реального времени (и то не очень реального -- в смысле, не требующего сверхбыстрой реакции) применяются только в виде специализированных процессорных плат с заранее известным набором устройств: только тогда можно точно указать наихудшую задержку, вносимую периферией. Тем не менее, предсказуемость поведения ИА-32 в любом случае остаётся невысокой, поэтому они не очень-то применимы к задачам реального времени. У других архитектур с этим обычно получше, но в любом случае система жёсткого реального времени -- это не только строго определённый процессор, но ещё и строго определённые другие компоненты аппаратуры, строго определённая ОС и строго определённые задачи. На соответствие требованиям ЖРВ проверяется весь программно-аппаратный комплекс как единое целое, а не его отдельные элементы.
Это все понятно, что при разработке системы реального времени, используются специальные специальные жестко определенные наборы программного и аппаратного обеспечения для которых известны их временные характеристики (в том числе и процессор). Но традиционно такие системы разрабатывают так, чтобы было относительно просто рассчитать время максимальной задержки. To есть должна быть какая-то формула, рассчитывающая общую задерку в обработке прерывания, на основании существующих данных предоставляемых производителем каждого компонента системы. Соответственно, должна быть какая-то формула или числовое значение определяющая засть задержки обеспечиваемую непосредственно процессором. То есть даже если мы создадим систему состоящую из идеальных компонентов предоставляющих нулевые задержки и реального процессора, то у нашей системы будет задержка в обработке прерывания, но вся эта задержка будет обеспечиваться исключительно процессором. Вот меня и интересует эта максимальная задержка. А лучше формула позволяющая оценить задержку в тактах, количестве обращений к памяти, к внешним устройствам. например Х = 48 тактов + 2 * простейший_доступ_ к_памяти.
pavia писал(а):
Обращение к портам может занимать тысячи тактов.
Я об этом тоже думал. Но тут остается открытым вопрос: инструкции in\out - прерывные или не прерывные?
pavia писал(а):
Интересно, а как это выглядит?
Как я уже упоминал выше. Каждый компонент в системе поставляется с характеристикой вносимой им задержки. Создавая систему учитывает задержки по наихудшему сценарию.
Himik писал(а):
А наверно в многопроцессорной системе может возникнуть даже небольшая очередь к внешней шине - очередь из обращений к портам.
Да-да-да, все влият на задержку. доступ к памяти - это вообще отдельная тема. На него влияют собственно производительность шины процессор-память, стоимость промохов кэшей и TLB, DMA, SMP многопроцессорность. В общем - это совсем беда.