Установленный в Кобэ, в одном из нескольких кампусов Института физических и химических исследований (RIKEN), суперкомпьютер K computer показал производительность 8,162 PFLOPS, хотя задумывалось больше, но и этого хватило, чтобы в четыре раза превзойти достижение китайского суперкластера Tianhe-1A. Значительную часть заявленной мощности Tianhe-1A обеспечивают GPGPU (General-Purpose Graphics Processing Unit — «графический процессор общего назначения»), нагрузить которые не так просто, а K computer вернул классику в индустрию высокопроизводительных вычислений (High Performance Computing, HPC). В оригинальном названии K computer используется не английская буква К, а японское слово «кей», что означает 10 квадриллионов, именно таковой была цель проекта Keisoku.
Несколько лет назад правительство Страны восходящего солнца выделило на постройку планируемого 10-петафлопсного суперкомьютера 1,2 млрд долл. — примерно полтора годовых бюджета исследовательского центра RIKEN. Успешное завершение проекта Keisoku следует рассматривать не только как высочайшее техническое достижение; нужно также принимать во внимание, что в нем есть и очевидная политическая составляющая, прежде всего смена кабинета правительства, связанная с этим угроза прекращения финансирования и конечно же конкурентная борьба с Hitachi и NEC. Здесь также обнаруживается обычный букет проблем, сопутствующих большим проектам с государственным финансированием. Однако, как бы то ни было, но приз достался Fujitsu, и в этой победе можно найти несколько предпосылок, следующих из всей истории процессорных технологий.
Микропроцессорное многопоточие
Сегодня очень много говорят о многопоточности, многоядерности, распараллеливании, и порой даже возникает ощущение, что эта модная тема уже исчерпала себя. Поговорим о технологиях, которыми мы, возможно, будем пользоваться завтра. Василий Пантюхин |
Первое место K computer было бы невозможно без многолетнего сотрудничества Fujitsu с Sun Microsystems — новый лидер списка Top500 собран из хорошо известных и проверенных временем процессоров SPARC64, которые в восьмиядерной версии VIIIfx получили имя собственное — Venus (Венера). Процессоры объединены специально разработанной тороидальной системой коммуникаций Tofu, работа которой поддерживается интерфейсом на основе обмена сообщениями с использованием библиотеки Open MPI. Победные процессоры SPARC64 VIIIfx сохраняют архитектуру SPARC V.9 (Scalable Processor Architecture), система RISC-команд которой была разработана в Университете Беркли и позже усовершенствована Sun Microsystems.
MB86900 – первый процессор с архитектурой SPARC выпускался на фабрике Fujitsu |
Мало известен тот факт, что совместная работа стартапа Sun из Стэнфордского университета c корпорацией Fujitsu началась еще в 1982 году, сразу после основания этой крошечной компании, насчитывавшей в то время несколько сотрудников и не имевшей в своем штате достаточного количества инженеров-проектировщиков. В этом союзе корпорация Fujitsu выступала в качестве так называемого разрабатывающего партнера. Конструктивное и технологическое решение первых рабочих станций Sun было разработано в Fujitsu, а в последующем серверы, построенные на процессорах SPARC, стали плодом совместной работы двух компаний. Формально сотрудничество, ставящее целью совместную разработку серверов, было оформлено соглашением APL (Advanced Product Line), заключенным в 2004 году, в соответствии с которым в Fujitsu было, по существу, передано производство серверов средней и высокой производительности на процессорах UltraSPARC-V (кодовое имя Millennium). Вскоре Sun отказалась от развития этого процессорного направления, и серверы стали комплектоваться SPARC64 VI, разработанными в Fujitsu. В конечном итоге в 2007 году появилась линейка серверов SPARC Enterprise совместной разработки Sun и Fujitsu, призванная заменить собой продукты как Sun Fire от Sun, так и Primepower от Fujitsu.
Дальнейшую судьбу технологии SPARC определил тот факт, что ее RISС-архитектура заимствована из исследовательских работ RISC I и RISC II, выполненных в Уиверситете Беркли под руководством профессора Дэйва Паттерсона. Вот почему Sun никогда не пыталась каким-то образом приватизировать ее, да и вообще открытость проектов была характерной чертой этой компании. Впервые система команд SPARC была представлена публике в 1985 году; вскоре, после небольшой модернизации 1986 года, она стала известна как SPARC Version 7 (V7). На процессорах SPARC помимо Solaris могли работать Unix FreeBSD, OpenBSD, NetBSD и Linux. На серийных процессорах MB86900 была выпущена рабочая станция Sun-4, заменившая собой построенную на Motorola 68000 станцию Sun-3. Процессор MB86900 работал на тактовой частоте 16,67 МГц и имел сопроцессор с плавающей запятой MB86910, и, что чрезвычайно важно для сегодняшнего дня, первый процессор со SPARC-архитектурой MB86900 выпускался на полупроводниковой фабрике Fujitsu.
Второе дыхание SPARC
В конце 2010 года появились первые результаты по линейке новых систем на платформе SPARC. Что же изменилось в ландшафте SPARC? Виталий Кузьмичев |
В силу открытости архитектуры в последующем процессоры SPARC эволюционировали по двум направлениям — по основному в Sun и по боковому, точнее говоря, по нескольким боковым, которые в конечном счете слились в одно, в Fujitsu. Именно эта боковая ветвь оказалась наиболее успешной; впрочем, корпорация Oracle еще не закрыла работы по другим поколениям процессоров SPARC, так что в будущем возможны неожиданности. А в конце 80-х открытием спецификации воспользовались компании Cypress, Ross, Fujitsu, LSI Logic, Bipolar Integrated Technology, Weitecн и др. В последующем к ним присоединились еще Texas Instruments и Matsushita. В 1989 году была образована международная некоммерческая организация SPARC, которой были переданы авторские права на SPARC Instruction Set Architecture и на торговую марку SPARС. Затем уже под ее эгидой в 1990 году была выпущена спецификация SPARC Version 8, а в 1993 году появилась 64-разрядная SPARC Version 9. Продолжая традицию, для большей совместимости своих продуктов в 2002 году Fujitsu и Sun SPARC создали общую программную спецификацию Joint Programming Specification 1, обеспечивающую совместимость процессора UltraSPARC III, выпускаемого Sun, с Fujitsu SPARC64 V.
Наибольшую известность получили четыре компании из числа клонировавших SPARC, двум из них повезло меньше, а двум другим больше. Компания Solbourne Computer, созданная Matsushita, располагалась в штате Колорадо и выпускала совместимые с Sun-4 рабочие станции и небольшие серверы. Она самостоятельно, намного раньше, чем Sun, смогла спроектировать многопроцессорный сервер. Компания Weitekспециализировалась на технологиях, предназначенных для ускорения разнообразных существовавших на тот момент процессоров, в том числе и SPARC. В 1993 году Weitek выпустила процессор SPARC POWER µP (WTL 8601), позволяющий повысить скорость работы SPARCstation вдвое. Но в конце 90-х рынок изменился — Weitek и Solbourne прекратили свое существование. Большинство остальных также завершили свой путь, но результаты их деятельности в конечном счете воплотились в проектах Fujusu. Например, компания HAL Computer была создана на средства Fujitsu и руководил ею проектировщик процессора POWER Эндрю Хеллер. Это была «фаблесс» — компания, не имеющая собственного производства, она только проектировала процессоры, которые изготавливала и продавала, в основном в странах Азии, корпорация Fujitsu. В HAL, которая позже стала подразделением Fujitsu, были спроектированы SPARC64 II (изначально SPARC64+), SPARC64 III и SPARC64 IV. Проектирование SPARC64 V также начиналось в HAL, но далее инженеры Fujitsu существенно переработали его и довели до состояния готовности. На этом этапе они использовали наработки приобретенной компании Ross, которая получила известность, выпустив чрезвычайно удачный суперскалярный процессор hyperSPARC,за один цикл которого извлекались и выполнялись две команды. Процессоры использовались в одно- и многопроцессорных рабочих станциях компании Tatung и оказались настолько удачными, что ими комплектовались некоторые модели рабочих станций самой Sun Microsystems.
Архитектура процессоров UltraSPARC
Архитектура SPARC — одна из самых распространенных среди RISC-систем, а процессоры SPARC лицензированы и изготавливаются многими производителями. Виктор Шнитман |
Ряд выдающихся решений на процессорах SPARC был предложен и английской компанией ICL, вошедшей в состав Fujitsu Siemens Computers, которая в 1993 году выпустила немыслимый тогда 64-процессорный сервер GoldRush Megaserver, предназначенный для работы с большими базами данных. Но до 2001 года продукты Fujitsu SPARC не привлекали к себе особого внимания, скорее всего потому, что, во-первых, в те годы авторитет Sun был непререкаемым, а во-вторых, процессорные усилия Fujitsu не были еще должным образом сконцентрированы и значительная часть из них скрывалась под брендами компаний, фактически принадлежавших корпорации: HAL Computer, turboSPARC, ICL, Amdahl, Fujitsu Siemens (Европа), Fujitsu Technology Solutions (Америка) и др. Сегодня ситуация стала изменяться в пользу Fujitsu, чему в значительной степени способствовала крупная неудача Sun. Случилось то, что в Америке называют «Небезопасно на любой скорости» по книге Ральфа Надера, в которой описывается потенциальная опасность популярного автомобиля «шевроле корвэир». Сбои в работе кэш-памяти привели к многомиллионным потерям и утрате репутации производителя надежного оборудования. Этот провал в сочетании с последствиями кризиса, вызванного лопнувшим пузырем Интернета, лишил Sun былого статуса и стал одной из причин последующей многолетней агонии. Напротив, версии процессоров SPARC, самостоятельно спроектированные Fujitsu, к 2001 году оказались свободны от дефектов кэш-памяти, и сейчас этот факт можно рассматривать как залог будущего успеха: когда проектировщики и технологи собраны в один коллектив, вероятность ошибки гораздо меньше. С позиции прожитых лет в неудаче Sun видится системная причина, все годы своего существования компания оставалась «фаблесс», причем не только в области создания процессоров.
Венцом сотрудничества Fujitsu и Sun стал SPARC VIIIfx |
Начало собственного пути Fujitsu к SPARC было положено в 1997 году, когда Fujitsu Microelectronics выпустила 32-разрядный процессор TurboSPARC для апгрейда в рабочую станцию Sun SPARCstation 5, а в 2002 году уже SPARC64 V с улучшенными показателями надежности стали устанавливать в серверы Primepower, при создании которых использовался опыт Fujitsu в производстве мэйнфреймов. Рынок благосклонно воспринял Primepower с SPARC64 V, и они стали неплохо продаваться. А накануне 2003 года случилась сенсация — восьмипроцессорный сервер среднего класса Fujitsu Primepower 850 SPARC, работающий под управлением операционной системы Solaris, показал рекордные результаты при выполнении приложений Oracle. Стало ясно, что слияние усилий Sun и Fujitsu в области создания серверов средней и высокой производительности неизбежно. К тому же в период с 2001-го по 2004 год Sun со своими процессорами SPARC уступила лидерство по производительности изделиям Intel, и, чтобы найти выход из положения, было решено перераспределить роли в серверном сегменте — процессоры остались за Fujitsu, a Sun сосредоточила усилия на ПО, и прежде всего на Solaris. Это было признанием того, что продукты Fujitsu лучше, а Sun сильна в программном обеспечении и маркетинге. В 2007 году произошло разделение: SPARC64 VI стали использовать в корпоративных моделях M4000, UltraSPARC T1 — в серверах семейства Netra T1000/T2000, а через год был выпущен сервер M3000 на SPARC64 VII.
***
Венцом всей этой истории стало создание SPARC VIIIfx, и теперь естественно задаться вопросом: что дальше, подпишут ли Oracle и Fujitsu новое соглашение APL 2.0? То, что мы увидим продолжение серии «М», которая сейчас представлена моделью М5000 на процессорах SPARC VIIIfx, очевидно, а вот как будет развиваться более серьезное сотрудничество, покажет время.
SPARC в России
Хроника российской ветки в история микропроцессоров SPARC, вычислительных комплексов на их основе и специализированных контроллеров насчитывает более 15 лет. Старт был дан в 1991 году во время визита в Москву Скотта Макнили и его встреч с работавшим тогда в Институте точной механики и вычислительной техники Борисом Бабаяном. Результатом стало образование в 1992 году Московского центра SPARC-технологий. Нынешняя компания МЦСТ является его непосредственным правопреемником. В те годы к деятельности МЦСТ проявлял большой интерес Дейв Дицел, один из основателей уже почти забытой сегодня компании Transmeta, которая в 90-х была звездой первой величины.
Разработка первого варианта отечественного SPARC заняла три года (с 1995 по 1998 год), а его изготовление передали на фабрику Atmel ES2 (Франция). Физическое проектирование осуществлялось на уровне фреймов – элементов стандартных библиотек, которые представлялись разработчикам как черные ящики, а собственно транзисторная структура была им недоступна. Поэтому все последующие проверки на соответствие правилам проектирования и внесение необходимых правок в топологию выполнялись при участии проектировщиков на заводе-изготовителе, непосредственно перед запуском микропроцессора в производство. Первая итерация микропроцессора содержала ряд логических ошибок, однако после выполнения процедуры их программного обхода удалось загрузить ОС Solaris и приступить к исполнению прикладных программ, но из-за прекращения финансирования до второй итерации микропроцессора дело не дошло.
Следующая версия SPARC (МЦСТ-R150) была разработана в 2000-2001 годах и на этот раз был обеспечен доступ на транзисторном уровне, что позволило полностью контролировать процесс проектирования, к тому же был приобретен опыт взаимодействия с заводом-изготовителем Tower Semiconductor (Израиль). В результате уже первая версия оказалась частично работоспособной, а после второй итерации процессор был полностью готов, он производился серийно и получил широкое распространение.
В 2001-2003 годах создавался процессор МЦСТ-R500, при его разработке которого впервые была применена технология прототипирования с использованием FPGA, что позволило достичь полной работоспособности с первой итерации. В процессоре был реализован аппаратный контроль и коррекция выполнения без участия ПО. Низкая потребляемая мощность, высокая тактовая частота с учетом используемой технологии и реализации микроархитектуры с коротким конвейером ставят МЦСТ-R500 в один ряд с имевшимися на тот момент зарубежными аналогами. Процессор до сих пор серийно производится на фабрике TSMC (Тайвань).
Следующим шагом (2004-2007 годы) стала система на кристалле «все в одном» – МЦСТ-R500S, которая стала последней в ряду чипов, реализующих восьмую версию архитектуры SPARC. Система содержит два процессорных ядра МЦСТ-R500, общий кэш второго уровня, северный и южный мосты (вплоть до контроллеров клавиатуры и мыши). Такой комплект позволяет без использования дополнительной логики организовывать многомашинные системы.
В 2007 году начата разработка системы на кристалле (СнК, CoS) МЦСТ-4R, совместимой с девятой версией системы команд SPARC. СнК содержит четыре суперскалярных процессорных ядра, общий кэш второго уровня, контроллер памяти, контроллер ввода-вывода и межсистемные линки, позволяющие без использования дополнительной логики построить 16-ядерную ccNUMA систему на базе четырех СнК.
Одновременно с разработкой микропроцессоров и СнК в МЦСТ создавались вычислительные комплексы на их основе и первым был комплекс, повторявший архитектуру Sun SparcStation 10 и разработанный еще до появления собственных процессоров. Со временем на нем были установлены модули на основе МЦСТ-R150 и МЦСТ-R500, а в последующем были разработаны модули в конструктивах ATX, cPCI и др. В 2010 году было начато производство микросхемы контроллера периферийных интерфейсов, которая заменит предыдущие чипсеты, реализованные на FPGA.
– Владимир Волин (Vladimir.S.Volin@mcst.ru) — начальник отдела
SPARC-микропроцессоров компании МЦСТ (Москва).