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

User Tag List

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

Тема: Цифровая археология: 1801 и все-все-все

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

    По умолчанию

    Цитата Сообщение от gid Посмотреть сообщение
    После оптимизации для прошивки ПЛМ там очень уж не очевидные перекрытия стали получаться.
    Я пошел по пути прослеживания цепочки обработки каждой инструкции. Сначала составляется цепочка микроадресов по которой пробегает автомат для нужной группы опкодов, а потом уже анализируется каждый микроадрес с конкретным кодом инструкции. Очень уж разные действия могут совершаться на конкретном микроадресе в зависимости от содержимого IR. Утилиту для анализа позже выложу, но она совсем непричесанная.

    RTI при установленном T в слове состояния PSW, извлекаемом из стека не дает никакого шанса отработать возможным прерываниям - сразу уходит на новый трап 148, даже не грузит слово инструкции. RTT также не дает отработать прерываниям. Еще RTI/RTT обнуляют старший байт PSW, загружаемое из стека значение игнорируется.

  2. #1392
    Guru
    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,208
    Спасибо Благодарностей отдано 
    346
    Спасибо Благодарностей получено 
    607
    Поблагодарили
    399 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vslav Посмотреть сообщение
    Еще RTI/RTT обнуляют старший байт PSW, загружаемое из стека значение игнорируется.
    Получается, что старший байт PSW устанавливают только прерывания исключений (160002, 160006, 160012) и команды START/STEP?
    Кстати, а команды START/STEP можно исполнять всегда, или существуют какие-либо ограничения (только при установленных битах 10 или 11 в PSW, или чтобы адрес был больше 0160000)?

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

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Получается, что старший байт PSW устанавливают только прерывания исключений (160002, 160006, 160012) и команды START/STEP?
    Кстати, а команды START/STEP можно исполнять всегда, или существуют какие-либо ограничения (только при установленных битах 10 или 11 в PSW, или чтобы адрес был больше 0160000)?
    Да, старший байт PSW не обнуляют только процедуры входа в пультовые обработчики и возврат из них инструкциями START/STEP. Ограничений на исполнение START/STEP никаких не видно, обычные инструкции.

  4. #1394
    Master
    Регистрация
    19.04.2013
    Адрес
    г. Чебоксары
    Сообщений
    538
    Спасибо Благодарностей отдано 
    14
    Спасибо Благодарностей получено 
    136
    Поблагодарили
    105 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Vslav, что-то не совсем понятно в таблице назначения выходов блока микропрограммного управления.
    Там есть биты 11 и 13 обозначенные как PLX, многофункциональные флаги, а ниже описано условие для битов 13 и 14 - если оба единицы - то происходит запись выходов логической матрицы в специальный управляющий вектор.
    Вроде как должна быть ещё таблица комбинаций этих трёх битов, которая определяет, когда Y означает регистр, а когда константу.
    У меня получилась такая вот, правильная или нет - не знаю.
    Код:
    14 13 11
    0  0  0 - Y - регистр
    0  0  1 - Y - константа
    0  1  0 - Y - константа
    0  1  1 - Y - константа
    1  0  0 - Y - регистр
    1  0  1 - Y - константа
    1  1  0 - спец.вектор
    1  1  1 - спец.вектор
    Как я подозреваю из чтения верилога, там встречается условие (~plr[14] & plr[13]) | plr[11], которое, как я полагаю определяет, что Y является чем-то таким, а условие ~plr[13] & ~plr[11] - что Y является чем-то этаким.

    И как бит 14 может быть в управляющем векторе ~MCIR2, если он является стробом для вектора, он же тогда всегда 1 будет? Или я чего-то не понимаю, и в специальный управляющий вектор записывается не то значение, в котором биты 13 и 14 оба единичные, а что-то другое?

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

    По умолчанию

    Цитата Сообщение от gid Посмотреть сообщение
    в котором биты 13 и 14 оба единичные, а что-то другое?
    Там опечатка, имелось ввиду вот это:
    Код:
    assign plm1x = plm_ena & ~plm[12] &  (plm[11] & plm[13]);
    Строб специального вектора если 11 и 13 биты единичные.
    Табличку для 14, 13, 11 составить непросто, там много связей, посмотрю что можно сделать.

    Update: такая табличка вышла по аргументу Y

    14 13 11 Трансляция на шину Y
    0 0 0 R0-R13, PSW, Q (зависит от разрядов 28-25)
    0 0 1 константа или вектор
    0 1 0 константа или вектор
    0 1 1 константа или вектор
    1 0 0 R0-R13, PSW, Q (зависит от разрядов 28-25)
    1 0 1 константа или вектор
    1 1 0 R12 (предположительно не используется)
    1 1 1 R12 | константа/вектор (предположительно не используется)
    Последний раз редактировалось Vslav; 14.06.2018 в 13:07.

  6. #1396
    Master
    Регистрация
    19.04.2013
    Адрес
    г. Чебоксары
    Сообщений
    538
    Спасибо Благодарностей отдано 
    14
    Спасибо Благодарностей получено 
    136
    Поблагодарили
    105 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Комбинация plr[14] & plr[13] вроде как используется.
    Код:
    assign au_is0  = ~(plr[13] & plr[14] & plr[25] & plr[26] & ~plr[27]);
    assign au_is1  =  (plr[13] & plr[14] & plr[25] & plr[26] & ~plr[27]);
    для определения переставлять ли байты на шине X или нет.
    И для определения значений fctl[7..4] с почти этими же комбинациями бит, но это для меня уж совсем таинственные манипуляции в АЛУ. Я там за деревьями леса не вижу. Вообще не понимаю, как эти мельтешения битов превращаются в нормальные арифметические вычисления с флагами результата операции.

    А plm и plr в общем случае, для анализа микрокода можно считать, что равны между собой, или бывает что нет?
    Я попробовал прикинуть алгоритм, как отслеживать цепочки обработки инструкций, и что-то очень непросто получается. Особенно если не знаешь, какое значение в mr должно быть (кроме поля адреса) и перебираешь их все.
    Последний раз редактировалось gid; 14.06.2018 в 16:52.

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

  8. #1397
    Master
    Регистрация
    19.04.2013
    Адрес
    г. Чебоксары
    Сообщений
    538
    Спасибо Благодарностей отдано 
    14
    Спасибо Благодарностей получено 
    136
    Поблагодарили
    105 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ещё нашёл ошибку.
    В специальном управляющем векторе VSEL задом наперёд написано, и инвертирование не указано.
    По коду
    Код:
    if (plm1x)
             vsel <= {plr[18], ~plr[20], ~plr[21], ~plr[22]};
    18й бит - VSEL[3], ..., 22й - ~VSEL[0]

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

    По умолчанию

    Цитата Сообщение от gid Посмотреть сообщение
    А plm и plr в общем случае, для анализа микрокода можно считать, что равны между собой, или бывает что нет?
    Да, для анализа можно считать что совпадают, по факту это одно и то же, просто в разных фазах цикла.
    Тут я временно выложил утилитку для анализа микрокода, она далеко неполная, корявая, просто костыль, но прохождение инструкций по цепочке микроадресов получается отследить.

    Еще приколы встречаются когда оно MCIR по ходу декодирования меняет. Например, одноадресные инструкции в первом такте, если не регистровое обращение, в MCIR пишут 7, кроме TST - для него пишется 5. А в следующем такте декодирования, оно смотрит на этот переданный MCIR и для TST запускает транзакцию чтения, в том время как для остальных - чтения-модификации-записи.
    Последний раз редактировалось Vslav; 15.06.2018 в 14:34.

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

    По умолчанию

    Использование транзакций read-modify-write (также известные как DATIO) для CLR(B) и SXT подтверждается. TST(B) использует исключительно чтение (DATI).

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

    Если PC является приемником в одноадресных инструкциях в регистровом режиме (например CLR PC), то регистр инструкции заполняется дважды - первый раз по адресу .+2 (следующая инструкция), второй цикл чтения запускается уже по новому значению PC.

  11. #1400
    Master
    Регистрация
    19.04.2013
    Адрес
    г. Чебоксары
    Сообщений
    538
    Спасибо Благодарностей отдано 
    14
    Спасибо Благодарностей получено 
    136
    Поблагодарили
    105 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Там почти для всех опкодов, если шесть младших битов == 000111 (число 7), то бит plx[20] == 0 - эта ситуация прослеживается почти в каждом микроадресе, нету в обработке mark, trap, emt и опкодов меньше 7. Как будто, специально отлавливается, но зачем-то распространена на весь микрокод.

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

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

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

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

Похожие темы

  1. Ответов: 7
    Последнее: 28.06.2014, 17:50
  2. Микросхемы МПК 580,1801,1810 и другие...
    от Alex_Vac в разделе Барахолка (архив)
    Ответов: 44
    Последнее: 07.04.2012, 08:03
  3. ЦИФРОВАЯ МУЗЫКА НА ZX
    от AAA в разделе Музыка
    Ответов: 98
    Последнее: 18.09.2011, 22:33
  4. Учебный стенд УМПК-1801
    от dk_spb в разделе ДВК, УКНЦ
    Ответов: 2
    Последнее: 12.05.2010, 16:52
  5. Цифровая музыка от Вадима Ермеева
    от zxmike в разделе Музыка
    Ответов: 2
    Последнее: 06.08.2007, 23:13

Метки этой темы

Ваши права

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