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

User Tag List

Страница 30 из 120 ПерваяПервая ... 262728293031323334 ... ПоследняяПоследняя
Показано с 291 по 300 из 1192

Тема: Эмулятор УКНЦ - EmuStudio

  1. #291
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,777
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    61 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    На 1801ВМ2 при возврате по RTT и если при возврате устанавливается бит T в PSW, то блок обработки прерываний не запускается, т.е. безусловно выполняется команда нового процесса. Если же при возврате бит T не был установлен, то прерывания не запрещаются.
    У 1801ВМ1 всё просто - бит Т запрещает обслуживание IRQ, а команда WAIT на время своего выполнения (которое продолжается, пока на шине есть хоть один запрос IRQ) отменяет этот запрет.

    Поскольку во время выполнения единственной команды WAIT обслуживаются ВСЕ "накопившиеся" запросы IRQ - из этого (насколько я понимаю) следует, что приоритет Т-трапа ниже приоритета IRQ.

    Часто пишут, что приоритет Т-трапа выше, чем приоритет IRQ, но у 1801ВМ1 это точно не так.

    Думаю, что и у ВМ2 - тоже.

  2. #292
    Guru Аватар для form
    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,823
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    281
    Поблагодарили
    227 сообщений
    Mentioned
    29 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Поскольку во время выполнения единственной команды WAIT обслуживаются ВСЕ запросы IRQ - из этого (насколько я понимаю) следует, что приоритет Т-трапа ниже приоритета IRQ.
    Приоритет тут неуместен. Это синхронное прерывание, возникающее сразу же при установке T бита по команде RTI без шансов для другого прерывания и без возможности выполнить инструкцию до прерывания по т-биту. RTT дает такой шанс.
    Есть правда процы где RTT команды нет, а RTI работает как RTT.

    Причем RTI/RTT - единственный способ вызвать прерывание по T-биту.
    Последний раз редактировалось form; 17.02.2012 в 21:28.
    PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
    Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
    PMI: KDJ11-BF, MSV11-JE
    VT220, CM7209

  3. #293
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,777
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    61 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от form Посмотреть сообщение
    Приоритет тут неуместен.
    Когда обслуживания ждут несколько прерываний - первым обслуживается прерывание с большим приоритетом.

    Когда обслуживание IRQ не запрещено - все прерывания IRQ подряд обслуживаются раньше, чем возникает очередной Т-трап.

    Т.е. после единственной команды WAIT - при выходе из обработчика первого внешнего прерывания по RTI - в PSW восстанавливается бит Т, но если на шине есть ещё запросы IRQ - Т-трап не происходит, а происходит вход в очередное внешнее прерывание. И только когда на шине не остаётся запросов IRQ - "магический эффект команды WAIT" заканчивается и снова вступает в силу блокировка обслуживания IRQ при установленном бите T в PSW.

  4. #294
    Guru Аватар для form
    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,823
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    281
    Поблагодарили
    227 сообщений
    Mentioned
    29 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Когда обслуживания ждут несколько прерываний - первым обслуживается прерывание с большим приоритетом.
    Приоритет уместен для асинхронных прерываний. T-бит - синхронное прерывание вроде BPT, IOT, EMT. Команда WAIT вообще не в тему: если возврат по RTI, то прерывание по T-биту сразу и возникнет, если по RTT - прерывание будет отложено и у другого прерывания есть шанс.
    PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
    Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
    PMI: KDJ11-BF, MSV11-JE
    VT220, CM7209

  5. #295
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,777
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    61 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от form Посмотреть сообщение
    Приоритет уместен для асинхронных прерываний. T-бит - синхронное прерывание вроде BPT, IOT, EMT. Команда WAIT вообще не в тему: если возврат по RTI, то прерывание по T-биту сразу и возникнет, если по RTT - прерывание будет отложено и у другого прерывания есть шанс.
    Это утверждение справедливо лишь абстрактно.

    Если говорить конкретно про 1801ВМ1 - то всё обстоит совершенно иначе. После возврата из первого после команды WAIT аппаратного прерывания по RTI - никакого Т-трапа не происходит до тех пор, пока на шине есть хотя бы одно необслуженное прерывание.

    И только когда все внешние прерывания обслужены - бит Т снова "начинает работать". Т.е. если возврат из последнего обработчика аппаратного прерывания был по RTI - то Т-трап происходит сразу, а если по RTT - то через одну команду.

    ---------- Post added at 20:46 ---------- Previous post was at 20:45 ----------

    Кроме того - бит Т полностью блокирует внешние прерывания, поэтому после RTT - никаких "шансов" у внешних прерываний не возникает.

  6. #296
    Guru Аватар для form
    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,823
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    281
    Поблагодарили
    227 сообщений
    Mentioned
    29 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Это утверждение справедливо лишь абстрактно.

    Если говорить конкретно про 1801ВМ1 - то всё обстоит совершенно иначе. После возврата из первого после команды WAIT аппаратного прерывания по RTI - никакого Т-трапа не происходит до тех пор, пока на шине есть хотя бы одно необслуженное прерывание.

    И только когда все внешние прерывания обслужены - бит Т снова "начинает работать". Т.е. если возврат из последнего обработчика аппаратного прерывания был по RTI - то Т-трап происходит сразу, а если по RTT - то через одну команду.

    ---------- Post added at 20:46 ---------- Previous post was at 20:45 ----------

    Кроме того - бит Т полностью блокирует внешние прерывания, поэтому после RTT - никаких "шансов" у внешних прерываний не возникает.
    Не берусь в отношении ВМ1 судить - я ничему уже не удивлюсь тут, но в отношении всех остальных Т-бит ничего не блокирует. Это простое синхронное прерывание как любая команда прерываний которая не может быть прервана до ее завершения когда уже началась
    PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
    Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
    PMI: KDJ11-BF, MSV11-JE
    VT220, CM7209

  7. #297
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,777
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    61 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от form Посмотреть сообщение
    Не берусь в отношении ВМ1 судить - я ничему уже не удивлюсь тут, но в отношении всех остальных Т-бит ничего не блокирует.
    Проверить это нетрудно, благо универсальный тест уже мною написан - щас пойду его искать :)

  8. #298
    Guru Аватар для form
    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,823
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    281
    Поблагодарили
    227 сообщений
    Mentioned
    29 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Проверить это нетрудно, благо универсальный тест уже мною написан - щас пойду его искать
    А я уже проверил
    Не на ВМ1 правда. BIRQ7 висит на шине (до Т-бита), Т-бит выставился и никакого прерывания по BIRQ7 - лупит одни тбиты
    PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
    Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
    PMI: KDJ11-BF, MSV11-JE
    VT220, CM7209

  9. #299
    Guru
    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,208
    Спасибо Благодарностей отдано 
    346
    Спасибо Благодарностей получено 
    607
    Поблагодарили
    399 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    У 1801ВМ1 всё просто - бит Т запрещает обслуживание IRQ, а команда WAIT на время своего выполнения (которое продолжается, пока на шине есть хоть один запрос IRQ) отменяет этот запрет.
    Бит T не запрещает обслуживание IRQ, прерывание по T выше по приоритету, чем IRQ, поэтому прерывание по IRQ и не возникнет. А команда WAIT при своем выполнении маскирует прерывание по T-разряду и ожидает любого внешнего незамаскированного прерывания (ACLO, EVNT, VIRQ). Если на 1801ВМ2 запретить все внешние прерывания установкой битов 8 и 7 в PSW и дать команду WAIT, то процессор будет долго и упорно ждать прерывания, а т.к. они все замаскированы, то и ждать он их будет вечно, до тех пор пока его не сбросят сигналом DCLO, ну и соответственно не запустят снятием DCLO и ACLO.
    Цитата Сообщение от Patron Посмотреть сообщение
    Поскольку во время выполнения единственной команды WAIT обслуживаются ВСЕ "накопившиеся" запросы IRQ - из этого (насколько я понимаю) следует, что приоритет Т-трапа ниже приоритета IRQ.
    Часто пишут, что приоритет Т-трапа выше, чем приоритет IRQ, но у 1801ВМ1 это точно не так.
    Нет не следует, просто во время выполнения WAIT прерывание по T-разряду маскируется. Но об этом я написал выше.
    Цитата Сообщение от Patron Посмотреть сообщение
    Думаю, что и у ВМ2 - тоже.
    Неправильно думаете. Надо иметь реальный процессор и проверять на нем.

  10. #300
    Guru Аватар для form
    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,823
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    281
    Поблагодарили
    227 сообщений
    Mentioned
    29 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Проведенный тест:

    Код:
    START:  MOV     #10$,@#14
            MOV     #340,@#16
            BPT
    
    10$:    RESET
            MOV     #PIRQ,@#240
            MOV     #340,@#242
            MOV     #TBIT,@#14
            MOV     #340,@#16
    
            BIS     #100000,@#177772
            MOV     #20,-(SP)
            MOV     #20$,-(SP)
            RTI
    
    20$:    WAIT
            HALT
    
    PIRQ:   MOV     #TPIRQ,R0
            CALL    PRINT
            DEC     #5
            BNE     10$
            CLR     2(SP)
            CLR     @#177772
    10$:    RTI
    
    TBIT:   MOV     #TTBIT,R0
            CALL    PRINT
            DEC     #5
            BNE     10$
            CLR     2(SP)
    10$:    RTI
    
    PRINT:  TSTB    @#177564
            BPL     .-4
            MOVB    (R0)+,@#177566
            BNE     PRINT
            RETURN
    
    TTBIT:  .ASCIZ  /T-BIT/<15><12>
    TPIRQ:  .ASCIZ  /BIRQ7/<15><12>
    
            .END    START
    Результат:

    Код:
    RTI	RTT	Все RTT
    -----	-----	-------
    T-BIT	BIRQ7	BIRQ7
    T-BIT	T-BIT	BIRQ7
    T-BIT	T-BIT	BIRQ7
    T-BIT	T-BIT	BIRQ7
    T-BIT	T-BIT	BIRQ7
    BIRQ7	T-BIT
    BIRQ7	BIRQ7
    BIRQ7	BIRQ7
    BIRQ7	BIRQ7
    BIRQ7	BIRQ7
    Итого:

    1. Везде RTI: Пока не отработают T-биты у BIRQ7 шансов нет, WAIT будет достигнута только после всех прерываний
    2. Вход по RTT, возвраты из прерываний по RTI: RTT дает шанс BIRQ7, после него верх берет T-BIT
    3. Везде RTT: после отработки всех BIRQ получаем WAIT и T-биты, как и сказал Alex_K, заблокированы


    ---------- Post added at 01:13 ---------- Previous post was at 01:11 ----------

    И ни в одном случае, разумеется, до HALT дела не доходит
    Последний раз редактировалось form; 17.02.2012 в 22:15.
    PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
    Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
    PMI: KDJ11-BF, MSV11-JE
    VT220, CM7209

Страница 30 из 120 ПерваяПервая ... 262728293031323334 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Эмулятор УКНЦ - UKNCBTL
    от nzeemin в разделе Эмуляторы отечественных компьютеров
    Ответов: 1113
    Последнее: 12.11.2023, 18:44
  2. PS/2 клавиатура в УКНЦ
    от balu_dark в разделе ДВК, УКНЦ
    Ответов: 83
    Последнее: 10.01.2021, 10:51
  3. Как проверить УКНЦ и КМД ? Help
    от Andrey_Ak в разделе ДВК, УКНЦ
    Ответов: 37
    Последнее: 23.07.2020, 15:50
  4. УКНЦ и шина МПИ
    от KALDYH в разделе ДВК, УКНЦ
    Ответов: 18
    Последнее: 14.03.2014, 14:30
  5. Продаю УКНЦ
    от Gryphon в разделе Барахолка (архив)
    Ответов: 10
    Последнее: 01.04.2009, 10:22

Ваши права

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