Введение
Микропроцессор Sun Microsystems UltraSPARC T1, известный до 14 ноября 2005 года под кодовым названием "Niagara", является многопоточным, многоядерным процессором. Разработанный для снижения энергопотребления серверных компьютеров, процессор обычно потребляет 72 Вт при частоте 1,4 ГГц. Компания Afara Websystems стала пионером в разработке радикального SPARC-проекта с акцентом на многопоточность. Она была приобретена Sun, а ее интеллектуальная собственность легла в основу линейки процессоров CoolThreads, начиная с T1. T1 – это принципиально новая реализация микропроцессора SPARC, соответствующая спецификации UltraSPARC Architecture 2005 и выполняющая полный набор инструкций SPARC V9. Sun ранее выпустила два многоядерных процессора (UltraSPARC IV и IV+), но UltraSPARC T1 стал первым микропроцессором, сочетающим в себе многоядерную и многопоточную архитектуры. Безопасность была заложена в процессор с момента первого выпуска на кремнии, благодаря наличию аппаратных криптографических блоков в T1, в отличие от универсальных процессоров конкурирующих производителей того времени. Процессор доступен с четырьмя, шестью или восемью ядрами, каждое из которых способно одновременно обрабатывать четыре потока. Таким образом, процессор может обрабатывать до 32 потоков одновременно. UltraSPARC T1 может быть разделен аналогично высокопроизводительным системам Sun SMP. Это позволяет выделить несколько ядер для выполнения одного или группы процессов и/или потоков, в то время как остальные ядра обрабатывают остальные процессы в системе.
Sun Microsystems' UltraSPARC T1 microprocessor, known until its 14 November 2005 announcement by its development codename "Niagara", is a multithreading, multicore CPU. Designed to lower the energy consumption of server computers, the CPU typically uses 72 W of power at 1.4 GHz. Afara Websystems pioneered a radical thread heavy SPARC design. The company was purchased by Sun, and the intellectual property became the foundation of the CoolThreads line of processors, starting with the T1. The T1 is a new from the ground up SPARC microprocessor implementation that conforms to the UltraSPARC Architecture 2005 specification and executes the full SPARC V9 instruction set. Sun has produced two previous multicore processors (UltraSPARC IV and IV+), but UltraSPARC T1 was its first microprocessor that is both multicore and multithreaded. Security was built in from the very first release on silicon, with hardware cryptographic units in the T1, unlike general purpose processor from competing vendors of the time. The processor is available with four, six or eight CPU cores, each core able to handle four threads concurrently. Thus, the processor is capable of processing up to 32 threads concurrently. The UltraSPARC T1 can be partitioned in a similar way to high end Sun SMP systems. Thus, several cores can be partitioned for running a single or group of processes and/or threads, while the other cores deal with the rest of the processes on the system.
Ядра
UltraSPARC T1 был разработан с нуля как многопоточный процессор специального назначения, и таким образом представил совершенно новую архитектуру для достижения высокой производительности. Вместо того, чтобы стремиться сделать каждое ядро максимально интеллектуальным и оптимизированным, целью Sun было запустить как можно больше параллельных потоков и максимизировать использование конвейера каждого ядра. Ядра T1 менее сложны, чем у конкурирующих процессоров, что позволило разместить 8 ядер на одном кристалле. Ядра не поддерживают внеочередное исполнение и не имеют большого объема кэш-памяти. Однопоточные процессоры сильно зависят от больших кэшей для обеспечения производительности, поскольку промахи кэша приводят к ожиданию, пока данные будут извлечены из основной памяти. Увеличение размера кэша снижает вероятность промаха, но влияние промаха остается прежним. Ядра T1 в значительной степени обходят проблему промахов кэша благодаря многопоточности. Каждое ядро представляет собой процессор типа "barrel", то есть переключается между доступными потоками с каждым циклом. Когда возникает событие с большой задержкой, например, промах кэша, поток временно исключается из обработки, пока данные загружаются в кэш в фоновом режиме. После завершения события с большой задержкой поток снова становится доступным для выполнения. Совместное использование конвейера несколькими потоками может замедлить каждый отдельный поток, но общая пропускная способность (и загрузка) каждого ядра значительно выше. Это также означает, что влияние промахов кэша значительно снижается, и T1 может поддерживать высокую пропускную способность, используя меньший объем кэш-памяти. Кэшу больше не требуется быть достаточно большим, чтобы вместить весь или большую часть "рабочего набора", а только недавние промахи кэша каждого потока. Тесты показывают, что этот подход оказался очень эффективным для коммерческих (целочисленных) многопоточных рабочих нагрузок, таких как Java-серверы приложений, серверы приложений Enterprise Resource Planning (ERP), почтовые серверы (например, Lotus Domino) и веб-серверы. Эти тесты демонстрируют, что каждое ядро в UltraSPARC T1 более производительно, чем одноядерный, однопоточный UltraSPARC III образца примерно 2001 года, и при сравнении чипов значительно превосходит другие процессоры в многопоточных целочисленных рабочих нагрузках.
Физические характеристики
UltraSPARC T1 содержит 279 миллионов транзисторов и имеет площадь 378 мм². Он был изготовлен компанией Texas Instruments (TI) по 90-нм технологии производства комплементарных металл-оксид-полупроводниковых (CMOS) интегральных схем с девятью уровнями металлизации. Каждое ядро оснащено кэшем L1 объемом 16 КБ для инструкций и 8 КБ для данных. Кэш L2 составляет 3 МБ, а кэш L3 отсутствует.
Целевой рынок
Микропроцессор UltraSPARC T1 уникален в своих сильных и слабых сторонах и, следовательно, ориентирован на конкретные рынки. Вместо использования для высоконагруженных вычислений и сверхпроизводительных приложений, этот чип предназначен для серверов, ориентированных на сеть и испытывающих высокую нагрузку, таких как веб-серверы с интенсивным трафиком, а также серверы приложений Java, ERP и CRM среднего уровня, которые часто используют большое количество отдельных потоков. Ограничением архитектуры T1 является то, что одно устройство для вычислений с плавающей точкой (FPU) используется всеми 8 ядрами, что делает T1 неподходящим для приложений, выполняющих большое количество операций с плавающей точкой. Однако, поскольку целевые рынки для этого процессора обычно не требуют интенсивного использования операций с плавающей точкой, компания Sun не ожидала, что это станет проблемой. Sun предоставляет инструмент для анализа уровня параллелизма приложения и использования инструкций с плавающей точкой, чтобы определить, подходит ли оно для использования на платформах T1 или T2. Помимо обработки веб- и прикладного уровней, UltraSPARC T1 может хорошо подходить для небольших баз данных с большим количеством пользователей. Один из клиентов опубликовал результаты, показывающие, что приложение MySQL, работающее на сервере UltraSPARC T1, работало в 13,5 раз быстрее, чем на сервере AMD Opteron.
Виртуализация
T1 — первый процессор SPARC, поддерживающий режим гиперпривилегированного исполнения. SPARC Hypervisor работает в этом режиме и может разбить систему T1 на 32 логических домена, каждый из которых способен запускать экземпляр операционной системы. В настоящее время поддерживаются Solaris, Linux, NetBSD и OpenBSD.
Вопросы лицензирования программного обеспечения
Традиционно, коммерческие программные пакеты, такие как Oracle Database, взимают плату со своих клиентов на основе количества процессоров, на которых работает программное обеспечение. В начале 2006 года Oracle изменила модель лицензирования, введя поправочный коэффициент процессора. При коэффициенте 0,25 для T1, 8-ядерный процессор T2000 требует лицензию только на 2 процессора. С тех пор "Таблица коэффициентов ядер процессоров Oracle" регулярно обновляется с появлением новых процессоров на рынке. В третьем квартале 2006 года IBM представила концепцию ценообразования в единицах стоимости (VU). Каждое ядро T1 эквивалентно 30 PVU (каждое ядро T2 – 50 PVU, а T3 – 70 PVU) вместо стандартного значения 100 PVU на ядро.
Слабые стороны
T1 располагал лишь одним блоком вычислений с плавающей точкой, который совместно использовался 8 ядрами, что ограничивало его применение в средах высокопроизводительных вычислений (HPC). Этот недостаток был устранен в последующем процессоре UltraSPARC T2, который включал 8 блоков с плавающей точкой, а также другие дополнительные функции. Более того, T1 был доступен только в однопроцессорных системах, что ограничивало вертикальную масштабируемость в крупных корпоративных средах. Этот недостаток был устранен в последующем UltraSPARC T2 Plus. Дополнительные усилия были направлены на добавление API "критического потока", при котором операционная система обнаруживала узкое место и временно выделяла ресурсы целого ядра, а не 1 (из 8) потоков, целевым процессам приложений, демонстрирующим однопоточную загрузку процессора. Это позволило T4 уникальным образом устранять узкие места в однопоточном режиме, не жертвуя при этом общей архитектурой для достижения высокой многопоточной пропускной способности.
Современные и последующие проекты
Архитектура "Coolthreads" (TM), начиная с UltraSPARC T1 (с его достоинствами и недостатками), несомненно, оказала значительное влияние на параллельные и последующие разработки процессоров SPARC.
"Камень"
Оригинальный UltraSPARC T1 был разработан исключительно для однопроцессорных систем и не поддерживает SMP. Проект "Rock" был более амбициозным и предназначался для поддержки многочиповых серверных архитектур, ориентированных на традиционные рабочие нагрузки, связанные с обработкой данных, такие как базы данных. Он рассматривался скорее как развитие процессоров Sun с поддержкой SMP, таких как UltraSPARC IV, а не как замена UltraSPARC T1 или T2, но был отменен незадолго до приобретения Sun компанией Oracle.
UltraSPARC T2
Ранее известный под кодовым названием Niagara 2, процессор T2 является следующим поколением после UltraSPARC T1 и содержит восемь ядер. В отличие от T1, каждое ядро поддерживает 8 аппаратных потоков, один блок вычислений с плавающей точкой, один расширенный криптографический модуль и встроенные 10-гигабитные сетевые контроллеры.
UltraSPARC T2 Plus (полное разрешение)
В феврале 2007 года Sun объявила на ежегодном саммите аналитиков, что разработка третьего поколения технологии одновременной многопоточности, кодовое название Victoria Falls, была завершена в октябре 2006 года. Двухсокетный сервер (2 RU) будет обладать 128 потоками, 16 ядрами и обеспечит 65-кратное увеличение производительности по сравнению с UltraSPARC III. На конференции Hot Chips 19 компания Sun объявила, что Victoria Falls будет использоваться в двух- и четырехпроцессорных серверах. Таким образом, один 4-процессорный SMP-сервер сможет поддерживать 256 одновременных аппаратных потоков. В апреле 2008 года Sun выпустила двухпроцессорные серверы UltraSPARC T2 Plus – SPARC Enterprise T5140 и T5240. В октябре 2008 года Sun выпустила четырехпроцессорный сервер UltraSPARC T2 Plus SPARC Enterprise T5440.
SPARC T4
Процессор T4 был выпущен в конце 2011 года. Новый процессор T4 вернется к 8 ядрам (как в T1, T2 и T2+), в отличие от 16 ядер в T3. Новая архитектура ядра T4 (под названием "S3") обеспечивает повышенную производительность на поток благодаря внедрению внеочередного выполнения, а также улучшенную производительность для однопоточных программ. В 2010 году Ларри Эллисон объявил, что Oracle предложит Oracle Linux на платформе UltraSPARC, и портирование планировалось завершить в период выпуска T4 и T5. Джон Фаулер, исполнительный вице-президент Oracle Systems, на Openworld 2014 заявил, что Linux сможет работать на Sparc в будущем.
SPARC T5
Новый процессор T5 оснащен 128 потоками на 16 ядрах и производится по 28-нанометровой технологии.