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

User Tag List

Страница 151 из 170 ПерваяПервая ... 147148149150151152153154155 ... ПоследняяПоследняя
Показано с 1,501 по 1,510 из 1692

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

  1. #1501
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    12,477
    Спасибо Благодарностей отдано 
    563
    Спасибо Благодарностей получено 
    802
    Поблагодарили
    436 сообщений
    Mentioned
    50 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Кажется, я вижу, откуда ножки растут.

    Попробуйте сделать тест, в котором команда, предшествующая делению, с простой адресацией типа MOV Rx,Rx:

    Код:
    0776     CLR    R0
    1000	 MOV	#2,R3
    1004     MOV    R3,R3
    1006     MUL    R3,R7
    1010     INC    R0
    - - - Добавлено - - -

    Хотя, нет, не надо делать.

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

    В общем, нашел ошибку.

    Блок, который призван идентифицировать двухадресную команду ((код & 0x7FFF)> 0x0FFF), у которой в качестве Rd указан R7, имеет ошибку или особенность следующего плана.

    Триггер U577, запоминающий состояние IX1 обновляется при выборке каждой микрокоманды.
    А IR_STB выдается только при выборке первой микрокоманды инструкции.
    Поэтому в во время первой микрокоманды в инструкции флаг IX1 устанавливается правильно, а уже следующая микрокоманда этот флаг обнуляет.
    Таким образом, принять решение о том, что инструкция двухоперандная влияющая на R7 можно только в первой микрокоманде инструкции. Возможно, это где-то задействовано (в двухоперандных командах, до которых я не дошел), но в случае с MUL не работает.




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

    Последний раз редактировалось Titus; 02.12.2020 в 21:47.

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

  3. #1502
    Guru Аватар для Vslav
    Регистрация
    31.03.2013
    Адрес
    г. Киев
    Сообщений
    2,180
    Спасибо Благодарностей отдано 
    103
    Спасибо Благодарностей получено 
    453
    Поблагодарили
    250 сообщений
    Mentioned
    64 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    А какое было значение SP?
    400
    Код:
        140		000200 					.	= 200			; начальная точка входа в тест
        141	000200						.blkw	100			;
        142	000400				stack:						;
        143	000400				tebuf:		.blkw	8.			;
        144	000420	012706 	000400 		entry:		mov	#stack,	SP		;
        145	000424	106427 	000340 				mtps	#340			; запретили прерывания
        146	000430	000167 	000344 				jmp	tst0			; выбираем нужный тест
        147											;
        148		001000 					.	= 1000			;
        149	001000	005000 			tst0:		clr	R0
        150	001002	012703 	000002 				mov	#2, R3
        151	001006	070603 					mul	R3, SP
        152	001010	005200 					inc	R0
        153
        154	001012						.blkw	2000
    - - - Добавлено - - -

    Цитата Сообщение от Titus Посмотреть сообщение
    Блок, который призван идентифицировать двухадресную команду ((код & 0x7FFF)> 0x0FFF), у которой в качестве Rd указан R7, имеет ошибку или особенность следующего плана.
    А у команд EIS разве ss и d (вместо dd) не поменяны местами? "ss == R7" идет лесом ?

  4. Этот пользователь поблагодарил Vslav за это полезное сообщение:

    Alex_K (02.12.2020)

  5. #1503
    Guru
    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    2,764
    Спасибо Благодарностей отдано 
    216
    Спасибо Благодарностей получено 
    327
    Поблагодарили
    218 сообщений
    Mentioned
    31 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Таким образом, принять решение о том, что инструкция двухоперандная влияющая на R7 можно только в первой микрокоманде инструкции. Возможно, это где-то задействовано (в двухоперандных командах, до которых я не дошел), но в случае с MUL не работает.
    Если в dst используется R7, то это можно решить на уровне микрокода, а вот использование R7 в src надо где-то запомнить. Кстати в src R7 изменяется и при использовании адресаций 6 и 7.

  6. #1504
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    12,477
    Спасибо Благодарностей отдано 
    563
    Спасибо Благодарностей получено 
    802
    Поблагодарили
    436 сообщений
    Mentioned
    50 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Vslav Посмотреть сообщение
    А у команд EIS разве ss и d (вместо dd) не поменяны местами? "ss == R7" идет лесом ?
    Поменяны. Поэтому для этих команд будет dd=R7, а не ss=R7.

  7. #1505
    Guru Аватар для Vslav
    Регистрация
    31.03.2013
    Адрес
    г. Киев
    Сообщений
    2,180
    Спасибо Благодарностей отдано 
    103
    Спасибо Благодарностей получено 
    453
    Поблагодарили
    250 сообщений
    Mentioned
    64 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    ix - это РДУ - Регистр Дополнительных условий, он многофункциональный, U643 на твоей схеме это просто OR в роли мультиплексора, сигналы на входах всегда в разных фазах. Это же и в документации написано. Так что признаки там хранится все время исполнения инструкции просто не могут.

  8. #1506
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    12,477
    Спасибо Благодарностей отдано 
    563
    Спасибо Благодарностей получено 
    802
    Поблагодарили
    436 сообщений
    Mentioned
    50 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Vslav Посмотреть сообщение
    ix - это РДУ - Регистр Дополнительных условий, он многофункциональный, U643 на твоей схеме это просто OR в роли мультиплексора, сигналы на входах всегда в разных фазах. Это же и в документации написано. Так что признаки там хранится все время исполнения инструкции просто не могут.
    Документацию не читал, но и так понятно, как он работает. И я уже описывал его многофункциональность.

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

    А признаки там могут хранится, и хранятся. Например, в IX2 хранится признак в течение всей инструкции.

  9. #1507
    Guru Аватар для Vslav
    Регистрация
    31.03.2013
    Адрес
    г. Киев
    Сообщений
    2,180
    Спасибо Благодарностей отдано 
    103
    Спасибо Благодарностей получено 
    453
    Поблагодарили
    250 сообщений
    Mentioned
    64 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Микропрограмма выборки кэшированной инструкции (адрес 0x01) принимает решение о перекешировании, если IX1=1.
    IX1=1, если совпало одно из условий:
    1. Совпало условие блока условий (BRA=1). В нашем случае неактуально, т.к. проверка условий не запрашивалась.
    2. Был активен RCMD_SET. Не разбирался, но это что-то из блока таймаута и блока модификации кэша, когда записали новое значение по адресу, на который указывал R7.
    Это да, а вот следующее не работает:
    Цитата Сообщение от Titus Посмотреть сообщение
    3. Предыдущая инструкция была двухоперандная (в битах 14,13,12 был не 000), при этом в поле приемника (биты 8,6,7) был закодирован R7. Условие двухоперандности совпадает, но вот в поле приемника у нас не R7, а R6.
    Потому что когда исполняется 0x01, IR_STB нет.

  10. #1508
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    12,477
    Спасибо Благодарностей отдано 
    563
    Спасибо Благодарностей получено 
    802
    Поблагодарили
    436 сообщений
    Mentioned
    50 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Vslav Посмотреть сообщение
    Потому что когда исполняется 0x01, IR_STB нет.
    Как это нет? IR_STB именно во время 0x01 и есть, т.к. IR_STB инициируется SET_CEND, а SET_CEND устанавливает единственная команда - 0x01.

  11. #1509
    Guru Аватар для Vslav
    Регистрация
    31.03.2013
    Адрес
    г. Киев
    Сообщений
    2,180
    Спасибо Благодарностей отдано 
    103
    Спасибо Благодарностей получено 
    453
    Поблагодарили
    250 сообщений
    Mentioned
    64 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    А признаки там могут хранится, и хранятся. Например, в IX2 хранится признак в течение всей инструкции.
    Да, 2-ой разряд тактируется от IR_STB и хранит признак двух-адресной инструкции. Но для IX[0..1] это не так, они мультиплексируются, регистр обновляется каждый микроцикл и содержимое интерпретируются каждой микрокомандой по-своему.

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

    Цитата Сообщение от Titus Посмотреть сообщение
    Как это нет? IR_STB именно во время 0x01 и есть, т.к. IR_STB инициируется SET_CEND, а SET_CEND устанавливает единственная команда - 0x01.
    - модель с тобой не согласна, специально сейчас проверил
    - заводская документация с тобой тоже не согласна

  12. #1510
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    12,477
    Спасибо Благодарностей отдано 
    563
    Спасибо Благодарностей получено 
    802
    Поблагодарили
    436 сообщений
    Mentioned
    50 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Vslav Посмотреть сообщение
    Да, 2-ой разряд тактируется от IR_STB и хранит признак двух-адресной инструкции. Но для IX[0..1] это не так, они мультиплексируются, регистр обновляется каждый микроцикл и содержимое интерпретируются каждой микрокомандой по-своему.
    Все так.

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

    Цитата Сообщение от Vslav Посмотреть сообщение
    - модель с тобой не согласна, специально сейчас проверил
    - заводская документация с тобой тоже не согласна
    Возможно, все зависит от того, какой итервал ты считаешь за время исполнения одной микрокоманды.
    Я считаю то время, когда PLM неизменно:


Страница 151 из 170 ПерваяПервая ... 147148149150151152153154155 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Ответов: 3
    Последнее: 27.12.2019, 21:25
  2. Реверс-инжиниринг игры Boovie
    от Oleg N. Cher в разделе Программирование
    Ответов: 37
    Последнее: 13.09.2019, 16:53
  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

Ваши права

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