User Tag List

Страница 140 из 174 ПерваяПервая ... 136137138139140141142143144 ... ПоследняяПоследняя
Показано с 1,391 по 1,400 из 1740

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

  1. #1391

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

    По умолчанию

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

    Вообще, процессор в целом весьма сложная штуковина. Я думаю, какой-нибудь Z80 явно в разы попроще.
    Тут и независимые блоки, и конвейеры в каждом блоке, сложные зависимости.
    И, самое интересное, есть много вещей, которые словно приляпывались поверх уже существующих. Я не говорю о расширенной арифметике, которая именно так и сделана.
    Например, модификаторы для микрокоманды сделаны совершено по-разному. Этому один бит, этому два, этому три, и все эти биты разбросаны, перемешаны и доляпаны друг к другу. Не говоря уже о том, то, видимо, за нехваткой разрядности микрокода, в качестве модификаторов использовались даже отдельные биты адреса следующей микрокоманды (NA5..NA0). Так что сборной солянки для расшифровки там не мало.
    Ну, и, конечно же многофункциональное поле RI, сделанное в виде трехпортового трехбитного регистра, при этом третий порт работает в виде reset/set/set, как описано чуть выше.
    Полно было триггеров, которых надо было проверять, не встанут ли они в третье состояние.
    Словом, распутано и приведено в человеческий вид многое, но еще не все.

    Я вообще не понимаю, как @Vslav разбирается в потранзисторной схеме, или же в ее аналоге на VHDL. Запускать это можно, отследить любые сигналы можно, но разобраться во всей поднаготной и систематизировать реверс, при этом не теряя всю общую картину, по такой схеме для меня было бы нереально.

  2. #1392

    Регистрация
    26.04.2009
    Адрес
    г. Воронеж
    Сообщений
    6,480
    Спасибо Благодарностей отдано 
    310
    Спасибо Благодарностей получено 
    249
    Поблагодарили
    217 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    но разобраться во всей поднаготной и систематизировать реверс
    Думацо, он не ставил такой цели. Можно же реверс разделить на несколько этапов:
    1. Чтоб работало как оригинал;
    2. Чтоб понять как работает оригинал;
    3. Чтоб понять почему оригинал сделали именно так.
    "Во времена всеобщей лжи говорить правду - это экстремизм" - афоризм.

  3. #1393

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

    По умолчанию

    Цитата Сообщение от CodeMaster Посмотреть сообщение
    2. Чтоб понять как работает оригинал;
    3. Чтоб понять почему оригинал сделали именно так.
    Вот мне как раз важно 2-е.
    Ибо, я эмуляторщик, и если соберусь писать потактовый УКНЦ, то без второго пункта можно даже не пробовать.
    Естественно, писать даже потактовую эмуляцию в виде эмуляции всех вентилей - это абсурд и дикие тормоза.
    А, стало быть, надо понять ВСЮ структуру процессора до мелочей, и преобразовать в тот вид, когда это уже можно эмулировать, а не просто тупо повентильно симулировать.
    Поэтому, опять же, верилог для основы мне не подходит.

  4. #1394

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

    По умолчанию

    @Alex_K, интересное наблюдение.
    При обработке прерывания безадресный регистр (SEL) читается в любом случае, независимо от того, в режиме USER обрабатывается прерывание или в режиме HALT.

  5. #1395

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

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    @Alex_K, интересное наблюдение.
    При обработке прерывания безадресный регистр (SEL) читается в любом случае, независимо от того, в режиме USER обрабатывается прерывание или в режиме HALT.
    Да, это уже известно. Было обнаружено при моделировании процессора. Да и в официальной документации описано, рис.51 во второй части ТО.

  6. #1396

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

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Да, это уже известно.
    А я уж думал, что открыл Америку)

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

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

  8. #1397

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

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    А я уж думал, что открыл Америку)

    Видимо, решили не заморачиваться, и для упрощения микрокода сделали чтение SEL для всех прерываний, а потом уже разбор, какому прерыванию по какой ветке идти. Тем более, что чтение SEL занимает всего 4 такта.
    Вероятнее всего, что так и есть. Это, кстати, сохранено и в 1806ВМ2. А куда читается SEL?

  9. #1398

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

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Вероятнее всего, что так и есть. Это, кстати, сохранено и в 1806ВМ2. А куда читается SEL?
    Все, что читается с шины, размещается в BRD (буферный регистр данных).
    А если читается код следующей инструкции, то он размещается и в BRD, и в BIR (буферный регистр инструкций) одновременно.

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

    Уточню - все, что я уже рассмотрел. Но могут быть режимы, до которых я еще не добрался.

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

    Alex_K(19.11.2020), hobot(20.11.2020)

  10. #1399

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

    По умолчанию ВМ2: Чтение вектора

    Чтение вектора прерывания в документации от @Alex_K нарисовано неправильно:




    На самом деле происходит так:



    То есть, данные с шины защелкиваются внутри активного DIN, а точнее внутри RDAT.

    А если ответить RPLY не дожидаясь IAKO, то можно сократить время чтения на два такта,
    хотя практической пользы от этого, видимо, никакой.


  11. #1400

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

    По умолчанию ВМ2: Растактовка цикла записи

    Цикл записи шины в процессоре ВМ2 (12 тактов) значительно медленнее, чем цикл чтения (8 тактов).
    Кроме того, невозможно задать опережающий RPLY, таким же образом, как в цикле чтения, чтобы сократить время доступа к шине. Это связано с тем, что 'увидев' RPLY на шине, контроллер не выдаст данные. Поэтому, если мы хотим ускорить запись опережающим RPLY, выдавать его нужно после того, как на шину выставлены данные, но до того, как появился сигнал DOUT.
    Как же этого добиться? В принципе, такое возможно.
    Например, после получения адреса сперва ожидаем появление на шине значения 0x0000, затем ожидаем любого изменения на шине, либо же появления сигнала DOUT. После чего выдаем RPLY.
    В случае, если записывается число 0x0000, опережающего RPLY выдать не получится. При записи любого другого числа, RPLY будет с опережением, и цикл записи сократится до 10 тактов.
    Конечно, это усложнит контроллер памяти, но позволит ускорить запись.


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

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

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

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

Похожие темы

  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

Ваши права

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