Atlas был одним из первых в мире суперкомпьютеров , использовавшимся с 1962 года (тогда он был объявлен самым мощным компьютером в мире) по 1972 год. [ 1] Мощность Atlas способствовала появлению поговорки о том, что когда он отключался, половина вычислительной мощности Соединенного Королевства терялась. [2] Он примечателен тем, что был первой машиной с виртуальной памятью (в то время ее называли «одноуровневым хранилищем» [3] ), использующей страничные методы; этот подход быстро распространился и теперь является повсеместным.
Atlas был вторым поколением компьютеров , использующим дискретные германиевые транзисторы . Atlas был создан в результате совместных разработок Манчестерского университета , Ферранти и Плесси . Были построены еще две машины Atlas: одна для BP и Лондонского университета , а другая для компьютерной лаборатории Atlas в Чилтоне около Оксфорда .
Производная система была создана Ferranti для Кембриджского университета . Названная Titan или Atlas 2, [4] она имела другую организацию памяти и работала на операционной системе с разделением времени, разработанной в Кембриджской университетской компьютерной лаборатории. Были поставлены еще два Atlas 2: один в CAD Centre в Кембридже (позже названный CADCentre, затем AVEVA ), а другой в Atomic Weapons Research Establishment (AWRE), Олдермастон.
Atlas Манчестерского университета был выведен из эксплуатации в 1971 году. [5] Последний Atlas, машина CADCentre, была выключена в конце 1976 года. [6] Части Chilton Atlas хранятся в Национальном музее Шотландии в Эдинбурге ; сама главная консоль была вновь обнаружена в июле 2014 года и находится в лаборатории Резерфорда Эпплтона в Чилтоне, недалеко от Оксфорда .
В течение 1956 года росло понимание того, что Великобритания отстает от США в разработке компьютеров. В апреле Б. В. Поллард из Ferranti заявил на компьютерной конференции, что «в этой стране есть ряд компьютеров средней скорости, и единственные две машины, которые действительно быстры, это Cambridge EDSAC 2 и Manchester Mark 2, хотя обе они все еще очень медленные по сравнению с самыми быстрыми американскими машинами». [7] За этим последовали аналогичные опасения, выраженные в майском отчете Консультативного комитета по высокоскоростным вычислительным машинам Департамента научных и промышленных исследований , более известного как Комитет Бранта. [8]
В течение этого периода команда Тома Килберна в Университете Манчестера экспериментировала с транзисторными системами, построив две небольшие машины для тестирования различных методов. Это был, несомненно, путь вперед, и осенью 1956 года Килберн начал опрос возможных клиентов о том, какие функции они хотели бы видеть в новой транзисторной машине. Большинство коммерческих клиентов указывали на необходимость поддержки широкого спектра периферийных устройств, в то время как Управление по атомной энергии предложило машину, способную выполнять инструкцию каждую микросекунду [9] или, как это называется сегодня, 1 MIPS производительности. Этот более поздний запрос привел к названию перспективной конструкции, MUSE, что означает микросекундный двигатель. [10]
Необходимость поддержки множества периферийных устройств и необходимость быстрой работы естественным образом противоречат друг другу. Например, программа, обрабатывающая данные с устройства чтения карт , будет тратить большую часть времени на ожидание, пока устройство чтения отправит следующий бит данных. Чтобы поддерживать эти устройства, при этом эффективно используя центральный процессор (ЦП), новой системе потребуется дополнительная память для буферизации данных и операционная система , которая могла бы координировать поток данных в системе. [11]
Когда Комитет Бранта услышал о новых и гораздо более быстрых американских разработках, Univac LARC и IBM STRETCH , они смогли привлечь внимание Национальной корпорации исследований и разработок (NRDC), ответственной за перемещение технологий из исследовательских групп военной эпохи на рынок. В течение следующих восемнадцати месяцев они провели многочисленные встречи с потенциальными клиентами, инженерными группами Ferranti и EMI , а также проектными группами в Манчестере и Королевском радиолокационном учреждении . [11]
Несмотря на все эти усилия, к лету 1958 года финансирование от NRDC так и не поступило. Килберн решил продолжить работу, построив Muse поменьше, чтобы поэкспериментировать с различными концепциями. Это было оплачено с использованием финансирования из Mark 1 Computer Earnings Fund, который собирал средства, сдавая в аренду время на университетском Mark 1. Вскоре после начала проекта, в октябре 1958 года, Ферранти решил принять участие. В мае 1959 года они получили грант в размере 300 000 фунтов стерлингов от NRDC на создание системы, который должен был быть возвращен из доходов от продаж. В какой-то момент этого процесса машина была переименована в Atlas. [11]
Детальное проектирование было завершено к концу 1959 года, и продолжалось создание компиляторов . Однако операционная система Supervisor уже сильно отставала. [12] Это привело к тому, что Дэвид Ховарт, недавно нанятый в Ferranti, расширил команду разработчиков операционной системы с двух до шести программистов. В результате того, что описывается как титанические усилия, [ кем? ] под руководством неутомимого и энергичного Ховарта (который получил докторскую степень по физике в возрасте 22 лет), команда в конечном итоге выпустила Supervisor, состоящий из 35 000 строк языка ассемблера , который поддерживал мультипрограммирование для решения проблемы обработки периферийных устройств. [13]
Первый Atlas был создан в университете в течение 1962 года. График был дополнительно ограничен запланированным отключением машины Ferranti Mercury в конце декабря. Atlas достиг этой цели и был официально введен в эксплуатацию 7 декабря Джоном Кокрофтом , директором AEA. [13] Эта система имела только раннюю версию Supervisor, и единственным компилятором был Autocode . Только в январе 1964 года была установлена окончательная версия Supervisor, а также компиляторы для ALGOL 60 и Fortran . [14]
К середине 1960-х годов оригинальная машина постоянно использовалась по 20-часовому графику в день, в течение которого могло быть запущено до 1000 программ. Время делилось между университетом и Ferranti, последний из которых взимал со своих клиентов 500 фунтов стерлингов в час. Часть этой суммы возвращалась в University Computer Earnings Fund. [14] В 1969 году было подсчитано, что компьютерное время, полученное университетом, обошлось бы в 720 000 фунтов стерлингов, если бы оно было сдано в аренду на открытом рынке. Машина была закрыта 30 ноября 1971 года. [15]
Ferranti продал две другие установки Atlas, одну совместному консорциуму Лондонского университета и BP в 1963 году, а другую Исследовательскому центру атомной энергии (Харвелл) в декабре 1964 года. Машина AEA была позже перемещена в компьютерную лабораторию Atlas в Чилтоне, в нескольких ярдах от пограничного ограждения Харвелла, что поместило ее на гражданские земли и, таким образом, значительно облегчило доступ к ней. Эта установка стала крупнейшей Atlas, содержащей 48 килослов 48-битной основной памяти и 32 ленточных накопителя. Время стало доступно всем университетам Великобритании. Оно было закрыто в марте 1974 года. [16]
В феврале 1962 года Ферранти передал некоторые части машины Atlas Кембриджскому университету , а взамен университет использовал их для разработки более дешевой версии системы. Результатом стала машина Titan, которая начала работать летом 1963 года. Ферранти продал еще две машины этой конструкции под названием Atlas 2, одну в Исследовательский центр атомного оружия (Олдермастон) в 1963 году, а другую в спонсируемый правительством Центр автоматизированного проектирования в 1966 году. [17]
Atlas был разработан в ответ на программы США LARC и STRETCH. Обе в конечном итоге опередили Atlas в официальном использовании, LARC в 1961 году, а STRETCH на несколько месяцев раньше Atlas. Atlas был намного быстрее LARC, примерно в четыре раза, и работал немного медленнее STRETCH - Atlas добавлял два числа с плавающей точкой примерно за 1,59 микросекунды, [14] в то время как STRETCH делал то же самое за 1,38-1,5 микросекунды. Тем не менее, глава подразделения программного обеспечения Ferranti Хью Девональд сказал в 1962 году: "Atlas фактически утверждается как самая мощная вычислительная система в мире. Под таким утверждением подразумевается, что если Atlas и любому из его конкурентов одновременно представить аналогичные большие наборы репрезентативных вычислительных заданий, Atlas должен завершить свой набор раньше всех других компьютеров". [18] Дальнейшие попытки продажи LARC не предпринимались, [17] и неясно, сколько машин STRETCH было в конечном итоге произведено.
Лишь с появлением в 1964 году CDC 6600 Atlas был значительно превзойден. Позднее CDC заявили, что именно описание Muse 1959 года дало CDC идеи, которые значительно ускорили разработку 6600 и позволили выпустить его раньше, чем изначально предполагалось. [17] Это привело к тому, что компания выиграла контракт для CSIRO в Австралии, которая изначально вела переговоры о покупке Atlas. [17]
В начале 1960-х годов Ferranti испытывала серьезные финансовые трудности и решила продать компьютерное подразделение компании International Computers and Tabulators (ICT) в 1963 году. ICT решила сосредоточиться на рынке среднего класса со своей серией ICT 1900 [19] — гибкой линейкой машин на базе канадской Ferranti-Packard 6000 .
Atlas был высоко оценен многими в компьютерной индустрии. Среди его поклонников был C. Gordon Bell из Digital Equipment Corporation , который позже похвалил его:
В архитектуре Manchester Atlas был образцовым, не потому что это была большая машина, которую мы собирались построить, а потому что он иллюстрировал ряд хороших принципов проектирования. Atlas был многопрограммным с четко определенным интерфейсом между пользователем и операционной системой, имел очень большое адресное пространство и ввел понятие дополнительных кодов для расширения функциональности своего набора инструкций. [20]
В июне 2022 года IEEE Milestone был посвящен «Компьютеру Atlas и изобретению виртуальной памяти 1957-1962». [21]
Машина имела много инновационных функций, но основные рабочие параметры были следующими (размер магазина соответствует установке в Манчестере; остальные были больше):
Atlas не использовал механизм синхронной синхронизации — это был асинхронный процессор — поэтому измерения производительности были непростыми, но вот пример:
Одной из особенностей Atlas был «Extracode», метод, который позволял реализовать сложные инструкции в программном обеспечении. Выделенное оборудование ускоряло вход и выход из процедуры extracode и доступ к операндам; кроме того, код процедур extracode хранился в ПЗУ, к которому можно было получить доступ быстрее, чем к основному хранилищу.
Верхние десять бит 48-битной машинной инструкции Atlas были кодом операции . Если старший бит был установлен в ноль, это была обычная машинная инструкция, выполняемая непосредственно оборудованием. Если верхний бит был установлен в единицу, это был Extracode и был реализован как особый вид перехода подпрограммы к месту в фиксированной памяти ( ROM ), его адрес определялся другими девятью битами. Было реализовано около 250 extracodes из 512 возможных.
Extracodes были тем, что сегодня назвали бы программными прерываниями или ловушками . Они использовались для вызова математических процедур , которые были бы слишком неэффективны для реализации в оборудовании , например, синус , логарифм и квадратный корень . Но около половины кодов были обозначены как функции Supervisor, которые вызывали процедуры операционной системы . Типичными примерами были «Напечатать указанный символ в указанном потоке» или «Прочитать блок из 512 слов с логической ленты N». Extracodes были единственным средством, с помощью которого программа могла общаться с Supervisor. Другие британские машины той эпохи, такие как Ferranti Orion , имели похожие механизмы для вызова служб своих операционных систем.
Atlas стал пионером многих концепций программного обеспечения, которые широко используются и сегодня, включая Atlas Supervisor , «которую многие считают первой узнаваемой современной операционной системой». [25]
Одним из первых языков высокого уровня , доступных на Atlas, был Atlas Autocode , который был современником Algol 60 и был создан специально для устранения того, что Тони Брукер считал некоторыми дефектами Algol 60. Однако Atlas поддерживал Algol 60 , а также Fortran и COBOL , и ABL (Atlas Basic Language, символьный язык ввода, близкий к машинному языку). Будучи университетским компьютером, он пользовался покровительством большого числа студентов, которые имели доступ к защищенной среде разработки машинного кода .
Некоторые компиляторы были написаны с использованием компилятора Brooker Morris Compiler (BMCC) , который считается первым в своем роде.
Он также имел язык программирования под названием SPG (System Program Generator). Во время выполнения программа SPG могла компилировать больше программ для себя. Она могла определять и использовать макросы . Ее переменные были в <угловых скобках>, и у нее был текстовый анализатор, что придавало тексту программы SPG сходство с формой Бэкуса–Наура .
С самого начала Atlas задумывался как суперкомпьютер, который будет включать в себя всеобъемлющую операционную систему. Аппаратное обеспечение включало определенные функции, которые облегчали работу операционной системы. Например, процедуры extracode и процедуры прерываний имели выделенное хранилище, регистры и счетчики программ; переключение контекста из пользовательского режима в режим extracode или исполнительный режим, или из режима extracode в исполнительный режим, поэтому было очень быстрым.