Bull Gamma 60 — большой транзисторный мейнфрейм, разработанный компанией Compagnie des Machines Bull . Первоначально анонсированный в 1957 году, первый компьютер был поставлен в 1960 году. Он стал первым в мире многопоточным компьютером и первым, имеющим архитектуру, специально разработанную для параллелизма . [1] [2]
Gamma 60 стала инициатором множества новаторских технологий в начале 1960-х годов, особенно в области мультипрограммирования, с использованием инструментов, которые все еще находились на зачаточной стадии. После выпуска его архитектура привлекла значительное внимание конструкторов машин, стала предметом изучения наряду с современными суперкомпьютерами и была приведена в качестве примера прогресса в компьютерном проектировании. [3] [4]
Несмотря на свои инновации, большая площадь Gamma 60 (около 4000 кв. футов), высокая стоимость, энергопотребление и сложность в конечном итоге привели к ограниченному коммерческому успеху: по всему миру было продано всего около двадцати единиц. Его основными конкурентами были IBM 7070, 7090 и 7030 «Stretch». [5] Последняя Гамма 60 оставалась на вооружении до 1974 года. [6]
Gamma 60 ознаменовал выход Bull на рынок оперативной памяти , твердотельной логики и возможностей магнитной ленты . [7] Его архитектурное ядро было основано на большой высокоскоростной центральной памяти с арбитром (известным как Распространитель программ), ответственным за распространение данных и инструкций по различным блокам компьютера. Процессор был разделен на центральный блок и ряд дискретных специализированных процессоров. Такая конструкция позволяла одновременно работать до пяти кластеров, каждый из которых содержал пять процессоров. [8]
Каждый блок компьютера, будь то процессор или периферийное устройство, работал автономно и запрашивал данные и инструкции от центрального блока, когда они становились доступными. Передача данных к блокам обработки и обратно происходила через две независимые шины — одну для передачи, а другую для извлечения. [4]
Процессор работал в 24-битной параллельной конфигурации, при этом его основные типы данных содержали одно, два или четыре слова, также называемые «катенами», шириной от 24 до 96 бит. Более простые и медленные внешние устройства часто использовали внутреннюю 8-битную параллельную логику. Эти устройства обменивались данными с центральным блоком посредством последовательных битовых сообщений для запросов на передачу инструкций и данных. Все сообщения были асинхронными, и машина посредством классов приоритета была спроектирована так, чтобы при необходимости справляться с очень высокими задержками устройства, даже от АЛУ ( арифметико-логического устройства ). [4]
Процессор был разделен на четыре типа обрабатывающих элементов: [2]
Несмотря на то, что до двадцати пяти таких специализированных процессоров могли работать одновременно, в машине существовал только один центральный блок (функционирующий как диспетчер), который не классифицируется как архитектура SMP ( симметричная многопроцессорная обработка ).
Учитывая распределение процессоров по отдельным шкафам, выбор более медленной тактовой частоты в 100 кГц, половины от изначально предусмотренной, был направлен на смягчение влияния задержек распространения . Хотя это накладывало ограничение на производительность отдельных процессоров, стратегия Булла заключалась в том, чтобы уравновесить это за счет параллелизма и возможности легко добавлять дополнительные процессоры. [5] Интересно, что хотя логика Gamma 60 была транзисторной, рабочее напряжение германиевых транзисторов было слишком низким, чтобы противостоять импедансу больших расстояний, которые иногда могли возникать между некоторыми шкафами и периферийными устройствами. В результате в некоторых случаях для управления часами и некоторыми сигналами ввода-вывода приходилось использовать электронные лампы. [9]
Говоря современным языком, процессор Gamma 60 можно было бы описать как центральный процессор с аппаратным разделением времени для асинхронных параллельных процессов, использующий явный параллелизм разветвления-соединения на уровне инструкций. [4]
Gamma 60 предвосхитил архитектуру суперскалярных процессоров , где роль центральной памяти теперь частично берут на себя кэши. Кроме того, он имел сходство с архитектурами EPIC, такими как Intel Itanium , в том, что каждая инструкция представляла собой отдельный поток, а управление параллелизмом выполнения и согласованностью доступа к памяти было возложено на программиста. [8] [4]
Центральная память была реализована в виде стека основной памяти с базовым циклом памяти 10 мкс, что делало ее самым быстрым компонентом Gamma 60 (для сравнения, на добавление фиксированной точки требовалось 100 микросекунд). Адреса основной памяти были закодированы 15-битами, что позволяло хранить в центральной памяти 32 768 слов или 96 КБ.
Карта памяти была непрерывной и использовалась всеми устройствами, за исключением первых 128 байт, которые были специфичными для устройства и содержали набор локальных регистров. Поскольку центральная память имела самую низкую задержку среди всех компонентов, она составляла сердце Gamma 60. Отныне процессорные блоки не имели рабочей памяти, кроме своих регистров, вместо этого Распространитель программ отправлял им данные и инструкции. путем загрузки указателей на центральную память в их регистры. [4]
Память объемом 128 байт каждого процессора была реализована с использованием памяти планарного ядра и соответствовала следующей карте: [2]
Единственным исключением был Дистрибьютор программ, у которого был собственный набор регистров.
Периферийные устройства Gamma 60 были разделены на четыре отдельных класса в зависимости от их задержки и характеристик производительности. [10]
Класс 0 включал самые быстрые и критичные ко времени периферийные устройства. Распространитель программы предпочитал этот класс любому другому для передачи инструкций и данных. Он состоял из двух устройств: логического устройства (двоичного АЛУ) и пульта оператора.
Класс 1 включал арифметический блок (BCD ALU), общий компаратор и транскодер (блок перевода).
Класс 2 включал устройства хранения данных, в частности:
Магнитные барабаны действовали как большие запоминающие устройства с более медленным временем доступа, чем центральная память (10 миллисекунд против 10 микросекунд). К Gamma 60 можно было добавить до четырех барабанов, каждый емкостью 128 дорожек по 200 слов (по 150 КБ каждая). Их память не была сопоставлена с пространством имен основной памяти, но к ней обращались так же, как к магнитной ленте.
Каждый из десяти специализированных процессоров ввода-вывода Uniselectors мог управлять до двенадцати ленточных накопителей. Однако одновременно можно было подключить только 48 ленточных накопителей.
Магнитные ленты имели плотность записи 200 бит на дюйм и длину 730 или 1100 м. В устройствах с магнитной лентой использовалась фазовая модуляция , а не NRZ (невозврат с нуля), технология, которая ранее была разработана для барабанной памяти Gamma 3 .
Класс 3 включал более медленное записывающее оборудование, такое как:
Наконец, в класс 4 вошли самые медленные периферийные устройства, такие как телетайпы и пишущие машинки.
Механизм секвенирования, используемый Gamma 60, включал в себя оркестрацию выборки и распределения инструкций, контроль выполнения, доступ к памяти и межпроцессное взаимодействие. Следующая последовательность описывает полный цикл выполнения инструкции: [2]
Программирование Gamma 60 было утомительным, поскольку в то время не существовало адекватных инструментов разработки для параллельного программирования. Языки высокого уровня появились только через два года после появления Gamma 60.
Существовали два типа машинных языков:
Осознав необходимость языка высокого уровня, Булл начал разработку нового языка для Gamma 60 под названием AP3. Однако в конечном итоге от этой инициативы отказались в пользу АЛГОЛА , в который Булл вложил значительные средства, начиная с конца 1950-х годов. [13] Компилятор ALGOL 60 был выпущен в декабре 1962 года. [13]
Хотя Algol решил множество сложных проблем при программировании Gamma 60, он плохо подходил для бизнес-приложений. Кроме того, COBOL еще не существовал на момент разработки Gamma 60, и на протяжении всего срока службы компьютера он все еще находился на ранней стадии своего развития. Кроме того, в Gamma 60 использовалась модель вилочного соединения [7] , для которой COBOL не был разработан. В результате у разработчиков не было другого выбора, кроме как использовать код B для программирования Gamma 60 в бизнес-приложениях. [7]
Отсутствие продвинутых инструментов высокого уровня для разбиения задач на небольшие параллельные потоки означало, что большинство программ использовали лишь часть возможностей оборудования. [14]
Полная инструкция Gamma 60 состояла из серии 24-битных слов четырех типов:
Полная инструкция всегда должна завершаться директивой.
Форматы инструкций могли различаться в зависимости от процессора и поддерживали прямую, относительную и косвенную адресацию памяти. Gamma 60 в основном выполняла операции с памятью посредством операций загрузки-сохранения в основной памяти или использовала инструкции обработки для управления регистрами в процессорах. Многопроцессорная обработка осуществлялась с помощью двух инструкций: Cut («coupure») активировала процессор, указав адрес программы, а simu («simultané») включала асинхронную ветвь для другого устройства.
В качестве примера рассмотрим следующее выражение:
Это можно реализовать с помощью следующего псевдокода Gamma 60: [4]
[C] переход к единице умножения: [A] адрес (нагрузка) b [A] адрес (нагрузка) c [А] адрес (магазин)а Директива [D] (несколько)[C] сократить до арифметической единицы: [A] адрес (загрузка) a [A] адрес (нагрузка) d [A] адрес (магазин) d Директива [D] (добавить)
Распределение инструкций по процессорам, а также обработка синхронизации выполнялись автоматически дистрибьютором программ.
Ранняя операционная система GGZ ( Gestion Générale Zéro , или версия General Management Zero) была разработана для Gamma 60. Она поставлялась в виде компактного резидентного супервизора, хранящегося на магнитной ленте и содержащего загрузчик, таблицу ресурсов, обработчик ошибок и оператор. командный интерпретатор. Загрузчик был способен инициализировать несколько переменных во время загрузки или принимать их от оператора. [7]
Более совершенная операционная система, GGU ( Gestion Générale des Unités ), была позже выпущена, но осталась незавершенной, поскольку срок службы компьютера приближался к концу. GGU представил такие функции, как управление памятью, улучшенное восстановление ошибок, а также автоматическое управление и планирование заданий. [11] В частности, он использовался в RTT в Бельгии. [6]
К сожалению, программные инструменты, доступные в конце пятидесятых и начале шестидесятых годов, такие как компиляторы, операционные системы и отладчики, были все еще слишком примитивны, чтобы полностью использовать возможности Gamma 60. Только появились компиляторы, позволяющие автоматически использовать параллелизм для архитектуры EPIC. в конце 1990-х годов, после периода разработки, превысившего весь срок службы Gamma 60. [5]
Из-за серьезных проблем при разработке программ с использованием грубых инструментов того времени Булл потерял нескольких клиентов из-за IBM, чьи машины, хотя и были однопроцессорными, были проще и экономичнее. [15]
В конце пятидесятых — начале шестидесятых годов интерес к Gamma 60 проявили около двадцати крупных компаний и организаций, хотя не все из них совершили покупку. Устройство, отправленное AG Vie, было первым, произведенным, но у него возникли проблемы с надежностью, поскольку некоторые аппаратные проблемы все еще обнаруживались и решались. Поскольку терпение компании закончилось, компьютер был преждевременно выведен из эксплуатации. Gaz de France (ныне Engie ) также выразила интерес, но позже отказалась из-за сложностей реализации и эксплуатации. В конечном итоге контракт был заключен на IBM 7070. Другие клиенты перечислены в таблице ниже: [15]
Régie des Télégraphes et Téléphones , позже известная как Belgacom, а теперь Proximus , могла похвастаться одной из крупнейших установок Gamma 60, включающей в среднем двадцать процессоров. [17] Установка занимала два этажа: на нижнем этаже размещался генератор переменного тока мощностью 400 кВА, который подавал стабилизированный ток на компьютер, а также надежные системы кондиционирования воздуха для поддержания постоянной температуры термочувствительной германиевой электроники 18 °C. Верхний этаж был разделен на три комнаты: одну для основного компьютера, другую для операторской консоли и считывателей ленты и последнюю комнату для перфораторов и считывателей карт. [6]
«Гамма-60», прослужившая дольше всех, также находилась в РТТ, где непрерывно проработала 13 лет. Решение заменить две системы Gamma 60 в середине 1970-х годов на несколько компьютеров Siemens 4004 было политически мотивированным, поскольку бельгийское правительство заключило пятилетний контракт, связывающий их информационные системы с Siemens и Phillips. [6]
Булл вложил значительные ресурсы в разработку Gamma 60, хотя практическое использование ее архитектурных инноваций стало возможным только в 1980-х или даже 1990-х годах, что сильно повлияло на ее коммерческий успех. [8] Проблемы, с которыми компания столкнулась на рынке, привели к финансовым трудностям, которые помешали созданию более доступной и уменьшенной версии, подходящей для небольших компаний. Вместо этого Gamma 30 среднего класса перешла на лицензионную версию более простого и традиционного компьютера RCA 301, который, хотя и успешно конкурировал с IBM 1401 , не смог извлечь выгоду из инноваций Gamma 60. [18]
В 1963 году Bull была в конечном итоге куплена General Electric , а основным преемником Gamma 60 стало семейство GE 600 , начиная с 1965 года.
На сегодняшний день не существует сохранившихся экземпляров Gamma 60, за исключением некоторых его компонентов, выставленных в некоторых музеях. Компьютерный музей NAM в Намюре, Бельгия, демонстрирует подробную масштабную модель Gamma 60, представленную на выставке RTT. Гамма 60 также была показана в фильме Жана-Люка Годара «Альфавиль» (1965), в котором изображался компьютер-антагонист Альфа 60. [19]
По состоянию на 2023 год не известно о существовании эмулятора Gamma 60.
Мои обязанности по проектированию модели 1604 расширились и теперь включают надзор за растущим числом инженеров. Я ненадолго избежал суматохи, чтобы посетить семинар и краткий курс в Калифорнийском университете в Лос-Анджелесе, посвященный гигантским компьютерам. На семинаре были рассмотрены такие машины как STRETCH, LARC, ATLAS, ILLIAC II и GAMMA 60.
{{cite web}}
: CS1 maint: несколько имен: список авторов ( ссылка )