ИЛЛИАК IV - ILLIAC IV

CU параллельного компьютера ILLIAC IV

В ИЛЛИАК IV был первым массивно-параллельный компьютер.[1] Изначально система была рассчитана на 256 64-битный единицы с плавающей запятой (FPU) и четыре центральные процессоры (CPU) способны обрабатывать 1 миллиард операций в секунду.[2] Из-за бюджетных ограничений был построен только один «квадрант» с 64 FPU и одним CPU. Поскольку все FPU должны были обрабатывать одну и ту же инструкцию - ДОБАВИТЬ, SUB и т.д. - в современной терминологии дизайн будет считаться одна инструкция, несколько данных, или SIMD.[3]

Идея создания компьютера с использованием массива процессоров пришла к Дэниел Слотник работая программистом на Машина IAS в 1952 году. Официальный дизайн начался только в 1960 году, когда Слотник работал в Westinghouse Electric и организовал финансирование развития в рамках ВВС США контракт. Когда это финансирование закончилось в 1964 году, Слотник переехал в Университет Иллинойса и присоединился к Иллинойс Автоматический компьютер (ILLIAC) команда. При финансировании от Агентство перспективных исследовательских проектов (ARPA), они начали разработку новой концепции с 256 64-битными процессорами вместо первоначальной концепции с 1024 1-битными процессорами.

Пока машина строилась на Берроуз, университет начал строительство нового здания для его размещения. Политическая напряженность по поводу финансирования со стороны Министерство обороны США привело к тому, что ARPA и университет опасались за безопасность машины. Когда в 1972 году был завершен первый 64-процессорный квадрант машины, он был отправлен в Исследовательский центр НАСА Эймса В Калифорнии. После трех лет тщательной доработки с целью исправления различных недостатков ILLIAC IV был подключен к ARPANet для распределенного использования в ноябре 1975 года, став первым доступным в сети суперкомпьютером, превосходящим Крей-1 почти на 12 месяцев.

Работая на половине своей проектной скорости, одноквадрантный ILLIAC IV выдал пиковые значения 50 MFLOP,[4] что сделало его самым быстрым компьютером в мире в то время. Ему также приписывают то, что он был первым большим компьютером, который использовал твердотельная память, а также самый сложный компьютер, построенный на сегодняшний день, с более чем 1 миллионом ворот.[5] Обычно считается неудачей из-за огромного перерасхода бюджета,[5][6] дизайн сыграл важную роль в разработке новых методов и систем для программирования параллельных систем. В 1980-х годах было успешно поставлено несколько машин на базе концептов ILLIAC IV.

История

Происхождение

В июне 1952 г. Дэниел Слотник начал работу над Машина IAS на Институт перспективных исследований (IAS) в Университет Принстона.[7] В IAS-машине использовался бит-параллельный математический модуль, работающий на 40-битном слова.[8] Первоначально оснащенный Трубка Вильямса память, а магнитный барабан из Engineering Research Associates был добавлен позже. У этого барабана было 80 дорожек, поэтому можно было читать два слова одновременно, и каждая дорожка хранила 1024 бита.[9]

Размышляя о механизме барабана, Слотник начал задаваться вопросом, правильный ли способ построить компьютер. Если бы биты слова записывались последовательно на одну дорожку, а не параллельно на 40 дорожек, то данные можно было бы вводить в компьютер с последовательной последовательностью битов непосредственно с барабана побитно. Барабан по-прежнему будет иметь несколько дорожек и пластинок, но вместо того, чтобы собирать слово и отправлять его в один ALU, в этой концепции данные на каждой дорожке будут считываться по частям и отправляться в параллельные ALU. Это был бы компьютер с параллельным словом и последовательным двоичным кодом.[7]

Слотник поднял идею в IAS, но Джон фон Нейман отклонил это как требующее «слишком много трубок».[7] Слотник покинул IAS в феврале 1954 года, чтобы вернуться в школу для кандидат наук и об этом забыли.[7]

СОЛОМОН

Получив докторскую степень и получив некоторую постдокторскую работу, Слотник оказался в IBM. К этому времени, по крайней мере, для научных вычислений, лампы и барабаны были заменены транзисторами и основная память. Идея параллельных процессоров, работающих с разными потоками данных из барабана, больше не имела такой очевидной привлекательности. Тем не менее дальнейшее рассмотрение показало, что параллельные машины все еще могут обеспечивать значительную производительность в некоторых приложениях; Слотник и его коллега Джон Кок написали статью об этой концепции в 1958 году.[10]

Через короткое время в IBM, а затем еще раз в Самолеты Aeronca, Слотник оказался в Вестингауза Дивизия Air Arm, которая работала на радар и подобные системы.[11] По контракту с ВВС США с RADC, Слотнику удалось собрать команду для разработки системы с 1024 последовательными последовательными битами ALU, известными как «элементы обработки» или PE. Эта конструкция получила название СОЛОМОН, после Царь Соломон, который был очень мудр и имел 1000 жен.[12]

PE будут получать инструкции от одного мастера центральное процессорное устройство (CPU), «блок управления» или CU. CU SOLOMON будет читать инструкции из памяти, декодировать их, а затем передавать их PE для обработки. Каждый PE имел свою собственную память для хранения операндов и результатов, модуль памяти PE или PEM. CU мог получить доступ ко всей памяти через выделенный шина памяти, тогда как PE могли получить доступ только к своему собственному PEM.[13] Чтобы результаты одного PE можно было использовать в качестве входных данных для другого, отдельная сеть подключила каждый PE к его восьми ближайшим соседям.[14]

Было построено несколько систем испытательных стендов, включая систему 3 на 3 (9 PE) и модель 10 на 10 с упрощенными PE. В течение этого периода некоторое внимание было уделено более сложным схемам PE, превратившись в 24-битную параллельную систему, которая будет организована по схеме 256 на 32. В 1963 году был построен единственный PE, использующий эту конструкцию. Поскольку проектные работы продолжались, главный спонсор в рамках Министерство обороны США погиб в результате несчастного случая, и дальнейшего финансирования не поступало.[15]

Стремясь продолжить разработку, Слотник обратился к Ливермору, который в то время был в авангарде закупок суперкомпьютеров. Они были очень заинтересованы в дизайне, но убедили его обновить текущую конструкцию. фиксированная точка математические единицы в истину плавающая точка, что привело к дизайну SOLOMON.2.[16]

Ливермор не стал финансировать разработку, вместо этого они предложили контракт, по которому они будут сдавать машину в аренду после ее завершения. Руководство Westinghouse посчитало это слишком рискованным и закрыло команду. Слотник покинул Westinghouse, пытаясь найти венчурный капитал продолжить проект, но не удалось. Ливермор позже выбрал CDC STAR-100 для этой роли, поскольку CDC был готов взять на себя расходы на разработку.[17]

ИЛЛИАК IV

Когда SOLOMON закончился, Слотник присоединился к команде Illinois Automatic Computer Design (ILLIAC) в университете штата Иллинойс в Урбана-Шампейн. Иллинойс проектировал и производил большие компьютеры для Министерства обороны США и Агентство перспективных исследовательских проектов (ARPA) с 1949 года. В 1964 году университет подписал контракт с ARPA на финансирование проекта, который стал известен как ILLIAC IV, поскольку это был четвертый компьютер, спроектированный и созданный в университете. Разработка началась в 1965 году, а первый этап проектирования был завершен в 1966 году.[18]

В отличие от концепции последовательной передачи битов в SOLOMON, в ILLIAC IV PE были обновлены до полнофункциональных 64-битных (параллельных битов) процессоров с использованием 12000 ворота и 2048 слов тонкопленочная память.[19] PE имели пять 64-битных регистров, каждый из которых имел специальное назначение. Один из них, RGR, использовался для передачи данных соседним PE, перемещая один «скачок» за такт. Другой регистр, RGD, показывает, активен ли в данный момент данный PE. «Неактивные» PE не могут получить доступ к памяти, но они будут передавать результаты соседним PE, используя RGR.[14] PE были разработаны для работы как один 64-битный FPU, два 32-битных FPU половинной точности или восемь 8-битных процессоров с фиксированной точкой.[19]

Вместо 1024 PE и одного CU в новой конструкции было всего 256 PE, размещенных в четырех «квадрантах» по 64 PE, каждый со своим собственным CU. CU также были 64-битными, шестьдесят четыре 64-битных. регистры и еще четыре 64-битных аккумулятора. Система могла работать как четыре отдельных машины с 64-PE, две машины с 128-PE или одна машина с 256-PE. Это позволяло системе работать с различными проблемами, когда данные были слишком малы, чтобы потребовать весь массив 256-PE.[19]

Основанный на тактовой частоте 25 МГц, когда все 256-PE работают в одной программе, машина была разработана для выполнения 1 миллиарда операций с плавающей запятой в секунду, или, в современной терминологии 1GFLOPS.[20] Это сделало его намного быстрее, чем любая машина в мире; современный CDC 7600 имел тактовый цикл 27,5 наносекунд или 36 MIPS,[21] хотя по ряду причин он обычно предлагал производительность ближе к 10 MIPS.[22][а]

Для поддержки машины была построена пристройка к зданиям Лаборатории цифровых компьютеров.[23][24] Образцовая работа в университете была в первую очередь нацелена на способы эффективного наполнения PE данными, тем самым проводя первый «стресс-тест» в разработке компьютеров. Чтобы сделать это как можно проще, несколько новых компьютерные языки были созданы; IVTRAN и TRANQUIL были параллельными версиями FORTRAN, и Глипнир был аналогичным преобразованием АЛГОЛ. Как правило, эти языки обеспечивали поддержку загрузки массивов данных «через» PE для параллельного выполнения, а некоторые даже поддерживали разворачивание циклов в операции с массивами.[25]

Строительство, проблемы

В начале 1966 года университет разослал запрос предложений в поисках промышленных партнеров, заинтересованных в создании проекта. В июле было получено семнадцать ответов, семь ответили, и из этих трех были выбраны.[26] Несколько ответов, в том числе Контрольные данные, попытался заинтересовать их векторный процессор дизайн вместо этого, но поскольку они уже разрабатывались, команда не была заинтересована в создании другого. В августе 1966 г.[b] восьмимесячные контракты были предложены RCA, Берроуз и Univac сделать ставку на постройку машины.[19]

В конце концов Берроуз выиграл контракт, объединившись с Инструменты Техаса (TI). Оба предложили новые технические достижения, которые сделали их предложение наиболее интересным. Берроуз предлагал создать новую, гораздо более быструю версию тонкопленочная память что улучшило бы производительность. TI предлагала построить 64-контактный эмиттерная логика (ECL) интегральные схемы (ИС) с 20 логические ворота каждый.[c] В то время большинство ИС использовали 16-выводные корпуса и имели от 4 до 7 вентилей. Использование микросхем TI сделало бы систему намного меньше.[19]

Берроуз также поставлял специализированные Дисковый привод, который имел отдельную стационарную головку для каждого трека и мог обеспечивать скорость до 500 Мбит / с и хранить около 80 МБ за 36-дюймовый диск. Они также предоставят Берроузу B6500 мэйнфрейм для работы в качестве внешнего контроллера, загрузки данных из вторичного хранилища и выполнения других служебных задач. К B6500 был подключен сторонний лазерный оптический носитель записи, система с однократной записью, в которой хранится до 1Тбит на тонкой металлической пленке, нанесенной на полосу полиэфирного листа, которую несет вращающийся барабан. Строительство нового дизайна началось в лаборатории Грейт-Вэлли Берроуза.[13] В то время предполагалось, что машина будет поставлена ​​в начале 1970 года.[27]

После года работы над микросхемами TI объявила, что им не удалось создать 64-контактные схемы. Более сложная внутренняя проводка вызвала перекрестные помехи в схемотехнике, и они попросили еще год, чтобы исправить проблемы. Вместо этого команда ILLIAC решила перепроектировать машину на основе доступных 16-контактных ИС. Это требовало, чтобы система работала медленнее, используя тактовую частоту 16 МГц вместо исходных 25 МГц.[28] Переход с 64 на 16 контактов стоил проекту около двух лет и миллионов долларов. TI смогла заставить работать 64-контактный разъем всего через год и начала предлагать их на рынке еще до того, как ILLIAC был завершен.[28]

В результате этого изменения человек Печатные платы вырос с площади примерно 1 дюйм (2,5 см) до примерно 6 на 10 дюймов (15 см × 25 см). Это обанкротило усилия Берроуза по созданию тонкопленочной памяти для машины, потому что теперь не было достаточно места для памяти, чтобы поместиться в шкафах дизайнера. Попытки увеличить размеры шкафов, чтобы освободить место для памяти, вызвали серьезные проблемы с распространением сигнала.[29] Слотник изучил возможные замены и выбрал полупроводниковую память из Fairchild Semiconductor, решение, против которого выступил Берроуз, что последовало полное рассмотрение ARPA.[19]

В 1969 году эти проблемы в сочетании с перерасходом средств из-за задержек привели к решению построить только один квадрант 64-PE,[19] тем самым ограничивая скорость машины примерно до 200 MFLOPS.[30] В совокупности эти изменения обошлись проекту в три года и 6 миллионов долларов.[19] К 1969 году проект тратил 1 миллион долларов в месяц, и его пришлось выделить из первоначальной команды ILLIAC, которая все активнее выступала против проекта.[31]

Перейти к Эймсу

К 1970 году машина, наконец, была построена в разумных темпах, и ее готовили к поставке примерно через год. 6 января 1970 г. The Daily Illini Студенческая газета утверждала, что компьютер будет использоваться для создания ядерного оружия.[32] В мае Кент Стейт расстрелы В университетских кампусах вспыхнуло антивоенное насилие.[31]

Слотник стал возражать против использования машины в секретных исследованиях и объявил, что вся обработка, происходящая на машине, будет публично опубликована, поскольку это будет основываться на университетских основаниях. Он также все больше беспокоился о том, что машина может подвергнуться атаке со стороны более радикальных студенческих групп.[31] позиция, которая казалась мудрой после того, как местные студенты присоединились к 9 мая 1970 г. общенациональная студенческая забастовка объявив «День Иллюзии»,[33] и особенно 24 августа бомбежка здания математического факультета Университет Висконсина-Мэдисона.[34]

С помощью Ганс Марк, директор Исследовательский центр НАСА Эймса в том, что становилось Силиконовая долина В январе 1971 года было принято решение доставить машину Эймсу, а не университету. Расположен на активном ВМС США база и защищена Морская пехота США, безопасность больше не будет проблемой. Наконец, в апреле 1972 года машина была доставлена ​​в Эймс и установлена ​​в центральном вычислительном центре в здании N-233.[35] К этому моменту он опоздал на несколько лет и значительно превысил бюджет при общей цене в 31 миллион долларов, что почти в четыре раза больше первоначальной оценки в 8 миллионов долларов за полную машину из 256-PE.[31][2][d][e]

НАСА также решило заменить переднюю машину B6500 на PDP-10, которые широко использовались в Ames и значительно упростили подключение к ARPAnet.[36] Это потребовало разработки нового программного обеспечения, особенно компиляторов, на PDP-10. Это привело к дальнейшим задержкам с запуском машины.[31]

Illiac IV находился под управлением ACTS Computing Corporation, возглавляемой Гарольдом Ван Арнемом, по контракту «затраты плюс» с Министерством обороны. Доктор Мел Пиртл, получивший образование в Университете Беркли и Berkley Computer Corporation (BCC), был назначен директором Illiac IV.

Заставить это работать

Блок обработки ILLIAC IV на выставке в Музей истории компьютеров.

Когда машина только появилась, ее нельзя было заставить работать. Он страдал от всевозможных проблем, от трещин на печатных платах до плохих резисторы, что упаковка микросхем TI очень чувствительна к влажности. Эти проблемы постепенно решались, и к лету 1973 года в системе можно было запускать первые программы, хотя результаты были весьма сомнительными. Начиная с июня 1975 года, начались согласованные четырехмесячные усилия, которые потребовали, среди прочего, замены 110000 резисторов, перемонтажа деталей для устранения проблем с задержкой распространения, улучшения фильтрации в источниках питания и дальнейшего снижения тактовой частоты до 13 МГц. В конце этого процесса система наконец заработала правильно.[31][2]

С этого момента система работала с утра понедельника до полудня пятницы, обеспечивая 60 часов безотказной работы для пользователей, но требуя 44 часа запланированного простоя.[2] Тем не менее, он все чаще использовался, поскольку программисты НАСА изучали способы повышения производительности сложной системы. Поначалу производительность была унылой, большинство программ работало со скоростью около 15 MFLOPS, что примерно в три раза выше среднего для CDC 7600.[37] Со временем это улучшилось, особенно после того, как программисты Эймса написали свою собственную версию FORTRAN, CFD и узнали, как распараллеливать ввод / вывод в ограниченных PEM. По задачам, которые можно было распараллелить, машина по-прежнему оставалась самой быстрой в мире, превосходя CDC 7600 в два-шесть раз, и до 1981 года ее обычно считали самой быстрой машиной в мире.[31]

7 сентября 1981 года, после почти 10 лет эксплуатации, ILLIAC IV был выключен.[38] Машина была официально выведена из эксплуатации в 1982 году, и на этом закончилось продвинутое вычислительное подразделение НАСА. Один блок управления и одно шасси обрабатывающего элемента от машины теперь отображаются на Музей истории компьютеров в Маунтин-Вью, менее чем в миле от места его эксплуатации.[39]

Последствия

ILLIAC был очень запоздалым, очень дорогим и так и не достиг своей цели по производству 1 GFLOP. Это было широко признано неудачей даже теми, кто над этим работал; один просто заявил, что «любой беспристрастный наблюдатель должен рассматривать Illiac IV как провал в техническом смысле».[40] С точки зрения управления проектами это широко считается провалом, превышающим смету затрат в четыре раза и требующим многих лет усилий по исправлению положения, чтобы заставить его работать. Как позже выразился сам Слотник:

Я горько разочарован и очень доволен ... рад и встревожен. Рад, что в итоге общие цели удалось достичь. Обеспокоен тем, что он стоит слишком дорого, занимает слишком много времени, недостаточно эффективен и мало кто пользуется им.[41]

Однако более поздний анализ показывает, что проект оказал несколько длительных эффектов на компьютерный рынок в целом, как намеренно, так и непреднамеренно.[42]

Среди косвенных эффектов было быстрое обновление полупроводниковой памяти после проекта ILLIAC. Слотник получил много критики, когда он выбрал Fairchild Semiconductor для производства микросхем памяти, так как в то время производственная линия была пустой, а дизайн существовал только на бумаге.[43] Однако после трех месяцев напряженных усилий Fairchild разработал рабочий дизайн. в массовом порядке. Как позже прокомментировал Слотник: «Фэирчайлд проделал великолепную работу, вытащив наши каштаны из огня. Воспоминания о Фэирчайлде были великолепны, и их надежность по сей день просто невероятно хороша».[29] Считается, что Иллиак нанес смертельный удар по основная память и родственные системы, такие как тонкопленочные.[29]

Другой косвенный эффект был вызван сложностью печатные платы (Печатные платы) или модули. При исходной проектной скорости 25 МГц сопротивление в заземляющей проводке оказалось серьезной проблемой, требующей, чтобы печатные платы были как можно меньше. По мере роста сложности на печатные платы приходилось добавлять все больше и больше слоев, чтобы избежать увеличения размера. В конце концов, они достигли глубины 15 слоев, что оказалось далеко за пределами возможностей рисовальщиков. В конечном итоге проектирование было завершено с использованием новых инструментов автоматизированного проектирования, предоставленных субподрядчиком, и для полного проектирования потребовалось два года компьютерного времени на мэйнфрейме Burroughs. Это был большой шаг вперед в системы автоматизированного проектирования, и к середине 1970-х такие инструменты были обычным явлением.[44]

ILLIAC также привел к серьезным исследованиям в области параллельной обработки, которые имели широкий спектр эффектов. В 1980-е годы, когда цена микропроцессоров упала в соответствии с законом Мура, ряд компаний создали MIMD (Несколько инструкций, несколько данных) для создания еще большего числа параллельных машин с компиляторами, которые могли бы лучше использовать параллелизм. В Думающие машины CM-5 является прекрасным примером концепции MIMD. Лучшее понимание параллелизма в ILLIAC привело к созданию улучшенных компиляторов и программ, которые могли использовать преимущества этих конструкций. Как выразился один программист ILLIAC: «Если кто-нибудь построит быстрый компьютер из множества микропроцессоров, Illiac IV внесет свою лепту в общую схему вещей».[45]

Большинство суперкомпьютеров того времени использовали другой подход к повышению производительности, используя одну очень высокую скорость. векторный процессор. Подобно ILLIAC в некоторых отношениях, эти конструкции процессоров загружали множество элементов данных в один специализированный процессор вместо большого количества специализированных. Классическим примером такого дизайна является Крей-1, который имел производительность, аналогичную ILLIAC. В результате возникла более чем небольшая «обратная реакция» на дизайн ILLIAC, и в течение некоторого времени рынок суперкомпьютеров смотрел на массовые параллельные разработки с пренебрежением, даже когда они были успешными. В качестве Сеймур Крей Как известно, язвительно заметил: «Если бы вы вспахивали поле, что бы вы предпочли? Два крепких быка или 1024 цыплят?»[46]

Описание

Физическое расположение

Каждый квадрант машины имел высоту 10 футов (3 м), глубину 8 футов (2,4 м) и длину 50 футов (15 м).[47] Рядом с квадрантом была ввод, вывод (I / O) система, дисковая система которой хранит 2,5ГиБ и мог читать и записывать данные на 1 миллиардбит в секунду вместе с компьютером B6700, который подключен к машине через тот же интерфейс шириной 1024 бита, что и дисковая система.[48]

Машина состояла из ряда несущих шасси, на которых размещалось несколько небольших модулей. Большинство из них были блоками обработки (PU), которые содержали модули для одного PE, его PEM и логического блока памяти, который обрабатывал преобразование адресов и ввод / вывод. ПУ были идентичны, поэтому их можно было заменить или переупорядочить по мере необходимости.[49]

Детали процессора

В каждом БЧ было от 30 до 40 000 ворот.[50] У CU было шестнадцать 64-битных регистров и отдельный 64-битный «блокнот» на шестьдесят четыре слота, LDB. Было четыре аккумулятора, от AC0 до AC3, счетчик программ ILR и различные регистры управления. Система имела короткий конвейер команд и реализовано инструкция смотреть вперед.[51]

У ЧП было около 12000 ворот.[50] Он включал четыре 64-битных регистра, использующих аккумулятор A, буфер операнда B и вторичный блокнот S. Четвертый, R, использовался для широковещательной рассылки или приема данных от других PE.[52] PE использовали сумматор с упреждением, а опережающий детектор для булевых операций и a баррель шифтер. 64-битное сложение заняло около 200 нс, а умножение - около 400 нс. PE были подключены к частному банку памяти, PEM, который содержал 2048 64-битных слов. Время доступа было порядка 250 нс.[53] PE использовали загрузка / сохранение архитектуры.[54]

В Набор инструкций (ISA) содержал два отдельных набора инструкций, один для CU (или модуля внутри него, ADVAST), а другой для PE. Инструкции для PE не декодировались, а вместо этого отправлялись непосредственно в регистр FINST для отправки PE для обработки. Инструкции ADVAST были декодированы и поступили в конвейер обработки CU.[55]

Логическое расположение

Каждый квадрант содержал 64 PE и одну CU. CU имел доступ ко всей шине ввода-вывода и мог адресовать всю память машины. PE могли получить доступ только к своему собственному локальному хранилищу, PEM, из 2048 64-битных слов. И PE, и CU могут использовать операции загрузки и сохранения для доступа к дисковой системе.[48]

Шкафы были настолько большими, что требовалось 240нс для передачи сигналов от одного конца до другого. По этой причине CU не мог использоваться для координации действий, вместо этого вся система была синхронизирована с часами, и все операции в PE гарантированно занимали одинаковое количество времени, независимо от того, какие были операнды. Таким образом, CU может быть уверен, что операции завершены, не дожидаясь результатов или кодов состояния.[47]

Чтобы улучшить производительность операций, которые требовали, чтобы выходные данные одного PE использовались в качестве входа для другого PE, PE были подключены напрямую к своим соседям, а также к тем, которые находятся на расстоянии восьми шагов - например, PE1 был подключен напрямую к PE0 и PE2, а также к PE9 и PE45. Соединения, расположенные на восьми расстояниях, обеспечивали более быструю транспортировку, когда данные должны перемещаться между более удаленными PE.[48] Каждый сдвиг данных перемещал 64 слова за один такт 125 нс.[47]

Система использовала одноадресный формат, в котором инструкции включали адрес одного из операндов, а другой операнд находился в PE. аккумулятор (регистр А). Адрес был отправлен PE по отдельной «широковещательной» шине. В зависимости от инструкции значение на шине может относиться к ячейке памяти в PEM PE, значению в одном из регистров PE или числовой константе.[56]

Поскольку каждый PE имел свою собственную память, в то время как формат инструкций и CU видели все адресное пространство, система включала индексный регистр (X) для смещения базового адреса. Это позволяло, например, одному и тому же потоку инструкций работать с данными, которые не были выровнены в одних и тех же местах в разных PE. Типичным примером может служить массив данных, загруженных в разные места в PEM, которые затем можно сделать единообразными, установив индекс в разных PE.[56]

ветви

В традиционных компьютерных конструкциях инструкции загружаются в ЦП по одной по мере чтения из памяти. Обычно, когда ЦП завершает обработку инструкции, счетчик команд (PC) увеличивается на одно слово, и считывается следующая инструкция. Этот процесс прерывается ветви, что заставляет ПК переходить в одно из двух мест в зависимости от теста, например, содержит ли данный адрес памяти ненулевое значение. В схеме ILLIAC каждый PE будет применять этот тест к разным значениям и, следовательно, иметь разные результаты. Поскольку эти значения являются частными для PE, необходимо будет загрузить следующие инструкции на основе значения, которое известно только PE.[57]

Чтобы избежать задержек, вызванных перезагрузкой инструкций PE, ILLIAC загрузил PEM инструкциями по обе стороны ветви. Логические тесты не меняли ПК, вместо этого они устанавливали «биты режима», которые сообщали PE, выполнять ли следующую арифметическую инструкцию. Для использования этой системы программа должна быть написана так, чтобы один из двух возможных потоков инструкций следовал за тестом и заканчивался инструкцией по инвертированию битов. Затем следует код для второй ветви, заканчивающийся инструкцией по установке всех битов в 1.[57]

Если тест выбрал «первую» ветвь, этот PE продолжит работу в обычном режиме. Когда он достигнет конца этого кода, инструкция оператора режима перевернет биты режима, и с этого момента PE будет игнорировать дальнейшие инструкции. Это будет продолжаться до тех пор, пока не будет достигнут конец кода для второй ветви, где инструкция сброса режима снова включит PE. Если конкретный тест PE привел к выполнению второй ветви, он вместо этого установил бы биты режима, чтобы игнорировать дальнейшие инструкции, пока не достигнет конца первой ветви, где оператор режима перевернет биты и заставит второе ветвление начать обработку , снова включив их все в конце этой ветки.[57]

Поскольку PE могут работать в 64-, 32- и 8-битных режимах, флаги режима имеют несколько битов, поэтому отдельные слова могут быть включены или выключены. Например, в случае, когда PE работал в 32-битном режиме, на одной «стороне» PE тест мог быть верным, в то время как другая сторона была ложной.[57]

Терминология

  • CU: блок управления
  • ЦП: центральный процессор
  • ISA: архитектура набора команд
  • MAC: умножать и накапливать
  • ПК: счетчик программ
  • PE: обрабатывающий элемент
  • PEM: модуль памяти обрабатывающего элемента
  • ПУ: блок обработки

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

Примечания

  1. ^ Обратите внимание, что термин «FLOP» не был широко использован в то время, MIPS и FLOPS были синонимами.
  2. ^ Чен говорит июль.[26]
  3. ^ Позже известный как средняя интеграция.
  4. ^ Слотник и другие заявили, что первоначальная оценка в 8 миллионов долларов для этого случая номер, который был таким же, как кошелек в Клей-Листон бой.[2]
  5. ^ Он разрабатывался в период исторически высоких темпов инфляции, и, по крайней мере, некоторое повышение цены связано с этим повышением.[2]

Рекомендации

Цитаты

  1. ^ Хорд 1982, п. 1.
  2. ^ а б c d е ж Хорд 1982, п. 14.
  3. ^ Хорд 1982, п. 5.
  4. ^ Хокни и Джесшоп 1988, п. 24.
  5. ^ а б Хорд 1982, п. 8.
  6. ^ Хокни и Джесшоп 1988, п. 25.
  7. ^ а б c d Слотник 1982, п. 20.
  8. ^ Уэр, W.H. (10 марта 1953 г.). История и развитие IAS Computer (PDF) (Технический отчет). Rand.
  9. ^ Маккензи 1998, п. 295.
  10. ^ Слотник 1982, п. 21.
  11. ^ Слотник 1982, стр. 21-22.
  12. ^ Маккензи 1998, п. 105.
  13. ^ а б Букнайт и др. 1972 г., п. 371.
  14. ^ а б Слотник 1982, п. 23.
  15. ^ Слотник 1982, п. 24.
  16. ^ Маккензи 1998, п. 118.
  17. ^ Маккензи 1998, п. 119.
  18. ^ Слотник 1982, п. 25.
  19. ^ а б c d е ж грамм час Слотник 1982, п. 26.
  20. ^ Barnes et al. 1968 г., п. 746.
  21. ^ Левеск, Джон; Уильямсон, Джоэл (2014). Путеводитель по Fortran на суперкомпьютерах. Академическая пресса. п. 14.
  22. ^ Паркинсон, Деннис (17 июня 1976 г.). «Компьютеры тысячами». Новый ученый. п. 626.
  23. ^ Хорд 1982, п. 9.
  24. ^ Литару, Калев (2010). «Лаборатория цифровых вычислительных машин». Истории пользовательского интерфейса / Университет Иллинойса. Отсутствует или пусто | url = (Помогите)
  25. ^ Хорд 1982, п. 15.
  26. ^ а б Чен 1967, п. 3.
  27. ^ Barnes et al. 1968 г., п. 747.
  28. ^ а б Хорд 1982, п. 11.
  29. ^ а б c Фальк 1976, п. 67.
  30. ^ Берроуз 1974, п. 3.
  31. ^ а б c d е ж грамм Слотник 1982, п. 27.
  32. ^ Фальк 1976, п. 65.
  33. ^ «Байт истории: вычисления в университете Иллинойса». Университет Иллинойса. Март 1997. Архивировано с оригинал 10 июня 2007 г.
  34. ^ "Взрыв в Стерлинг-Холле 1970 г.". Университет Висконсина-Мэдисона.
  35. ^ «Вестник научной информации» (PDF). Управление военно-морских исследований Азиатского офиса. Декабрь 1993 г. с. 51. Получено 25 сентября 2014.
  36. ^ Хорд 1982, п. 7.
  37. ^ Фальк 1976, п. 69.
  38. ^ «Этот день в истории: 7 сентября», Музей компьютерной истории
  39. ^ «Блок управления ILLIAC IV». Музей истории компьютеров.
  40. ^ Фальк 1976, п. 68.
  41. ^ Хорда 1990, п. 9.
  42. ^ Хорда 1990, п. 10.
  43. ^ Хорда 1990, п. 12.
  44. ^ Хорда 1990, п. 13.
  45. ^ Фальк 1976, п. 66.
  46. ^ Роббинс, Кей; Роббинс, Стивен (2003). Системное программирование UNIX: связь, параллелизм и потоки. Прентис Холл. п.582. ISBN  9780130424112.
  47. ^ а б c Берроуз 1974, п. 5.
  48. ^ а б c Берроуз 1974, п. 4.
  49. ^ Берроуз 1974, стр. 11-12.
  50. ^ а б Чен 1967, п. 9.
  51. ^ Техническая 1968, п. 2.10.
  52. ^ Техническая 1968, п. 2.7.
  53. ^ Техническая 1968, п. 2.8.
  54. ^ Техническая 1968, п. 2.11.
  55. ^ Техническая 1968, п. 2.12.
  56. ^ а б Берроуз 1974, п. 7.
  57. ^ а б c d Берроуз 1974, п. 6.

Библиография

дальнейшее чтение

внешняя ссылка