[an error occurred while processing this directive]
Я намекаю на то, что Ваше мнение про существенную разницу между 8 приемниками и 1 с восьмикратным потоком из концентратора может оказаться заблуждением.
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Oldring 12 ноября 2002 г. 16:57
В ответ на: не очень понял к чему клоните? отправлено net 12 ноября 2002 г. 15:56

Во первых, прерывания не обязаны идти по приходу байта. Более того, в высокоскоростных портах прерывания не должны идти по сразу по приходу каждого байта - иначе, дествительно, процессор будет только их и обрабатывать. Пример - USART в ARM.

Ладно, допустим, прерывания генерятся по приходу очередного байта. Пусть идет суммарный поток N символов в секунду. Рассмотрим два случая: время обработки прерывания равно 0.5/N и это время равно 3/N.

1. 0.5/N При приходе символа в очередной (пустой) порт сразу возникает прерывание и символ оттуда удаляется. Легко видеть, что общий поток прерываний равен N в секунду вне зависимости от примененной схемы.

2. 3*N Если у нас много буферов - действительно, за время обработки прерывания придет еще три символа, скорее всего, в другие порты. Таким образом, действительно, второй прерывание нужно будет обрабатывать сразу же после завершения предыдущего, и ни на что другое времени уже не останется.

Что же произойдет в последнем случае при наличии одного приемника? Действительно, обработчик прерывания выкачает из его буфера все пришедшие байты. Только вспомним, что при обработке таких простых прерываний основное время тратится на переключения контекста и сохранение/восстановление регистров. Можно считать, что это время равно 1.5*N. Т. е. после выкачивания символов из буфера до выхода из прерывания заведомо прийдет еще один символ, и, опять, не останется времени ни для какой полезной работы.

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru