Вышел Merced из тумана

Михаил Кузьминский
"Открытые системы"

В сегодняшнем компьютерном мире главных, определяющих будущее вопросов - два: 1) что такое Merced и как с ним... (здесь следует подставить слово "работать", если вы планируете в будущем делать именно это, либо слово "бороться" - что относится в первую очередь к ведущим производителям RISC-микропроцессоров); 2) что будет дальше с программным обеспечением Microsoft (этот пункт можно разбить на кучу подвопросов: завоюет ли Windows NT корпоративный рынок, вытеснив оттуда Unix; что будет со стандартами на Java, объектными технологиями и др., какой браузер будет основным и т. д.).

Вспомним недавнее нашумевшее соглашение между Intel и DEC о передаче технологий Alpha и производстве соответствующих микропроцессоров (МП) на производственных мощностях Intel. Многие оценивают это соглашение как начало конца Alpha, что DEC, естественно, отрицает. Добавьте к этому участие в работе над Merced компании HP, - еще одного мирового лидера производительности МП (PA-8x00), - и ее потенциальный отход от архитектуры PA-RISC вместе с решением DEC уже можно интерпретировать как тенденцию.

Под завесой тайны, которая до сих пор окутывает Меrced, открывается широкий простор для различных предположений.

Это очень напоминает мне попытки журналистов проанализировать российскую политическую жизнь: там вся игра происходит "под ковром" и "за кулисами", и из статей часто трудно понять, имеет ли место "чистый анализ", или автор действительно знает кое-что, неизвестное другим, но прямо сказать об этом не может.

Что касается публикаций на тему Merced, то я могу точно сказать, что определенная утечка информации из Intel/HP (возможно, преднамеренная) имела место быть. Реальное же появление Merced из тумана датируется октябрем нынешнего года: 9 октября появился пресс-релиз Intel со ссылкой на предстоящую "презентацию" на Микропроцессорном форуме, которая с успехом прошла 14 октября.

Меrced, приоткрой личико!

Прежде чем начать рассказ о том, что известно про Merced широкой аудитории, нужно пояснить, с чем связан ажиотаж вокруг этого МП. Я хотел бы отметить две причины:

1) После появления Pentium Pro стало ясно, что Intel замахнулась на "высший" диапазон производительности, где безраздельно господствовали МП RISC-архитектуры (RISC-МП). Однако дальнейшего прогресса в этом направлении Intel не добилась, и RISC-МП снова ушли в отрыв. Проблемы роста производительности Pentium Pro связаны с тем, что ему требуется внешний кэш, работающий на тактовой частоте МП, а такая кэш-память, с частотами свыше 200 МГц, до недавнего времени доступна не была. Кроме того, необходимость перекодирования х86-команд во внутренние RISC-подобные микрооперации усложняют строение МП.

Практически все ведущие производители RISC-МП перешли к выпуску 64-разрядных МП, в то время как Pentium Pro остается 32-разрядным. Поскольку Мerced с самого начала задумывался как 64-разрядный МП с кардинально новой архитектурой (поговаривали об VLIW - Very Large Instruction Word, "сверхдлинное командное слово"), ясно, что все ждут именно его: вероятно, Merced сможет опередить RISC-МП или, по крайней мере, бороться с ними на равных.

2) Имеются определенные "предкризисные" явления в развитии RISC-МП. Стоимость и сложность новых разработок все время растет, и все более усложняются некоторые проблемы (рост сложности логики, обеспечивающей загрузку функциональных устройств (ФУ) в суперскалярных МП с внеочередным выполнением команд; проблема предсказания переходов; проблема пропускной способности и задержек при обращении в память различных уровней - от кэша до оперативной памяти и др.). Пока разработчикам RISC-МП удается справиться с этими вопросами, однако раздаются голоса, что пора бы остановиться и подумать, куда мы идем. С Merced же связываются надежды на одно из по-настоящему новых архитектурных решений.

Строго говоря, следует разделить термины Merced и IA-64 (64-разрядная Intel Architecture; в этих обозначениях обычная система команд х86 называлась бы IA-32). Последний относится к архитектуре МП в смысле системы команд, Merced же есть кодовое название первого МП, в котором будет реализована IA-64. Об архитектуре Меrced, точнее, его микроархитектуре как таковой, официальных данных практически не имеется. Все, что известно, в основном относится собственно к архитектуре IA-64.

Основным источником данных об IA-64 в настоящее время являются выступления Джона Кроуфорда (директор отделения микропроцессорных архитектур фирмы Intel), Джерри Хака (ведущий архитектор HP), и Л. Гвеннаппа (редактор известного издания Microprocessor Report) на последнем Микропроцессорном форуме в Сан-Хосе. Однако представленная ими информация оказалась достаточно ограниченной, так что многие важные особенности по-прежнему можно отнести к разряду предположений. Живое изложение представителей Intеl и HP подкреплялось иллюстрациями-аналогиями из сферы обслуживания клиентов банками. Складывалось впечатление, что выступавшие рассчитывали - имеющий уши да услышит.

Основы IA-64 cвязаны с применением новой технологии EPIC (Explicitly Parallel Instruction Computing). Главная ее идея - введение явного параллелизма в "машинные" коды. Сегодняшние суперскалярные МП имеют ряд исполнительных ФУ, работающих одновременно (параллельно). Однако компилятор создает обычный последовательный код, и аппаратура МП должна обнаруживать скрытый, неявный параллелизм с целью распараллеливания выполнения программы, то есть одновременной загрузки работой исполнительных ФУ. Если же это не достигается, производительность МП падает.

Современные тенденции развития МП связаны с выполнением большего числа команд за один такт. Разработчики IA-64 полагают, что добиваться более высокого уровня суперскалярности (распараллеливания) в МП можно, только если отказаться от обычных последовательных кодов и ввести параллелизм прямо на уровень системы команд. Тогда задача распараллеливания ложится не на аппаратуру МП, а на компилятор.

Преимущества такого подхода понятны. В конструкции таких МП исчезает сложная логика, отвечающая за внеочередное суперскалярное выполнение команд, и больше места на МП будет отводиться на блоки, "эффективнее" расходующие транзисторы (кэш, файл регистров, исполнительные ФУ). Вместо этого возникает необходимость в разработке сложного и эффективно распараллеливающего компилятора.

Уместна аналогия с классическим суперкомпьютером Cray-1. Как известно, разработчики отказались от использования в нем кэш-памяти в пользу применения огромного числа регистров. Если кэш-памятью программист управлять не может, то явное применение загрузок регистров позволяет строить высокоэффективные программы. Такое явное программирование на ассемблере, конечно, сложно, а применение компилятора часто приводило к неэффективным программам, поэтому появились библиотеки высокоэффективных программ, написанных на ассемблере.

За прошедшие годы техника компиляции ушла далеко вперед. Хотя современные оптимизирующие компиляторы и генерируют последовательный код, они могут осуществлять перестановку (изменение порядка) машинных команд с тем, чтобы обеспечить по возможности одновременное выполнение в исполнительных ФУ, фактически осуществляя неявное распараллеливание. Аппаратура МП далее пытается выполнить параллельно все, что можно.

Технология EPIC, как считают разработчики из Intel, - это некая "общая философия", подобно CISC или RISC. Реализацией этого нового подхода и является система команд IA-64.

Идеи EPIC становятся особенно актуальными, если внутренний параллелизм МП (число ФУ) достигает значительного уровня. Современные RISC-МП имеют уровень суперскалярности порядка 4-6. В IA-64 предполагается наличие большого числа исполнительных ФУ, которое зависит от конкретной реализации. Первой реализацией IA-64 и будет Merced. IA-64 определяет и сверхбольшие файлы регистров: 128 регистров общего назначения и 128 регистров с плавающей запятой. Для сравнения, "типичная" емкость файла общих регистров в сложных суперскалярных RISC-МП, скажем SGI/MIPS R10000, равна 32; использование техники переименования регистров в R10000 увеличивает эту емкость, грубо говоря, в два раза. В МП DEC Alpha 21264 с учетом переименования число регистров доведено до 80, но и это существенно меньше, чем в IA-64.

Самую общую схему МП, поддерживающего систему команд IA-64, можно, по-видимому, представить следующим образом (см. рис.). Имеются файлы "сдублированных" исполнительных ФУ и связанных с ними регистров. Последние содержат множество портов чтения и записи и общаются с памятью, под которой мы понимаем всю иерархию от кэша верхнего уровня до оперативной памяти. Такой подход позволяет строить "внутренне масштабируемые" МП: число ФУ, и, следовательно, уровень параллелизма, может возрастать по мере развития технологии производства (с ростом числа транзисторов в МП).

Для достижения явного параллелизма в формат команд IA-64 введены дополнительные разряды маски (template bits), которые явно указывают на зависимости между командами. До сих пор задача определения таких зависимостей полностью ложилась на аппаратуру МП. Вводится понятие "групп команд". Все они являются независимыми, и их следует выдавать на выполнение в разные ФУ. Разряды маски указывают на зависимости не только внутри нескольких команд, но и между группами команд.

По три команды IA-64 объединяются в так называемую связку, имеющую емкость 128 бит. Видно, что из-за увеличения размера файла регистров и появления дополнительных разрядов маски общая длина команд возрастает примерно на одну треть. Размер программных кодов IA-64 будет больше, чем у RISC-МП и МП с архитектурой х86/IA-32.

Очевидно, что в IA-64 прослеживаются некоторые идеи VLIW. Преимуществом IA-64, по мнению разработчиков, является возможность "масштабирования" МП, реализующих IA-64, при обеспечении совместимости между ними.

Вторая основная особенность IA-64 и, соответственно Merced - кардинально новый подход к работе с переходами, названный predication (мы переводим это слово как "применение предикатов"). Для этого в архитектуру IA-64 введены 64 одноразрядных регистров-предикатов, которые содержат 0/1 (ложь/истина). К командам IA-64 добавляется поле-предикат, говорящее аппаратуре, следует ли выполнять данную команду.

Благодаря большому числу ФУ МП может выполнять сразу две небольшие ветви программы параллельно, и таким образом некоторые потенциальные команды перехода элиминируются. Подход, достойный мощного МП: вместо того чтобы думать, какую из ветвей программы выполнять, - выполним обе! Это позволяет существенно поднять общий уровень распараллеливания, поскольку исчезают затрудняющие распараллеливание маленькие блоки программных кодов, окаймленных командами перехода. Такой подход способствует и уменьшению числа неверных предсказаний перехода.

Третья ключевая особенность IA-64 - применение техники спекуляции (speculation). Известно, что задержки при выполнении команд загрузки в регистр (L) приводят к существенному понижению производительности МП, даже если операнд находится в одном из кэшей, а не в оперативной памяти. Современные оптимизирующие компиляторы пытаются "скрыть" эти задержки путем применения техники software pipelining, при использовании которой, в частности, команды L переносятся ближе к началу программного кода, с тем чтобы к моменту, когда операнд реально потребуется, он уже оказался бы в регистре. Такие пересылки команд L ограничены - их нельзя переносить за команду перехода, а сама L может вызвать прерывание.

Поэтому в IA-64 пошли в этом направлении еще дальше: обычные команды L "расщеплены", и появилась команда спекулятивной загрузки. Если при ее выполнении возникает ситуация исключения, то данные об этом запоминаются в специальном признаке-маркере (token), и программа получает этот признак, когда ей реально потребуется обратиться к данным. На Микропроцессорном форуме Джон Кроуфорд привел пример сочетания применения предикатов и спекулятивной загрузки для решения известной задачи о расстановке 8 ферзей на шахматной доске так, чтобы они не били друг друга. Затраты на лимитирующий фрагмент кода удается при этом сократить с 13 до 7 тактов.

Merced и мир

Некоторые специалисты ожидали более революционных изменений в IA-64, и поэтому сразу развернулась дискуссия на тему: обгонит ли Merced по производительности лидеров из мира RISC-МП. Собственно, попытки сопоставления обычно ограничиваются МП DEC Alpha. В пресс-релизе Intel указывается, что Merced должен появиться в 1999 году и что в МП будет использоваться 0,18-мкм технология. По имеющимся у нас данным, в будущем возможен переход к 0,13-мкм технологии. Какие-либо официальные данные о производительности Merced не приводятся; "по слухам", оценка SPECint95=50.

По некотором данным, вслед за МП Alpha 21264 (SPECint95=35, выход ожидается в 1998 году) DEC уже в 1999 г. намеревается выпустить Alpha 21364. Предполагается, что 21364 будет иметь SPECint95 свыше 100 (возможно, 150). Однако, учитывая новые договоренности DEC с Intel, эти планы могут и не реализоваться.

Что касается совместимости Merced и х86-МП, то здесь можно попытаться интерпретировать недавние патенты Intel, относящиеся к реализации 64-разрядной архитектуры и х86 в рамках одного МП. С этой целью предложено ввести специальный бит состояния в управляющем регистре и 8 новых команд. Две из них относятся к переходам из 64-разрядного режима в 32-разрядный и обратно, две - к возвратам после обработки прерываний с учетом возможности двух режимов работы. Остальные команды позволяют в режиме IA-64 читать из х86-регистров и писать в них. Теоретически Merced может иметь два файла регистров - IA-64 и х86. На мой взгляд, более эффективной может быть реализация, при которой регистры х86 являются алиасами регистров IA-64.

Имеющиеся данные показывают, что в IA-64 проявился почерк его основных создателей - Intel и HP. Так, регистры с плавающей запятой остаются 80-разрядными, как в х86, но используется терминология и обозначения, перешедшие из HP PA-RISC и т. д.

Вместе с Intel над созданием систем на базе IA-64 работают Bull, Compaq, Dell, HP, Hitachi, ICL, Microsoft, NetPower, Oracle, Phoenix Technologies, SAP, SAS, SCO, Sequent, SNI, Stratus, Unisys. Впечатляющий список! Intel позиционирует Merced как МП для высокопроизводительных серверов и рабочих станций. Интересно, смогут ли теперь конкуренты, в том числе AMD, cоздать подобный МП и необходимые для него оптимизирующие компиляторы?


Михаил Кузьминский - зав. отделом Института оpганической химии РАН.

"Эпический процессор"

Завеса секретности вокруг Merced спадает - приближается срок его выхода "в свет", и Intel понемногу начинает заботиться не о сохранении тайны, а наоборот, о популяризации своего первого 64-разрядного процессора.

На пресс-конференции, которую сотрудники европейского представительства провели в Ирландии 20 ноября, прозвучало не так уж много нового по сравнению с тем, что Михаил Кузьминский смог "добыть" из менее формальных источников. Однако ценным является то, что российские журналисты, похоже, впервые смогли получить информацию о Merced из первых рук.

Рассказ о процессоре будущего начался более чем традиционно, как практически все презентации компании, - с демонстрации диаграммы с неукоснительно соблюдающимся законом Мура (иногда даже возникает мысль, что устроенная компанией гонка процессоров вызвана не столько "заботой о пользователях" или острой конкуренцией, сколько необходимостью поддерживать престиж отца-основателя).

На разработки и исследования Intel, как известно, тратит немало. Скажем, в нынешнем году эта сумма составила почти 2,5 млрд. долл., из которых около 40% ушло на работы в области процессоров. В дальнейшем кривая роста расходов на эти цели, возможно, пойдет еще круче вверх, поскольку в ближайшие годы будут развиваться обе ветви - как старая IA-32, так и IA-64, олицетворением которой является Merced.

К перечисленным в основном тексте компаниям, так или иначе поддерживающим разработку Merced, добавились Adobe, Avid, AST, Gateway (купившая ALR), DEC, IBM, Informix, NCR, NEC, Samsung (приобретшая AST Research), Softimage и Parametric Technology. Несомненно, в ближайшее время этот список еще больше расширится, поскольку Intel благоразумно не стала позиционировать новый процессор как ее и HP "личное" дело, что, безусловно, вызвало бы ревность со стороны других крупных производителей компьютеров и резко сузило бы для Intel рынок сбыта 64-разрядных процессоров. Ведь ПК-серверы и старшие рабочие станции продаются не миллионами, как ПК, а десятками тысяч и производят их гораздо меньше компаний, многие из которых имеют или разрабатывают собственные 64-разрядные системы.

Процессор, как известно, должен выйти в 1999 году, однако заводы, которые будут его производить, строятся уже сейчас. Одним из них будет ирландская Fab. 14, пуск которой намечен на 1998 год.

- Дмитрий Гапотченко,
Computerworld Россия

Published by NewIT Labs
NEW IT Labs