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

User Tag List

Страница 142 из 271 ПерваяПервая ... 138139140141142143144145146 ... ПоследняяПоследняя
Показано с 1,411 по 1,420 из 2702

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

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

    По умолчанию

    Цитата Сообщение от gid Посмотреть сообщение
    Я полагал, что если (((plm & (1<<13)) && !(plm & (1<<14))) || (plm & (1<<11))), то значение константы или вектора задаётся значением VSEL из специального управляющего вектора, или из матрицы прерываний, а в коде программы - значение битов [28:25] используется одновременно и как номер константы/вектора, и как признак константы/вектора
    assign vc_vsel = (plr[28:25] == 4'b0010) & ((plr[13] & ~plr[14]) | plr[11]);
    assign vc_csel = (plr[28:25] != 4'b0010) & ((plr[13] & ~plr[14]) | plr[11]);

    Если 28-25 равно 2, то используется значение записанное в регистре VSEL как индекс вектора
    Если 28-25 не равно 2, то используется само значение 28-25 как индекс константы

    Цитата Сообщение от gid Посмотреть сообщение
    Ещё не хватает таблицы для PLOP.
    Если бы ее еще осмыслить получилось бы

    Цитата Сообщение от gid Посмотреть сообщение
    Если биты 13 и 14 оба 1 и на шине Y [x011], то на шине Х переставляются байты местами.
    Да, это существенно, спасибо, внесу в документ. Подходит в поле управления режима сдвигателя АЛУ, хотя по факту работает схема обмена байт.

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

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

    По умолчанию

    Vslav, в таблице прерываний и исключений, на стр. 55 нигде не написано про команду BPT. Она ведь тоже прерывание по вектору 014 делает. Да и в пунктах 8.3, 8.4 про неё ни слова. А с помощью этой команды отличные антиотладочные трюки делаются.

    А ещё, команда HALT, если читать эту таблицу, может быть замаскирована битами PSW10, PSW11
    Вроде бы это уже обсуждали и выяснили, что HALT в HALT-mode работает как NOP, т.е. ничего не делает или всё-таки что-то делает. Но я просто не в состоянии заново перелопачивать все ветки форумов, чтобы убедиться, так это или я заблуждаюсь, не законспектировал сразу, то всё, через 3 года - фиг найдёшь.
    Поэтому или в этой таблице, или в пункте 8.3 нужно как-то описать, что делают прерывания, вызывающие переход в пультовый режим, в самом пультовом режиме, может какими-то простыми словами написать. (кроме совсем очевидных случаев, типа зависаний шины - они как работали, так и останутся работать так, как работали)

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

    По умолчанию

    Цитата Сообщение от gid Посмотреть сообщение
    Vslav, в таблице прерываний и исключений, на стр. 55 нигде не написано про команду BPT. Она ведь тоже прерывание по вектору 014 делает. Да и в пунктах 8.3, 8.4 про неё ни слова. А с помощью этой команды отличные антиотладочные трюки делаются.
    Прежде всего - большое спасибо что прочитали и прокомментировали, вместе мы можем существенно улучшить документ.
    Да, как-то упустил я BPT в документации, с точки зрения микрокода там все скучно - IOT/BPT/EMT/TRAP все выполняются одинаково, только значение VSEL разное прописывается для последующей обработки.

    Цитата Сообщение от gid Посмотреть сообщение
    А ещё, команда HALT, если читать эту таблицу, может быть замаскирована битами PSW10, PSW11
    Что имеется ввиду? Там про nIRQ1 написано, но чтобы не было путаницы добавил в таблицу инструкцию HALT, рядышком с добавленной BPT и имеющимся IOT.

    Цитата Сообщение от gid Посмотреть сообщение
    Вроде бы это уже обсуждали и выяснили, что HALT в HALT-mode работает как NOP, т.е. ничего не делает или всё-таки что-то делает.
    У 1801ВМ1 нет HALT-моде, у него один-единственный режим работы, в документе это в паре мест написано, я добавил еще такой абзац:

    Собственно в процессоре 1801ВМ1 нет никаких аппаратных средств или признаков "пультового" режима - процессор всегда работает одинаково. Реализация "пультового" режима заключается в микропрограммном управлении битом 3 во внешнем (по отношению к микросхеме процессора) регистре, расположенном по адресу 1777168. При входе в "пультовый" режим по прерыванию или исключению процессор выполняет операцию чтение-модификация-запись по адресу 1777168, устанавливая бит 3. При возврате из "пультового" режима инструкциями STEP и START происходит аналогичное обращение по тому же адресу со сбросом бита 3. Особенности реализации данного бита могут различаться, например, в системах, построенных на основе 1801ВП1-030, данный бит управляет отображением ПЗУ в области адресов 1600008-1737778, при входе в "пультовый" режим бит 3 будет установлен и по данным адресам будет гарантировано отображено системное ПЗУ, в котором можно разместить гарантировано доступный код обработчика пультового исключения или прерывания.

    Поэтому HALT всегда работает одинаково, согласно алгоритму входа в пультовое исключение. Ну и PC не корректируется при входе, поэтому указывает на следующую за HALT инструкцию.

    Цитата Сообщение от gid Посмотреть сообщение
    Поэтому или в этой таблице, или в пункте 8.3 нужно как-то описать, что делают прерывания, вызывающие переход в пультовый режим, в самом пультовом режиме, может какими-то простыми словами написать. (кроме совсем очевидных случаев, типа зависаний шины - они как работали, так и останутся работать так, как работали)
    В пункте 8.4 все пошагово описано - и кодом и словами. Имхо там сложно что-то добавить, ну нету "пультового" режима в ВМ1, нету . Команды в "нем" делают все то же самое что и всегда

    PS. Обновленная документация на 1801ВМ 1 (05-Jul-2018), имя документа теперь фиксировано, ссылка всегда будет указывать на последнюю ревизию. Также добавлю ссылку в первый пост.
    Последний раз редактировалось Vslav; 01.02.2019 в 17:53. Причина: Обновление ссылки на документ

  5. #1414
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,777
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    61 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vslav Посмотреть сообщение
    Собственно в процессоре 1801ВМ1 нет никаких аппаратных средств или признаков "пультового" режима - процессор всегда работает одинаково.
    Это не совсем так - в HALT-моде (если не ошибаюсь) 1801ВМ1 иначе отрабатывает ошибку зависания шины - выполняет HALT_Trap вместо TrapTo_4.

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

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Это не совсем так - в HALT-моде (если не ошибаюсь) 1801ВМ1 иначе отрабатывает ошибку зависания шины - выполняет HALT_Trap вместо TrapTo_4.
    У процессора 1801ВМ1 - НЕТ HALT моды. Вообще. Нет никакого бита или флага который указывал бы на различие режимов. Соответственно, ни микрокод, ни матрица приоритезатора прерываний абсолютно не могут ничего знать про "режим" - они ВСЕГДА работают одинаково.

    Если есть какие-то ситуации, когда кажется что такой "режим" есть - давайте конкретно обсуждать и развеивать мифы

    Реакция на зависание шины зависит от битов PSW10 и PSW11, но это не "режим".
    Последний раз редактировалось Vslav; 05.07.2018 в 21:00.

  7. #1416
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,777
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    61 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vslav Посмотреть сообщение
    Реакция на зависание шины зависит от битов PSW10 и PSW11, но это не "режим".
    Если бы PSW не являлось частью процессора - тогда да. Но поскольку PSW - это часть процессора, задающая режимы его работы, то так же как и у 1801ВМ2 - у процессора 1801ВМ1 есть режим пульта, задаваемый битом PSW. В режиме HALT работа процессора 1801ВМ1 кардинально отличается от работы в режиме USER.

    Это принципиальный момент, который надо чётко понимать.
    Последний раз редактировалось Patron; 05.07.2018 в 21:11.

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

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Если бы PSW не являлся частью процессора - тогда да. Но поскольку PSW часть процессора, то так же как и у 1801ВМ2 - у процессора 1801ВМ1 есть режим пульта, задаваемый битом PSW. В режиме HALT работа процессора 1801ВМ1 кардинально отличается от работы в режиме USER.

    Это принципиальный момент, который надо чётко понимать.
    Это не режим, аналогичный режиму в ВМ2/ВМ3. Цитата из документа:

    PSW10
    Модифицирует обработку исключения зависания шины, если данный бит ненулевой, то исключение зависания будет обрабатываться в пультовом режиме по вектору 1600028
    Единичное значение бита PSW10 также маскирует следующие прерывания:
    - по пропаданию питания (срез на входе nACLO)
    - пультовое прерывание nIRQ1
    - прерывание от ВЕ-таймера (только К1801ВМ1Г)
    - nIRQ2
    - nIRQ3
    - векторное прерывание nVIRQ
    Бит всегда сбрасывается при входе в процедуру обработки прерывания или исключения пользовательского режима, значение бита, читаемое из вектора игнорируется. Поскольку данный бит маскирует асинхронные прерывания пользовательского режима, то его сброс может произойти только по синхронным пользовательским исключениям (ошибки или инструкции вызова исключений).
    Бит также всегда сбрасывается при выполнении инструкций RTT и RTI, значение загружаемое из стека игнорируется. Фактически данный бит может быть установлен только при входе в обработчик прерывания или исключения пультового режима (хорошо подходит инструкция HALT), а также при возврате из него инструкциями STEP и START. Инструкция MTPS не изменяет данный бит.

    PSW11
    Модифицирует обработку исключения зависания шины, если данный бит ненулевой, то исключение зависания будет обрабатываться в пультовом режиме по вектору 1600028, иначе обработка по вектору 0000048 без перехода в пультовой режим
    Единичное значение бита PSW11 также запрещает пультовое прерывание nIRQ1.
    Бит всегда сбрасывается при входе в процедуру обработки прерывания или исключения пользовательского режима, значение бита, читаемое из вектора игнорируется.
    Бит также всегда сбрасывается при выполнении инструкций RTT и RTI, значение загружаемое из стека игнорируется. Фактически данный бит может быть установлен только при входе в обработчик прерывания или исключения пультового режима (хорошо подходит инструкция HALT), а также при возврате из него инструкциями STEP и START. Инструкция MTPS не изменяет данный бит

    Эти биты только маскируют некоторые прерывания и меняют характер реакции на исключение зависания шины. Установить их можно только при входе в "пультовое" прерывание или исключение, но долго они установленными не живут - первое же обычное прерывание (для PSW11) или исключение, а также RTI/RTT их обнулит. У ВМ2/ВМ3 есть реальные пультовые режимы, есть физический выход SEL, который зависит от текущего режима и во многих системах управляет адресацией памяти, в этом принципиальная разница. А у ВМ1 PSW10/11 сделаны как вспомогательные, сделаны чтобы "гасить" nIRQ1 - иначе просто невозможно написать для него нормальный обработчик.

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

    Цитата Сообщение от Patron Посмотреть сообщение
    В режиме HALT работа процессора 1801ВМ1 кардинально отличается от работы в режиме USER.
    Что такого кардинального в том что зависание шины трапается по другому вектору и сохраняет текущий вектор по фиксированному адресу вместо стека? Это единственное существенное отличие. Работа самого ядра, инструкций и прочего никак не меняется.
    Последний раз редактировалось Vslav; 05.07.2018 в 21:23.

  9. #1418
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,777
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    61 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Отличие процессора 1801ВМ1 от последующих в том, что разработчики позволили авторам кода ПЗУ самим решать - переводить процессор в режим пульта или нет. При включении питания, двойной ошибке шины и зависании вектора прерывания - процессор загружает новое содержимое PSW из фиксированного HALT-смещения. Если в этом новом содержим PSW установлен бит режима пульта - процессор переходит в режим пульта и начинает отрабатывать обычные зависания шины как двойные.

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

    Цитата Сообщение от Vslav Посмотреть сообщение
    Что такого кардинального в том что зависание шины трапается по другому вектору и сохраняет текущий вектор по фиксированному адресу вместо стека?
    А какое отличие в отработке прерывания может быть ещё более кардинальным - это именно типичный режим пульта.

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

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    При включении питания, двойной ошибке шины и зависании вектора прерывания - процессор загружает новое содержимое PSW из фиксированного HALT-смещения.
    Процессор всегда делает это одинаковым способом.
    Ну ОК, я не буду спорить. Как по мне - PSW10/11 просто меняют режим обработки зависания шины и все, ну PSW10 дополнительно запрещает прерывания. На кардинальность это, имхо, никак не тянет. Поведение процессора никак не меняется, все инструкции исполняются как обычно. На мой взгляд эти биты - просто костыль для ПЗУ, чтобы работающий в нем код гарантировано никуда не улетал и оставался в своих пределах (произошло зависание - и попадаем на свой же обработчик в ПЗУ). Все описывается в рамках обычных инструкций, никакой невидимой программисту "магии" нету.

    Цитата Сообщение от Patron Посмотреть сообщение
    А какое отличие в отработке прерывания может быть ещё более кардинальным - это именно типичный режим пульта.
    "Типичный" режим пульта - это к DECу - начиная с LSI-11 Вот там пульт всем пультам пульт. В ВМ2/ВМ3 есть свой "пульт" который может менять (если внешние схемы корректно обрабатывают выход SEL) карты памяти. Вот это можно назвать "кардинально". А ВМ1 - то такое. Ну одно аппаратное исключение немного по-другому обрабатывает, на полноценный режим не тянет, имхо.

  11. #1420
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,777
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    61 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vslav Посмотреть сообщение
    Все описывается в рамках обычных инструкций, никакой невидимой программисту "магии" нету.
    Вот такой он - 1801ВМ1. Магии нет, а включаемый битом PSW режим пульта есть.


    Цитата Сообщение от Vslav Посмотреть сообщение
    "Типичный" режим пульта - это к DECу - начиная с LSI-11 Вот там пульт всем пультам пульт. В ВМ2/ВМ3 есть свой "пульт" который может менять (если внешние схемы корректно обрабатывают выход SEL) карты памяти. Вот это можно назвать "кардинально". А ВМ1 - то такое. Ну одно аппаратное исключение немного по-другому обрабатывает, на полноценный режим не тянет, имхо.
    В том всё и дело, что у 1801ВМ1 именно неполноценный режим пульта. Но это именно режим пульта, причём совершенно очевидный - в PSW есть бит, который специально предназначен для установки в коде ПЗУ пульта.

    Про типичность такого подхода я погорячился - режим пульта в 1801ВМ1 организован весьма нетипично и крайне неполноценно.

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

    Можно отметить, что все недостатки режима пульта 1801ВМ1 исправлены в 1801ВМ2, но при этом важно понимать (и особенно - с исторической точки зрения), что те убогие полумеры, которые были предприняты при разработке 1801ВМ1 для организации нормальной работы программы ПЗУ пульта - это именно "первая версия режима пульта", а не стандартный набор возможностей для любых целей без учёта уникальных потребностей режима пульта (вроде кардинально иной отработки зависаний).
    Последний раз редактировалось Patron; 05.07.2018 в 22:09.

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

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

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

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

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

Ваши права

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