Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
Когда мы произносим словосочетание «французские технологии», первыми в голову приходят названия «Рено», «Пежо» и «Ситроен». Однако если уточнить запрос до «французские компьютерные технологии», память дает сбой, а то и вовсе норовит упасть в BSOD. Тем не менее, во Франции успешно создавали компьютерные системы, причем первые из них появились еще в начале пятидесятых годов ХХ столетия. Об одной такой машине, обогнавшей по популярности компьютеры от IBM — наш сегодняшний рассказ.
Компьютер Bull Gamma 3 изначально задумывали, как электронный ускоритель для электромеханических счетных машин, подобных тем, которые в США уже много лет производила и продавала корпорация IBM (речь, в частности, идет об IBM 604 — электромеханическом калькуляторе, серийно выпускавшемся с 1948 года). В Европе у IBM имелся конкурент: парижская компания Compagnie des Machines Bull, до 1950 года выпускавшая табуляторы и электромеханические калькуляторы. Эти устройства использовались для складского и бухгалтерского учета, а также подсчета зарплат на многих предприятиях Франции. Собственно, и сама компания была основана в 1931 году, как производитель устройств под названием «комбинированная машина для сортировки, записи и табуляции перфокарт», которую в 1919 году изобрел норвежский инженер по имени Фредрик Розинг Булл.
Табулятор
Французы приобрели патент Булла и наладили выпуск табуляторов — машин, предназначенных для автоматической обработки (суммирования и категоризации) числовой и буквенной информации, а также электромеханических арифмометров. Как и другие подобные устройства того времени, машины Compagnie des Machines Bull выполняли арифметические операции с использованием набора цифровых колес, приводимых в движение электрическим устройством на основе реле. Проще всего на таком калькуляторе было выполнить операцию сложения, а вот вычитание или умножение требовало значительных временных затрат.
В 1949 году инженеры Compagnie des Machines Bull задумались над идеей использовать вместо реле вакуумные лампы, скорость переключения которых была намного выше — это позволило бы увеличить быстродействие их электромеханических калькуляторов. От задумки они перешли к делу, и уже к 1951 году собрали прототип «ускорителя» для собственных вычислительных устройств. Схемы этой машины состояли из 400 электронных ламп, 8000 германиевых диодов и 48-битных регистров, состоящих из электрических линий задержки, призванных снизить влияние не слишком надежных вакуумных трубок на работоспособность машины. Весил аппарат 900 кг. Устройство понемногу обрастало все новыми элементами, и к 1952 году превратилось в полноценную электронно-вычислительную машину, получившую название Gamma 3.
Компьютер использовал тактовую частоту 281 кГц, намного более высокую, чем у конкурирующих вычислительных машин того времени (например, IBM 604 работала на частоте 50 кГц), а главное — обеспечивал большую скорость вычислений. Gamma 3 выполняла сложение двух чисел за 680 микросекунд, а на умножение требовалось 5,7 миллисекунд. Инструкции для выполнения расчетов можно было запрограммировать на специальной панели Gamma 3, кроме того, вместо этой панели можно было подключить табулятор: тогда подготовленная в нем программа запускалась непосредственно на компьютере.
Такой набор инструкций мог включать не более 64 шагов. Длительность выполнения инструкций варьировалась от 0,6 до 10 миллисекунд, а в среднем на обработку одной инструкции уходило 2 миллисекунды, что по тем временам считалось весьма неплохим показателем. В конструкции Gamma 3 в отличие от других компьютеров того времени имелось целых два арфиметико-логических устройства: одно для работы с числами в двоичной системе (48-битные слова), использовавшееся в процессе научных и промышленных вычислений, другое — для десятичных чисел (12-битные слова), применявшихся преимущественно в ходе обработки бизнес-данных. Переключение между этими режимами осуществлялось с помощью специальных инструкций. Несмотря на то, что Bull Gamma 3 использовал полный по Тьюрингу набор команд и оперировал в двоичной системе счисления, у этого компьютера изначально отсутствовала возможность хранить программы в памяти. Фактически, первая модель Gamma 3 представляла собой большую приставку к табулятору, а не наоборот.
Ситуация изменилась с появлением концепции Programme Par Carte, PPC: согласно этому принципу инструкции для Gamma 3 кодировались на перфокартах и считывались с них посредством табулятора. Примерно в то же время аналогичные разработки вела и корпорация IBM — у американцев проект назывался CPC (Card Programmed Calculator), он позволял подключать блок для работы с перфокартами к счетным машинам 604-й серии.
Использование PPC позволило обойти ограничение в 64 шага программы — теперь она могла содержать любое количество команд, что приблизило Gamma 3 к более современным ЭВМ. Да и скорость выполнения инструкций определялась быстродействием считывающего перфокарты устройства. Компьютеры серии Gamma 3 строились под заказ, и пользовались определенным спросом: их покупали крупные предприятия и кредитные организации. Первым клиентом, заказавшим этот компьютер, стал банк Crédit Lyonnais в Сент-Этьене, позже ЭВМ от Compagnie des Machines Bull приобретали коммерческие и научные учреждения, в частности, европейская организация по ядерным исследованиям CERN.
В 1955 году компания Compagnie des Machines Bull модифицировала компьютер: новая модель получила обозначение Gamma AET (Armoire Extension Tambour). Основным отличием этой версии ЭВМ стало появление магнитного барабана в качестве основного хранилища программ. Барабан представлял собой дюралевый цилиндр длиной 15 или 30 см, вращающийся со скоростью около 2750 оборотов в минуту. На него можно было записать 64 (для 15-сантиметрового барабана) или 128 дорожек (для 30-сантиметрового) по 8 блоков, каждый из которых содержал 16 слов по 48 бит. То есть, совокупный объем накопителя достигал 49 152 инструкций или 49 килобайт — довольно большого по тем временам значения.
Вообще, память в Gamma 3 и AET была устроена довольно оригинально для начала 50-х годов. Она включала три основных конструктивных элемента. Ядро памяти составляла так называемая «память оператора» — аккумулятор, состоящий из семи регистров непосредственно в арифметико-логическом устройстве. Кроме него память машины содержала дополнительный аккумулятор для 96-битной арифметики двойной точности, и регистры общего назначения, которые французские инженеры называли «Mémoires Banales». Обмен данными между общими регистрами и дополнительным аккумулятором осуществлялся через память оператора. В дополнение к этому основная память машины содержала шесть внутренних регистров: сдвиговый регистр, регистр для хранения результатов операций сравнения, знаковый регистр, счетчик программ и регистр стека.
Второй модуль, собранный в отдельном шкафу, был реализован на магниторестриктивных линиях задержки и играл роль буферной памяти, в которой сохранялись данные, считываемые с магнитного барабана и записываемые на него. Фактически, этот модуль представлял собой буфер ввода-вывода. Данные хранились в буфере группами по 48 инструкций, называемыми «сериями». При необходимости серия перемещалась с магнитного барабана в промежуточную буферную память, действующую как кэш инструкций, что позволяло компьютеру последовательно выбирать из кэша строки программы и передавать их в регистр команд. Интересно, что оператор мог менять внутри арифметического устройства компьютера инструкции, их параметры и адреса. Эта возможность проложила путь для косвенной или индексной адресации. Благодаря использованию буферной памяти в Gamma 3 отсутствовала характерная для компьютеров от IBM (в частности, IBM 650) проблема с замедлением работы программ из-за неоптимальной записи инструкций на магнитный барабан, в результате которой возникали задержки при считывании команд в память
Наконец, третий модуль представлял собой тот самый магнитный барабан, использовавшийся в качестве памяти подкачки, а также постоянного запоминающего устройства для хранения программ и данных, которые можно было перенести на него с перфокарт. Плотность записи приближалась к 300 битам на дюйм, что на тот момент считалось рекордом.
Компьютер использовал сложный набор инструкций, состоявших из 16-битных слов. Каждое слово включало четыре шестнадцатеричных числа: код операции, адрес, начальный порядок (Ordre Début) и конечный порядок (Ordre Fin) — последние два параметра определяли позиции хранящихся данных, например, адреса дорожек магнитного барабана или блока памяти, в котором записана информация. При этом код операции определял тип инструкции, а остальные три значения играли роль передаваемых инструкцией значений.
Изначально в Gamma 3 отсутствовало какое-либо подобие ассемблера или языка высокого уровня, поэтому программирование компьютера представляло собой нетривиальную задачу. Сначала программист составлял на бумаге алгоритмическую блок-схему будущей программы, по ней записывал мнемоническую последовательность команд. Ее при помощи специальных таблиц нужно было перевести в машинный код, который записывался опять же на бумаге. После тщательной проверки код переносился на перфокарты. В процессе копирования программы с перфокарт на магнитный барабан оператор мог запустить ее пошаговое выполнение в режиме отладки, и при необходимости изменить те или иные данные в памяти, а затем сохранить изменения.
Поскольку на практике операторам Gamma 3 часто приходилось выполнять одни и те же стандартные вычисления, вскоре для них разработали некое подобие «стандартных библиотек» — наборы перфокарт с уже готовой и отлаженной программой, в которую нужно было только добавить свои значения. Такие наборы поставлялись заказчикам вместе с компьютером. К ним относилась, например, программа PDF (Point Decimal Flottant), добавлявшая две дополнительные инструкции: BD и DCC для облегчения использования чисел с плавающей запятой. Позже, в середине 50-х, группа студентов из Университета Лилля под руководством профессора Пьера Бахуса создала для Gamma 3 язык программирования наподобие Ассемблера, получивший название Auto-Programmation Bull (APB). Этот язык быстро завоевал популярность среди пользователей Gamma 3, и даже был портирован на IBM 1620.
В 1957 появилось на свет третье поколение ЭВМ: Gamma 3 ET — Extension Tambour, что означает «расширенный барабан». Барабан в этой машине действительно был увеличен: его объем составил 16 384 слов или 50 000 инструкций (98 килобайт). Также компьютер получил дисплей от осциллографа для проверки памяти и клавиши для пошагового ввода кода. При этом табулятор по-прежнему мог служить устройством ввода-вывода, а Gamma 3 играл при нем роль центрального вычислительного устройства с архитектурой Фон-Неймана.
Bull Gamma 3 успешно конкурировал с похожим по архитектуре компьютером IBM 650 и завоевал заметный успех в Европе: всего до 1962 года, когда выпуск этой машины прекратили, было продано 1200 экземпляров компьютера — больше, чем продажи IBM 650 во всех европейских странах. Gamma 3 ET стал самой успешной французской коммерческой ЭВМ с хранимыми программами, и этот успех во многом сподвиг конкурентов из IBM на разработку и выпуск более совершенного компьютера IBM 1401.
До наших дней дошло только четыре экземпляра Gamma 3: один можно увидеть в технологическом музее во Фракфурте, второй — в Анжере, Франция, где собирали эти машины, третий — в Museo degli Strumenti per il Calcolo в итальянской Пизе. Наконец, единственный сохранившийся Gamma 3 версии ЕТ выставлен в музее ACONIT во французском Гренобле. А разработчик компьютера, компания Compagnie des Machines Bull, прекрасно чувствует себя и сегодня — под названием Atos Group она производит различную промышленную и медицинскую электронику.
Статья поддерживается командой Serverspace.
Serverspace — провайдер облачных сервисов, предоставляющий в аренду виртуальные серверы с ОС Linux и Windows из любой точки мира менее чем за 1 минуту. Для построения ИТ-инфраструктуры провайдер также предлагает: создание сетей, шлюзов, бэкапы, сервисы CDN, DNS, объектное хранилище S3.