История отечественной вычислительной техники

Алгоритмическая ЭВМ

В 1987 г. НПО «Агат» были проведены межведомственные испытания опытного образца разработанной алгоритмической ЭВМ с непосредственной реализацией языка высокого уровня типа Фортран.

Основой являлся язык Фортран-4, который был расширен включением некоторых операторов языка PL-1 и специальных операторов и описаний, позволяющих работать в системах реального времени и в условиях необходимости защиты процесса решения от неисправностей. Для этого введены операторы, позволяющие организовывать защиту программ и файлов, параллельную работу программ, осуществлять блокировку прерываний, задавать реакции на прерывания. Языковые средства позволяют фиксировать интересующие разработчиков ситуации, имитировать возникновение сигналов прерываний, динамически, статически и по предписанию распределять память. Для защиты работы машины от последствий сбоев использовались известные аппаратурные и языковые средства, которые позволяют разбивать программы на участки, позволяющие производить повтор решения в случае сбойных ситуаций. Для обеспечения работе в реальном времени введены операторы работы со счетчиками времени и др.

Разработанный язык на базе языка FORTRAN -IV был назван RTF (real time FORTRAN)

    ЭВМ имела следующие характеристики:
  • числа, хранящиеся в ЗУ, имели разрядность 32 двоичных разряда;
  • объем непосредственно адресуемой памяти составлял до 8192К байт.
    В ЭВМ могли использоваться числа следующих типов:
  • короткое число с фиксированной точкой (16 разрядов);
  • число с фиксированной точкой (32 разряда);
  • число с фиксированной точкой двойной длины (64 разряда);
  • короткая битовая строка (16 разрядов);
  • битовая строка (32 разряда);
  • число с плавающей точкой (32 разряда).

Все числа с плавающей и фиксированной точкой представлены в дополнительном коде.

Для представления логических переменных использовался один разряд битовой строки.
Значения TRUE -0, FALSE -1 используются для осуществления функций управления.

Для преобразования выражений предусмотрены 4 базовых регистра. Алгоритм состоит из различного вида записей. Адрес памяти образуется приформированием номера страницы, который содержится в базовом регистре, и номера полуслова, который содержится в адресной части записей видов 1, 2, 7.

    Имеются следующие виды записей:
  1. Нулевой вид, состоящий из 16 разрядов с тремя разрядами кода записи и13 разрядами номера страницы памяти.
    Этот вид устанавливает номер страницы во втором базовом регистре.
  2. Первый вид, состоящий из 16 разрядов.
    Адресуется простая переменная и константа (номер базового регистра, тип переменной).
  3. Второй вид, состоящий из 16 разрядов
    Адресуется переменная с индексом.
  4. Третий вид, состоящий из 8 разрядов.
    Запись характеризует код операции.
  5. Четвертый вид, состоящий из 16 разрядов, где 3 разряда содержат код записи, 5 разрядов — код операции, 8 разрядов — код сдвига.
    Запись характеризует операцию сдвига, что связано с уплотнённым расположением информации в памяти и необходимостью выделять определённое количество разрядов для расшифровывания содержащейся информации.
  6. Пятый вид, содержащий 8 разрядов.
    Этот вид записи обозначает коды стандартных функций и управляющих символов.
  7. Шестой вид, состоящий из 24 до 40 разрядов, характеризует непосредственно операнд.
    Записи образуют инструкции, которые поступают в устройство управления и организуют процесс выполнения задачи.

Операции, выполняемые арифметическим процессором

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

Основные особенности устройства управления

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

Инструкции имеют различную длину, располагаясь в памяти без промежутков.

Для выборки инструкций предусмотрены два 32-х разрядных регистра.

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

  • константы 8-ми, 16–ти, 24-х, 32-х разрядные;
  • идентификаторы, размещаемые в ОЗУ — 8-ми разрядные (переменные);
  • идентификаторы, находящиеся в ДЗУ (метки, имена) — 16-ти разрядные;
  • операции, разделители (скобки, запятые и т.д.) — 8-ми разрядные.

Структура инструкции

Инструкция представляет собой команду, полученную после претрансляции предложения, записанного на языке высокого уровня.

Претрансляция — перевод стандартно записанной информации в операторах, расположенных построчно, в содержание ячеек памяти. Длина инструкции может быть произвольной величины, кратной полубайтам. Каждая следующая инструкция начинается с полубайта, следующего за конечным полубайтом предыдущей инструкции. Исключение составляет первая инструкция программы и инструкции, на которые при выполнении программы передается управление. Их запись всегда начинается с новой ячейки, независимо от заполнения предыдущей.

    Первая инструкция имеет следующую структуру:
  • Первый байт инструкции содержит в 2-х своих старших разрядах признак начала инструкции, а в остальных — код оператора;
  • Второй байт инструкции включает в себя код числа символов в инструкции и признак первого символа.
    Значения символов следующие:
    00 — идентификатор ОЗУ;
    01 — идентификатор ДЗУ;
    10 — операция или разделитель;
    11 — константа.

Константа, как было сказано выше, может иметь длину от 1 до 4 байт.

Для экономии памяти использовали признаки длины, хотя они усложняли анализ инструкции. При этом если в первом признаке символа был признак константы, то вместо второго признака ставился признак длины константы, затем следовал символ константы, а не признак второго символа. Если признак константы появлялся на месте второго признака, то код типа константы располагался во втором полубайте признаков на месте первого признака. В этом случае дальше прочитывался только один символ.

Для символов, отличных от константы, порядок следования был общим.

    Значения признаков длины константы следующие:
  • 00 — 1 байт,
  • 01 — 2 байта,
  • 10 — 3байта,
  • 11 — 4байта.


Конец инструкции определяется как аппаратурным путём как (по обнулению Сч количества символов), так и по выделению кода конца инструкции.

Система элементов

  • Опытный образец ЭВМ выполнен на 133 серии.
  • Арифметический процессор (без схемы контроля) состоял из 412 корпусов, из них на устройство управления приходится 138 корпусов.
  • Время выполнения операции сложения для первого и второго типа данных составляло 0,3 мкс,
    для типа 6 — от 0,7 до 9,6 мкс.
  • Операция умножения выполнялась для 1 и 2 типа за 4,9 — 9,7 мкс, а для 6-го типа за 5,2 — 10,1 мкс.
  • Логические операции выполнялись за 0,3мкс для 1,2, 3 типов и за 0,6 — 6,8 мкс для 6 типа.
  • Логические операции типа «лог. НЕ» за 0,1 мкс для 4 и 5 типов.

Оценка алгоритмической ЭВМ

Межведомственной комиссией по приёмке машины на основании работы опытного образца при решении как вычислительных, так и системных задач, были сделаны следующие выводы:

  1. Программирование на языке RTF повысило производительность кодирования программы относительно кодирования на машинном языке в 5 раз;
  2. Программы, написанные на языке RTF, сократились по объёму по сравнению с программами, на машинном языке в среднем в 3,3 раза;
  3. Объем памяти, занятый программой, написанной на RTF, примерно равен объёму памяти, занятому этой же программой, написанной на машинном языке, в 3-5 раз меньший, чем программа, написанная на ЯВУ и оттранслированная на машинный язык;
  4. Объем, занимаемый аппаратурой, составил 120 л. в бескорпусном исполнении;
  5. Быстродействие ЭВМ составило около 2 млн. коротких операций в сек.

Главный конструктор — Алексеева З.Д.
Научный руководитель — Хетагуров Я.А.
Основные разразработчики: Кузнецов Г.И., Рихтер Г.Г., Полтавец Г.Н.

Об авторе: Концерн «Моринформсистема — Агат»
Статья помещена в музей 3.11.2007 с разрешения автора