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

Тема в разделе "WASM.BEGINNERS", создана пользователем Schaman, 27 авг 2010.

  1. Schaman

    Schaman New Member

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

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Schaman
    Несколько железячных тиков, если диспетчер первого прерывания его не размаскирует. О какой вы минимизации говорите, запрос на прерывание от железа не контролируемый. Бред.
     
  3. Schaman

    Schaman New Member

    Публикаций:
    0
    Регистрация:
    26 авг 2010
    Сообщения:
    14
    Что за Система такая "неконтролируемая"
    Доигрались программеры - роботы наступают!
     
  4. 984259h

    984259h New Member

    Публикаций:
    0
    Регистрация:
    25 авг 2007
    Сообщения:
    194
    Schaman
    Мне в унивеве препод один говорил все на столько верно что я с ним не могу согласится )
     
  5. SII

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

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    Время от поступления сигнала запроса прерывания на процессор до начала его обработки (при условии, что само прерывание разрешено: если оно запрещено, то, понятное дело, обработка не будет начата, пока её не разрешат) зависит, по большому счёту, от трёх вещей: от режима процессора, от типа обработчика прерывания (шлюз прерывания, шлюз ловушки, шлюз задачи) и, наконец, от микроархитектурных особенностей самого процессора, т.е. от его модели. Подробно можно поискать в документации, но не уверен, что найти получится, но, исходя из здравого смысла, -- от нескольких единиц до нескольких сотен тактов (зависит от объёма информации, которую придётся сохранять и загружать при переходе на обработчик прерывания). В любом случае, это время не является строго фиксированным хотя бы потому, что в момент прихода прерывания процессор может выполнять "длинную" команду (например, деление), до завершения которой приступить к обработке прерывания невозможно.
     
  6. Medstrax

    Medstrax Забанен

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    673
    Добавлю, разрешенные прерывания могут быть вытеснены другими эксепшнами.
    Поэтому будут обработаны только по завершении более приоритетных хэндлеров.
     
  7. SZ

    SZ New Member

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

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

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

    Medstrax Забанен

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    673
    Частота проца не роляет. Частота шины, да
     
  10. SII

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

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    medstrax1
    Играет, играет. Если ядро одинаково (например, Core 2), а на смену контекста требуется 50 тактов, какой проц быстрей при прочих равных его выполнит -- на 3,2 или на 2,33 ГГц?
     
  11. Medstrax

    Medstrax Забанен

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

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

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    Ну так обычно под временем реакции на прерывание понимают время от момента возникновения запроса до начала выборки первой инструкции обработчика этого прерывания.
     
  13. Schaman

    Schaman New Member

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

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

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    В принципе, можно, но это нарушит нормальную работу системы (если я правильно понял вопрос, конечно).
     
  15. Schaman

    Schaman New Member

    Публикаций:
    0
    Регистрация:
    26 авг 2010
    Сообщения:
    14
    Что нужно, чтобы написать такой драйверок?
    Можно ли будет восстановить работу системы(xp)?
     
  16. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Schaman
    IoConnectInterrupt(). Дров получит управление как ISR.
     
  17. Schaman

    Schaman New Member

    Публикаций:
    0
    Регистрация:
    26 авг 2010
    Сообщения:
    14
    Краткость сестра таланта!!!!!!!!!!
    Я как beginner все сразу понял>:lol:
     
  18. Schaman

    Schaman New Member

    Публикаций:
    0
    Регистрация:
    26 авг 2010
    Сообщения:
    14
    Нарисуйте пжста такой драйвер для примера,
    с чего начать не представляю?
    Неужели всю винду придется учить?
    А есть совместимые и виндой ОС
    реального времени?
     
  19. SII

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

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    По-настоящему -- нету. А учить придётся не всю, но очень изрядную часть. Нельзя писать компоненты системы и не поминать, как система работает.
     
  20. Schaman

    Schaman New Member

    Публикаций:
    0
    Регистрация:
    26 авг 2010
    Сообщения:
    14
    Тогда может есть доступные ос реал.вр. для ПК?
    Они наверно попроще будут?