User Tag List

Показано с 1 по 10 из 256

Тема: Эмулятор БК-0010-01, БК-0011 и БК-0011М

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    19.04.2013
    Адрес
    г. Чебоксары
    Сообщений
    613
    Спасибо Благодарностей отдано 
    18
    Спасибо Благодарностей получено 
    176
    Поблагодарили
    136 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Про предвыборку я что-то припоминаю, вроде бы обсуждались какие-то её косяки в 1801ВМ2, а про 1801ВМ1 не помню.
    Цитата Сообщение от Alex_K Посмотреть сообщение
    Регистровые команды всегда запускают предвыборку следующей команды.
    Что-то алгоритм прям сильно отличается от того, что Vslav в документации описал.
    Затронута только movb или ещё cmpb, bisb, bicb, bitb?
    А mfps pc? А однооперандные регистровые тоже запускают предвыборку?

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

  3. #2

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

    По умолчанию

    Цитата Сообщение от gid Посмотреть сообщение
    Про предвыборку я что-то припоминаю, вроде бы обсуждались какие-то её косяки в 1801ВМ2, а про 1801ВМ1 не помню.
    Да, она есть в 1801ВМ1. Но принцип её отличается от ВМ2. В ВМ2 она принудительная, делается всегда, независимо от того, будет использована или нет.
    В ВМ1 она выборочная. Запускают её те команды, которые не будут использовать шину МПИ. Их четыре группы:
    1. Команды снятия-установки признаков. Это коды с 0240 по 0277.
    2. Однооперандные команды работы с регистром. Предвыборка запускается всегда, но игнорируется, если используется регистр PC. Также предвыборка игнорируется в команде MTPS, независимо от регистра.
    3. Двухоперандные типа регистр-регистр. Так же запускается всегда, но игнорируется, если один из регистров PC. Ну за исключением регистра источника в команде MOVB.
    4. Двухоперандные типа память-регистр. Предвыборка запускается после обработки источника. Так же, если приёмник равен PC, то её результаты не используются.
    В ВМ1 есть два регистра инструкций - IR и IRA. IR выходит прям на главную ПЛМ и в него прямо читается при чтении некэшированной инструкции. При запуске чтения предвыборки чтение идёт в регистр IRA. А потом когда микрокоманда делает ожидание чтения предвыборки, то завершается ожидание чтения в IRA, а потом копируется из IRA в IR.
    Цитата Сообщение от gid Посмотреть сообщение
    Что-то алгоритм прям сильно отличается от того, что Vslav в документации описал.
    К сожалению у Vslav в документации не всё описано по строению микрокоманды, а в описании алгоритмов исполнения команд есть ошибки. По всей видимости он алгоритмы некоторых команд прямо копировал в другие команды.
    Цитата Сообщение от gid Посмотреть сообщение
    Затронута только movb или ещё cmpb, bisb, bicb, bitb?
    Только MOVB, т.к. у неё есть дополнительная микроинструкция для расширения знака. Эта микроинструкция используется и в MFPS, но там нету источника, только приёмник, потому этот глюк там не проявляется.
    Цитата Сообщение от gid Посмотреть сообщение
    А mfps pc? А однооперандные регистровые тоже запускают предвыборку?
    Да, уже описал выше.

    У MFPS есть глюк с флагом C, так же как и в MOVB. Но об этом вроде известно.

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

    Цитата Сообщение от gid Посмотреть сообщение
    Что-то алгоритм прям сильно отличается от того, что Vslav в документации описал.
    Добавлю, что алгоритм команды MOV не отличается от описания Vslav, просто он у меня немного по другому описан и акцентировано по продвижению флагов в разных регистрах. В алгоритме MOVB видно, что после микрокоманды копирования младшего байта источника в младший байт приёмника, для того чтобы следующей микрокоманде было доступно содержание флагов из АЛУ, производится копирование всех флагов в регистр MJ, а с него в регистр MA, который выходит на ПЛМ. В этом и ошибка, т.к. из АЛУ копируется уже нулевой бит C. Но в 1801ВМ1 нету в поле PLOP микрокоманды такого условия, чтобы скопировать только три бита в MJ и сразу же передать в MA. Копирование трёх битов в MJ есть, но без передачи в MA.

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

    BlaireCas(05.10.2025), CodeMaster(05.10.2025)

  4. #3

    Регистрация
    03.07.2021
    Адрес
    г. Кировск
    Сообщений
    922
    Спасибо Благодарностей отдано 
    87
    Спасибо Благодарностей получено 
    211
    Поблагодарили
    156 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от gid Посмотреть сообщение
    Про предвыборку я что-то припоминаю

    недавно делал тесты хитрозадых команд, где регистр PC "шагает назад" по коду. результаты эмулятора и реала ниже (закину архивом). совпало только для BR .-2 и MOV -(PC),-(PC). самый жесткий разбег на команде SUB Rx,PC. бинарник прилагается. уточнение по работе теста: генерируется длинный массив одинаковых команд, по кадровому прерыванию делается переход на конец массива, код начинает "бежать назад". следующее прерывание останавливает код, цифры показывают кол-во команд, выполненных между кадровыми прерываниями (запускать в режиме 11М) back_PC.zip
    Последний раз редактировалось reddie; 26.10.2025 в 22:00.

  5. #4

    Регистрация
    19.04.2013
    Адрес
    г. Чебоксары
    Сообщений
    613
    Спасибо Благодарностей отдано 
    18
    Спасибо Благодарностей получено 
    176
    Поблагодарили
    136 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от reddie Посмотреть сообщение
    совпало только для
    Ну почему же, для CMP тоже вполне совпало. Для BIS тоже расхождение не сильно большое. Вы все всё время забываете, что БК - это не спектрум и не ДВК/УКНЦ/и т.п. На этой дурацкой БК невозможно определить точные тайминги команд. Они примерные, и если очень близко к реальности, то это очено хорошо.
    А вот про SUB R2,PC мне нечего сказать, я не знаю, почему она на реальной машине выполняется так медленно, наверное опять какие-то тайны микрокода, которые никто не обнародовал.

  6. #5

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

    По умолчанию

    Цитата Сообщение от gid Посмотреть сообщение
    А вот про SUB R2,PC мне нечего сказать, я не знаю, почему она на реальной машине выполняется так медленно, наверное опять какие-то тайны микрокода, которые никто не обнародовал.
    Просто в этом случае считывается предвыборка, но она не используется. В качестве примера: команда SUB R2,PC находится по адресу 02000. Так как команда регистровая, то сразу же начинает читаться следующая команда в регистр предвыборки по адресу 2002. После исполнения операции микрокод видит, что в качестве DST использовался счётчик команд и переходит на чтение некэшированной инструкции. Такая ситуация со всеми двухоперандными регистровыми командами, если счётчик команд используется в качестве SRC или DST. Ну за исключением команды MOVB PC,Rd, где есть ошибка в микрокоде.

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

    CodeMaster(27.10.2025)

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

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

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

Похожие темы

  1. Отличия БК-0011М от БК-0010(01)?
    от nzeemin в разделе БК-0010/0011
    Ответов: 22
    Последнее: 30.03.2021, 18:47
  2. БК-0010/0011: Разное
    от CD-Inc в разделе БК-0010/0011
    Ответов: 73
    Последнее: 30.07.2012, 16:58
  3. Начало выпуска БК-0011 и БК-0011М
    от dk_spb в разделе БК-0010/0011
    Ответов: 6
    Последнее: 14.10.2010, 14:22
  4. Отличие 0011 и 0011М
    от Kronshou в разделе БК-0010/0011
    Ответов: 11
    Последнее: 17.01.2010, 22:24
  5. Москва - куплю все связанное с БК-0010/0011
    от kt315b в разделе Барахолка (архив)
    Ответов: 0
    Последнее: 04.10.2008, 05:09

Ваши права

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