Время обработки прерывания

Discussion in 'WASM.BEGINNERS' started by Schaman, Aug 27, 2010.

  1. Schaman

    Schaman New Member

    Blog Posts:
    0
    Joined:
    Aug 26, 2010
    Messages:
    14
    Какой минимальный интервал времени
    до начала обработки прерывания внешнего устройства
    возможно получить на ПК(проц intel 3200ггц)
    Накидайте драйверок для хр который бы минимизировал
    данный интервал.
     
  2. Clerk

    Clerk Забанен

    Blog Posts:
    0
    Joined:
    Jan 4, 2008
    Messages:
    6,689
    Location:
    РБ, Могилёв
    Schaman
    Несколько железячных тиков, если диспетчер первого прерывания его не размаскирует. О какой вы минимизации говорите, запрос на прерывание от железа не контролируемый. Бред.
     
  3. Schaman

    Schaman New Member

    Blog Posts:
    0
    Joined:
    Aug 26, 2010
    Messages:
    14
    Что за Система такая "неконтролируемая"
    Доигрались программеры - роботы наступают!
     
  4. 984259h

    984259h New Member

    Blog Posts:
    0
    Joined:
    Aug 25, 2007
    Messages:
    194
    Schaman
    Мне в унивеве препод один говорил все на столько верно что я с ним не могу согласится )
     
  5. SII

    SII Воин против дзена

    Blog Posts:
    0
    Joined:
    Oct 31, 2007
    Messages:
    1,483
    Location:
    Подмосковье
    Время от поступления сигнала запроса прерывания на процессор до начала его обработки (при условии, что само прерывание разрешено: если оно запрещено, то, понятное дело, обработка не будет начата, пока её не разрешат) зависит, по большому счёту, от трёх вещей: от режима процессора, от типа обработчика прерывания (шлюз прерывания, шлюз ловушки, шлюз задачи) и, наконец, от микроархитектурных особенностей самого процессора, т.е. от его модели. Подробно можно поискать в документации, но не уверен, что найти получится, но, исходя из здравого смысла, -- от нескольких единиц до нескольких сотен тактов (зависит от объёма информации, которую придётся сохранять и загружать при переходе на обработчик прерывания). В любом случае, это время не является строго фиксированным хотя бы потому, что в момент прихода прерывания процессор может выполнять "длинную" команду (например, деление), до завершения которой приступить к обработке прерывания невозможно.
     
  6. Medstrax

    Medstrax Забанен

    Blog Posts:
    0
    Joined:
    Jul 18, 2006
    Messages:
    673
    Добавлю, разрешенные прерывания могут быть вытеснены другими эксепшнами.
    Поэтому будут обработаны только по завершении более приоритетных хэндлеров.
     
  7. SZ

    SZ New Member

    Blog Posts:
    0
    Joined:
    Aug 19, 2010
    Messages:
    30
    Критичные по времени обработки сигналы обрабатываются специализированными выносными модулями.
    Будь то приставка осциллограф или привод шагового двигателя, а ПК используется только для взаимодействия с пользователем (принять данные/показать результат). В этих модулях используются микроконтроллеры (MicroChip, Atmel и т.д.). Например, если у моего любимого PIC16F84A кварц на 4МГц, то частота командных циклов 1Мгц (1 мкс). Переход на прерывание занимает 2 команд.цикла, значит переход на обработку внешнего прерывания займёт 2 мкС (~ +1мкС - время на синхронизацию с внутренним тактом МК), и это в лучшем случае, если не требуется сохранение контекста и прерывание единственное разрешённое. Если нет то + обход флагов прерываний с целью найти виновника.
    имхо, для ПК задержку можно определить только эмпирическим путём и на разных машинах она будет разной.
     
  8. SII

    SII Воин против дзена

    Blog Posts:
    0
    Joined:
    Oct 31, 2007
    Messages:
    1,483
    Location:
    Подмосковье
    Максимально возможную задержку можно определить точно, имея необходимую документацию, но она будет различаться в зависимости от чипсета и процессора (как минимум). С микроконтроллерами, особенно простыми (типа упомянутого ПИКа или 8-разрядных АТмег), всё проще и понятней -- в немалой степени благодаря тому, что там отсутствуют побочные факторы в виде внешней памяти, кэша и т.п. Правда, зачастую даже максимальное время реакции ПК на прерывание будет меньше, чем у означенных микроконтроллеров, но связано это с намного большей частотой (и производительностью) ПКшных процов.
     
  9. Medstrax

    Medstrax Забанен

    Blog Posts:
    0
    Joined:
    Jul 18, 2006
    Messages:
    673
    Частота проца не роляет. Частота шины, да
     
  10. SII

    SII Воин против дзена

    Blog Posts:
    0
    Joined:
    Oct 31, 2007
    Messages:
    1,483
    Location:
    Подмосковье
    medstrax1
    Играет, играет. Если ядро одинаково (например, Core 2), а на смену контекста требуется 50 тактов, какой проц быстрей при прочих равных его выполнит -- на 3,2 или на 2,33 ГГц?
     
  11. Medstrax

    Medstrax Забанен

    Blog Posts:
    0
    Joined:
    Jul 18, 2006
    Messages:
    673
    Мм, возможно мы говорим о разных вещах. Я имел в виду саму реакцию проца на внешний интеррапт. Независимо от возможности выполнить его обработку, проц "помнит" (pending) о прерывании, и начинает его хэндлить сразу по завершении текущей инструкции,если нет более приоритетных событий. Сам вход в хэндлер, понятно, может занять любое время в зависимости от частоты. Но сам факт принятия процом сигнала прерывания зависит только от частоты шины
     
  12. SII

    SII Воин против дзена

    Blog Posts:
    0
    Joined:
    Oct 31, 2007
    Messages:
    1,483
    Location:
    Подмосковье
    Ну так обычно под временем реакции на прерывание понимают время от момента возникновения запроса до начала выборки первой инструкции обработчика этого прерывания.
     
  13. Schaman

    Schaman New Member

    Blog Posts:
    0
    Joined:
    Aug 26, 2010
    Messages:
    14
    вот теперь кое что проясняется, спсбо за ценную инфу!
    А плз еще нескромный вопрос новичка:
    Можно ли с помощью например драйвера
    заставить проц в ядерном режиме ждать прерывание,
    ну а по команде юзера вернуться где был (хр)
     
  14. SII

    SII Воин против дзена

    Blog Posts:
    0
    Joined:
    Oct 31, 2007
    Messages:
    1,483
    Location:
    Подмосковье
    В принципе, можно, но это нарушит нормальную работу системы (если я правильно понял вопрос, конечно).
     
  15. Schaman

    Schaman New Member

    Blog Posts:
    0
    Joined:
    Aug 26, 2010
    Messages:
    14
    Что нужно, чтобы написать такой драйверок?
    Можно ли будет восстановить работу системы(xp)?
     
  16. Clerk

    Clerk Забанен

    Blog Posts:
    0
    Joined:
    Jan 4, 2008
    Messages:
    6,689
    Location:
    РБ, Могилёв
    Schaman
    IoConnectInterrupt(). Дров получит управление как ISR.
     
  17. Schaman

    Schaman New Member

    Blog Posts:
    0
    Joined:
    Aug 26, 2010
    Messages:
    14
    Краткость сестра таланта!!!!!!!!!!
    Я как beginner все сразу понял>:lol:
     
  18. Schaman

    Schaman New Member

    Blog Posts:
    0
    Joined:
    Aug 26, 2010
    Messages:
    14
    Нарисуйте пжста такой драйвер для примера,
    с чего начать не представляю?
    Неужели всю винду придется учить?
    А есть совместимые и виндой ОС
    реального времени?
     
  19. SII

    SII Воин против дзена

    Blog Posts:
    0
    Joined:
    Oct 31, 2007
    Messages:
    1,483
    Location:
    Подмосковье
    По-настоящему -- нету. А учить придётся не всю, но очень изрядную часть. Нельзя писать компоненты системы и не поминать, как система работает.
     
  20. Schaman

    Schaman New Member

    Blog Posts:
    0
    Joined:
    Aug 26, 2010
    Messages:
    14
    Тогда может есть доступные ос реал.вр. для ПК?
    Они наверно попроще будут?