Atlas (компьютер)

Atlas — компьютер, созданный в Великобритании совместно Манчестерским университетом Виктории и компаниями Ferranti и Plessey по заказу Правительства Великобритании для использования в военных целях. Atlas являлся одним из первых суперкомпьютеров, и на момент создания был одним из самых производительных компьютеров в мире. Утверждалось, что каждый раз, когда Atlas останавливался для обслуживания, Великобритания теряла половину своей вычислительной мощности. Atlas относится ко второму поколению ЭВМ и построен на биполярных германиевых транзисторах. Первый экземпляр Atlas был собран и официально введен в эксплуатацию в Манчестерском университете в 1962 году. Были собраны ещё две машины: одна для компании BP и Лондонского университета, и одна для компьютерной лаборатории Atlas (в 1975 году объединена с лабораторией Резерфорда — Эплтона) в посёлке Чилтон под Оксфордом.

Для Кембриджского университета компанией Ferranti была создана модификация компьютера, названная Titan, позже ставшая известной как Atlas 2. Titan использовал другую организацию памяти и работал под управлением операционной системы с разделением времени, разработанной в компьютерной лаборатории Кембриджского университета. Было собрано два компьютера модификации Atlas 2s: один для центра САПР в Кембридже (позже переименован в CADCentre, затем AVEVA), и один для Организации по атомному оружию () в посёлке Олдермастон.

Atlas, установленный в Манчестерском университете, был списан в 1971 году, но другие машины использовались до 1974 года. Части компьютера Atlas, установленного в Чилтоне, были переданы в Эдинбургский музей управления Национальных музеев Шотландии (NMS). Atlas 2, принадлежавший CADCentre, был списан в конце 1976 года.

Предыстория 
В 1956 г. Правительство США заключило контракты с американскими компаниями IBM и Sperry Rand на разработку суперкомпьютеров для автоматизации расчёта параметров атомного оружия и дешифровки перехваченных сообщений вероятного противника. Британское правительство решило не отставать от своих заокеанских партнёров и заключило аналогичный контракт с Манчестерским университетом на разработку компьютеров MUSE, а затем Atlas, к которому позже на правах субподрядчика подключилась Ferranti. Проект осуществлялся в рамках ядерной программы Великобритании, — компания Ferranti являлась основным господрядчиком в вопросе программно-аппаратного обеспечения данной программы.

Разработка прототипа компьютера под названием MUSE (от  — «микросекундная машина») началась в Манчестерском университете в 1956 году. Целью было создание компьютера, способного выполнять инструкцию за время, близкое к одной микросекунде, достигая скорости один миллион инструкций в секунду. Mu (или µ) — международное обозначение приставки «микро», означающей порядок величины 10−6 (одна миллионная).

К концу 1958 года Манчестерский университет и компания Ferranti договорились о сотрудничестве с образованием совместного предприятия под руководством Томаса Килберна. Вскоре после этого компьютер был переименован в Atlas. Первый компьютер Atlas был официально введен в эксплуатацию 7 декабря 1962 года. Тогда его вычислительная мощность считалась равной четырём компьютерам IBM 7094 и почти такой же, как у компьютера IBM 7030 Stretch, являвшегося на тот момент самым быстрым суперкомпьютером в мире.

Техническое описание

Аппаратное обеспечение 
Множество решений было реализовано в этом компьютере впервые. Ключевыми были следующие (размеры хранилищ указаны для компьютера Манчестерского университета, в других модификациях они были больше):
 48-битное машинное слово (не считая 2 контрольных разрядов). Машинное слово могло содержать одно число с плавающей точкой, одну инструкцию, два 24-битных адреса или целых числа со знаком, либо восемь 6-битных символов. Числа с плавающей точкой использовали 40 бит мантиссы и 7 бит порядка. Порядок представлялся степенями числа 8.
 24-битное (2 миллиона машинных слов, 16 миллионов символов) адресное пространство, охватывающее хранилище супервизора, хранилище V (набор регистров для связи с устройствами ввода/вывода), фиксированное (только для чтения) хранилище и пользовательское хранилище.
 16 К машинных слов памяти на магнитных сердечниках (эквивалентно 96 килобайтам), с использованием 4-кратного расслоения памяти.
 96 K машинных слов памяти на четырёх магнитных барабанах (эквивалентно 576 килобайтам), объединённых с памятью на магнитных сердечниках в общее хранилище c поддержкой виртуальной памяти (на тот момент называвшееся 'одноуровневым хранилищем') по технологии подкачки страниц.
 128 24-битных быстродействующих регистров, которые могли быть использованы как индексные для модификации адреса операнда (в инструкции могут быть указаны два индексных регистра). Часть регистров имела специальное назначение, например, регистр адреса операнда экстракода, регистр показателя аккумулятора с плавающей точкой, три счётчика команд для режима супервизора, режима выполнения экстракодов и пользовательского режима.
 Возможность подключения новых сложных (для того времени) периферийных устройств, таких как накопитель на магнитной ленте.
 Управление периферийными устройствами через отображаемые на память регистры хранилища V, прерывания и процедуры обработки экстракодов.
 Использование ассоциативной памяти для определения присутствия требуемой страницы виртуальной памяти в физической памяти.
 Использование конвейерного выполнения инструкций.

В компьютере Atlas не использовался центральный механизм синхронизации (тактовый генератор) — это был асинхронный процессор, в котором продвижение данных по конвейеру определяется готовностью очередной стадии, а не внешним тактовым сигналом. В связи с этим точное измерение производительности было затруднено. Приблизительные времена выполнения операций:
 сложение чисел с фиксированной запятой — 1,59 микросекунды
 сложение чисел с плавающей запятой — от 1,61 до 2,61 микросекунды
 умножение чисел с плавающей запятой — 4,97 микросекунды
 деление чисел с плавающей запятой — от 10,66 до 29,8 микросекунды

Экстракоды 
Особенностью компьютера Atlas были «экстракоды» — способ программной реализации сложных инструкций, не поддерживающихся аппаратно.

Старшие 10 бит из 48-битной инструкции Atlas обозначали код операции. Если старший бит равен нулю, то данная инструкция является обычной и выполняется аппаратно. Если старший бит установлен, то инструкция является экстракодом и реализуется через вызов специальной подпрограммы в фиксированном хранилище (ПЗУ), адрес которой определяется остальными 9 битами. Было реализовано около 250 экстракодов из 512 возможных.

Режим выполнения экстракодов использовал собственный счётчик команд и специальный регистр для упрощения доступа к операндам инструкции.

Экстракоды представляли собой то, что теперь называется программным прерыванием или ловушкой. Большая часть их использовалась для выполнения математических функций, которые было бы слишком сложно реализовывать непосредственно в аппаратном обеспечении, например синус, логарифм, квадратный корень. Примерно половина экстракодов, обозначенных как функции супервизора, была предназначена для вызова процедур операционной системы. Типичные примеры — функции «Вывести указанный символ в указанный поток» или «Прочитать блок из 512 машинных слов с ленточного накопителя N». Экстракоды были единственным средством, с помощью которого пользовательская программа могла взаимодействовать с супервизором. Подобные механизмы для вызова служб операционной системы имели и другие английские компьютеры этой эпохи, например Ferranti Orion.

Программное обеспечение 
На Atlas впервые были представлены многие программные концепции, которые используются по сей день, включая супервизор Atlas, рассматриваемый многими как первая узнаваемая современная операционная система.

Одним из первых высокоуровневых языков программирования для компьютера стал Автокод Atlas, являвшийся вариантом языка Алгол. Также для Atlas были созданы компиляторы Алгола, Фортрана и Кобола. При их создании использовался такой инструмент как компилятор компиляторов, созданный Тони Брукером. Поскольку Atlas был университетским компьютером, его использовало множество студентов, получивших доступ к среде разработки машинного кода на машине с защитой памяти.

См. также 
 Манчестерские компьютеры

Примечания

Литература

Дополнительная литература

Внешние ссылки 
 The Atlas Autocode Reference Manual 
 Memories of the Ferranti Atlas computer 

История компьютерной техники
Суперкомпьютеры Великобритании
Появились в 1962 году в Великобритании
Военная продукция Ferranti
Военная продукция Plessey
Военная продукция Манчестерского университета
История Манчестера