`

СПЕЦИАЛЬНЫЕ
ПАРТНЕРЫ
ПРОЕКТА

Архив номеров

Как изменилось финансирование ИТ-направления в вашей организации?

Best CIO

Определение наиболее профессиональных ИТ-управленцев, лидеров и экспертов в своих отраслях

Человек года

Кто внес наибольший вклад в развитие украинского ИТ-рынка.

Продукт года

Награды «Продукт года» еженедельника «Компьютерное обозрение» за наиболее выдающиеся ИТ-товары

 

AMD Opteron: "А вместо сердца -- пламенный мотор..."

0 
 

Естественно, все это не могло пройти мимо нашей Тестовой лаборатории. Однако мы вполне сознательно выдержали некоторую паузу, не начиная тестировать сразу же, "по горячим следам". Во-первых, чтобы дать возможность процессорам появиться на рынке вместе с соответствующим ПО и материнскими платами. Во-вторых, хотелось уложить в голове технические характеристики и, что не менее важно, маркетинговые особенности продукта. Итог этих размышлений, наряду с интересными для нас самих результатами тестирования, перед вами.

AMD Opteron "А вместо сердца -- пламенный мотор..."
AMD Opteron, имеющий 940 ножек, обзавелся металлическим теплорассеивателем
В нынешнем запуске продукта есть несколько довольно необычных нюансов. Начнем с маркетинговых: достаточно удивительно видеть новый продукт именно на рынке серверов. Как нам кажется, тому есть ряд причин:

1. Архитектура К8 предполагает меньшие частоты работы, чем конкурирующая с нею архитектура Pentium 4/Xeon. Посему есть смысл позиционировать процессор на рынок, менее чувствительный к такому сугубо потребительскому критерию, как "частота". Сегмент серверов опирается не столько на частоту, сколько на показатели производительности -- и потому это более удачное место для запуска сравнительно "малочастотных" (естественно, по сравнению с конкурентом) процессоров Opteron.

2. В SMP-системах архитектура Opteron теоретически должна гораздо лучше масштабироваться с ростом числа процессоров, чем основанная на шинной архитектуре технология SMP от Intel. Ну а многопроцессорные системы используются именно на этом рынке -- так что и здесь все разумно.

3. Не будем забывать о факторе стоимости -- процессор вместе с его мегабайтовым кэшем (!) получился довольно большого размера, 193 мм2. Это многовато для обычного CPU, поэтому себестоимость его будет достаточно велика. Но на рынке серверов продажные цены процессоров заметно выше, поэтому на нем быстрее окупятся инновации. Плюс инфраструктуру для новой платформы, при всей ее относительной несложности (в частности, разводка 4-процессорной платы под Opteron проще и дешевле такой же платы под Xeon), пока недорогой все же не назовешь, что является дополнительным стимулом к выходу на рынок именно серверов. Естественно, для того, чтобы продать технологию подороже.

AMD Opteron "А вместо сердца -- пламенный мотор..."
Модуль, содержащий четыре процессора IBM Power4
4. Ну и еще один, технологический, нюанс. Дело в том, что в численном выражении рынок серверов куда меньше рынка обычных десктопов. А в данный момент производственные возможности AMD в отношении процессоров К8 не настолько велики (порядка сотен тысяч штук в месяц), чтобы выходить на последний. К третьему кварталу ситуация должна измениться, а пока серверный рынок для Opteron -- в самый раз.

5. Не забудем также, что одна из "изюминок" этого CPU -- поддержка технологии х86-64, которая ныне называется AMD64. Ну а 64-битная адресация на серверах и рабочих станциях является гораздо большей необходимостью, чем на десктопах, где она в данный момент не слишком востребована.

Так что, как видно, выход с этим процессором именно на серверный рынок -- весьма разумный ход. У AMD появляется полгода форы для того, чтобы отладить технологию и нарастить объемы производства. Что ж, самое время посмотреть, что получилось у инженеров AMD.

Здесь надо напомнить, что архитектуру самого процессора мы уже описывали ("Компьютерное Обозрение", # 28, 2002). Повторяться не хотелось бы, поэтому позволим себе вкратце сказать, что, по сути дела, этот процессор представляет собой комбинацию нескольких "слагаемых":
  • улучшенного ядра Athlon;
  • интегрированного в процессор контроллера памяти;
  • шины Hyper Transport в качестве системной и межпроцессорной шины;
  • технологии AMD64, продолжающей славные традиции расширения архитектуры (наподобие i386).
Собственно, i386 и AMD64 очень похожи именно своим глубинным смыслом -- расширить возможности архитектуры при максимальной обратной совместимости.

AMD Opteron "А вместо сердца -- пламенный мотор..." Также укажем, что в маркетинговых наименованиях этого продукта AMD вообще ушла от показателей частоты как синонима производительности. Теперь существует несколько линеек данных CPU -- Opteron 14x, 24x, 8xx. При этом Opteron 14x не работает в двухпроцессорных, Opteron 24x функционирует не более чем в двухпроцессорных, а 8хх -- в 4- и 8-процессорных конфигурациях. Пока выпущена только серия 24х, остальные будут анонсированы позднее. Собственно, вся линейка состоит из трех представителей -- 240, 242, 244 с тактовыми частотами 1,4, 1,6 и 1,8 GHz соответственно. При этом их цена варьируется приблизительно от $300 до практически $900. Что ж, вполне весомая причина, чтобы попытать счастья именно на серверном рынке -- на десктопном такой уровень цен вряд ли интересен большинству покупателей. Также видно, что частоты процессора не особенно велики, если сравнивать их с семейством Xeon. Что ж, тем интереснее будет их сопоставить!

Ну а поскольку сегодня мы сравниваем серверные архитектуры, то обратим свое внимание на соответствующие разработки других производителей -- не только на х86, но и на остальные, не менее интересные: MIPS, Power4, Itanium 2, SPARC. В конце концов, не единым х86 жив этот рынок, да и интересно глянуть на характеристики известных "монстров" процессоростроения. Эти архитектуры будут рассмотрены во врезках, а мы "припомним", что же такое из себя представляет Opteron:
  • 12-ступенчатый целочисленный конвейер, из них две стадии принадлежат декодеру;
  • 17-ступенчатый FPU;
  • три исполнительных устройства ALU;
  • три исполнительных устройства FPU (FADD, FMULL, FSTORE);
  • 128 KB L1-кэша (64 KB D-cache + 64 KB I-cache, 2-входовый частично ассоциативный);
  • 1024 КВ L2-кэша (16-входовый, частично ассоциативный);
  • поддержка x86, MMX, AMD64, 3DNow! Professional, SSE, SSE2;
  • интегрированный контроллер памяти шириной 128 бит (+ 16 ECC);
  • интегрированный контроллер HyperTransport, три шины с пропускной способностью до 6,4 GBps каждая;
  • восемь новых 64-битных регистров общего назначения (в режиме AMD64, 16 всего);
  • восемь новых 64-битных регистров SSE2 (в режиме AMD64, 16 всего);
  • интегрированная многопроцессорная логика (APIC);
  • 64-битные целочисленные регистры, 48-битная виртуальная адресация, 40-битная физическая адресация.
Видно, что процессор действительно имеет, если так можно выразиться, "серверную" направленность -- конвейер сравнительно небольшой длины, уменьшающий штраф при промахе предсказания ветвления; большие кэши; интегрированный контроллер памяти, сводящий задержки доступа к памяти до минимума; интегрированная многопроцессорная логика, не требующая дополнительной логики на материнской плате. Соответственно, было бы интересно сравнить его с процессорами-"конкурентами". Слово "конкуренты" здесь взято в кавычки, поскольку соперничество между Opteron и RISC-процессорами, которые давно поставляются на рынок, весьма условно на данный момент. Но в будущем -- кто знает? Итак, первый в нашей "программе" один из старожилов, классический RISC -- MIPS серии R12000/R14000/R16000. Во врезке перечислены его характеристики, а также из нее понятно, почему мы объединили три CPU в одну серию.

AMD Opteron "А вместо сердца -- пламенный мотор..."
Картридж с Intel Itanium 2
При сравнении с Opteron можно увидеть следующее: заметно более короткий конвейер (6 стадий вместо 12) и, соответственно, существенно меньшая частота (хоть они связаны и не напрямую, однако удлинение конвейера поднимает потолок частот для отдельно взятой архитектуры). Также интересно, что алгоритмы предсказания ветвлений у Opteron более изощренные, а буферы истории имеют большую глубину (16К вместо 2К переходов) -- впрочем, это вполне объяснимо: с момента возникновения Rxx000 прошло уже достаточно много времени, и было бы странно, если бы данный блок не улучшили. Пропускная способность шины кэша второго уровня у Opteron также превосходит серию Rxx000 -- на частоте 1,6 GHz у Opteron теоретическая пропускная способность составляет как минимум 12,5 GBps против приблизительно 11 GBps у Rxx000 (не говоря уже о том, как Rxx000 выглядит на фоне цифры 96 (!) GBps у Xeon 3,06 GHz). Правда, сильная сторона SGI -- это архитектура системы. Но Opteron только начинает свой путь -- посмотрим, до чего он дорастет. А пока обратим внимание на другой классический RISC -- Sun Ultra SPARC III.

В этом процессоре прежде всего бросается в глаза отсутствие внеочередного исполнения команд -- практически постоянного спутника любого современного CPU. Частоты, кэши, количество исполнительных устройств на фоне Opteron также не впечатляют -- соответственно, ничего удивительного в том, что по тесту SPEC (наиболее зависящему от процессора и памяти) Sun Ultra SPARC III сильно уступает Opteron, да и многим другим процессорам. Что самое забавное, он уступает даже собственному "клону" от Fujitsu -- SPARC64-GP. Зато есть достаточно интересная деталь -- наличие встроенного контроллера памяти, как и у Opteron. Также немаловажно то, что блок предсказания переходов имеет такую же емкость, что и соответствующий блок у Opteron. Интересным моментом является и сохранение участка, альтернативного предсказанному пути ветвления. Похожая технология встроена в Itanium и, по слухам, будет реализована в следующем процессоре AMD, пока известном как К9. Также отметим, что Sun, как и SGI, в данный момент "выезжает" не столько на производительности процессоров, сколько на "умной" архитектуре своих серверов.

Перейдем к нынешнему королю (без преувеличений) RISC-процессоров, IBM Power4. Это настоящий монстр! Впрочем, судите сами (см. врезку).

Здесь сравнение становится уже поинтереснее -- и, в общем-то, не в пользу AMD. При очень близкой частоте производительность Power4 для Opteron недосягаема. Надо признать, что стоимость этого решения от IBM такова, что все преимущество в быстродействии как-то меркнет и исчезает. Отдадим должное инженерам AMD -- они сумели создать достаточно производительный кристалл относительно небольшого размера, 193 мм2. Хотя, повторим, чудес не бывает -- и современный кристалл уровня hi-end напоминает Opteron'у, "кто есть кто" на Олимпе. Причем делает это с легкостью и с большим отрывом. Интересно, что уровень параллелизма в каждом ядре Power4 заметно выше, чем у Opteron. А вот объем кэша поменьше -- впрочем, это легко компенсируется весьма "продвинутой" и многоуровневой подсистемой кэша у Power4. Но, безусловно, впечатляет его латентность -- один такт! Это в то время, когда у Opteron, работающего в том же диапазоне частот и с похожим объемом кэша, она составляет три такта! А у Pentium 4/Xeon его L1-кэш данных объемом 8 KB тем не менее имеет два такта задержки (напоминаем, что в общем случае латентность кэша пропорциональна его объему). Воистину, инженерами IBM можно восхищаться! Впрочем, не преминем подбавить немного дегтя. 17 стадий конвейера -- достаточно грустно, и с этой точки зрения архитектура Opteron, имеющая 12 стадий, неожиданно легко догоняет Power4 по частоте. Также Power4 и Opteron роднит наличие предварительного декодирования команд -- и в том, и в другом случае "внутренний" набор команд не совпадает с внешним. Но если для х86 это уже давно не новость (со времен К5 и Р6), то для RISC встречается нечасто. Но поразило нас другое! Взгляните на рисунок восьмичипового Power4. Ничего не напоминает? Ведь очень похоже на архитектуру многопроцессорных систем на Opteron, которая неоднократно освещалась в презентациях AMD. Теперь понятна та уверенность, которую демонстрировали сотрудники AMD, говоря о том, что многопроцессорные системы на Opteron -- это будет хорошо. Что ж, практика покажет, но пока ожидания у нас вполне радужные.

Ну и "на сладкое" посмотрим на представителя так называемой post-RISC-архитектуры -- конечно же, речь о давно ожидаемом многими сравнении с Itanium 2.

Как видно, напрямую сопоставлять спецификации этой парочки уже затруднительно -- слишком уж необычна сама концепция Itanium 2. Впрочем, кое-что все же заметим. Прежде всего, интересной особенностью Itanium 2 выглядит способность в случае ветвления выполнять предварительные вычисления обеих ветвей. Напомним, что в Ultra SPARC мы также видели нечто подобное -- сохранение альтернативной ветви. Но Itanium 2 в этом плане пошел дальше и производит уже вычисление обеих ветвей -- какая-нибудь непременно да и "окажется правдой". Кстати, по непроверенным слухам, в следующем процессоре AMD, К9, будет сходная технология.

Но, без сомнения, главным отличием Itanium 2 от всех остальных, что уже неоднократно обсуждалось в литературе, является вынос логики за пределы процессора. Фактически планирование загрузки исполнительных модулей, которую в других процессорах приходится решать достаточно сложной логике, в IA64 вынесена "за скобки" -- ею занимается компилятор. Это позволяет более эффективно использовать транзисторы -- вместо логики их можно тратить на функциональные устройства и кэш. Что ж, идея интересная. С этой точки зрения Opteron -- представитель более традиционного направления в технологии производства процессоров. Оставляя за кадром сравнение двух подходов, отметим, что по количеству "мускулов" Itanium 2, в общем-то, превосходит Opteron. Но заметно проигрывает в другом -- в своей бинарной несовместимости с предыдущей платформой IA32. Впрочем, поживем -- увидим, станет ли Opteron соперником этого процессора. Хотя отметим, что сама AMD тщательно дистанцируется от прямых сравнений Itanium 2 и Opteron.

Что ж, на уровне "битвы спецификаций" Opteron выглядит вполне достойно. На вопрос же, как эти спецификации реализованы на практике, ответит тестирование. Но уже (по результатам низкоуровневых тестов) видно, что по сравнению с К7 заметно улучшен декодер команд. Если раньше (на К7) он частенько мог терять в производительности из-за неоптимального "порядка следования" команд, то теперь х86-команды длиной до 5 байт включительно декодируются в темпе 3 mOP за такт практически вне зависимости от их порядка в программе (у К7 в "неудачных" случаях темп падал до 1 mOP за такт). Заметны и другие усовершенствования. Например, для многих будет весьма утешительно узнать, что отныне Opteron прикрыт металлической крышечкой, и можно не бояться сколов и перегрева. В процессор встроен механизм Throttle Control, останавливающий блоки при перегреве до того момента, когда температура придет в норму. То есть убраны те недостатки К7, которые были наиболее значительными в глазах многих покупателей, заставляя настороженно относиться к возможности применения чипов от AMD в серверных решениях. Хотя такое отношение к мнению покупателей можно только приветствовать.

Скажем также пару слов о многопроцессорных Opteron. Как неоднократно заявляла AMD, все преимущества архитектуры К8 раскроются именно в многопроцессорных системах. Обусловлено это организацией связи процессоров между собой -- несколько независимых скоростных шин точка--точка вместо одной общей шины в системах на процессорах Intel. Причем, по заверению корпорации, наибольший эффект ожидается в рамках 4- и 8-процессорных систем. Собственно, справедливость этих предположений нам всем еще только предстоит проверить, но результаты сравнения 2- и 4-процессорных конфигураций с соответствующими конфигурациями от Intel внушают определенный оптимизм. Так, системы на Opteron:
  • получили наивысшие суммы баллов в тесте SPECweb 99 для двух и четырех процессоров, при этом впервые на четырех процессорах превышен рубеж в 10 тыс. баллов;
  • имеют наивысшие суммы баллов в тесте SPECint_rate 2000 для 2 и 4 процессоров;
  • характеризуются наилучшими показателями масштабируемости в тесте SPECfp_rate 2000 при переходе от одного к двум и четырем процессорам;
  • получили наивысшие суммы баллов в тесте SPECweb99_SSL для четырех процессоров;
  • являются лидерами в тесте SPECjbb 2000 для одного, двух и четырех процессоров.
Как видно, новичку есть чем гордиться -- все вышеперечисленные тесты принадлежат весьма уважаемой некоммерческой организации SPEC, контролирующей разработку и применение эталонных тестов для измерения технических характеристик высокопроизводительных компьютеров. Ну а мы, пожалуй, завершим на этом нашу теоретическую часть и перейдем к практике -- тем более что она весьма интересна.

Микропроцессор SGI MIPS R14000(А)

AMD Opteron "А вместо сердца -- пламенный мотор..."
К сожалению, в последние годы начала "терять темп" одна из легендарных компаний прошлого -- SGI (Silicon Graphics, Inc.). Ее серверы по-прежнему обладают высокой мощью, но уже в основном за счет впечатляющей системной архитектуры, объединяющей в рамках одной системы до 512--1024 процессоров. Что же это за процессоры? Процессоры уникальной и, позволим себе сказать, не имеющей аналогов архитектуры MIPS. В чем же ее уникальность? А вот в чем: компания MIPS процессоров не выпускает! Совсем! Она лишь разрабатывает архитектуры и наборы команд, а затем лицензирует их желающим производить процессоры компаниям (естественно, отнюдь не бесплатно).

Такая политика вкупе с неплохо отработанными архитектурами ядер позволяет различным производителям создавать MIPS-совместимые чипы "на все случаи жизни" и для любого применения -- от стиральной машины и сотового телефона до рабочей станции или большого сервера. Причем разработчики встраиваемых систем выбирают MIPS и из-за крайне низкого энергопотребления этих ядер -- процессор с быстродействием на уровне Pentium 233ММХ потребляет всего 3--5 Вт. Однако встраиваемые процессоры выходят за рамки данной статьи, поэтому остановимся подробнее на той ветке, которую продвигает компания SGI, как на наиболее высокопроизводительных представителях архитектуры. Первым 64-разрядным процессором SGI был MIPS R10000, выпущенный в 1991 году, -- один из лидеров по производительности на тот момент. Его развитием стал увидеший свет в 1996 году процессор MIPS R12000, архитектура которого приведена на схеме.

Рассмотрим некоторые ключевые моменты, отраженные на схеме. Очевидным отличием от привычного нам х86 является очень большой регистровый файл -- по 64 (!) целочисленных и floating point регистра. Естественно, для эффективного использования этого "богатства" необходима (и имеется) развитая технология переименования регистров. Впечатляет и реализация внеочередного исполнения -- переупорядочивание возможно в пределах очереди из 16 команд. Таблица предсказания ветвлений рассчитана на 2048 значений и обеспечивает точность предсказаний (оценочно) на уровне 97--98%. В сочетании с неблокирующейся архитектурой кэшей и коммутатора эти особенности позволяют процессорам MIPS добиваться очень высокой эффективности работы -- до 4 результатов за такт, среднее же значение этой величины редко опускается ниже 1,4. Следует отметить также очень малую по современным меркам глубину конвейера процессора MIPS R12000 -- всего шесть стадий. Естественно, это означает малые потери при промахах предсказания ветвления и повышает эффективность работы процессора.

Обратите внимание на очень большую "насыщенность" каждого этапа исполнения. К сожалению, это, на наш взгляд, оказалось палкой о двух концах и не позволило процессорам SGI угнаться за взлетевшими, как ракета, частотами х86-процессоров, конвейер которых непрерывно удлинялся, а схемы каждого этапа становились все проще и легче "разгонялись". Частота процессоров MIPS R12000 застряла на уровне 400 MHz, что было хорошо пять лет назад, но сейчас просто несерьезно.

Традиционным для "тяжелых" процессоров начала--середины девяностых годов следует признать и многомегабайтовый внешний кэш. В процессорах SGI его размер теоретически может составлять до 16 MB, однако на практике производитель компьютеров обычно ограничивался 2--4 MB на процессор. Внешняя шина тоже не представляет собой ничего выдающегося -- всего 64 разряда данных и частота 100 MHz. Несмотря на высокую эффективность и раздельные каналы для данных и управления, сегодня этого очевидно мало, хотя и было неплохо на момент появления процессора.

Однако R12000 сейчас нельзя назвать "топовым" MIPS от SGI. В результате его редизайна и изменения проектных норм несколько лет назад появился процессор SGI MIPS R14000(А) с частотой 500 и 600 (вариант А) MHz. R14000, как и его предки, поддерживает набор инструкций MIPS-IV и имеет традиционную для процессоров SGI архитектуру. Отличия сводятся (помимо частоты), в основном, к ускорению работы кэша второго уровня. Шина, связывающая L2-кэш с процессором, имеет ширину в 128 разрядов и эффективную частоту передачи данных 500 или 600 MHz (используется технология DDR, т. е. опорная частота равна половине частоты процессора, а частота следования данных -- равна этой частоте). Таким образом, пропускная способность кэша второго уровня составляет 8--9,6 GBps, что, разумеется, немало... но опять-таки -- уже не на сегодняшний день. А нынешним флагманом процессоров SGI стал 700 MHz MIPS R16000. Главным его отличием от MIPS R14000 является удвоенная частота внешней шины -- 200 MHz, что в сочетании с приростом частоты на 17% позволило поднять его производительность примерно на 30--40% относительно MIPS R14000.

В целом, необходимо отметить, что, несмотря на относительную медлительность процессоров, системы SGI имеют неплохие показатели производительности на некоторых задачах. Так, традиционно сильной их стороной являются системы цифровой обработки звука и изображения -- от персональных рабочих мест до видеосерверов на тысячи и тысячи потоков. По отзывам профессионалов, старенькая SGI Indigo2 с двумя откровенно слабенькими процессорами SGI MIPS R5000 и 128 MB памяти до сих пор при монтаже видео не сильно уступает "навороченным" персоналкам последних моделей. Традиционно хороши и видеоадаптеры, которыми SGI комплектует свои системы. Например, по точности отображения цвета (12 бит на канал) они до недавнего времени не имели себе равных (да и сейчас подавляющее большинство разработчиков видеочипов ограничиваются 8 битами на канал).

Некоторый интерес представляет применение серверов SGI Origin как вычислительных машин для сильносвязанных задач. Благодаря использованию фирменной технологии коммуникаций NUMA-flex эти машины демонстрируют очень хорошую масштабируемость, намного превосходящую таковую для традиционных кластеров. И хотя "чистые" SMP-решения и многоуровневые коммутируемые системы, подобные серверам Sun, позволяют достичь подобного и даже лучшего результата -- они все же не способны создавать эффективные на сильносвязанных задачах системы размером в 1024 процессора (заметим, управляемые одной копией ОС). Размер, как говорится, тоже имеет значение.

Надо сказать, что SGI MIPS применяются и в мэйнфреймах Siemens. Ничего выдающегося с вычислительной точки зрения эти машины не представляют, несут от одного до 32 процессоров в довольно простой архитектурно системе, но имеют очень высокие показатели по производительности ввода/вывода, надежности работы, эффективности использования ресурсов, а главное -- они бинарно совместимы со старыми мэйнфреймами Siemens! Защита инвестиций пользователей -- дело святое!

Микропроцессор Sun Ultra SPARC III

AMD Opteron "А вместо сердца -- пламенный мотор..."Ultra SPARC III является представителем последнего поколения микропроцессоров разработки компании Sun Microsystems и соответствует архитектуре SPARC v.9. Если сравнивать его с "классическими десктопными" x86, сразу обращает на себя внимание характерное для RISC-процессоров увеличенное количество регистров для работы с плавающей точкой и достаточно широкие (опять-таки по меркам ПК) внутренние шины. Существенной особенностью, отличающей Ultra SPARC III от конкурентов (и сближающей с ним процессоры на ядре К8/Hammer от AMD), является наличие у него встроенного контроллера памяти. Память используется, в общем-то, тривиальная -- ECC SDRAM, но ее шина имеет ширину 144 разряда (128+ECC) и частоту 150 MHz. Соответственно, пропускная способность составляет 2,4 GBps -- что, заметим, не так давно было пределом даже для самого "продвинутого" по части пропускной способности FSB 32-битного x86-процессора -- Pentium 4. Следует отметить, что применяется не обычная двухканальная память, а специально изготовленные 128-разрядные (+16 ECC) модули. С одной стороны, это упрощает контроллер, а с другой -- ввиду необходимости использовать специфические модули памяти отрицательно отражается на цене систем.

  Шина  кэша второго уровня шириной 288 разрядов (256+16 ECC) работает на частоте 200 MHz, что соответствует пропускной способности 6,4 GBps. На первый взгляд может показаться, что это очень мало, но кэш организован таким образом, что его шина используется практически на 100%, да и размер несколько отличается от привычного -- он составляет 4--8 MB. Подробнее его организацию мы рассмотрим ниже.

Особенностью работы процессора Ultra SPARC III является то, что в нем нет ставшего уже привычным внеочередного исполнения! Команды запускаются в том порядке, в котором они перечислены в программе. Однако архитектура процессора позволяет запустить на исполнение до 6 команд одновременно: четыре целочисленные (две arithmetic, logical или shift, одну load или store и одну на BR pipeline) и две команды работы с плавающей точкой, что намного больше, чем в х86-процессорах. Естественно, реальное количество параллельно исполняемых команд несколько меньше и составляет в среднем (на типичных приложениях) 3--4.

После выборки инструкции попадают в буфер (очередь) команд на 20 элементов (Instruction Queue), откуда группами направляются в определенные исполнительные устройства. Максимальное число команд в группе -- 6. Все они получают идентификационный код, в соответствии с которым на выходе из конвейера будут распределены их результаты. Такой режим работы (пакетами команд) вполне эффективно загружает исполнительные устройства даже при отсутствии внеочередного исполнения команд.

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

Интересно выглядит и выбранный Sun путь к организации предсказания ветвлений: вместо традиционной двухуровневой схемы применена одноуровневая таблица истории переходов. Но! -- на 16K значений вместо обычной емкости в 2K. Есть и специальная очередь (емкостью 4 команды) для команд, следующих за ветвлением, но из альтернативной предсказанной последовательности. То есть в случае ошибки предсказания альтернативный вариант запускается на исполнение немедленно, без длительной подгрузки из памяти.

Контроллер L2-кэша имеет работающую на полной частоте процессора (интегрированную на кристалл) таблицу тегов вторичного кэша. Размер таблицы составляет 90 KB, и этого достаточно для поддержания кэш-памяти объемом до 8 MB. Такой размер кэша (у каждого процессора) и используется в высокопроизводительных системах компании Sun Microsystems. К сожалению, все эти ухищрения не могут перевесить того факта, что даже предельная пропускная способность кэша второго уровня все же не превышает 6,4 GBps, что по современным меркам немного. Размер спасет положение только в случае работы с большими БД или одновременного обслуживания многих пользователей -- поведение серверов Sun под постоянной большой нагрузкой может служить образцом для подражания.

Для систем начального уровня Sun относительно недавно выпустила процессор Ultra SPARC IIIi. Его отличия от "старшего брата" состоят в интеграции на кристалл одномегабайтового L2-кэша второго уровня и использовании стандартной 64-разрядной DDR-памяти. К сожалению, мала по сегодняшним меркам и частота процессоров -- Ultra SPARC III едва перешагнули 1 GHz, а Ultra SPARC IIIi имеют частоту всего 1280 MHz.

Однако уже в ближайшее время компания готова выпустить на рынок очень интересное решение -- процессор Ultra SPARC IV, который, по предварительной информации, будет представлять собой два ядра Ultra SPARC III, выполненных на одном кристалле. Повысится и частота, хотя насколько -- пока неясно.

Следует отметить, что SPARC v.9 является свободно распространяемой спецификацией, и никаких препятствий для разработки процессоров на основе этой архитектуры другими компаниями не существует. Самый, пожалуй, удачный клон производит Fujitsu Siemens -- это процессор SPARC 64-GP. Топология кэша у него несколько другая -- вместо L1 введено понятие "кэш нулевого уровня" (его размер составляет 16 KB), далее следует L2 (в фирменной терминологии -- L1) общим объемом 256 KB (по 128 на инструкции и данные), а кэш за пределами чипа таким образом становится кэшем третьего уровня (его размер, как и у Sun, составляет 8 MB). Интеграция L2 на кристалл позволила Fujitsu Siemens поднять показатели производительности своих серверов серии PrimePower до сравнимых с современными серверами от Sun Microsystems.

Характеристики семейства Sun Ultra SPARC III

Функциональные устройства 4 целочисленных,
2 плавающих
Конвейер 14 стадий
L1-кэши 4-канальный кэш данных --
64 KB
4-канальный кэш команд -- 32 KB
4-канальный кэш предвыборки -- 3 KB
4-канальный кэш записи --
2 KB
L2-кэши (внешние) 1, 4 или 8 MB, контроллер интегрирован на кристалл, полноскоростной
Шины Шина адреса
(43 бит/150 Mhz),
шина L2 (256 бит/200 Mhz), шина памяти
(128 бит/150 MHz)
SMP До 4 CPU на одной шине,
в коммутируемой системе практически неограничено (более 1000)

Intel Itanium/Itanium 2

AMD Opteron "А вместо сердца -- пламенный мотор..."
Совершенно обособленно среди всех 64-разрядных CPU стоит процессор новейшей архитектуры IA-64 от Intel -- Itanium и его младший (старший?) брат Itanium 2. Чем же он так отличается от своих собратьев по цеху? Наверняка читатель осведомлен, что этот процессор представляет собой реализацию в кремнии совершенно оригинальной, хотя и не новой концепции CPU со сверхдлинным командным словом. В интерпретации Intel это воплотилось в концепцию явного параллелизма -- EPIC.

Идея заключается в том, чтобы на этапе компиляции определить все зависимости внутри исполняемого кода и расположить команды в порядке, обеспечивающем максимальную параллельность их исполнения. Принципиальным преимуществом такого подхода является то, что для традиционных процессоров сложность системы спекулятивного выполнения команд возрастает в геометрической прогрессии от числа функциональных устройств этого процессора. Поэтому неудивителен тот факт, что традиционные процессоры очень редко имеют степень параллелизма исполнения больше 4--6 команд за такт, да и это дается им с известным трудом. В качестве примера можно привести сверхсложный (и сверхдорогой) процессор Power4 от IBM, способный в теории выполнять до 8 команд за такт, но реально редко подымающийся выше 4--6.

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

Перейдем теперь непосредственно к предмету рассмотрения, текущему флагману процессоростроения Intel -- Itanium 2. Итак, что же мы видим? Прежде всего бросается в глаза огромное количество регистров: 328 штук -- абсолютный рекорд! Из них 128 -- 64-разрядные целочисленные, 128 -- 80-разрядные регистры для чисел с плавающей точкой, и еще 72 регистра предикатов. Предикатные регистры -- специальные поля, служащие для организации одновременного исполнения обеих веток кода. При возникновении такой ситуации предикатные поля помечают, что эти команды относятся к альтернативным веткам программы. Вычисленные параллельно, их результаты не записываются, а ожидают решения своей судьбы, и, в зависимости от прохождения ветвления, на выходе получается тот или иной результат. Велико и количество ФУ, одно перечисление их вызывает уважение. 6 целочисленных ФУ, 3 ФУ для обработки ветвлений, 2 ФУ с плавающей точкой, 1 SIMD ФУ и по 2 устройства для загрузки/выгрузки регистров. Предельно возможный параллелизм исполнения составляет 6 команд за такт. Обращает на себя внимание и на редкость короткий конвейер -- всего 8 стадий, что существенно снижает штрафы при промахах предсказания ветвления.

Команда IA64 имеет необычный формат:
  • идентификатор команды;
  • три (!) поля операндов -- 2 поля источника, 1 -- приемника;
  • специальные поля, уточняющие параметры команды;
  • поле предикатов.
AMD Opteron "А вместо сердца -- пламенный мотор..."Формат командного слова (не команды, а именно слова из трех команд) таков: формируется пакет из трех команд общей длиной 128 бит и специального поля шаблона связки, определяющего внутренние зависимости команд в связке. Этот шаблон определяет, какие из команд в связке могут быть исполнены параллельно, а какие последовательно. На исполнение может быть одновременно запущено две трехкомандные связки, таким образом максимально возможный параллелизм исполнения составляет 6 команд за такт. При этом, напомним, весь доступный параллелизм определяется на этапе компиляции. В связи с этим интересно посмотреть на результаты тестирования данного процессора по SPEC_ 2000:
  • HP Server rx2600 (1000 MHz, Itanium 2): peak -- н/д, base -- 810 C_INT 2000.
  • HP Server rx2600 (1000 MHz, Itanium 2): peak -- 1427, base -- 1427 C_FP 2000.
Обратите внимание, результаты base и peak -- совпадают. И это понятно, ведь программа, как ни крути, уже предельно оптимизирована -- "вылизывать" дальше нечего. Но, с другой стороны, явно видна полная зависимость быстродействия процессора IA64 от качества компилятора. На стадии исполнения процессор сделать уже ничего не может.

Интересен и подход Intel к проблеме быстродействия кэшей. Очевидно, чтобы не связываться с проблемой создания быстрого и большого кэша, был избран традиционный для этого производителя путь: создание небольших кэшей высокого быстродействия и очень быстрая шина. Кэши первого уровня удивительно малы -- всего 16 KB инструкций и 16 KB данных. И всего 256 KB L2. Зато для компенсации малого размера L1 и L2 был введен еще один уровень кэширования, и вот тут-то Intel не поскупилась -- целых три мегабайта. Внушает уважение и шина, посредством которой этот процессор общается с внешним миром, -- 128-разрядная с частотой 400 MHz и пропускной способностью в 6,4 GBps. К сожалению, в многопроцессорной системе она используется совместно двумя или четырьмя процессорами, что сокращает доступную каждому процессору полосу пропускания пропорционально их количеству на шине.

В целом, следует признать, что Intel удалось создать весьма оригинальный и высокопроизводительный процессор. Однако у концепции EPIC есть и немало подводных камней. Также надо отметить, что эти процессоры и системы на их основе недешевы -- впрочем, цена вполне соответствует их производительности.

IBM Power4

AMD Opteron "А вместо сердца -- пламенный мотор..."IBM Power4 -- несомненно, лидер по производительности среди существующих процессоров (1103/1069 SPEC_INT 2000 и 1699/1598 SPEC_ FP 2000). И это несмотря на скромную по сегодняшним меркам частоту -- всего 1,7 GHz. Что же помогает ему достигать таких высот? Впрочем, достаточно бросить взгляд на его архитектуру, как все становится ясно без слов.

Фактически процессоров на кристалле два. Та самая пресловутая CMP, о необходимости которой столько говорено. В значительной степени феноменальные результаты Power4 обусловлены именно этим, однако обратим внимание и на другие его особенности. В частности, на производительность кэша второго уровня (восьмиканальный, частично ассоциативный, управляется тремя независимыми контроллерами, объем в 1450 Mb). Она превышает 100 GBps! А пропускная способность двух шин (ширина 128 бит, частота -- 1/3 процессорного ядра), связывающих процессор с кэшем третьего уровня и памятью (на кристалл интегрирован и контроллер ОЗУ), -- почти 15,5 GBps, причем пропускная способность памяти достигает 11 GBps.

Кроме того, с внешним миром этот процессор связывает целый набор разнообразных шин. Во-первых, это 32-разрядная (частота -- 1/3 ядра CPU) шина, служащая для организации ввода/вывода. Во-вторых, три двунаправленные шины (128 бит, 1/2 частоты ядра) -- для организации четырехпроцессорных модулей (далее подробно показано, как это делается). И в-третьих, одна шина в 64 разряда (или, если угодно, две однонаправленные шины) для связи четырехпроцессорных модулей в более крупные вычислительные системы. Все эти шины соединены посредством высокопроизводительного коммутатора, организующего взаимодействие компонентов процессора. Следует обратить внимание на тот факт, что IBM избегает использования единственной шины, во всех случаях их как минимум две. Это, скорее всего, связано с тем, что при наличии у процессора двух ядер необходимо избежать ситуации с захватом одним из них единственной шины, что приведет к блокировке работы второго ядра.

AMD Opteron "А вместо сердца -- пламенный мотор..." Такая развитая структура кэшей и систем ввода/вывода способна снабжать вычислительные ядра данными в предельно возможном темпе, обеспечивая высокую эффективность их работы (отсутствие простоев). По состоянию на сегодня это самая большая величина суммарной пропускной способности шин ввода/вывода среди всех существующих процессоров. Однако и самая сложная. Еще одним, прямо скажем, фантастическим решением IBM стало изготовление однокристальных процессорных сборок, содержащих четыре процессора Power4. Соединяются они между собой с использованием тех самых шин, служащих для организации четырехпроцессорных узлов.

Это, как видите, не разделяемая шина, не коммутируемая структура -- это прямые соединения точка--точка, причем "каждый с каждым". Такая архитектура позволяет достичь очень высоких показателей масштабируемости в рамках 4-процессорного узла. При этом каждый процессор работает со своей памятью, т. е. совокупная пропускная способность памяти у одного 8-ядерного модуля составляет 44 GBps. Существует и очень интересный механизм, с помощью которого процессоры могут "залезать" в кэш соседа по пластине. Эта особенность позволяет в некоторых ситуациях считать L3 общим кэшем сборки, при этом объем его составляет, как нетрудно подсчитать, 128 MB!

C другой стороны, размеры здесь приведены не зря. Полупроводниковая пластина 115 115 мм (13225 мм2) разительно контрастирует по площади с привычными нам микропроцессорами с площадью 100--200 мм2. Настолько, что "микро" как-то даже выговаривается с трудом. Сложность и стоимость такой пластины представить себе нетрудно. Кроме того, к сожалению, больше 32 ядер (т. е. 16 процессоров, или 4 сборок) в системе быть не может, что делает компьютеры на базе IBM Power4 в целом не более быстрыми, чем, например, 72--108-процессорные системы Sun или 512-процессорные серверы SGI. Ну и вдобавок кольцевая схема прохождения данных не лучшим образом сказывается на межузловых задержках, хотя наличие множественных путей позволяет избежать ситуации с недоступностью маршрута, да и отсутствие дорогостоящего центрального коммутатора или сверхскоростной шины тоже не получается отнести к недостаткам структуры.

Теперь рассмотрим несколько подробнее внутреннюю структуру процессорных ядер. Что сразу бросается в глаза? Восемь ФУ -- просто очень большой параллелизм исполнения! И кэш инструкций первого уровня "не подкачал" -- при размере в 64 KB на ядро (и соответственно, 128 на процессор) он способен выдавать по 8 инструкций в каждом такте. Помимо этого, каждое ядро оснащено и 32-килобайтовым кэшем данных. Отличительная его особенность -- задержка выборки составляет всего один такт! Число регистров тоже впечатляет -- 32 программно доступных РОН и столько же регистров для чисел с плавающей запятой. Но и это еще не все: на самом деле регистров 80 и 72 соответственно, а в процессоре активно используется технология их переименования. Это, разумеется, тоже вносит свой вклад в производительность.

Теперь, как водится, начнем придираться. Длина конвейера необычно велика для RISC-систем -- 17 стадий. Разумеется, это приводит к ощутимым потерям при промахах предсказания ветвлений. К пережиткам прошлого относятся и не конвейеризованные операции деления и извлечения квадратного корня для чисел с плавающей запятой. Нарушает стройную картину и декодирование команд на различное, 2 или 3, число микрокоманд, что затрудняет тюнинг программ ввиду неравного времени исполнения различных инструкций.

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

Напечатать Отправить другу

Читайте также

 
 
IDC
Реклама

  •  Home  •  Рынок  •  ИТ-директор  •  CloudComputing  •  Hard  •  Soft  •  Сети  •  Безопасность  •  Наука  •  IoT