stringtranslate.com

ЦКЗ 7600

CDC 7600 был разработан Сеймуром Крэем в качестве преемника CDC 6600 , расширяя доминирование Control Data в области суперкомпьютеров до 1970-х годов. [6] 7600 работал на частоте 36,4 МГц (тактовый цикл 27,5 нс) и имел 65 Кслов основной памяти (с размером слова 60 бит) с использованием магнитного сердечника и переменной по размеру (до 512 Кслов) вторичной памяти (в зависимости от места). Он был в целом примерно в десять раз быстрее CDC 6600 и мог обеспечить около 10 MFLOPS на скомпилированном вручную коде с пиком в 36 MFLOPS. [7] Кроме того, в ходе бенчмарк-тестов в начале 1970 года было показано, что система немного быстрее своего конкурента IBM , IBM System/360 , модель 195. [8] Когда система была выпущена в 1967 году, она продавалась примерно за 5 миллионов долларов в базовой конфигурации, [9] и значительно дороже по мере добавления опций и функций.

Среди примечательных достижений 7600, помимо обширной конвейеризации , была физическая С-образная форма, которая одновременно сократила занимаемую площадь и значительно [10] повысила производительность за счет сокращения расстояния, необходимого для прохождения сигналов. [11]

Дизайн

Сборка CDC 7600 в LLNL

Когда 6600 приблизился к производственному качеству, Крей потерял к нему интерес и занялся разработкой его замены. Сделать машину «немного» быстрее было бы не так уж и сложно в конце 1960-х; внедрение интегральных схем позволило более плотно упаковать компоненты и, в свою очередь, повысить тактовую частоту. Транзисторы в целом также становились немного быстрее [12] по мере улучшения производственных процессов и качества. Можно было бы ожидать, что подобные улучшения сделают машину в два раза быстрее, возможно, даже в пять раз. Однако, как и в случае с конструкцией 6600, Крей поставил себе цель создать машину с десятикратной производительностью.

Одна из причин, по которой 6600 был намного быстрее своих современников, заключалась в том, что у него было несколько функциональных блоков, которые могли работать параллельно. [13] Например, машина могла выполнять сложение двух чисел, одновременно умножая два других. Однако любая заданная инструкция должна была завершить свой путь через блок, прежде чем в него могла быть загружена следующая, что вызывало узкое место, когда в системе планировщика заканчивались инструкции. Добавление большего количества функциональных блоков не улучшало производительность, если только планировщик также не был значительно улучшен, особенно с точки зрения предоставления ему большего количества памяти, чтобы он мог просматривать больше инструкций для тех, которые можно было бы загрузить в параллельные блоки. Это, по-видимому, было серьезной проблемой.

Чтобы решить эту проблему, Крей обратился к концепции конвейера инструкций . Каждый функциональный блок состоял из нескольких секций, которые работали по очереди, например, блок сложения мог иметь схему, предназначенную для извлечения операндов из памяти, затем собственно математический блок и, наконец, еще один для отправки результатов обратно в память. В любой момент времени была активна только одна часть блока, в то время как остальные ждали своей очереди. Конвейер улучшает это, подавая следующую инструкцию до того, как первая завершится, используя это время простоя. Например, пока одна инструкция складывается, операнды для следующей инструкции сложения могут быть извлечены. Таким образом, как только текущая инструкция завершается и перемещается в выходную схему, операнды для следующего сложения уже ждут добавления. Таким образом, каждый функциональный блок работает «параллельно», [14] , как и машина в целом. Улучшение производительности обычно зависит от количества шагов, которые блок выполняет для завершения. Например, блоку умножения процессора 6600 требовалось 10 циклов для выполнения инструкции, поэтому за счет конвейеризации блоков можно было бы ожидать увеличения скорости примерно в 10 раз.

Однако все не так просто. Конвейеризация требует, чтобы внутренние компоненты устройства могли быть эффективно разделены до такой степени, чтобы каждый шаг операции выполнялся на совершенно отдельной схеме. Это редко достижимо в реальном мире. Тем не менее, использование конвейеризации на 7600 улучшило производительность по сравнению с 6600 примерно в 3 раза. Чтобы достичь остальной цели, машина должна была работать на более высокой скорости, что теперь возможно с использованием новых конструкций транзисторов. Однако существует физическое ограничение производительности из-за времени, необходимого сигналам для перемещения между частями машины, которое, в свою очередь, определяется ее физическим размером. Как всегда, проектная работа Cray потратила значительные усилия на эту проблему и, таким образом, позволила использовать более высокие рабочие частоты. Для 7600 каждый модуль схемы фактически состоял из шести печатных плат , каждая из которых была напичкана сверхминиатюрными резисторами, диодами и транзисторами. Шесть плат были сложены друг на друга, а затем соединены по краям, что сделало модуль очень компактным, но в основном неремонтопригодным.

Однако та же плотная упаковка также привела к самой большой проблеме машины — нагреву. Для 7600 Крей снова обратился к своему инженеру по холодильной технике Дину Раушу, ранее работавшему в компании Amana . Рауш добавил алюминиевую пластину на заднюю часть каждой стороны штабеля кордвуда , которые, в свою очередь, охлаждались жидкостно-фреоновой системой [15], проходящей через ядро ​​машины. Поскольку эта система была механической и, следовательно, склонной к отказам, 7600 была перепроектирована в большую форму «С», чтобы обеспечить доступ к модулям по обе стороны от охлаждающего трубопровода, войдя внутрь «С» и открыв шкаф. [11]

Архитектура

7600 был архитектурной вехой, и большинство его функций до сих пор являются стандартными частями компьютерного дизайна. Это компьютер с загрузкой и хранением с 15-битным командным словом, содержащим 6-битный код операции. Всего 64 машинных кода, включая код без операции , без операций умножения или деления с фиксированной точкой в ​​центральном процессоре.

7600 имеет две основные основные памяти. Малая память на ядре хранит инструкции, которые в данный момент выполняются, и данные, которые в данный момент обрабатываются. Она имеет время доступа 10 из 27,5-нс второстепенных циклов и длину слова 60 бит. Большая память на ядре хранит данные, готовые к передаче в малую память на ядре. Она имеет время доступа 60 из 27,5-нс второстепенных циклов и длину слова 480 бит (512 бит с четностью). [4] Доступ полностью конвейерный и буферизованный, поэтому обе имеют одинаковую скорость последовательной передачи 60 бит каждые 27,5 нс. Две работают параллельно, поэтому скорость последовательной передачи от одной к другой составляет 60 бит за 27,5 нс второстепенный цикл. При вызове операционной системы содержимое малой памяти на ядре выгружается и заменяется из большой памяти на ядре операционной системой, а затем восстанавливается.

Существует конвейер инструкций из 12 слов, называемый в документации CDC стеком командных слов. [4] Все адреса в стеке извлекаются без ожидания обработки поля команд. Таким образом, выборка целевой инструкции условного перехода предшествует оценке условия перехода. Во время выполнения цикла из 10 слов (до 40 команд) все необходимые инструкции остаются в стеке, поэтому никакие команды не извлекаются, оставляя небольшую память ядра свободной для передачи данных.

Существует восемь 60-битных регистров, каждый с адресным регистром. [4] Перемещение адреса в адресный регистр запускает небольшое чтение или запись основной памяти. Арифметические и логические инструкции используют эти регистры в качестве источников и пунктов назначения. Программист или компилятор пытается извлечь данные вовремя для использования и сохранить данные до того, как больше данных будут нуждаться в том же регистре, но если он не готов, процессор переходит в состояние ожидания, пока он не будет готов. Он также ждет, если один из четырех арифметических блоков с плавающей точкой не готов к запросу, но из-за конвейеризации этого обычно не происходит. [16]

Связь с CDC 6600

CDC 7600 «был разработан так, чтобы быть совместимым по машинному коду с 6600, но при этом обеспечивать существенное увеличение производительности». [17] [18] Один пользователь сказал: «Большинство пользователей могут работать на любой системе без изменений». [8]

Хотя 7600 разделял многие функции 6600, включая аппаратное обеспечение, инструкции и 60-битный размер слова, он не был совместим по объектному коду с CDC 6600. [19] [8] Кроме того, он не был полностью совместим по исходному коду ( COMPASS ), так как некоторые инструкции в 7600 не существовали в 6600, и наоборот. Первоначально он был назван CDC 6800, [20] но был изменен на 7600, когда Cray решил, что он не может быть полностью совместимым. Однако из-за конструкции операционной системы 7600, 6600 и 7600 разделяли «единую программную среду», несмотря на низкоуровневые различия. [8]

На самом деле, с точки зрения высокого уровня, 7600 был очень похож на 6600. В то время компьютерная память могла быть организована в блоки с независимыми путями доступа, и разработки Cray использовали это в своих интересах. В то время как большинство машин использовали бы один ЦП для выполнения всех функций системы, Cray понял, что это означало бы, что каждый блок памяти проводил бы значительное количество времени в режиме ожидания, пока ЦП обрабатывал инструкции и обращался к другим блокам. Чтобы воспользоваться этим преимуществом, 6600 и 7600 оставили рутинные задачи по обслуживанию, например, печать вывода или чтение перфокарт , серии из десяти меньших 12-битных машин на основе CDC 160-A, известных как «периферийные процессорные блоки» или PPU. [21] Для любого заданного цикла машины один из PPU был управляющим, подавая данные в память, пока главный процессор обрабатывал числа. Когда цикл завершался, управление передавалось следующему PPU. Таким образом, память всегда содержала актуальную информацию для работы главного процессора (исключая задержки во внешних устройствах), устраняя задержки данных, а также позволяя CPU быть построенным для математической производительности и ничего больше. PPU можно было бы назвать очень умным «каналом связи».

Как и 6600, 7600 использовал 60-битные слова с инструкциями, которые обычно были длиной 15 бит, хотя были также 30-битные инструкции. Инструкции были упакованы в 60-битные слова, но 30-битная инструкция не могла охватывать два слова, и управление могло быть передано только первой инструкции в слове. Однако сам набор инструкций изменился, чтобы отразить новую внутреннюю структуру памяти, тем самым сделав ее несовместимой с более ранней 6600. Машины были достаточно похожи, чтобы сделать возможным портирование компиляторов и операционных систем без особых проблем. Изначально машина не поставлялась с программным обеспечением; сайты должны были быть готовы написать свою собственную операционную систему, такую ​​как LTSS, NCAROS и другие; и компиляторы, такие как LRLTRAN (версия Fortran Ливермора с динамическим управлением памятью и другими нестандартными функциями).

CDC также изготовила два многопроцессорных компьютера на основе 7600 с номером модели 7700. [22] Они состояли из двух машин 7600 в асимметричной конфигурации: центральной и вспомогательной машины. Они использовались для запуска ракет и отслеживания входящих МБР СССР . Симулятор радара был симулятором реального времени с CDC 6400 для входного/выходного интерфейса. Эти системы должны были использоваться на Тихоокеанском ракетном полигоне . Один компьютер был установлен в TRW в Редондо-Бич, Калифорния (позже перемещен на атолл Кваджалейн, южная часть Тихого океана), а второй был установлен в McDonnell Douglas в Хантингтон-Бич, Калифорния . Это были настоящие 7600, соединенные шасси 25, чтобы сделать их 7600 MP.

Прием и использование

Примерно с 1969 по 1975 год CDC 7600 считался самым быстрым компьютером в мире [7] , за исключением специализированных устройств. Однако даже с передовой механикой и охлаждением 7600 был склонен к отказам. И LLNL , и NCAR сообщали, что машина ломалась по крайней мере один раз в день, а часто и четыре или пять раз. Принятие на местах установки заняло годы, пока устранялись ошибки, и хотя машина в целом продавалась достаточно хорошо, учитывая ее «высококлассную» нишу, маловероятно, что она принесла CDC какую-либо реальную прибыль. Преемник CDC 8600 так и не был завершен, и Сеймур Крэй основал свою собственную компанию Cray Research . [7]

Один из сохранившихся 7600 частично выставлен в Музее компьютерной истории . [9] Его огромные размеры позволяют выставить только два угловых блока. Остальные находятся на хранении. Еще один 7600 выставлен в Музее промышленности и технологий Чиппева-Фолс вместе с его консолью и контроллером ленты.

Ссылки

  1. ^ ab Adams Survey 1968, стр. 12, легенда - 3
  2. В 1978 году журнал Science сообщил, что CDC продала «400 моделей CDC 6600 и 75 моделей CDC 7600».
  3. ^ abc CDC 7600 подготовка площадки, май 76
  4. ^ abcde CDC 7600 Справочное руководство, февраль 71 г.
  5. ^ Презентация CDC 7600 Гордона Белла из Microsoft Research
  6. ^ "CDC 7600". Архивировано из оригинала 2016-05-15 . Получено 2010-04-08 .
  7. ^ abc Гордон Белл. Точка зрения Сеймура Крэя. Архивировано 15 мая 2016 г. на Wayback Machine .
  8. ^ abcd "Control Data Corporation (CDC) 7600: 1971–1983". Computational and Information Systems Laboratory . University Corporation for Atmospheric Research. Архивировано из оригинала 20 июля 2011 г. Получено 25 сентября 2011 г.
  9. ^ ab "7600 Supercomputer". Коллекции . Музей истории компьютеров. Архивировано из оригинала 3 октября 2012 года . Получено 25 сентября 2011 года .
  10. ^ Умножьте на десять.
  11. ^ ab "7600 в Ливерморе".
  12. ^ «Они также были более чем в десять раз быстрее ранних МОП-транзисторов» «Параллельная работа в Control Data 6600» (PDF) .
  13. ^ JE Thornton (1980). «Проект CDC 6600». IEEE Annals of the History of Computing . 2 (4): 338–348. doi :10.1109/MAHC.1980.10044. S2CID  5905504.
  14. ^ "параллельные функциональные блоки" Энтони, Себастьян (10 апреля 2012 г.). "История суперкомпьютеров". Extremetech .
  15. ^ Эдвин Д. Рейли (2003). Вехи в компьютерной науке и информационных технологиях . ISBN 978-1573565219.
  16. Лекция, прочитанная представителем CDC в компьютерном центре Калифорнийского университета в Лос-Анджелесе примерно в 1970 году.
  17. ^ Архитектура высокопроизводительных компьютеров. IBBETT. 2013. ISBN 978-1475767155.
  18. ^ «Буферизация инструкций в CDC 7600».
  19. ^ Это не значит, что не было обратной совместимости , когда что-то из старого работает на новом.
  20. ^ Pugh, Emerson W.; Johnson, Lyle R.; Palmer, John H. (1991). IBM 360 и ранние 370 системы . MIT Press. стр. 388. ISBN 978-0-262-16123-7.
  21. ^ «Компьютерная система Control Data 7600» (PDF) .
  22. В конце концов они были выставлены на продажу: 2 CDC 7700, 1 CDC 6400; 6 IBM 3033 также были выставлены на продажу. «Продается». InfoWorld . 27 июля 1981 г., стр. 49.

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

Фото