Как мы помним, разработка и практически принятие 5Э53 сопровождалось искренним душевным и научным подъемом всего коллектива СВЦ.
Базовые проблемы модулярной арифметики были успешно решены, машина принята, прототип работал отлично, алгоритмы были написаны. Пока никто и не мог предположить, чем все обернется, и на волне эйфории сотрудники решили не останавливаться на уже успешно законченном (как им казалось) проекте и построить что-нибудь еще.
В этой статье много иллюстраций похожих западных проектов, к сожалению, это вынужденная мера, поскольку ни в одном открытом источнике найти фотографии, относящиеся к поздним работам Юдицкого и коллектива СВЦ, не удалось (и неизвестно, существовали ли вообще фотографии этих секретных прототипов).
При создании 5Э53 был возведен монументальный задел для дальнейших исследований – окончательно отшлифованы математические основы работы с СОК, методы повышения отказоустойчивости, создана периферия (а сформировать ее в СССР было отдельным подвигом, сравнимым с разработкой суперкомпьютера, на чудовищное качество советских накопителей, принтеров и прочего жаловались даже фанатичные коммунисты). Для прошивки была изготовлена удобная диодная 256-битная матрица на диэлектрической подложке – ДМР-256 и организовано ее производство на «Микроне», апробированы методы сборки гибридных ИС повышенной плотности.
Не забудем и о том, что сотрудники Юдицкого не отличались старческим окостенением, свойственным многим официальным советским научным школам, геронтократией там и не пахло, все были (подобно своему шефу) молодые и дерзкие и хотели творить дальше. Они планировали усовершенствовать следующую версию 5Э53, собрать ее уже на настоящих микросхемах и включить туда целый ряд еще более прогрессивных технических решений (благо в аванпроекте нового суперкомпьютера не было уже никаких ограничений на работу специально с алгоритмами ПРО). Задумана была настоящая революция в области суперкомпьютеров, подпитываемая дружеским соревнованием с группой Карцева – Юдицкий понимал, что его машина объективно медленнее, его сжигало желание выжать столько же операций на модулярной ЭВМ.
Задуманный монстр был радикален и прогрессивен даже по меркам поразительных западных архитектур 1980-х (когда что только не испробовали для повышения производительности). Кроме модулярной арифметики он должен был быть модульным, реконфигурируемым (!) и с аппаратно-микропрограммной реализацией ЯВУ (!), причем не какого-то, а ужасного и легендарного PL/1 (с поддержкой которого намучалась IBM, но который был весьма популярен в СССР) или еще более странного языка – IPL (Information Processing Language, разработан Аланом Ньюэллом (Allen Newell), Клиффом Шоу (Cliff Shaw) и Гербертом Симоном (Herbert A. Simon) из RAND Corporation и Института Карнеги около 1956 года: возможно, первый функциональный язык программирования в мире, ассемблерного типа, ориентированный на работу со списками).
Об этих очень неортодоксальных инновациях стоит поговорить отдельно, тем более что идея аппаратной поддержки ЯВУ была успешно позаимствована Бурцевым для его «Эльбруса». Началось все в США со знаменитой компании Burroughs, которая в начале 1960-х решила войти на рынок мэйнфреймов.
B5000
Так родился B5000 – великая машина, опередившая развитие архитектуры ЭВМ на десятилетие.
Разработанный командой под руководством Роберта Бартона (Robert Barton) в 1961 году мэйнфрейм стал первым в серии Burroughs large systems, выпускавшейся до конца 1980-х годов и имевшей уникальную архитектуру, не применявшуюся более ни одним производителем. Известный ученый в области компьютерных наук Джон Маше (John R. Mashey) причислил ее к списку вызывающих у него наибольшее восхищение изобретений:
«Я всегда думал, что это один из самых инновационных примеров комбинированного проектирования аппаратного и программного обеспечения, который я видел, намного опередивший свое время».
Эксперт по машинам Burroughs, профессор университета Вирджинии Алан Бейтсон (Alan Bateson) в интервью для статьи «Whatever Happened to the Seven Dwarfs?», высказался так:
«Если бы вы сейчас могли прочитать спецификации этой машины глазами людей 1960-х, вы были бы изумлены!»
В 1960–1980-е годы многие компании выпускали разнообразные значки на лацканы в честь себя, своих продуктов и каких-либо технологий, эти значки носили сотрудники компании, их раздавали на выставках и презентациях, использовали в рекламе. Сейчас многие из них обладают немалой коллекционной ценностью. Первый большой компьютер Burroughs настолько поразил воображение даже своих создателей, что в честь него был выпущен значок с, пожалуй, самой оригинальной рекламной надписью: «Я трогал B5000» (I touched the B5000). Так же называется изданная в 1985 году книга воспоминаний известного компьютерного ученого и разработчика, специалиста в теории языков и компиляции, работавшего в компании Burroughs над ее версией Алгол Ричарда Вэйчоффа (Richard Edwin Waychoff).
Тот самый значок (из личной коллекции Ole Hagen Jensen)
Что же такого уникального построил Боб Бартон и его команда?
Они понимали, что выходят на рынок больших систем значительно позднее, чем их конкуренты из IBM, RCA и других компаний, так что им нужно предложить что-нибудь, по-настоящему исключительное.
Кроме того, они имели возможность изучить архитектуру уже представленных систем и поняли, что все они имеют определенные общие недостатки, сконцентрированные в области того, без чего бесполезен самый продвинутый компьютер – программного обеспечения. Машины поставлялись отдельно от ПО, причем все программы писались, как правило, компанией, купившей компьютер с нуля и под себя, никто даже не думал об удобстве разработки, архитектура была отделена от софта. Компьютеры разрабатывались особыми группами инженеров, которые даже не думали о том, насколько будет просто или сложно разрабатывать программы под их машины. B5000 должен был дать ответы на все эти вопросы.
Это был первый компьютер в мире, разрабатывавшийся как единый аппаратно-программный комплекс и целостная система, в отличие от S/360, для которого IBM даже не осилила довести до ума планировавшуюся изначально OS/360 (более того, такая практика раздельного проектирования сохранилась в IBM и далее и, в конце концов, стала доминирующей, включая системы команд x86, PPC и ARM). Проектирование машины без оглядки на исполняемый код привело к многочисленным костылям реализации софта и операционных систем в 1980-е, что косвенно сказывается на качестве ПО и сейчас.
Для B5000 же все было иначе. С самого начала он проектировался в комплексе с языком, ОС и системным софтом. Его главной архитектурной особенностью стала полная аппаратная поддержка языков высокого уровня, опирающаяся на две инновации – стековый процессор и тэгово-дескрипторную память.
B5000 не имел ассемблера, его процессор был в состоянии выполнять непосредственно инструкции ЯВУ. При разработке встал вопрос, какой из языков выбрать в качестве основного? Таковых в те годы существовали единицы, но выбор пал на самый мощный академический язык, на который только появился новый стандарт – Algol-60. Он стал основным системным языком, кроме этого, была реализована хорошая поддержка Cobol (в основном она включала работу с мощными операторами строк) и Fortran. Таким образом, вся архитектура B5000 строилась вокруг очень продвинутого языка, например, задолго до появления директивы #define в C аналогичный механизм был применен в B5000, причем встроен в сам язык, а не являлся командой препроцессора.
Большинство других производителей компьютеров могли только мечтать о внедрении компилятора Algol по причине его сложности и крайне медленной программной реализации. Считалось, что достичь приемлемой скорости работы при его использовании нереально и, если не использовать аппаратную поддержку, так это и было (в частности, это одна из причин, по которой Algol, как язык, не снискал широкой популярности в то время). Над реализацией языка в компании Burroughs несколько месяцев летних каникул работал тогда еще молодой студент, легендарный Дональд Кнут (Donald Knuth), ранее разрабатывавший программы на Algol-58 для их ранних машин.
Компилятор Burroughs Algol был очень быстрым – это произвело колоссальное впечатление на знаменитого голландского ученого Эдсгера Дейкстру (Edsger Dijkstra). Во время тестов B5000 в Пасадене его программа была скомпилирована со скоростью чтения с перфокарт, что было потрясающим результатом для того времени, и он сразу же заказал несколько машин для Эйндховенского технологического университета в Нидерландах, где работал. Аппаратная поддержка и достаточный объем ОЗУ позволили компилятору работать в однопроходном режиме (при том, что даже ассемблеры ранних машин использовали почти всегда многопроходную компиляцию в то время).
B5500 и его компоненты.
1 – принтер (B320, B321 или B325), 2 – картридер перфокарт (B129), 3 – консоль управления с 4 – телетайпом для ввода команд (например, Teletype Corp Model 33 KSR), 5 – перфоратор (B303 или B304), 6 – накопители на магнитной ленте (B422/B423 –15 Мбит), 7 – процессор (один из возможных двух), 8 – сопроцессор I/O, 9 – контроллер терминалов, 10 – консоль индикации и отладки. Также на фото не поместились 2 шкафа с ОЗУ и шкаф второго процессора (фото университета Тасмании http://www.retrocomputingtasmania.com)
Мы так подробно останавливаемся на всех этих преимуществах именно потому, что аналогичные идеи пришли в голову и группе Юдицкого, а позднее – и группе Бурцева (только вот у Юдицкого, в отличие от Бурцева, не было под рукой живого Burroughs для изучения). В итоге многие вещи, описываемые, как уникальные и не имеющие в мире аналогов, реализованные в «Эльбрусе», на деле появились сильно раньше, включая продвинутые механизмы защиты.
Даже улучшенный Burroughs Algol не включал многие небезопасные конструкции, необходимые операционной системе и другому системному ПО. Для их поддержки было разработано специальное расширение Espol (Executive Systems Problem Oriented Language). На Espol было написано ядро операционной системы – Burroughs MCP (Master Control Program) и все системное ПО. Аппаратная поддержка Espol позволила легко реализовать виртуальную память, многопроцессорную обработку, быстрое переключение контекста и вызов процедур, защиту памяти и совместное использование кода. B5000 стал первой коммерческой машиной с виртуальной памятью. Кроме этого, за счет этого была реализована полная реентерабельность кода естественным образом, без дополнительных усилий со стороны программистов. Язык Espol в конце 1970-х был заменен более продвинутым Newp (New Executive Programming Language).
Все небезопасные конструкции в программе отвергаются компилятором Newp, если только блок в ОЗУ специально не помечен особым тэгом для разрешения этих инструкций. Такая маркировка блоков обеспечивает многоуровневый механизм защиты. Кроме этого, программы Newp, которые содержат небезопасные конструкции, изначально не являются исполняемыми. Особый администратор безопасности системы может сделать их исполняемыми, но обычные пользователи не могут этого сделать. Даже привилегированные пользователи, у которых обычно есть рут-доступ, не могут их запустить без явного разрешения администратора. Только назначенные операционной системой компиляторы могли создавать исполняемые файлы с расширенными командами, и только сама MCP могла назначить программу в качестве компилятора (через консольную команду администратора безопасности).
Newp был настолько продвинут, что поддерживался оригинальной архитектурой мэйнфреймов Unisys ClearPath, наследников серии B, до 2014 года, когда началась миграция на x86. Также, задолго до bash в Linux, для эффективного управления MCP был разработан отдельный язык командной строки WFL (Work Flow Language). В мэйнфреймах IBM его аналогом был знаменитый Job Control Language (JCL).
Компьютеры, разрабатываемые специально для ЯВУ, были очень сложны, но развивались позднее по проторенному Burroughs пути вплоть до середины 1980-х (среди них можно отметить рабочую станцию Lilith Никлауса Вирта, отца Pascal и знаменитые LISP-машины), когда были вытеснены архитектурой x86 и RISC-процессорами общего назначения.
Дескрипторы, защищенные тэгами, в B5000 аппаратно проверяются при каждом обращении к памяти на каждом шаге изменения данных. Кроме этого, система не нуждается в ручном управлении выделением памяти и более того – это вообще невозможно. Каждый сегмент защищенных данных, таких как код, не может быть даже прочитан, не говоря уже об изменении, неконтролируемым системой образом, что делает большую часть атак просто невозможными и ошибок – нереализуемыми.
Конечно, подходящий привилегированный процесс может явно изменить биты тэга и таким образом изменить себя, но только компилятор ESPOL может генерировать такой код, при этом MCP откажется выполнять все, что идентифицировано ей как ESPOLCODE, какой бы уровень привилегий не имел тот, кто пытается его запустить. Такие программы должны быть установлены как часть операционной системы в самом начале, и добавить или изменить их в процессе работы принципиально невозможно.
В результате мэйнфреймы Burroughs оставались самыми защищенными и безопасными машинами на планете в течение тридцати следующих лет, и именно поэтому их на долгие годы выбрала Федеральная резервная система США в качестве стандарта своего банковского компьютера. Как мы уже говорили, эта архитектура (естественно, непрерывно улучшаемая новыми моделями) аппаратно поддерживалась вплоть до недавнего времени, и лишь с 2014 года произошел переход на стандартные x86 серверы.
Одной из немногих реальных проблем серии B стало то, что уже ее родоначальник B5000 в итоге имел чрезвычайно сложный процессор и подсистему памяти. В эпоху транзисторных машин на это можно было бы закрыть глаза, но этот момент сильно осложнил интеграцию последующих моделей. В те годы, когда все производители перешли на одночиповые модели, с процессором, реализованным как заказная схема, серия больших машин Burroughs все еще выпускалась в многочиповом исполнении.
Первая версия «мэйнфрейма на кристалле» – SCAMP, появилась только в конце 1980-х, когда было слишком поздно, хотя этот процессор и его наследники и использовались компанией Unisys до середины 2000-х годов.
Вершина линейки больших банковских машин. Burroughs B7900 (1984) стал последним классическим мэйнфреймом серии В, в 1986 произошло их слияние со Sperry: так возникла Unisys, существующая до сих пор (фото университета Тасмании http://www.retrocomputingtasmania.com)
Дополнительной проблемой, связанной с колоссальной сложностью процессора и огромным числом транзисторов и ранних ИС, стала надежность.
Однако компьютеры Burroughs не могли ломаться – компания имела репутацию одного из лучших поставщиков систем высокой доступности, их машины традиционно работали годами без аварийной остановки (также, кстати, как до того их арифмометры, обоснованно считавшиеся самыми надежными в отрасли). Для того чтобы B5000 удовлетворял строгим критериям качества, в систему была заложена значительная избыточность и гибкость.
Аппаратные модули можно было отключать и инсталлировать на лету, не останавливая работу и не теряя данные, что по тем временам было чем-то фантастическим. Для того чтобы отслеживать состояние всех узлов машины и реконфигурировать систему в процессе вычислений, обходя сбойные участки, был добавлен специальный сопроцессор MDLP (Maintenance Diagnostic Logic processor, процессор техобслуживания). Он также использовался инженерами для диагностики всех компонентов системы.
В результате, несмотря на то, что B5000 был на порядок сложнее традиционных машин тех лет, надежность его не только не пострадала, но и значительно превосходила большинство компьютеров такого класса.
Авторитет компании в банковской среде был так высок, что в 1973 году, когда было создано Общество всемирных межбанковских финансовых каналов связи (SWIFT – Society for Worldwide Interbank Financial Telecommunications), именно Burroughs за 4 года работы построил его магистральные коммутационные системы. И до сих пор наследник Burroughs, корпорация Unisys, является крупнейшим провайдером сети SWIFT.
«Настольный мэйнфрейм» Unisys Micro A (1989) – фактически первый сервер в современном смысле этого слова. Его процессор SCAMP-A (сверху) и более поздняя версия – SCAMP-D (1997, снизу). По заказу Unisys чипы выпускали сначала IBM на своих фабриках, затем LSI. Сервер Unisys ClearPath Libra 6200 (2012–2015) – последний, поддерживающий архитектуру B5000 (фото университета Тасмании http://www.retrocomputingtasmania.com, из частной коллекции Джона Калвера https://www.cpushack.com/ и официального проспекта Unisys ClearPath)
B5000 использовался NASA, U. S. Air Force, Carrier Corporation, Вашингтонским университетом, Университетом Денвера, Калтехом, Стэнфордским университетом, Университетом Монаш в Австралии (они были верны Burroughs до конца и имели все их машины последовательно, вплоть до B7800), Технологическим институтом Дрекселя в Монреале, Британской почтой и Американским бюро шахт.
Также в 1964 году Burroughs построил B8300 для приложений реального времени, таких как резервирование авиабилетов. Системным языком была выбрана достаточно редкая версия Algol 60 – Jovial. Он был разработан в 1959 году в качестве нового языка программирования высокого уровня для систем реального времени в корпорации SDC группой под руководством Жюля Шварца (Jules I. Schwartz) и изначально был диалектом Algol-58, на что указывает его шутливое название (Jules Own Version of the International Algebraic Language).
Сначала он предназначался для программирования электроники боевых самолетов, но в 1960-х годах стал важной частью серии военных проектов США, в частности SACCS (Strategic Automated Command and Control System – система, управлявшая ядерным оружием США) и, конечно, SAGE. Примерно 95 % программного обеспечения SACCS (совместная разработка ITT и IBM) было написано SDC на Jovial. Разработка заняла два года (в пересчете около 1400 человеко-часов), более чем в два раза быстрее, чем ПО для SAGE.
В конце 1970-х при разработке стандартной архитектуры военного процессора MIL-STD-1750A было принято решение, что Jovial останется основным языком для этой архитектуры. Многие компании предоставили для него свои компиляторы – Advanced Computer Techniques (ACT), TLD Systems, Proprietary Software Systems (PSS) и другие. Последний стандарт на этот язык – MIL-STD-1589C был принят в 1984 году, в настоящее время до сих пор используются три диалекта этого стандарта: J3, J3B-2 и J73. Поддержка Jovial была прекращена только в 2010 году, хотя компиляторы продолжают выпускаться.
Как и в случае с Cobol, большая часть ПО, реализованного на Jovial, является критически важной, а техническое обслуживание становится все труднее, частичная замена началась с 2016 года, хотя иногда выбор более чем странен. Например, программное обеспечение знаменитого бомбардировщика B-2 было перенесено с Jovial на Pure C (!), что вряд ли можно считать эффективным решением в плане безопасности и легкости поддержки.
Примерно такую архитектуру предложили и инженеры СВЦ, только вот их суперкомпьютер обладал еще одной уникальной особенностью – он был, как мы уже говорили, модулярным!
Новая ЭВМ Юдицкого
Новая машина Юдицкого должна была включать подсистемы центральной обработки (до 16 центральных процессоров), ввода-вывода (до 16 процессоров ввода-вывода), памяти (до 32 секций ОЗУ 32К х 64 битные слова) и мощную модульную систему динамичной коммутации перечисленных модулей по сложному графу (любой ЦП мог быть соединён с любым ПВВ и любой секцией ОЗУ). Общая производительность ЭВМ оценивалась в совершенно чудовищные 200 MIPS – Cray-1 1977 года выдавал 160! В процессоре, естественно, планировалась табличная реализация арифметики.
В итоге Юдицкий с удовольствием констатировал, что, несмотря на чрезвычайно нетипичную для сверхЭВМ систему остаточных классов, его новый проект сможет побить М-10 Карцева! Это действительно был абсолютно уникальный гибрид, впитавший все самые передовые мировые разработки в области ЭВМ тех лет, параллельно-матричную архитектуру от серии М, аппаратную поддержку ЯВУ от B5000 и, естественно, фирменную технологию от самого Юдицкого – СОК.
Самое поразительное, что итог вовсе не выглядел как помесь ежа и ужа – это была абсолютно рабочая, чрезвычайно удобная и самая мощная в мире машина тех лет, ближайшие американские конкуренты отставали на поколение. Кроме того, она была невероятно надежной.
В общем, мы все уже понимаем, что воплотить ее в серии в СССР бы не удалось даже ценой жизни главного конструктора.
Для реализации табличной арифметики машине требовалось новое компактное постоянное ЗУ большой ёмкости. Его разработкой в СВЦ уже несколько лет занималось подразделение С. А. Гаряинова. Суть работы заключалась в создании бескорпусных диодных матриц, а также конструкции и технологии изготовления устройств на их основе.
Как раз с этой целью и хотели приспособить уже упомянутую ДМР-256. На основе матрицы была разработана соответствующая оригинальная конструкционная система: кристаллы ДМР монтировались на ситаловую плату, платы собирались в семиэтажную этажерку МФБ (многофункциональный блок), этажерки устанавливались на большую печатную кросс-плату. Несколько кросс-плат монтировались в металлический герметичный корпус блока, заполняемый фреоном. Для вывода тепла из блока в него устанавливались тепловые трубки.
Аванпроект уникального компьютера, получившего просто индекс римскими цифрами «IV», был закончен в начале 1973 года. «IV» задумывалась как прототип для последующих разработок СВЦ. Однако ещё до завершения проекта, ему, казалось, нашлось хорошее применение.
В конце 1971 года ОКБ «Кулон» Сухого обратилось в СВЦ с заказом на разработку САПР для самолетов. К САПР предъявлялись высокие и перспективные требования, опережающие любые возможности советских ЭВМ тех лет.
Система должна была поддерживать более 700 автоматизированных рабочих мест разработчиков самолета и его узлов. Каждый АРМ был терминалом с графопостроителем, а вычисления должны были производиться на главном суперкомпьютере (в те времена годовой объём выпуска даже более простых АРМ в СССР был не более полутысячи). Эскизный проект был выполнен и с удовлетворением принят заказчиком, однако Минрадиопром (возглавляемый известно кем) выпускать машину отказался, ссылаясь на недостаток финансирования (при том, что проект предназначался для военного ОКБ Сухого, а на оборонку у нас денег не жалели).
Однако еще более интересное применение для «IV» появилось почти сразу, в начале 1972 года. Тогда СВЦ получил заказ аж от самого ГРУ на разработку эскизного проекта суперЭВМ для обработки структурированных особым образом данных (переводя с языка ГРУ на человеческий – для взлома шифров), получившей условное наименование «Машина 41-50».
64-битный компьютер должен был иметь быстродействие не менее 200 MIPS, ОЗУ 16 Мбайт и развитую периферию. В СВЦ решили построить векторную ЭВМ с системой команд, работающих над массивами, и ориентированной на реализацию алгоритмов заказчика. Задача динамического распараллеливания при этом решалась на аппаратно-микропрограммном уровне. Эскизный проект 41-50 СВЦ выполнял совместно с Институтом кибернетики АН Украины, для работы был привлечен еще один недооцененный советский гений, один из лучших в мире специалистов по параллельным вычислениям и директор ИК академик В. М. Глушков.
О Глушкове имеет смысл как-нибудь завести разговор отдельно – он был одним из крупнейших мировых ученых в области компьютерных наук (при 15-м издании британо-американской Encyclopaedia Britannica в 1973–1974 годов статья о кибернетике была заказана Глушкову!), но его проекты (а там были совершенно потрясающие вещи, например, советский Интернет) топили так безжалостно, что (уже по традиции выдающихся отечественных специалистов в области ЭВМ) он не дожил и до 60 лет, скончавшись от инфаркта.
Глушков был назначен научным руководителем проекта, в ИК было создано два специальных подразделения (филиал СВЦ) во главе с З. Л. Рабиновичем и Б. Н. Малиновским. Главным конструктором был Юдицкий.
Проектирование 41-50 началось с изучения алгоритмов решения задач заказчика и попытки подогнать их под модулярную арифметику (как мы видим, во всех проектах СОК-машин работа строилась от алгоритмов – фактически, это и было недостатком указанного класса компьютеров – огромная привязка к конкретным задачам, делавшая машину практически узкоспециализированной). Работу возглавили В. М. Амербаев – в качестве математика и основного автора модулярной арифметики, и Л. Г. Рыков – в качестве схемотехника, реализующего эти алгоритмы.
Вспоминает Л. Г. Рыков:
Акушский был больше теоретиком и до таких понятий, как время задержки, гонка импульсов и других схемотехнических неприятностей, не опускался. Вильжан Мавлютинович – совершенно другой человек. Он не гнушался наших проблем и всегда старался найти такой вариант математического решения, который наиболее удачно реализуется аппаратно.
Результат исследований был собран в труде РТМ У10.012.003 «Машинные алгоритмы двухступенчатой непозиционной арифметики», и в целом он был неутешительный. Дело в том, что в задачах ГРУ процент немодульных операций был колоссален, свести их к СОК было невозможно, а постоянно конвертировать туда-сюда и гонять в обычный сопроцессор – глупо.
В итоге производительность сверхсложного и мощного компьютера не превышала бы обыкновенный суперкомпьютер традиционной архитектуры. В целом система СОК давала бонусы за счет надежности, простоты реализации табличной арифметики и сокращения объема аппаратуры, но Юдицкий не был фанатиком и понимал, что серебряной пулей модулярная арифметика не является. Есть кейсы, в которых она просто не ложится на алгоритмы, несмотря на все ухищрения.
В финале после обсуждений и дискуссий СВЦ решили отказаться от СОК при сохранении общей векторно-модульной схемы машины и пересмотрели проект. Такая гибкость выгодно отличала их от многих советских КБ, которые, найдя однажды более-менее удачное техническое решение, продолжали его фанатично штамповать (как транзисторные версии БЭСМ во всех вариантах и ее же систему команд, крайне успешную на одних задачах и до такой же крайности кривую – на других).
Машину решили делать, естественно, на ИС и в качестве основы взяли самую мощную тогда в СССР эмиттерно-связанную логику серии 100. До того, как ее украли, она называлась Motorola MC10000 (она же MECL – Motorola emitter coupled logic) – серия довольно мощных и быстрых ЭСЛ-микросхем, разработанная в 1962 году (MECL I). Серия насчитывала несколько поколений – I, II, III и 10000, выпущенная в 1971 году. От версии 1968 года она, впрочем, отличалась только номиналами резисторов. Через 7 лет ее осилили скопировать в СССР как ИС100, она предназначалась для самых мощных компьютеров, таких как «Эльбрус».
К сожалению, микросхемы этой серии оказались предельно сложными для Союза и имели огромные проблемы с качеством и стабильностью, чем печально знамениты (об ИС100 мы еще поговорим в части про А-135 и «Эльбрус», в копировании мощных ЭСЛ в СССР черт ногу сломит, и в этой теме нужно разбираться отдельно, она тесно увязана с коммерческими отношениями двух гигантов – Motorola и Fairchild).
На Западе Motorola 10k не была самым популярным выбором строителей суперкомпьютеров, для этих целей чаще всего использовали ЭСЛ от конкурента – компании Fairchild, серию Fairchild F100K (позже у нас ее пытались копировать с опозданием на 10 лет для «Электроника СС БИС» – серия К1500, результат был, ну скажем так – не очень удачный, это тоже предмет отдельного разговора). Именно на F100K (3 микросхемы из 4-х типов использованных – 11C01, F10145, F10415 и только одна MC10009 для схемы выборки адреса, Крэй использовал более дешевую в том месте, где это было некритично) был собран Cray-1.
Великий и ужасный Cray-1, одна из плат его процессора на чипах Fairchild F100K и советский клон Motorola 10k – 100 серия периода освоения (фото https://cdn.britannica.com/, https://en.wikipedia.org/, https://ru-radio-electr.livejournal.com/)
Производство ИС100 осваивалось на «Микроне», на «Венте» в Вильнюсе, на «Светлане» в Ленинграде и на «Интеграле» в Минске. Дальше начались проблемы, состав серии не предусматривал векторных чипов, в результате потребовались дополнительные ИС, отсутствующие в программе выпуска.
Было принято решение подключиться к программе, разработав для неё недостающие микросхемы. И открыта тема «Юкола», в рамках которой был определён состав требующих разработки ИС (их оказалось довольно много – 14, отметим, что полностью векторный Cray был собран, вообще, всего на 4-х типах микросхем, причем в АЛУ использовался лишь один тип) и разработаны их функциональные и принципиальные схемы. Конструктивно-технологическая разработка этих ИС планировалась проводиться совместно с НИИМЭ в рамках подготовки рабочего проекта 41-50.
Эскизный проект ЭВМ был принят госкомиссией с высокой оценкой и с рекомендацией о продолжении работ. Один из идеологов 41-50 Н. М. Воробьев так вспоминает финал событий:
В процессе разработки эскизного проекта мы тесно сотрудничали с полковниками от заказчика по алгоритмам обработки их специфичной информации: по существу, это была совместная работа. Поэтому и мы, и они живо интересовались судьбой проекта. Они были явными сторонниками 41-50 так как, фактически участвуя в разработке проекта, они его отлично знали, внесли в него все нужные им решения и были уверены в результате.
Однако неожиданно для нас наступила длительная, в несколько месяцев, не объясняемая пауза. Заключение договора на разработку технического проекта откладывалось. Что там происходило, мы не знали – ГРУ организация серьезная. Но когда решение, наконец, было принято, полковники специально приехали к нам объяснить ситуацию. Мужики с грустью и извинениями («мы стояли за вас горой, как только могли») сообщили нам печальную весть: продолжения работ не будет.
Принято решение применять адаптированный под их задачи «Эльбрус», но они в возможность адаптации не верят, так как нет никаких рычагов для обеспечения её проведения.
Естественно, и тут не обошлось без Министерства радиопромышленности, так как производить 41-50 планировали на их мощностях.
Финал проекта СВЦ
Так закончился еще один проект СВЦ по созданию суперЭВМ.
О его финале вспоминает представитель гензаказчика в СВЦ А. И. Абрамов:
Однажды меня вызвал главный инженер заказывающего управления МО полковник С. Ф. Середа и поручил подготовить предложения об использовании результатов темы «Лидер». К тому времени решение о прекращении работ по созданию суперЭВМ 41-50 уже было принято. Посовещавшись с нашим куратором в ГУ МО В. М. Капуновым, мы предложили эскизный проект (стопа книг, толщиной более метра) передать в ИТМиВТ для использования в проекте «БЭСМ-10». Что и было сделано.
Отметим, что разработку БЭСМ-10 ИТМиВТ фактически провалил, не сделав по теме ничего работоспособного, школа Лебедева вообще не умела работать с суперкомпьютерными технологиями.
Два их высочайших достижения – это БЭСМ-6 (на которую все не могли так нарадоваться, потому что больше у них ничего не было), производительностью всего около 1–1,5 MIPS и с чрезвычайно уродливой и неудобной системой команд, не говоря уже об отсутствии даже целочисленной арифметики (Лебедев никогда не был выдающимся именно системным архитектором компьютеров), и спорный «Эльбрус» Бурцева, который был явно лучше, чем творения его шефа, но не менее неудобный и далеко не такой производительный, как работы СВЦ. Кроме этого, качество изготовления машин разработки ИТМиВТ было ужасным, об этом мы тоже поговорим далее.
Система 41-50 была последней разработкой суперкомпьютеров в СВЦ.
Три проекта подряд были провалены, причем одним и тем же министерством – 5Э53 по причине того, что созданная специально под алгоритмы ПРО (и принятая военприемкой и ПРОшниками!) машина якобы не способна эти алгоритмы реализовать, «IV» – под предлогом отсутствия денег, и даже страшное ГРУ было вынуждено довольствоваться сунутым им в зубы «Эльбрусом», не в силах продавить через партийных бюрократов 41-50, которая, опять-таки, была ими с восторгом принята и полностью соответствовала их ТЗ.
Последний случай был, вообще, вопиющим – Минрадиопром, по сути, отказал в выпуске компьютера совсем без каких-либо оснований, отбившись от разведчиков, как от надоедливых школьников. Не купим вам красивую машинку, играйте чугунной.
В итоге Юдицкий осознал, что разрабатывать имеет смысл лишь то, что можно произвести на мощностях самого СВЦ – 16-битные миникомпьютеры. Естественно, особых преимуществ использование модулярной арифметики для них не сулило, и проект СОК был полностью свернут уже навсегда.
Существует легенда, приводимая академиком В. М. Амербаевым и известная только с его слов:
В 1970–1971 годах большой интерес к модулярной арифметике проявили банковские структуры США. Им требовались высокопроизводительные средства для высоконадёжных вычислений с самокоррекцией – именно этим и характерна модулярная арифметика. По данным открытой печати (статьи, книги, патенты), они оценили результаты работы И. Я. Акушского и Д. И. Юдицкого как передовые в мире и обратились в МЭП с предложением о закупке модулярных алгоритмов (предложили около 20 млн долларов США). Начавшиеся переговоры были пресечены КГБ.
Об этом же случае, а возможно, и о другом, вспоминает В. С. Линский:
Во время работы в НИИФП–СВЦ в 1966—1970 годах я открыто выражал негативное отношение к СОК, вплоть до обращения в Военно-промышленную комиссию при СМ СССР (ВПК). С моим мнением был ознакомлен В. С. Бурцев, выразившийся в том смысле, что однозначный ответ о СОК преждевременен. На вопрос сотрудников ВПК о том, почему американцы хотят закупить результаты И. Я. Акушского и Д. И. Юдицкого, я ответил, что, по-видимому, это им выгоднее, чем самим проводить исследования в этой области.
На самом деле это довольно странная история, модулярная арифметика могла помочь с банковскими ЭВМ, но главным производителем банковских компьютеров был Burroughs, который опирался на абсолютно иные принципы системной архитектуры. Возможно, это могла бы быть какая-то фирма, пожелавшая свалить монополиста, но не так много серьезных игроков на этом рынке. У мелкой компании не было бы таких денег, крупная, типа IBM, принципиально разрабатывала все сама, да и, опять-таки, была максимально консервативна. Кроме этого, вся информация (ну, кроме алгоритмов ПРО) о СОК и так была в открытой печати, даже без грифа ДСП. Разобраться в ней – не так уж много времени для нескольких хороших математиков.
Ну и вообще, США отлично знали, что СССР очень-очень заинтересован в добыче западной техники всеми способами (от разборки на образец радиол, подаренных частным образом разным дипломатам, до покупки лицензий и прямого воровства), но сам принципиально никакой хайтек не продаст.
Выпуск ЭВМ «Сетунь», например, запретили даже родному ЧССР, хотя чехи умоляли чуть ли не на коленях, обещали огромные гешефты от продажи в Западную Европу и уже готовы были строить линию для производства (хотя есть сильное подозрение, что причины тут были связаны не с политикой, а, скорее, с волшебными словами «распил» и «откат», вполне актуальными и во времена СССР, как мы помним, определенные круги в Чешской компартии давили и их собственные разработки, выкидывая миллионы крон на закупку у французов им самим не нужных мэйнфреймов Bull). Так что переговоры тут изначально были обречены, и глупо было бы этого не понимать.
А. В. Пивоваров вспоминает другой случай:
У Юдицкого был контакт с французской фирмой, не помню её название, которая пожелала купить проект ЭВМ.
Юдицкий пришёл ко мне за разрешением на такую сделку, но я отказал ему по двум причинам.
Во-первых, для выполнения такой сделки необходимо изготовление образца ЭВМ для полной отработки технологии, а сделать-то его было негде.
Во-вторых – зачем нам вооружать французов, тогда – наших потенциальных военных противников? Да если бы я и согласился, нам всё равно бы это не позволили сделать вышестоящие органы.
Эта история уже куда более реалистична, с Францией СССР на удивление много и плодотворно сотрудничал как в области фундаментальной науки, особенно математики, так и прикладной, включая фармацевтику, во Францию, как и в ФРГ, куда чаще и охотнее отпускали наших ученых, обмен техникой, хоть и ограниченный, тоже присутствовал.
По теме СОК Юдицкий опубликовал более 60 монографий и статей, став крупнейшим ее теоретиком, на все узлы и алгоритмы было получено множество патентов, некоторые даже в Германии, Франции, Великобритании, Италии и США, так что абсолютно ясное послание Минрадиопрома «сидите и не высовывайтесь, ничего из того, что вы сделаете, никогда не будет выпущено» привело к серьезному психологическому шоку и огромному разочарованию для всего коллектива СВЦ. Вспомним, сколько времени и сил было потрачено на разработки, сколько переработок, ночных смен, бдений до утра с паяльником и осциллографом, сколько надежд и ожидания, когда разработки будут воплощены в металле…
Три крупных провала подряд, причем не по своей вине – это много для любой научной группы.
В результате научная активность СВЦ упала почти до нуля, пока коллектив восстанавливался от битвы с Минрадиопромом. В итоге тема модулярной арифметики была в СССР полностью свернута, по некоторым источникам зарубежные ученые, пронаблюдавшие это (и не знавшие, естественно, настоящих причин событий), решили, что это от полной бесперспективности всего направления и тоже резко уменьшили интенсивность работ над СОК-машинами.
50-летие модулярной арифметики
В Союзе модулярные компьютеры были забыты напрочь, в России – тем более, до 2005 года, когда исполнилось 50 лет первой публикации Валаха и Свободы на эту тему. Тогда оставшиеся в живых сотрудники СВЦ решили одновременно вспомнить свой вклад в это направление, почтить память всех, кто принимал участие в проектировании модулярных компьютеров, и узнать, осуществились ли какие-то похожие проекты где-то еще?
И инициировали проведение в Зеленограде специальной конференции «50 лет модулярной арифметике». Она прошла очень успешно, участие приняло 49 делегатов, представивших 32 фирмы России, Белоруссии, Казахстана, Украины и США, выступивших с 44 докладами, был выпущен сборник трудов толщиной чуть ли не в тысячу страниц.
В настоящее время варианты модулярной арифметики широко используются в микроконтроллерах карт доступа с высоким уровнем защиты для реализации криптоалгоритмов, по стандарту ISO/IEC 10118-4:1998 (раздел Hash-functions using modular arithmetic). Такие ключи в основном производит STMicroelectronics. Кроме этого, микроконтроллеры для криптографии выпускали или выпускают M-Systems (контроллер SuperMAP), Emosyn LLC (подразделение фирмы ATMI, чип Theseus Platinum), Hifn и другие.
В. М. Амербаев и А. Л. Стемпковский из ИППМ РАН работали в начале 2010-х также над альтернативными вариантами непозиционных систем, например, так называемой логарифметикой, в которой представление чисел мультипликативно – используется пара из бита знака и двоичного логарифма модуля числа. При подобном представлении чисел сильно упрощаются операции деления и умножения, что логично, но усложняется цифровая реализация аддитивных операций – сложения и вычитания. В итоге возникли еще более экзотические гибриды, например, модулярный LG-код. В нем в качестве оснований выбраны простые числа и использовано логарифмическое представление вычетов по каждому простому основанию. С точки зрения аппаратной части, по такой схеме можно строить чрезвычайно эффективные DSP, поскольку LG-код многократно ускоряет одну из основных операций такого процессора, преобразование Фурье.
Кроме этого, серийно модулярные процессоры применялись в системах спецпроцессоров АФК «Вычет-1» и «Вычет-2» (информации по ним найти практически не удалось и неизвестно, что они собой представляли и для чего применялись) и средствах криптографической защиты линий связи – изделия КРИПТОН-4М7 и СЕКМОД-К. По «КРИПТОН» информация скромная, но имеется. Это шифроприставка к телефону, его основой является модулярный 32-х разрядный DSP, реализующий функции шифрования речи и передачи ее со скоростью от 2400–12000 Бод.
В настоящее время в России периодически появляются статьи по модулярным чипам (например, Калмыков И. А., Саркисов А. Б., Яковлева Е. М., Калмыков М. И. Модулярный систолический процессор цифровой обработки сигналов с реконфигурируемой структурой, Вестник Северо-Кавказского федерального университета № 2 (35) / 2013), но довольно вяло, и дальше теоретических разработок дело не продвинулось.
История показала, что СОК является потрясающе удобной для довольно узких применений – отказоустойчивых систем, криптографии с открытым ключом и цифровой обработки сигналов, и не очень удобной – для всех прочих. В таковом качестве ее и используют сейчас за рубежом, тем не менее досадно, что выдающиеся первопроходцы в этой области – советские инженеры, были надолго забыты, а их уникальные труды так и не принесли ни славы, ни пользы их Родине.
Источник: topwar.ru