«Сетунь» (ЭВМ)
«Се́тунь», малая цифровая вычислительная машина, первая отечественная ЭВМ на безламповых элементах, единственная в мире троичная (т. е. использующая не привычную компьютерную арифметику, на основе двоичной системы счисления, а троичную симметричную) вычислительная машина, выпускавшаяся серийно; первая в СССР машина с алфавитно-цифровым устройством ввода-вывода.
История создания
В начале 1956 г. заведующий кафедрой вычислительной математики механико-математического факультета Московского государственного университета имени М. В. Ломоносова академик С. Л. Соболев предложил сотрудникам отдела электроники только что созданного вычислительного центра МГУ (ВЦ МГУ) заняться разработкой малой ЭВМ, предназначенной для использования в учебном процессе и научных исследованиях. Изначально планировалось создание двоичной вычислительной машины.
Ввиду низкой надёжности ламповой техники и недоступности в то время полупроводников, в качестве элементной базы стали рассматривать электромагнитные (феррито-диодные) элементы, которые обладали высокой надёжностью, помехоустойчивостью, небольшим энергопотреблением. Изучение данной элементной базы показало возможность реализации на ней троичного кода.
В январе 1956 г. научно-исследовательский семинар кафедры вычислительной математики заслушал сообщение инженера Н. П. Брусенцова о феррито-диодных элементах. Было решено проектировать новую ЭВМ на их основе и разрабатывать оба варианта машины: двоичный и, в качестве резервного, троичный. По мере создания логических элементов и функциональных схем преимущества троичной схемотехники становились всё более очевидными. К концу 1956 г. был окончательно принят троичный вариант (Брусенцов. 2005).
Целью разработки было создание малогабаритной, недорогой и надёжной ЭВМ для вузов, лабораторий и конструкторских бюро, простой в освоении, обслуживании и использовании. Машина получила название «Сетунь».
Главный конструктор – Н. П. Брусенцов, основные разработчики – Е. А. Жоголев, С. П. Маслов, В. В. Веригин, А. М. Тишулина.
Организация-разработчик – ВЦ МГУ. Завод-изготовитель – Казанский завод математических машин Минрадиопрома СССР. Изготовитель логических элементов – Астраханский завод электронной аппаратуры и электронных приборов Минрадиопрома СССР. Изготовитель магнитных барабанов – Пензенский завод ЭВМ Минрадиопрома СССР. Изготовитель печатающего устройства – Московский завод пишущих машин Минприборпрома СССР.
Опытный образец был введён в эксплуатацию в конце 1958 г. Год окончания разработки – 1959 г. В апреле 1960 г. по итогам успешно прошедших испытаний межведомственная комиссия признала целесообразным организовать серийное производство машины.
В 1961 г. Казанским заводом математических машин был выпущен выставочный экземпляр машины. Период серийного выпуска: 1962–1965 гг.
Количество произведённых изделий: 49 машин (с учётом опытного и выставочного образцов), из которых 47 обладали заводскими номерами.
«Сетунь» использовалась в высших учебных заведениях Москвы: МГУ (ВЦ, геологический, химический, экономический факультеты), МВТУ, МЭИ, МХТИ, МИИТ, ВВИА; Ленинграда: Технологический институт, ЛЭИС, ЛИАП, Лесотехническая академия; других регионов: Таджикский государственный университет, Туркменский государственный университет, Дагестанский государственный университет, Кабардино-Балкарский государственный университет, Якутский государственный университет, Казанский авиационный институт, Уфимский авиационный институт, Иркутский политехнический институт, Пензенский политехнический институт, Калининградский технический институт рыбной промышленности и хозяйства, Красноярский институт цветных металлов, Магнитогорский горно-металлургический институт; в институтах Академии наук СССР: СибИЗМИР СО АН СССР (Иркутск), Якутский институт космофизических исследований и аэрономии СО АН СССР; в ряде конструкторских бюро и научно-исследовательских институтов Москвы, Ленинграда, Новокузнецка, Новосибирска, Одессы, Киева, Пензы; на Уральском металлообрабатывающем заводе, Людиновском тепловозостроительном заводе и др.
Основные характеристики
«Сетунь» представляла собой одноадресную машину последовательного действия с блоком быстрого умножения, оперировавшую числами с фиксированной запятой после второго разряда. Числа и команды в машине были представлены троичным кодом с цифрами 1, 0, −1. Машина оперировала восемнадцатиразрядными (длинными) и девятиразрядными (короткими) троичными кодами. Команды были представлены девятью троичными разрядами, из которых пять старших составляли адресную часть, три – код операции, и один (младший) использовался в качестве признака модификации адреса. При выполнении команд, содержащих в этом разряде значение 1 или −1, их адресная часть автоматически изменялась соответственно прибавлением или вычитанием числа, хранящегося в специальном пятиразрядном индекс-регистре.
Элементная база: электромагнитные пороговые с положительными и отрицательными весами входов элементы типа быстродействующих магнитных усилителей импульсов тока на ферритовых сердечниках и диодах. Тактовая частота – 200 кГц.
Память машины состояла из оперативного запоминающего устройства (ОЗУ) на ферритовых сердечниках ёмкостью в 162 ячейки по 9 тритов (трит – троичный аналог бита) и запоминающего устройства на магнитном барабане ёмкостью 1944 ячейки по 9 тритов. Передача информации между запоминающими устройствами производилась зонами, содержащими по 54 девятиразрядных кода.
Ввод данных в машину осуществлялся с 5-позиционнной бумажной перфоленты посредством фотоэлектрического устройства, вывод данных – путём печати или перфорации на бумажной ленте.
Время выполнения операций при работе с ОЗУ: сложение-вычитание – 180 микросекунд (мкс), умножение, в частности с прибавлением третьего операнда либо с суммированием в аккумуляторе, – 320 мкс, передача управления – 100 мкс. Среднее время страничного (54 слова) обращения к магнитному барабану – 7500 мкс. Оперативное быстродействие – до 4500 операций в секунду.
Питание машины производилось от сети 3-фазного тока 220/380 В. Потребляемая мощность – 2,5 кВ·А. Охлаждение – естественное.
Контроль исправности машины осуществлялся путём выполнения тест-программ в профилактических режимах.
Конструкция ЭВМ: модульная, шкаф-стойка с габаритами 2,9 × 1,85 × 0,5 м, съёмные субблоки (конструктив ЭВМ М-20), вмещавшие до 18 плат с логическими элементами. Для установки машины требовалась площадь 25–30 м2 (Брусенцов. 1962).
Различные модификации отличались ёмкостью магнитного барабана и подключёнными устройствами ввода-вывода, что, в свою очередь, определялось спецификой применения машины.
Описание применённых решений
«Сетунь» предназначалась для использования в учебных заведениях, исследовательских лабораториях и конструкторских бюро с целью решения научно-технических задач средней сложности. Машина была рассчитана на массовое применение. Исходя из этого к её разработке были предъявлены следующие требования:
скорость работы – несколько сотен операций в секунду;
точность вычислений – 6–8 верных десятичных знаков;
простота и удобство программирования;
надёжность в эксплуатации и непритязательность в техническом обслуживании;
умеренные габариты, небольшое потребление энергии;
использование недорогих и недефицитных материалов и деталей.
Наиболее полное удовлетворение предъявленным трудно совместимым требованиям было получено путём: создания удобств для программистов с помощью специальных обслуживающих программ; применения 2-ступенчатой системы памяти; построения схем на магнитных элементах; использования троичной системы счисления.
«Сетунь» – уникальная отечественная разработка, не имеющая иностранных аналогов. Достоинствами магнитных элементов являлись их простота, надёжность, небольшое энергопотребление, помехоустойчивость, экономичность построения на их основе логических схем.
Архитектура, основной функционал блоков
Архитектура ЭВМ «Сетунь» была простой, характерной для одноадресных машин. Набор машинных команд «Сетуни» был минимальным – 24 одноадресные команды, которые полностью обеспечивали вычисления с фиксированной запятой.
Машина состояла из шести функциональных устройств: арифметического устройства, устройства управления, оперативного запоминающего устройства, запоминающего устройства на магнитном барабане, устройства ввода, устройства вывода.
Арифметическое устройство осуществляло выполнение команд сложения, вычитания, умножения, поразрядного умножения, сдвига, нормализации, а также команд посылки чисел в регистры арифметического устройства и записи результата в оперативное запоминающее устройство.
Функции устройства управления обеспечивали выполнение очередной команды – от формирования её адреса до чтения и записи по указанному в команде адресу и осуществления условных и безусловных переходов. Был применён механизм модификации адреса, т. е. автоматическое изменение адреса в командном слове при выполнении команды. Для его осуществления в командном слове был отведён один трит модификации, а в устройстве управления был предусмотрен регистр модификации.
Оперативная память была выполнена на ферритовых сердечниках и имела в составе ферритовый куб из 18 плат с запоминающими сердечниками и координатными трансформаторами, а также блок управления.
Память на магнитном барабане – основное запоминающее устройство машины. Магнитный барабан разделялся на 36 зон по 54 коротких слова. Окружность барабана была разбита на 4 сектора, в каждом содержалось по 9 зон, всего 1944 девятитритных слова. Обмен данными с оперативной памятью осуществлялся зонами. Использовался серийный магнитный барабан ЭВМ «Урал» с модернизированными головками чтения-записи. Запись всех 9 тритов слова осуществлялась параллельно.
Магнитный барабан также выполнял функцию генератора тактовых импульсов для всех внутренних устройств машины, для чего на барабане имелась специальная синхронизационная дорожка. Таким образом, в частности, решалась проблема синхронизации работы машины и магнитного барабана.
ЭВМ «Сетунь» была первой в СССР машиной с алфавитно-цифровым устройством ввода-вывода (Жоголев. 1966). Для ввода данных использовалось фотоэлектрическое вводное устройство, работавшее со скоростью 800 знаков в секунду. Носителем данных была бумажная 5-позиционная перфолента, считывание данных с которой могло осуществляться в двух режимах – ввод команд и ввод чисел (символов). Вывод данных производился путём перфорации на бумажной ленте со скоростью 7 знаков в секунду или печати текста при помощи электрифицированной пишущей машинки. В качестве выводного устройства мог также использоваться телетайп с перфорационной приставкой.
В «Сетуни» были программно доступны 6 регистров: 9-тритный регистр K – выполняемой команды; 5-тритные регистры: C – адреса выполняемой команды и F – индекс-регистр; 18-тритные: S – сумматора (аккумулятор) и R – множителя, а также однотритный регистр знака результата операции – ω.
Регистры C, F, K и ω управляли ходом выполнения программы. Регистры S и R использовались в арифметическом устройстве машины. Над регистром сумматора S определены все необходимые арифметические операции, а также операция сдвига содержимого S на n тритов (при n, больших нуля, – влево; при n, меньших нуля, – вправо) и операция потритного умножения, позволяющая обнулять и инвертировать значения тех или иных тритов содержимого S, в частности изменять его знак и выделять заданную его часть (Брусенцов. 2005).
Архитектура ЭВМ «Сетунь» предоставляла следующие принципиальные для практики возможности.
1. За счёт свойств троичной симметричной системы счисления положительные и отрицательные числа выражены единым кодом при том, что в двоичных машинах положительные и отрицательные числа представляются различными способами.
Операции определены над операндами, длина которых может быть неодинаковой у первого и второго операнда. При этом не требуется никаких усложнений операционного устройства.
В симметричной системе счисления округление числа до k верных троичных знаков получается отбрасыванием младших знаков, начиная с (k+1)-го, что избавляет от необходимости в машине аппарата округления.
Интервал значения мантиссы нормализованного числа – от 0,5 до 1,5 по абсолютной величине – позволяет выполнять основные арифметические операции над нормализованными числами без переполнений.
2. Знак числа в соответствии с общепринятой математической трактовкой этого понятия представлен трёхзначной функцией.
3. Схемотехнические особенности ЭВМ «Сетунь» и преимущества троичной симметричной системы счисления позволили реализовать блок быстрого умножения, выполнявший умножение двух чисел всего в 1,78 раза медленнее операции сложения. За счёт того, что сумма трёх тритов представляется одним тритом и суммирующая схема в составе устройства умножения могла использовать не 2-входовые, а 3-входовые сумматоры, сокращалось количество тактов, необходимое на перемножение чисел.
4. В ЭВМ «Сетунь» был применён механизм модификации адреса, т. е. автоматическое изменение адреса в командном слове при выполнении команды. Возможность модификации команд в двух направлениях прибавлением либо вычитанием значения из регистра F повышала эффективность программирования. В ряде случаев за счёт использования одновременной модификации команд в разных направлениях удавалось достигать весьма компактной реализации алгоритмов. Например, вычисление значений функций f(x, y) и f(y, x) мог осуществить один и тот же программный код, если в одном случае использовался признак модификации в другом – и в регистр модификации F засылалась разность между адресами x и y.
Эти и некоторые другие особенности троичной архитектуры обусловили математическое совершенство, компактность и простоту реализации набора команд «Сетуни», а главное, естественность, лёгкость понимания и применения машины пользователями.
Обеспечение надёжности и ремонтопригодности
В условиях значительного разброса значений физических параметров диодов и ферритовых сердечников (которые поставщиками по существу не контролировались) была введена сортировка тех и других на попарно соответствующие друг другу группы, благодаря чему производство элементов стало практически безотходным, а их параметры – жёстко стандартизованными. При дальнейшей сборке из таких элементов логических узлов (субблоков) и блоков машины требовалась только правильность проводных соединений, проверяемая на стендах логического контроля.
Конструкторская документация была разработана Специальным конструкторским бюро (СКБ) ВЦ АН УССР и не прошла этап проверки и доработки.
Программное обеспечение
Разработка системы математического обеспечения проводилась под руководством Е. А. Жоголева и проходила в следующих направлениях:
создание библиотеки стандартных подпрограмм;
создание различных вариантов интерпретирующих систем.
Машинные команды ЭВМ «Сетунь» позволяли оперировать только числами с фиксированной запятой. Функциональные возможности «Сетуни» были расширены созданием интерпретирующих систем, обеспечивших введение плавающей запятой, использование стандартных подпрограмм и возможность обмена информацией между оперативной памятью и магнитным барабаном. Были созданы подпрограммы для выполнения четырёх арифметических действий и вычисления элементарных функций в режиме плавающей запятой. Каждая из этих подпрограмм занимала не более одной зоны памяти и выполнялась не медленнее чем 8500 мкс. Ряд других подпрограмм использовался для некоторых типовых задач: решения системы линейных алгебраических уравнений, вычисления интегралов, интегрирования системы обыкновенных дифференциальных уравнений и т. д.
Для ЭВМ «Сетунь» было разработано 18 различных интерпретирующих систем (ИП-2, ИП-3, ИП-4, ИП-5, ИП-Н, ИП-Нтр и др.).
Числа с плавающей запятой представлялись в интерпретирующих системах в виде x = X ⋅ 3p, где X – мантисса числа, p – его порядок. Интерпретирующие системы различались способами кодирования чисел. Например, в ИП-2 мантисса числа кодировалась восемнадцатиразрядным словом с запятой после второго разряда, порядок – пятью старшими разрядами следующего девятиразрядного слова. Точность представления составляла 16 троичных разрядов, что обеспечивало вычисления с 8 верными десятичными знаками в диапазоне изменений абсолютных значений от 10−19 до 1019.
В другом варианте интерпретирующей программы – ИП-3 – числа представлены более компактно: тринадцать разрядов – мантисса, пять разрядов – порядок (каждое число помещается в длинной ячейке). Это позволяло вести вычисления примерно с шестью верными десятичными знаками, в том же диапазоне от 10−19 до 1019. Система ИП-4 предназначалась для вычислений с комплексными числами (плавающая запятая, восемь десятичных знаков), ИП-5 – для вычислений с двенадцатью десятичными знаками в том же диапазоне. ИП-Нтр, модификация ИП-Н, была использована в качестве основы для создания транслятора (компилятора) с упрощённого языка на базе Algol-60.
Кроме интерпретирующих систем, на ЭВМ «Сетунь» была реализована система автоматического кодирования ПОЛИЗ, позволявшая составлять программы на языке программирования СИМПОЛИЗ-64. В состав системы входили интерпретатор ПОЛИЗ и библиотека стандартных подпрограмм. Использование режима полной интерпретации приводило к замедлению вычислений в 2,5–3 раза по сравнению с ИП-3, но программы на ПОЛИЗ оказывались в 2–3 раза короче.
Программное обеспечение, разработанное для ЭВМ «Сетунь», можно отнести к 4 типам:
средства автоматизации программирования (30 программ);
программы решения типовых математических задач (48 программ);
программы статистической обработки данных (57 программ);
программы решения практических задач (97 программ).
ЭВМ «Сетунь» обладала маленькой оперативной памятью, и в качестве основной памяти интерпретирующие системы использовали магнитный барабан. Основная программа выполнялась в режиме частичной интерпретации, т. е. выполнялись обычные машинные команды, а в случаях, когда нужный адрес или продолжение программы находились на магнитном барабане, происходило обращение к интерпретирующей системе.
В 1964–1971 гг. в ВЦ МГУ было издано более 30 брошюр в серии «Математическое обслуживание машины "Сетунь"», в которых описывались разработанные сотрудниками ВЦ и пользователями интерпретирующие системы, программы для решения типовых математических задач, для автоматизированных систем статистической обработки, моделирования и т. п. Программы тщательно документировались, распечатки программ, сопровождённые комментариями, издавались вместе с их описанием, представляя собой эффективное средство для обучения программированию на ЭВМ «Сетунь». В результате многие пользователи быстро освоили программирование на троичной машине и создали свои собственные интерпретирующие программы и программы для решения прикладных задач (Альварес. 2014).
Итоги разработки
«Сетунь» показала на практике свою эффективность в большом количестве применений в НИИ, на заводах, в учебных заведениях. Экземпляры машины надёжно функционировали во всех климатических поясах страны от Ашхабада до Якутска, коэффициент полезного времени достигал рекордных показателей 95–97 %. Стоимость одного экземпляра в комплекте с алфавитно-цифровым устройством ввода, двумя фотовводами, телетайпом составляла всего 27,5 тыс. руб.
4 октября 1960 г. Комитет по делам изобретений и открытий при Совете Министров СССР зарегистрировал работу «Создание образца малогабаритной универсальной цифровой вычислительной машины "Сетунь" на магнитных элементах» с приоритетом от 1 августа 1960 г. Разработка «Сетуни» защищена 10 авторскими свидетельствами, удостоена Диплома первой степени и Большой золотой медали ВДНХ СССР (1962).
В 1967–1970 гг. в МГУ на основе опыта создания и применения ЭВМ «Сетунь» была разработана новая троичная ЭВМ «Сетунь 70», опытный образец которой был завершён в апреле 1970 г. Эта машина не была модернизацией ЭВМ «Сетунь», а представляла собой самостоятельную разработку, в которой были применены новые структурные и архитектурные решения. ЭВМ «Сетунь 70» существовала только в виде опытного образца.