Microprocessor Forum

Чем раньше ты отстанешь, тем больше времени у тебя будет на то, чтобы догнать.

Закон Стендерапа

Наступила осень, и пришел Microprocessor Forum - традиционное место представления новых процессоров, одно из самых волнующих событий в компьютерном мире. В этом году многие ожидали Форум с нетерпением. Никак, год был во многих отношениях решающим. Intel наслаждалась успехом распухшего семейства процессоров Pentium II, ее конкуренты, особенно AMD, подобрались к трону как никогда близко, оттяпав значительную долю рынка дешевых компьютеров, а производители RISC-процессоров подготовили новое поколение RISC, обеспечившее Intel новым потолком производительности, к которому она, несомненно, будет стремиться.

Все революционные события этого года были предсказаны в выступлениях на Microprocessor Forum '97, где были представлены и K6-2 с его новыми инструкциями для трехмерной графики, и Alpha 21264, побившая собственный рекорд производительности. Правда, тогда же были представлены и Ultra Sparc III и Merced, появления которых мы пока не дождались...


Intel

Intel особых сюрпризов к Microprocessor Forum '98 не приготовила, свои ближайшие планы на будущее она раскрыла раньше (см. "КВ"-30/1998). Незадолго до Форума Intel объявила, что после выхода Merced линия 32-разрядных процессоров архитектуры IA-32 не прервется и будет выпущены процессоры Foster и Willamette.

Foster отличается новым "трассировочным" кэшем (trace cache), в котором будут храниться декодированные инструкции, и объемистым кэшем второго уровня на одном кристалле с процессором. Foster будет использовать ту же шину данных, что и Merced, - с пропускной способностью 3,2 Мб/с, что вчетверо больше, чем в существующих моделях Pentium II. Предполагается, что Foster по скорости обработки данных с плавающей запятой сравнится с Merced, а в 32-битных целочисленных вычислениях превзойдет самого McKinley. Willamette включает все основные новшества Foster, но будет ориентирован на рынок обычных ПК.

На самом Форуме Intel раскрыла детали реализации новых инструкций Katmai и дальние планы по производству следующих поколений 64-разрядных процессоров. Уже известно, что следом за Merced появится McKinley, который будет вдвое быстрее, теперь же Intel анонсировала еще два поколения: Madison, который будет производиться на 0,13-мкм процессе, и Deerfield, который будет компромиссом между ценой и производительностью. Больше о них пока ничего не известно, но и без того можно порадоваться за Intel, так далеко заглядывающую в собственное будущее.


Katmai

Процессор имени национального парка на Аляске. Katmai будет следующим шагом в развитии семейства Pentium II. Его выход в свет ожидается в начале 1999 года. Для корпуса Slot 1 предполагается выпуск двух вариантов процессора - с тактовыми частотами 450 и 500 МГц (по 0,25 микронной технологии). Как и Deschutes, Katmai будет изначально работать со 100-мегагерцовой системной шиной и содержать кэш второго уровня объемом 512 Кбайт, работающий на половинной частоте ядра. Однако, в отличие от существующих моделей, в Katmai объем кэша первого уровня возрастет до 64 Кбайт (в два раза). Ожидаемый выигрыш в быстродействии составит 5-10%. Во второй половине 99 года за первыми моделями последует процессор с рабочей частотой 533 Мгц и кэшем 1-2 мегабайта, выполненный по 0.18 микронной технологии. Необходимо отметить, что новый процессор можно будет использовать в существующих системах на основе чипсета 440BX, однако во всей красе Katmai проявит себя на новом чипсете 440JX (Camino), поддерживающем частоту шины 133 Мгц (Katmai будет изначально поддерживать такую шину).

Однако изюминка Katmai заключена отнюдь не в увеличенном кэше и частоте. Вместе с этим процессором на рынок выйдет очередная новинка от Intel - набор команд KNI (Katmai New Instructions - или, в переводе, новые команды Katmai - весьма непритязательно), известные также как MMX2. Так сказать, наш ответ Чемберлену (в лице AMD с 3DNow!). Эти новые 70 команд (в дополнение к 57 командам MMX) служат для ускорения работы с графикой (в том числе 3D), а также кодирования и декодирования DVD (MPEG-2) и распознавания речи.

KNI являются командами типа SIMD (single instruction multiple data - то есть одна команда обрабатывает несколько однотипных операндов). Специально для их выполнения в процессор введены 8 новых (XMM0-XMM7) 128-битных регистров (один регистр хранит одновременно 4 числа с плавающей точкой одинарной точности). Весь модуль KNI весьма напоминает сопроцессор и носит название SIMD-FP (то бишь SIMD для операций с плавающей точкой). Для использования новых регистров даже предусмотрен новый режим работы процессора (чего Intel не делала уже больше 10 лет, со времен защищенного режима 386 процессора). Этот режим позволит одновременно исполнять команды KNI и MMX или обычного сопроцессора (AMD K6-2 исполняет команды 3DNow в монопольном режиме).

Что касается программной поддержки, то можно уверенно сказать, что дела тут обстоят намного лучше, чем в свое время с MMX. Конечно, DirectX 6.0 пока не поддерживает KNI, но Windows 98 с соответствующим патчем и Windows NT 5.0 вполне на это способны. Кроме того, разработчикам уже сейчас предлагаются библиотеки, реализующие поддержку KNI и средства оптимизации программ под эти команды. Очевидно, что Intel учла свою ошибку с MMX.

Теперь о самих командах - очевидно, что в их состав будут входить: загрузка, запись, сложение, умножение, логические операции, модуль, квадратный корень и т.д. Обработка набора данных одной командой позволяет достичь производительности одного конвейера (количество конвейеров пока точно не известно - 1 или 2) SIMD-FP до 2 GFLOP/с при рабочей частоте 500 МГц.

Кроме всего прочего, в Katmai также будут добавлены несколько обычных MMX-команд. В первую очередь они предназначены для распознавания речи и кодирования-декодирования видео (например, сумма абсолютных значений разностей, вычисление среднего значения с округлением в меньшую сторону, нахождение минимума и максимума). Еще одна особенность Katmai - улучшенная работа с шиной. Новый механизм предсказаний (показан на рисунке) позволяет уменьшать задержки при последовательном доступе к памяти и исключает забивание кэша данными, которые используются однократно. Кроме того, он определяет, в какой из кэшей - L1, во все, или во все, кроме L1 - должны быть записаны данные (это делается для увеличения скорости обмена с памятью). Возможна обработка до восьми одновременных независимых запросов. Intel считает, что это позволит повысить производительность (особенно при работе с MPEG-2) на 5-20%. Таким образом совсем скоро (меньше, чем через полгода) у 3DNow появится весьма серьезный конкурент.


Merced

Этот процессор разрабатывается Intel совместно с Hewlett-Packard. Название его проистекает (впрочем, как и названия всех процессоров Intel) из названия одной из природных достопримечательностей США, а именно реки в Калифорнии. От других изделий Intel он будет отличаться принципиально новой архитектурой IA-64. Фактически, Merced и его потомки McKinley, Madison (его дебют ознаменуется переходом на 0,13 микронную технологию) и Deerfield станут наследниками процессоров Pentium II и вообще семейства x86 как такового. Их выпуск ожидается соответственно в середине 2000 года (перенесен с 1999), в конце 2001 и в 2002. Напомню, что нового стоит ожидать от Merced.

Начнем с того, что IA-64 не будет простым расширением 32-х битной архитектуры x86 (Intel) на просторы 64 бит. В то же время она не станет и одной из производных 64 битной архитектуры PA-RISC (Hewlett-Packard). IA-64 будет представлять собой нечто совершенно новое - помесь элементов RISC, VLIW, а также разных других излишеств. Intel даже придумала для нее новое название EPIC (Explicitly Parallel Instruction Computing, что в вольном переводе представляет собой вычисление с явным параллелизмом). Однако изменение архитектуры не приведет к потере совместимости с программами, написанными как для x86, так и для PA-RISC. Судя по всему, так оно и будет, так что позиции Merced окажутся весьма прочны. Ведь именно из-за проблем совместимости в семействе x86 до сих пор передается по наследству множество недостатков, присущих первым моделям процессоров.

Итак, что же нового ожидается в IA-64 и его первом представителе: процессоре Merced. С точки зрения техники: во-первых, в нем будет применяться 0.18 микронная технология, которую Intel к тому времени собирается довести до конвейера. Во-вторых, количество транзисторов перевалит за десять миллионов. Однако большинство новых идей будет заключено именно в архитектуре.

Как это ни удивительно, огромное число транзисторов на современных процессорах занято не самими вычислениями, а сопутствующими операциями: определением наиболее вероятного исхода операции ветвления (предсказанием ветвления) и т.д. Делается это для того, чтобы исполнять по возможности несколько команд параллельно (то есть одновременно). Но результат тут не очень утешителен: объем сопутствующей логики растет значительно быстрее степени параллелизма. Вторая проблема: медленный доступ к данным (то бишь к памяти). Тактовая частота при обмене с памятью (на данный момент максимум 100 Мгц) намного меньше внутренней частоты процессора. Как же будут бороться с этими трудностями создатели Merced?

Во-первых, команды будут иметь фиксированную длину (как это принято в RISC архитектуре) 128 бит (явное влияние VLIW - very long instruction word). Поскольку Intel считает, что расшифровка VLIW (очень длинные инструкции) имеет несколько отрицательный оттенок, а термин RISC - подобные команды тоже не звучит - была придумана аббревиатура EPIC, подразумевающая понемногу и того, и другого. На самом деле каждая 128-битная команда имеет достаточно сложную структуру, поскольку состоит из трех "настоящих" команд и нескольких дополнительных полей (см. рис.). Эти поля будут служить для реализации изюминок IA-64: предикативного исполнения (predication) и заблаговременного считывания данных (speculative loading).

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

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

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

Вторая отличительная черта IA-64 - предварительная загрузка данных. Компилятор будет формировать 128-битные пакеты таким образом, чтобы по возможности загружать данные из памяти до того, как они потребуются программе. Это позволит несколько сгладить разницу между медленной памятью и быстрым процессором. Правда с предварительной загрузкой могут возникнуть проблемы - допустим, считанные данные в дальнейшем так и не потребуются. Для ее решения предусмотрен специальный механизм, позволяющий подтверждать правильность операции считывания.

Из последних новостей о Merced можно сообщить следующее - процессор будет снабжен тремя уровнями кэш памяти. Кэш нулевого уровня (L0 cache) будет непосредственно связан с исполнительной частью процессора. Кэш первого уровня также будет находиться на одном кристалле с процессором. И, наконец, кэш второго уровня (объемом несколько мегабайт) будет размещен на отдельном кристалле, но в одном корпусе с процессором и соединен с ним скоростной шиной.

(Продолжение следует)

Материал подготовили:
Дмитрий БОРОДАЕНКО,
Константин АФАНАСЬЕВ

Версия для печатиВерсия для печати

Номер: 

42 за 1998 год

Рубрика: 

Brand name
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!