В феврале 1977 года, во втором выпуске журнала с говорящим названием «Байт» было опубликовано письмо некоего Вернера Бухгольца, который приоткрыл тайну появления этого термина. Почему? Потому что именно он стоял у его основ и вспомнил, что первое применение термина было в далёком 1955 году, в первые дни разработки IBM 7030 Stretch. Через год из многих вариантов «стандартным» стал восьмибитный байт, но эта информация содержалась во внутренних документах для IBM 7030 Stretch и в статье «система связей», которая предназначалась для внутреннего пользования. Именно Вернер решил использовать написание byte, чтобы не допустить случайной путаницы с bit. Лишь в июне 1959 года, в статье «Обработка данных по частям», термин официально «родился» во всем привычном значении и «ввёл» Вернера Бухгольца в историю информационных технологий. Ключевую роль в этом сыграл успех и провал суперкомпьютера Stretсh.
За скромной формулировкой «человек, который ввёл в оборот слово байт» скрывается жизнь одного из пионеров информационных технологий, выжившего лишь чудом и собственными руками строившего фундамент для современного компьютерного будущего. Он участвовал в разработке суперкомпьютера IBM 7030 Stretch – первого суперкомпьютера на транзисторах. Именно под редакцией Вернера вышла книга об этом компьютере и процессе его создания. Про Бухгольца и «его» компьютеры мы и будем говорить сегодня. По традиции предлагаем вам не только текстовый вариант статьи, но и подкаст.
Вернер Бухгольц – достаточно типичный немецко-американский учёный. Типичен он своим происхождением. Его родители, Юлиус и Элиза Бухгольц (Хельвиц), были немецкими евреями родом из земли Липпе. В 1936 году, ровно за 20 лет до того, как сын этих людей ввёл в оборот понятие «байта», они начала своё бегство от национализма. Для двух сыновей – Вернера и Карла Хельмута (старший брат) – бегство закончилось относительно успешно, хоть братья и направились в разные страны, разными путями, будучи уже достаточно взрослыми людьми. Вернера судьба привела в Англию (как и маленькую девочку, которой предстоит стать Дамой Стив Ширли, пионером английского IT), а Карл сразу направился в США. Их родители спастись не смогли. 1941 год – депортация в Лодшское гетто. Отец протянул там меньше года. А его жена была переведена в печально известный Хелмно и погибла там в 1944 году, став одной из последних жертв этого места. Не осталось даже захоронений, лишь два «камня преткновения», мемориала Гюнтера Демнига в виде куба в городской брусчатке…
В 1940-м году Вернер был студентом и вместе с большой студенческой группой перебрался в Англию, откуда потом был интернирован в Канаду. Там при поддержке местной еврейской общины поступил в университет Торонто и в процессе учёбы перебрался в Калифорнийский технологический университет в США, который и закончил с дипломом инженера-электрика.
В 1949 году он был нанят в город Покипси фирмой IBM, с которой связана вся его профессиональная карьера, в фирме и городе он проведёт следующие 40 лет и доживёт до конца своих дней. Здесь он занимался разработкой электронного компьютера IBM 701, а затем проектом Stretch. В 1954 году он стал гражданином США. Вернер не оставил мемуаров или сборников воспоминаний, он не давал объёмных интервью, и информация о его деятельности была бы просто до отвратительного скудной, если бы он не являлся главным редактором книги «Planning a Computer System: Project Stretch» [оригинал книги по ссылке. В сети есть упоминания о русском переводе книги, но у автора доступа к таковому нет], вышедшей в 1962 году. Компьютер IBM 7030 Stretch и его идейные продолжения стали вехой карьеры этого уважаемого джентльмена.
Разработчики не мелочились, позже в предисловии к изданию будет сказано: «Эта книга представляет отчёт о, вероятно, первой действительно всеобъемлющей попытке проектирования совершенно нового компьютера». В этой ситуации под «новым» подразумевался такой, который превышал все реальные требования пользователей и учёных. Планировался научный и практический прорыв, однозначный переизбыток мощностей и возможностей. Понимали создатели и то, что они не могут полностью предсказать, как покажет себя это чудо техники при его практической реализации, это был достаточно смелый эксперимент.
Нельзя забывать и о том, что весь компьютерный, сетевой и информационный рынок в США — это рынок денег. Технологии двигались перспективой не просто денег, а денег огромных. Старт проекту Stretch дал, сам того не подозревая, Эдвард Теллер, один из «отцов водородной бомбы», который, представляя радиационную лабораторию Калифорнийского университета [в настоящее время – Национальная лаборатория Лоуренса в Ливерморе], заказал разработку суперкомпьютера. IBM пыталась поучаствовать в конкурсе, но проиграла Eckert–Mauchly Computer Corporation, которые для Эдварда создадут UNIVAC LARC. Изначальный заказ должен был уложиться примерно в 2,5 млн долларов, компьютер создадут к 1960 году.
IBM не могла остаться без своего куска денежно-информационного пирога и начала разрабатывать свой суперкомпьютер под нужны Лос-Аламосской национальной лаборатории [Los Alamos National Laboratory], также завязанной на атомные технологии. Его ожидаемая стоимость была выше 13 миллионов долларов. Из опасения, что и эта лаборатория закажет LARC, IBM пошла на подлог. Представительство компании пообещало, что их «флагман своего времени», IBM 704, будет превзойдён в 100 раз. Это был план на научный прорыв. Для создания компьютера требовался совершенно новый уровень технологического развития: новые транзисторы, ядра, логические функции… Перед новой разработкой ставились невероятные задачи, планировалось установление нового стандарта производительности, дающего старт следующему научно-практическому рывку. Такая философия нашла своё отражение даже в названии – «Project Stretch». В 1956 году был заключён контракт для создания суперкомпьютера до 1960 года.
На смотря на то, что главный герой этого материала Веренер Бухгольц, необходимо сделать остановку на персоналиях, которые работали вместе с ним над Stretch.
Идейную часть ранее разработали Вернер Бухгольц и Стивен Даннвел. Разработку компьютера именно на транзисторах инициировал ещё в 1954 году Натаниэль Ротчестр, который был архитектором IBM 701. Когда он убеждал Джина Амдала начать разработку в качестве аргументов звучало: «контракт на разработку этого компьютера будет либо из Ливермора, либо из Лос-Аламоса». Натаниэль в очередной раз показал свой навык «видения компьютерного будущего». Джин Амдал, который должен был руководить проектом, «своё» место не получил, проект возглавил Данвелл, а Амдал покинул IBM в 1955 году. Правда, всего на 5 лет, в 1960-м он вернётся, чтобы возглавить работы над IBM System/360, но к истории этого великого человека мы когда-то вернёмся отдельно.
Ключевые идеи архитектуры разработали Роберт Блоск [Robert Blosk] и Геррит Блау [Gerrit Blaauw]. Инновационная система прерываний и индексация были разработаны под их руководством. Геррит станет известен во время своей работы над IBM System/360. Блоск руководил группой разработчиков индексирующего и командного блока Stretch, который по сути был отдельным компьютером.
Специально для работы над Stretch был нанят Джим Поммеран [James Herbert Pomerene]. Позже, Джим станет проектировщиком системы Harvest, дешифровщика на базе Stretch, который создавался для агентства национальной безопасности. До этого Джимми работал под руководством Фон Неймана над IAS.
Одну из прорывных технологий, концепцию предпросмотра, придумал Джин Амдал, а развивали её Джон Кук [John Cocke] и Харвуд Кольски [Harwood Kolsky]. Очень кратко, их разработку можно описать следующим образом. Они создали устройство согласования скорости, вставленное между арифметическим блоком и памятью. Арифметический блок получает операнд не напрямую из общей памяти устройства, а из специального буфера. Туда же, в этот буфер, будет помещён результат вычисления. Арифметический блок в этот момент уже будет выполнять следующую операцию и не будет иметь прямого контакта с основной памятью устройства, все затрачивающие время процессы, связанные с вызовом операнда, берёт на себя именно опережающее устройство. Тут мы несколько поторопились с техническим погружением, однако, разработка этой технологии скажется не только на этом конкретно компьютере, но и на всей индустрии в целом.
Цель по производительности «в 100 раз быстрее IBM 704» изначально была прописана не совсем корректно, не было понятно, как реально оценивать прирост производительности. В зависимости от того, как оценивать результат, можно было считать цель как невыполненной, так и перевыполненной. Специально для Stretсh была разработана стандартная модульная система [SMS – Standard Modular System]. Разработка этой системы была не менее перспективной (в планах), чем сам суперкомпьютер. IBM рассчитывала, что набор из нескольких сотен стандартных типов карт сможет удовлетворить любые потребности для проектирования и построения компьютеров. Однако в самое ближайшие время количество типов карт выросло с нескольких сотен до нескольких тысяч. В них применялись совершенно различные схемы, использовалась резисторно-транзисторная, эмиттерно-связанная, диодно-транзисторная логика.
Эмиттерно-связанную логику разработал сотрудник IBM Хэнон Йорк, а схемы с её использованием создавал Роберт Хенле, человек, который внёс существенный вклад в изучение полупроводников, но не стал публичной персоной. Именно в рамках Stretсh впервые применена ECL (эмиттерно-связанная логика), в дальнейшем схемы ECL станут основой для суперкомпьютеров до 1980-х гг. Внутри IBM настолько активно продавливалось использование транзисторных технологий, что Том Уотсон-младший, сын создателя IBM и её руководитель в интересующий нас период, установил конкретную дату, после которой ламповые технологии в IBM были просто запрещены.
Планируя действительно универсальный компьютер, специалисты из IBM ориентировались на нужды научных исследований, обработки бизнес-данных и различных крупных задач для военных целей. Формально, планируемый суперкомпьютер для каждой из названных сфер мог быть заменён техникой специального назначения, но Project Stretch имел 4 существенных преимущества:
Задачи для пользователя могли меняться и расширяться даже в процессе решения конкретной производственной проблемы, дорогая специализированная машина могла оказаться неэффективной через несколько лет, в отличие от разрабатываемого универсального суперкомпьютера.
При изначально заложенном векторе на универсальность появляется возможность для модификации под конкретные задачи, причём эта модификация не будет сложной задачей.
Специфика компьютеров этого периода подразумевала очень большие затраты на разработку техники под конкретные нужды, суперкомпьютер хоть и включал некоторое «ненужное» оборудование, но в итоге обходился покупателю дешевле, чем разработка отдельного компьютера под конкретные задачи.
Четвёртое преимущество требует понимания того, что в 1950–1960-е гг. квалифицированных работников, которые могли создавать настолько сложную технику, было мало. Разрабатывать одновременно большое количество высокопроизводительных машин было просто некому, их создателей, при большом желании, можно перечислить пофамильно. И для удовлетворения спроса логично было создать одну общую машину, которую можно модернизировать под конкретные потребности.
Эти идеи были разработаны совместно Вернером Бухгольцом и Стивеном Данвеллом изначально, ещё до разработки конкретного компьютера.
Использование новых транзисторных технологий обеспечивало не только существенный рост скорости, но и новый уровень надёжности, совершенно недостижимый для ламповой технологии, позволяющий многократно усложнить строящуюся машину.
Разработка Stretch может быть названа авантюрной, ведь и разработка используемых в нём технологий, и проектирование компьютера осуществлялись одновременно. Новые схемы давали прирост в скорости примерно в 10–20 раз, новая память в шесть раз превосходила используемую ранее. Именно память существенно ограничивала создателей и повлияла на целый ряд технических решений, не применяемых ранее IBM. Она позволяла использовать шесть потоков одновременно и, фактически, была быстрее процессора, повышая быстродействие системы в целом, чуть подробнее на этом остановимся позже. В программах для этого компьютера стали использовать восьмибитный байт, хотя встречались и исключения, о которых будет вспоминать Вернер Бухгольц. Используемая разрядность машинных слов (8/32/64 бита) тоже станет в дальнейшем стандартом. Ещё одним новаторским и, в некотором смысле, «опасным» шагом, стало предоставление пользователям полного программируемого доступа к оборудованию. Подразумевалось, что работать с новым суперкомпьютером будут высококвалифицированные сотрудники, и технике не требуется «защита от дурака». Фактически пользователю предоставляли возможность использовать имеющиеся ресурсы и технологии компьютера любым физически возможным образом.
Одним из наиболее прогрессивных механизмов стала многозадачность, использование разделения времени. Для того периода технология была прорывной. Только в 1957 году Джон Маккарти начал первый проект по реализации аналогичной системы на IBM 704. Вернер Бухгольц в книге 1962 года напишет о данной технологии: «Эта ныне известная (но еще неиспользованная) концепция была новой в 1956 году и рассматривалась с подозрением». Однако разделение времени было реализовано с прицелом на предстоящие задачи.
Многозадачность стала одной из функцией, которая позволяет называть этот проект по-настоящему прорывным в техническом плане. Она, вместе с существенным ускорением вычислительных задач, позволила перейти на отображение результатов конкретных операций в режиме онлайн, вместо целесообразного вывода результатов в режиме офлайн в компьютерах, применяемых ранее. Одной из причин подобного перехода выступила потребность в минимизации рутинного вмешательства оператора, который тормозил работу компьютера.
Многозадачность связана со спецификой работы центрального процессора. Он сам состоял из ряда блоков: блока инструкций, блока опережающего просмотра, параллельного и последовательного арифметических блоков. Все они могли работать одновременно. Логически, процессор работал как единое скоординированное устройство на последовательности инструкций под единым управлением. Когда проектировался центральный процессор, особый акцент делался на то, чтобы пользователь никак не пересекался с тонкостями операций непосредственно внутри этой сложной системы. При этом блок инструкций можно назвать отдельным «маленьким компьютером», он имел свои собственные инструкции для выполнения, свою собственную небольшую память для хранения индексных слов и собственный арифметический блок.
Сама сборка центрального процессора также занимательна. Использовались одноконтурные и двухконтурные платы. В системе использовалось примерно 4000 двойных пат и 18000 одноконтурных карт. Всего использовалось примерно 170000 транзисторов. Они собирались в 2 затвора, которые становились одной рамой. Перед вами рама в закрытом состоянии.
Для распределения питания по каждому ряду плат использовалась ламинированная медная пластина. Правила электробезопасности таковы, что одножильный провод использовался только до 60 сантиметров в длину, витая пара могла доходить до 90 сантиметров, нетерминированный коаксиальный кабель – до 150 сантиметров и терминированный коаксиальный кабель – длинной до 30 метров (данные переведены с футов), ввиду чего снабжение машины электричеством – задача особой сложности. Для уменьшения проблем с распределением и регулированием мощности в каждой рамке установлен специально разработанный блок питания мощностью 2 кВт. Правильное применение всех проводов и вся конструкция панели были рассчитаны на компьютере. Центральный процессор состоял из 18 «шкафов», соединённых в единую структуру.
Блок шины памяти координировал весь трафик между различными блоками памяти и частями центрального процессора.
Память у данного компьютера представляют отдельный интерес. Использовалась память на магнитных сердечниках, она же ферритовая память. В суперкомпьютере применялись высокоскоростные дисковые блоки, которые вмещали 2 миллионов слов. Подобных устройств можно было подключить несколько, как писал Вернер Бухгольц.
Для этих дисковых блоков была характерна крайне высокая скорость считывания/записи – 8 миллионов бит в секунду по 1 каналу, это в 90 раз больше, чем у магнитной ленты IBM 727 (а она производилась аж до 1971 года). Несколько блоков памяти в системе 7030 не считаются отдельными устройствами, они ведут себя как один большой блок с более высокой скоростью. Доступ к любому месту любого дискового устройства требовал порядка 150 миллисекунд. Блоки помещались в алюминиевый корпус, а затем в масло, которое обеспечивало стабильную температуру. Данный тип памяти не был новой разработкой IBM, более того, в своё время IBM за её использование без покупки патента получила судебный иск, заплатив в итоге владельцу 500 000 долларов за патент.
Нельзя не уделить внимания и разным подходам к байту. Не сразу стал использоваться 8-битный байт, было ещё много вариантов, и 6-битный байт и 12-битный байт, были и другие варианты для совместимости с кодом, используемым в некоторых образцах оборудования, однако эти идеи были отклонены, поскольку преимущества частичной совместимости оказались недостаточными для того, чтобы компенсировать недостатки.
Вернер Бухгольц в главе 6 разделе 5 своей книги даёт достаточно подробное объяснение, почему был выбран именно 8-битный байт:
Полный охват в 256 символов был сочтён достаточным для подавляющего большинства возможных применений.
В рамках этого охвата один символ представляется одним байтом, чтобы длина любой отдельной записи не зависела от совпадения символов в этой записи.
8-битные байты эффективно экономят память диска.
При работе с числами десятичную цифру можно представить всего 4 битами, и два таких 4-битных байта можно упаковать в один 8-битный. И хотя подобное упаковывание численных данных не представляет особой значимости, это распространённая практика, позволяющая увеличить скорость и эффективность хранилища. Строго говоря, 4-битные байты относятся к другому коду, но простота 4- и 8-битной схемы в сравнении, например, с комбинацией 4 и 6 бит ведёт к более простому устройству машины и логики адресации.
Размеры байтов в 4 и 8 бит, являясь степенью 2, позволяют разработчику компьютеров задействовать мощные возможности двоичной адресации и индексации вплоть до уровня бит» (более подробно об этом можно прочитать в главах 4 и 5 книги, оригинал книги прикреплён в начале текста).
Несмотря на то, что различные размеры байта рассматривались для совместимости, проблем в использовании периферийного оборудования у суперкомпьютера не было. Можно было подключать одновременно значительное количество устройств: считыватели и перфораторы карт, принтеры, магнитные ленты, пульты оператора, станции запросов на пишущих машинках. В конструкцию коммутатора была заложена возможность добавления до 64 дополнительных каналов, работающих одновременно (со значительным снижением скорости на каждый канал) для включения суперкомпьютера в большую сеть низкоскоростных устройств.
В целом IBM 7030 Stretch одну из своих задач выполнил, это был действительно «прорывной» компьютер для своего времени. Он мог запускать 9 различных программ одновременно. Это действительно был самый быстрый компьютер в мире и такое звание он носил до 1964 года, пока его не обогнал Control Data Corporation 6600. Вполне возможно, что компьютер был бы быстрее, но за время своей разработки он прошёл через ряд сокращений бюджета, которые вылились в уменьшение количества транзисторов на четверть.
Однако, IBM 7030 Stretch часто нередко называют «провальным», а Стивен Данвелл, человек, который руководил созданием компьютера, успел хлебнуть критики сполна. Дело в том, что IBM проиграли собственным обещаниям. Stretch оказался всего в 30–40 раз быстрее предыдущего флагмана IBM, вместо обещанных «более чем в 100 раз». Из-за этого цена компьютера уменьшилась с 13,5 млн долларов до 7,8 млн долларов, и компьютер был откровенно убыточным, всего было продано 9 компьютеров тем организациям, отказать которым было уже нельзя. Один из них в наше время стоит в музее компьютерной истории в Маунтин-Вью, Калифорния, он проработал с даты поставки до 1980-го года в университете Бригама Янга. Удивителен тот факт, что Национальная лаборатория Лоуренса в Ливерморе**, которая купила в своё время UNIVAC LARC, также приобрела IBM Stretch, ведь он был лучше имеющегося там суперкомпьютера примерно в 2 раза.
**в русскоязычном информационном пространстве иногда возникает путаница. Радиационная лаборатория Калифорнийского университета, Ливерморское отделение, которое в дальнейшем станет Национальной лабораторией Лоуренса в Ливерморе изначально была филиалом радиационной лаборатории Калифорнийского университета в Беркли, в дальнейшем, ставшей Национальной лабораторией Лоуренса в Беркли.
В краткосрочной перспективе компьютер, при желании, мог быть назван провальным, а в долгий срок именно технические разработки Stretch привели к гегемонии IBM. В компьютерной структуре, схемах, основных хранилищах, защите памяти и областях ввода/вывода устройств и многих других аспектах сверх успешной системы IBM System/360 можно увидеть наработки Stretch. Не просто так Стивен Данвелл в 1966 году стал лауреатом «IBM Fellow» – высшей награды IBM.
Наш герой, Веренр Бухгольц, столь существенной награды не получил. Однако в 1990 году IEEE [институт инженеров электротехники и электроники] признал Вернера «пионером компьютерных технологий». Это самая престижная награда общества, Вернер Бухгольц стал в один ряд с Деннисом Макалистэйром Ритчи и Кеннетом Томпсоном, Джоном Атанасовым, Джоном Маккарти, Марвином Мински, Сергеем Лебедевым и многими другими очень достойными учёными, каждый из которых в медийном пространстве существенно известнее Вернера Бухгольца.
Вернер женился на Анне Фрэнсис Одор, которая преподавала немецкий язык в колледже Вассар, занималась политической деятельностью. Вернер обладал определённым авторитетом, т.к. именно при его поддержке Анна смогла добиться ряда политических успехов.
В семье было двое детей, однако, судя по всему, лишь один был общим – Джон, он погиб в автокатастрофе в 1975 году. Шам Ранг Сингх Халса жив до сих пор, у Вернера осталось двое внуков.
По религиозным убеждениям Вернер был христианином-квакером. После смерти жены он жил в доме престарелых при местной общине. «Больших» похорон по воле самого Вернера не проводилось. Если кто-то хотел почтить его память, подарки предложено было направлять именно в эту общину.
Вернер никогда не считал введение термина «байт» своим серьёзным достижением и этим не гордился. Однако трагедия реальности такова, что сейчас о нём практически ничего не известно, кроме той вещи, которую он не считал значимой. Некоторые ремарки и отступления в книге, главным редактором которой он был и главы к которой самостоятельно писал, могут совсем немного приоткрыть нам историю личности этого, без сомнения, талантливого инженера. В немецкоязычной литературе его часто сравнивают с Конрадом Цузе, создателем первого высокоуровневого языка программирования. А остальная его жизнь, скорее всего, навсегда останется для нас секретом.
P.S. Подробной и систематизированной биографии Вернера Бухгольца в настоящее время, судя по всему, физически нет. Если в этом меня поправят – буду рад.
IBM Stretch повезло больше. Доцент университета Клемсона Mark Smotherman [ссылка на его страницу] опубликовал очень подробное, скрупулёзное исследование истории Stretch с существенной библиографией. Не все приведённые там ссылки работают, но, вместе с библиографией с сайта Эрика Смита они, скорее всего, удовлетворят любые запросы людей, которые решат погрузится в историю суперкомпьютера.
Новости, обзоры продуктов и конкурсы от команды Timeweb.Cloud — в нашем Telegram-канале ↩