Ретроспектива технологических стартапов. Z3 — первый релейный компьютер
Ретроспективу технологических статапов я решил начать с удивительной истории создания первого по одной из версий компьютера в современном понимании этого слова.Эта история может показаться увлекательной даже для тех, кто слово стартап считает ругательным.
Z3 был задуман и создан молодым гениальным инженером Ко́нрадом Цу́зе в самое не подходящее для этого время. Он положил начало первой на континентальной Европе фирме, занимавшейся разработкой и продажей компьютеров на коммерческой основе.
В первом стартапе я принял участие на следующий год после окончания института, хотя тогда мы ещё не знали этого модного слова. С тех пор, я в том или ином роде, имел отношение к немалому их количеству. Большинство просуществовали недолго, но случались и успешные. Попытки анализа показали что удачная стратегия стартапа меняется в зависимости от общественно-политической ситуации, в которой он зарождается. Чтобы выбрать лучшую стратегию для сегодняшнего, не будет лишним разобраться каким образом достигался успех в прошлом, а затем попытаться обобщить информацию и выбрать лучший вариант развития на сегодняшний день. Начать я решил с ретроспективы нескольких удачных технологических стартапов, которые показались мне наиболее характерными для своего времени.
Германия, вторая половина 30 годов прошлого столетия. Уже несколько лет у власти Адольф Гитлер. В стране ведутся работы над созданием компьютера. Разработка продолжается не смотря на то, что первая модель оказывается не слишком удачной. С каждой новой моделью устройство становится всё совершенней. Z1, Z2, наконец, в мае 1941 появляется появляется первый работоспособный вариант — Z3. В 1943 году союзникам удаётся уничтожить весь модельный ряд Z1 — Z3, но к этому времени уже уже ведутся работы по созданию гораздо более совершенной модели — Z4. Сборку переносят в тайные проходы шахт, в которых полным ходом идёт разработка сверхсекретной ракетной программы. Ни смотря ни на что, работу над Z4 удаётся закончить буквально в последние дни войны и тайно вывезти компьютер в Швейцарию…
Звучит очень зловеще. Но штампы весьма далеки от истины. Попробуем прояснить как же на самом деле создавался первый электромеханический компьютер и что он из себя представлял.
Совсем без военных конечно не обошлось, они оказали некоторое содействие, но в целом разработка велась скорее вопреки, а не благодаря людям в погонах.
Девочки, как двигатель прогресса
Ко́нрад Эрнст О́тто Цу́зе Konrad Ernst Otto Zuse не смотря на солидно звучащее полное имя родился в семье мелкого почтового чиновника, в 1910 году, в Берлине. С детских лет мальчика тянуло к конструированию. Ещё в школе он собрал действующую модель машины по размену монет и с увлечением занимался урбанистикой — создавал проект города на 37 миллионов жителей. Страсть к бизнесу и большим числам в нём зародилась ещё тогда. Не удивительно, что став юношей он поступил в Берлинский Технический Университет на специальность гражданского строительства. Процесс обучения оказался не таким интересным, как представлялся в детстве. Особенно «доставал» сопромат. Приходилось часами корпеть над однообразными и крайне нудными расчётами, в то время как сверстники проводили время с привлекательными девушками…
Именно тогда, ещё на младших курсах, у него возникла идея автоматизировать вычисления. На первых порах он мечтал создать совершенный калькулятор, однако на последнем курсе захотелось большего.
В 1935 году, по окончанию университета, Конраду удаётся устроиться инженером на Авиационный завод Хеншеля. Казалось бы, что в те годы могло быть интереснее авиации? Но на практике скучным вычислениям пришлось уделять ещё больше времени и в свободное от работы время молодой человек начинает продумывать детальный план устройства, способного облегчить этот процесс.
Представление чисел
Думая над способом наипростейшей реализации вычислений, Конрад пришёл к идее проведения операций над двоичными числами. В то время существовали подходящие и доступные компоненты, обеспечивающие два устойчивых состояния — телефонные реле. Он решил взять их за основу и продумал способы реализации простейших арифметических действий с их помощью.
Далее необходимо было определить каким образом вводить, представлять и хранить числа. Проще говоря, организовать «память» и доступ к ней. Большинство существующих в те времена механических вычислителей обеспечивали ввод данных с помощью системы зубчатых колёс, имевших 10 положений.
Более продвинутые считывали закодированные числа с перфокарт и могли иметь до 20 счётчиков. Ввод новых чисел осуществлялся добавкой перфокарт.
Для того, чтобы расширить диапазон вычислений Конрад решил проводить операции над числами с плавающей запятой в двоичном представлении. Он задумал создать регистры памяти, состоящие из 22 двоичных разрядов. В каждом из них 14 бит отводилось под мантиссу, 7 под степень и 1 под знак.
Однако, возникла ещё одна проблема. Да, вычислителю оперировать с двоичными числами гораздо проще, чем с десятичными, но человеком они воспринимаются с большим трудом, особенно в представлении с плавающей точкой.
Для упрощения работы операторов, было решено вводить цифры исходных данных в десятичном формате, затем автоматически переводить в двоичный и загружать в память. С результатом проводить обратный процесс.
Система памяти
Решить проблему физической реализации памяти оказалось не просто. Электронные реле занимали слишком много места и потребляли немало энергии. Кроме того, самые дешёвые из них стоили более двух марок, что весьма чувствительно било по карману. После длительных поисков подходящего решения Конрад придумал оригинальную альтернативу — механическое устройство на основе металлических штырей. Маленький штырь мог находится слева или справа от наконечника, запоминая ноль, либо единицу. Установка и извлечение чисел производилось с помощью пластин. Отдельные модули памяти могли собираться в матрицу.
Фрагмент устройства «памяти» — всё что осталось от первой модели после бомбёжки
Конрад назвал это «Механической релейной памятью» и в 1936 году получил на неё два патента. Согласно им, подобная память могла быть расширена для хранения тысячи слов. Альтернативная реализация потребовала бы 40 000 реле. Такая память в принципе могла хранить любые типы данных, поэтому в заявке на изобретение он назвал её «комбинационной»
Процессор
Проектирование вычислительной части устройства далось сложнее всего. Конрад долго экспериментировал с различными реализациями. Среди опытных образцов были даже устройства с четырьмя устойчивыми состояниями, но в конце концов таки удалось всё свести к двоичной логике. Некоторое время ушло на то, чтобы решить на какой основе строить вычислитель. Применять телефонные реле либо оригинальное механическое устройство. По его прикидкам должно было потребоваться не менее тысячи реле для построения вычислителя. Оценив стоимость, размеры и потребляемую ими энергию Конрад склонился к механической версии, которая на тот момент показалась ему гораздо более простой в реализации.
Если вы такие умные, то почему же не использовали лампы?
Собирать столь сложное механическое устройство в одиночку было очень не просто, поэтому Конрад решил привлечь к проекту своего близкого друга Хельмута Шрейера Helmul Schreyer Он заканчивал в то время университет по специальности радиоинженер и помогал на кафедре в разработке электромагнитных реле. Его навыки пригодились как нельзя кстати!
Молодые инженеры. Конрад слева, Хельмут справа
Сама идея Хельмуту очень понравилась, но он поинтересовался: «А почему бы в качестве коммутирующих элементов не применить электронные лампы, которые могут обеспечить скорость переключения в десятки тысяч раз большую, чем реле?» Сначала Конрад подумал что это шутка, но выслушав аргументы товарища и пораскинув мозгами нашёл идею очень интересной. Основа памяти, ламповый триггер был изобретён ещё в 1918 году, но вот найти схемотехнические решения для вычисления арифметических операций в 1936 году ещё предстояло.
Знакомые, с которыми они поделились идеей, разделились на два лагеря — одним идея казалась гениальной, другие заявили о полном её неприятии. Плохо было то, что во втором оказались преимущественно специалисты, имевшие опыт работы с электронными лампами. Главным их аргументом была невысокая надёжность ламп. Они считали, что устройство, состоящее более чем из 2000 ламп будет постоянно выходить из строя. Другими нерешаемыми на том этапе проблемами была дороговизна и дефицитность подходящих по параметру ламп. Какие бы ошеломительные возможности такое решение не сулило технически, самостоятельно друзья выполнить его были не в состоянии, но окончательно отказываться от него не хотелось. Поэтому сошлись на том, что начнут строить механический вариант, а Хельмут параллельно будет искать схемотехнические решения для узлов, выполняющих элементарные математические операции. В будущем, имея прототип работающего устройства на механических реле не составит особого труда заменить исполнительные элементы лампами.
К делу же, наконец!
Основополагающие принципы которым должно удовлетворять задуманное устройство:
- вычислительные операции проводятся в двоичной системе;
- машина оперирует числами с плавающей запятой;
- память и вычислитель были выделены в различные блоки;
- программный контроль вычислений
Сегодня они кажутся очевидными, но не так было 80 лет назад. Большинство первых электромеханических компьютеров, появившихся на несколько лет позже, оперировали десятичными числами с фиксированной точкой, что существенно ограничивало диапазон вычислений, даже не смотря на то, что их разрядность была велика.
Проработав в должности инженера всего год, Конрад в 1936 году переходит на полставки, а всё свободное время посвящает созданию программируемой машины. В сборочный цех была превращена переоборудованная гостиница родительского дома.
Хельмут оказал ему неоценимую помощь в ходе сборочных работ. Изначально друзья планировали собрать экспериментальной модель механического вычислителя всего за шесть недель, но на практике как случается почти в любом стартапе времени потребовалось несравненно больше.
Голь на выдумки хитра
Прошло два года напряжённой работы, прежде чем машина наконец стала подавать признаки жизни. Сегодня трудно поверить, что этого монстра собрали два молодых человека в свободное от основных занятий время, на свои скромные средства. Тут нельзя не вспомнить русскую поговорку: «Голь на выдумки хитра».
Машина, располагалась на четырёх сдвинутых вместе письменных столах, которые едва выдерживали её вес — более пятисот килограмм! Она состояла почти из 20 000 элементов.
В отличие от подобных разрабатываемых в этот период времени электромеханических счётных машин, Z1 проводил вычисления над двоичными числами. Причём цифры вводились в десятичной системе с плавающей запятой, а уже внутри машины конвертировались в 22 битные двоичные с помощью механического дешифратора. Ввод данных осуществлялся при помощи клавиатуры, роль которой играла творчески доработанная пишущая машинка. После конвертации входные значения записывались в механическую внутреннюю память. Объём машинной памяти составлял 64 слова. Сердцем машины был «тактовый генератор», который приводился в действие электромотором мощностью около 1 кВт, позаимствованным у пылесоса. Рабочая частота генератора составляла 1 Гц, а скорость стабилизировалась хитроумным механизмом.
Работала машина так: cначала дешифрировались и загружались в память данные. Затем начинала выполняться программа. Она считывалась с бумажной перфоленты и по мере считывания происходило её выполнение. При таком подходе программа должна была быть исключительно линейной, никаких ветвлений не предусматривалось. В заключении вычисленное значение переводилось в десятичный вид и отображалось на ламповом табло.
Победа, но не пиррова ли?
Собранная в абсолютно «антисанитарных» условиях машина работала, но сказать что она не отличалась стабильностью вычислений — ни сказать ничего.
Конрад изначально планировал её как образец для демонстрации возможностей, но даже для этого она не слишком подходила. В этом он убедился пытаясь «поднять» первые инвестиции. Провести даже два раза подряд удачное вычисление на ней удавалось далеко не каждый раз. После очередного сбоя часто приходилось заниматься перенастройкой. Особенно плохо дело обстояло с «процессором», требуемую точность изготовления механических элементов которого в домашних условиях было обеспечить нереально. Заинтересовать подобным образцом инвесторов было крайне сложно, но Конрад не оставлял надежд.
После долгих поисков, ему удалось добиться аудиенции отошедшего от дел владельца производства механических калькуляторов — Курта Паннке, который принял его скорее от скуки. Курт находился в полной уверенности, что вычислительные машины достигли предела своего совершенства, и в ближайшее время не удастся придумать что-то новое в области автоматизации вычислений. Тем не менее, он согласился посетить мастерскую и взглянуть на Z1. И тут Конраду наконец улыбнулась удача. Во время визита доктора Паннке машина умудрилось произвести несколько вычислений подряд без единого сбоя. Доктор так впечатлился её работой, что согласился предоставить семь тысяч рейхсмарок на совершенствование аппарата.
Вскоре Конраду снова улыбнулась удача — друзья помогли приобрести за бесценок списанное телефонное оборудование из которого он извлёк около 800 бывших в употребление реле. Более половины из них казались вполне работоспособными по крайней мере на первый взгляд.
Z2 — два шага назад, один вперёд
Для демонстрации более серьёзным потенциальным инвесторам было необходимо существенно повысить надёжность вычислений. Конрад решает убить сразу двух зайцев -создать упрощённую, но устойчиво работающую модель, с использованием релейного вычислителя. Друзья помогли ему разработать схемы элементарных вычислительных ячеек на основе реле и он снова принялся за работу.
Пришлось полностью демонтировать вычислитель и половину памяти, сократив её до 16 слов. Память и дешифраторы по прежнему остались механическими, но конструкция их была сильно упрощена. Сбои в их работе стали происходить гораздо реже. От вычислений с плавающей точкой также было решено временно отказаться. В новой модели вычислитель оперировал с 16 битными числами и фиксированной точкой. Для увеличения надёжности был усовершенствован считыватель программ — вместо бумаги Конрад использовал 35 миллиметровую фотоплёнку. Мощности двигателя от пылесоса хватило чтобы упрощённая машина заработала в три раза быстрее первого варианта — тактовая частота увеличилась до трёх герц. Z2 была способна выполнять 8 различных инструкций.
Z3. Война как двигатель прогресса?
Z2 заработала в 1939 году. Воодушевлёный Конрад начинает создание третьей модели, которая задумывается уже как инструмент для реальных вычислений. Однако жизнь стала вносить в его планы значительные коррективы. Германия готовится вступить в масштабную войну и ей нужны инженеры для разработки самолётов, о компьютерах высшие военные чины тогда не задумывались. Конрад сменил гражданскую одежду на военный мундир, но по крайней мере не был отправлен на фронт. Всё своё свободное время он по прежнему посвящает созданию третьей модели, но не смотря на то, что ему активно помогают друзья, совмещать разработку с военной службой становится всё сложнее. Заканчиваются деньги, полученные от бизнес-ангела, поиск необходимой комплектации становится всё более сложным делом — слишком много ресурсов поглощает подготовка к войне и даже имея средства, купить необходимые комплектующие становится всё трудней. В этих условиях ничего не оставалось как искать поддержки у военных.
В 1940 году Конрад добивается демонстрации своей модели Z2 в научно-исследовательском институте аэродинамики. Нельзя сказать чтобы он произвёл там фурор, но его вычислитель очень понравился руководителю проекта создания управляемых авиабомб, профессору Тейхманну. Профессор добивается подключения Конрада к своему проекту для автоматизации вычислений в области аэродинамических исследований. Параллельно Конрад получил финансирование и организационную поддержку, необходимую для окончания работ над компьютером Z3. В этом же году он организовал компанию Zuse Apparatebau для производства программируемых машин.
Кроме денег Конрад получил помещение и ассистентов, благодаря чему процесс создания машины удалось значительно ускорить и Z3 был запущен в строй уже весной 1941 года. Его архитектура сильно напоминала модель Z1, но считал он в пять раз быстрее, а главное работал настолько надёжно, что смог использоваться для реальных вычислений, в частности расчёта формы стреловидного крыла.
Количество циклов, затрачиваемых на операцию
Z3 состоял из 2400 реле. 600 из них работало в вычислительном модуле, остальные играли роль памяти размером в 64 слова. Была введена защита результата от переполнения, вывод результатов расчётов производился на перфоленту
Z3 был первым вычислительным устройствам, собранным целиком на электромагнитных реле. Однако споры за обладателя звания первого компьютера ведутся до сих пор. Дело в том, что Z3 хотя и работал по программе, но не поддерживал ни циклов ни условных переходов. Запущенный в строй летом 1944 года MARK — I Гарвардский имел возможность ветвлений, хотя и сильно ограниченную. В то же время, часть операций, например ввод данных, в нём осуществлялся механическим способом.
Z4 война и чудесное спасение
Закончив работу над Z3, Конрад возглавляет в 1941 году уже в секретный проект создания следующего поколения компьютера — Z4.
Параллельно Цузе занимается разработкой специализированных вычислителей и вводит в строй в 1942 году модель S1. Eё последователь S2, заработавший позже, пожалуй, является первым в мире промышленным компьютером. Он в автоматическом порядке собирал данные с нескольких десятков датчиков и производил над ними сложные вычисления. Использовался для построения аэродинамических моделей.
Начиная с 1943 года Берлин начал подвергаться бомбардировкам союзников. Разработка стала осложняться ещё и тем, что постоянно приходилось перевозить оборудование с места на место. Технических специалистов и ассистентов призывали в действующую армию и бросали на фронт. В результате очередного авиационного налёта Z3 и всё, что осталось от Z2 и Z1 к тому времени, было уничтожено. В конце концов, за несколько месяцев до окончания войны, Конрада с парой ассистентов поместили в самое надёжное место — бункер в заброшенных шахтах, где развивалась свехсекретная немецкая ракетная программа.
Условия для работы там были ужасными, но ещё больше его поразило обращение с военнопленными, выполняющими роль неквалифицированной рабочей силы.
В последние дни войны, пользуясь неразберихой, Конрад вместе со своей беременной женой бежит из Берлина на подводе с конной тягой. Под грудой скарба были спрятаны коробки с фрагментами недостроенной модели Z4.
Так он оказывается в маленькой Баварской деревушке Hinterstein, а его недостроенное детище в дальнем углу сарая, спрятанное за паленницей. Это были очень трудные времена. Первое время Конрад зарабатывал на хлеб тем, что изготавливал деревянные памятные гравюры и продавал американским солдатам.
Небольшая ремарка. Изначально вычислительные устройства Конрада имели название V1, V2, V3, V4. V происходило от Versuchsmodell — экспериментальная модель. Но именно такие наименования имели модели ракет, разрабатываемых в шахтах где он немного поработал. Сразу после войны он переименовал всю линейку, отталкиваясь от первой буквы своей фамилии. В этом сыграли роль как морально-этические соображения, так и бизнес стратегия. Конраду не хотелось чтобы его детища лишний раз напоминали о войне.
Z4 как феникс, восставший из пепла
Постепенно жизнь стала налаживаться, но Германии на несколько лет было запрещено заниматься какими-либо собственными разработками. К счастью, удалось восстановить связи с друзьями, успевшими перебраться за границу.
В 1946 году Цузе сумел привлечь венчурный капитал от Швейцарской высшей технической школы и компании IBM. Ему удаётся перебраться в Швейцарию, организовал коммерческую компанию по производству компьютеров «Инженерная служба Цузе в Хопферау» Zuse-Ingenieurbüro Hopferau и продолжить работы над Z4.
К тому времени Z4 уже не был самым передовым устройствам. Появились первые американские ламповые компьютеры, работавшие существенно быстрее. Z4 же был всего на порядок быстрее своего предшественника, да и по структуре его сильно напоминал. Однако, проигрывая в производительности, Z4 имел серьёзные преимущество — он был проще и существенно надёжнее и оказался единственной электронной счётной машиной на территории континентальной Европы, пригодной для тиражирования и коммерческого использования в то не простое время.
В 1948 Конрад показывает свою машину профессору Эдуарду Штифель Eduard Stiefel из компании ETH-Zürich, который осмотрев машину, счел ее вполне пригодной для научных расчетов. Штифеля поразила простота программирования, хорошая точность вычислений и корректная обработка исключений. Z4 оперировал со словами из 32 разрядов, а не 24 как у его предшественника.
Конрад получил 100 000 дойчмарок на доработку компьютера до коммерческого варианта, устраивающего компанию ETH. Это была большая сумму, в то время в Германии средняя зарплата составляла 160 марок.
На создание усовершенствованной модели Z4 ушло 60 000 дойчмарок, а остальное он вложил в развитие собственного бизнеса. Воодушевленный успехом, Конрад основал свою собственную компанию Zuse KG и начал разработку улучшенной версии Z4. По требованию EHT была добавлена возможность условных переходов, инструкции для печати результатов на пишущей машинке Mercedes или перфоленте, запись результатов на перфоленту и другие усовершенствования. Улучшенная модель увидела свет в 1950 году и была способна организовывать циклы и ветвления. Программа по прежнему считывалась с перфоленты и сразу по шагам исполнялась, но была добавлена возможность пропуска следующей инструкции и переход на другой считыватель перфоленты, которых на машине устанавливалось несколько. Это позволяло запускать условные переходы и даже выполнение подпрограмм, если лента на считывателе была закольцована. Тактовая частота компьютера была увеличена до 40 Гц. Память как и в первой модели была собрана на «механических реле», ранее запатентованных Конрадом. Это позволило сократить количество применяемых реле до 2500 и соответственно снизить стоимость и энергопотребление машины, которое составило 4 КВт.
Конрад создал успешный бизнес, было продано и запущено в эксплуатацию несколько десятков компьютеров модели серии Z4. Они оказались настолько надёжны, что их оставляли работающими на ночь без присмотра. Фирма динамично развивалась, появлялись новые, иногда революционные модели, которые внесли большой вклад в развитие компьютерных технологий. Но это уже совсем другая история.
Вошли в историю
Немцы ценят свою историю. Все три варианта кроме явно демонстрационной модели Z2 были тщательно восстановлены что характерно в основном на частные деньги и ныне экспонируются в музеях Германии.
В Советском союзе было не меньше достижений в области развития компьютеров. Мы начали развивать эту отрасль с заметным отставанием, но быстро нагнали «западных партнёров» и на определённом этапе имели прорывные разработки и просто модели с интересными решениями и историей создания. Однако, единственной известной мне коллекцией существенных размеров, посвящённой старой компьютерной технике, располагает Политехнический музей в Москве. Мне кажется несправедливым что страна, уделяющая столько места «духовным скрепам», на деле безразлична к истории своих достижений в науке и технике. Не войной единой жил СССР!
Сегодня в нашей стране немало миллиардеров, в том числе «не юзающих, а развивающих интернет», но энтузиасты, с огромным трудом и за свои деньги собравшие коллекцию миниЭВМ в Питере, не могут найти для её экспозиции подходящего помещения, что уж тут говорить о воссоздании разрушенных экземпляров! Что-то не так в нашем королевстве.
Погружаясь в тему глубже, я столкнулся с большим количеством ляпов и противоречий в русскоязычных материалах. После вот этого шедевра моё терпение лопнуло:
кстати, на этой картинке отлично можно рассмотреть устройство механической памяти Z1, видны «пластины» и «штыри», а также как она собирается в пакеты
Горе переводчик увидев слово capacity решил, что речь идёт не о ёмкости читай размере памяти, а о том, что она изготовлена на основе конденсаторов и творчески додумал историю про стеклянные и металлические пластины. Затем этот очевидный ляп прокопипастили во многие другие русскоязычные статьи. После этого, я перешёл на англоязычные источники, но и в них встречались противоречия и недоговорки. Я очень старался восстановить хронологию событий, но мог немного «накосячить» в самых тёмных страницах этой истории, которые касаются последних месяцев войны.
Сумевших дочитать статью до конца, прошу принять участие в опросе, результаты которого мне очень интересны. Основная тема — способно ли тоталитарное государство не просто осуществить прорыв в определённом направлении науки и техники, а устойчиво удерживать свои позиции на высочайшем уровне.
Если позволит время, в следующей статье опять же о компьютерных стартапах эпохи конца восьмидесятых и конца девяностых, но уже из личного опыта.