Atlas — компьютер, созданный в Великобритании совместно Манчестерским университетом Виктории и компаниями Ferranti и Plessey по заказу Правительства Великобритании для использования в военных целях[1]. Atlas являлся одним из первых суперкомпьютеров, и на момент создания был одним из самых производительных компьютеров в мире[2]. Утверждалось, что каждый раз, когда Atlas останавливался для обслуживания, Великобритания теряла половину своей вычислительной мощности[3]. Atlas относится ко второму поколению ЭВМ и построен на биполярных германиевых транзисторах. Первый экземпляр Atlas был собран и официально введен в эксплуатацию в Манчестерском университете в 1962 году. Были собраны ещё две машины: одна для компании BP и Лондонского университета, и одна для компьютерной лаборатории Atlas (в 1975 году объединена с лабораторией Резерфорда — Эплтона) в посёлке Чилтон под Оксфордом.
Для Кембриджского университета компанией Ferranti была создана модификация компьютера, названная Titan, позже ставшая известной как Atlas 2. Titan использовал другую организацию памяти и работал под управлением операционной системы с разделением времени, разработанной в компьютерной лаборатории Кембриджского университета. Было собрано два компьютера модификации Atlas 2s: один для центра САПР в Кембридже (позже переименован в CADCentre, затем AVEVA), и один для Организации по атомному оружию (англ. Atomic Weapons Establishment) в посёлке Олдермастон.
Atlas, установленный в Манчестерском университете, был списан в 1971 году[4], но другие машины использовались до 1974 года[5]. Части компьютера Atlas, установленного в Чилтоне, были переданы в Эдинбургский музей управления Национальных музеев Шотландии (NMS). Atlas 2, принадлежавший CADCentre, был списан в конце 1976 года.
В 1956 г. Правительство США заключило контракты с американскими компаниями IBM и Sperry Rand на разработку суперкомпьютеров для автоматизации расчёта параметров атомного оружия и дешифровки перехваченных сообщений вероятного противника. Британское правительство решило не отставать от своих заокеанских партнёров и заключило аналогичный контракт с Манчестерским университетом на разработку компьютеров MUSE, а затем Atlas, к которому позже на правах субподрядчика подключилась Ferranti. Проект осуществлялся в рамках ядерной программы Великобритании, — компания Ferranti являлась основным господрядчиком в вопросе программно-аппаратного обеспечения данной программы[1].
Разработка прототипа компьютера под названием MUSE (от англ. microsecond engine — «микросекундная машина») началась в Манчестерском университете в 1956 году. Целью было создание компьютера, способного выполнять инструкцию за время, близкое к одной микросекунде, достигая скорости один миллион инструкций в секунду[6]. Mu (или µ) — международное обозначение приставки «микро», означающей порядок величины 10−6 (одна миллионная).
К концу 1958 года Манчестерский университет и компания Ferranti договорились о сотрудничестве с образованием совместного предприятия под руководством Томаса Килберна. Вскоре после этого компьютер был переименован в Atlas. Первый компьютер Atlas был официально введен в эксплуатацию 7 декабря 1962 года. Тогда его вычислительная мощность считалась равной четырём компьютерам IBM 7094[2] и почти такой же, как у компьютера IBM 7030 Stretch, являвшегося на тот момент самым быстрым суперкомпьютером в мире.
Множество решений было реализовано в этом компьютере впервые. Ключевыми были следующие (размеры хранилищ указаны для компьютера Манчестерского университета, в других модификациях они были больше)[7]:
В компьютере Atlas не использовался центральный механизм синхронизации (тактовый генератор) — это был асинхронный процессор, в котором продвижение данных по конвейеру определяется готовностью очередной стадии, а не внешним тактовым сигналом. В связи с этим точное измерение производительности было затруднено. Приблизительные времена выполнения операций:
Особенностью компьютера Atlas были «экстракоды» — способ программной реализации сложных инструкций, не поддерживающихся аппаратно.
Старшие 10 бит из 48-битной инструкции Atlas обозначали код операции. Если старший бит равен нулю, то данная инструкция является обычной и выполняется аппаратно. Если старший бит установлен, то инструкция является экстракодом и реализуется через вызов специальной подпрограммы в фиксированном хранилище (ПЗУ), адрес которой определяется остальными 9 битами. Было реализовано около 250 экстракодов из 512 возможных.
Режим выполнения экстракодов использовал собственный счётчик команд и специальный регистр для упрощения доступа к операндам инструкции.
Экстракоды представляли собой то, что теперь называется программным прерыванием или ловушкой. Большая часть их использовалась для выполнения математических функций, которые было бы слишком сложно реализовывать непосредственно в аппаратном обеспечении, например синус, логарифм, квадратный корень. Примерно половина экстракодов, обозначенных как функции супервизора, была предназначена для вызова процедур операционной системы. Типичные примеры — функции «Вывести указанный символ в указанный поток» или «Прочитать блок из 512 машинных слов с ленточного накопителя N». Экстракоды были единственным средством, с помощью которого пользовательская программа могла взаимодействовать с супервизором. Подобные механизмы для вызова служб операционной системы имели и другие английские компьютеры этой эпохи, например Ferranti Orion.
На Atlas впервые были представлены многие программные концепции, которые используются по сей день, включая супервизор Atlas, рассматриваемый многими как первая узнаваемая современная операционная система[9].
Одним из первых высокоуровневых языков программирования для компьютера стал Автокод Atlas, являвшийся вариантом языка Алгол. Также для Atlas были созданы компиляторы Алгола, Фортрана и Кобола. При их создании использовался такой инструмент как компилятор компиляторов, созданный Тони Брукером. Поскольку Atlas был университетским компьютером, его использовало множество студентов, получивших доступ к среде разработки машинного кода на машине с защитой памяти.