Алгоритмическая ЭВМ
Алексеева Зоя Дмитриевна
В 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.
- Имеются следующие виды записей:
- Нулевой вид, состоящий из 16 разрядов с тремя разрядами кода записи и13 разрядами номера страницы памяти.
Этот вид устанавливает номер страницы во втором базовом регистре. - Первый вид, состоящий из 16 разрядов.
Адресуется простая переменная и константа (номер базового регистра, тип переменной). - Второй вид, состоящий из 16 разрядов
Адресуется переменная с индексом. - Третий вид, состоящий из 8 разрядов.
Запись характеризует код операции. - Четвертый вид, состоящий из 16 разрядов, где 3 разряда содержат код записи, 5 разрядов — код операции, 8 разрядов — код сдвига.
Запись характеризует операцию сдвига, что связано с уплотнённым расположением информации в памяти и необходимостью выделять определённое количество разрядов для расшифровывания содержащейся информации. - Пятый вид, содержащий 8 разрядов.
Этот вид записи обозначает коды стандартных функций и управляющих символов. - Шестой вид, состоящий из 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 типов.
Оценка алгоритмической ЭВМ
Межведомственной комиссией по приёмке машины на основании работы опытного образца при решении как вычислительных, так и системных задач, были сделаны следующие выводы:
- Программирование на языке RTF повысило производительность кодирования программы относительно кодирования на машинном языке в 5 раз;
- Программы, написанные на языке RTF, сократились по объёму по сравнению с программами, на машинном языке в среднем в 3,3 раза;
- Объем памяти, занятый программой, написанной на RTF, примерно равен объёму памяти, занятому этой же программой, написанной на машинном языке, в 3-5 раз меньший, чем программа, написанная на ЯВУ и оттранслированная на машинный язык;
- Объем, занимаемый аппаратурой, составил 120 л. в бескорпусном исполнении;
- Быстродействие ЭВМ составило около 2 млн. коротких операций в сек.
Главный конструктор — Алексеева З.Д.
Научный руководитель — Хетагуров Я.А.
Основные разразработчики:
Кузнецов Г.И.,
Рихтер Г.Г.,
Полтавец Г.Н.
Об авторе: Концерн «Моринформсистема — Агат»
Статья помещена в музей 3.11.2007 с разрешения автора