question-21

Вопрос 21

Структура и принципы работы АЛУ и коммутатора. Регистр PS БЭВМ

Структура и принцип работы АЛУ

АЛУ БЭВМ предназначено для выполнения арифметических и логических операций над двоичными словами. Оно имеет два 16-разрядных входа (левый и правый) и один 16-разрядный выход.

alu.png

АЛУ состоит из следующих функциональных узлов:

  • Схемы обратного кода (инверторы входов): Управляются сигналами COML (для левого входа) и COMR (для правого). Позволяют инвертировать биты входных операндов для реализации операции вычитания и получения обратного/дополнительного кодов.
  • Сумматор и схема логического умножения: Объединенный блок, выполняющий либо поразрядное сложение, либо поразрядное логическое «И» (AND) над входными сигналами. Режим работы выбирается управляющим сигналом SORA: при SORA=0 выполняется сложение, при SORA=1 — логическое умножение.

    Я сам не сразу понял, но оказывается, что SORA - это Sum OR And

  • Вентиль прибавления единицы (PLS1): При подаче сигнала PLS1=1 к результату сложения на сумматоре прибавляется единица (подается перенос в самый младший разряд). Это необходимо для инкремента (INC) или завершения операции получения дополнительного кода (NEG).

Структура и принцип работы коммутатора

Коммутатор расположен на выходе АЛУ. Его задача — преобразовать результат АЛУ перед записью в регистры или передачей на блок проверки флагов.

commutator.png

Коммутатор управляется следующими сигналами:

Передача байтов:

  • LTOL, LTOH, HTOL, HTOH — передача старшего/младшего байта в старший/младшеий байт.
  • SEXT — расширение знака младшего байта (копирование 7-го бита во все старшие разряды 8-15).

Если включить некоторые сигналы одновременно, то по идее должны данные пересекаться и запишется OR того, что пытались записать, ведь наши биты - это наличие/отсутствие электричества

Сдвиги:

  • SHLT (SHift LefT) — циклический сдвиг влево на 1 разряд. В младший разряд пишется 0.
  • SHLO (SHift Left Old C) — циклический сдвиг влево (в младший разряд пишется старое значение флага переноса C).

Да-да, в конце именно буква, а не ноль

  • SHRT (SHift RighT) — арифметический сдвиг вправо на 1 разряд (в старший разряд дублируется знаковый 15-й бит).
  • SHRF (SHift Right Flag C) — циклический сдвиг вправо (значение переноса C пишется в старший разряд).

Регистр состояния БЭВМ (PS)

Регистр состояния PS — это 9-разрядный регистр, объединяющий флаги результатов операций АЛУ и биты управления режимами работы БЭВМ.

Разметка битов регистра PS (от 0 до 8):

  • Биты 0-3 — NZVC
  • Бит 4 — 0: всегда равен нулю, используется УУ для безусловных переходов в микрокоде.
  • Бит 5 — EI (Enable Interrupts): Разрешение прерываний в процессоре.
  • Бит 6 — INT (Interrupt): Флаг запроса на прерывание со стороны внешних устройств.
  • Бит 7 — W (Work): Состояние тумблера «Работа/Останов».
  • Бит 8 — P (Program): Признак выполнения программы в автоматическом режиме.

status_register.png

Ссылка на оригинал


question-37

Вопрос 37

Асинхронный обмен. Принципы деления частоты, формат кадра

Асинхронный последовательный обмен

Главная проблема синхронного интерфейса — необходимость тянуть отдельный провод для тактовых импульсов. В асинхронном интерфейсе линии синхроимпульсов нет вообще. Данные передаются только по одному проводу. Чтобы приёмник и передатчик понимали друг друга, они заранее договариваются о скорости передачи и используют собственные независимые тактовые генераторы внутри своих контроллеров.

Формат кадра

Поскольку синхроимпульсов нет, приёмнику нужен чёткий сигнал о том, что передача байта началась. Для этого данные оборачиваются в кадр со служебными битами:

  1. Режим простоя (Idle): Когда передачи нет, на линии удерживается напряжение логической 1.
  2. Стартовый бит (0): Передатчик принудительно опускает линию в 0 на время одного такта. Переход от 1 к 0 “будит” приёмник и запускает его внутренние часы.
  3. Информационные биты: Сами данные (обычно 8 бит).
  4. Стоповые биты (11): Гарантируют возвращение линии в состояние логической 1 перед началом следующего кадра.

async-cadr-format.png

Рис. 1: Формат кадра асинхронного обмена

Принцип деления частоты (идеальный приём бита)

Из-за того, что тактовые генераторы (ТГ) приёмника и передатчика независимы, они могут иметь микроскопические расхождения в частоте. Если приёмник будет считывать линию прямо по краям битовых интервалов, из-за рассинхронизации он может промахнуться и считать соседний бит.

Для защиты от этого применяется деление частоты:

  • Внутренний тактовый генератор работает в 16 раз быстрее, чем заданная скорость передачи битов.
  • Когда приёмник видит спад напряжения (начало стартового бита), его счетчик начинает считать такты ТГ (от 1 до 16).
  • Досчитав до 8 (ровно середина бита!), контроллер делает “замер” линии. Если там 0, значит стартовый бит подтверждён.
  • Далее приёмник делает замеры ровно каждые 16 тактов. Таким образом, считывание данных всегда происходит строго (или почти строго) в центре каждого бита, где сигнал максимально стабилен. Это компенсирует расхождение частот генераторов и гасит помехи на краях сигналов.

Последующая информация только для тех, кто знает физику

На слайде из презентации наглядно показано, как делиться частота, и как уменьшается угол сдвига (очевидно, что в 2 раза): frequency-division.png

Рис. 2: Принцип деления частоты для центровки считывания

Ссылка на оригинал