User Tag List

Страница 138 из 227 ПерваяПервая ... 134135136137138139140141142 ... ПоследняяПоследняя
Показано с 1,371 по 1,380 из 2264

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

  1. #1371

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

    По умолчанию

    .

    Последовательность действий ( скорее всего ) будет такой: SP -> -(HSP) ; PC -> SP

    - - - Добавлено - - -

    Соответственно, при выполнении команды RTS SP последовательность действий будет такой : SP -> PC ; (HSP)+ -> SP
    Последний раз редактировалось Patron; 27.01.2016 в 20:47.

  2. #1372

    Регистрация
    31.03.2013
    Адрес
    г. Киев
    Сообщений
    2,413
    Спасибо Благодарностей отдано 
    132
    Спасибо Благодарностей получено 
    759
    Поблагодарили
    353 сообщений
    Mentioned
    88 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Исполнение различных инструкций в HALT-моде (SEL добавлено):
    EMT: [] (сохранение по 26/24)
    TRAP: [] (сохранение по 32/30)
    BPT: [] (сохранение по 12/10)
    JSR/RTS SP: [] (использует HSP для обращения к стеку, SP просто регистр адреса возврата)

  3. #1373

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

    По умолчанию

    Цитата Сообщение от Vslav Посмотреть сообщение
    Исполнение различных инструкций в HALT-моде
    А как ведут себя в HALT-моде прерывания по вектору 10 ( например, от команды MFPT ) и по вектору 04 ( например, от команды JMP R0 ) ?

  4. #1374

    Регистрация
    31.03.2013
    Адрес
    г. Киев
    Сообщений
    2,413
    Спасибо Благодарностей отдано 
    132
    Спасибо Благодарностей получено 
    759
    Поблагодарили
    353 сообщений
    Mentioned
    88 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    jmp R0: []
    mfpt: []

    То, что должно выпадать по вектору 4, действует туповато - оно сохраняется в 2/0, тем самым перезатирая точку входа в HALT.

  5. #1375

    Регистрация
    02.03.2015
    Адрес
    г. Караганда, Казахстан
    Сообщений
    2,321
    Спасибо Благодарностей отдано 
    35
    Спасибо Благодарностей получено 
    225
    Поблагодарили
    177 сообщений
    Mentioned
    17 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vslav Посмотреть сообщение
    То, что должно выпадать по вектору 4, действует туповато - оно сохраняется в 2/0, тем самым перезатирая точку входа в HALT.
    То есть, как я понимаю, в реальном ДВК (1201.03/04), где от ПЗУ по младшим адресам не дождешься RPLY на DOUT, возникнет новое такое же прерывание, на чем оно благополучно и зациклит! Это так?
    Кто мешает тебе выдумать порох непромокаемый? (К.Прутков, мысль № 133)

  6. #1376

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

    По умолчанию

    Цитата Сообщение от AFZ Посмотреть сообщение
    То есть, как я понимаю, в реальном ДВК (1201.03/04), где от ПЗУ по младшим адресам не дождешься RPLY на DOUT, возникнет новое такое же прерывание, на чем оно благополучно и зациклит! Это так?
    Нет - зависание в режиме HALT ничего в память не пишет, а только загружает в PC содержимое ячейки 000004.

    - - - Добавлено - - -

    Цитата Сообщение от Vslav Посмотреть сообщение
    То, что должно выпадать по вектору 4, действует туповато - оно сохраняется в 2/0, тем самым перезатирая точку входа в HALT.
    Уже понятно, что ради возможности обрабатывать команду HALT, как обычное программное прерывание - разработчики пожертвовали в режиме HALT всеми нормальными прерываниями без исключения.

    ...

    Было бы полезно узнать, как реагирует процессор ВМ3 в режиме HALT на команды INC PC и TST @#1.

    ...

    Логика подсказывает, что внешние прерывания в режиме HALT невозможны, но проверить не мешает:

    Код:
    	.ASect
    	. = 0
    	Jmp	@#Next			// Точка входа пульта.
    
    	. = 24
    	.Word	Start			// Адрес старта.
    	.Word	340
    Start:
    	Mov	#2222, SP
    	HALT				// Установить HALT-моду
    
    Next:
    	Clr	@#177776
    	BiS	#100, @#177564
    	Wait
    - - - Добавлено - - -

    Из команд, неявно использующих SP, осталась не проверенной команда MARK - восполним этот пробел :

    Код:
    	.ASect
    	. = 0
    	Jmp	@#Next			// Точка входа пульта.
    
    	. = 24
    	.Word	Start			// Адрес старта.
    	.Word	340
    Start:
    	Mov	#2222, SP
    	HALT				// Установить HALT-моду
    
    Next:
    	Mov	#Next2, R5
    	Mark	0
    	Nop
    Next2:
    	Call	Next3			// Проверить HSP
    Next3:
    	Mov	SP, (PC)+		// Проверить SP
    	Nop
    	Wait
    Последний раз редактировалось Patron; 29.01.2016 в 14:04.

  7. #1377

    Регистрация
    02.03.2015
    Адрес
    г. Караганда, Казахстан
    Сообщений
    2,321
    Спасибо Благодарностей отдано 
    35
    Спасибо Благодарностей получено 
    225
    Поблагодарили
    177 сообщений
    Mentioned
    17 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vslav Посмотреть сообщение
    То, что должно выпадать по вектору 4, действует туповато - оно сохраняется в 2/0, тем самым перезатирая точку входа в HALT.
    Цитата Сообщение от Patron Посмотреть сообщение
    Нет - зависание в режиме HALT ничего в память не пишет, а только загружает в PC содержимое ячейки 000004.
    Эти два высказывания противоречат друг другу. И, как я понял, Vslav получил свои данные на лог. анализаторе?..
    Кто мешает тебе выдумать порох непромокаемый? (К.Прутков, мысль № 133)

  8. #1378

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

    По умолчанию

    Цитата Сообщение от Vslav
    То, что должно выпадать по вектору 4, действует туповато - оно сохраняется в 2/0, тем самым перезатирая точку входа в HALT.
    На самом деле очень напоминает способ каким работает red stack abort на машинах с ограничением стека (11/70, 11/73, 11/[89][34]): в случае если во время прерывания из-за кривого значения кернелного стека туда не удается ничего положить, SP выставляется принудительно в 4, после чего происходит обычный trap to 4 (у этих процов есть регистр CPUERR в котором можно выяснить причину возникновения trap to 4)...
    Последний раз редактировалось form; 29.01.2016 в 17:11.
    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. #1379

    Регистрация
    31.03.2013
    Адрес
    г. Киев
    Сообщений
    2,413
    Спасибо Благодарностей отдано 
    132
    Спасибо Благодарностей получено 
    759
    Поблагодарили
    353 сообщений
    Mentioned
    88 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от AFZ Посмотреть сообщение
    Эти два высказывания противоречат друг другу. И, как я понял, Vslav получил свои данные на лог. анализаторе?..
    Не противочречат. Данные былт получены на логическом анализаторе на реальном процессоре ВМ3, но он у меня установлен на модуле, который подключен к плате Terasic DE0, а там в FPGA уже собрана система с 16К ОЗУ с адреса 000000, контроллером векторных прерываний, системным таймером 50Гц и UART типа 065. Поскольку по адресу 000000 у меня в любом режиме ОЗУ (при программировании FPGA в него загружена начальная программа), то запись в него возможна, в отличие от реальной 1201.03.

  10. #1380

    Регистрация
    02.03.2015
    Адрес
    г. Караганда, Казахстан
    Сообщений
    2,321
    Спасибо Благодарностей отдано 
    35
    Спасибо Благодарностей получено 
    225
    Поблагодарили
    177 сообщений
    Mentioned
    17 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vslav Посмотреть сообщение
    Данные былт получены на логическом анализаторе на реальном процессоре ВМ3, но он у меня установлен на модуле, который подключен к плате Terasic DE0, а там в FPGA уже собрана система с 16К ОЗУ с адреса 000000, контроллером векторных прерываний, системным таймером 50Гц и UART типа 065. Поскольку по адресу 000000 у меня в любом режиме ОЗУ (при программировании FPGA в него загружена начальная программа), то запись в него возможна, в отличие от реальной 1201.03.
    Так и я о том же. На анализаторе - да, запись возможна. А на реальной 1201.03/04 - нет. Соответственно, проц по TRAP TO 4 пытается записать что-то в ячейки 2-0, RPLY от записи не получает, что вызывает новый TRAP TO 4 и так до снятия DCLO.

    Цитата Сообщение от Vslav Посмотреть сообщение
    Не противочречат.
    А Патрон утверждает, что зависание в Halt-Mode ничего не пишет, просто загружает адрес из 4 вектора, и все.

    В принципе, это элементарно проверяется на 1201.03/04 с 377-й прошивкой (СуперМакс, ау!). Программа из 377-й прошивки при запуске с нулевого адреса первым делом сравнивает содержимое ячейки 100000 с константой 31764 (oct) и, если оно совпадает, уходит на адрес 100002. Прямо в пультовом режиме пишем в ячейку 100002 команду, вызывающую Trap to 4, потом 31764 в 100000 и запускаем программу Halt-Mode с нулевого адреса. То есть убираем сигнал К ОСТ Н (переключатель программа/пульт ставим в "программа"), заносим куда-нибудь вроде 1000 ноль (команда HALT) и запускаем с этого адреса (1000G).
    Кто мешает тебе выдумать порох непромокаемый? (К.Прутков, мысль № 133)

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

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

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

Эту тему просматривают: 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

Ваши права

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