IBM 7030 Stretch
IBM 7030 — первый суперкомпьютер фирмы IBM, построенный на транзисторах. Также известен как проект Stretch. Исходными заказчиками выступали Агентство национальной безопасности и Комиссия по атомной энергии США[1]. Компьютер создавался для военных целей, его разработка финансировалась из федерального бюджета[2]. Первоначально IBM проиграла тендер на создание компьютера для Ливерморской национальной лаборатории, требования к которому были сформулированы Эдвардом Теллером, но смогла выиграть другой, на создание компьютера для Лос-Аламосской национальной лаборатории. Также IBM обязалась разработать специализированную версию для АНБ. Поставка компьютера IBM 7030 Stretch для АЭК состоялась в 1961 году. Специализированная версия IBM 7950 Harvest была поставлена АНБ в 1962 году[3][4][5].
Неспособность компьютера достичь ожидаемого, очень амбициозного, уровня производительности привела к необходимости снизить цену с первоначальных 13,5 миллионов долларов США до 7,78 миллиона и прекращению продаж всем клиентам, за исключением имеющих уже подписанные контракты. Хотя 7030 оказался гораздо медленнее, чем ожидалось, он, тем не менее, был самым быстрым компьютером в мире с 1961 года до ввода в работу первого суперкомпьютера CDC 6600 в 1964 году. Журнал PCWorld назвал Stretch одним из крупнейших провалов в управлении проектами в истории информационных технологий[6].
Несмотря на то, что Stretch не достиг заявленного уровня производительности, он послужил основой для многих архитектурных решений коммерчески чрезвычайно успешной системы IBM System/360, анонсированной в 1964 году. Первоначально руководитель проекта подвергся критике за свою роль в провале и был переведён в исследовательские лаборатории, но, когда успех серии 360 стал очевиден, ему были принесены официальные извинения, а сам он получил должность IBM Fellow.
История создания
[править | править код]В начале 1955 года радиационной лаборатории Калифорнийского университета понадобилась новая научная вычислительная система для трёхмерных гидродинамических вычислений. Для новой системы, названной Livermore Automatic Reaction Calculator (Ливерморский автоматический калькулятор реакций) или LARC, у фирм IBM и UNIVAC были запрошены технические предложения. Согласно оценке директора подразделения электронных машин обработки данных IBM Катберта Хёрда (англ. Cuthbert Hurd), такая система должна была стоить примерно 2,5 миллиона долларов США и иметь производительность от одного до двух MIPS. Поставка машины должна была состояться через два или три года после подписания контракта[7].
В IBM небольшая команда разработчиков из Покипси, включавшая Джона Гриффита и Джина Амдала, работала над проектной заявкой. Когда они завершили работу и готовились провести презентацию, инженер Ральф Палмер остановил их и назвал решение ошибочным[7]. В проекте предлагалось использовать либо точечные, либо поверхностно-барьерные транзисторы, которые должны были проигрывать по своим характеристикам недавно разработанным диффузионным транзисторам[8].
Представители IBM вернулись в Ливермор и заявили, что выходят из договора, предложив взамен создать значительно лучшую систему. «Мы не будем создавать для Вас такую машину. Мы хотим создать нечто лучшее! Мы не знаем точно, что для этого потребуется, но думаем, что это будет ещё один миллион долларов и ещё один год разработки. Также мы не знаем, насколько быстро эта машина будет работать, но нам хотелось бы достигнуть десяти миллионов операций в секунду.»[9] На руководство лаборатории в Ливерморе это не произвело должного впечатления, и в мае 1955 года было объявлено, что тендер на создание компьютера LARC (теперь называвшегося Livermore Automatic Research Computer, Ливерморский автоматический исследовательский вычислитель) выиграла компания UNIVAC. В конечном итоге LARC будет поставлен в июне 1960 года[10].
В сентябре 1955 года, опасаясь, что Лос-Аламосская национальная лаборатория также может заказать компьютер LARC, компания IBM представила предварительную заявку на высокопроизводительный двоичный компьютер, основанный на улучшенной версии проекта, отклонённого лабораторией в Ливерморе. К заявке в лаборатории был проявлен интерес. В январе 1956 года проект Stretch стартовал официально. В ноябре 1956 года компания IBM выиграла тендер, установив высокую планку производительности, «как минимум в 100 раз превышающую производительность IBM 704» (примерно 4 MIPS). Поставка была запланирована на 1960 год[11].
Во время проектирования оказалось необходимо снизить тактовую частоту, в результате чего стало очевидно, что Stretch не сможет достичь расчётной производительности. Тем не менее, ожидалось, что производительность от 60 до 100 раз превысит производительность IBM 704. В 1960 году для IBM 7030 была установлена цена 13,5 миллионов долларов США. В 1961 году фактические тесты показали, что производительность IBM 7030 всего в 30 раз выше, чем IBM 704 (около 1,2 MIPS), создав значительные трудности для IBM. В мае 1961 года президент IBM Томас Уотсон-младший объявил о снижении цены на 7030 до 7,78 миллиона долларов для всех подписавших контракты клиентов, и немедленном прекращении дальнейших продаж.
Влияние на развитие вычислительной техники
[править | править код]Хотя IBM 7030 не считался успешным, он породил множество технологий, использованных в последующих, весьма успешных компьютерах. Разработанная для 7030 система модулей транзисторной логики Standard Modular System стала основой для большинства транзисторных моделей компьютеров IBM, включая серию научных компьютеров IBM 7090, коммерческие компьютеры IBM 7070 и 7080, серии IBM 7040 и IBM 1400 и малый научный компьютер IBM 1620. Блок памяти на магнитных сердечниках IBM 7302 применялся также в компьютерах IBM 7090, IBM 7070 и IBM 7080. Принципы мультипрограммирования, защита памяти, способы обработки прерываний были использованы как в серии компьютеров IBM System/360, так и в большинстве более поздних процессоров.
Руководитель проекта Стивен Данвелл (англ. Stephen Dunwell), понёсший наказание за коммерческий провал Stretch, вскоре после феноменально успешного запуска серии System/360 в 1964 году отметил, что большинство её основных идей впервые было применено на Stretch[12]. В 1966 году ему были принесены официальные извинения, а сам он получил почётную должность IBM Fellow, давшую ему ресурсы и полномочия вести собственное направление исследований[12].
Технологии конвейеризации инструкций, предвыборки кода и расслоения памяти были использованы в более поздних конструкциях суперкомпьютеров как IBM (например, моделях 91 и 95 серии IBM System/360, модели 195 серии IBM System/370, серии IBM 3090), так и других производителей. До настоящего времени эти технологии продолжают использоваться в большинстве современных микропроцессоров, начиная с Intel Pentium и Motorola/IBM PowerPC, как и во многих встраиваемых микропроцессорах и микроконтроллерах от различных производителей.
IBM 7030 Stretch послужил тренировочной площадкой для таких инженеров компьютерной техники, как Gerrit Blaauw и Фред Брукс — будущих создателей IBM System/360, и Джона Кока — будущего архитектора IBM RS/6000[13].
Поставки IBM 7030 заказчикам
[править | править код]- Лос-Аламосская национальная лаборатория — в апреле 1961 года, принят в эксплуатацию в мае 1961 года, использовался до 21 июня 1971 года. Запчасти от этого компьютера были использованы Университетом Бригама Янга для другого Stretch, который был приобретён у компании MITRE.
- Агентство национальной безопасности США — в феврале 1962 года как процессор системы IBM 7950 Harvest, использовался до 1976 года, пока лентопротяжный механизм IBM 7955 не вышел из строя из-за износа узлов, не подлежащих замене.
- Ливерморская национальная лаборатория — март 1961 года. Приобрели Stretch в дополнение к своему суперкомпьютеру UNIVAC LARC. Stretch оказался примерно в два раза быстрее LARC-а[14].
- Организация по атомному оружию Великобритании в Олдермастоне.
- Национальная метеорологическая служба США.
- Корпорация MITRE (г. Бостон, США) — использовался до августа 1971 года. Весной 1972 года продан за символические 5 долларов Университету Бригама Янга (шт. Юта, США). Последний из оставшихся Stretch. Был торжественно выключен 5 сентября 1980[15].
- Полигон военно-морских сил США в Дальгрене, штат Вирджиния.
- IBM.
- Комиссариат атомной энергетики Франции.
В настоящее время IBM 7030 из Ливерморской национальной лаборатории (за исключением блоков памяти на магнитных сердечниках), а также части IBM 7030, принадлежавшие корпорации MITRE, находятся в коллекции музея компьютерной истории в Маунтин-Вью, Калифорния.
Технические характеристики
[править | править код]- разрядность машинного слова — 64 бит (плюс 8 контрольных разрядов с возможностью коррекции ошибок).
- разрядность шины адреса — 18 бит (адреса операндов могут содержать дополнительные 6 бит для указания смещения в пределах слова).
- длина инструкции — 32 или 64 бита.
- точность промежуточных вычислений — 128 бит.
- время операции сложения чисел с плавающей запятой — 1,38-1,5 микросекунды.
- время умножения чисел с плавающей запятой — 2,48-2,70 микросекунды.
- время деления чисел с плавающей запятой — 9,00-9,90 микросекунды.
- число каналов ввода-вывода — до 32.
- число транзисторов — около 170 000.
- тип логических элементов — переключатели тока (ЭСЛ)[16].
- память на магнитных сердечниках от 16 K до 256 K слов (в стандартной поставке - 96 К слов, объединённых в два блока — на 64 К слов с 4-кратным расслоением и на 32 К слов с 2-кратным расслоением). Память погружалась в масло для температурной стабилизации характеристик магнитных сердечников.
Архитектура
[править | править код]Форматы данных
[править | править код]IBM 7030 имел аппаратную поддержку работы с битовыми полями в машинном слове. Это позволяло работать с типами данных переменной длины.
- Целые числа могли быть переменной длины и хранились либо в двоичном (от 1 до 64 бит), либо в десятичном (от 1 до 16 цифр) знаковом или беззнаковом формате. Отдельный разряд числа в десятичном формате мог иметь длину от 4 до 8 бит. Значимыми были только 4 младших бита, дополнительные «зональные» биты могли иметь произвольное значение. Это позволяло хранить и обрабатывать числа непосредственно в алфавитно-цифровом представлении[17].
- Числа с плавающей запятой имели фиксированный формат и содержали однобитовый флаг порядка, 10 бит порядка, 1 бит знака порядка, 48-битную мантиссу, 1 бит знака мантиссы и 3 однобитовых флага данных.
- Алфавитно-цифровые символы были переменной длины и могли использовать любую кодировку короче 8 бит.
- «Байты» были переменной длины (от 1 до 8 бит)[11].
Регистры
[править | править код]Для обращения к регистрам использовались первые 32 адреса памяти. Значения индексных регистров хранились в специальной быстродействующей памяти в составе процессора, называемой памятью индексов. Назначение регистров приведено в таблице[17].
Адрес | Мнемоническое обозначение | Регистр | Место хранения |
---|---|---|---|
0 | $Z | 64-битный регистр, всегда имеющий нулевое значение | Основная память |
1 | $IT | 19-битный интервальный таймер | Память индексов |
$TC | 36-битный регистр часов реального времени | ||
2 | $IA | 18-битный адрес таблицы прерываний | Основная память |
3 | $UB | 18-битный адрес верхней границы защищаемой области памяти | Транзисторный регистр |
$LB | 18-битный адрес нижней границы защищаемой области памяти | ||
1-битный флаг управления защитой памяти | |||
4 | 64-битный регистр режима обслуживания | Основная память | |
5 | $CA | 7-битный адрес канала ввода/вывода | Транзисторный регистр |
6 | $CPUS | 19-битный регистр связи с другими процессорами | Транзисторный регистр |
7 | $LZC | 7-битный счётчик нулей левой части результата | Транзисторный регистр |
$AOC | 7-битный счётчик единиц результата | ||
8 | $L | Левая половина 128-битного аккумулятора | Транзисторный регистр |
9 | $R | Правая половина 128-битного аккумулятора | |
10 | $SB | 8-битный байт знака аккумулятора, содержащий также 4 «зональных» бита и 3 флага данных числа | |
11 | $IND | 64-битный регистр индикаторов (флаги и признаки исключительных ситуаций) | Транзисторный регистр |
12 | $MASK | 64-битный регистр маски прерывания (каждый бит соответствует биту регистра индикаторов) | Транзисторный регистр |
13 | $RM | 64-битный регистр остатка операции деления | Основная память |
14 | $FT | 64-битный регистр множителя для операции «умножить и сложить» | Основная память |
15 | $TR | 64-битный пересылочный регистр для передачи операнда в программно реализуемые инструкции | Основная память |
16 … 31 |
$X0 … $X15 |
64-битные индексные регистры (16 штук) | Память индексов |
Примечания
[править | править код]- ↑ Flamm, Kenneth. Creating the Computer: Government, Industry and High Technology. — Washington, D.C.: Brookings Institution, 1988. — С. 21. — 210 с. — ISBN 0-8157-2849-2. Архивировано 18 сентября 2016 года. (англ.)
- ↑ Schechter, Susan. The Effects of Military and Other Government Spending on the Computer Industry: The Early Years. — Santa Monica, Calif.: RAND Corporation, 1989. — С. 33—38. Архивировано 24 сентября 2016 года. (англ.)
- ↑ Samuel Simon Snyder. History of NSA General-Purpose Electronic Digital Computers. — National Security Agency, 1964. — С. 39–64. Отсканированная версия в формате PDF Архивная копия от 4 марта 2016 на Wayback Machine (англ.)
- ↑ Simmons, 1988, с. 456.
- ↑ Encyclopedia of Computer Science / Edited by Anthony Ralston, Edwin D. Reilly and David Hemmendinger. — 4th ed. — London: Nature Publishing Group, 2000. — С. 825. — 2034 с. — ISBN 0-333-77879-0. Архивировано 27 сентября 2016 года. (англ.)
- ↑ Jake Widman. Lessons Learned: IT's Biggest Project Failures . PCWorld (9 октября 2008). Дата обращения: 4 июля 2014. Архивировано 5 ноября 2012 года.
- ↑ 1 2 Evans, 1984, с. 11.
- ↑ Evans, 1984, с. 12.
- ↑ Evans, 1984, с. 13.
- ↑ Charles Cole. The Remington Rand Univac LARC . Дата обращения: 4 июля 2014. Архивировано 26 октября 2018 года.
- ↑ 1 2 Mark Smotherman. IBM Stretch (7030) — Aggressive Uniprocessor Parallelism (июль 2010). Дата обращения: 4 июля 2014. Архивировано 2 октября 2017 года.
- ↑ 1 2 Simmons, 1988, p. 160.
- ↑ (2013) Computer Organization and Design — The Hardware-Software Interface, 5th Ed (ISBN 0124077269): 4.16 Historical Perspective and Further Reading
- ↑ Интервью с Сиднеем Фербачем . Дата обращения: 12 февраля 2017. Архивировано 3 сентября 2012 года.
- ↑ The Last IBM STRETCH Supercomputer Is Shut Down . Дата обращения: 12 февраля 2017. Архивировано 12 февраля 2017 года.
- ↑ E. J. Rymaszewski et al. Semiconductor Logic Technology in IBM // IBM Journal of Research and Development. — 1981. — Т. 25, вып. 5. — С. 607–608. — ISSN 0018-8646. — doi:10.1147/rd.255.0603. Архивировано 5 июля 2008 года.
- ↑ 1 2 IBM 7030 Data Processing System Reference Manual (PDF). IBM (1961). Дата обращения: 4 июля 2014. Архивировано 29 сентября 2018 года.
Литература
[править | править код]- Erich Bloch, "The Engineering Design of the Stretch Computer, " Proc. IRE/AIEE/ACM Eastern Joint Computer Conference, Boston, December 1959, pp. 48-58.
- (1962) Werner Buchholz, editor: Planning a Computer System: Project Stretch (ISBN 0070087202)
- Проектирование сверхбыстродействующих систем: Комплекс Стретч / под ред. В. Бухгольца; сокр. пер. с англ. В.К. Смирнова; под ред. А.И. Китова. — М.: Мир, 1965. — 384 с.
- Bob O. Evans. IBM System/360 // The Computer Museum Report. — 1984. — Вып. 9. — ISSN 0736-5438.
- (1986) IBM’s Early Computers — A Technical History (ISBN 0262523930)
- William W. Simmons. Inside IBM: the Watson years. А personal memoir. — Dorrance, 1988. — 202 с. — ISBN 978-0805931167.
- Emerson W. Pugh, Lyle R. Johnson, John H. Palmer. IBM's 360 and Early 370 Systems. — The MIT Press, 2003. — 844 p. — ISBN 0262517205. (англ.) — стр.368-424
Ссылки
[править | править код]- Oral history interview with Gene Amdahl Институт Чарльза Бэббиджа, Миннесотский университет, Миннеаполис. Интервью с Джином Амдалом.
- Коллекция IBM Stretch в музее компьютерной истории
- 7030 Data Processing System (Архивы IBM)
- IBM Stretch (aka IBM 7030 Data Processing System)
- Organization Sketch of IBM Stretch
- BRL report on the IBM Stretch
- Planning a Computer System – Project Stretch / edited by Werner Buchholz. — Mcgraw-Hill, 1962. — 336 с. — ISBN 978-0070087200.
- Документация к IBM 7030 на Bitsavers.org