Важная информация

User Tag List

Страница 2 из 4 ПерваяПервая 1234 ПоследняяПоследняя
Показано с 11 по 20 из 38

Тема: Кадровые прерывания ( 50гц ).

  1. #11
    Activist
    Регистрация
    18.04.2015
    Адрес
    г. Люберцы
    Сообщений
    342
    Спасибо Благодарностей отдано 
    103
    Спасибо Благодарностей получено 
    31
    Поблагодарили
    26 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Elvys Посмотреть сообщение
    У любого прерывания есть приоритет. И если совпадет во времени прерывание, имеющее более высокий приоритет и прерывание от кадров, то хочешь - не хочешь, а процессор его пропустит.
    Пропустит может только если в интервале между прерываниями не будет времени у процессора на обработку (запретят прерывания надолго, либо будут приходить постоянно более приоритетные прерывания). Обычно будет откладываться по времени момент обработки прерываний и только когда их несколько учитывается приоритет (исключение вложенные прерывания).

    Цитата Сообщение от Elvys Посмотреть сообщение
    Это может привести не только к спецэффектам но и к зависанию выполняющейся в данный момент программы. Как такие ситуации решаются?
    У Z80 есть только два прерывания IRQ и NMI (последний на классическом спектруме не используется). Так что там попросту нет проблем с приоритетами - источник прерывания один: не обработали в этот раз, так прерывание придёт в следующий раз.

    Когда прерываний физически несколько, то тут уже спасает выделенный для этих целей контроллер прерываний, в нем запоминает факт прерываний приходящих по фронту сигнала, учитывает приоритет и если нужно формируется вектор прерывания для процессора, по завершению обработки прерывания процессор контроллер прерываний получает сообщений об этом и внутри контроллера прерываний сбрасывается. В случае если по одному входу до обработки пришло несколько сигналов о прерывании, то такая ситуация фиксируется в программно доступных регистрах контроллера и/или формируется отдельное прерывание об этом в процессор.

  2. #12
    Member
    Регистрация
    12.01.2014
    Адрес
    г. Краснодар
    Сообщений
    124
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Как бы, считал что у Z80 для прерывания используется вход INT а не NMI. Схема ленина тому подтверждение.

  3. #13
    Guru Аватар для null_device
    Регистрация
    26.09.2009
    Адрес
    г. Красноярск
    Сообщений
    3,099
    Спасибо Благодарностей отдано 
    22
    Спасибо Благодарностей получено 
    84
    Поблагодарили
    68 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Elvys, как бы - эти два вывода учавствуют в работе процессора с прерываниями. Загляните в даташит:
    INT Interrupt Bequest - Запрос прерывания
    Вход. Активный уровень - низкий. Сигнал /INT, формируемый устройством ввода- вывода, анализируется в конце выполнения текущей команды. Запрос учитывается, если триггер прерываний (IFF1), управляемый программно, установлен в состояние "разрешить прерывании", и не активен сигнал /ВUSRQ

    NMI Non Maskable Interrupt - Немаскируемый запрос прерывания
    Вход, запускаемый отрицательным фронтом. Фронт запуска активизирует внутренний триггер NMI. Линия /NMI имеет более высокий приоритет, чем /INT и всегда распознается в конце выполнения текущей команды, независимо от состояния триггера разрешения прерываний. /NMI автоматически производит перезапуск (рестарт) ЦП с адрес 66H. Содержимое счётчика команд (адрес возврата) автоматически сохраняется во внешнем стеке. Т.о. пользователь может возвратиться к прерванной программе.
    Когда есть, но не знаешь где - это все равно, что нету.

  4. #14
    Member
    Регистрация
    12.01.2014
    Адрес
    г. Краснодар
    Сообщений
    124
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я вот и свожу все к контроллеру прерываний (хоть спектруму и не светит). Есть RTC - это высший приоритет в системе, есть RS-232 , клавиатура, контроллер НГМД, монитор питания ( это уже обработка по NMI ), дисплей со своими кадровыми прерываниями... По логике, эти самые кадровые прерывания будут иметь низший приоритет в системе с контроллером приоритетных прерываний. И следовательно, иногда их обработка может быть пропущена.

  5. #15
    Veteran
    Регистрация
    26.11.2013
    Адрес
    г. Новосибирск
    Сообщений
    1,042
    Спасибо Благодарностей отдано 
    934
    Спасибо Благодарностей получено 
    227
    Поблагодарили
    122 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Elvys Посмотреть сообщение
    Я вот и свожу все к контроллеру прерываний (хоть спектруму и не светит).
    Ну, а для чего?
    Чтобы научиться качаться на качелях не обязательно знать тензорное исчисление. Для того качели и сделаны, чтобы качаться и наслаждаться их простотой.

  6. #16
    Guru Аватар для null_device
    Регистрация
    26.09.2009
    Адрес
    г. Красноярск
    Сообщений
    3,099
    Спасибо Благодарностей отдано 
    22
    Спасибо Благодарностей получено 
    84
    Поблагодарили
    68 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    К сожалению, в ПЗУ «СПЕКТРУМА» в процедуре обработки немаскируемого прерывания «NMI» содержится грубая ошибка (кто знает - случайна ли она?), благодаря которой обработка «NMI» или приводит к рестарту компьютера с нулевого адреса, или не дает никаких результатов, производя обычный возврат в точку, откуда было вызвано прерывание.
    Оно используется "волшебной кнопкой" BDI, при его наличии.

    Цитата Сообщение от Elvys Посмотреть сообщение
    Я вот и свожу все к контроллеру прерываний
    А еще "второе прерывание" используется таким девайсом, как AMX-mouse
    Последний раз редактировалось null_device; 30.09.2015 в 11:32.
    Когда есть, но не знаешь где - это все равно, что нету.

  7. #16
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  8. #17
    Member
    Регистрация
    12.01.2014
    Адрес
    г. Краснодар
    Сообщений
    124
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Вообще, хотел только понять, в чем смысл иметь в компьютере прерывания с частотой обновления экрана и нельзя ли от них отказаться. Уяснил, что это прерывание очень нужное, что бы получить жесткий реалтайм при выполнении некоторых программ. Теперь вот пытаюсь понять, как быть с ситуациями, когда есть несколько прерываний с разными приоритетами и что делать что бы не терять прерывания.

    Как то решалось же это на ibm pc xt....
    Последний раз редактировалось Elvys; 30.09.2015 в 11:47. Причина: Дополнение

  9. #18
    Guru Аватар для null_device
    Регистрация
    26.09.2009
    Адрес
    г. Красноярск
    Сообщений
    3,099
    Спасибо Благодарностей отдано 
    22
    Спасибо Благодарностей получено 
    84
    Поблагодарили
    68 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Elvys Посмотреть сообщение
    Теперь вот пытаюсь понять, как быть с ситуациями, когда есть несколько прерываний с разными приоритетами
    Таких ситуаций - на спектруме, в принципе не так, чтобы много.

    Цитата Сообщение от Elvys Посмотреть сообщение
    Как то решалось же это на ibm pc xt
    Специальным набором микросхем (для Z80 CPU это, вроде Z80 PIO).

    Цитата Сообщение от Elvys Посмотреть сообщение
    что делать что бы не терять прерывания.
    Не совсем понятно, что под этим подразумевается?
    Когда есть, но не знаешь где - это все равно, что нету.

  10. #19
    Member
    Регистрация
    12.01.2014
    Адрес
    г. Краснодар
    Сообщений
    124
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Не терять прерывания, это я о том, что скажем во время дисковых операций музыка не хрипела и картинка не тормозила. Т.к. прерывания от контроллера дисковода имеют более высокий приоритет и приходить будут часто. Пересылками то процессор занимается.

  11. #20
    Super Moderator Аватар для Ewgeny7
    Регистрация
    03.07.2005
    Адрес
    Санкт-Петербург
    Сообщений
    10,168
    Спасибо Благодарностей отдано 
    146
    Спасибо Благодарностей получено 
    76
    Поблагодарили
    51 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Как сказал бы ААА, прерывание нужно, чтобы VNN (помним тебя...) мог рисовать свои шедевры на бордюре... Таки да, другим путем это не сделать, даже если обвесить спектрум всякими контроллерами прерываний. Прерывание "начало кадра" - самое важное на свете
    ScorpEvo ZS 1024 turbo+ CF-HDD/FDD/Mouse/SMUC 3.1/ProfROMse/NeoGS/ZC
    Speccy-2007 128/AY/TR-DOS

    Сайт с документацией к "Scorpion ZS 256"

Страница 2 из 4 ПерваяПервая 1234 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. какой тайминг прерывания Z80?
    от Руслан в разделе Несортированное железо
    Ответов: 3
    Последнее: 20.03.2013, 14:41
  2. Использование стека и прерывания
    от drbars в разделе Программирование
    Ответов: 21
    Последнее: 16.12.2012, 12:47
  3. Прерывания IM 2
    от GM BIT в разделе Программирование
    Ответов: 12
    Последнее: 21.01.2011, 23:52
  4. Ответов: 1
    Последнее: 03.05.2009, 23:06
  5. IM2, вектор прерывания
    от Jukov в разделе Программирование
    Ответов: 18
    Последнее: 20.09.2006, 09:32

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •