Обзор архитектуры персональных мини-кластеров
1.2.2. Процессоры AMD Phenom™ и AMD Opteron™
Компания AMD основана в 1969 году (всего на год позже, чем Intel) и в сознании рядового пользователя прочно занимает место главного конкурента Intel на рынке процессоров для настольных систем и отчасти на рынке серверных, практически всегда при этом выступая в роли догоняющего. Если принимать во внимание только "внешние" факторы, вроде рыночной доли, то ситуация, действительно, может быть воспринята именно так. И в этом свете основной успех компании за последнее десятилетие связан с выпуском в 2003 году 64-битных процессоров AMD Opteron™, быстро завоевавших популярность и позволивших AMD значительно упрочить свое положение, в том числе в сегменте высокопроизводительных решений. Достаточно отметить, что в 28-м списке Top500 (ноябрь 2006) доля систем, построенных на основе процессоров AMD, достигла своего исторического максимума и составила 22,6%, против 52,6% у компании Intel и 18% у компании IBM. Однако кроме такого чисто количественного сравнения, в котором AMD неизменно проигрывает своим конкурентам, есть еще показатели качественные, и тут компания нередко за прошедшие годы бывала первопроходцем и реализовывала действительно интересные архитектурные решения.
Среди прочего это и интеграция в процессор северного моста, что дает более быстрый доступ к оперативной памяти и использование Direct Connect Architecture для взаимодействия процессоров между собой посредством высокоскоростной шины HyperTransport™, позволяющей без существенных потерь в производительности объединять в рамках одной системы до 8 процессоров Opteron. Кроме того нужно отметить, что в процессорах Opteron реализована "честная" четырехъядерность (Native Quad-Core Design), двухпотоковое управление 128-битными SSE-инструкциями, выполнение до четырех операций с плавающей точкой двойной точности за такт, расширенная технология оптимизации энергопотребления (Enhanced AMD PowerNow!) и многое другое. Последними серверными процессорами компании AMD являются четырехъядерные модели Opteron 3G на ядре Barcelona.
На рынке настольных систем основное оружие компании AMD сегодня – процессоры AMD Phenom™. Процессоры Phenom построены на той же микроархитектуре (AMD K10), что и серверные Opteron. Помимо уже отмеченных особенностей можно упомянуть наличие в процессорах Phenom кэша третьего уровня, пиковую пропускную способность шины HyperTransport до 16 Гб/с, поддержку 128-битных операций SSE, работу кэша второго уровня на частоте ядра, технологию улучшенной защиты от вирусов (NX бит / Enhanced Virus Protection). Текущее поколение процессоров Phenom выпускается по технологии 65 нм.
Приведем технические данные текущих лидеров в классе настольных и серверных процессоров.
Процессор AMD Phenom™ X4 Quad-Core 9950
Тактовая частота: 2,6 ГГц.
Число ядер: 4.
Кэш второго уровня: 2 Мб (по 512 Кб на каждое ядро).
Кэш третьего уровня: 2 Мб (общий на все ядра).
Частота интегрированного контроллера памяти: 1066 МГц.
Технологический процесс: 65 нанометров.
Процессор Third-Generation AMD Opteron™ 8360 SE
Тактовая частота: 2,5 ГГц.
Число ядер: 4.
Кэш второго уровня: 2 Мб (по 512 Кб на каждое ядро).
Кэш третьего уровня: 2 Мб (общий на все ядра).
Частота интегрированного контроллера памяти: 2000 МГц.
Технологический процесс: 65 нанометров.
В заключение, как и для процессоров компании Intel, приведем усредненные данные из списка Top500. Для систем в Top500, построенных на процессорах компании AMD, отношение "показанная мощность/пиковая мощность" составляет в 31-м списке 71%, при этом "удельная мощность" в расчете на один процессор/ядро равна 4,48 гигафлопс. Как и ранее отметим, что значительная часть этих систем построена не на новейших процессорах.
1.2.2. Процессоры IBM Power6
История компании IBM значительно длиннее, чем у Intel и AMD, и в отличие от последних IBM никогда не производила только процессоры. Фактически, компания, говоря сегодняшним языком, всегда пыталась поставлять "готовые решения". Однако обсуждения всего списка продукции IBM выходит за рамки данного материала, и мы остановимся только на процессорах, которые выпускает компания сегодня, и на основе которых строит как сервера "начального" уровня, так и суперкомпьютеры вроде Roadrunner или BlueGene.
Микропроцессорная архитектура Power (расшифровывается как Performance Optimization With Enhanced RISC) имеет не менее богатую историю, чем сама компания IBM. Начиная с 1990 года, когда были выпущены первые компьютеры на основе процессоров Power, и по сегодняшний день архитектура постоянно развивается, с каждым поколением процессоров привнося значительные новшества. Текущая версия процессоров Power – Power6 выпущена в середине 2007 года, тем не менее уже 7 систем в 31-м списке Top500 построено на основе этих процессоров.
Процессор Power6 выпускается по 65 нм технологическому процессу. Максимальная частота серийно выпускаемых образцов на сегодня равна 4,7 ГГц.
Процессоры Power6 имеют два ядра, способных выполнять по два потока команд одновременно, по 4 Мб кэша второго уровня на каждое ядро, 32 Мб кэша третьего уровня на отдельном кристалле, присоединенного к шине с пропускной способностью 80 Гб/с. Каждое ядро содержит по два блока работы с целыми числами и числами с плавающей точкой соответственно. Однако главной изюминкой процессора Power6 является блок десятичных вычислений с плавающей точкой, аппаратно реализующий более 50 команд для выполнения математических операций над вещественными числами в десятичном представлении и перевода из двоичной системы счисления в десятичную и обратно. Второе не менее важное отличие Power6 от процессоров предыдущих серий – отказ IBM от внеочередного (out-of-order) исполнения команд, что стало одним из основных факторов, позволившим поднять частоту процессоров выше 4 ГГц.
Процессоры Power6 поставляются в многочиповом корпусе, аналогично Power5, вмещающем до 4 процессоров и общий кэш третьего уровня. В многопроцессорной конфигурации возможна "связка" из 32 процессоров посредством двух шин межпроцессорного обмена с пропускной способностью 50 Гб/с.
В заключение, как и ранее, приведем усредненные данные из списка Top500. Для систем в Top500, построенных на процессорах IBM семейства Power, отношение "показанная мощность/пиковая мощность" составляет в 31-м списке 77%, при этом "удельная мощность" в расчете на один процессор/ядро равна 3,71 гигафлопс. Как и ранее отметим, что значительная часть этих систем построена не на новейших процессорах.
Если же брать в расчет только системы на процессорах Power6, то картина несколько меняется: отношение "показанная мощность/пиковая мощность" для этих систем составляет 65%, а "удельная" на одно ядро – 12,14 гигафлопс. Существенно меньший показатель по показанной мощности не в последнюю очередь объясняется отказом от внеочередного исполнения команд, затрудняющего и без того непростую задачу достижения пиковой производительности. Что касается "удельной мощности", то здесь с наилучшей стороны проявляет себя высокая тактовая частота процессоров Power6.
1.2.3. Процессоры PowerXCell™ 8i
Рассказ о процессоре PowerXCell™ 8i начать нужно, конечно же, с его прямого предка – процессора Cell, разработанного альянсом STI (Sony, Toshiba, IBM) в первую очередь для использования в игровых приставках Sony PlayStation 3. В процессе создания этого процессора были приняты весьма интересные решения, дающие в итоге очень высокую пиковую производительность (более 200 гигафлопс, правда, только для вещественной арифметики одинарной точности), но требующие в качестве платы более сложного программирования.
Прежде всего отметим, что процессор Cell имеет существенно "неоднородное" устройство. Он состоит из одного двухъядерного Power Processor Element (PPE) и 8 Synergistic Processor Element (SPE). PPE построен на архитектуре PowerPC, и "отвечает" в процессоре Cell за исполнение кода общего назначения (операционной системы в частности), а также контролирует работу потоков на сопроцессорах SPE. Ядра PPE 64-разрядны и, также как и Power6, используют поочередный (in-order) порядок исполнения команд. PPE имеет блок векторных операций Vector Multimedia eXtensions (VMX), кэш первого уровня размеров 64 Кб (по 32 Кб на кэш инструкций и данных) и кэш второго уровня размером 512 Кб.
В отличие от PPE SPE-ядра представляют собой специализированные векторные процессоры, ориентированные на быструю потоковою работу с SIMD-инструкциями. Архитектура SPE довольно проста: четыре блока для работы с целочисленными векторными операциями и четыре блока для работы с числами с плавающей запятой. Большинство арифметических инструкций представляют данные в виде 128-разрядных векторов, разделённых на четыре 32-битных элемента. Каждый SPE оснащён 128 регистрами, разрядность которых – 128-бит. Вместо кэша первого уровня SPE содержит 256 Кб собственной "локальной памяти" (local memory, также называемой local store или LS) разделённой на четыре отдельных сегмента по 64 Кб каждый, а также DMA-контроллер, который предназначен для обмена данными между основной памятью (RAM) и локальной памятью SPE (LS), минуя PPE. Доступ к LS составляет 6 тактов, что больше, чем время обращения к кэшу первого уровня, но меньше, чем к кэшу второго для большинства современных процессоров. SPE-ядра, также как и PPE, используют in-order исполнение инструкций.
Частота всех ядер в процессоре Cell составляет 3,2 ГГц, что дает производительность одного SPE в 3,2 ? 4 ? 2 = 25,6 гигафлопс (последняя двойка в произведении за счет двух конвейеров, позволяющих за один такт выполнять операции умножения и сложения над вещественными числами). Таким образом, пиковая производительность всего процессора Cell получается превышающей 200 гигафлопс.
Модель программирования под процессор Cell "изначально" многопоточная, поскольку на SPE могут выполняться только специализированные потоки. Данные, с которыми они работают, должны располагаться в LS, соответственно типичным подходом является их предвыборка. В целом Cell весьма эффективно справляется с "потоковой" обработкой, характерной для мультимедиа, для задач кодирования, сжатия и т.д.
Основное отличие процессора PowerXCell™ 8i от своего "предка" состоит в значительном улучшении работы с вещественными числами двойной точности, что позволило довести пиковую производительность на них до уровня в 100 гигафлопс. Кроме того PowerXCell™ 8i производится по 65 нм технологии, в отличие от 90 нм, использующихся в Cell. Наконец, в PowerXCell™ 8i был кардинально (до 32 Гб) увеличен объем поддерживаемой памяти.
В настоящий момент в Top500 три системы построены на процессорах PowerXCell 8i, в том числе лидер списка. Как и ранее, приведем усредненные данные из списка Top500 по этим трем системам. Отношение "показанная мощность/пиковая мощность" систем на основе процессоров PowerXCell 8i составляет в 31-м списке 74%, при этом "удельная мощность" в расчете на одно ядро равна 8,36 гигафлопс (то есть порядка 80 гигафлопс на процессор).
1.2.4. Процессоры Sun UltraSPARC T1 и Sun UltraSPARC T2
Начиная разработку микроархитектуры UltraSPARC Architecture, компания Sun Microsystems подошла к процессу с позиций, существенно отличающихся от остальных производителей. В многоядерных процессорах Intel, AMD и IBM каждое ядро фактически является полноценным исполнительным устройством, ориентированным на выполнение кода общего назначения, а в процессорах семейства Cell SPE-ядра, напротив, в принципе не могут исполнять такой код и, по сути, являются сопроцессорами. В основу процессоров UltraSPARC T1 (кодовое имя Niagara), выпущенных на рынок в 2005 году и UltraSPARC T2 (кодовое имя Niagara-2), выпущенных в 2007, положена идея "многопоточности" для достижения высокой производительности не путем ускорения выполнения одного потока команд, а за счет обработки большого числа потоков в единицу времени. Как результат процессоры UltraSPARC T1 способны выполнять 32 потока одновременно (на восьми "четырехпоточных" ядрах), а процессоры UltraSPARC T2 – 64 потока (на восьми "восьмипоточ ных" ядрах). Эта многопоточность аппаратная (как, например, HyperThreading у компании Intel), то есть операционная система воспринимает UltraSPARC T1 и UltraSPARC T2 как 32 и 64 процессора соответственно.
В обоих процессорах компания Sun реализовала технологию, названную ими CoolThreads, позволяющую значительно снизить энергопотребление – TDP процессоров UltraSPARC T1 не превышает 79 Вт (по 2,5 ватта на поток), процессоров UltraSPARC T2 – 123 Вт (всего 2 ватта на поток).
Технические характеристики процессора Sun UltraSPARC T1:
- Тактовая частота: 1,0 или 1,2 ГГц.
- Число ядер: 8 (по 4 потока на каждое).
- Кэш инструкций первого уровня: 16 Кб на каждое ядро.
- Кэш данных первого уровня: 8 Кб на каждое ядро.
- Кэш второго уровня: 3 Мб (общий на все ядра).
- Интерфейс JBUS с пиковой пропускной способностью 3,1 Гб/с, 128-битной шиной частотой от 150 до 200 МГц.
- 90 нм технологический процесс.
- Энергопотребление: 72 Вт, пиковое – 79 Вт.
Переключение между потоками в процессоре UltraSPARC T1 осуществляется по циклической схеме на каждом такте, т.е. в каждый конкретный момент времени активен только один из четырех потоков ядра. Однако в случае, если в потоке возникает простой (например, при кэш-промахе), ядро переключается на работу с другим потоком. Такая стратегия позволяет скрыть возникающие задержки доступа к памяти при наличии достаточного количества потоков исполнения. Ядра UltraSPARC T1 по функциональности аналогичны процессорам предыдущего поколения UltraSPARC III, но существенно упрощены архитектурно, например, сокращены возможности прогноза ветвлений и спекулятивного выполнения команд, а число стадий конвейера уменьшено до шести (14 в UltraSPARC III).
Интересная особенность процессоров UltraSPARC T1 и T2 – наличие встроенного в ядро криптографического модуля (сопроцессора), реализующего на аппаратном уровне алгоритм RSA с 2048-разрядными ключами. Сопроцессор ядер в UltraSPARC T2 дополнительно поддерживает алгоритмы шифрования DES, 3DES, RC4, AES, SHA, MD5, CRC, а также алгоритм генерации случайных чисел.
Основной недостаток процессора UltraSPARC T1 – наличие в процессоре только одного блока вычислений с плавающей точкой, доступного для всех потоков всех ядер. В процессоре UltraSPARC T2 эту проблему решили – у каждого ядра есть собственный модуль для выполнения вещественных операций. Также в UltraSPARC T2 была поднята максимальная тактовая частота – до 1,4 ГГц. Плюс увеличен объем кэша второго уровня – до 4 Мб, однако в отличие от UltraSPARC T1 кэш не общий, а раздельный – по 512 Кб на каждое ядро. Кроме того, в процессор интегрированы два 10-Gbit контроллера Ethernet и контроллер шины PCI Express.