IBM 7030 Stretch

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
Консоль технического обслуживания IBM 7030, выставленная в Париже в музее искусств и ремёсел

IBM 7030 — первый суперкомпьютер фирмы IBM, построенный на транзисторах. Также известен как проект Stretch. Изначально, компьютер был разработан, чтобы удовлетворять требованиям, предъявленным Эдвардом Теллером из Ливерморской национальной лаборатории. IBM проиграла этот тендер, но смогла выиграть другой, на создание компьютера для Лос-Аламосской национальной лаборатории. Поставка первого компьютера состоялась в 1961 году. Вторая, специализированная версия IBM 7950 Harvest, была поставлена Агентству национальной безопасности в 1962 году.

Неспособность компьютера достичь ожидаемого, очень амбициозного, уровня производительности, привела к необходимости снизить цену с первоначальных 13,5 миллионов долларов США до 7,78 миллионов, и прекращению продаж всем клиентам, за исключением имеющих уже подписанные контракты. Хотя 7030 оказался гораздо медленнее, чем ожидалось, он, тем не менее, был самым быстрым компьютером в мире с 1961 года до ввода в работу первого суперкомпьютера CDC 6600 в 1964 году. Журнал PCWorld назвал Stretch одним из крупнейших провалов в управлении проектами в истории информационных технологий[1].

Несмотря на то, что Stretch не достиг заявленного уровня производительности, он послужил основой для многих архитектурных решений коммерчески чрезвычайно успешной системы IBM System/360, анонсированной в 1964 году. Первоначально руководитель проекта подвергся критике за свою роль в провале и был переведен в исследовательские лаборатории, но, когда успех серии 360 стал очевиден, ему были принесены официальные извинения, а сам он получил должность IBM Fellow.

История создания[править | править вики-текст]

В начале 1955 года радиационной лаборатории Калифорнийского университета понадобилась новая научная вычислительная система для трёхмерных гидродинамических вычислений. Для новой системы, названной Livermore Automatic Reaction Calculator (Ливерморский автоматический калькулятор реакций) или LARC, у фирм IBM и UNIVAC были запрошены технические предложения. Согласно оценке директора подразделения электронных машин обработки данных IBM Катберта Хёрда (англ. Cuthbert Hurd), такая система должна была стоить примерно 2,5 миллиона долларов США и иметь производительность от одного до двух MIPS. Поставка машины должна была состояться через два или три года после подписания контракта[2].

В IBM небольшая команда разработчиков из Покипси, включавшая Джона Гриффита и Джина Амдала, работала над проектной заявкой. Когда они завершили работу и готовились провести презентацию, инженер Ральф Палмер остановил их и назвал решение ошибочным[2]. В проекте предлагалось использовать либо точечные, либо поверхностно-барьерные транзисторы, которые должны были проигрывать по своим характеристикам недавно разработанным диффузионным транзисторам[2].

Представители IBM вернулись в Ливермор и заявили, что выходят из договора, предложив взамен создать значительно лучшую систему. «Мы не будем создавать для Вас такую машину. Мы хотим создать нечто лучшее! Мы не знаем точно, что для этого потребуется, но думаем, что это будет ещё один миллион долларов и ещё один год разработки. Также мы не знаем, насколько быстро эта машина будет работать, но нам хотелось бы достигнуть десяти миллионов операций в секунду.»[2] На руководство лаборатории в Ливерморе это не произвело должного впечатления, и в мае 1955 года было объявлено, что тендер на создание компьютера LARC (теперь называвшегося Livermore Automatic Research Computer, Ливерморский автоматический исследовательский вычислитель) выиграла компания UNIVAC. В конечном итоге LARC будет поставлен в июне 1960 года[3].

В сентябре 1955 года, опасаясь, что Лос-Аламосская национальная лаборатория также может заказать компьютер LARC, компания IBM представила предварительную заявку на высокопроизводительный двоичный компьютер, основанный на улучшенной версии проекта, отклоненного лабораторией в Ливерморе. К заявке в лаборатории был проявлен интерес. В январе 1956 года проект Stretch стартовал официально. В ноябре 1956 года компания IBM выиграла тендер, установив высокую планку производительности, «как минимум в 100 раз превышающую производительность IBM 704» (примерно 4 MIPS). Поставка была запланирована на 1960 год[4].

Во время проектирования оказалось необходимо снизить тактовую частоту, в результате чего стало очевидно, что 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 в музее науки имени Брэдбери в Лос-Аламосе.

Хотя 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[5]. В 1966 году ему были принесены официальные извинения, а сам он получил почетную должность IBM Fellow, давшую ему ресурсы и полномочия вести собственное направление исследований[5].

Технологии конвейеризации инструкций, предвыборки кода и расслоения памяти были использованы в более поздних конструкциях суперкомпьютеров как IBM (например, моделях 91 и 95 серии IBM System/360, модели 195 серии IBM System/370, серии IBM 3090), так и других производителей. До настоящего времени эти технологии продолжают использоваться в большинстве современных микропроцессоров, начиная с Intel Pentium и Motorola/IBM PowerPC, как и во многих встраиваемых микропроцессорах и микроконтроллерах от различных производителей.

Поставки IBM 7030 заказчикам[править | править вики-текст]

  1. Лос-Аламосская национальная лаборатория — в апреле 1961 года, принят в эксплуатацию в мае 1961 года, использовался до 21 июня 1971 года.
  2. Агентство национальной безопасности США — в феврале 1962 года как процессор системы IBM 7950 Harvest, использовался до 1976 года, пока лентопротяжный механизм IBM 7955 не вышел из строя из-за износа узлов, не подлежащих замене.
  3. Ливерморская национальная лаборатория - март 1961 года
  4. Организация по Атомному Оружию Великобритании в Олдермастоне.
  5. Национальная метеорологическая служба США.
  6. Корпорация MITRE — использовался до августа 1971 года. Весной 1972 года продан Университету Бригама Янга.
  7. Полигон военно-морских сил США в Дальгрене, штат Вирджиния.
  8. IBM.
  9. Комиссариат атомной энергетики Франции.

В настоящее время 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.
  • число транзисторов — около 170000.
  • тип логических элементов — переключатели тока (ЭСЛ)[6].
  • память на магнитных сердечниках от 16K до 256K слов (в стандартной поставке 96К слов, объединённых в два блока — на 64К слов с 4-х кратным расслоением и на 32К слов с 2-х кратным расслоением). Память погружалась в масло для температурной стабилизации характеристик магнитных сердечников.

Архитектура[править | править вики-текст]

Форматы данных[править | править вики-текст]

IBM 7030 имел аппаратную поддержку работы с битовыми полями в машинном слове. Это позволяло работать с типами данных переменной длины.

  • Целые числа могли быть переменной длины и хранились либо в двоичном (от 1 до 64 бит), либо в десятичном (от 1 до 16 цифр) знаковом или беззнаковом формате. Отдельный разряд числа в десятичном формате мог иметь длину от 4 до 8 бит. Значимыми были только 4 младших бита, дополнительные «зональные» биты могли иметь произвольное значение. Это позволяло хранить и обрабатывать числа непосредственно в алфавитно-цифровом представлении[7].
  • Числа с плавающей запятой имели фиксированный формат и содержали однобитовый флаг порядка, 10 бит порядка, 1 бит знака порядка, 48-битную мантиссу, 1 бит знака мантиссы и 3 однобитовых флага данных.
  • Алфавитно-цифровые символы были переменной длины и могли использовать любую кодировку короче 8 бит.
  • «Байты» были переменной длины (от 1 до 8 бит)[4].

Регистры[править | править вики-текст]

Для обращения к регистрам использовались первые 32 адреса памяти. Значения индексных регистров хранились в специальной быстродействующей памяти в составе процессора, называемой памятью индексов. Назначение регистров приведено в таблице[7].

Адрес Мнемоническое обозначение Регистр Место хранения
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 штук) Память индексов

Примечания[править | править вики-текст]

  1. Jake Widman. Lessons Learned: IT's Biggest Project Failures. PCWorld (9 октября 2008).
  2. 1 2 3 4 Evans, 1984
  3. Charles Cole. The Remington Rand Univac LARC.
  4. 1 2 Mark Smotherman. IBM Stretch (7030) — Aggressive Uniprocessor Parallelism (июль 2010).
  5. 1 2 Simmons, 1988, p. 160
  6. E. J. Rymaszewski et al. Semiconductor Logic Technology in IBM // IBM Journal of Research and Development. — 1981. — В. 5. — Т. 25. — С. 607–608. — ISSN 0018-8646. — DOI:10.1147/rd.255.0603
  7. 1 2 IBM 7030 Data Processing System Reference Manual (PDF). IBM (1961).

Литература[править | править вики-текст]

  • Bob O. Evans IBM System/360 // The Computer Museum Report. — 1984. — В. 9. — ISSN 0736-5438.
  • William W. Simmons Inside IBM: the Watson years. А personal memoir. — Dorrance, 1988. — 202 с. — ISBN 978-0805931167.

Внешние ссылки[править | править вики-текст]