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] Последний Gamma 60 оставался в эксплуатации до 1974 года. [6]
Gamma 60 ознаменовала выход Bull на рынок сердечников памяти , твердотельной логики и возможностей магнитной ленты . [7] Его архитектурное ядро было основано на большой высокоскоростной центральной памяти с арбитром (известным как программный распределитель), ответственным за распределение данных и инструкций по различным блокам в компьютере. Процессор был сегментирован на центральный блок и ряд дискретных специализированных процессорных блоков. Такая конструкция позволяла одновременно работать до пяти кластеров, каждый из которых содержал пять процессорных блоков. [8]
Каждый блок в компьютере, будь то процессор или периферийное устройство, работал автономно и запрашивал данные и инструкции из центрального блока, когда они становились доступными. Передача данных к процессорам и от них происходила через две независимые шины — одну для передачи и другую для извлечения. [4]
Процессор работал в 24-битной параллельной конфигурации, причем его основные типы данных использовали одно, два или четыре слова, также называемые «катены», шириной от 24 до 96 бит. Более простые и медленные внешние устройства часто использовали 8-битную параллельную логику внутри. Эти устройства взаимодействовали с центральным блоком посредством бит-последовательных сообщений для запросов на передачу инструкций и данных. Все сообщения были асинхронными, и машина, посредством классов приоритетов, была спроектирована так, чтобы при необходимости приспосабливаться к очень высоким задержкам устройств, даже от АЛУ ( арифметико-логическое устройство ). [4]
Процессор был разделен на четыре вида обрабатывающих элементов: [2]
Несмотря на то, что до двадцати пяти специализированных процессоров могли работать одновременно, в машине имелся только один центральный блок (функционирующий как диспетчер), который не классифицируется как архитектура SMP ( симметричная многопроцессорная обработка ).
Учитывая распределение процессорных блоков по отдельным шкафам, выбор более медленной тактовой частоты в 100 кГц, половины изначально задуманной, был направлен на смягчение влияния задержек распространения . Хотя это накладывало ограничение на производительность отдельных процессорных блоков, стратегия Bull заключалась в том, чтобы уравновесить его за счет параллелизма и возможности легко добавлять дополнительные процессорные блоки. [5] Интересно, что хотя логика Gamma 60 была транзисторной, рабочее напряжение германиевых транзисторов было слишком низким, чтобы противостоять сопротивлению больших расстояний, которые иногда могли возникать между некоторыми шкафами и периферийными устройствами. В результате в некоторых случаях приходилось использовать вакуумные трубки для управления тактовым генератором и некоторыми сигналами ввода-вывода. [9]
В современных терминах процессор Gamma 60 можно описать как аппаратный центральный процессор с разделением времени для асинхронных параллельных процессов, использующий явный параллелизм fork-join на уровне инструкций. [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.
Существовало два вида машинных языков:
Осознавая необходимость в языке высокого уровня, Bull начал разработку нового языка для Gamma 60 под названием AP3. Однако эта инициатива в конечном итоге была оставлена в пользу ALGOL , в который Bull вложил значительные средства, начиная с конца 1950-х годов. [13] Компилятор ALGOL 60 был в конечном итоге выпущен в декабре 1962 года. [13]
Хотя Algol решил множество проблем со сложностью программирования Gamma 60, он плохо подходил для бизнес-приложений. Кроме того, COBOL не существовал, когда Gamma 60 была разработана, и все еще находился на ранних стадиях в течение срока службы компьютера. Более того, Gamma 60 использовала модель fork-join [7], для которой COBOL не был разработан. В результате у разработчиков не было альтернативы, кроме как использовать код B для программирования Gamma 60 в бизнес-приложениях. [7]
Отсутствие передовых высокоуровневых инструментов для разбиения задач на небольшие параллельные потоки означало, что большинство программ использовали лишь часть возможностей оборудования. [14]
Полная инструкция Gamma 60 состояла из серии 24-битных слов четырех типов:
Полная инструкция всегда должна сопровождаться директивой.
Форматы инструкций могли различаться в зависимости от процессорного блока и поддерживали прямую, относительную и косвенную адресацию памяти. Gamma 60 в основном выполняла операции с памятью посредством операций загрузки-сохранения в основной памяти или использовала инструкции обработки для манипулирования регистрами в процессорных блоках. Многопроцессорность достигалась двумя инструкциями: cut («coupure») активировала процессорный блок, указывая адрес программы, в то время как simu («simultané») включала асинхронный переход для другого блока.
В качестве примера рассмотрим следующее выражение:
Это можно реализовать с помощью следующего псевдокода Gamma 60: [4]
[C] сократить до единицы умножения: [A] адрес (загрузка) b [A] адрес (загрузка) c [A] адрес (магазин) a [D] директива (мульт)[C] сократить до арифметической единицы: [A] адрес (загрузка) a [A] адрес (загрузка) d [A] адрес (магазин) d [D] директива (добавить)
Распределение инструкций по процессорам, а также обработка синхронизации выполнялись автоматически Программным Распределителем.
Ранняя операционная система GGZ ( Gestion Générale Zéro , или General Management version Zero) была разработана для Gamma 60. Она поставлялась как компактный резидентный супервизор, хранящийся на магнитной ленте, содержащий загрузчик, таблицу ресурсов, обработчик ошибок и интерпретатор команд оператора. Загрузчик был способен инициализировать несколько переменных во время загрузки или принимать их от оператора. [7]
Более продвинутая операционная система, GGU ( Gestion Générale des Unités ), была позже отправлена, но осталась незавершенной, поскольку компьютер приближался к концу своего жизненного цикла. GGU представила такие функции, как управление памятью, улучшенное восстановление после ошибок и автоматизированное управление заданиями и планирование. [11] Она была особенно использована в RTT в Бельгии. [6]
К сожалению, программные средства, доступные в конце пятидесятых и начале шестидесятых годов, такие как компиляторы, операционные системы и отладчики, были все еще слишком примитивны, чтобы в полной мере использовать возможности Gamma 60. Компиляторы, позволяющие автоматически эксплуатировать параллелизм для архитектуры EPIC, появились только в конце 1990-х годов, после периода разработки, который превысил весь срок службы Gamma 60. [5]
Из-за существенных проблем в разработке программ с использованием примитивных инструментов того времени компания Bull потеряла нескольких клиентов, перешедших в 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]
Gamma 60, которая оставалась в эксплуатации дольше всех, также находилась в RTT, где она непрерывно работала в течение 13 лет. Решение заменить две системы Gamma 60 в середине 1970-х годов несколькими компьютерами Siemens 4004 было политически мотивировано, поскольку бельгийское правительство заключило пятилетний контракт, связывающий их информационные системы с Siemens и Phillips. [6]
Bull выделила значительные ресурсы на разработку 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. Gamma 60 также была показана в фильме Жана-Люка Годара Alphaville (1965), изображающем антагониста компьютера Alpha 60. [19]
По состоянию на 2024 год эмулятора Gamma 60 не существует [обновлять].
Мои обязанности по проектированию 1604 расширились и стали включать в себя руководство все большим числом инженеров. Я ненадолго сбежал от суеты, чтобы посетить семинар и краткий курс в Калифорнийском университете в Лос-Анджелесе, посвященный гигантским компьютерам. На семинаре были рассмотрены такие машины, как STRETCH, LARC, ATLAS, ILLIAC II и GAMMA 60.
{{cite web}}
: CS1 maint: несколько имен: список авторов ( ссылка )