- Действующая система номерных знаков Великобритании
- Органы индикации и управления
- Пульт управления
- Индикаторные лампы
- Индикаторы состояния
- Лампы регистра индикации
- Индикаторы состояния регистров и триггеров
- Индикаторы на болгарском пульте
- Болгарский пульт управления в СССР
- Переключатели на болгарском пульте
- Поворотные переключатели
- Поворотные переключатели в верхней части
- Режимы работы
- Сравнение адресов
- Заключение
- Заключение
Действующая система номерных знаков Великобритании
Система номерных знаков Великобритании была введена в 2001 году. Каждый номерной знак состоит из семи знаков, которые расположены слева направо.
Органы индикации и управления
Пульт управления
Как и другие ранние ЭВМ, ЕС-1020 имела пульт управления с большим количеством индикаторов, кнопок и переключателей. В изображении представлен пульт управления болгарского варианта ЕС-1020.

Индикаторные лампы
На пульте расположены индикаторные лампы, отображающие текущее содержимое регистра микрокоманд РМК и адреса постоянной памяти РАПП.
Индикаторы состояния
Следующие три группы индикаторов отражают состояние мультиплексного и селекторных каналов. Разные цвета индикаторов обозначают различные параметры.
Лампы регистра индикации
На пульте также размещены лампы регистра индикации, в котором хранится информация для микропрограммы.
Индикаторы состояния регистров и триггеров
Нижние ряды ламп показывают состояние регистров и триггеров процессора. Несмотря на различия в компоновке пультов, информация, отображаемая через эти индикаторы, остается одинаковой.
Индикаторы на болгарском пульте
На болгарском пульте в левом верхнем углу расположены пять больших индикаторов, а на советском – их эквивалент, представленный в виде ламп нижней части пульта.

Болгарский пульт управления в СССР
Далее на болгарском пульте идут две кнопки синего и красного цвета. Надписи на них нечитаемы, но, по всей вероятности, это кнопки включения и выключения питания. Замечу, что их расположение отдельной группой, а не рядом с прочими переключателями и кнопками, при эксплуатации удобнее: меньше риск, что оператор случайно нажмёт не ту кнопку.
Переключатели на болгарском пульте
В самой нижней части болгарского пульта мы видим две группы по пять поворотных переключателей — левая группа называется Адрес памяти, а правая — Адрес команды. Поскольку адреса в ЕС-1020 являются 18-разрядными, самый левый переключатель каждой из групп имеет четыре позиции, а остальные четыре — по 16 (один переключатель кодирует одну шестнадцатеричную цифру адреса). На советском пульте эти две группы находятся примерно в середине панели переключателей и конструктивно выполнены иначе (колёсико, торчащее сквозь прорезь панели пульта), из-за чего на рисунке обозначены прямоугольниками. Несмотря на свои названия, эти переключатели являются довольно многофункциональными.
Поворотные переключатели
- Адрес памяти: переключают адрес ячейки памяти
- Адрес команды: переключают адрес команды процессора
Поворотные переключатели в верхней части
В верхней части панели переключателей и у нас, и у болгар идут четыре поворотных переключателя, задающих режимы работы процессора и пульта.
Режимы работы
Переключатель Тип памяти задаёт, к какому виду памяти или к какой группе регистров производится обращение с пульта. Предусмотрены следующие варианты:
- Переключатель Режим работы имеет четыре положения:
- Автомат
- Команда
- Микрокоманда
- ОП
Положения Команда и Микрокоманда позволяют выполнять соответственно по одной команде или одной микрокоманде, после чего процессор останавливается либо в логическом смысле (прекращение выполнения команд), либо физически (останов синхронизации для прекращения выполнения микрокоманд). Положение ОП используется в некоторых пультовых операциях.
Сравнение адресов
Переключатель Сравнение адресов имеет, кроме Автомата, ещё шесть положений.
- Останов ОП: …
- Останов по записи ОП: …
Заключение
Таким образом, болгарский пульт управления в СССР имел множество функциональных элементов, позволяющих оператору управлять процессором и пультом удобным и эффективным способом. Разнообразные переключатели и кнопки обеспечивают широкие возможности по настройке и управлению системой.
## Положение Переход ОП
Положение Переход ОП выполняет две функции. Если переключатель Режим работы находится в положении Автомат, то при совпадении адреса обращения к памяти со значением, набранным на переключателях Адрес памяти, производится занесение в регистр РМФЕ значения с переключателей Адрес команды, что обеспечивает переход процессора на выполнение этой команды (это можно использовать, например, для зацикливания выполнения нескольких команд программы).
Если переключатель Режим работы находится в положении Команда или ОП, происходит зацикливание операции, выполняемой с пульта.
## Положение Останов ПП
Положение Останов ПП остановит процессор после выполнения микрокоманды, адрес которой задан переключателями Адрес памяти. Работа возобновляется после нажатия кнопки Пуск.
## Положение Переход ПП
Положение Переход ПП вызовет переход микропрограммы на заданный переключателями Адрес команды адрес, как только будет выполнена микрокоманда с адресом, указанным переключателями Адрес памяти, что используется для зацикливания выполнения участка микропрограммы.
## Положение Синхроимпульс ПП
Положение Синхроимпульс ПП никак не влияет на работу процессора, однако при выполнении микрокоманды с адресом, заданным переключателями Адрес памяти, вырабатывается специальный импульс. Этот режим предназначен для, например, запуска осциллографа в момент выполнения определённой микрокоманды.
## Переключатель Контроль
Переключатель Контроль имеет три положения: Автомат, Останов и Блокировка. Когда этот переключатель находится в положении Останов, при обнаружении любой машинной ошибки в собственно процессоре или в каналах процессор немедленно переходит в состояние тяжёлого останова вместо вызова микропрограммы обработки ошибок. В состоянии Блокировка, напротив, процессор игнорирует любые ошибки. В состоянии Автомат, как несложно догадаться, процессор обрабатывает машинные ошибки обычным образом — осуществляет переход на микропрограмму обработки ошибки.
## Кнопки на пульте
Помимо описанных переключателей, на пульте имеется целая дюжина различных кнопок. На советском пульте они разделены на две группы — в одной, слева внизу, собраны 10 кнопок, в другой, в правом нижнем углу, находятся всего две. В данном случае советский вариант выглядит удачнее болгарского, где все 12 кнопок расположены одним блоком правее переключателей режимов. Две особые кнопки — Загрузка и Прерывание, остальные кнопки используются либо инженером для наладки процессора, либо системным программистом для отладки системной программы прямо с пульта.
Для обеспечения доступа микропрограммы к регистрам, отражающим значения большинства переключателей и некоторых индикаторов пульта, предусмотрена передача содержимого регистров пульта на вход В БА и запись результата операции БА в регистры пульта, что управляется обычными полями микрокоманды В и С, как описывалось в одной из предыдущих статей.
Однако здесь имеется одна тонкость. Дело в том, что поля В и С имеют по пять разрядов, что позволяет закодировать лишь 32 источника или приёмника информации, однако в машине их ощутимо больше: помимо регистров собственно процессора и пульта, имеются регистры трёх каналов.
По этой причине лишь у регистров собственно процессора имеются свои уникальные имена и коды для этих полей (например, регистр РН задаётся комбинацией 00001). Регистры и пульта, и каналов носят одинаковые обозначения РР1–РР9, РРА–РРЕ.
К регистру какого именно узла выполняется обращение, определяется битами регистра РБС: бит 2 устанавливается для обращения к пульту, бит 3 — ко второму селекторному каналу, бит 4 — к первому селекторному каналу и 5 — к мультиплексному каналу. Если микрокоманда не использует указанные разделяемые регистры, состояние этих битов РБС может быть произвольным: они часто используются как флажки, устанавливаемые и проверяемые микропрограммами, реализующими систему команд, и лишь при выполнении пультовых операций и обслуживании каналов приобретают описанный специальный смысл.
Значения на переключателях Адрес памяти
Значения, набранные на переключателях Адрес памяти (они обозначены буквами А–Д), доступны микропрограмме через три псевдорегистра РР3, РР4 и РР5. Я их называю псевдорегистрами по той причине, что фактической необходимости хранить информацию нет: роль хранилища играют сами переключатели, а эти регистры служат лишь для выдачи того или иного значения на вход В БА.
В РР3 используются лишь два бита — он соответствует четырёхпозиционному переключателю А; в двух других регистрах используются все восемь разрядов, поскольку они соответствуют парам шестнадцатеричных переключателей Б, В и Г, Д соответственно.
Значения на переключателях Адрес команды
Аналогичным образом, значение, набранное на переключателях Адрес команды, доступно через псевдорегистры РР6, РРГ и РРД.
Регистры для отображения информации на пульте
Состояние восьмипозиционного переключателя Тип памяти отражается псевдорегистром РРВ. Как именно кодируется состояние, информации нет; скорей всего, в РРВ в любой момент времени установлен лишь один бит.
Для отображения произвольной информации на пульте предусмотрены регистры РР5, РР6 и РР7, все вместе образующие регистр индикации РИНД. У двух из них номера совпадают с регистрами переключателей адресов, но технически это совершенно другие регистры. РР5 имеет два информационных бита, РР6 и РР7 — по восемь; кроме информационных, в их состав входит по одному контрольному разряду.
Заключение
В данной статье рассмотрены практические аспекты доступа микропрограммы к регистрам, отражающим значения переключателей и индикаторов пульта. Описаны особенности сопоставления полей микрокоманды с регистрами с уникальными именами и кодами. Также рассмотрены псевдорегистры для работы с переключателями адреса памяти, адреса команды и типа памяти, а также регистры для отображения информации на пульте.
Представляется небезынтересным сравнить наши ЕС ЭВМ с примерно аналогичными по характеристикам моделями фирмы IBM, с устройством которых наши разработчики наверняка были более-менее знакомы. В случае ЕС-1020 уместным будет сравнение с моделями IBM 360/30 и 360/40 (модели с большими номерами имеют намного более высокую производительность и, очевидно, сильно отличающееся внутреннее устройство, а модели 20 и 25, во-первых, не являются первыми по времени появления, а во-вторых, не являются полноценными представителями Системы 360, хотя формально и отнесены к ней, — это была попытка IBM урезать архитектуру ради удешевления; например, модель 20 реализует всего 37 команд против 143 у полноценной Системы 360; в ЕС-1020 реализованы 142 команды — отсутствует лишь ДИАГНОСТИКА, предназначенная для выполнения различных операций по диагностике неисправностей оборудования и управлению его конфигурацией; её точные функции зависят от конкретной модели, а сама она является привилегированной, а соответственно, недоступной прикладным программам).
Как и процессор ЭВМ ЕС-1020, процессор ЭВМ IBM 360/30 (носящий, кстати, обозначение 2030) использует однобайтное АЛУ, а оперативная память используется и в качестве видимой программисту основной памяти машины, и в качестве локальной памяти процессора, и в качестве мультиплексной памяти мультиплексного канала. В частности, и «у нас», и «у них» программно доступные регистры общего назначения и регистры с плавающей запятой технически являются частью локальной памяти, т. е. хранятся в общем ферритовом ОЗУ. Таким образом, в самых базовых вещах мы наблюдаем полную идентичность обеих машин, но стоит копнуть чуть глубже, как сразу начинаются значительные различия.
В ЕС-1020 длительность такта процессора составляет 1 мкс, и она жёстко привязана к полуциклу работы ОЗУ (за 1 мкс ОЗУ либо считывает, либо записывает информацию; полный цикл памяти всегда состоит из чтения и последующей записи, но между этими операциями процессор может выполнять определённую обработку данных). В течение такта вырабатываются четыре синхроимпульса той или иной серии (ГИ, ТИ, СИ, ХИ); длительность каждого импульса составляет 200 нс, а между соседними импульсами имеется промежуток 50 нс.
В IBM 360/30 длительность такта процессора также привязана к полуциклу ОЗУ и в зависимости от модели последнего составляет либо 750 нс, либо 1 мкс. В течение такта формируются тоже четыре импульса, но одной-единственной серии (T1–T4); интервалов между импульсами нет: каждый из них имеет длительность 250 или 187,5 нс в зависимости от длительности такта.

Ширина доступа к памяти в ЕС-1020 составляет два байта (18 бит с учётом двух контрольных разрядов), объём программно доступной ОП — 64, 128 или 256 Кбайт (физически реализовано 18 линий адреса, не считая контрольных разрядов). В IBM 360/30 ширина доступа к памяти — 1 байт, а её объём составляет от 8 до 64 Кбайт (физически реализовано 16 линий адреса).
Общая организация потоков данных в IBM 360/30 выглядит подобно ЕС-1020 (см. рисунок), однако имеется ряд существенных различий.

В частности, легко видеть, что адресных регистров, позволяющих обратиться ко всему объёму ОП, всего два — UV и IJ; в ЕС-1020, напомню, их три — РГРИ, РПТУ и РМФЕ (вдобавок, «наши» регистры хранят по 19 бит, не считая контрольных, из-за более широкого физического адреса). Естественно, поскольку память в IBM 360/30 однобайтовая, регистр данных памяти (R) тоже однобайтовый против двух однобайтовых регистров РН и РЗ, объединяемых в двухбайтовый РНЗ, в нашей машине. А вот собственно регистр адреса памяти, хранящий адрес, по которому в данный момент осуществляется обращение, хоть и имеет разную ширину, «у них» называется MN, а «у нас» — РМН; как говорится, найдите семь отличий, а все совпадения случайны :).
Длина микрокоманды в IBM 360/30 составляет 60 бит; в ЕС-1020 микрокоманда технически содержит 64 бита, а логически — 62, поскольку два разряда не используются. Разделение микрокоманды на поля и их назначение довольно близки в обеих машинах, что вполне ожидаемо из-за концептуально схожей микроархитектуры, однако в частностях, как обычно, много отличий.

В частности, весьма серьёзно отличается управление подачей операндов на входы АЛУ, чем «заведуют» поля CA, CF для входа A и CB, CK, CG для входа B. Помимо сильно различающегося набора источников информации для этого входа, по-разному организована дальнейшая передача информации. В ЕС-1020 данные на вход А всегда передаются прямо, а на вход В они могут передаваться прямо, крест-накрест (старший полубайт вместо младшего и наоборот), с передачей либо старшего, либо младшего полубайта и обнулением второго полубайта (причём тоже или прямо, или накрест), или, наконец, с «перекосом», когда один из полубайтов запоминается в специальном регистре, предыдущее содержимое которого используется в текущей операции, а новое содержимое будет использовано в последующей. В IBM 360/30 выборочная подача полубайтов возможна для обоих входов АЛУ, подача крест-накрест — только для входа А, а вот аналога нашего перекоса там нет, что несколько усложняет выполнение некоторых операций, в частности, реализацию команды MVO.
АЛУ в IBM 360/30 выполняет только операции сложения и вычитания (как двоичные, так и двоично-десятичные) и логические: «и», «или», «исключающее или»; сдвигов нет (надо полагать, что сдвиг влево реализуется через сложение значения с самим собой, а сдвиг вправо — через пересылку крест-накрест и сложение с самим собой). Прямого аналога механизму косвенной функции нет, есть лишь возможность условного выполнения либо сложения, либо вычитания. Таким образом, функционально АЛУ ЕС-1020 является более эффективным и позволяет уменьшить объём микропрограмм, хотя фактическая производительность обеих машин примерно одинакова (недостатки АЛУ IBM 360/30 сказываются на скорости выполнения лишь нескольких операций, не очень часто встречающихся в реальных программах).
Теперь посмотрим на IBM 360/40 (процессор 2040). Эта машина имеет ОП объёмом от 16 до 256 Кбайт, а физическая ширина доступа к памяти составляет два байта, что соответствует характеристикам памяти ЕС-1020. Время цикла памяти IBM 360/40 несколько больше — 2,5 мкс. В отличие от ЕС-1020 и IBM 360/30, в IBM 360/40 такт процессора отвязан от полуцикла памяти и имеет длительность 625 нс (пока память выполняет чтение или запись, процессор успевает выполнить две микрокоманды). Используются две серии синхроимпульсов — P и T, по четыре импульса в каждой. Серия T в определённых случаях блокируется, серия P выдаётся постоянно. Это отчасти напоминает синхронизацию в ЕС-1020, где имеется постоянно выдаваемая серия ГИ и блокируемые серии ТИ, ХИ и СИ.
Потоки данных в процессоре 2040 весьма сильно отличаются от таковых в двух других рассматриваемых машинах, хотя во всех трёх случаях используется однобайтовое АЛУ.

На приведённом рисунке обращает на себя внимание обозначение потоков данных либо одиночной, либо двойной линией. Дело в том, что часть регистров процессора этой машины широкие — к ним относятся регистры B, A, C, D и R, причём A и D имеют ширину 16 бит (плюс, как обычно, два контрольных разряда), а A, C и R — 19 информационных и три контрольных разряда. Регистр A используется для непосредственной адресации памяти, почему и состоит из двух полноценных и обрезанного байтов — точно так же, как регистры РГРИ, РПТУ и РМФЕ в ЕС-1020. Регистр C используется в качестве пары рабочих однобайтовых регистров или хранит какой-либо дополнительный адрес, но напрямую адресовать память не может. Наконец, регистр R позволяет передать все 16 или 19 битов данных с соответствующими контрольными разрядами между ним и любым из других четырёх широких регистров, не используя при этом АЛУ, что в некоторых случаях способствует существенному увеличению производительности (в процессорах как ЕС-1020, так и IBM 360/30 любая пересылка информации между регистрами выполняется через АЛУ, причём только по одному байту за такт).
Что ещё более важно, в этом процессоре мы видим локальную память, являющуюся отдельным узлом собственно процессора, а не частью физического ОЗУ (кажется, технически ЛП тоже является ферритовым ОЗУ, но за счёт своей малой ёмкости намного более компактным и быстрым — его полный цикл совпадает с тактом процессора). Всего предусмотрено 144 слова шириной 22 бита (19 информационных и три контрольных; физически, похоже, у каждого слова имеется 24 бита); регистром данных для локальной памяти является уже упоминавшийся регистр R. Как и в других машинах, в ЛП хранятся значения регистров общего назначения, регистров с плавающей запятой и PSW, управляющая информация селекторных и частично — мультиплексного каналов (основная часть информации мультиплексного канала, как обычно, находится в мультиплексной памяти, являющейся частью ОЗУ) и рабочие области. Реализация локальной памяти в составе собственно процессора, конечно, весьма ощутимо увеличивает его стоимость, однако очень серьёзно повышает производительность; именно наличие быстрой локальной памяти сделало необходимой отвязку такта процессора от полуцикла ОЗУ и позволило стать IBM 360/40 существенно более быстрой машиной по сравнению с IBM 360/30 и ЕС-1020. Кстати говоря, АЛУ у ЕС-1020 и IBM 360/40 весьма близки, хотя и не полностью идентичны; в частности, в IBM 360/40 тоже имеются сдвиги и косвенные функции.
Микрокоманда в IBM 360/40 имеет ширину 56 бит, т. е. меньше, чем в IBM 360/30 или ЕС-1020; естественно, общие идеи там те же самые, а вот конкретные микрооперации сильно отличаются.
В целом, даже при таком поверхностном анализе становится понятно, что процессоры ЭВМ ЕС-1020 и двух младших моделей Системы 360 различаются настолько сильно, что в данном случае ни о каком прямом «воровстве» речи идти не может, хотя заимствования определённых идей или технических решений наверняка имели место. Пожалуй, в какой-то мере можно считать, что процессор ЭВМ ЕС-1020 — эта некая помесь процессоров 30-й и 40-й моделей Системы 360.
Прямое воровство той или иной физической реализации архитектуры IBM в ЕС ЭВМ, кстати говоря, не было возможно и по вполне объективной причине. Система 360 была построена на элементах SLT (Solid Logic Technology), которые, если я правило понимаю, можно назвать микросборками, т. е. объединением в одном герметичном корпусе нескольких дискретных элементов (транзисторов, диодов, резисторов); позднее, в Системе 370, стали использоваться настоящие микросхемы, обозначаемые MST (Monolithic System Technology). И SLT, и MST были разработаны и производились самой IBM. Наши же ЕС ЭВМ строились на микросхемах серий 155 (младшие и часть средних моделей ЭВМ и почти вся периферия), 137, 187 (процессоры ЭВМ ЕС-1050 и ЕС-1052) и 500 (большинство средних и старших моделей), а также некоторых других. Почти все эти микросхемы являются аналогами или копиями микросхем американских фирм, не имеющих к IBM никакого отношения и не совместимых с элементной базой IBM напрямую; в частности, все микросхемы 155-й серии, используемые в ЕС-1020 и ЕС-1030, являются клонами микросхем серии SN74xx фирмы Texas Instruments. Соответственно, даже позаимствовав (или украв, если угодно) микроархитектуру, т. е. логическую внутреннюю организацию процессора, структуру и кодирование микрокоманды и т. д. и т. п., нашим инженерам всё равно пришлось бы проектировать принципиальную схему каждой печатной платы и машины в целом самостоятельно — элементная база была совершенно другой.
ПЕРЕХОД С ВОЗВРАТОМ
УСЛОВНЫЙ ПЕРЕХОД
36+3N или 28+5N
СЛОЖЕНИЕ С НОРМАЛИЗАЦИЕЙ (короткие операнды с плавающей запятой)
СЛОЖЕНИЕ С НОРМАЛИЗАЦИЕЙ (длинные операнды с плавающей запятой)
УМНОЖЕНИЕ (короткие операнды с плавающей запятой)
УМНОЖЕНИЕ (длинные операнды с плавающей запятой)
ДЕЛЕНИЕ (короткие операнды с плавающей запятой)
ДЕЛЕНИЕ (длинные операнды с плавающей запятой)
Несложно видеть, что почти все операции обработки данных на ЕС-1020 выполняются ощутимо быстрее, чем на IBM 360/30; не приходится сомневаться, что это является, главным образом, следствием вдвое более широкой памяти, что снижает частоту обращения к ней. В то же время IBM 360/40, имея примерно такое же однобайтовое АЛУ, оказывается намного быстрее на всех операциях; особенно впечатляющей является разница в делении длинных вещественных операндов (разрыв более 4 раз). Дело здесь не столько в более коротком машинном такте, сколько в наличии быстрой локальной памяти в составе самого процессора.
