Введение

Суперкомпьютер

Advanced Scientific Computer (ASC) — суперкомпьютер, разработанный и произведённый компанией Texas Instruments (TI) в период с 1966 по 1973 год. Центральный процессор (ЦП) ASC поддерживал векторную обработку, метод повышения производительности, который был ключевым фактором его высокой скорости работы. ASC, вместе с суперкомпьютером Control Data Corporation STAR 100 (представленным в том же году), стали первыми компьютерами, оснащёнными векторной обработкой. Однако потенциал этой технологии не был в полной мере раскрыт ни ASC, ни STAR 100 из-за недостаточного понимания принципов её работы; суперкомпьютер Cray Research Cray 1, анонсированный в 1975 году, полностью реализовал и популяризировал векторную обработку. Более успешная реализация векторной обработки в Cray 1 позволила отнести ASC (и STAR 100) к векторным процессорам первого поколения, а Cray 1 — ко второму.

История

TI начиналась как подразделение компании Geophysical Service Incorporated (GSI), которая выполняла сейсмические исследования для нефтедобывающих компаний. GSI теперь являлась дочерней компанией TI, и TI стремилась применять новейшие компьютерные технологии к обработке и анализу сейсмических данных. Проект ASC начался как Advanced Seismic Computer (Продвинутый сейсмический компьютер). По мере развития проекта TI решила расширить его область применения. Слово "Seismic" (сейсмический) было заменено на "Scientific" (научный) в названии, что позволило проекту сохранить аббревиатуру ASC. Изначально разработка программного обеспечения, включая операционную систему и компилятор FORTRAN, велась по контракту с компанией Computer Usage Company под руководством Джорджа Р. Тримбла-младшего, но впоследствии была переведена в TI. Южный методистский университет в Далласе разработал компилятор ALGOL для ASC.

Архитектура

ASC базировался на единой высокоскоростной совместно используемой памяти, к которой имели доступ процессор и восемь контроллеров каналов ввода-вывода, в организации, аналогичной новаторской CDC 6600 Сеймура Крея. Доступ к памяти осуществлялся исключительно под контролем блока управления памятью (MCU). MCU представляла собой двухстороннюю параллельную сеть со скоростью 256 бит на канал, способную поддерживать до восьми независимых процессоров, с девятым каналом для доступа к "основной памяти" (именуемой "расширенной памятью"). MCU также функционировала как контроллер кэша, обеспечивая высокоскоростной доступ к памяти на полупроводниковой основе для восьми портов процессора и обрабатывая все коммуникации с 24-битным адресным пространством основной памяти. MCU была разработана для асинхронной работы, что позволяло ей работать с различными скоростями и масштабироваться для различных уровней производительности. Например, основная память могла быть построена из более медленной, но менее дорогой магнитной памяти, хотя на практике это не использовалось. В самом быстром режиме она могла поддерживать скорость передачи 80 миллионов 32-битных слов в секунду на порт, что в сумме давало 640 миллионов слов в секунду. Это значительно превосходило возможности даже самых быстрых запоминающих устройств того времени. Процессор имел тактовый цикл 60 нс (тактовая частота 16,67 МГц), а его логика была построена из 20 логических интегральных схем с эмиттерно-связанной логикой, первоначально разработанных TI для суперкомпьютера ILLIAC IV. Процессор обладал чрезвычайно продвинутой архитектурой и организацией для своего времени, поддерживая микрокодированные арифметические и математические инструкции, которые работали со скалярами, векторами или матрицами. Векторные вычислительные средства имели архитектуру "память-память", где векторные операнды считывались из памяти, а результирующий вектор записывался обратно в память. Процессор мог иметь один, два или четыре векторных канала, позволяя ему выдавать от одного до четырех векторных результатов за цикл, в зависимости от количества установленных каналов. Векторные каналы также использовались для скалярных инструкций, и каждый канал мог одновременно поддерживать до 12 скалярных инструкций в процессе выполнения. Процессор с четырьмя каналами мог обрабатывать до 36 инструкций одновременно. Процессор имел сорок восемь 32-битных регистров, что было огромным количеством для того времени. 16 регистров использовались для адресации, 16 для скалярных операций, 8 для смещений индексов и 8 для указания различных параметров векторных инструкций. Данные перемещались между регистрами и памятью с помощью инструкций загрузки/сохранения, которые могли передавать от 4 до 64 бит (два регистра) за один раз. Большинство векторных процессоров, как правило, ограничивались пропускной способностью памяти, то есть они могли обрабатывать данные быстрее, чем могли получить их из памяти. Это остается серьезной проблемой и в современных SIMD-архитектурах, поэтому значительные усилия направлены на увеличение пропускной способности памяти в современных компьютерных системах (хотя и в основном безуспешно). В ASC это было частично улучшено благодаря блоку предсказания, который предсказывал предстоящие обращения к памяти и загружал данные в скалярные регистры неявно, используя интерфейс памяти в процессоре, называемый буферным блоком памяти (MBU). "Периферийный процессор" представлял собой отдельную систему, полностью предназначенную для быстрого запуска операционной системы и программ, работающих в ней, а также для подачи данных процессору. PP был построен из восьми "виртуальных процессоров" (VPs), которые были разработаны для обработки инструкций и базовой целочисленной арифметики. Каждый VP имел свой собственный счетчик программ и регистры, и система могла одновременно выполнять восемь программ, ограничиваясь только скоростью доступа к памяти. Поддержание восьми программ в рабочем состоянии позволяло системе переключать выполнение программ на процессоре в зависимости от доступности данных в шине памяти, минимизируя "простои", когда процессору приходилось ждать данных из памяти. PP также включал в себя набор из шестидесяти четырех 32-битных коммуникационных регистров (CR). CR хранили состояние, необходимое для связи между различными частями ASC: процессором, VP и контроллерами каналов. Набор инструкций ASC включал в себя инструкцию разворота битов, которая предназначалась для ускорения вычисления быстрых преобразований Фурье (FFT). К тому времени, когда ASC поступил в производство, были разработаны более эффективные алгоритмы FFT, которые не требовали этой операции. TI предложила вознаграждение первому человеку, который найдет полезное применение для этой инструкции, но вознаграждение так и не было получено.

Прием на рынке

Когда машины ASC впервые стали доступны в начале 1970-х годов, они превосходили почти все другие машины, включая CDC STAR 100, и при определенных условиях достигали производительности ILLIAC IV. Однако, к моменту анонса Cray 1 в 1975 году, было установлено всего семь машин ASC. Cray 1 была практически полностью сконцентрирована на обеспечении устойчивого высокоскоростного доступа к памяти, включая более миллиона 64-битных слов полупроводниковой памяти и время цикла, составлявшее одну пятую от времени цикла ASC (12,5 нс). Хотя ASC в некотором отношении была более масштабируемой системой, на рынке суперкомпьютеров приоритетом является скорость, и Cray 1 была значительно быстрее. Продажи ASC практически мгновенно прекратились, и хотя была разработана модернизированная версия ASC с временем цикла, составлявшим одну пятую от первоначального, компания Texas Instruments приняла решение покинуть рынок.

Приложения векторной обработки

Прототип ASC №1 был системой с одним контуром и был развернут в Остине, штат Техас, вне основной площадки TI в целях защиты конфиденциальной информации. Позже он был модернизирован до двух контуров и переименован в ASC №1A. Затем он использовался подразделением GSI компании TI для обработки сейсмических данных. ASC №2 был сдан в аренду компании Shell Oil Company в Нидерландах и также использовался для обработки сейсмических данных. ASC №3 был установлен на арсенале Редстоун в Хантсвилле, штат Алабама, для разработки технологий перехвата противоракетной обороны. После заключения Договора ОСВ-1 система была передислоцирована в Инженерный корпус армии США в Виксбурге, штат Миссисипи, для анализа напряжений в плотинах. ASC №4 использовался NOAA в Принстонском университете для разработки моделей прогнозирования погоды. Системы ASC №5 и №6 были установлены на основной площадке TI в Остине и также использовались GSI для обработки сейсмических данных. ASC №7 был отправлен в Научно-исследовательскую лабораторию ВМС в Вашингтоне, округ Колумбия, для исследований в области физики плазмы.