Информационные технологии в СССР. Создатели советской вычислительной техники

Малиновский Борис Николаевич

Ревич Юрий Всеволодович

Николай Петрович Брусенцов

 

 

Б. Н. Малиновский

От составителя

Достижение Н. П. Брусенцова — троичный компьютер — для лучшего понимания требует некоторого теоретического введения. При разработке первых компьютеров перед конструкторами встал вопрос об экономичности систем счисления с различными основаниями. Основанием системы называется количество цифр в ней, то есть отдельных символов для написания чисел. В десятичной системе их 10, от 0 до 9, в двоичной — всего две цифры, 0 и 1. А под экономичностью системы понимается тот запас чисел, который можно записать с помощью данного количества знаков. Чтобы записать 1000 чисел (от 0 до 999) в десятичной системе, нужно 30 знаков (по десять в каждом разряде), а в двоичной системе с помощью 30 знаков можно записать 2 15 = 32 768 чисел, что гораздо больше 1000. То есть двоичная система явно экономичнее десятичной. В общем случае, если взять n знаков в системе с основанием x, то количество чисел, которые при этом можно записать, будет равно x n/x . Легко найти максимум такой функции, который будет равен иррациональному числу е = 2,718282… Но поскольку система с основанием е может существовать только в воображении математиков, то самой экономичной считается система счисления с основанием 3, ближайшим к числу е: с помощью 30 знаков в троичной системе можно записать 3 10 = 59 049 чисел. В компьютере, работающем по такой системе, число элементов, необходимых для представления числа определенной величины, минимально.

Именно такой компьютер и создал Николай Петрович Брусенцов. Он имеет и другие преимущества перед двоичными, кроме экономичной элементной базы (см. приложение в конце этого очерка). Почему же троичный компьютер, ныне знаменитый во всем мире (все западные историки науки, приезжая в Россию, первым делом стремятся встретиться с Н. П. Брусенцовым, о чем говорит и Борис Николаевич в данном очерке), так и остался тупиковой ветвью на древе компьютерной эволюции? Причин много, и, главная та, что именно двоичная величина, бит, является наименьшим возможным количеством информации. Передача данных от одного устройства к другому в условиях помех происходит намного надежнее, если производится всего двумя устойчивыми состояниями — высоким уровнем напряжения и низким. Эти состояния просто воспроизвести в электронных устройствах — троичный триггер на транзисторах или лампах устроен куда сложнее двоичного и будет менее надежен в работе, пусть и самих таких триггеров будет требоваться меньше. Брусенцову просто повезло натолкнуться на крайне надежную элементную базу, которая хорошо работает как раз в троичной логике, но при переводе его схем на полупроводниковую основу вместо упрощения получится усложнение.

Текст Бориса Николаевича дополнен фрагментами интервью Н. П. Брусенцова журналу «Upgrate» [7.1] — они выделены мелким шрифтом.

21 июня 1941 года, накануне дня начала Великой Отечественной войны, восьмиклассник Коля Брусенцов был в Днепропетровске, участвовал в олимпиаде молодых музыкантов — дирижировал хором, исполнявшим его песню о дзержинцах. Все прошло замечательно.

А утром 22-го его и остальных, приехавших из Днепродзержинска, срочно отправили домой. Уже дома услышал по радио выступление Молотова. Запомнились слова «Победа будет за нами» и «Богатырская симфония» Бородина, зазвучавшая вслед за ними.

Так закончилось детство Николая.

Он родился 7 февраля 1925 года на Украине в городе Каменское (теперь Днепродзержинск). Отец, Петр Николаевич Брусенцов — сын рабочего железнодорожника, окончил рабфак, а в 1930 году — Днепропетровский химический институт. Участвовал в строительстве Днепродзержинского коксохимического завода. Умер в 1939 году в возрасте 37 лет.

Николай Петрович Брусенцов, 1960-е годы

Мать, Мария Дмитриевна (урожденная Чистякова), заведовала детским садом при заводе, где работал муж. Молодая женщина стойко вынесла тяжелый удар. Надо было позаботиться о троих детях. Николай был старшим из братьев. Младшему шел всего второй год. Не успели оправиться, как началась война. Начались бомбежки. Рядом с домом вырыли щели и прятались в них при налетах. Детский сад, где работала мать, вместе с Днепродзержинским коксохимическим заводом эвакуировали в Оренбургскую область. Урал встретил сорокаградусными морозами. Эвакуированные жили вначале в палатках, потом соорудили саманные бараки. Строили Орско-Халиловский металлургический комбинат. Николай работал учеником столяра. Весной 1942-го года во время разлива реки Урал саманный барак, в котором жила семья Брусенцовых, оказался под водой, и они лишились остатков имущества.

И все-таки он не бросил учебу. Зимой посещал девятый класс вечерней школы в г. Новотроицке, а летом поехал в Екатеринбург (тогда Свердловск) и поступил в находившуюся там в эвакуации Киевскую консерваторию на факультет народных инструментов.

Через полгода — в феврале 1943 года, когда исполнилось 18 лет, его призвали в армию и послали на курсы радистов в том же Свердловске, а еще через полгода направили в 154-ю стрелковую дивизию, где он стал радистом в отделении разведки 2-го дивизиона 571-го артиллерийского полка. Дивизия находилась на переформировании под Тулой. Через две недели ее направили под Невель, где наши части находились в полуокружении. Ему запомнились слова немецкой листовки: «Вы в кольце, и мы в кольце, посмотрим, что будет в конце». До декабря 1943 года дивизия занимала оборону, а потом вместе с остальными частями перешла в наступление и вышла к Витебску. Дивизион, в котором служил Николай, участвовал в неудачном наступлении на город. На болотистой местности гаубицы дивизиона при стрельбе погружались в болотную жижу, и стрельба становилась невозможной. Прекратился подвоз продуктов. Есть было нечего. Ноги Николая от холодной болотной воды распухли и покрылись волдырями. В одном из боев ему под ноги упала мина, но, к счастью, не разорвалась. «По семейному преданию, мама меня родила „в рубашке“», — сказал Николай Петрович, вспоминая об этом. Потом было легче — успешные наступательные бои в Белоруссии, в Прибалтике, Восточной Пруссии. Молодого солдата — вчерашнего школьника наградили медалью «За отвагу» и орденом Красной Звезды. Из тех 25 восемнадца— тилетних ребят, что в августе 1943 года пополнили дивизию, к тому времени осталось пятеро… Здесь, за Кенигсбергом, Брусенцов встретил запомнившийся на всю жизнь День Победы.

После демобилизации он вернулся в Днепродзержинск и устроился на завод, где раньше работал отец. В 1946 году, когда его отчима перевели в Калинин, он вместе со своей семьей переехал в этот город. Начал учиться в музыкальной школе и школе рабочей молодежи одновременно. В 1948 году окончил десятый класс, получив аттестат отличника, и по совету товарища-москвича подал заявление на радиотехнический факультет Московского энергетического института.

На вопрос, почему решил вместо музыки заняться радиотехникой, а потом вычислительной техникой, он ответил: «Я не мечтал стать ни композитором, ни творцом вычислительных машин, ни кем-либо еще. Странно, но мне никогда не приходило в голову делать что-либо ради успеха или выгоды. Пожалуй, главным, если не единственным, что двигало мной, было стремление сделать то, за что взялся, как можно совершеннее. Когда это удавалось, я испытывал (и испытываю) удовлетворение, а иногда и радость. У меня не было музыкальных способностей. Помню, как в Свердловске профессор продемонстрировал мне 6-летнего мальчика, безошибочно называвшего ноты, „извлекаемые“ из рояля. Я не умел — не было абсолютного слуха. Страстного стремления стать музыкантом, похоже, тоже не было: когда ходил в 1-й или 2-й класс школы, родители затеяли обучить меня игре на фортепьяно, но ничего не вышло, а от скрипки я отказался, не пробуя. Правда, попросил приобрести пионерский горн, самостоятельно освоил этот инструмент и стал неплохим горнистом. Охота к музыке появилась только в 5-м классе, играл на балалайке и домре в школьном оркестре. Подтолкнули к этому украинские песни („Посiяла огiрочки“, „Iхали козаки“, „I шумить, i гуде“, музыка Глинки, которую и теперь боготворю, как и песни) и наш школьный музыкальный учитель П. П. Шпитяк, который не завлекал, а лишь показывал, как надо делать. Так что никакой мечты не было: понравилась песня — подобрал и играю, попробовал свою сочинить — тоже получилось и другим понравилась — поют. В Днепропетровске песня о дзержинцах исполнялась хором в сопровождении оркестра народных инструментов, — всего нас приехало около ста человек, собранных из нескольких школ. Помню лишь, что в общежитии после концерта мы долго не могли уснуть, швыряя друг в друга подушками».

Набор студентов в институт уже закончился, но он добился своего. Медкомиссию при приеме каким-то образом обошел, зная, что у него начался туберкулез. Но на первом курсе это открылось, и его хотели исключить из института. Послали в районную поликлинику для заключения о возможности продолжать учебу. Повезло на врача. Узнав в чем дело, доктор сказал: «Мой сын лишился одного легкого и прекрасно учится. Значит и вам это не противопоказано!».

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

Радиотехника очень увлекла Брусенцова. В ней было что-то от музыки — стройность теоретических выводов, возможность проектировать радиосхемы с нужными свойствами. Только палочку дирижера заменяли карандаш или ручка, которыми записывались формулы или делались расчеты.

Но главным было стремление овладеть ею, чтобы понять, как можно улучшить то громоздкое и тяжелое радиооборудование, с которым так нелегко приходилось работать на войне. Радиотехнический факультет предоставлял для этого реальную возможность. «Не только я, но и Карцев, Матюхин, Легезо, Александриди обязаны своими успехами нашим превосходным учителям, в особенности таким как физик Ю. М. Кушнир, радиотехники В. А. Котельников, С. И. Евтянов, Н. С. Свистов, радиолокаторщик Ю. Б. Кобзарев, антенщики А. Н. Казанцев, Г. З. Айзенберг, а также Б. В. Пестряков — конструктор навигационной самолетной аппаратуры и той радиостанции, которая была моим оружием на войне, — писал мне Брусенцов. — Говорили, кому Б. В. поставит 4, тот конструктором будет, а я могу похвалиться, что получил у него 5».

Учась на последнем курсе и готовя дипломный проект, Брусенцов столкнулся с необходимостью расчета сложных таблиц, освоил численные методы вычислений и составил таблицы дифракции на эллиптическом цилиндре (известны как таблицы Брусенцова). Так закладывался фундамент для его последующей работы в области вычислительной техники.

В 1953 г. после окончания института Н. П. Брусенцова направили на работу в СКБ при Московском университете, пообещав помощь в получении жилья. СКБ только становилось на ноги. Разработки носили случайный характер. Вначале Брусенцову поручили разработать ламповый усилитель нового типа. С задачей он справился, но удовлетворения от этой работы не получил, а в перспективе ничего интересного не было. «Поплакался» Карцеву, работавшему в лаборатории И. С. Брука. Тот пригласил посмотреть уже работавшую ЭВМ М-2. Машина буквально покорила Брусенцова, впервые увидевшего новое и столь многообещающее техническое средство. На его счастье, ЭВМ М-2 заинтересовался С. Л. Соболев. Он договорился о передаче машины университету. Брусенцова направили в лабораторию Брука осваивать М-2, чем он и занялся с огромным желанием. Но случилось непредвиденное. На выборах в Академию наук СССР Соболев проголосовал за кандидатуру С. А. Лебедева (в академики), а не И. С. Брука. Исаак Семенович обиделся и отменил передачу М-2 университету.

По словам Брусенцова, С. Л. Соболев, узнав об этом, сказал: «Может, это к лучшему. Надо при создаваемом ВЦ МГУ организовать проблемную лабораторию по разработке ЭВМ для использования в учебных заведениях». И добился перевода Брусенцова на механикоматематический факультет.

Вспоминая свое первое знакомство с Соболевым, Н. П. Брусенцов говорил мне: «Когда я вошел в кабинет Сергея Львовича, то меня словно озарило солнечным светом при взгляде на его открытое, доброе лицо. Мы сразу нашли взаимопонимание, и я благодарен судьбе, что она свела меня с этим изумительным человеком, блестящим математиком, широко эрудированным ученым, одним из первых понявших значение ЭВМ».

Соболев загорелся идеей создания малой ЭВМ, пригодной по стоимости, размерам, надежности для институтских лабораторий. Организовал семинар, в котором участвовали М. Р. Шура-Бура, К. А. Семендяев, Е. А. Жоголев и, конечно, сам Сергей Львович. Разбирали недостатки существующих машин, прикидывали систему команд и структуру (то, что теперь называют архитектурой), рассматривали варианты технической реализации, склоняясь к магнитным элементам, поскольку транзисторов еще не было, лампы сходу исключили, а сердечники и диоды можно было достать и все сделать самим. На одном из семинаров (23 апреля 1956 года) с участием Соболева задача создания малой ЭВМ была поставлена, сформулированы основные технические требования. Руководителем и вначале единственным исполнителем разработки новой ЭВМ был назначен Брусенцов. Заметим, что речь шла о машине с двоичной системой счисления на магнитных элементах.

Соболев договорился с Л. И. Гутенмахером, в лаборатории которого в ИТМ и ВТ АН СССР к этому времени была создана двоичная ЭВМ на магнитных элементах, о стажировке Брусенцова в его лаборатории.

Авторитет Соболева «открыл двери» закрытой для всех лаборатории. «Мне показали машину и дали почитать отчеты, которые в электротехническом отношении, на мой взгляд, оказались весьма слабыми, — вспоминает Н. П. Брусенцов. — Например, одна из главных проблем — подавление „возврата информации“ в феррит-диодных регистрах, как нетрудно было подсчитать, вообще была надуманной; практически не использовались пороговые возможности элементов. Но главное, что мне бросилось в глаза, — каждый второй ферритовый сердечник не работал, а использовался для „компенсации помех“, которая в том исполнении принципиально не могла быть достигнута ни при каком подборе характеристик сердечников, чем только и занимались, выбрасывая в брак до 90 % тороидов. Разобравшись в этих заблуждениях, я легко нашел схему, в которой работают все сердечники, но не одновременно, что и требовалось для реализации троичного кода. О достоинствах этого кода я, конечно, знал из книг, в которых ему уделяли тогда значительное внимание. Впоследствии я узнал, что небезызвестный американский ученый Грош („закон Гроша“ [71]«Закон Гроша» — утверждение, высказанное американским ученым Хербом Грошем в 1965 году, обычно формулируется, как «Производительность компьютера увеличивается как квадрат его стоимости». В отличие от закона Мура, закон Гроша сразу был подвергнут сомнению, потому что не учитывал развитие и удешевление элементной базы и ввел в логический тупик: согласно ему, несколько огромных машин в конце концов будут обслуживать вычислительные запросы всего мира. — Прим. сост.
) интересовался троичной системой представления чисел, но до создания троичной ЭВМ в Америке дело не дошло».

Именно тогда у него возникла мысль использовать троичную систему счисления. Она позволяла создать очень простые и надежные элементы, уменьшала их число в машине в семь раз по сравнению с элементами, используемыми Л. И. Гутенмахером. Существенно сокращались требования к мощности источника питания, к отбраковке сердечников и диодов, и, главное, появлялась возможность использовать натуральное кодирование чисел вместо применения прямого, обратного и дополнительного кода чисел (см. приложение в конце этого очерка).

После стажировки он разработал и собрал схему троичного сумматора, который сразу же и надежно заработал. С. Л. Соболев, узнав о его намерении создать ЭВМ с использованием троичной системы счисления, горячо поддержал замысел и позаботился о том, чтобы помочь молодыми специалистами. Изобрести сумматоры, счетчики и прочие типовые узлы не составило особого труда для Брусенцова: «Летом 1957 г. на пляже в Новом Афоне все детали были прорисованы в тетрадке, которую я захватил с собой, — вспоминает он. — Следующим летом мы с Карцевым плавали до Астрахани на теплоходе, но рисовать мне было уже нечего».

ЭВМ «Сетунь», опытный образец

В 1958 году сотрудники лаборатории (к этому времени их набралось почти 20 человек) своими руками изготовили первый образец машины.

Какова же была их радость, когда всего на десятый день комплексной наладки ЭВМ заработала! Такого в практике наладчиков разрабатываемых в те годы машин еще не было! Машину назвали «Сетунь» — по имени речки неподалеку от Московского университета.

Из интервью Н. П. Брусенцова журналу «Upgrade»: «Осенью 1959 года нас пригласили на Коллегию Государственного Комитета Радиоэлектроники — ГКРЭ. И там мы узнали, что наша машина не нужна. И Госплан, и ВСНХ заняли отрицательную позицию. На Коллегии нас записали в черный список закрываемых разработок. Мы никогда никаких дополнительных денег на создание машины ни копейки не получали. Мы работали только за зарплату здесь, в МГУ. Использовали оборудование, списываемое заводами при снятии изделий с производства. Тем не менее, ради экономии средств нас решили закрыть.

UP: Но какое-то объяснение этому должно быть?

Н. Б.: Соболев спросил: „А вы хотя бы видели эту машину, ведь она уже существует?“ Директор СКБ-245 В. В. Александров ответил: „Нам не надо ни видеть, ни знать — должна быть авторитетная бумага с печатями и подписями“. После Коллегии Сергей Львович пошел в ЦК КПСС. Уже вечером к нам приехал сотрудник отдела ЦК Ф. К. Кочетов и привез с собой М. К. Сулима — начальника восьмого управления ГКРЭ. „Сетунь“ нормально работала и производила необыкновенно хорошее впечатление. Обычно ведь как было: на выставке стоят машины, а сзади люди в белых халатах что-то там налаживают. У нас все работало как часы. Ну, понятно, после этого закрывать нас не стали, ведь машина уже сделана. Было принято решение провести ее межведомственные испытания. Испытания были проведены в апреле 1960 г. На них „Сетунь“ показала 95 % полезного времени. А в то время, если машина показывала 60 %, это считалось очень хорошим результатом».

Характеризуя роль участников создания «Сетуни», Н. П. Брусенцов писал: «Инициатором и вдохновителем всего был, конечно, Соболев. Он же служил примером того, как надо относиться к людям и к делу, непременно участвуя в работе семинара, причем в качестве равноправного члена, не более. В дискуссиях он не был ни академиком, ни Героем соцтруда, но только проницательным, смышленым и фундаментально образованным человеком. Всегда добивался ясного понимания проблемы и систематического, надежно обоснованного решения. „Кустарщина“ — было одним из наиболее ругательных его слов. К сожалению, золотой век участия Соболева в нашей работе закончился в начале 60-х годов с его переездом в Новосибирск. Все дальнейшее стало непрерывной войной с ближним и прочим окружением за право заниматься делом, в которое веришь.

Е. А. Жоголев был нашим „главным программистом“, а по существу, именно вдвоем с ним мы разрабатывали то, что впоследствии стало называться архитектурой машины. Он знал, чего хотел бы от машины программист, а я прикидывал, во что это обойдется, и предлагал альтернативные варианты. Когда же приняли троичную систему, то архитектурные проблемы радикально упростились, — важно было только не намудрить, но наш семинар с Соболевым, Семендяевым и Шурой-Бурой разносил мудрствования в пух и прах.

Достоинства Жоголева намного превосходили его слабости. Он был подлинным генератором оригинальных идей и настойчиво продвигал их в практику. Достаточно указать такую его идею, как программирование на основе польской инверсной записи (ПОЛИЗ), благодаря которой „Сетунь“ в весьма сжатые сроки и при минимальных программистских ресурсах (в группе Жоголева единовременно работало 7 человек) была оснащена вполне удовлетворительной по тем временам, добротной и, прямо скажем, блестящей системой программирования и набором типовых программ, таких как всевозможная обработка экспериментальных данных, линейная алгебра, численное интегрирование и т. п., что было важнейшим условием быстрого и продуктивного освоения машины пользователями. К сожалению, работа эта так и не была вознаграждена. Сам Жоголев, правда, получил серебряную медаль ВДНХ, но — как разработчик машины.

Как собирали первый экземпляр „Сетуни“? Во-первых, троичная машина оказалась намного регулярней и гармоничней, чем двоичные, поэтому проектирование ее не было мучительным и в проекте практически не было ошибок. На последнем этапе исправления потребовала только схема нормализации, а все прочее пошло сходу. Во-вторых, логические пороговые элементы были в такой степени отработаны и исследованы на физическом уровне, что дальнейшее построение из них устройств производилось по четко установленным правилам, не затрагивая более вопросов технической реализации. В-третьих, требования к существенным характеристикам всех деталей, элементов, узлов и блоков были четко определены и строго контролировались на соответствующих этапах изготовления при помощи специально разработанных для этого стендов, сравнительно простых, но проверяющих именно те параметры, от которых зависела правильность и надежность функционирования. Все это вместе создало условия, в которых ошибки своевременно устранялись на самых ранних стадиях, а необходимость переделок была сведена к минимуму. Работа была проделана в короткие сроки и необыкновенно малыми силами. Осенью 1956 г., когда возникла идея троичного кода, в лаборатории было, кроме меня самого, два выпускника физфака МГУ (С. П. Маслов и В. В. Веригин), два выпускника факультета ЭВПФ МЭИ (В. С. Березин и Б. Я. Фельдман) и 5 техников или лаборантов, в большинстве подготовленных мной из учившихся до того специальностям электрика или механика. К концу 1958 г., когда машина стала функционировать, число сотрудников лаборатории приближалось к 20. Механические работы по изготовлению блоков, стоек, а также плат, на которых монтировались элементы, выполнялись по нашим эскизам в мастерской ВЦ и отчасти в мастерских физического факультета. Кроме того, первый вариант ЗУ на магнитном барабане был разработан по нашим спецификациям отделом Л. С. Легезо, работавшим в тесном контакте с нами. Впоследствии это устройство с несерийным барабаном на базе гироскопа с ламповой электроникой было заменено магнитно-полупроводниковым блоком с барабаном от машины „Урал“.

Производственный процесс был организован так. Все мы работали в одной комнате площадью около 60 кв. м, уставленной лабораторными столами, на которых находились полученные по протекции Соболева списанные осциллографы ИО-3 и источники питания УИП-1. Все прочее проектировали и строили сами — стенды для исследования и сортировки ферритов, диодов, проверки ячеек, блоков. Рабочий день начинался „зарядкой“: каждый сотрудник лаборатории* не исключая заведующего, получал пять ферритовых сердечников диаметром три миллиметра, предварительно проверенных на стенде, и при помощи обычной иголки наматывал на каждый пятьдесят два витка обмотки. Затем эти сердечники использовались лаборантами и техниками, которые наматывали на них обмотку питания и управляющие обмотки с меньшим числом витков (5 и 12 соответственно), монтировали ячейку на плате, припаивали диоды, проверяли кондиционность параметров, проставляли маркировку и личное клеймо контролера. Затем ячейки устанавливались в блоках (до 15 штук), и производился монтаж сигнальных и питающих проводов по монтажной схеме. Далее на стенде проверялась выполняемая блочком логическая функция (сумматор, дешифратор, распределитель управляющих импульсов того или иного типа…). Блочки устанавливались в блок, и проверялись функции, выполняемые блоком. Наконец, блоки устанавливались в стойку, выполнялся и проверялся межблочный монтаж жгутов. После этого, как правило, все работало, а если что-то не так, то обнаружить и исправить было сравнительно легко.

Внутри лаборатории функции распределялись так. Запоминающими устройствами занимались С. П. Маслов и В. В. Веригин, к которым позднее подключилась поступившая к нам Н. С. Карцева (жена М. А. Карцева, окончившая вместе с ним наш РТФ МЭИ); управлением внешних устройств занималась А. М. Тишулина, выпускница ЭВПФ МЭИ, выполнившая в нашей лаборатории дипломную работу по созданию устройства быстрого умножения. Дипломники из МЭИ, МВТУ, МИФИ, МИЭМ, Лесотехнического института и др. работали в лаборатории регулярно и немало делали, надеюсь, не без пользы для себя. В. П. Розин, окончивший физфак МГУ по ядерной физике, достался нам в качестве лаборанта, которому не находилось применения, однако он явился для меня надежной опорой в ответственнейшем деле бездефектного изготовления элементов, включая отбраковку ферритовых сердечников и диодов».

Постановлением Совмина СССР серийное производство ЭВМ «Сетунь» было поручено Казанскому заводу математических машин. Первый образец машины демонстрировался на ВДНХ. Второй пришлось сдавать на заводе, потому что заводские начальники при помощи присланной из Минрадиопрома комиссии пытались доказать, что машина (принятая Межведомственной комиссией и успешно работающая на ВДНХ) неработоспособна и не годится для производства. «Пришлось собственными руками привести заводской (второй) образец в соответствие с нашей документацией, — вспоминает Брусенцов. — И на испытаниях он показал 98 % полезного времени при единственном отказе (пробился диод на телетайпе), а также солидный запас по сравнению с ТУ по климатике и вариациях напряжения сети. 30.11.61 г. директор завода вынужден был подписать акт, положивший конец его стараниям похоронить неугодную машину».

Желания наладить крупносерийное производство у завода не было, выпускали по 15–20 машин и год. Вскоре и от этого отказались: «Сетунь» поставляли за 27,5 тыс. руб., так что смысла отстаивать ее не было — слишком дешева. Тот факт, что машины надежно и продуктивно работали во всех климатических зонах от Калининграда до Магадана и от Одессы и Ашхабада до Новосибирска и Якутска, причем, без какого-либо сервиса и, по существу, без запасных частей, говорит сам за себя. Казанский завод выпустил 50 ЭВМ «Сетунь», 30 из них работали в высших учебных заведениях СССР.

ЭВМ «Сетунь», серийный образец. ВДНХ, 1961 год

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

Из интервью Н. П. Брусенцова журналу «Upgrade»:

UP: Американский аналог «Сетуни» — это PDP-8, на которой тинэйджер Билл Гейтс составлял свои первые программы?

Н. Б.: Да. Кстати, интересно сравнить «Сетунь» и PDP-8. Процессор PDP-8 — восьмибитный. У «Сетуни» процессор в пересчете на биты был 30-битным. PDP-8 стоила 20 тысяч долларов без всякой периферии [72] , только один процессорный блок. Считалось, что это рекордно низкая цена.

«Сетунь» стоила 27,5 тысяч рублей со всей периферией. Чехи считали, что могли хорошо продавать «Сетунь» в соответствии с рыночными ценами и получать порядка полумиллиона долларов прибыли с каждой машины. По их приглашению я ездил в Чехословакию, мне показали завод, который планировалось использовать для производства машины «Сетунь», — «Зброевка Яна Швермы». Этот завод, кстати, во время войны делал самые лучшие пушки для немецкой армии, вроде нашей ЗИС-3. Завод меня просто восхитил. Они уже приготовили для «Сетуни» магнитные барабаны, печатающее устройство, устройство ввода. В общем, все было готово для производства «Сетуни». И они мне задают вопрос: «Ну, когда же, наконец, мы получим документацию? Нам обещали еще в декабре, а ее до сих пор нет». А я молиться готов был на такой завод — настоящая высокая культура производства.

Когда я вернулся в СССР, меня вызвал референт Косыгина и попросил передать чешским товарищам, как тогда говорилось, что документацию на «Сетунь» они получат сразу после освоения крупносерийного производства этой машины в Советском Союзе. Но какое к черту крупносерийное производство, когда принимались все возможные меры, чтобы заморозить «Сетунь». Понятно, что тут не обошлось без ГКРЭ. Тот же самый Сулим был заместителем главного конструктора М-20. А с М-20 в КБ провозились 2,5 года, прежде чем передать ее на завод. Для «Сетуни» никакого КБ не дали — завод указан, езжайте и выпускайте. Хорошо В. М. Глушков предложил свое КБ за символическую плату в сто тысяч рублей, чтобы выпустить конструкторскую документацию.

UP: Сто тысяч рублей — это символическая плата?

Н. Б.: Ну конечно! Те 2,5 года, которые в КБ разрабатывали М-20, обошлись в десятки миллионов рублей. Что такое КБ того времени? Это несколько сот человек с высокой оплатой по первой категории и т. д. Позднее я узнал, что чехам говорили: все равно мы эту машину снимем с производства, так что вы ее не заказывайте. Вот так все и закончилось с «Сетунью». В начале 70-х нас из главного корпуса ВЦ переселили на чердак. «Сетунь», несмотря на то, что она была полностью исправной и загруженной задачами, через пару лет была уничтожена — ее разрезали и выкинули на свалку.

В 1961–1968 годах на основе опыта «Сетуни» Брусенцов вместе с Жоголевым разработали архитектуру новой машины, названной затем «Сетунь-70». Алгоритм ее функционирования был с исчерпывающей полнотой записан на несколько расширенном «Алголе-60» (за рубежом подобное делали затем на специально изобретаемых языках описания архитектуры, например, на ISP). Это описание заведующий ВЦ МГУ И. С. Березин утвердил в 1968 году в качестве ТЗ на машину. Оно задавало инженерам предписание того, какую машину надлежит сделать, а программисты имели точное до битов описание, позволявшее заблаговременно создавать для нее программное оснащение, готовить эмуляторы ее архитектуры на имевшихся машинах и т. д. Было намечено, что к 1970 году лаборатория Брусенцова создаст действующий образец, а отдел Жоголева — систему программного обеспечения. «Сроки были в обрез, но в апреле 1970 г. образец уже действовал, — писал Н. П. Брусенцов. — Работал он на тестах, которые мне пришлось написать самому, потому что Жоголев не сделал по своей части буквально ничего. Он увлекся другой работой в сотрудничестве с Дубной. Машину мы все же „оседлали“, помог программист из команды Жоголева — Рамиль Альварес Хосе, а еще через год, „слегка“ модернизировав „Сетунь-70“, сделали ее машиной структурированного программирования [73]Об этом подробно см. статью Н. П. Брусенцова и др. в сборнике «Вычислительная техника и вопросы кибернетики», вып. 15. МГУ, 1978; там же — о преимуществах троичности. — Прим. авт.
.

Машина задумана так, что обеспечивалась эффективная возможность ее программного развития. Теперь это называют RISC-архитектурой. Троичность в ней играет ключевую роль. Команд в традиционном понимании нет — они виртуально складываются из слогов (слоги-адреса, слоги-операции, длина слога — 6 тритов, иначе; трайт — троичный аналог байта). Длина и адресность команд варьируются по необходимости, начиная с нульадресной. На самом деле программист не думает о командах, а пишет в постфиксной форме (ПОЛИЗ) выражения, задающие вычисления над стеком операндов. Для процессора эти алгебраические выражения являются готовой программой, но алгебра дополнена операциями тестирования, управления, ввода-вывода. Пользователь может пополнять набор слогов своими операциями и вводить (определять) постфиксные процедуры, использование которых практически не снижает быстродействия, но обеспечивает идеальные условия для структурированного программирования — то, чего не обеспечил Э. Дейкстра, провозглашая великую идею. Результат — трудоемкость программ уменьшилась в 5–10 раз при небывалой надежности, понятности, модифицируемости и т. п., а также компактности и скорости. Это действительно совершенная архитектура, и к ней всё равно придут».

Из интервью Н. П. Брусенцова журналу «Upgrade»:

UP: А «Сетунь-70»?

Н. Б.: К 100-летию со дня рождения Ленина все должны были делать всякие производственные подарки. Разумеется, и мы взяли обязательство к этой дате сделать «Сетунь-70». Но это уже совсем другая машина. Это была стековая машина, вроде наших «Эльбрусов». Но у «Эльбруса» был всего один стек — стек операндов. У PDP-11 также был всего один стек — процедурный. А «Сетунь-70» имела два стека — команд и операндов. Надо сказать, что эти стеки мы сделали независимо от PDP-11, которая появилась позднее. Когда Дейкстра выступил с идеей структурного программирования, мы увидели, что сделали машину как раз для реализации его идеи. Программирование на «Сетунь-70» было даже не структурированное, а структурирующее. Программы получались легко читаемыми и осваиваемыми, легко модифицированными. Главное, что программы не подвергались отладке, а делалась так называемая контрольная сборка. После того как программу сверху вниз написали, ее проходили снизу вверх. В хороших КБ всегда так делается — типичный конструкторский прием. После этого программа оказывается, как правило, безошибочной. Позднее «Сетунь-70» была эмулирована на двоичных машинах в форме диалоговой системы структурного программирования ДССП.

К сожалению, лаборатория Н. П. Брусенцова после создания машины «Сетунь-70» была лишена возможности, а точнее — права заниматься разработкой компьютеров и выселена из помещений ВЦ МГУ на чердак студенческого общежития, лишенный дневного света. Создание ЭВМ — не дело университетской науки, так полагало новое начальство. Первое детище Брусенцова — машина «Сетунь» (экспериментальный образец, проработавший безотказно 17 лет) была варварски уничтожена, — ее разрезали на куски и выбросили на свалку. «Сетунь-70» сотрудники лаборатории забрали на чердак и там на ее основе создали «Наставник» — систему обучения с помощью компьютера. «Наставником» занялись по рекомендации Б. В. Анисимова, который был тогда заместителем председателя НТС Министерства высшего образования СССР. Выслушав Брусенцова, он сказал ему: «Займитесь обучением с помощью компьютера, этого никто не запретит».

ЭВМ «Сетунь-70»

«Мне, конечно, было горько от того, что нас не поняли, но затем я увидел, что это нормальное положение в человеческом обществе, и что я еще легко отделался, — с горьким юмором написал Брусенцов. — А вот Уильям Оккам, проповедовавший трехзначную логику в XIII веке, с большим трудом избежал костра и всю жизнь прожил изгоем. Другой пример — Льюис Кэррол, которому только под личиной детской сказки удалось внедрить его замечательные находки в логике, а ведь эта наука до сих пор их замалчивает и делает вид, что никакого Кэррола не было и нет. Последний пример, показывающий, что и в наши дни дело обстоит так же (если не хуже), — Э. Дейкстра, открывший (в который раз!) идеи структурирования. Сколько было шума — конференция НАТО, сотни статей и десятки монографий, „структурированная революция“ бушевала едва ли не 20 лет, а теперь опять все так, будто ничего и не было.

Полноценная информатика не может ограничиться общепринятой сегодня по техническим причинам двоичной системой — основа должна быть троичной. Как-то я встретился с Глушковым и попытался поговорить об этом. Как истинный алгебраист Глушков сказал тогда, что вопрос о том, включать пустое или не включать, давно решен: включать! Но в действительности все не так просто. Современные математики, в особенности Н. Бурбаки, в самом деле считают, что Аристотель не знал „пустого“, поэтому его логика несовместима с математической логикой и математикой вообще. Если бы они почитали Аристотеля, то могли бы узнать, что именно им введено не только это понятие, но и буквенные обозначения переменных и прочих абстрактных сущностей, которыми кормится современная математика, не всегда осознавая их смысл. Оказалось, что Аристотель за 2300 лет до появления компьютеров и расхожего теперь термина „информатика“ не только заложил достоверные основы этой науки (у него это называлось „аналитика“, „диалектика“, „топика“, „первая философия“), но и поразительно эффективно применил ее методы к исследованию таких областей, как этика, поэтика, психология, политика, о чем мы со своими ЭВМ пока и мечтать боимся.

Отдельные примеры алгебраизации (достоверной) аристотелевской логики я опубликовал в виде статей „Диаграммы Льюиса Кэррола и аристотелева силлогистика“ (1977 г.), „Полная система категорических силлогизмов Аристотеля“ (1982 г.).

У меня налицо убедительные доказательства верности открытого пути. С какой лег-костью была создана „Сетунь“, как просто ее осваивали и продуктивно применяли пользователи во всех областях, и как они плевались, когда пришлось переходить на двоичные машины. Наивысшее достижение сегодня — RISC-архитектура — машины с сокращенным набором команд (типично — 150 команд), но где им до „Сетуни“, у которой 24 команды обеспечивали полную универсальность и несвойственные RISC эффективность и удобство программирования! Истинный RISC может быть только троичным.

В сущности мы его уже сделали, это „Сетунь-70“ — машина, в которой неизвестные в то время (1966–1968 гг.) RISC-идеи счастливо соединились с преимуществами трехзначной логики, троичного кода и структурированного программирования Э. Дейкстры, реализованного как наиболее совершенная и эффективная его форма — процедурное программирование в условиях двухстековой архитектуры. Впоследствии на этой основе была создана реализуемая на имевшихся двоичных машинах диалоговая система структурированного программирования ДССП, а в ней множество высокоэффективных, надежных и поразительно компактных продуктов, таких как „Наставник“, кросс-системы программирования микрокомпьютеров, системы разработки технических средств на базе однокристальных микропроцессоров, системы обработки текстов, управления роботами-манипуляторами, медицинский мониторинг и многое другое.

Сейчас мы развиваем ДССП в „процедурный ЛИСП“. Известно, что ЛИСП — единственный язык, на котором можно сделать все: от управления простейшими системами до проблем искусственного интеллекта и логического программирования. Но ЛИСП с его функциональным программированием и списковыми структурами программ и данных — это магия, доступная немногим. Мы обеспечим те же (и больше) возможности, но без магии. К сожалению, приходится делать это не на троичной машине и полного совершенства достичь не удается, но и в двоичной среде многое можно значительно упростить и улучшить. Правда, отдельные фрагменты трехзначной логики используются в двоичной ДСПП как логика знаков чисел (—, 0, +), также в виде трехзначных операций конъюнкции и дизъюнкции, существенно ускоряющих принятие решений.

Все же главным применением трехзначной логики стала у меня теперь силлогистика и модальная логика Аристотеля. Арифметические и машинные достоинства троичности в достаточной степени были освоены нами уже в „Сетуни-70“ — операции со словами варьируемой длины, оптимальный интервал значений мантиссы нормализованного числа, единый натуральный код чисел, адресов и операций, идеальное естественное округление при простом усечении длины числа, алгебраические четырехвходные сумматоры и реверсивные счетчики, экономия соединительных проводов и контактов за счет передачи по каждому проводу двух несовместимых двузначных сигналов (т. е. одного трехзначного). Короче говоря, всё, о чем мечтает Д. Кнут в „Искусстве программирования для ЭВМ“, мы уже осуществили. Адекватное отображение логики Аристотеля в трехзначной системе откроет выход компьютерам на те проблемы, которые он в свое время исследовал и которые сегодня, по-моему, актуальней вычислительной математики и электронной почты, а тем более одуряющих компьютерных игр. К тому же логика приобретет естественный вид и ее можно будет наконец пустить в школу, чтобы учились соображать, а не занимались зубрежкой».

Тяготы войны и напряженная работа без достаточного отдыха сказались на здоровье: в конце семидесятых годов Н. П. Брусенцов тяжело заболел. Во Всесоюзном центре хирургии в Москве ему вначале отказали в операции, считая положение безнадежным. И только вмешательство директора центра Бориса Васильевича Петровского спасло ему жизнь: он сам взялся прооперировать приговоренного к смерти ученого. Операция (она имеет специальное название — операция Гартмана) шла пять часов. Семидесятивосьмилетний знаменитый хирург подарил Н. П. Брусенцову вторую жизнь… Был еще один человек, которому ученый не менее обязан: его жена Наталия Сергеевна Казанская взяла на себя все тяготы ухода за мужем и в больнице, и дома. Через год пришла еще одна победа — на этот раз над, казалось, неизлечимой болезнью…

Прав или не прав Н. П. Брусенцов — покажет время. Со своей стороны приведу лишь один факт. В декабре 1993 года я встретился с известным специалистом в области компьютерной науки профессором С. В. Клименко, работающим в вычислительном центре Института физики высоких энергий (г. Протвино Московской области). Ученый только что возвратился из США, где по просьбе американской стороны прочитал небольшой курс лекций по истории развития компьютерной науки и техники в Советском Союзе. На мой вопрос — о чем и о ком спрашивали его американские слушатели, он ответил: «Почему-то только о Брусенцове и его машине „Сетунь“».

Мы же по-прежнему считаем — нет пророков в своем отечестве! А может, интерес американцев к троичной ЭВМ и ее творцу не случаен?..

Николай Петрович Брусенцов, 2008 год

В настоящее время Николай Петрович Брусенцов заведует лабораторией ЭВМ факультета вычислительной математики и кибернетики Московского государственного университета им. М. В. Ломоносова. Основными направлениями его научной деятельности являются: архитектура цифровых машин, автоматизированные системы обучения, системы программирования для мини— и микрокомпьютеров. ЭВМ «Сетунь-70» до сих пор успешно используется в учебном процессе в Московском университете. Н. П. Брусенцов является научным руководителем тем, связанных с созданием микрокомпьютерных обучающих систем и систем программирования. Им опубликовано более 100 научных работ, в том числе монографии «Малая цифровая вычислительная машина „Сетунь“» (1965), «Миникомпьютеры» (1979), «Микрокомпьютеры» (1985), учебное пособие «Базисный фортран» (1982). Он имеет 11 авторских свидетельств на изобретения. Награжден орденом «Знак Почета», Большой золотой медалью ВДНХ СССР. Лауреат премии Совета Министров СССР.

 

ПРИЛОЖЕНИЕ

Вычислительная машина «Сетунь» Московского Государственного университета

Н. П. Брусенцов

Общая характеристика машины

Вычислительная машина «Сетунь» представляет собой автоматическую цифровую машину, предназначенную для решения научно-технических задач. Это одноадресная машина последовательного действия с фиксированным положением запятой.

Особенностью машины в математическом отношении является использование троичной системы счисления с коэффициентами 1, 0, –1.

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

Внутренние устройства машины работают на частоте 200 кГц, выполняя основные команды со следующими затратами времени: сложение — 180 мкс, умножение — 325 мкс, передача управления — 100 мкс.

Длина слова в арифметическом устройстве машины — 18 троичных разрядов. Команда кодируется полусловом, то есть девятью разрядами. В запоминающем устройстве каждая пара полуслов, составляющая полное слово, и каждое полуслово в отдельности наделены независимыми адресами. Число, представленное полусловом, воспринимается арифметическим устройством как 18-разрядное с нулями в младших разрядах.

Оперативное запоминающее устройство машины, выполненное на ферритовых сердечниках, обладает емкостью в 162 полуслова.

Запоминающее устройство на магнитном барабане вмещает 2268 полуслов. Обмен между барабаном и оперативным запоминающим устройством производится группами по 54 полуслова. Предполагается ввести дополнительное запоминающее устройство на магнитной ленте и увеличить емкость барабана до 4374 полуслов.

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

В арифметическом устройстве машины «Сетунь» 18-разрядное троичное слово рассматривается как число, в котором запятая расположена между вторым и третьи разрядами. Это число можно выразить формулой

Диапазон чисел в арифметическом устройстве составляет –4,5 < х < +4,5 при абсолютной погрешности |Δх| < 0,5 ⋅ 3–16. Число считается нормализованным, если оно заключено в интервале 0,5–1,5 или равно нулю. Порядок нормализованного числа изображается пятью старшими разрядами полуслова, хранящегося в запоминающем устройстве по отдельному адресу.

Девять разрядов полуслова, представляющего команду, распределены следующим образом: пять первых разрядов составляют адрес, три разряда — код операции, девятый разряд — признак модификации адреса. Если в этом разряде стоит 0, то команда выполняется без изменения адреса, если 1, то к адресу прибавляется число, находящееся в регистре модификации, если –1, то это число вычитается из адреса. Особое значение имеет младший (пятый) разряд адреса: у адреса полного слова в этом разряде –1, у адреса старшего полуслова 0, у адреса младшего полуслова 1.

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

В функциональном отношении машина разделяется на шесть устройств:

1) арифметическое устройство;

2) устройство управления;

3) оперативное запоминающее устройство;

4) устройство ввода;

5) устройство вывода;

6) запоминающее устройство на магнитном барабане.

Преимущества троичной системы счисления

Главное преимущество троичного представления чисел перед принятым в современных компьютерах двоичной состоит не в иллюзорной экономности троичного кода, а в том, что с тремя цифрами возможен натуральный код чисел со знаком, а с двумя невозможен. Несовершенство двоичной арифметики и реализующих ее цифровых машин обусловлено именно тем, что двоичным кодом естественно представимы либо только неотрицательные числа, либо только неположительные, а для представления всей необходимой для арифметики совокупности — положительных, отрицательных и нуля — приходится пользоваться искусственными приемами типа прямого, обратного или дополнительного кода, системой с отрицательным основанием или с цифрами +1, –1 и другими ухищрениями.

В троичном коде с цифрами +1, 0, –1 имеет место естественное представление чисел со знаком (так называемая симметричная, уравновешенная или сбалансированная система), и «двоичных» проблем, не имеющих удовлетворительного решения, просто нет. Это преимущество присуще всякой системе с нечетным числом цифр, но троичная система — самая простая из них и доступна для технической реализации.

Арифметические операции в троичной симметричной системе практически не сложнее двоичных, а если учесть, что в случае чисел со знаком двоичная арифметика использует искусственные коды, то окажется, что троичная даже проще. Операция сложения всякой цифры с нулем дает в результате эту же цифру. Сложение +1 с –1 дает нуль. И только сумма двух +1 или двух –1 формируется путем переноса в следующий разряд цифры того же знака, что и слагаемые и установки в текущем разряде цифры противоположного знака. Пример:

111011101010

+

111011110100

_____________

101110011110

В трехвходном троичном сумматоре перенос в следующий разряд возникает в 8 ситуациях из 27, а в двоичном — в 4 из 8. В троичном сумматоре с четырьмя входами перенос также происходит только в соседний разряд.

Операция умножения еще проще: умножение на нуль дает нуль, умножение на 1 повторяет множимое, умножение на –1 инвертирует множимое (заменяет 1 на –1, а –1 на 1). Инвертирование есть операция изменения знака числа.

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

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