User Tag List

Страница 139 из 174 ПерваяПервая ... 135136137138139140141142143 ... ПоследняяПоследняя
Показано с 1,381 по 1,390 из 1740

Тема: Реверс-инжиниринг УКНЦ (1515ХМ1&2, 1801ВП1, 1801ВМ2)

  1. #1381

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,400
    Спасибо Благодарностей отдано 
    1,703
    Спасибо Благодарностей получено 
    2,221
    Поблагодарили
    874 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию Удержание регистра адреса RA

    Одиним из случаев приостановки работы АЛУ и микропрограммы является удержание регистра адреса RA.

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

    Работа АЛУ с регистром RA отличается от работы с другими регистрами следующими особенностями:

    1. Регистр RA может обновлятся не только в конце цикла АЛУ (по WR2), сохраняя результат математическо-логической операции, но и в самом начале цикла АЛУ (по ALU_WR). Такая возможность позволяет более удобно и быстро реализовывать постинкрементные режимы адресации, когда одна операция АЛУ сперва выдает исполнительный адрес блоку ввода-вывода, а затем инкрементирует адрес, в то время, как блок ввода-вывода уже работает.
    2. Каждая запись в регистр RA сразу же запрашивает цикл ввода-вывода. И если блок ввода-вывода свободен, начинается обмен.
    3. Как только запрошен цикл ввода-вывода, регистр RA блокируется сигналом RA_HOLD до тех, пор, пока не будет получен ответ AR (подтверждение адреса), с задержкой до 2-х тактов (по заднему фронту сигнала RTA). Если RA заблокирован, то любой следующий цикл АЛУ/микрокоманды, обновляющий RA, будет приостановлен до тех пор, пока не будет снят сигнал RA_HOLD. Цикл, не обновляющий RA, будет работать без задержки.

    На графике приведены примеры блокировки регистра RA.
    1. Слева RA обновляется в начале цикла АЛУ (по ALU_WR). Задержка следующей микрокоманды 2 такта.
    2. Справа RA обновляется в конце цикла АЛУ (по WR2). Задержка следующей микрокоманды 4 такта.



    p.s.: Предыдущий пост тоже обновлен и дополнен.
    Последний раз редактировалось Titus; 16.11.2020 в 13:26.

    Эти 2 пользователя(ей) поблагодарили Titus за это полезное сообщение:

    Alex_K(15.11.2020), Ynicky(15.11.2020)

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

  3. #1382

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,400
    Спасибо Благодарностей отдано 
    1,703
    Спасибо Благодарностей получено 
    2,221
    Поблагодарили
    874 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию Полная карта аппаратных прерываний ВМ2

    Расшифровал и составикл карту аппаратных прерываний.

    Справа-налево:

    1. Номер записи в ПЛМ прерываний
    2. Группа условий для срабатывания прерывания
    3. Служебные флаги
    4. Вектор и описание, приоритет в квадратных скобках

    Комбинации поля RI:

    000 - режим WAIT
    001 - нет запроса на прерывание
    100 - прерывание в режиме USER
    110 - прерывание в режиме HALT
    111 - начальный пуск

    Примечание: TOVF - зависание, TOVF2 - двойное зависание
    Замечание: Во всех случаях, если не указано иное, AC0_ECHO=1

    Код:
     													[0]
     													Подготовка начального пуска?
       10: AC0_ECHO=0 ALCO_FALL=0                  				  VECID=0x0, RI=000 AC0		WAIT?
    
    													Начальный пуск
        1: AC0_ECHO=0 ALCO_FALL=1                  				  VECID=0xF, RI=111 ACLO_ACK	VEC=0x00 (Начальный пуск)
     
     													[1.0]
     													Зависание при приеме АВП
        6: TOVF=1 VEC=1                 					  VECID=0x4, RI=110, TOVF_ACK	VEC=0xBC (Зависание при приеме АВП) 
    
    													[1.1]
    													Двойное зависание
        2: TOVF=1 VEC=0 TOVF2=1                 				  VECID=0xC, RI=110, TOVF_ACK	VEC=0x7C (Двойное зависание)
    
    									   				Зависание
        0: TOVF=1 VEC=0 TOVF2=0                 				  VECID=0xD, RI=100, TOVF_ACK	VEC=0x04 (Зависание в режиме USER)
     0,18: TOVF=1 VEC=0 TOVF2=0 PSW8=1                			  VECID=0xD, RI=110, TOVF_ACK	VEC=0x04 (Зависание в режиме HALT)
     
     													[3]
      													Прерывание по T-разряду
        8: TOVF=0 WAIT/TBIT=01                 				  VECID=0xA, RI=100		VEC=0x0C (T-разряд)
     8,12: TOVF=0 WAIT/TBIT=01 RTT=1           				  VECID=0xA, RI=001		VEC=0x0C (Т-разряд + RTT) (Нет прерывания?)
    
     													[4]
     													Сигнал ACLO в режиме HALT с запрещенными прерываниями
       13: TOVF=0 ALCO_RISE=1 PSW87=11  WAIT/TBIT=00             		  VECID=0x0, RI=001		Нет прерывания
       17: TOVF=0 ALCO_RISE=1 PSW87=11  WAIT=1            			  VECID=0x0, RI=000		WAIT
    
    													Сигнал АCLO не в режиме HALT с запрещенными прерываниями
    15,22: TOVF=0 ALCO_RISE=1 PSW87!=11 WAIT/TBIT!=01           		  VECID=0x0, RI=100, ACLO_ACK	VEC=0x14 (ACLO)
     
     													[5]
    													Прерывание по сигналу HALT в режиме USER
      7,9: TOVF=0 ALCO_RISE=0 HALT=1 PSW8=0 WAIT/TBIT!=01           	  VECID=0x2, RI=110		VEC=0x78 (HALT)
     
    													Прерывание по сигналу HALT в режиме HALT
       11: TOVF=0 ALCO_RISE=0 HALT=1 PSW8=1 WAIT/TBIT=00	             	  VECID=0x0, RI=001		Нет прерывания
       21: TOVF=0 ALCO_RISE=0 HALT=1 PSW8=1 WAIT=1             		  VECID=0x0, RI=000		WAIT
    
    													[5.1]
    													Прерывания запрещены, не обрабатывать EVNT и VIRQ				
        4: TOVF=0 ALCO_RISE=0 HALT=0 PSW7=1 WAIT/TBIT=00   			  VECID=0x0, RI=001		Нет прерывания
       16: TOVF=0 ALCO_RISE=0 HALT=0 PSW7=1 WAIT=1     	  		  VECID=0x0, RI=000		WAIT
    													
    													[6]
    													Прерывание по событию EVNT
      3,5: TOVF=0 ALCO_RISE=0 HALT=0 EVNT_RISE=1 PSW7=0 WAIT/TBIT!=01         VECID=0x3, RI=100 EVNT_ACK	VEC=0x40 (EVNT)
     
      													[7]
     													Векторное прерывание VIRQ
    19,23: TOVF=0 ALCO_RISE=0 HALT=0 EVNT_RISE=0 VIRQ=1 PSW7=0 WAIT/TBIT!=01  VECID=0x0, RI=101		
    
    													[8]
    													Всякий режим, когда нет ни одного запроса прерывания
       14: TOVF=0 ALCO_RISE=0 HALT=0 EVNT_RISE=0 VIRQ=0 WAIT/TBIT=00   	  VECID=0x0, RI=001		Нет прерывания	
       20: TOVF=0 ALCO_RISE=0 HALT=0 EVNT_RISE=0 VIRQ=0 WAIT=1         	  VECID=0x0, RI=000		WAIT
    Последний раз редактировалось Titus; 18.11.2020 в 21:55.

    Эти 3 пользователя(ей) поблагодарили Titus за это полезное сообщение:

    Alex_K(18.11.2020), nzeemin(18.11.2020), Ynicky(18.11.2020)

  4. #1383

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,400
    Спасибо Благодарностей отдано 
    1,703
    Спасибо Благодарностей получено 
    2,221
    Поблагодарили
    874 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию Модификатор выборки микрокоманды RI

    Модификатор выборки микрокоманды RI.

    Трехбитный модификатор выборки микрокоманды RI имеет многофункциональное назначение, в зависимости от выбранного режима.

    1. Режим выборки инструкции (стробируется сигналом IR_STB). Инициируется сигналом SET_CEND (PL26=1, PL25=0, /NA=0), и используется только в одной микрокоманде с адресом 0x01.

    RI0 - поле dd инструкции использует R7 (любая адресация, с использованием R7)
    RI1 - HALT-режим (PSW[8]=1)
    RI2 - поле ss модифицирует R7 (адресация (R7), (R7)+, -(R7), @(R7)+, @-(R7), X(Rn), @X(Rn))

    2. Режим разбора запроса аппаратного прерывания (стробируется сигналом PLI_ACK). Инициируется сигналом PLI_REQ (PL27=0, /NA1=0). Обычно инициируется в последней микрокоманде каждой инструкции, перед переходом на микрокоманду 0x01.

    RI2.RI1.RI0:

    000 - режим WAIT
    001 - нет запроса на прерывание
    100 - прерывание в режиме USER
    110 - прерывание в режиме HALT
    111 - начальный пуск

    3. Режим разбора запроса программного прерывания (стробируется сигналом PI_STB). Инициируется, если PLM0=1. Используется в инструкциях программных прерываний.

    нет описания

    Замечание. В режиме (1) RI0 может только сбрасываться, а RI1 и RI2 только устанавливаться. Потому микрокоманда выборки инструкции чаще всего вызывается после микрокоманды инициирующей разбор запроса прерывания, со входящим значением RI равным 001.

    p.s.: Предыдущие статьи тоже обновились.

  5. #1384

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

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    TOVF - зависание, TOVF2 - двойное зависание
    А вот здесь интересный момент. При возникновении зависания должен устанавливаться какой-то флаг. Если снова происходит зависание при уже установленном флаге, то производится прерывание по двойному зависанию. Соответственно вопрос - при каких условиях сбрасывается этот флаг? По идее он должен сбросится, если операция ввода-вывода прошла нормально, т.е. есть ответ по RPLY. Но по моим опытам получалось, что данный флаг сбрасывался только при успешном чтении команды.

  6. #1385

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,400
    Спасибо Благодарностей отдано 
    1,703
    Спасибо Благодарностей получено 
    2,221
    Поблагодарили
    874 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    прерывание по двойному зависанию. Соответственно вопрос - при каких условиях сбрасывается этот флаг?
    Сбрасывается по микрокоманде чтения следующей инструкции или по reset'у.
    А флаг простого зависания сбрасывается при вызове обработчика прерывания по зависанию.

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

    Цитата Сообщение от Alex_K Посмотреть сообщение
    А вот здесь интересный момент. При возникновении зависания должен устанавливаться какой-то флаг.
    Это и есть флаги.
    TOVF - флаг обычного зависания,
    TOVF2 - флаг двойного зависания

  7. #1386

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

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Сбрасывается по микрокоманде чтения следующей инструкции или по reset'у.
    А флаг простого зависания сбрасывается при вызове обработчика прерывания по зависанию.
    Ага! Конкретный пример: Указатель стека равен 01000, в 4-м векторе находится адрес 0170000. Ячейка 0170000 нечитаемая, нет ответа RPLY, должно произойти прерывание по вектору 4.
    Командой TST @#170000 читаем ячейку с адресом 0170000. Ответа по RPLY нету, потому производится прерывание по вектору 4. Сначала в стек по адресам 0774 и 0776 ложатся текущие CPC и CPSW. Запись в стек происходит нормально, нет никакого зависания. Далее из ячеек 4 и 6 читаются новые значения PC и PSW. Здесь тоже всё нормально, без зависаний. А вот далее интересней. Т.к. новая команда находится по адресу 0170000, то при её чтении произойдёт зависание, а т.к. флаг не сброшен, то будет двойное зависание. Вроде так.

  8. #1387

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,400
    Спасибо Благодарностей отдано 
    1,703
    Спасибо Благодарностей получено 
    2,221
    Поблагодарили
    874 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Вроде так.
    Такая сложная цепочка меня запутала, но, наверное, так)

  9. #1388

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

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Такая сложная цепочка меня запутала, но, наверное, так)
    Ну по моим опытам получалось так. И ещё один вопрос - по моим опытам также получалось, что при прерываниях режима USER в стек ложатся именно CPC и CPSW, а не PC и PSW.

  10. #1389

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,400
    Спасибо Благодарностей отдано 
    1,703
    Спасибо Благодарностей получено 
    2,221
    Поблагодарили
    874 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    по моим опытам также получалось, что при прерываниях режима USER в стек ложатся именно CPC и CPSW, а не PC и PSW.
    Вот до разбора микрокода обработки прерываний я еще не дошел.

  11. #1390

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

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Вот до разбора микрокода обработки прерываний я еще не дошел.
    Жду с нетерпением.

Страница 139 из 174 ПерваяПервая ... 135136137138139140141142143 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Ответов: 32
    Последнее: 18.12.2024, 18:19
  2. Реверс-инжиниринг игры Boovie
    от Oleg N. Cher в разделе Программирование
    Ответов: 41
    Последнее: 09.01.2022, 23:07
  3. Реверс инжиниринг печатной платы
    от Filin в разделе Несортированное железо
    Ответов: 36
    Последнее: 11.03.2018, 22:46
  4. Куплю 1515ХМ1-6006, 1515ХМ1−6008
    от moxjemi в разделе Барахолка (архив)
    Ответов: 3
    Последнее: 10.01.2012, 17:23
  5. 1801ВМ2 А и Б
    от dk_spb в разделе ДВК, УКНЦ
    Ответов: 2
    Последнее: 03.05.2010, 11:51

Ваши права

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