Борис Бабаян:<BR>Микропроцессоры давно обогнали большие машины
АрхивО проблемах взаимопроникновения архитектур супер-ЭВМ и технологий микропроцессоров наш корреспондент беседует с руководителем московского центра SPARC-технологий, членом-корреспондентом РАН Борисом Бабаяном.
|
- Борис Арташесович, честно говоря, все чаще приходится слышать о том, что качественных изменений в архитектурах вычислительных систем почти не видно. Да, растет частота микропроцессоров, интегрирующих все большее число транзисторов. В одном чипе объединяются кэш, сопроцессоры. Но все это, кажется, эволюция...
- Я не могу с этим согласиться. Да, может быть, со стороны и создается подобное ощущение, но мы-то варимся в том же котелке, и я уверен: изменения - и изменения качественные - происходят. Чуть ли не сплошные революции.
Во-первых, рост производительности не стоит сбрасывать со счетов. Да, есть возможности более круто менять что-то в архитектуре вычислительных систем. Но тогда мгновенно встанет вопрос о совместимости со всем прежним программным наследием. Так что некоторая "медлительность" в использовании новых архитектур - это ответ на запросы рынка и потребителя, который не хочет расставаться со своими привычками и сделанными ранее вложениями.
- И все же по сути, скажем, самые последние чипы Intel и ближайших конкурентов по большому счету устроены так же, как их уже давние предшественники. И довольно длительное время не заметно настоящих технологических прорывов.
- Снова не соглашусь. Это то же самое, что утверждать, будто все китайцы на одно лицо. Давайте немного вспомним историю. Причем сразу хочу отметить, что до недавнего времени многие исследования, которые проводились у нас, далеко опережали аналогичные разработки, выполнявшиеся в индустриально развитых странах.
Так как же все происходило? Сначала появились самые простые машины. Затем возникли люди, которые стали утверждать, что на архитектуру вычислительных систем самое большое влияние должны оказывать языки высокого уровня. Строго говоря, это было не совсем уж неверным утверждением, здесь были и успехи.
В начале 80-х появились первые реализации RISC-архитектуры. Затем - суперскалярные системы. Кстати, на этом этапе мы здорово опережали всех. На Западе первые серьезные образцы появились в начале 90-х, а у нас настоящий суперскалярный вычислитель заработал аж в 1978 году. Это был "Эльбрус-1".
Вообще говоря, суперскалярные реализации RISC - это системы, способные обрабатывать несколько команд за такт. С другой стороны, суперскалярные вычислительные системы, как правило, просматривают команды "вперед", чтобы лучше использовать ресурсы и, возможно, переставлять операции, добиваясь оптимальной производительности (Out-of-Order Execution). Поскольку все связи между операциями описываются именами (регистрами), основную сложность здесь представляют так называемые ложные зависимости. Наконец, суперскалярная архитектура характеризуется еще и так называемым спекулятивным характером вычислений (Speculative Execution). Система доходит до условного перехода (условие перехода при этом еще не известно) и выбирает одну из ветвей. Если повезло - есть выигрыш по скорости. Не повезло - вы почти ничего не теряете.
Все это было в первом "Эльбрусе". И мы уже умели обрабатывать по две команды за такт. Не говоря о том, что именно в "Эльбрусе" были реализованы технологии, ныне используемые в самых современных микропроцессорах, скажем - в "Пентиумах".
Об Intel вообще разговор особый. Ведь применяемая Intel архитектура - это не RISC, и в какой-то степени ее можно назвать (хотя и со многими оговорками) допотопной. Она действительно становится некоторым тормозом как в части наращивания производительности, так и с точки зрения конструктивной. RISC-системы все время были бельмом на глазу Intel. Но компания сделала очень точные шаги. Поначалу рынок был захвачен "снизу", около 90% всех PC работали именно на интеловских процессорах. А затем они просто взяли методы, используемые в RISC-системах. Причем сделали это в точности так же, как это делали мы в рамках проекта "Эльбрус".
В чем была основная сложность? Интеловские процессоры работали с командами переменной длины. А это значит, что в любом случае необходимо было сначала разбирать синтаксис. То есть все равно выполнять последовательные, а не параллельные операции. Как это делалось в "Эльбрусе"? Предварительно все команды аппаратными средствами транслировались в RISC-ориентированный код с командами фиксированной длины. А дальше начинала работать настоящая суперскалярная архитектура. Именно это и было сделано в Pentium Pro. И позиции RISC-систем оказались почти достигнутыми. В результате мы получили весьма сложную ситуацию на рынке. Intel как компания - крупнее всех, а ее процессоры - чуть ли не быстрее всех. Довольно драматичный момент.
Но вернемся к истории. Вспомните "Эльбрус-3". Проект был запущен в 1986 году. А ныне Intel точно по тем же принципам строит Merced. Кстати, не могу утверждать, что все это делается совсем независимо от отечественных разработок. "Эльбрус-3" был почти готов. Но используемая элементная база была очень старой. Мы отставали по многим показателям на несколько порядков. Хотя логика в этой машине была, на мой взгляд, великолепной. Мы первыми в мире использовали суперскалярную архитектуру, поняли все ее достоинства и недостатки. Ведь это очень сложная структура. Если объяснять на пальцах: поначалу компилятор строит зависимости, осуществляет перестановки операций. Получается система последовательных команд, в которой на самом деле скрыт параллелизм. Затем "суперскаляр" начинает свой анализ и в свою очередь осуществляет оптимизацию исполнения. Двойная работа! Да и аппаратура сложная. С опережающим исполнением можно эффективно играть только до условного перехода, несмотря на использование системы спекулятивных вычислений. Так что сложностей у суперскалярной архитектуры до сих пор немало. А главная беда - отсутствие средств описания параллелизма на уровне языка машины. Так что нам пришлось обеспечить параллелизм именно на уровне языка машины. Одна команда "Эльбруса-3" содержала 16 старых. И сразу все изменилось, нам удалось резко двинуться вперед.
И то, что я рассказал сейчас об "Эльбрусе", в точности соответствует подходам, используемым при разработке Merced! Ведь все это не было очень закрыто, американские исследователи приезжали к нам, проходили научные конференции. А в 1991 году компания Hewlett-Packard также проявила большой интерес к нашим разработкам. Мы, правда, тогда от сотрудничества отказались, хотя рассказали и показали почти все, понимая, что мы в этой области исследований далеко ушли вперед.
Я не утверждаю, что ныне Intel и HP недобросовестно пользуются нашим опытом, хотя в 1991-м переговоры с нами вел именно представитель подразделения HP, занятого теперь совместно с Intel созданием Merced. Но вот говорить о том, что суперпроекты недалекого прошлого сегодня продолжают оказывать большое влияние на развитие микропроцессорной индустрии, можно со всей определенностью. И уж если вы сомневаетесь в реальном технологическом прогрессе на уровне микропроцессоров, то я лично уверен: Merced будет машиной принципиально иного класса!
Продолжая аналогии с "Эльбрусом", я хочу отметить еще одно обстоятельство. У нас есть доказательства, убедительные выкладки, показывающие, что мы в принципе достигаем пределов логической скорости. Вспоминая "Эльбрус", можно сказать, что быстрее по логической скорости машину построить просто нельзя, поскольку мы достигаем критических путей алгоритмов, стопроцентной загрузки оборудования при параллельных вычислениях.
Даже старые поколения систем до-RISC'овской эпохи (технология же растет "сама", подчиняясь известному закону Мура: каждые 18 месяцев уровень интеграции элементов микропроцессоров удваивается, и в начале следующего века мы подойдем к рубежу 350 млн. транзисторов) уже демонстрировали устойчивый рост архитектурной скорости. Скажем, в случае с VAX все операции осуществлялись на микропрограммном уровне, и на каждую операцию все еще уходило несколько тактов. В худшем случае - до 10. С появлением RISC (а RISC - это не суперскалярная система) цифры улучшились, и на одну команду уходило в среднем... чуть больше одного такта. Это ведь хорошо известные принципы измерения - Instruction-per-Cycle и Cycle-per-Instruction.
Сейчас все считают, сколько команд выполняется за такт. А раньше мы говорили о том, сколько тактов уходит на одну команду. Так вот: сегодня типичный показатель исполнения команд за такт - 1,5. Хотя многое зависит от логики системы. Скажем, HP выпустила микропроцессор по 0,5 мкм-технологии. Но тактовая частота - всего 180 МГц. Правда, магический уровень "две команды за такт" пока никем серьезно не достигнут, хотя "Эльбрус-3" давал на вещественных задачах десять команд за такт, - вот вам и прогресс. От десяти тактов на команду до десяти команд за такт - это логический скачок в сто раз! Так что на месте ничто не стоит, и в принципе мы научились использовать весь параллелизм, который можно выжать из алгоритмов.
С точки зрения макроархитектуры идет переход к многопроцессорным системам. Скажем, в своих новых работах мы готовы использовать 128 процессоров, использующих кластерную структуру и общую память (в отличие от массивно-параллельных систем). И триллион операций в секунду сегодня - вполне реальная цифра.
- Иными словами, если со стороны и складывается ощущение, будто лидеры микропроцессорной индустрии продолжают эксплуатировать все ту же унаследованную логику, то вы, как человек, внимательно следящий за ростом архитектур вычислительных систем, скорее, настаиваете на том, что использование опыта, полученного при разработке супер-ЭВМ, самых смелых проектов, все-таки активно применяется?
- Конечно! Мне известно высказывание интеловских инженеров, заявивших несколько лет назад, что все технологии, успешно применяемые при разработке больших машин, могут с тем же успехом использоваться в микропроцессорах. А сегодня микропроцессоры уже обогнали большие машины по архитектуре!
- И с этим связана не самая удачная судьба Cray?
- Ну, Cray - это вообще отдельный разговор. Я, кстати, не стал бы говорить о "печальной судьбе" Cray в целом, это эпохальное явление для всей индустрии. В период "холодной войны" этому проекту в США придавалось огромное значение. На коммерческий рынок эти разработки почти не ориентировались. Да и сам Крэй был человеком очень своеобразным. Он полагал, что много машин выпускать не стоит, а следует делать их столько, сколько сам можешь сопровождать и поддерживать. Соратники часто критиковали его за это.
Но это был гениальный человек. В архитектуре вычислительных систем он сделал очень много. Например, Крэй полагал, что машину надо делать удобной и адаптировать ее не к языкам, а к оптимизирующим компиляторам. С другой стороны, он всю жизнь делал ставку на векторные вычисления, и это действительно во многом осложняло позиции крэевских супермашин. "Широкие" команды, истинный параллелизм он не считал слишком важными. По Крэю же, вместо того чтобы распараллеливать исполнение циклов, приходилось их сначала векторизовать, на что уходили немалые ресурсы.
В общем, для физиков Cray был идеален. Но для многих других применений оказывался не столь интересным, здесь не было универсализма. Иными словами, на Cray просчитать атомную бомбу или характеристики обтекателя самолета было легко. Но вот динамически управлять интеллектуальными системами вооружений, боем - нет. И все из-за неуклюжести векторных вычислений в принципе. Зато Крэй был мастером по упаковке чипов в минимальном объеме. В общем, находок было много, но и уровень технологической реакционности, его приверженность "старому доброму" оказывались крайне существенными.
- А какова судьба векторных вычислений вообще?
- На самом деле в этом действительно хорошо разбирался только сам Крэй. Но широкого распространения эта технология не получила, хотя она и до сих пор имеет некоторые специфические приложения.
- В Москве нам при всех усилиях пока так и не удалось найти никого, кто мог хотя бы в общих чертах рассказать о квантовых компьютерах. То есть научно-популярные рассуждения в Интернете попадаются, но вот более или менее ясного объяснения не найти...
- Боюсь, я тоже не смогу сказать здесь чего-то определенного. Единственное, что приходит в голову, - это, несомненно, очень отдаленная перспектива практической реализации этих подходов. Хотя исследования действительно кое-где ведутся. И в одном я точно уверен. С точки зрения построения микропроцессоров мы еще очень долго будем иметь в виду "твердое тело". Да, есть исследования в направлении оптики (я и сам с этим разбирался, но не убежден в том, что в ближайшее время что-то здесь может получиться), иные проекты, но "твердое тело" - это надолго.
Тут еще много идей. Например, поговаривают о добавлении в кремниевую массу такого элемента, как германий. В итоге повысится подвижность электронов, и можно будет ожидать резкого прироста тактовой частоты. Этим, кстати, занята и Intel, увлеченная идеей достичь на основе такого нового материала рубежа в 1,4 ГГц.
А возвращаясь к большим машинам и микропроцессорам, хочу представить любопытное наблюдение. Смотрите: есть логика и есть технологии. Логика, находки, полученные на больших машинах, потом "опускались" на уровень микропроцессоров. А технологии, напротив, двигались в обратном направлении: кристалл поначалу появился в "маленьких" машинах, а затем поднялся до супермашин. В общем, логика больших машин "пришла в кристалл", а сами большие машины "схлопнулись" до кристалла. Так что эти два направления пересеклись, и вообще термин "супермашина" уже совсем не популярен. И сегодняшняя "супермашина" - всего-навсего компьютер, выполненный на самых быстрых микропроцессорах.
- Так что "супер" сегодня - совсем другое?
- Да, раньше слово "супер" означало передовую технологию, а теперь - чуть ли не формальное соединение коммерческих кристаллов. Теперь же это - "простое умножение".
- Большое спасибо за беседу!