Интерес к новым процессорам Power вызван рядом причин. Прежде всего это, пожалуй, единственные 64-разрядные RISC-процессоры, конкурирующие с серверными процессорами Intel Xeon по производительности. Intel Itanium, в отличие от суперскалярных Power, рассматриваются теперь в основном лишь как возможные процессоры для высоконадежных систем, AMD играет все меньшую роль в сфере высокопроизводительных вычислений (High Performance Computing, HPC), а Oracle SPARC T5-1B, несмотря на хорошие показатели производительности, пока на этом рынке практически отсутствует. Остальные игроки также не выглядят здесь конкурентоспособными.

Процессоры Power, хотя и дороже альтернативных, интересны для коммерческих высоконадежных систем и для поддержки уже имеющихся для них приложений. В Power8 акцент был сделан на ОС Linux, что для мира Unix не удивительно, но IBM AIX традиционно была ближе создателям семейства этих процессоров. Возможно, дальнейшее развитие пойдет по пути переноса отличительных черт AIX в Linux подобно тому, как, например, система SGI IRIX отдала в Linux файловую систему xfs.

Предшественником IBM Power8 был микропроцессор Power7+ с очень близкой микроархитектурой, но более старой, чем в Power8, КМОП-технологией производства — SOI/32 нм (Silicon On Insulator — «кремний на изоляторе») против SOI/22 нм в Power8. В Power7+ максимум восемь процессорных ядер, а в Power8 — 12. Часто Power8 сравнивают и с другим суперскалярным RISC-процессором Power7, также имеющим до восьми ядер при технологии на 45 нм.

IBM Power Architecture стала открыто доступна членам сообщества Open Power Foundation, объединяющего несколько десятков членов, включая такие компании, как Tyan, Nvidia, Mellanox, Samsung и Xilinx. Основа архитектуры Power — система команд ISA, последняя версия которой, 2.07, используется не только в Power8, но и в собственных разработках участников экосистемы, сложившейся вокруг Power, — компаний Tyan, Google, Apple и Freescale.

Следующей причиной интереса к Power8 являются традиционные для этого семейства оригинальные архитектурные решения [1].

Микроархитектурные особенности

Только за последнюю пятилетку процессоры от Power6 до Power8 проделали большой путь по развитию кэш-памяти: росли емкость кэш-памяти и число ее уровней, а сама эта память перемещалась из внешней на основную микросхему, что, естественно, повышает производительность. Power8 содержит трехуровневый кэш на основной микросхеме: первого уровня (L1) — 32 Кбайт для команд (I) и 64 Кбайт для данных (D), что вдвое выше, чем у Power7+; второго уровня (L2) — 512 Кбайт для команд и данных; третьего уровня (L3) — 8 Мбайт. Емкость всей этой кэш-памяти указана из расчета на одно процессорное ядро, поэтому общая емкость, например, L3 для 12-ядерной микросхемы составит 96 Мбайт.

Кэши всех уровней обеспечивают когерентность всех уровней памяти. Такая схема означает ее неоднородность — разные времена доступа со стороны разных ядер микропроцессора. Здесь возникает аналогия с оперативной памятью, которая неоднородна по времени доступа из разных процессоров (память может быть локальной по отношению к процессору или удаленной, чему отвечает известная архитектура ссNUMA). Аналогичная архитектура для кэш-памяти, применяемая в Power8, именуется IBM NUCA (Non-Uniform Cache Access).

Для иллюстрации этой архитектуры можно взять кэш L3. Хотя на процессорной микросхеме расположено много процессорных ядер, каждое из которых имеет собственный локальный блок L3, все эти блоки логически образуют общий (разделяемый всеми ядрами) кэш L3. В нем используется технология eDRAM (embedded DRAM — «встраиваемая» память), которая появилась еще в Power7. Встраиваемой ее называют потому, что она находится на основной микросхеме. В eDRAM используется конденсаторная технология. В отличие от традиционной статической памяти SRAM, используемой в кэшах более высокого уровня, eDRAM обеспечивает в три раза большую емкость памяти на единицу площади, но она сложнее SRAM и способствует удорожанию производства. Кроме Power7, eDRAM применяется, например, в Intel Haswell, а ее использование в L3 процессора Power8 позволило в шесть раз уменьшить задержку в этом кэше и в восемь раз увеличить пропускную способность.

В Power8 имеется еще кэш четвертого уровня (L4), также с технологией eDRAM, которого в Power7+ не было. Этот кэш располагается на отдельных микросхемах, напрямую связанных с процессорными микросхемами, и на каждой имеются свои 16 Мбайт для буферизации оперативной памяти. Кэш L4 обычно рассматривается совместно с оперативной памятью. За счет кэша L4, естественно, уменьшается и задержка при работе с данными. Применение новой архитектуры оперативной памяти позволило ускорить невыровненный доступ к ней.

Интересно отметить, что серверные процессоры Xeon E5-2697 v2, используемые при построении 24-ядерных систем (см. таблицу), имеют кэши L1-L3 близкого к Power8 размера: L1 — 32 Кбайт (I) и 32 Кбайт (D) на ядро; L2 — 256 Кбайт на ядро; L3 — 15 Мбайт на ядро. Хотя размер L3 в этой версии Xeon выше, чем в Power8, но в последнем больше емкость D-кэша L1 и кэша L2.

Производительность 24-ядерных серверов c процессорами Power и Xeon
Производительность 24-ядерных серверов c процессорами Power и Xeon

 

Ширина каналов передачи кэшей разных уровней
Ширина каналов передачи кэшей разных уровней

Вдвое возросла в Power8 по сравнению с Power7 ширина передачи данных между L2 и L3 (с 32 до 64 байт). Вдвое увеличилось в Power8 и число промахов в кэше, не блокирующих обработку в процессоре. Подробнее значения ширины каналов между ядром и кэшами разных уровней в Power8 представлены на рисунке.

При 12 ядрах в микропроцессоре с тактовой частотой 4 ГГц (типичное для Power8 значение) суммарная пропускная способность кэша L2 составляет 4 Тбaйт/с, кэша L3 — 3 Тбайт/с.

Следующий уровень иерархии системы памяти в Power8 — оперативная память, для доступа к которой может применяться до восьми высокоскоростных каналов с пропускной способностью по 9,6 Гбайт/с каждый. На каждом канале располагается по одной микросхеме Centaur, имеющей буферы памяти емкостью 16 Мбайт. Такая микросхема имеет еще по 4 канала к DIMM-модулям памяти, итого 32 DDR-порта с суммарной пиковой пропускной способностью (из расчета 12,8 Гбайт/с на порт) — 410 Гбайт/с. Общая емкость памяти в серверах на базе Power8 может достигать 512 Гбайт в расчете на один процессорный сокет (один чип Power8 — это до восьми каналов памяти, а один канал памяти — это до 64 Гбайт). Микросхемы Сentaur сейчас работают c ЕСС-DDR3-1600 (в будущем возможна работа с DDR4), обеспечивают планирование и управление обменами данных с памятью. При этом Centaur выполняет функции пересылки данных в память, разгружая от них Power8. Среди интеллектуальных функций такого рода, выполняемых Centaur, можно указать обеспечение триады RAS (Reliability, Availability, Serviceability — «надежность, доступность, удобство обслуживания»), включая автоматическое повторение пересылки данных при сбое, возможность изоляции и ремонта модулей. К RAS можно отнести и автоматическое повторение команд при процессорном сбое.

Во всех выпускаемых сейчас серверах серии Power S на Power8 в оперативной памяти применяется известная технология IBM Сhipkill (аналогичные технологии имеются, например, у Oracle/Sun, HP и Intel, где они называются по-другому). Эта технология может считаться развитием ECC — она обеспечивает защиту от сбоев в любой микросхеме памяти.

Еще одним модулем ядра в Power8 является блок транзакционной работы с оперативной памятью в атомарном режиме, позволяющий объединять в группу с атомарной обработкой последовательность команд загрузки регистров / записи из них в память. Это упрощает многопоточное программирование, не допуская внеочередного выполнения таких команд, приводящего к нарушению данных. Механизм реализуемой здесь параллельности аналогичен транзакциям в базах данных при доступе в общую память. Ранее транзакционная память была реализована программно, а затем в IBM System Z и Blue Gene/Q — аппаратно.

Из кэша L1 команды и данные поступают в 16 исполнительных устройств: два для чисел с фиксированной запятой (FXU), два устройства загрузки регистров / записи их в память (LSU), два устройства загрузки регистров, четыре устройства с плавающей запятой (FPU), два векторно-скалярных устройства (VSX/VMX). Кроме этого, имеется устройство DFU (Decimal Float Unit) для работы с десятичными числами с плавающей запятой, криптографическое устройство — с шифрованием в форматах RSA, DES и т. п. Имеется также устройство обработки переходов и устройство для регистров условий (СRU). Векторно-скалярное устройство для работы с числами c плавающей запятой выдает до 8 результатов с плавающей запятой двойной точности, что обеспечивает пиковую производительность 384 GFLOPS на процессор.

В Power8 обработка криптографических команд, в отличие от Intel Xeon, реализована аппаратно и выполняется параллельно с другими операциями, а в Xeon — микропрограммноe шифрование с последовательным выполнением, что требует относительно больше времени.

Среди других новаций в Power8 можно отметить поддержку различных размеров виртуальных страниц памяти, что позволило существенно увеличить вероятность попадания в таблицы преобразования адресов из виртуальных в физические и уменьшить вероятность промаха в соответствующие таблицы TLB. Соответствующие структуры кэша для такого преобразования адресов в Power8 называются ERAT (Effective to Real Address Translation — эффективными в IBM называют адреса, применяемые в обычных прикладных программах, а реальными — адреса физической памяти).

В Power8 было развито предсказание переходов и более агрессивно выполняется внеочередная обработка команд  — производительность одного ядра выросла в среднем в 1,6 раза, а при SMT-обработке — вдвое.

Все ядра Power8 поддерживают симметричную мультитредовую обработку до 8 параллельных нитей программы (Simultaneous Multithreading 8, SMT8). До 8 команд за такт может диспетчироваться, до 10 — выдаваться на выполнение, до 16 — выполняться в исполнительных конвейерах (в Power8 реализована внеочередная суперскалярная обработка, возможно и спекулятивное выполнение команд). В микропроцессоре  имеется  аппаратная поддержка меньшего числа нитей (режимы SMT4, SMT2 и SMT1), усовершенствована система предварительной выборки prefetch (увеличена глубина возможной выборки, поддерживается до 16 потоков данных), улучшена аппаратная поддержка виртуализации. Межсоединение процессорных микросхем имеет пропускную способность 150 Гбайт/с в каждом направлении, а его общая пропускная способность составляет 3,6 Тбайт/с. Межсоединение имеет укороченные пути между агентами («двухпрыжковая» схема).

Отдельного обсуждения заслуживает еще одно усовершенствование Power8 — CAPI (Cоherent Accelerator Processor Interface). Ранее для ввода-вывода в процессорах Power7/Power7+ применялась уникальная высокопроизводительная дуплексная шина IBM GX (GX+, GX++ — 5 и 20 Гбайт/с), для которой компания Mellanox создала специальные высокоскоростные адаптеры Infiniband 12X, не имеющие аналогов на рынке по пропускной способности. С появлением CAPI произошел переход к поддержке стандарта PCI-e Gen.3 с пропускной способностью 8 Гбит/с или 16 Гбит/с для передачи в одну или две стороны. Общее количество соответствующих разъемов PCI в поставляемых сегодня серверах IBM может достигать 11. Благодаря CAPI уменьшаются задержки ввода-вывода, что часто очень важно для кластерных приложений, работающих параллельно. Кроме того, высокоскоростной ввод-вывод необходим при работе с GPU [2].

Есть еще одна технологическая особенность Power8 — достижение высокой производительности при низком уровне энергопотребления. Для этого, в частности, в микросхеме реализован специальный блок управления энергопотреблением.

Серверы на базе Power8

На базе Power8 компания предлагает рынку системы Power System S8, представляющие собой системы с одним или двумя разъемами в стандартном исполнении для 19-дюймовой стойки. Высота серверов варьируется от 2U (S812L, S822L, S822) до 4U (S814, S824), а цифра после восьмерки указывает на число процессорных разъемов. Символ L в названии модели означает поставку с ОС Linux (стандартно предлагается SLES11 или RHEL 6/5, а также Ubuntu). Например, S822L — это 2U-модель с ОС Linux и двумя разъемами под процессоры, а S824 — 4U-модель с поставкой трех возможных типов ОС: AIX, Linux или IBM i.

Применение в Power8 технологии SOI/22 нм c 15-слойной металлизацией способствует повышению тактовой частоты, уменьшению задержек и росту пропускной способности. Площадь кристалла составляет 649 кв. мм для полного 12-ядерного варианта и 362 кв. мм для шестиядерной версии. Диапазон допустимых частот Power8 cоставляет 2,5–5 ГГц. Поставляемые одно-двухпроцессорные серверы имеют до 24 ядер с частотами от 3,02 до 4,15 ГГц. В Power8 имеются возможности автоматически или вручную менять тактовые частоты как в сторону уменьшения (до 50%), так и в сторону увеличения (до 10%) — этот Turbo-режим аналогичен Boost-режиму Intel Xeon.

Емкость оперативной памяти в поставляемых серверах — до 1 Тбайт.

Производительность

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

Результаты тестов SPECcpu2006 для микропроцессоров производители теперь часто вообще не представляют, заменяя их SPECint_rate2006/SPECfp_rate2006, характеризующими в существенной степени пропускную способность, зависящую, в частности, от числа ядер в процессорной микросхеме. Результаты таких тестов для Power8 приведены в таблице, однако сравнить конфигурации с одинаковым числом процессоров (разъемов) и ядер удается далеко не всегда.

Приведенные в таблице данные показывают, что серверы на Power8 при равном числе ядер почти вдвое опережают Xeon E5-2697 v.2 и Power7+, имеющий в полтора раза больше ядер.

***

При выборе конкретной системы, конечно, учитываются не только параметры производительности, но и стоимость конфигурации, а также показатели надежности. Вместе с тем появление нового процессора и открытость его архитектуры способны упрочить позиции компании на рынке высокопроизводительных систем, применяемых, в частности, для работы с большими объемами данных и поддержки облачных конфигураций.

Литература

  1. Jefrey Stuecheli. Power Technology For a Smarter Future, 2014. URL: http://www.ibm.com (дата обращения: 22.09.2014).
  2. Михаил Кузьминский. Графические процессоры для HPC // Открытые системы.СУБД. — 2013. — № 10. — С. 12–15. URL: http://www.osp.ru/os/2013/10/13039063 (дата обращения: 22.09.2014).

Михаил Кузьминский (kus@free.net) — сотрудник ИОХ РАН (Москва).