Введение
Multiflow Computer, Inc., основанная в апреле 1984 года недалеко от Нью-Хейвена, штат Коннектикут, США, являлась производителем и продавцом аппаратного и программного обеспечения мини-суперкомпьютеров, реализующих архитектуру VLIW. Multiflow, зарегистрированная в штате Делавэр, прекратила свою деятельность в марте 1990 года, реализовав около 125 мини-суперкомпьютеров VLIW в Соединенных Штатах, Европе и Японии. Несмотря на небольшой и кратковременный коммерческий успех, технические достижения Multiflow, а также распространение ее технологий и кадров оказали значительное влияние на будущее компьютерной науки и компьютерной индустрии. Компьютеры Multiflow, пожалуй, были самыми инновационными из когда-либо широко продаваемых, программируемых и используемых в качестве обычных компьютеров. (Другие инновационные компьютеры либо требовали принципиально нового подхода к программированию, либо представляли собой лишь незначительные улучшения существующих систем.) Вместе с Cydrome, еще одной компанией, производившей мини-суперкомпьютеры VLIW, но менее успешной в коммерческом плане, Multiflow доказала практичность архитектуры VLIW, что стало неожиданностью для многих. Несмотря на то, что VLIW до сих пор вызывает споры, она стала важным фактором в высокопроизводительных встраиваемых системах и постепенно завоевывает признание в области вычислительной техники общего назначения.
Корни технологии
Стиль VLIW (Very Long Instruction Word – очень длинное командное слово) был впервые предложен Джозефом А. (Джош) Фишером, профессором компьютерных наук Йельского университета, в период с 1979 по 1981 год. VLIW был обусловлен техникой планирования компилятора, называемой трассированным планированием, которую Фишер разработал будучи аспирантом в Институте математических наук Нью-Йоркского университета в 1978 году. Трассированное планирование, в отличие от любых предшествующих методов компиляции, выявило значительный параллелизм на уровне инструкций (ILP) в обычных компьютерных программах, без трудоемкой ручной оптимизации. Это указывало на возможность создания процессоров, для которых компилятор мог бы надежно находить и задавать ILP. Фишер предложил VLIW как способ создания параллельных процессоров общего назначения на уровне инструкций, использующих ILP в степени, непрактичной для реализации с помощью впоследствии названного суперскалярного аппаратного обеспечения управления. Вместо этого компилятор мог заранее упорядочить ILP для почти синхронного выполнения аппаратным обеспечением, управляемым длинными инструкциями или аналогичным механизмом. Ранее существовавшие процессоры, достигавшие значительного ILP, полагались на код, вручную параллелизованный пользователем, или на библиотечные подпрограммы, и поэтому не являлись компьютерами общего назначения и не соответствовали парадигме VLIW. Практичность трассированного планирования была продемонстрирована компилятором, разработанным в Йельском университете Фишером и тремя его аспирантами: Джоном Руттенбергом, Александру Николау и, особенно, Джоном Эллисом, чья докторская диссертация по компилятору получила награду ACM в 1985 году. Воодушевленные успехами в компиляции, группа Фишера начала разработку архитектуры и аппаратного обеспечения под названием проект ELI (Enormously Long Instructions – чрезвычайно длинные инструкции).
Начало бизнеса
ELI, который должен был иметь 512-битные команды и выполнять 10-30 RISC-операций за цикл, так и не был создан. Вместо этого Фишер, Раттенберг и Джон О’Доннелл, руководившие аппаратной разработкой ELI, основали Multiflow в 1984 году, не сумев заинтересовать крупные компьютерные компании в партнерстве по проекту ELI. Изначально планировалось, что Multiflow станет подразделением компании Apollo Computer, но в итоге они привлекли венчурный капитал, завершив первый раунд финансирования в январе 1985 года, когда в компании уже работало около 20 человек. Дональд Э. Экдал, бывший руководитель компьютерного подразделения NCR, присоединился к компании в 1985 году в качестве генерального директора. Multiflow поставила первые рабочие мини-суперкомпьютеры с архитектурой VLIW в начале 1987 года трем площадкам для бета-тестирования: Grumman Aircraft, Sikorsky Helicopter и Центру исследований в области суперкомпьютеров. Модель Trace 14/200 была продемонстрирована публике на конференции по суперкомпьютерам в мае 1987 года в Санта-Кларе, Калифорния.
Инновационная архитектура
Первые компьютеры Multiflow назывались Trace 7/200 и Trace 14/200. Цифра 7/ в номере модели компьютера указывала на то, что процессор мог инициировать семь операций за каждый цикл, используя 256-битную инструкцию, состоящую из 7 операций по 32 бита и 32-битного служебного поля. Эти 7 операций включали 4 целочисленные/операции с памятью, 2 операции с плавающей точкой и операцию перехода. Модели 14/ имели вдвое больше каждой инструкции, а значит, использовали инструкции длиной 512 бит. Как и многие процессоры, ориентированные на научные вычисления того времени, Trace не имел традиционной кэш-памяти. Multiflow также анонсировал модель 28/ на старте, и в конечном итоге они были построены и проданы нескольким заказчикам. Модель 28/ использовала инструкции длиной 1024 бита. Компиляция обычных программ для таких компьютеров была, безусловно, революционной, поскольку ни один из предыдущих компьютеров не предлагал скомпилированный ILP даже на уровне моделей 7/. Системы 28/ значительно расширили эти границы, превзойдя как академические, так и промышленные представления о возможном. Хотя лишь небольшое количество клиентских программ содержало достаточно ILP, чтобы полностью загрузить 28/, когда это происходило, производительность была впечатляющей, поскольку процессор в среднем инициировал почти все 28 операций.
Оборудование
Каждый 7/ процессорный тракт данных состоял из платы блока управления, целочисленной ALU-платы и платы для операций с плавающей точкой. В 14/ добавлена вторая целочисленная ALU-плата и вторая плата для операций с плавающей точкой. До того, как многие системы поступили в эксплуатацию, стали доступны более быстрые микросхемы с плавающей точкой от сторонних производителей, и семейство /200 было заменено несовместимыми по объектному коду моделями 7/300 и 14/300, при этом 14/300 стала самой популярной моделью компании. Около 1988 года была представлена также начального уровня серия /100, но по сути это были системы /300 с более низкой тактовой частотой. Все процессоры строились с использованием КМОП-массивов логических элементов для целочисленных ALU и регистров, сторонних микросхем с плавающей точкой и интегральных схем среднего масштаба для блоков управления и других компонентов. В 1988 году компания начала разработку семейства ECL /500, которое должно было включать модель 14/, которую также можно было использовать в качестве мультипроцессора из двух моделей 7/, но эта система не была завершена до прекращения деятельности компании. Один из образцов системы Trace хранится в Музее истории компьютеров.
Инновационное программное обеспечение
Multiflow также разрабатывала программные инструменты для создаваемых систем. Системы работали под управлением Berkeley Unix. Вероятно, на момент поставки систем Multiflow ни один компьютер, выполняющий инструкции длиннее одной операции за такт, никогда не запускал скомпилированную основную операционную систему. Тем не менее, вся операционная система Unix и стандартный набор инструментов работали, скомпилированные в обычном режиме, на всех моделях компании. Компилятор был особенно заметен, что можно было ожидать, учитывая технологию Multiflow. Компания создала новый компилятор, выполненный в стиле, аналогичном разработанному в Йельском университете, но обладающий промышленной надежностью и включающий в себя множество коммерчески необходимых функций. Помимо реализации агрессивного планирования трассировок, он был известен своей надежностью, использованием передовой оптимизации и способностью одновременно обрабатывать множество различных языковых диалектов и все несовместимые модели трассировок Multiflow. (Хотя код, предназначенный для 7/X00, мог корректно выполняться на 14/X00, архитектура требовала его перекомпиляции для достижения более высокой производительности на 7/.) Компилятор начал генерировать корректный код в 1985 году, а к 1987 году он выдавал код, обнаруживающий значительный потенциал для ILP. После 1987 года, под давлением клиентов и потенциальных заказчиков, разработка компилятора была сосредоточена на функциях и возможностях, хотя улучшения, ориентированные на производительность, продолжались. Компилятор был настолько надежен и настолько хорошо выявлял ILP независимо от целевой системы, что после закрытия Multiflow он был лицензирован многими крупнейшими компьютерными компаниями. Сообщается, что среди них были Intel, Hewlett Packard, Digital Equipment Corporation, Fujitsu, Hughes, HAL Computer Systems и Silicon Graphics. Другими компаниями, лицензировавшими эту технологию, были Equator Technologies, Hitachi и NEC. Компиляторы, созданные на основе этой кодовой базы, использовались для передовой разработки и подготовки отчетов о производительности самых важных суперскалярных процессоров 1990-х годов. Потомки этого компилятора оставались широко используемыми в течение 20 лет после начала генерации корректного кода (в частности, компилятор Intel icc "Proton" и компилятор NEC Earth Simulator) и часто используются в качестве эталона при разработке новых компиляторов. MIT и Вашингтонский университет – одни из университетов, получивших и использовавших компилятор в целях передовых исследований. Компилятор Multiflow был написан на языке C. Он появился до широкого распространения C++ (Multiflow был бета-сайтом для этого языка). Однако разработчики компилятора были убежденными сторонниками объектно-ориентированного подхода, и компилятор имел довольно своеобразный стиль, заключающий структуры и операции в инкапсулированные блоки. Это создавало крутую кривую обучения для многих разработчиков, использовавших его после прекращения существования Multiflow, но обычно считалось выгодной инвестицией благодаря уникальному сочетанию амбициозной компиляции и надежной инженерной реализации, которые предлагал компилятор.
Клиенты
Несколько продаж Multiflow были сделаны организациям, заинтересованным в изучении нового стиля проектирования VLIW, однако большинство систем использовалось для моделирования в процессах разработки продукции: в механике, аэродинамике, оборонной промышленности, динамике столкновений, химии и некоторых областях электроники. Клиентами были как крупные городские органы по контролю качества воздуха, так и крупные компании, производящие потребительские товары – моющие средства, продукты питания и товары первой необходимости, а также предприятия тяжелой промышленности, исследовательские лаборатории и университеты. В 1987 году GEI Rechnersysteme GmbH, подразделение Daimler Benz, начало успешно распространять Traces в Германии, несмотря на сильную конкуренцию со стороны других компаний, производящих мини-суперкомпьютеры. В последующие три года Multiflow открыла офисы или нашла дистрибьюторов в большинстве стран Западной Европы и Японии, а также открыла офисы во многих крупных городах США.
Конец многопотока
Multiflow прекратил свою деятельность 27 марта 1990 года, через два дня после срыва крупной сделки с Digital Equipment Corporation. В этот момент совет директоров пришел к выводу, что перспективы успешного привлечения дополнительного финансирования в объеме, необходимом для развития Multiflow, были слишком малы, чтобы оправдать дальнейшее существование компании. Неудачу Multiflow часто объясняют анекдотично: "хорошей технологией, но плохим маркетингом", "хорошим программным обеспечением, но медленным и консервативным оборудованием", особенностями его инновационной технологии или даже удаленным расположением штаб-квартиры. Более вероятной причиной было то, что бизнес-план компании не соответствовал кардинальным изменениям в компьютерной индустрии. К 1990 году создание полномасштабной компании по производству компьютеров общего назначения, казалось, требовало сотен миллионов долларов (США). Однако революция микропроцессоров означала постоянное увеличение скорости и снижение стоимости конкуренции. Экономия, обеспечиваемая микропроцессорами, была недоступна стартапам в целом и несовместима с VLIW-архитектурой, для реализации которой требовалось слишком много кремния при доступной плотности размещения элементов. (Первым микропроцессором с VLIW-архитектурой был Philips Life, предок современного TriMedia, представленный несколько лет спустя.) После основания Sun и SGI в начале 1980-х годов ни одна новая компания по производству компьютеров общего назначения не добилась успеха, не создав компьютеры с существующей большой базой программного обеспечения, и ни одна из многочисленных компаний-стартапов, разрабатывающих мини-суперкомпьютеры в 1980-х годах, в конечном итоге не преуспела.
Корпоративная культура
В Multiflow работали инженеры, ученые-компьютерщики и другие IT-специалисты, которых привлекало сочетание новой и сложной технологии, непростой задачи и уникального опыта работы в исключительно талантливом коллективе, частью которого им, вероятно, больше никогда не доведется быть. Система была настолько новаторской, что многие предсказывали неудачу ее разработки. Однако, несмотря на то, что никто из сотрудников (за исключением Экдаля) ранее не занимал руководящих инженерных должностей, системы Trace и их программное обеспечение были поставлены в срок, оказались надежными и превзошли заявленные характеристики. Это во многом объяснялось высоким уровнем квалификации сотрудников, которых привлекала компания, и созданной в ней с самого начала атмосферой непрерывного обучения. После закрытия Multiflow ее бывшие сотрудники оказали значительное влияние на индустрию. Небольшая основная группа инженеров и ученых, насчитывавшая около 20 человек, воспитала 4 обладателя престижных стипендий в крупных американских компьютерных компаниях (двое из которых стали лауреатами премии Экерта-Мокли), нескольких основателей успешных стартапов и руководителей крупных проектов разработки в крупных компаниях. Единственный нетехнический специалист в основной группе, принятый из бизнес-школы, впоследствии возглавил отдел корпоративного развития в крупной исследовательской лаборатории. По мере роста Multiflow компания продолжала придерживаться традиции найма высококвалифицированных специалистов: например, составитель документации стал одним из самых влиятельных редакторов в сфере компьютерных изданий. Вклад Multiflow в компьютерную индустрию был обусловлен не только технологиями, но и, в первую очередь, ее сотрудниками.