CDC 6600 - CDC 6600

CDC 6600
CDC 6600 Overview.png
3D-рендеринг с фигурой в масштабе
Дизайн
Производитель Корпорация Control Data
Дизайнер Сеймур Крей
Дата выхода Сентябрь 1964
Проданных единиц 100+
Цена 2 370 000 долларов США (что эквивалентно 19 780 000 долларов США в 2020 году)
Кожух
Габаритные размеры Высота: 2000 мм (79 дюймов)
Ширина корпуса: 810 мм (32 дюйма)
Длина корпуса: 1710 мм (67
дюймов ) Общая ширина: 4190 мм (165 дюймов)
Масса около 12000 фунтов (6,0 коротких тонн; 5,4 т)
Власть 30 кВт при 208 В 400 Гц
Система
Операционная система СФЕРА, КРОНОС
Процессор 60-битный процессор @ 10 МГц
объем памяти До 982 килобайт (131000 x 60 бит)
MIPS 2 MIPS
Предшественник CDC 1604
Преемник CDC 7600

Ортогональный чертеж CDC 6600 в двух проекциях с масштабированием
CDC 6600. За системной консолью находятся два «плеча» шкафа в форме знака «плюс» с открытыми крышками. Отдельные модули можно увидеть внутри. Стойки, на которых установлены модули, откидываются, чтобы обеспечить доступ к стойкам позади них. На каждом плече машины было до четырех таких стоек. Справа - система охлаждения.
Системная консоль CDC 6600 . Этот дизайн был серьезным нововведением, поскольку экраны и клавиатура заменили сотни переключателей и мигающих индикаторов, обычных в современных системных консолях. Эти дисплеи были вытеснены с помощью программного обеспечения, в первую очередь , чтобы обеспечить отображение текста в выборе трех размеров. Он также давал возможность рисовать простую графику. В отличие от более современных дисплеев, консоль представляла собой систему векторной графики , а не растровую . На консолях был один шрифт , где каждый глиф представлял собой серию векторов. Автозаполнение частей ключевых слов позволило ускорить ввод команд.

CDC 6600 был флагманом серии 6000 из мэйнфреймов компьютерных систем , выпускаемых корпорацией Data Control . Обычно считается первым успешным суперкомпьютером , он в три раза превзошел предыдущего рекордсмена отрасли, IBM 7030 Stretch . Обладая производительностью до трех  мегафлопс , CDC 6600 был самым быстрым компьютером в мире с 1964 по 1969 год, когда он уступил этот статус своему преемнику, CDC 7600 .

Первые CDC 6600 были доставлены в 1965 году в Ливермор и Лос-Аламос . Они быстро стали незаменимыми системами в высокотехнологичных научных и математических вычислениях, причем системы поставлялись в Институт математических наук Куранта , ЦЕРН , Радиационную лабораторию Лоуренса и многие другие. Всего было доставлено не менее 100 штук.

CDC 6600 выставлен в Музее компьютерной истории в Маунтин-Вью, Калифорния . Единственная работающая машина серии CDC 6000 была восстановлена ​​компанией Living Computers: Museum + Labs .

История и влияние

Первые продукты CDC были основаны на машинах, разработанных в ERA , которые Сеймуру Крею было предложено обновить после перехода на CDC. После экспериментальной машины, известной как Little Character , в 1960 году они представили CDC 1604 , один из первых коммерческих компьютеров на базе транзисторов и одну из самых быстрых машин на рынке. Руководство было в восторге и составило план по выпуску новой серии машин, более приспособленных для использования в бизнесе; они будут включать, например, инструкции по работе с персонажами и ведению записей. Крей не был заинтересован в таком проекте и поставил перед собой цель произвести новую машину, которая будет в 50 раз быстрее, чем 1604. Когда его попросили составить подробный отчет о планах на один и пять лет вперед, он написал в ответ. что его пятилетняя цель заключалась в том, чтобы «произвести самый большой компьютер в мире», «самый большой» в то время был синонимом «самого быстрого», и что его годичный план был «достичь одной пятой пути».

Принимая свою основную команду в новые офисы близлежащих оригинального штаба - квартира CDC, они начали экспериментировать с более высокими версиями качества «дешевыми» транзисторов которые использовали Cray в 1604 году после долгих экспериментов, они обнаружили , что не был просто никаким способом , германий основанных транзисторы могли работать намного быстрее, чем те, что использовались в 1604. «Бизнес-машина», которую руководство изначально хотело, теперь сформировавшаяся как серия CDC 3000 , подтолкнуло их настолько далеко, насколько они могли. Затем Крей решил, что решение состоит в том, чтобы работать с новыми на тот момент кремниевыми транзисторами от Fairchild Semiconductor , которые только что появлялись на рынке и предлагали значительно улучшенные характеристики переключения.

За это время CDC превратился из стартапа в крупную компанию, и Крей все больше разочаровывался в том, что он считал нелепыми требованиями к менеджменту. Ситуация стала значительно более напряженной в 1962 году, когда новый CDC 3600 начал приближаться к качеству производства и оказался именно тем, чего хотели и когда хотели. В конце концов Крей сказал генеральному директору CDC Уильяму Норрису , что что-то нужно изменить, иначе он уйдет из компании. Норрис чувствовал, что он слишком важен, чтобы терять его, и дал Крею зеленый свет на создание новой лаборатории там, где он хотел.

После непродолжительных поисков Крей решил вернуться в свой родной город Чиппева-Фоллс, штат Висконсин , где он купил участок земли и открыл новую лабораторию.

Хотя этот процесс привел к довольно длительной задержке в разработке его новой машины, как только он попал в новую лабораторию, без вмешательства руководства дела пошли быстро. К этому времени новые транзисторы становились достаточно надежными, и модули, построенные на них, как правило, работали нормально с первого раза. 6600 начал обретать форму, и Крей работал вместе с Джимом Торнтоном, системным архитектором и «скрытым гением» 6600.

За время эксплуатации машины было продано более 100 CDC 6600. Многие из них пошли в различные лаборатории, связанные с ядерным оружием , и довольно много нашли путь в вычислительные лаборатории университетов. Крей немедленно обратил свое внимание на его замену, на этот раз поставив цель в десять раз повысить производительность 6600, поставляемого как CDC 7600 . Более поздние компьютеры CDC Cyber 70 и 170 были очень похожи на CDC 6600 по общему дизайну и были почти полностью обратно совместимы.

6600 был в три раза быстрее, чем предыдущий рекордсмен IBM 7030 Stretch ; это встревожило IBM . Тогдашний генеральный директор Томас Уотсон-младший написал служебную записку своим сотрудникам: «На прошлой неделе Control Data ... объявила о создании системы 6600. Я понимаю, что в лаборатории, разрабатывающей систему, работают только 34 человека, включая уборщика. Из них 14 человек. являются инженерами, а четверо - программистами ... Сравнивая эти скромные усилия с нашими обширными разработками, я не понимаю, почему мы потеряли лидирующие позиции в отрасли, позволив кому-то другому предложить самый мощный компьютер в мире ». Ответ Крея был сардоническим: «Похоже, мистер Ватсон ответил на свой вопрос».

Описание

Типичные машины той эпохи использовали один процессор для управления всей системой. Типичная программа сначала загружает данные в память (часто с использованием предварительно свернутого библиотечного кода), обрабатывает их, а затем записывает обратно. Это требовало, чтобы центральные процессоры были довольно сложными, чтобы обрабатывать полный набор инструкций, которые они должны были бы выполнять. Сложный ЦП предполагал наличие большого ЦП, что приводило к задержкам передачи сигналов при передаче информации между отдельными модулями, составляющими его. Эти задержки устанавливают максимальный верхний предел производительности, поскольку машина могла работать только с такой скоростью цикла, которая позволяла сигналам достигать следующего модуля.

Крей применил другой подход. В то время процессоры обычно работали медленнее, чем основная память, к которой они были подключены. Например, процессору может потребоваться 15 циклов для умножения двух чисел, в то время как каждый доступ к памяти занимает всего один или два цикла. Это означало, что было значительное время, когда основная память бездействовала. Именно этот простой и эксплуатировал 6600.

В CDC 6600 использовался упрощенный центральный процессор (ЦП), который был разработан для максимально быстрого выполнения математических и логических операций, что потребовало его создания как можно меньшего размера, чтобы уменьшить длину проводки и связанные с ней задержки передачи сигналов. Это привело к тому, что основное шасси машины (как правило) имело крестообразную форму с печатными платами для ЦП, расположенными близко к центру, что привело к гораздо меньшему размеру ЦП. В сочетании с более высокой скоростью переключения кремниевых транзисторов новый ЦП работал на частоте 10 МГц (цикл 100 нс), что примерно в десять раз быстрее, чем другие машины на рынке. В дополнение к тому, что тактовая частота была быстрее, простой процессор выполнял инструкции за меньшее количество тактовых циклов; например, ЦП может выполнить умножение за десять циклов.

Поддержку ЦП обеспечивали десять 12-битных периферийных процессоров (PP) по 4 КиБ, каждый из которых имел доступ к общему пулу из 12 каналов ввода-вывода , которые обрабатывали ввод и вывод, а также контролировали, какие данные отправлялись в центральную память для обработки. КП. PP были разработаны для доступа к памяти в то время, когда ЦП был занят выполнением операций. Это позволяло им выполнять ввод / вывод практически бесплатно с точки зрения времени центральной обработки, максимально загружая ЦП.

В CP 6600 использовалось 60-битное слово и представление целых чисел с дополнением до единиц , что позже стали использовать машины CDC до конца 1980-х, что сделало их последними системами, помимо некоторых DSP, которые использовали эту архитектуру.

Позже CDC предложила варианты количества и типа CP, PP и каналов, например, у CDC 6700 были 6400 CP и 6600 CP.

Периферийные процессоры (характеристики)

Однако ЦП мог выполнять только ограниченное количество простых инструкций. Типичный ЦП той эпохи имел сложный набор инструкций , который включал инструкции для выполнения всех обычных «служебных» задач, таких как доступ к памяти и ввод / вывод . Вместо этого Cray реализовал эти инструкции в отдельных, более простых процессорах, предназначенных исключительно для этих задач, оставив ЦП с гораздо меньшим набором инструкций. Это был первый проект, который позже стал называться компьютером с сокращенным набором команд (RISC).

Благодаря возможности параллельной работы ЦП, периферийных процессоров (PP) и ввода-вывода, конструкция значительно повысила производительность машины. В нормальных условиях машина с несколькими процессорами также будет стоить намного дороже. Ключом к конструкции 6600 было сделать процессоры ввода-вывода, известные как периферийные процессоры (PP), как можно более простыми. PP были основаны на простом 12-битном CDC 160-A , который работал намного медленнее, чем CPU, собирая данные и передавая их в виде пакетов в основную память с высокой скоростью через выделенное оборудование.

10 PP были реализованы виртуально; было аппаратное обеспечение ЦП только для одного ПП. Это аппаратное обеспечение ЦП было общим и работало с 10 наборами регистров PP, которые представляли каждое из 10 состояний PP (аналогично современным многопоточным процессорам). Цилиндр регистра PP будет «вращаться», при этом каждый набор регистров PP будет представлен в «слоте», который фактически занимает ЦП PP. Общий процессор будет выполнять всю или некоторую часть инструкции PP, после чего барабан снова «вращается», представляя следующий набор регистров PP (состояние). Для выполнения инструкции требовалось несколько «поворотов» ствола. Полное «вращение» ствола происходило за 1000 наносекунд (100 наносекунд на PP), и для выполнения инструкции могло потребоваться от одного до пяти «вращений» ствола или больше, если это была инструкция передачи данных.

Архитектура набора команд

Основой для ЦП 6600 является то, что сегодня назвали бы системой RISC , в которой процессор настроен на выполнение сравнительно простых инструкций с ограниченным и четко определенным доступом к памяти. Философия многих других машин заключалась в использовании сложных инструкций - например, одной инструкции, которая извлекала бы операнд из памяти и добавляла его к значению в регистре. В 6600 для загрузки значения из памяти потребуется одна инструкция, а для ее добавления потребуется вторая. Хотя теоретически это было медленнее из-за дополнительных обращений к памяти, тот факт, что в хорошо спланированном коде несколько инструкций могли обрабатываться параллельно, уменьшал эти расходы. Это упрощение также вынудило программистов быть очень осведомленными о своих доступах к памяти, и поэтому код намеренно сокращал их насколько возможно.

Модели

Серия CDC 6000 включала четыре базовые модели: CDC 6400 , CDC 6500 , CDC 6600 и CDC 6700. Модели серии 6000 различались только процессорами, которые были двух типов: 6400 CPU и 6600. ПРОЦЕССОР. ЦП 6400 имел унифицированный арифметический блок, а не дискретные функциональные блоки . Таким образом, он не может перекрывать время выполнения инструкций. Например, в ЦП 6400, если инструкция сложения следует сразу за инструкцией умножения, инструкция сложения не может быть запущена до завершения инструкции умножения, поэтому чистое время выполнения двух инструкций будет суммой их индивидуального времени выполнения. ЦП 6600 имел несколько функциональных блоков, которые могли работать одновременно, то есть « параллельно », что позволяло ЦП перекрывать время выполнения инструкций. Например, ЦП 6600 может начать выполнение инструкции сложения в следующем цикле ЦП, следующем за началом инструкции умножения (конечно, при условии, что результат инструкции умножения не был операндом инструкции сложения), поэтому net время выполнения двух инструкций будет просто (более длительным) временем выполнения инструкции умножения. ЦП 6600 также имел стек инструкций , своего рода кэш инструкций , который помог увеличить пропускную способность ЦП за счет сокращения времени простоя ЦП, вызванного ожиданием ответа памяти на запросы выборки инструкций. Эти два типа ЦП были совместимы с инструкциями, так что программа, работающая на одном из типов ЦП, работала бы одинаково на другом типе, но работала бы быстрее на ЦП 6600. Действительно, все модели серии 6000 были полностью совместимы. У CDC 6400 был один ЦП (6400 ЦП), у CDC 6500 было два ЦП (оба по 6400 ЦП), у CDC 6600 был один ЦП (ЦП 6600), а у CDC 6700 было два ЦП (один 6600 ЦП и один 6400 ЦП). ПРОЦЕССОР).

Центральный процессор (ЦП)

Регистры CDC 6x00
5 9 . . . 1 7 . . . 0 0 (битовая позиция)
Регистры операндов (60 бит)
X0 Регистр 0
X1 Регистр 1
X2 Регистр 2
X3 Регистр 3
X4 Регистр 4
X5 Регистр 5
X6 Регистр 6
X7 Регистр 7
Регистры адреса (18 бит)
  A0 Адрес 0
  A1 адрес 1
  A2 Адрес 2
  A3 Адрес 3
  A4 Адрес 4
  A5 Адрес 5
  A6 Адрес 6
  A7 Адрес 7
Регистры инкремента (18 бит)
  B0 (все биты нулевые) Приращение 0
  B1 Приращение 1
  Би 2 Приращение 2
  B3 Приращение 3
  B4 Приращение 4
  B5 Приращение 5
  B6 Приращение 6
  B7 Приращение 7

Центральный процессор (CP) и основная память машин 6400, 6500 и 6600 имели длину слова 60 бит. Центральный процессор имел восемь 60-битных регистров общего назначения с X0 по X7, восемь 18-битных адресных регистров с A0 по A7 и восемь 18-битных регистров «приращения» с B0 по B7. Оборудование постоянно удерживало B0 на нуле. Многие программисты сочли полезным установить B1 в 1 и таким же образом рассматривать его как нерушимый.

У CP не было инструкций для ввода и вывода, которые выполняются через периферийные процессоры (см. Ниже). Никакие коды операций не были специально предназначены для загрузки или хранения памяти; это произошло как побочный эффект присвоения определенным регистрам A. При настройке с A1 по A5 слово по этому адресу загружается в X1 по X5 соответственно; настройка A6 или A7 сохраняла слово из X6 или X7. Никаких побочных эффектов не было связано с A0. Отдельный аппаратный модуль загрузки / сохранения, называемый блоком трюков , обрабатывал фактическое перемещение данных независимо от операции потока инструкций, позволяя выполнять другие операции во время доступа к памяти, что в лучшем случае требовало восьми циклов.

6600 CP включает десять параллельных функциональных блоков, позволяющих работать с несколькими командами одновременно. Сегодня это известно как суперскалярный процессор , но он был уникальным для своего времени. В отличие от большинства современных процессоров, функциональные блоки не были конвейерными; функциональный блок становится занятым, когда ему «выдана» инструкция, и остается занятым все время, необходимое для выполнения этой инструкции. (В отличие от этого, CDC 7600 ввел конвейерную обработку в свои функциональные блоки.) В лучшем случае инструкция могла бы выдаваться функциональному блоку каждые 100 нс тактового цикла. Система считывала и декодировала инструкции из памяти как можно быстрее, как правило, быстрее, чем они могли быть выполнены, и отправляла их в блоки для обработки. Единицы были:

  • умножение с плавающей запятой (две копии)
  • деление с плавающей запятой
  • сложение с плавающей запятой
  • "длинное" целое сложение
  • инкрементаторы (две копии; произведена загрузка / сохранение памяти)
  • сдвиг
  • логическая логика
  • ветвь

Операции с плавающей запятой заняли почетное место в этой архитектуре : CDC 6600 (и ему подобные) стоят практически в одиночку, имея возможность выполнять 60-битное умножение с плавающей запятой во времени, сравнимом со временем для ветви программы. Недавний анализ книги Джеймса Торнтона «Дизайн компьютера» Митч Алсуп показал, что устройство с плавающей запятой 6600 представляет собой двухступенчатую конвейерную конструкцию.

Сложение с фиксированной запятой и вычитание 60-битных чисел обрабатывались в модуле длинного сложения с использованием дополнения до единиц для отрицательных чисел. Умножение с фиксированной запятой выполнялось как особый случай в модуле умножения с плавающей запятой - если показатель степени был равен нулю, модуль FP выполнял бы 48-битное умножение с плавающей запятой одинарной точности и очищал часть с высоким показателем, в результате чего получалось 48 -битный целочисленный результат. Целочисленное деление было выполнено с помощью макроса, конвертирующего в числа с плавающей запятой и обратно.

Ранее выполненные инструкции сохранялись в кэше из восьми слов , называемом «стеком». Переходы в стеке выполнялись быстрее, чем переходы вне стека, потому что не требовалась выборка из памяти. Стек был сброшен инструкцией безусловного перехода, поэтому безусловные переходы в конце цикла обычно записывались как условные переходы, которые всегда выполнялись успешно.

Система использовала тактовый генератор 10  МГц с четырехфазным сигналом . Умножение с плавающей запятой заняло десять циклов, деление - 29, а общая производительность с учетом задержек памяти и других проблем составила около 3  MFLOPS . Используя лучшие доступные компиляторы, в конце истории машины программы FORTRAN могли рассчитывать поддерживать около 0,5 MFLOPS.

Организация памяти

Пользовательские программы могут использовать только непрерывную область основной памяти. Часть памяти, к которой имеет доступ исполняемая программа, контролируется регистрами RA (относительный адрес) и FL (длина поля), которые недоступны для пользовательской программы. Когда пользовательская программа пытается прочитать или записать слово в центральной памяти по адресу a , процессор сначала проверяет, что a находится между 0 и FL-1. Если это так, процессор обращается к слову в центральной памяти по адресу RA + a. Этот процесс известен как перемещение с привязкой к основанию; каждая пользовательская программа видит базовую память как непрерывный блок слов длиной FL, начиная с адреса 0; фактически программа может находиться где угодно в физической памяти. Используя этот метод, каждая пользовательская программа может быть перемещена («перемещена») в основную память операционной системой, если регистр RA отражает ее положение в памяти. Пользовательская программа, которая пытается получить доступ к памяти за пределами разрешенного диапазона (то есть с адресом, который не меньше FL), вызовет прерывание и будет завершена операционной системой. Когда это происходит, операционная система может создать дамп ядра, который записывает содержимое памяти программы и регистрируется в файле, позволяя разработчику программы узнать, что произошло. Обратите внимание на различие с системами виртуальной памяти ; в этом случае все адресное пространство процесса должно находиться в основной памяти, должно быть непрерывным и его размер не может превышать реальный объем памяти.

Все машины серии CDC 6000, кроме первых семи, могут быть сконфигурированы с дополнительной системой Extended Core Storage (ECS). ECS была построена из другой разновидности основной памяти, чем та, которая использовалась в центральной памяти. Эта память была медленнее, но была достаточно дешевой, чтобы ее можно было увеличить. Основная причина заключалась в том, что память ECS была подключена только с двумя проводами на ядро ​​(в отличие от пяти для центральной памяти). Поскольку он выполнял очень широкие передачи, его последовательная скорость передачи была такой же, как у небольшой основной памяти. ЦП 6000 может напрямую выполнять передачу блоков памяти между программой пользователя (или операционной системой) и блоком ECS. Использовались широкие пути к данным, так что это была очень быстрая операция. Границы памяти поддерживались таким же образом, как и центральная память, с механизмом RA / FL, поддерживаемым операционной системой. ECS можно было использовать для различных целей, в том числе для хранения массивов пользовательских данных, которые были слишком велики для центральной памяти, для хранения часто используемых файлов, подкачки и даже в качестве канала связи в комплексе с несколькими мэйнфреймами.

Периферийные процессоры (PP)

Для выполнения «служебных» задач, которые в других проектах возлагались на ЦП, Крей включил десять других процессоров, частично основанных на его более раннем компьютере, CDC 160-A. Эти машины, называемые периферийными процессорами или PP, были полноценными компьютерами сами по себе, но были настроены на выполнение задач ввода-вывода и запуск операционной системы. (Существенные части операционной системы работали на PP; таким образом, большая часть мощности центрального процессора оставалась доступной для пользовательских программ.) Только PP имели доступ к каналам ввода-вывода . Один из PP (PP0) полностью контролировал машину, включая управление программой, работающей на основном CPU, в то время как другие были предназначены для различных задач ввода-вывода; PP9 был посвящен системной консоли. Когда программе CP требовалось выполнить функцию операционной системы, она помещала запрос в известное место ( ссылочный адрес + 1), отслеживаемое PP0. При необходимости PP0 назначит другой PP для загрузки любого необходимого кода и обработки запроса. Затем PP очистит RA + 1, чтобы проинформировать программу CP о том, что задача выполнена.

Уникальная роль PP0 в управлении машиной заключалась в потенциальной единой точке отказа, поскольку неисправность здесь могла привести к отключению всей машины, даже если девять других PP и ЦП все еще функционировали должным образом. Cray исправил это в конструкции преемника 7600, когда любой из PP мог быть контроллером, а CPU мог переназначить любому из них эту роль.

Каждый PP включал в свою память 4096 12-битных слов. Эта память служила как для буферизации ввода-вывода, так и для хранения программ, но исполнительные блоки совместно использовались десятью PP в конфигурации, называемой цилиндром и слотом . Это означало, что исполнительные блоки («слот») будут выполнять один цикл команд из первого PP, затем один цикл команд из второго PP и т. Д. В режиме циклического перебора. Это было сделано как для снижения затрат, так и потому, что для доступа к памяти CP требовалось 10 тактов PP: когда PP обращается к памяти CP, данные становятся доступными в следующий раз, когда PP получает время своего слота.

Длина слова, символы

Центральный процессор имел 60-битные слова, а периферийные процессоры - 12-битные слова. CDC использовал термин «байт» для обозначения 12-битных объектов, используемых периферийными процессорами; символы были 6-битными, а инструкции центрального процессора были либо 15-битными, либо 30-битными с подписанным 18-битным адресным полем, последнее позволяло использовать адресуемое пространство памяти размером 128 КБ слов центральной памяти (преобразовано в современные термины, с 8 -битных байтов, это 0,94 МБ). Подписанный характер адресных регистров ограничивал отдельную программу до 128 КБ слов. (Более поздние машины, совместимые с CDC 6000, могли иметь 256 КБ или более слов в центральной памяти, если позволял бюджет, но отдельные пользовательские программы по-прежнему были ограничены до 128 КБ слов CM.) Команды центрального процессора начинались на границе слова, когда они были целью перехода инструкция или инструкция возврата из подпрограммы, поэтому иногда требовалось не выполнять никаких операций для заполнения последних 15, 30 или 45 битов слова. Опытные программисты на ассемблере могли точно настроить свои программы, заполнив эти закрытые пространства разными инструкциями, которые потребуются позже в программе.

В 6-битовых символах , в кодировании называется CDC коды дисплея , может быть использованы для хранения до 10 символов в слове. Они разрешили набор символов из 64 символов, что достаточно для всех прописных букв, цифр и некоторых знаков препинания. Разумеется, этого было достаточно, чтобы написать FORTRAN, или напечатать финансовые или научные отчеты. Фактически было два варианта используемых наборов кодовых символов дисплея CDC - 64-символьный и 63-символьный. 64-символьный набор имел недостаток, заключающийся в том, что символ «:» (двоеточие) игнорировался (интерпретировался как заполнение нулями), если бы он был последним символом в слове. Дополнительный вариант, называемый кодом отображения 6/12 , также использовался в системах разделения времени Kronos и NOS, чтобы обеспечить полное использование набора символов ASCII способом, в некоторой степени совместимым со старым программным обеспечением.

При отсутствии инструкций по байтовой адресации приходилось писать код для упаковки и преобразования символов в слова. Очень большие слова и сравнительно небольшой объем памяти означали, что программисты часто экономили память, упаковывая данные в слова на битовом уровне.

Из-за большого размера слова и с 10 символами в слове часто было быстрее обрабатывать несколько слов из символов за раз, а не распаковывать / обрабатывать / переупаковывать их. Например, компилятор CDC COBOL на самом деле неплохо справлялся с обработкой десятичных полей с использованием этой техники. Подобные методы теперь широко используются в «мультимедийных» инструкциях современных процессоров.

Физический дизайн

Логический модуль CDC 6600, содержащий 64 кремниевых транзистора. Коаксиальные разъемы являются контрольными точками. Модуль кондуктивно охлаждается через переднюю панель. Модель 6600 содержала около 6000 таких модулей.

Машина была построена в шкафу в форме знака «плюс» с насосом и теплообменником в крайних 18 дюймов (46 см) каждого из четырех рычагов. Охлаждение осуществлялось фреоном, циркулирующим внутри машины и передававшим тепло внешнему источнику охлажденной воды. Каждая рука могла удерживать четыре шасси, каждое толщиной около 8 дюймов (20 см), шарнирно прикрепляемых к центру и открывающихся как книга. Пересечение «плюса» было заполнено кабелями, соединяющими шасси. Шасси были пронумерованы от 1 (содержащие все 10 PPU и их память, а также 12 довольно минимальных каналов ввода / вывода) до 16. Основная память для ЦП была распределена по многим шасси. В системе с объемом основной памяти всего 64 КБ одна из ветвей плюса была опущена.

Логика машины была упакована в модули размером около 2,5 дюйма (64 мм) и толщиной около 1 дюйма (2,5 см). Каждый модуль имел разъем (30 контактов, два вертикальных ряда по 15) на одном крае и шесть контрольных точек на противоположном крае. Модуль помещался между двумя алюминиевыми холодными пластинами для отвода тепла. Модуль состоял из двух параллельных печатных плат с компонентами, установленными либо на одной из плат, либо между двумя платами. Это обеспечило очень плотную упаковку; в целом ремонт невозможен, но с хорошими характеристиками теплопередачи. Это было известно как строительство из дровяной древесины .

Операционная система и программирование

В поддержке операционной системы 6600 был болевой момент - срыв сроков. Изначально на машинах использовалась очень простая система управления заданиями , известная как COS ( операционная система Chippewa ), которая была быстро «скомпонована» на основе более ранней операционной системы CDC 3000 , чтобы запустить что-то для тестирования систем на предмет доставки. Однако предполагалось, что машины будут поставляться с гораздо более мощной системой, известной как SIPROS (для операционной системы одновременной обработки), которая разрабатывалась в отделе системных наук компании в Лос-Анджелесе . Клиенты были впечатлены списком функций SIPROS, и многие из них включили SIPROS в свои контракты на поставку.

SIPROS обернулся крупным фиаско. Сроки разработки продолжали сокращаться, что стоило CDC значительной прибыли в виде штрафов за задержку доставки. После нескольких месяцев ожидания, когда машины были готовы к отправке, проект в конечном итоге был отменен. Программисты, работавшие над COS, мало верили в SIPROS и продолжали работать над улучшением COS.

Затем разработка операционной системы разделилась на два лагеря. Эволюция COS, санкционированная CDC, была проведена в лаборатории разработки программного обеспечения Саннивейл, Калифорния . Многие клиенты в конечном итоге поставили свои системы с этим программным обеспечением, которое тогда называлось SCOPE (Supervisory Control Of Program Execution). Версия 1 SCOPE была, по сути, разобранной COS; SCOPE версии 2 включает поддержку новых устройств и файловых систем; Версия 3 SCOPE включала постоянную поддержку файлов, поддержку удаленного пакетного управления EI / 200 и поддержку разделения времени INTERCOM . У SCOPE всегда были серьезные проблемы с надежностью и ремонтопригодностью.

CDC 6000 series SCOPE 3.1 строится при работе на настольном эмуляторе CYBER

Подпольная эволюция COS происходила на сборочном заводе в Арден-Хиллз, штат Миннесота . MACE ([Грег] Мэнсфилд и [Дейв] Каландер Исполнительный) был написан в основном одним программистом в нерабочее время, когда машины были доступны. Его набор функций был по существу таким же, как у COS и SCOPE 1. Он сохранил прежнюю файловую систему COS, но значительно улучшил модульность кода, чтобы повысить надежность системы и адаптивность к новым устройствам хранения. MACE никогда не был официальным продуктом, хотя многие клиенты могли получить копию у CDC.

Позже неофициальное программное обеспечение MACE было выбрано вместо официального продукта SCOPE в качестве основы следующей операционной системы CDC, Kronos , названной в честь греческого бога времени . История гласит, что Дэйв Мэнсфилд позвонил в библиотеку Университета Миннесоты и спросил древнее слово, означающее «время». Он написал «Кронос» вместо «Хронос». Основной маркетинговой причиной его принятия стала разработка функции разделения времени TELEX и функции удаленной пакетной обработки BATCHIO. Kronos продолжал использовать файловую систему COS / SCOPE 1 с добавлением функции постоянного файла.

Попытка унифицировать продукты операционной системы SCOPE и Kronos произвела NOS (сетевая операционная система). NOS была задумана как единственная операционная система для всех машин CDC, и CDC активно продвигала этот факт. Многие заказчики SCOPE по-прежнему зависели от программного обеспечения от архитектуры SCOPE, поэтому CDC просто переименовали ее в NOS / BE (Batch Environment) и смогли заявить, что таким образом все работали с NOS. На практике было гораздо проще изменить кодовую базу Kronos для добавления функций SCOPE, чем наоборот.

Среда сборочного завода также производила другие операционные системы, которые никогда не предназначались для использования клиентами. К ним относятся инженерные инструменты SMM для тестирования оборудования и KALEIDOSCOPE для дымового тестирования программного обеспечения . Еще одним широко используемым инструментом для полевых инженеров CDC во время тестирования был MALET (язык приложений для технического обслуживания для тестирования оборудования), который использовался для нагрузочного тестирования компонентов и устройств после ремонта или обслуживания инженерами. В условиях тестирования часто использовались пакеты жестких дисков и магнитные ленты, которые были намеренно помечены ошибками, чтобы определить, будут ли ошибки обнаружены MALET и инженером.

Названия SCOPE и COMPASS использовались CDC как для серии CDC 6000 , включая 6600, так и для серии CDC 3000 :

  • Название КОМПАС использовалось CDC для языков ассемблера в обеих семьях.
  • Название SCOPE использовалось для его реализации в сериях 3000 и 6000.

CDC 7600

CDC 7600 был первоначально предназначен , чтобы быть полностью совместим с существующими 6000- й серии машин, а также ; он начал свою жизнь под названием CDC 6800. Но во время его проектирования конструкторы определили, что поддержание полной совместимости с существующими машинами серии 6000 ограничит возможное улучшение производительности, и решили пожертвовать совместимостью ради производительности. В то время как ЦП CDC 7600 был в основном совместим по инструкциям с ЦП 6400 и 6600, обеспечивая переносимость кода на уровне исходного кода языка высокого уровня , аппаратное обеспечение CDC 7600, особенно его периферийных процессорных модулей (PPU), было совершенно другим, и для CDC 7600 требовалась другая операционная система. Это оказалось случайностью, поскольку позволило разработчикам улучшить некоторые характеристики конструкции серии 6000, такие как полная зависимость последней от периферийных процессоров (PP), особенно первого (называемого PP0), для управления работой. всей компьютерной системы, включая ЦП. В отличие от ЦП 6600, ЦП CDC 7600 мог управлять своей собственной работой с помощью инструкции Central Exchange Jump (XJ), которая меняла местами все содержимое регистров с основной памятью. Фактически, машины серии 6000 были оснащены этой возможностью.

Смотрите также

Примечания

использованная литература

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

Записи
Предшественник
IBM 7030 Stretch
Самый мощный компьютер в мире
1964–1968
Преемник
CDC 7600