VLIW в Рочестере

VLIW в Рочестере

Рочестер заинтересовался архитектурой с очень длинным словом команд в начале 80-х. В то время здесь было организовано специальное подразделение исследования новых технологий для наших будущих системах. В этом подразделении я руководил группой систем. Задача группы состояла не в том, чтобы создать продукт, который будет поставляться заказчикам, но разобраться, заслуживают ли некоторые идеи внимания, и может ли на их основе быть создана аппаратура. Разумеется, лучший способ продемонстрировать положительный ответ — работоспособный прототип.

Наша группа сосредоточила свое внимание на высокопроизводительных вычислениях и параллельной обработке, в основном, применительно к System/38. Мы были убеждены, что когда-нибудь создадим модели System/38 очень высокой производительности, и хотели быть готовы к этому. Исследование процессоров возглавлял Рой Хоффман. Его идея состояла в следующем: добавить к System/38 процессоры, специально предназначенные для приложений, с которыми эта система справлялась не очень хорошо. Одним из сопроцессоров, которые мы присоединили к System/38, был высокопроизводительный процессор операций с плавающей точкой. После этого мы решили пойти дальше и построить System/38 с производительностью суперкомпьютера. В наши намерения входило добиться на своем прототипе большей производительности приложений, интенсивно использующих плавающую точку, чем на System/ 390 с ее векторными возможностями. Достичь поставленной цели мы собирались с помощью сопроцессора фирмы FPS (Floating Point Systems).

В 1975 году FPS выпустила АР-120В — первенец семейства матричных процессоров FPS, использовавшийся, в основном, для обработки сигналов. Матричные процессоры работают с упорядоченными наборами данных, обычно, векторами или матрицами. В 1980 году FPS выпустила FPS-164 на основе архитектуры АР, предназначенный для сложных научных расчетов. FPS-164 был полностью 64-разрядным процессором. Он мог с успехом соревноваться с любыми суперкомпьютерами того времени, включая Cray.

Процессор FPS не был автономным, а подключался к управляющей вычислительной системе. Мы купили его и подключили к System/38, а параллельно стали разыскивать коммерческие приложения, которым требовались высокопроизводительные вычисления с плавающей точкой. Мы хотели показать, что вычисления такого типа применимы не только к научным расчетам. Наиболее обещающими были приложения для банков и работы с ценными бумагами.

^чЧУЦ//>, Физически FPS-164 был гораздо больше System/38. У него были также свои «капризы», которыми не страдала наша система, например требования к охлаждению воздуха. Мы оборудовали ему специальную комнату с фальшполом и самым большим кондиционером, который когда-либо устанавливали наши техники. Вентиляторы FPS засасывали холодный воздух из-под фальшпола с таким шумом, будто в комнате находилось судно на воздушной подушке. Когда мы его выключали, в комнате становилось так холодно, и никто из персонала не мог там долго находиться. Однако, как вычислительная машина FPS-164 работал по-настоящему быстро.

У FPS были планы — создать с помощью новых технологий такие версии FPS-164, которые работали бы вместе с System/38 в нормальных условиях офиса. Но именно тогда проект Fort Knox был прекращен, и мы сосредоточили все свои силы на Silverlake. Увы, проект использования с System/38 новых сопроцессоров нам не довелось довести до конца. Однако он кое-чему научил нас, и этот опыт пригодился при работе над сопроцессорами для AS/400.

Системы FPS были одними из первых с длинным словом команды, содержавшим по несколько операций на команду. В машине имелось 10 функциональных узлов, и каждому из них требовалась на каждом цикле собственная подкоманда. В длинном слове команды были отдельные подкоманды для каждого узла. Одна команда могла полностью обработать вектор.

Вместо оптимизирующего компилятора для создания длинных слов команд применялись библиотеки языка ассемблера. Основной компьютер обрабатывал логику программы и вызывал процедуры с длинными командами для исполнения на машине FPS. Данный тип программирования схож с микрокодом с длинным словом типа HMC, использовавшегося в System/38. Хотя в командах НМС было не так много битов, как длинном слове команды FPS, но каждая команда НМС запускала несколько функций процессора System/38. Одно время мы рассматривали возможности использовать в НМС некоторые приемы для распределения команд по функциональным узлам.

Примерно в то же самое время, группа исследователей Йельского университета (Yale University) предложила создать машину с очень длинной командой (512 бита), которую они назвали VLIW. Коммерческий проект попыталась осуществить фирма Multiflow Computers, но, в конечном счете, потерпела неудачу из-за недостатка финансирования. В 1993 HP лицензировала у более не существующей компании пакет ее патентов.

Интерес к машинам VLIW в Рочестере сохранялся и в конце 80-х годов, главным образом, благодаря связи этой технологии и НМС. После объявления IBM AS/400 мы начали работу над процессором для систем следующего поколения. Технология VLIW стала частью новой архитектуры.

Одним из руководителей проекта VLIW был Дэйв Льюк (Dave Luick). Дэйв начинал с нашего первого процессора, возглавлял разработку процессора System/38 Model 7 и с тех пор участвовал в проектировании всех наших процессоров. Он из тех, кто всегда стремится выйти за пределы традиционной технологии, и очень заинтересовался применением к НМС некоторых технологий VLIW. Процессор C-RISC, обсуждавшийся в главе 2, был разработан как процессор для Advanced Series перед тем, как мы перешли на технологию PowerPC. Так вот, благодаря Дэйву и некоторым его соратникам, C-RISC имел НМС с рядом характеристик машины VLIW.

В 1991 году Дэйв в составе группы из 10 человек занимался оценкой возможности использования процессоров PowerPC для AS/400. После принятия решения о переходе на технологию PowerPC, он и его единомышленники направили свои усилия на создание PowerPC-совместимой машины VLIW. Так как VLIW очень зависит от технологии компиляторов, немедленно начались совместные исследования с IBM Research. Специалисты этой лаборатории, работавшие над VLIW, не могли найти для этой технологии такую платформу, чтобы новшества не оказали негативного влияния на бизнес заказчиков. Технологическая независимость AS/400 снимала этот вопрос. Мы могли внедрить VLIW в AS/400 безболезненно для пользователей.

Работа над VLIW в Рочестере показала огромный потенциал данной технологии для повышения производительности AS/400. Во-первых, благодаря упрощенной архитектуре, больше похожей на Speed Demon; можно сократить время такта процессора и создать по той же технологии микросхему, которая по скорости будет вдвое превосходить стандартный PowerPC. Во-вторых, в течение нескольких следующих лет достижим намного больший параллелизм (16 или даже более конвейеров) на одной микросхеме, чем в суперскалярных RISC; где всего лишь пять или шесть конвейеров.

В настоящее время работа над VLIW в Рочестере по ряду причин приостановлена. Дело, прежде всего, в том, что мы договорились использовать универсальную технологию процессора как для серии AS/400е, так и для продуктов линии RS/6000. Хотя благодаря независимости от технологии в AS/400 можно внедрить столь радикально новую технологию как VLIW, на RS/6000 это невозможно. Зато обе системы могут использовать RISC-процессоры PowerPC.

Некоторое время мы рассматривали возможность создания процессора PowerPC с ядром VLIW. Такой процессор мог бы использоваться как AS/400, так и RS/6000. Новый транслятор для AS/400 генерировал бы код либо для интерфейса процессора PowerPC, либо обходил его и генерировал код непосредственно для ядра VLIW. Компоненты SLIC работали бы через интерфейс PowerPC, а со временем мы переписали бы их для исполнения непосредственно ядром VLIW. Прикладные программы с шаблоном внутри программного объекта, могли бы автоматически конвертироваться для VLIW, а программы без шаблона продолжали бы работать как программы PowerPC.

Из-за споров вокруг эффективности трансляции команд в операции ядра VLIW мы приостановили работы над процессором PowerPC с таким ядром. Придется подождать и посмотреть, сколь успешно технология VLIW будет использована в Intel Merced. Некоторые из наших разработчиков даже предлагали подумать над возможностью перехода AS/400 на этот новый 64-разрядный процессор Intel. На мой взгляд, это было бы забавно.

Вторая причина приостановок работ по VLIW — то, что производительность одиночного процессора в сегодняшних системах не является слабым местом. На наш взгляд, гораздо больше выгод принесет усовершенствование подсистем памяти, и первые реализации новых подсистем уже это подтвердили.

До сих пор мы говорили только об отдельных процессорах и возможностях их применения в серии ASA^X^. Следующий раздел посвящен перспективам развития многопроцессорных систем.