Конкуренты конкурента

Конечно, наше внимание к IBM вполне понятно — она первой запустила двухъядерные процессоры, однако следует рассказать и про ее конкурента на рынке RISC-систем — архитектуру SPARC (Scalable Processor ARChitecture). Это открытый стандарт процессорной архитектуры, права на который принадлежат ассоциации SPARC International. Лицензиаты архитектуры SPARC следуют стандарту на систему команд SPARC, обладая свободой выбора остальных параметров процессора. Наиболее известные компании, выпускающие SPARC-серверы, — Sun Microsystems и Fujitsu Siemens Computers (FSC). Отметим, что сами процессоры для второй фирмы делает японская Fujitsu. При разработке своих продуктов Sun больше ориентирована на многозадачность, а Fujitsu — на рынок решений высокопроизводительных вычислений (НРС, High Performance Computing).

Конструкторы Sun при создании первого процессора UltraSPARC ставили перед собой задачу повышения производительности и сокращения числа потенциальных проблем. Рядом принципиальных решений, определивших основные характеристики UltraSPARC, стали следующие: реализация на кристалле раздельной кэш-памяти команд и данных; организация широкой выборки команд; создание эффективных средств динамического прогнозирования направления переходов; оптимизация конвейерных операций обращения к памяти; реализация команд обмена данными между памятью и регистрами данных с плавающей запятой, позволяющая не приостанавливать диспетчеризацию команд обработки. Использование коммутаторов в серверах Sun оптимизирует нагрузку и позволяет распределять ее более равномерно (по сравнению с шинной архитектурой), что приводит к увеличению работоспособности всей системы.

Схема процессора UltraSPARC IV

При изготовлении первой двухъядерной модели — UltraSPARC IV — два ядра UltraSPARC III были размещены на одном кремниевом кристалле. Введение нескольких дополнительных контактов обеспечило прохождение управляющих сигналов от системной платы, определяющих для каждого из ядер предназначенные ему данные и команды. Встроен контроллер памяти с адресацией 16 Гбайт. Большое число регистров для данных с плавающей запятой и широкая полоса пропускания внутренних шин процессора обеспечивают довольно высокий вычислительный потенциал архитектуры UltraSPARC III.

Кэш-память второго уровня вынесена за пределы кристалла и разделяется на две части между ядрами процессора. Данные между ядрами и L2 передаются с быстродействием до 8 Гбайт/с. Чтобы все компоненты системы работали с максимальной скоростью, используется коммутатор, скорость передачи данных достигает 9,6 Гбайт/с.

В кэше L2 процессора UltraSPARC IV реализована технология ECC (Error Correction Code) защиты от ошибок. Для ее осуществления увеличивается число микросхем на каждом модуле памяти, что обеспечиват коррекцию одноразрядных и обнаружение двухразрядных ошибок в контроллере памяти. Этот процессор стал первым для Sun, в котором была внедрена параллельная обработка потоков команд Chip Multithreading (CMT), в общем-то аналогичная технологии Hyper-Threading.

По мнению представителей компании Sun, благодаря реализации многопоточности производительность UltraSPARC IV в 1,6—2 раза выше, чем у UltraSPARC III. Модификация прикладного ПО не требуется, поскольку для Solaris (вариант Unix, используемый в компьютерах Sun) UltraSPARC IV представляет собой два отдельных процессора. Уместно провести аналогию этого ЦП и с Pentium D: Windows воспринимает его как два Pentium 4, ядра имеют собственные кэши L2 и «сидят» на одной системной шине. Основной задачей при создании UltraSPARC IV было возрастание общей производительности при выполнении таких коммерческих приложений, как обслуживание баз данных, веб-сайтов и сложных технических вычислений (HPC).

Поколение «90 нанометров»

В 2004 г. была представлена пятая версия процессоров UltraSPARC — UltraSPARC IV+ . Переход к 90-нм технологиям позволил уменьшить размер микросхемы и перейти к трехуровневой иерархии кэш-памяти. Кэш-память второго уровня интегрирована в кристалле, а L3 расположена за его пределами. Производительность приложений на UltraSPARC IV+ удвоилась по сравнению с обеспечиваемой на UltraSPARC IV в результате увеличения объема кэш-памяти и буферов, улучшения механизмов прогнозирования ветвления, расширения возможностей упреждающей выборки из памяти (восемь каналов для подачи инструкций вместо одного у UltraSPARC IV) и появления новых вычислительных возможностей. UltraSPARC IV+ поддерживает память типа DDR, тогда как предшественник — только менее быструю SDRAM. Эффективность работы процессора повышается и благодаря использованию технологии CMT, позволяющей каждому ядру процессора исполнять несколько потоков инструкций одновременно.

«Холодный» Т1

Осенью 2005 г. компания Sun представила «Экологический процессор UltraSPARC T1», ранее известный под условным названием Niagara. Он был создан на базе 90-нм технологии и нацелен на системы с низким энергопотреблением. Sun подчеркивает, что T1 разработан с нуля, содержит до восьми ядер в одном кристалле, каждое из которых может исполнять четыре потока инструкций (многопоточная технология CoolThreads). Так что в целом устройство работает с 32 потоками одновременно, причем его стандартная потребляемая мощность составляет 72 Вт, т.е. она в 1,5—2 раза меньше, чем у конкурентных процессоров Intel или IBM. Справедливости ради отметим, что во имя низкого энергопотребления специалисты Sun пожертвовали скоростью работы с операциями, требующими вычислений с плавающей запятой. Родная стихия Т1 — целочисленные команды.

Передачу данных между ядрами процессора и памятью обеспечивает коммутатор с пропускной способностью 134 Гбайт/с. Кроме того, повышение производительности достигается путем снижения латентности памяти. У каждого ядра есть своя кэш-память первого (отдельно для данных и для инструкций) и второго уровня. Интерфейс JBUS с пропускной способностью до 3,1 Гбайт/с имеет 128-разрядную шину пересылки адреса и данных с частотой 150—200 МГц. Сейчас продаются Т1 с четырьмя, шестью или восьмью ядрами, а тактовые частоты ЦП находятся в диапазоне от 1 до 1,2 ГГц. Из особенностей отметим сокращение времени, затрачиваемого на ожидание поступления данных из памяти: в Т1 просто производится переход к исполнению следующего потока, пока предыдущий дожидается данных.

Указанный процессор создан для решения задач с большим количеством параллельно выполняемых потоков (одна программа способна породить их несколько) и ориентирован на использование в почтовых и поисковых серверах, где не требуется интенсивная работа с плавающей запятой (помните про «ахиллесову пяту» Т1?). По данным Sun Microsystems, системы на базе процессора UltraSPARC T1 уже установили восемь мировых рекордов в тестах на производительность и имеют лучшие показатели по энергопотреблению и эффективности использования пространства.

Надвигающийся рок

Для тех областей, где необходимы интенсивные вычисления с плавающей запятой, разрабатывается процессор под кодовым названием Rock (на базе 65-нм технологии). По имеющейся информации, процессоры Rock будут содержать по четыре процессорных ядра, объединенных в четыре блока, причем каждое ядро поддерживает до двух потоков. Кроме того, один из блоков будет отвечать за вычисления с плавающей запятой и обработку графики. В Rock планируется применить некоторые технологии Niagara, предназначенные для параллельного решения нескольких задач, однако он рассчитан на более сложные и ресурсоемкие задачи. Высокая тактовая частота позволит ускорить обработку каждого потока информации. (Правда, есть опасение, что в 2008 г. четырехъядерные процессоры Intel и AMD будут иметь уже более высокую скорость обработки одного потока.)

Кэш первого уровня станет раздельным для каждого из четырех блоков ядер, 512-Кбайт кэш второго уровня — общим на блок ядер. Также имеется информация о том, что UltraSPARC T1 сможет работать в качестве сопроцессора с Rock. Сам же Rock предназначен для высокопроизводительных вычислений на кластерах из серверов, такая архитектура идеально подходит для обработки большого количества одновременных запросов. Процессоры Niagara смогут обеспечить работу сетевых приложений, а Rock будут использоваться для обработки больших массивов данных и бизнес-приложений. Выход модели назначен на середину 2008 г. Планируется выпускать несколько разновидностей серверов: однопроцессорные (кодовое название Pebble), двух-, четырех- и восьмипроцессорные (кодовое название Boulder) машины.

Ставшие союзниками

Fujitsu представила свой двухъядерный процессор SPARC64 VI, построенный на базе архитектуры SPARC (кодовое название Olympus).

К середине 2006 г., согласно перспективным планам развития компании FSC, предусмотрен выпуск нового поколения RISC-серверов — PRIMEPOWER (базирующихся на Sparc64 VI), являющихся технологической основой для предстоящего объединения продуктовых линеек компаний FSC и Sun.

В процессорах SPARC64 VI реализована многопоточная технология (схожая с той, что применяет IBM) с независимой обработкой потоков и запросов к кэшу, которая получила название VMT (Vertical Multithreading). Оптимизируя процесс обработки потоков, процессор получает возможность переключаться с одной нити исполнения команд на другую тогда, когда первой требуется ждать данные из основной памяти, а вторая имеет всю необходимую информацию в кэше. По заявлению Fujitsu, такая технология дает увеличение производительности на 20% по сравнению с предыдущими моделями SPARC64 и уменьшает время простаивания процессора в ожидании получения данных из основной памяти. Для связи ядер с памятью в SPARC64 VI применен новый высокоскоростной интерфейс, увеличивающий пропускную способность общей шины и обеспечивающий работу ядер в полную силу без простоев в ожидании поступления данных.

Схема процессора SPARC64 V

Процессор SPARC64 VI содержит на одном кристалле два ядра с суперскалярной архитектурой SPARC64 V (фото на заставке). Кэш второго уровня L2 — встроенный. За один такт может выполняться до шести инструкций одновременно.

К 2008 г. планируется выпуск четырехъядерных процессоров SPARC64 VI+ (Jupiter). Каждое ядро сможет выполнять два потока, энергопотребление в режиме максимальной нагрузки — 120 Вт. В SPARC64 VI и SPARC64 VI+ планируется использовать одинаковые системные шины, поскольку их пропускная способность достаточна для того, чтобы на ней работал и четырехъядерный процессор. Таким образом, клиентам проще будет провести модернизацию серверов.

* * *

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


Продолжение. Начало см. в №7/06, с. 10.


Что такое НРС-системы?

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


Полный вариант статьи см. на «Мир ПК-диске».