Компьютер Kenbak-1: поле одного воина
АрхивСтатьиПервый персональный компьютер работал на механических реле, имел 256 байт памяти, а ввод-вывод осуществлялся через перфокарты.
Когда произносится фраза "первый в мире персональный компьютер", вокруг неё выстраиваются десятки претендентов, которые документально готовы отстаивать право примерить её на себя.
Хроники компьютерной индустрии именуют первым персональным и напоминающий холодильник PDP-8, стоивший как небольшой легковой автомобиль, и пресловутый "пустой ящик" Altair 8800, благодаря которому компания Microsoft добралась до своего финансового Эвереста. Даже первенец Apple, собранный в "гаражном кооперативе" двух Стивов, зачастую называют первым ПК. О юридически закреплённом имени Personal Computer, которое урвали в IBM, выпустив в начале восьмидесятых IBM 5150, и говорить не приходится. Ведь нарицательное имя "персоналка" появилось благодаря логотипу IBM PC Compatible.
Покопавшись в истории вычислительной техники, можно отыскать ещё десяток претендентов на звание "первого персонального". И что удивительно, все они действительно достойны этого звания! Ведь период с середины шестидесятых до середины восьмидесятых в зарождающейся IT-индустрии напоминает эпоху золотой лихорадки, когда каждый энтузиаст-старатель, усердно трудившийся на компьютерном Клондайке, мог изобрести настоящий самородок. Именно эта россыпь сверкающих идей и создала нынешний мир персональных вычислений.
Слово "персональный" может значительно глубже отражать дух изобретательства. Персональным можно назвать проект, которому человек целеустремлённый дарит всю свою творческую энергию. А ещё "персональный" - это нечто глубоко личное, то, что люди проносят в себе через всю свою жизнь.
Именно так стоит охарактеризовать компьютер Kenbak-1 - устройство, которому крупнейшие компьютерные музеи отдают право именоваться "первым персональным".
И не только потому, что эта вычислительная машина одной из первых вышла на рынок персональной вычислительной техники. Kenbak-1 - настоящий "спектакль одного актёра" - проект всей жизни талантливого инженера Джона Бланкенбейкера.
1949 год. Рождение идеи
Идея, благодаря которой появился Kenbak-1, была продуктом... лени выпускника Орегонского государственного колледжа Джона Бланкенбейкера, который трудился ассистентом в местной лаборатории физики. В общем-то вполне обычное явление. Трудоёмкие расчёты, требовавшие многочасовых манипуляций с логарифмической линейкой, заставили начинающего физика задуматься об автоматизации этих рутинных операций. Однажды в одном из номеров Popular Science Бланкенбейкер читает о компьютерах-вычислителях размером с баскетбольную площадку, состоящих из десятков тысяч ламп, с лёгкостью "разгибающих" любые логарифмы. Вычислитель - это было именно то, что нужно! И неважно, сколько ламп у него внутри. Важно то, что в основе всех вычислений лежат всего два числа: ноль и единица.
Физик Бланкенбейкер с головой погружается в премудрости булевой алгебры, попутно решая инженерную проблему разработки аналога ламповых ЭВМ на основе механических реле. К началу пятидесятых инженер понимает, что придуманный им релейный компьютер вполне реализуем, но только не на зарплату лаборанта. А ещё Бланкенбейкер серьезно заболевает компьютерами и начинает интересоваться их возможностями при любом удобном случае.
В 1951 году один из таких счастливых случаев забрасывает его в Национальное бюро по стандартизации (NBS - National Bureau of Standarts), в котором в то время был установлен компьютер SEAС (Standarts Eastern Automatic Computer). Удача была на самом деле практически нереальная, поскольку на четыре доступных места операторов SEAC претендовало больше сотни человек.
Тогда Бланкенбейкер и увидел внушительный вычислитель, который круглосуточно был занят расчётами задач для различных государственных структур. Обычному человеку с его обычными задачами никогда не светило воспользоваться мощью SEAC. Впрочем, иногда на SEAC всё же можно было попрограммировать свободно. Например, во время грозы, когда работа компьютера считалась не особенно надёжной. Именно под раскаты грома Джон Бланкенбейкер и написал свою первую программу. Прекрасно работающий во время грозы код намертво заклинивал ламповые триоды SEAC при солнечной погоде, заставляя недоумевать остальных техников. Этот курьёз Бланкенбейкер запомнил на всю жизнь. А ещё опыт работы с SEAC сформировал у инженера простую мысль: по-настоящему хороший компьютер должен быть доступным любому человеку.
1952 год. Единственный триггер
Окончив в 1952 году колледж, Бланкенбейкер поступает на работу в авиационный концерн знаменитого Говарда Хьюза. Увлечённость компьютерами привела его в тогдашний IT-отдел, разрабатывающий табуляторы - специализированные железки, производящие бизнес-расчёты.
Начальник, под руководством которого трудился Бланкенбейкер, был помешан на оптимизации. Любимая присказка босса гласила о том, что каждый триггер, который инженер добавляет в схему табулятора, увеличивает его стоимость на пятьсот долларов.
Может, эта начальственная присказка, а может, просто неуёмный изобретательский пыл Бланкенбейкера приводит его к мысли о том, что идеальный компьютер может состоять всего из одного триггера. При условии, что он будет оборудован хранилищем данных, или, попросту, памятью. Свою идею молодой инженер описывает в статье "Логически программируемые компьютеры" и публикует в специализированном журнале Института радиоинженеров (Institute of Radio Engeneers) - прародителя знаменитого института IEEE (Institute of Electrical and Electronics Engineers), занимающегося ныне вопросами стандартизации в области электроники и электротехники.
Сам Бланкенбейкер вспоминает об этом времени так: "С идеей одного триггера и вдолбленной в меня мыслью моего босса об удорожании устройства на пятьсот долларов, при добавлении в него одного логического элемента, я размышлял о компьютере, который бы стоил не дороже пятисот долларов. Это стало моей навязчивой идеей".
1970 год. Рождение Kenbak-1
К реальному воплощению своей идеи фикс Бланкенбейкер приступает только осенью 1970 года, когда волею судеб временно становится безработным. Следуя давней изобретательской традиции, он располагается в гараже своего дома, разрабатывает вначале схему вычислителя, а затем и разводку печатной платы для него.
Травлением дорожек материнской платы для Kenbak-1 Бланкенбейкер занимался лично
Изобретатель не ставит перед собой грандиозных задач. Основными критериями, которыми он руководствуется при проектировании своего компьютера, являются низкая цена и простота освоения, позволяющая осилить мудрёную науку программирования любому желающему. Он прекрасно осознавал, что его детище никогда не сможет состязаться в скорости работы с настоящими мейнфреймами. Но этого и не нужно. Главное, чтобы принципы их работы совпадали. В этом смысле в основу своего компьютера Бланкенбейкер положил идею вычислителя фон Неймана с хранимой в памяти программой.
Стремясь к максимальной экономии, изобретатель лишает свой компьютер дорогостоящих устройств ввода-вывода. Ввод данных он реализует на переключателях, а в качестве устройства вывода использует линейку лампочек. Основной модуль вычислителя был сделан на транзисторно-транзисторной логике (TTL), представленной тогдашней новинкой - мелкомасштабными интегральными схемами. Фактически Бланкенбейкеру удалось реализовать TTL-вариант центрального процессора. На календаре был 1970 год, и до появления первого микропроцессора Intel 4004 оставался целый год. Кстати говоря, примерно в это же время на базе TTL свой игровой вычислитель создает другой талантливый изобретатель - Ральф Баер.
Аналог микропроцессора в Kenbak-1 был реализован на 132 элементах TTL
В 1971 году печатная плата для компьютера Бланкенбейкера была готова. Суммарная стоимость всех компонентов не превышала ста пятидесяти долларов - беспрецедентно мало, учитывая, что самый доступный компьютер в то время стоил несколько тысяч.
Технические характеристики гаражной ЭВМ были более чем скромными. TTL-эквивалент процессора обеспечивал скорость вычислений, соответствующую работе микропроцессора с тактовой частотой один мегагерц, а оперативная память составляла всего 256 байт и была реализована на двух регистрах сдвига, хранящих по 1024 бита каждый. Всего на материнской плате размещалось 132 TTL-элемента, для работы которых использовалось питание пять и двенадцать вольт. Чтобы регистры сдвига - самый горячий элемент компьютера - не перегревались, напротив них был установлен небольшой вентилятор.
Процессорный модуль компьютера был представлен тремя регистрами, два из которых, A и B, были главными регистрами арифметико-логического устройства, реализующими команды Load, Store, Add, Substract, And, Or, Shift и Rotate. Ещё один регистр Х использовался АЛУ при работе с индексной моделью памяти. В качестве счётчика команд использовался регистр P, а ещё два регистра.
Адреса памяти, по которым можно было обратиться к основным регистрам Kenbak-1
Процессорный модуль работал с восьмеричной системой счисления.
Формат инструкции, обрабатываемой процессорным модулем, был предельно прост. В двухбайтовой конструкции первый байт содержал команду, а во втором могла размещаться константа, адрес памяти или указатель на адрес.
При этом логика компьютера реализовывала несколько моделей адресации: непосредственную, косвенную, индексную и косвенно-индексную.
Разработанный набор инструкций был исчерпывающим для реализации полноценного языка ассемблера, специализированного под придуманный Бланкенбейкером процессорный модуль. В активе были инструкции проверки состояния регистров и логических условий, перехода, управления переключением битов в любой ячейке памяти, сдвига на несколько двоичных разрядов.
Для ввода данных в восьмеричном формате, а также очистки памяти, записи и сохранения в ней введённого числа, запуска и остановки программы пользователь применял набор переключателей. Результаты каждого шага промежуточных вычислений, а также конечный результат работы программы отображался с помощью лампочек.
Свою конструкцию Бланкенбейкер поместил в корпус "Grand Prix", который был отобран из нескольких предварительно закупленных вариантов. Он идеально подошёл для размещения в нём материнской платы и блоков питания. Передняя и задняя панели компьютера были самодельными.
Своё детище Бланкенбейкер решил назвать Kenbak-1. На замечание супруги о том, что покупателям будет сложно произнести слово Kenbak, Джон ответил, что, во-первых, хочет, чтобы имя компьютера было созвучно его фамилии (BlanKENBAKer), а во-вторых, история бизнеса уже знает подобные "незапоминающиеся" имена, ставшие легендами. Например, Kodak.
1971 год. Бизнес и маркетинг
Создав и протестировав действующий прототип Kenbak-1, Бланкенбейкер демонстрирует его весной 1971 года на конвенте учителей старших школ, где получает массу положительных отзывов. Активное развитие вычислительной техники требовало начинать подготовку кадров для её эксплуатации ещё со школьной скамьи. И в этом смысле недорогой, но при этом полнофункциональный компьютер Kenbak-1 как нельзя лучше подходил для получения начальных навыков программирования на языке машинных команд.
Бланкенбейкер получает несколько десятков заказов, возвращается в свой гараж и приступает к "массовому" производству.
Закрепляя статус производителя и заодно торговую марку Kenbak, он регистрирует "Корпорацию Kenbak", находит инвесторов и даже переезжает из гаража в арендованное помещение. Первоначальный дизайн прототипа Kenbak-1 в серийном производстве претерпел немного изменений. На передней панели добавился слот для будущего устройства чтения перфокарт, кроме того, было усовершенствовано питание компьютера.
Чтобы привлечь внимание потенциальных потребителей, корпорация Kenbak даёт небольшую рекламу в журнале Scientific American. Реклама говорит, что с Kenbak-1 изучение программирования будет практически развлечением, а цена в 750 долларов не сильно ударит по бюджету. Потенциальный покупатель мог заказать Kenbak-1 по почте с восьмидолларовой доставкой и вернуть его в течение двух недель, если посчитает, что компьютер ему не приглянулся.
В течение года корпорация Kenbak добросовестно выполняет заказы школ, произведя на свет сорок экземпляров Kenbak-1. С каждым из них идёт исчерпывающая инструкция по эксплуатации и основам программирования на языке машинных команд, а также брошюра с примерами программ.
В прилагаемой к Kenbak-1 книге азы программирования давались на "языке шелеста русских осин"
Только вот дальше этих заказов дело не пошло. Сам Бланкенбейкер считает, что всё дело в том, что он был просто инженер, а не гений маркетинга. Сделав ставку на образовательные учреждения, он самолично обрёк свой бизнес на провал. Школьные бюджеты были слишком куцыми для того, чтобы в них поместилась закупка компьютеров Kenbak-1.
Для рядового потребителя компьютер Бланкенбейкера был слишком сложным. Главным препятствием в его продвижении на массовый рынок был плохой ввод-вывод. Бланкенбейкер сделал его в стиле мейнфреймов шестидесятых годов. Поработай он над простотой ввода данных и наглядностью вывода результатов - и, возможно, история персональной вычислительной техники пошла бы по совсем другому пути.
Просуществовав год, корпорация Kenbak снова перекочевала в гараж, а сам Бланкенбейкер, получив новую работу, занялся другими проектами.
Но детище его не ушло в забытье. На тех самых сорока экземплярах Kenbak-1 освоили азы программирования будущие программисты мейнфреймов и первых ЭВМ на базе микропроцессоров. Kenbak-1 дал потрясающие по своей эффективности творческие всходы. Именно за эти заслуги он и помещён на почётное место практически во всех музеях компьютерной техники. Первый персональный вычислитель - персональный проект всей жизни инженера Бланкенбейкера.