За временем маркетинговой шумихи Intel, направленной на продвижение "процессора XXI века", пришла пора реальных действий. Крупнейшие производители RISC-процессоров, еще так недавно выглядевшие неприступными бастионами всех оппозиционных платформе Wintel сил, один за другим заключают с Intel стратегические альянсы и берут курс на Merced, не найдя в себе сил противостоять ему в одиночку. По словам члена-корреспондента РАН Бориса Арташесовича Бабаяна, сейчас в мире процессорами архитектуры VLIW занимается всего тpи группы: в Intel, в IBM и в коллективе, который возглавляет он. В "Московском центре SPARC-технологий", который теперь называется "Эльбрус-2000", трудится костяк разработчиков советских супеpЭВМ "Эльбрус". Здесь еще до 2000 года рассчитывают создать процессор, который должен превзойти Merced. Об этом Бабаян рассказал в беседе с научным редактором нашего еженедельника Игорем Левшиным.
Прежде чем окунуться в технологии XXI века, давайте немного поговорим о фундаменте, на который опирается ваш центр. Как финансируются ваши разработки?
Мы сами себя кормим. Несмотря на то что экономика сейчас переживает непростые времена, мы получаем заказы от государства - ведь мы делаем вещи, которые работают в реальных системах. У нас есть контракты на солидные суммы с западными фирмами. Но свой главный проект - процессор новой архитектуры - мы некоторое время финансировали сами, хотя он и очень велик: в нем участвует более 70 человек. Сейчас он активно поддерживается западными фирмами. Первый контракт с Западом мы подписали в 1992 году. Тогда же я впервые встретился с Биллом Джоем (создатель SunOS, вице-президент и один из основателей Sun Microsystems. - Прим. ред.). Сейчас мы сопровождаем SunOS; к нам стекаются ошибки со всего мира. Полностью поддерживаем Pascal Sun - за эту работу отвечает филиал в Санкт-Петербурге. FORTRAN 77 поддерживает наш новосибирский филиал. Очень много работ по Java: мы занимаемся оптимизацией байт-кода. Все до одной библиотеки для расширения набора команд Visual Instruction Set написаны в нашем центре.
А купить ваш проект иностранные компании не пытались?
Пытаются постоянно. Можно было бы попытаться продать проект. Но мы хотим делать свой кристалл. Мы не тешим себя иллюзиями полной независимости, но вести работы должен именно наш коллектив. Положение у нас очень непростое. Если у фирмы-партнера есть грамотный коллектив разработчиков, который в состоянии разобраться в нашем проекте, то возникнет естественная творческая конкуренция. А если такого коллектива нет, фирме будет трудно развернуть столь серьезный проект. Никто не возьмется за выпуск кристалла, не будучи полностью уверен в успехе. Поэтому мы много работаем над "раскручиванием" проекта, повышаем свой международный авторитет. Здесь помощь государства была бы очень полезна, но мы не чувствуем достаточно внимания государства. Многие коллективы утверждают, что делают совершенные проекты. Банкиры в России очень богатые, но от нас три года никакого возврата не будет - на такие инвестиции они вряд ли пойдут. А потом ведь очень большие доходы будут! Если мы "возьмем" лишь полпроцента рынка процессоров - это уже несколько миллиардов долларов в год.
А отечественная оборонная промышленность?
"Оборонка" нас очень любит, но у нее денег мало. Мы делаем для них рабочие станции: берем станции Sun, перепроверяем их и дополняем согласующими устройствами по оборонным нормам. Мы сделали свои SBus-карты, интерфейсы, "сделали математику". Для нас это не очень сложно, потому что мы владеем исходными кодами операционных систем Sun. Мы гарантируем, что наше оборудование "чистое", без жучков и закладок.
Следующий этап - более серьезный. Мы возьмем станцию SPARCStation 10, вытащим SPARC и вставим процессор собственной разработки. От SPARC в нем только система команд. Два миллиона транзисторов по 0,5-микронной технологии. Такой технологии у нас в России нет, процессор будет выпускаться во Франции. Первый экземпляр уже в производстве, выпуск намечен на февраль.
Вы говорили о возможности сборки на базе плат Sun UltraAX. Как идут дела?
Об этом проекте говорить пока рано. Это, кстати, не первая наша попытка собирать компьютеры Sun. Ближе всего мы были к этому два-три года назад, когда хотели организовать сборку станций на базе SPARC под торговой маркой Sun. В Воронеже есть великолепная, полностью автоматизированная фабрика. Даже слишком автоматизированная - на Западе, например, начинают отказываться от полной автоматизации: такая сборка, в частности, занимает больше площади. Мы разобрали рабочую станцию Sun и дали воронежцам, чтобы они "прогнали" ее по всем сборочным линиям - все прошло великолепно. Договорились с Sun, приехали два вице-президента и сказали, что они полностью удовлетворены: все чисто, все работает. Но добавили, что сборочных мощностей у Sun вполне достаточно, поэтому собирать здесь имеет смысл лишь в расчете на резкий рост сбыта в России. Окончательное решение должен был принять московский офис, где, оценив рынок, решили, что это нецелесообразно. Тогда на этом дело и закончилось.
Процессор, о котором вы говорили, будет принципиально другой архитектуры?
Конечно да. Процессор необходимо делать, конечно, на западной элементной базе. Мы рассматриваем только вариант 0,18 мкм. Иначе то, что мы выиграем на логике, будет потеряно на технологии - кто у нас тогда такие процессоры купит?
А кто еще в стране этим занимается?
Я не знаю никого. Не в том смысле, что все хуже, а просто никто не работает. Тот, кто разработал кристалл, прекрасно знает, как делать из него систему. Создать свою архитектуру и выйти на рынок с микропроцессором - это весьма непростая задача. Необходимо убедить организации, с которыми рассчитываешь сотрудничать. Хороший показатель - международное признание. Для меня критерий таков: тот, кто может обанкротиться, должен финансировать разработку. Тогда это действительно серьезно. Государство не может обанкротиться. А такого, чтоб положил кто-то деньги, - такого нет. Кроме сборки. У нас, конечно, хорошие и востребованные программисты. Здесь Россия очень сильна. Программисты, сборка, возможно, что-то в области связи...
А откуда уверенность в том, что ваш процессор, даже самый совершенный, нужен на рынке?
Давайте посмотрим немного вперед. Сейчас у многих компаний есть лицензии на технологии Intel. Когда-то Intel была не такой могущественной и продавала лицензии. Их срок истекает в 2000 году. Есть маленькие фирмы, которые производят процессоры несмотря на отсутствие патентов - просто на милость Intel.
Зачем с ними судиться, только лишние неприятности. В Merced, своем новом процессоре, Intel запатентовала буквально все. После 2000 года наступит полная монополия Intel. А мы от Intel не зависим - так как все наши работы защищены собственными патентами, совместимость мы обеспечиваем с помощью двоичной компиляции.
Допустим. А как же производители RISC-процессоров?
RISC-процессоры производят HP, DEC, SGI, Sun и IBM. Но Intel доминирует на рынке. HP ведет совместный проект по Merced с Intel и несмотря на то, что компания продолжает выпускать собственные процессоры PA-RISC, велика вероятность, что она все же полностью перейдет на Merced. Была DEC с его великолепной Alpha. Что теперь будет с Alpha? Это основной конкурент Merced по скорости, и Intel будет выпускать Alpha? По контракту-то обязана, но ситуация ненадежна. Кристалл, конечно, великолепный, а вот фабрика - не на современном уровне. Они отстают на два года: переходят на 0,25, а Intel - уже на 0,18. Их кристалл хорош потому, что методология разработки прекрасная. Они каждый триггер делают индивидуально, у них неплохие средства САПР. Кристалл рисуют просто блестящие инженеры. Сейчас за Alpha взялась Samsung, но будут ли Alpha покупать? В Digital долго меняли курс: то VAX, то MIPS, то Alpha... Слишком долго продолжали выпускать VAX - в этом виноват Олсон: все боялся перейти на RISC-платформу - уж больно хорошо шли VAX. Он переоценил проблему совместимости. Потом слишком поспешно перешли на MIPS. Тогда уж надо было покупать компанию MIPS.
Но остались IBM, SGI, Sun...
У IBM не просто хорошая технология - сверххорошая. Не хуже, чем у Intel. Очень дешевые кристаллы, но не слишком удачные разработки. Я имею в виду PowerPC. Сейчас они более серьезно продвигают Power 2, потому что тройственный союз распадается. Apple заботят свои собственные проблемы, Motorola думает, как бы уйти из этого союза. IBM остается одна. Процессор серии 620 они так и не выпустили. При всей их блестящей технологии они теряют свой рынок.
Дальше Silicon Graphics. Важный показатель - выпускает ли производитель, кроме собственной платформы, машины на базе Intel-процессоров. SGI объявила, что намеревается выпускать рабочие станции на Intel. Раньше это были разные рынки: рабочие станции - один, а персоналки - другой. Поэтому, выпуская продукцию на двух платформах, производитель не конкурировал сам с собой. А сейчас Intel сделала Pentium Pro и просто ворвалась в рынок рабочих станций. Быстрый Merced, который в силу своей массовости будет дешевым, - как осиновый кол в могилу всех RISC-процессоров.
Сейчас только Sun пытается стоять на своем. А остальные собираются делать машины на Merced. Да и Sun дрогнула: недавно Макнили объявил, что они будут переносить Solaris на Merced. Скотт - боец. Sun уступила Intel в настольных системах. В Sun надеялись, что, сделав UltraSPARC, они смогут затмить Intel. Они не стали производить сложную архитектуру. Сделали простой микропроцессор, потому что не ожидали, что так скоро появится Pentium Pro. Теперь они выпускают UltraSPARC III. Они и в то, что Intel будет делать Merced, не очень верили - это моя оценка. Думали: мало ли что они там в Intel говорят. Они вели разговоры и про Intel 432, и про Intel 860 - и все бросали.
Безрадостная картина... Как же столь глобальным процессам сможете противостоять вы со своим новым кристаллом?
Мы знаем, как сделать новый микропроцессор. Все принципиальные разработки ведутся в США. Intel - это американские разработки, хотя первый кристалл с MMX и создавался в Израиле. Архитектуры микропроцессоров, системы команд разрабатываются только в США. Сами кристаллы с уже заданной архитектурой делаются не только в Америке, но и в Японии; например, Fujitsu производит свой SPARC. В Южной Корее тоже собираются заняться выпуском таких кристаллов. Samsung делает Alpha. Выпускает кристаллы гораздо больше фирм, чем разрабатывает. Для встроенных систем кристаллы разрабатываются и в Японии, и в Корее, и в Европе. Но процессорные архитектуры и системы команд для использования с универсальной операционной системой создаются только в Америке. И в нашем центре.
Мы в свое время вышли из ИТМиВТ. Сейчас нас около 300 разработчиков плюс два филиала - в Новосибирске и Санкт-Петербурге. У нас работают специалисты мирового уровня. Потому что мы всегда делали свои машины, а не копировали IBM или DEC. Государство всех заставило копировать, один наш директор, Лебедев, настоял на своем. Мы знаем, что мы не хуже американцев. Быстрая арифметика - быстрое сложение, деление и извлечение квадратного корня - была мной сделана в студенческой работе в 1954 году. Западные публикации появились только в 1956 году. Сейчас же этот принцип используется повсеместно. Первый настоящий суперскалярный процессор, где мы дешифровали две команды за такт с техникой out-of-order execution (внеочередное исполнение), register renaming (переименование регистров) и спекулятивным выполнением команд, мы сделали задолго до американцев. Причем в варианте, аналогичном Pentium Pro. В нем используется команда переменной длины, которая перекодируется по ходу исполнения в RISC-команду постоянной длины. Потом он уже работает как суперскалярный процессор. Это же "Эльбрус 1". У нас была стековая безадресная система команд, переменная байтовая организация - суперскалярный процессор на ней трудно сделать, поэтому мы на лету перекодировали ее в фиксированную трехадресную регистровую систему; декодировали две команды за такт - все, что реализовано в современном суперскалярном процессоре. Американцы это предложили только в 1995 году, а наша машина заработала в 1978-м.
Ваш приоритет признали?
Сейчас этот факт на Западе признан. Но мы не только раньше американцев убедились в достоинствах суперскалярной архитектуры, мы первыми обнаружили и ее слабости. Они еще не начали делать суперкалярные процессоры, а мы уже поняли, в чем их недостатки. В 1986 году мы взялись за постсуперскалярный "Эльбрус 3". Создали мы его только в 1991-м. В 1991 году об "Эльбрусе 3" докладывали на конференции в США. Тут же приехал Питер Розенблат из HP, предлагал сотрудничать. Теперь Розенблат - руководитель проекта, который потом превратился в Merced! В архитектуре Merced не реализовано и половины возможностей "Эльбруса". В Merced используется широкая команда, но не в полной мере.
Чем же "Эльбрус" лучше Merced?
Они многое не доделали. Архитектура, над которой мы сейчас работаем, будет значительно быстрее Merced. Фактически мы делаем вторую реализацию "Эльбруса 3". Огромная стойка "Эльбруса 3", разработанного в 1991 году, - 15 млн. транзисторов. Это два процессора Ultra SPARC. Эта машина съедала бы слишком много электричества и денег, была бы ненадежна. Мы решили, что надо реализовывать все на кристалле.
Каковы же преимущества нового "Эльбруса"?
В рамках этого проекта разработаны как минимум три серьезные технологии. Первый - широкая команда. Здесь мы - лидеры. Во всем мире этим занимаются всего три группы: Intel/HP, IBM и мы. Мы потратили на разработку около десяти лет. По нашим оценкам, разработанный нами процессор будет вдвое быстрее второй версии Merced, которая появится после наступления 2000 года (а на старых кодах Intel - намного быстрей). При этом у Intel нет нашей второй важнейшей технологии. В Merced на входе предусмотрен некий блок, который перекодирует во время исполнения старые коды в новые. Это не самый быстрый способ.
Вы, возможно, что-то и знаете о Merced, мы же о его архитектуре осведомлены крайне скудно. Что вы можете сказать об архитектуре EPIC?
До сих пор происходило следующее: программист знает параллельную структуру, но пишет на языке с последовательной парадигмой. Транслятор проводит сложнейший анализ, чтобы распараллелить все, что можно, что-то оптимизировать, переставить местами команды. Но система команд - опять последовательная. Вслед за этим суперскалярная машина снова проводит анализ и снова переставляет команды! Это же просто глупо! Нужно в систему команд ввести явный параллелизм, и машина снова упростится, станет похожа на добрый старый RISC. В этом и заключается идея EPIC (Explicit Parallel Instruction Computing). Это не что иное, как микропрограммирование на новом витке. Дело не в самой идее - она проста, а в том, как ее реализовать. В нашем компиляторе полмиллиона строк текста. Ясно, что систему команд надо менять, но с несовместимой машиной невозможно выходить на рынок. Мы решили почти полностью освободить архитектуру от "пут" совместимости, полностью сохранив в то же время совместимость для пользователя (но только почти: арифметические операции, например, должны быть стандартными, правда, с ними-то как раз проблем не возникает). Мы разработали технологию двоичной компиляции. При первой попытке исполнить коды Intel незаметно для пользователя будет активизирован двоичный компилятор; сначала запустится динамическая компиляция (почти интерпретация), и машина заработает сразу, но параллельно будет происходить обычная статическая компиляция. Откомпилированная программа окажется сохранена и в следующие, и отныне она уже будет работать очень быстро.
Почему же другие не пошли по этому пути?
Никто не верил в двоичную компиляцию, считали ее ненадежной. Но мы компилируем чужой двоичный код в свой собственный, а в машине есть встроенная поддержка двоичной компиляции, поэтому все функционирует очень надежно. У нас, например, есть оттранслированные двоичные коды Windows, и мы их запускаем на SPARC! Это, пожалуй, наиболее сложная для компиляции программа. Мы совсем не разбираемся с двоичными кодами, все делает транслятор автоматически. А у нас все работает, причем эффективно. Мы берем UltraSPARC/166 МГц и Pentium/100 МГц - скорости получаются одинаковые. А ведь это трансляция почти без оптимизации. Мы еще ее ускорим раза в полтора. Здесь был мистер Росс из Ross Technology, который разрабатывал HyperSPARC. Он назвал наши планы по двоичной компиляции очень трудными. Я спросил его, что можно считать критерием успеха. Он в ответ предложил перекомпилировать игру FlightSimulator, там масса ассемблерного кода: дескать, если она заработает, считайте, что вы победили. FlightSimulator у нас уже давно работает. Если бы он знал, что мы транслируем операционные системы...
Третья наша технология - теги. Она использовалась на "Эльбрусах" всегда. В мире никто ее по-настоящему не опробовал. Теги задействовались в машинах компании Burroughs, но их там использовали для безопасности. Теги открывают путь для очень мощной системы типизации. Java - очень хороший язык, но он все же статичен: когда вы объявляете переменную, то связываете тип с этой переменной, в то время как на языке Ассемблера, скажем, вы можете записать любые данные. В тегах же есть контроль типов, но это контроль динамический. А раз есть контроль типов - можно построить великолепную защиту. "Эльбрусы" все так работали. Базовый язык "Эльбрусов", Эль-76 - язык высочайшего уровня, ничуть не ниже любого из существующих. В нем, как и в языке Ассемблера, нет никаких статических ограничений - можно писать все что угодно; с другой стороны, благодаря тегам он защищен не хуже Java. На этом языке у нас пишут любые приложения: системы реального времени, и компиляторы, и операционную систему. С Java люди обретут нормальное интеллектуальное программирование, а не "чумазый" Ассемблер или незащищенный C++. Но Java не универсален, и из-за байт-кода не очень эффективен. Вводя теги в реализацию C++, мы получаем защищенный язык, лишенный главного недостатка Java.
Итак, имея двоичный код для процессоров Intel, мы можем его исполнять на своем кристалле как он есть, а при наличии исходных текстов получаем возможность выполнить программу в защищенном режиме. В любой программе на C наш компилятор обнаружит много ошибок, но если их подправить, программа станет защищенной. Мы переносили многие программы с ЕС на "Эльбрус", и всегда в любых отлаженных программах находили много ошибок. Это своего рода постоянно работающий бесплатный мощный отладчик.
Возможно ли добиться подобной совместимости со SPARC-командами?
Так как мы используем двоичную компиляцию, то нам, вообще говоря, почти все равно, с какого двоичного кода компилировать. Вот если будет какая-то несовместимая вещественная арифметика, при ее интерпретации мы потеряем всю скорость. Но, слава Богу, вещественная арифметика хорошо стандартизована, за исключением небольших мелочей. Но мы считаем, что главное - совместимость с Intel, поскольку это самый большой рынок. Ну а будет что-то расходиться со SPARC, скажем коды условий, ну что же - станем эмулировать. Будет работать чуть-чуть медленней или с маленькими ограничениями.
В общем, позиции у нас очень сильные. Практически разработана логика кристалла. Выполнено моделирование, мы гоняем тесты, получаем хорошие показатели на тестах SPEC: наши скорости - это не просто теоретические оценки, это реальные миллиарды операций в секунду. Компилятор работает. Мы надеемся найти хорошего западного партнера для реализации этого проекта.