Skip to content

1801vm1 vs 1801vm2 ru

Nikita Zimin edited this page Aug 16, 2015 · 1 revision

Различия между 1801ВМ1 и 1801ВМ2

Список различий между процессорами 1801ВМ1 и 1801ВМ2, с точки зрения исполнения команд.

0. Переименования сигналов

ВМ1: IRQ1 == ВМ2: HALT

ВМ1: IRQ2 == ВМ2: EVNT

1. Команды EIS (MUL, DIV, ASH, ASHC) и FIS (FADD, FSUB, FMUL, FDIV)

ВМ1: Нет команд EIS. Нет команд FIS.

ВМ2: Есть команды EIS. Есть команды FIS, но реализуются не микропрограммно, а вызовом прерывания по вектору 0010.

2. Различия в работе с регистром SEL

ВМ1: Сигнал SEL1 использует ячейку памяти с адресом 177716, сигнал SEL2 выбирает адрес 177714.

ВМ2: Регистр SEL находится вне адресного пространства, читается по процедуре безадресного чтения.

3. Различия в процедуре начального пуска

ВМ1: Начальный адрес формируется верхним байтом регистра SEL1, нижний байт равен 0: SEL000, PSW = 0340.

ВМ2: Верхним байтом регистра SEL формируется адрес вектора начального пуска: SEL000. Читается PC и PSW по этому вектору (прерывание включения питания).

4. Пультовый режим

ВМ1: Как такового режима HALT нет, бит 8 PSW не задействуется.

При исполнении команды HALT, прерывании HALT (IRQ1), фатальных ситуациях (двойное зависание, зависание при приеме адреса вектора прерывания) процессор устанавливает 3-й бит в регистре SEL1, сохраняет PSW в ячейке 177676, PC -- в 177674 и в качестве векторов использует следующие:

  • SEL002 -- вектор прерывания по HALT и IRQ1
  • SEL006 -- вектор прерывания по двойному зависанию
  • SEL012 -- вектор прерывания по зависанию при приеме АВП Для поддержки так называемого HALT-режима в ВМ1 в PSW введены два бита -- 10 и 11. 10-й бит маскирует все прерывания, кроме запросов по обращению к магистрали, резервного и запрещенного кода. 11-й бит маскирует запрос IRQ1. Обработка векторов SEL002, SEL006 и SEL012 на ДВК идет с установленным 10-м битом. Кроме того 10-й бит вроде изменяет реакцию на зависание, его обработка происходит не по 4-му вектору, а по SEL002.

ВМ2: Полноценное разделение на режимы процессора USER и HALT. Текущий режим определяется битом 8 PSW (0 = USER, 1 = HALT). В режиме HALT при формировании адреса на магистрали устанавливается сигнал SEL, что позволяет использовать для этого режима отдельное адресное пространство.

5. Регистры CPC и CPSW и дополнительные команды пультового режима

ВМ1: Нет регистров CPC и CPSW.

Есть только команды START (000012) и STEP (000016). Сначала они сбрасывают 3-й бит в регистре SEL1, затем из ячеек памяти 176674 и 176676 заполняются PC и PSW. Ну соответственно STEP пропускает запуск блока прерываний на один шаг.

ВМ2: Есть регистры CPC и CPSW.

Команды, работающие только в пультовом режиме (в USER-режиме вызывают прерывание по резервному коду):

  • START, STEP
  • RSEL
  • MFUS
  • RCPC
  • RCPS
  • MTUS
  • WCPC
  • WCPS