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

Atlas из Манчестерского университета в январе 1963 года

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]:

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

В компьютере Atlas не использовался центральный механизм синхронизации (тактовый генератор) — это был асинхронный процессор, в котором продвижение данных по конвейеру определяется готовностью очередной стадии, а не внешним тактовым сигналом. В связи с этим точное измерение производительности было затруднено. Приблизительные времена выполнения операций:

Экстракоды

[править | править код]

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

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

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

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

Программное обеспечение

[править | править код]

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

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

Примечания

[править | править код]
  1. 1 2 Hecht, Gabrielle ; Edwards, Paul N. The Technopolitics of Cold War: Toward a Transregional Perspective.  (англ.) / Essays on Twentieth-Century History. / Edited by Michael Adas. — Philadelphia, PA: Temple University Press, 2010. — P.302-303 — 344 p. — (Critical perspectives on the past) — ISBN 1-4399-0271-2
  2. 1 2 Lavington, 1998, p. 41.
  3. Lavington, 1998, pp. 44–45.
  4. Lavington, 1998, p. 43.
  5. Lavington, 1998, p. 44.
  6. The Atlas. University of Manchester. Архивировано из оригинала 28 июля 2012 года.
  7. Simon Lavington. The Atlas story. Дата обращения: 13 июня 2014. Архивировано из оригинала 3 декабря 2013 года.
  8. Floating-Point Formats. Дата обращения: 13 июня 2014. Архивировано 4 марта 2016 года.
  9. Lavington, 1980, pp. 50–52.

Литература

[править | править код]
  • Dai Edwards. Designing and Building Atlas // Resurrection: The Bulletin of the Computer Conservation Society : журнал. — 2013. — Вып. 62. — С. 9–18. — ISSN 0958-7403.
  • Simon Lavington. Early British Computers. — Manchester University Press, 1980. — ISBN 0-7190-0803-4.
  • Simon Lavington. A History of Manchester Computers. — 2-е изд. — Swindon: The British Computer Society, 1998. — ISBN 978-1-902505-01-5.

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

[править | править код]
  • F. H. Sumner, G. Haley, E. C. Y. Chen. The Central Control Unit of the "Atlas" Computer // Information Processing : Proceedings of the IFIP Congress 62. — 1962. — С. 657-663.
  • T. Kilburn, D. B. G. Edwards, M. J. Lanigan, F. H. Sumner. One-Level Storage System // IRE Trans. Electronic Computers. — 1962. — Т. 2. — С. 223-235.
  • T. Kilburn, D. J. Howarth, R. B. Payne, F. H. Sumner. The Manchester University Atlas Operating System, Part I: Internal Organization // The Computer Journal. — 1961. — Т. 4, вып. 3. — С. 222-225. — doi:10.1093/comjnl/4.3.222.
  • D. J. Howarth, R. B. Payne, F. H. Sumner. The Manchester University Atlas Operating System, Part II: Users' Description // The Computer Journal. — 1961. — Т. 4, вып. 3. — С. 226-229. — doi:10.1093/comjnl/4.3.226.
  • T. Kilburn, R .B. Payne, D .J. Howarth. The Atlas Supervisor // Computers — Key to Total Systems Control : Proceedings of the Eastern Joint Computer Conference Washington, D.C., December 12-14. — 1961. — С. 279.
  • D. J. Howarth, P. D. Jones, M. T. Wyld. The Atlas Scheduling System // The Computer Journal. — 1962. — Т. 5, вып. 3. — С. 238-244. — doi:10.1093/comjnl/5.3.238.
  • The First Computers: History and Architectures / под ред. Raúl Rojas и Ulf Hashagen. — MIT Press, 2000. — ISBN 0-262-18197-5.
  • M. R. Williams. A History of Computing Technology. — 2-е изд. — Wiley-IEEE Computer Society Press, 1997. — ISBN 978-0-8186-7739-7.

Внешние ссылки

[править | править код]