Re: современные x86 и прерывания

Именно что ОС имеет значение. Вопрос как раз в том - сколько действий надо произвести для обработки прерывания (для источника данных - извлечь данные, проверить статусы, буферизовать данные, дать знать вышележащему уровню). Опять таки - разделяемые ли прерывания - ведь иначе разруливатель будет вызван и он уже будет звать все обработчики. Далее - если это не PCI master то значит данные надо извлекать из регистров - а это всегда медленно - хорошо хоть не ISA регистры. Нормально сделанное железо при таких скоростях включает в себя ФИФО и группирование прерываний (одно прерывание на кучу событий). Еще лучше когда пишется прямо в память в выделенные буфера - но все равно это данные потом придется отдавать на верхний уровень - но хотьне 500000 раз в секунду.

Когда устройство буферизует данные и вместо прерывания просто выставляет флаг в регистре или в памяти, а ОС каждые N ms (например) вызывает для всех участвующих драйвер специальную точку входа. Драйвер смотрит - если данных нет то отвалить. Да - лишняя работа - но зато для всех драйверов - всего одно переключение контекста.

Не очень понятно - "если все остально будет работать медленно..." - суть стенда именно в ПОКАЗАТЬ. То есть вас интересует полный цикл - от прихода данных до отображения!

Аркадий

Reply to
Arcady Schekochikhin
Loading thread data ...

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.