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

User Tag List

Страница 32 из 227 ПерваяПервая ... 282930313233343536 ... ПоследняяПоследняя
Показано с 311 по 320 из 2264

Тема: Особенности процессоров и устройств архитектуры PDP-11. Тесты. Диагностика.

  1. #311

    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,250
    Спасибо Благодарностей отдано 
    360
    Спасибо Благодарностей получено 
    639
    Поблагодарили
    415 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Или Titus имел в виду такие "коварные" устройства, которые сами снимают IRQ без "внешней" причины в виде команды процессора ( типа RESET или BIC #100,@#TPS ). Но я про такие устройства ничего не знаю. Бывает такое у реальных устройств ?
    Вот я тоже понял так, именно про "коварные" устройства. Выше я приводил пример с каналами УКНЦ, где такое теоретически может быть. Но у меня не получилось. Я запускал такой код:
    Код:
        MOV     #41,@#177566
        NOP
        ...
        NOP
        RESET
        HALT
    Количество NOP-ов было разным. Когда их было мало, то символ "!" просто не выводился, при 8-ми и более NOP-ах выводился, ошибку приема АВП со стороны ПП получить не удалось.

  2. #312

    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,850
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    289
    Поблагодарили
    233 сообщений
    Mentioned
    30 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А кстати BIS, BIC #100 не пробовалось на чистом устройстве вроде С2?
    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. #313

    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,250
    Спасибо Благодарностей отдано 
    360
    Спасибо Благодарностей получено 
    639
    Поблагодарили
    415 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от form Посмотреть сообщение
    А кстати BIS, BIC #100 не пробовалось на чистом устройстве вроде С2?
    Попробовал. Как и должно быть - вылетел в пультовый монитор с ошибкой приема АВП.

  4. #314

    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,850
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    289
    Поблагодарили
    233 сообщений
    Mentioned
    30 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Надо УКНЦу восстанавливать, а то пробовать такие вещи не на чем...
    Эх, время б только найти.
    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. #315

    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,850
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    289
    Поблагодарили
    233 сообщений
    Mentioned
    30 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Проверен ВМ3 на предмет
    Код:
    BIS	#100,@#177564
    BIC	#100,@#177564
    - вылетает как и другие ВМы...
    Последний раз редактировалось form; 25.01.2013 в 22:38.
    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

  6. #316

    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,850
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    289
    Поблагодарили
    233 сообщений
    Mentioned
    30 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Утилитка для поиска DL(V)11-подобных контроллеров. В отличие от DECовских, находит все даже если нарушены правила размещения CSR (УКНЦ, ДВК).

    На эмуляторе УКНЦ С2 как видно не желает интерруптить
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	dlpdp.jpg 
Просмотров:	208 
Размер:	41.0 Кб 
ID:	39530   Нажмите на изображение для увеличения. 

Название:	dluknc.jpg 
Просмотров:	212 
Размер:	45.3 Кб 
ID:	39531   Нажмите на изображение для увеличения. 

Название:	dldvk.jpg 
Просмотров:	258 
Размер:	35.7 Кб 
ID:	39532  
    Вложения Вложения
    • Тип файла: rar dltst.rar (685 байт, Просмотров: 302)
    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. #316
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  8. #317

    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,250
    Спасибо Благодарностей отдано 
    360
    Спасибо Благодарностей получено 
    639
    Поблагодарили
    415 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию УКНЦ: ловушка адреса, предвыборка команд и ошибка приема АВП

    В свете последних событий, связанных с интересом к ошибке приема адреса вектора прерывания, реализованной в процессорах семейства 1801ВМх, решил потестировать в УКНЦ такое устройство, как ловушка адреса, и попытаться с помощью него получить ошибку приема АВП. Сразу скажу заранее, что ошибку приема АВП мне получить не удалось, но интересные результаты, связанные с предвыборкой команд в микропроцессоре 1801ВМ2 получил. На ваш суд будут представлены четыре программы, различающиеся только командами установки и сброса разрешения прерывания для регистра ловушки. Отличаться эти команды будут тем, что будут состоять из одного или нескольких слов. Если команда состоит из нескольких слов, то нарушается работа предвыборки, если команда состоит из одного слова, то предвыборка будет работать на следующую команду при исполнении текущей.

    Итак, сначала познакомимся с ловушкой адреса в УКНЦ. Ловушка адреса состоит из двух регистров: регистра управления (176644) и регистра адреса для ловушки (176646).
    Формат регистра управления:
    бит 0 - режим работы, если установлен бит 8, то при установленном разряде 0 вырабатывается прерывание, при сброшенном разряде вырабатывается лог.0 на линии "ПОРТ" и сигнал RPLY.
    бит 1 - указатель области памяти, которой принадлежит искомый адрес: 1 - область HALT, 0 - область USER.
    биты с 2 по 7 - старшая часть адреса вектора прерывания, младшие два разряда считаются нулем.
    бит 8 - разрешение прерывания. При установленном разряде разрешено прерывание или выработка сигнала "ПОРТ".
    бит 9 - режим 1. Обеспечивает чтение/запись линии РЕЖ.1, лог.1. - низкий уровень на РЕЖ.1, лог.0 - высокий уровень на РЕЖ.1. Считываемое значение складывается по ИЛИ из значения записанного сигнала и значения приложенного извне к линии РЕЖ.1.
    В регистр адреса (176646) записывается искомый адрес, который мы ловим.
    Сами регистры ловушки входят в состав БМК 1515ХМ1-039, которая является контроллером адресного пространства ЦП и ОЗУ ЦП. Смысл ловушки состоит в том, что когда на линии адреса/данных по сигналу SYNC защелкивается адрес, который прописан в регистре 176646, то ловушка подает запрос на прерывание при установленных битах 0 и 8 в регистре 176644.
    Т.к. чтение команд в микропроцессоре 1801ВМ2 может осуществляться с предвыборкой, то можно получить интересные результаты. Итак, программа работает с разрешенными прерываниями (а иначе не было бы смысла), таймер выключен. В качестве вектора программируем вектор 200, при этом он указывает на ячейку 0, а в ячейке 0 - значение 0 (команда HALT). Таким образом программа может завершиться нормально или остановится с адресом 2 (следующий за командой HALT). Соответственно для разрешения прерывания ловушки надо в регистр управления записать 0601, а для запрещения прерываний записать 0200. Сами программы набивались в пультовом мониторе, мне это удобно, программы небольшие, можно сразу увидеть результат, глянуть регистры, ячейки памяти, что творится в стеке. После прерывания адрес прерванной команды находится в стеке в ячейке с адресом 774.


    Программа 1. Используются команды установки и запрещения прерываний ловушки, состоящие из нескольких слов, в результате чего работа предвыборки нарушена.
    Код:
    1000:106427 000000		MTPS	#0
    1004:012706 001000		MOV	#1000,SP
    1010:012737 ...... 176646	MOV	#......,@#176646
    1016:012737 000601 176644	MOV	#601,@#176644
    1024:012737 000200 176644	MOV	#200,@#176644
    1032:000240			NOP
    1034:000240			NOP
    1036:000000			HALT
    Вместо "......" последовательно используются значения 1022, 1024, 1026, 1030 и 1032, т.е. используются адреса команды сброса прерывания в регистре ловушки, а также по одному адресу до и после этой команды.
    Получившиеся результаты:
    1022 - нет прерывания
    1024 - прерывание по адресу 1032
    1026 - прерывание по адресу 1032
    1030 - прерывание по адресу 1032
    1032 - нет прерывания
    Сразу по результатам. Естественно прерывания по адресу 1022 и быть не может, т.к. после установки разрешения прерывания этот адрес уже был прочитан, работа предвыборки нарушена и следующим будет читаться адрес 1024. По адресам 1024,1026 и 1030 расположена команда MOV #200,@#176644, которая запрещает прерывание от ловушки. Команда состоит из нескольких слов, из-за чего нарушается предвыборка, но при ее исполнении активизируется прерывание и исполняется после исполнения команды, несмотря на то, что команда запрещает прерывание. По адресу 1032 естественно прерывания уже нет, т.к. работа предвыборки нарушена, команда NOP по адресу 1032 будет уже читаться не во время, а после исполнения предыдущей команды, а прерывания от ловушки уже запрещены.

    ---------- Post added at 21:05 ---------- Previous post was at 20:37 ----------

    Программа 2. Используется команды установки прерывания ловушки из нескольких слов, а запрещения прерываний ловушки из одного слова, в результате чего работа предвыборка работает на команду NOP, расположенной после команды запрещения прерываний ловушки.
    Код:
    1000:106427 000000		MTPS	#0
    1004:012706 001000		MOV	#1000,SP
    1010:012700 176644		MOV	#176644,R0
    1014:012702 000601		MOV	#601,R2
    1020:012703 000200		MOV	#200,R3
    1024:012737 ...... 176646	MOV	#......,@#176646
    1032:012737 000601 176644	MOV	#601,@#176644
    1040:010310			MOV	R3,@R0
    1042:000240			NOP
    1044:000240			NOP
    1046:000000			HALT
    Вместо "......" последовательно используются значения 1036, 1040, 1042 и 1044, т.е. используются адреса команды сброса прерывания в регистре ловушки, а также по одному адресу до и после этой команды.
    Получившиеся результаты:
    1036 - нет прерывания
    1040 - прерывание по адресу 1042
    1042 - прерывание по адресу 1042
    1044 - нет прерывания
    Рассмотрим результаты. По адресу 1036 прерывания и быть не может, т.к. после установки разрешения прерывания этот адрес уже прочитан. После установки разрешения прерывания командой MOV #601,@#176644 работа предвыборки нарушена и следующая команда будет считываться уже после исполнения предыдущей. Так команды запрета прерываний MOV R3,@R0 считывается при установленном разрешении прерываний, то и прерывание по адресу 1040 будет (хотя она и запрещает прерывания). А далее более интересный случай - команда запрещения прерывания MOV R3,@R0 состоит из одного слова, соответственно работа предвыборки не нарушена, и следующая команда NOP читается во время ее исполнения (т.е. когда фактически прерывания разрешены), поэтому прерывание произойдет. По адресу 1044 уже не будет прерывания, т.к. команда читается во время исполнения предыдущей команды NOP, а прерывания уже запрещены.

    ---------- Post added at 21:20 ---------- Previous post was at 21:05 ----------

    Программа 3. Используется команды установки прерывания ловушки из одного слова, а запрещения прерываний ловушки из нескольких слов, в результате чего предвыборка работает на команду запрещения прерываний ловушки, и не работает на первую команду NOP.
    Код:
    1000:106427 000000		MTPS	#0
    1004:012706 001000		MOV	#1000,SP
    1010:012700 176644		MOV	#176644,R0
    1014:012702 000601		MOV	#601,R2
    1020:012703 000200		MOV	#200,R3
    1024:012737 ...... 176646	MOV	#......,@#176646
    1032:010210			MOV	R2,@R0
    1034:012737 000200 176644	MOV	#200,@#176644
    1042:000240			NOP
    1044:000240			NOP
    1046:000000			HALT
    Вместо "......" последовательно используются значения 1032, 1034, 1036, 1040, 1042 и 1044 т.е. используются адреса команды сброса прерывания в регистре ловушки, а также по одному адресу до и после этой команды.
    Получившиеся результаты:
    1032 - нет прерывания
    1034 - нет прерывания
    1036 - прерывание по адресу 1042
    1040 - прерывание по адресу 1042
    1042 - нет прерывания
    1044 - нет прерывания
    Рассмотрим результаты. Соответственно по адресу 1032 не может быть прерывания, т.к. команда установки уже прочитана из памяти до установки разрешения прерывания. А вот далее работает предвыборка. Т.к. команда установки разрешения прерывания MOV R2,@R0 состоит из одного слова и не нарушает работу предвыборки, первое слово команды запрещения прерывания от ловушки MOV #200,@#176644 будет прочитано еще до установки разрешения прерывания, потому по адресу 1034 прерывания и не произойдет. По адресам 1036 и 1040 прерывание будет, т.к. они читаются при установленном разрешении прерывания от ловушки. Команда NOP по адресу 1042 читается при запрещенном прерывании то ловушки, к тому же предвыборка нарушена, соответственно код команды будет читаться из памяти при запрещенном прерывании от ловушки и прерывания не будет. Также не будет прерывания и по адресу 1044.

  9. #318

    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,250
    Спасибо Благодарностей отдано 
    360
    Спасибо Благодарностей получено 
    639
    Поблагодарили
    415 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию УКНЦ: ловушка адреса, предвыборка команд и ошибка приема АВП

    Программа 4. Используется команды установки и запрещения прерываний ловушки из одного слова, в результате чего работа предвыборки не нарушается, также предвыборка работает и на команду NOP, расположенную после команды запрещения прерываний ловушки.
    Код:
    1000:106427 000000		MTPS	#0
    1004:012706 001000		MOV	#1000,SP
    1010:012700 176644		MOV	#176644,R0
    1014:012702 000601		MOV	#601,R2
    1020:012703 000200		MOV	#200,R3
    1024:012737 ...... 176646	MOV	#......,@#176646
    1032:010210			MOV	R2,@R0
    1034:010310			MOV	R3,@R0
    1036:000240			NOP
    1040:000240			NOP
    1042:000000			HALT
    Вместо "......" последовательно используются значения 1032, 1034, 1036 и 1040, т.е. используются адреса команды сброса прерывания в регистре ловушки, а также по одному адресу до и после этой команды.
    Получившиеся результаты:
    1032 - нет прерывания
    1034 - нет прерывания
    1036 - прерывание по адресу 1036
    1040 - нет прерывания
    Рассмотрим результаты. Соответственно по адресу 1032 не может быть прерывания, т.к. команда установки уже прочитана из памяти до установки разрешения прерывания. А вот далее работает предвыборка. Т.к. команда установки разрешения прерывания MOV R2,@R0 состоит из одного слова и не нарушает работу предвыборки, следующая команда запрещения прерывания от ловушки MOV R3,@R0 будет прочитана еще до установки разрешения прерывания, потому по адресу 1034 прерывания и не произойдет. Команда NOP по адресу 1036 читается во время исполнения команды запрещения прерываний ловушки (т.е. когда фактически прерывания разрешены), поэтому прерывание произойдет. По адресу 1040 уже не будет прерывания, т.к. команда читается во время исполнения предыдущей команды NOP, а прерывания уже запрещены.

  10. #319

    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,806
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    147
    Поблагодарили
    78 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Теперь можно взять Программу 2 и подставить команду RESET сначала по адресу 1040, а потом 1042.

  11. #320

    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,806
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    147
    Поблагодарили
    78 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    ошибку приема АВП мне получить не удалось
    Снимает устройство запрос IRQ после сброса разрешения прерывания или нет - зависит только от устройства.
    Если снимает - у процессоров LSI-11 и 1801ВМх должна быть потеря вектора (насколько я понимаю).

    А вот по сигналу INIT ( команде RESET ) - IRQ должны снимать все устройства (в моём, опять же, понимании работы шины Q-Bus).

Страница 32 из 227 ПерваяПервая ... 282930313233343536 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Тесты ВМ1
    от nzeemin в разделе БК-0010/0011
    Ответов: 90
    Последнее: 05.10.2018, 12:24
  2. Диагностика
    от dk_spb в разделе Корвет
    Ответов: 31
    Последнее: 21.07.2017, 23:52
  3. Проблема двух процессоров.
    от Mikka_A в разделе Несортированное железо
    Ответов: 21
    Последнее: 28.11.2006, 17:04

Ваши права

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