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

Apr 01, 2004 0 Replies



> Hello, Arcady!
>
> Понедельник Март 29 2004 12:19, Arcady Schekochikhin wrote to Sergey Shopin:
>
> AS> Даже если и можно - .то HЕ HУЖHО. Это в первую очередь зависит от того
> AS> что за прерывания и что за ОС.
> источник - pci'ная платка с ацп.
> ОС: Windows XP. Делать будем драйвер, так что думаю ОС не имеет принципиального
> значения. Если все остальное на компе будет работать очееееень медленно, то
> ничего страшного.

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


Можно и в DOS сделать.
>
> AS> Hынешние ОС используют поллинг на таких скоростях.
> Что такое "поллинг" в данном контексте?

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



> ps: это не для промышленных применений. Это будет стенд потом - лабы
> показывать. С финансами туго, поэтому надо попробовать сделать на том, что
> есть. Если уж не получится, то возьмем что-нить более подходящее для задачи.

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


Аркадий

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required