Введение

Rock (или ROCK) был многопоточным, многоядерным микропроцессором SPARC, разрабатываемым в Sun Microsystems. Проект был отменен в 2010 году и являлся отдельным от семейства процессоров SPARC T Series (CoolThreads/Niagara). Rock был нацелен на повышение производительности на поток, увеличение производительности операций с плавающей точкой и улучшенную масштабируемость SMP по сравнению с семейством Niagara. Процессор Rock предназначался для традиционных высоконагруженных задач, связанных с обработкой данных, таких как серверы баз данных, а также для высокопроизводительных вычислений, требующих интенсивной работы с плавающей точкой, в то время как семейство Niagara ориентировано на сетевые задачи, например, веб-серверы.

Ядро процессора

Процессор Rock реализует 64-битный набор инструкций SPARC V9 и расширение набора инструкций VIS 3.0 SIMD для мультимедиа. Каждый процессор Rock имеет 16 ядер, и каждое ядро способно выполнять одновременно две потока, обеспечивая 32 потока на чип. Серверы, построенные на базе Rock, используют FB DIMM для повышения надежности, скорости и плотности подсистемы памяти. Процессор Rock изготовлен по 65-нм технологии с расчетной частотой 2,3 ГГц. Максимальное энергопотребление чипа Rock составляет около 250 Вт.

Ядро кластера

16 ядер в Rock организованы в четыре кластера ядер. Ядра в кластере совместно используют 32 КБ кэша инструкций, два 32 КБ кэша данных и два устройства вычислений с плавающей точкой. Sun спроектировала чип таким образом, поскольку серверные рабочие нагрузки обычно характеризуются высокой степенью повторного использования данных и инструкций между процессами и потоками, но относительно небольшим количеством операций с плавающей точкой в целом. Таким образом, совместное использование аппаратных ресурсов между четырьмя ядрами в кластере позволяет значительно сэкономить площадь и энергопотребление, практически не влияя на производительность.

Необычные особенности

В 2005 году Sun публично раскрыла функцию в процессоре Rock под названием Hardware Scout. Hardware Scout использует неиспользуемые ресурсы выполнения чипа для предварительной выборки данных при промахах кэша. В марте 2006 года Марк Тремблэй, вице-президент и главный архитектор группы масштабируемых систем Sun, выступил с презентацией в исследовательском центре Xerox Palo Alto (PARC) о параллелизме на уровне потоков, аппаратном скаутинге и спекулятивном выполнении на уровне потоков. Ожидалось, что эти многопоточные технологии будут реализованы в процессоре Rock. В августе 2007 года Sun подтвердила, что Rock станет первым серийным процессором с поддержкой транзакционной памяти. Для реализации этой функциональности были введены две новые инструкции (chkpt, commit) и один новый регистр состояния (cps). Инструкция chkpt <fail pc> используется для начала транзакции, а commit – для её завершения. В случае обнаружения условия отката транзакции выполняется переход к <fail pc>, а cps может быть использован для определения причины. Поддержка осуществляется по принципу "best effort", поскольку транзакции могут быть прерваны не только из-за конфликтов данных, но и по другим причинам, таким как промахи TLB, прерывания, определенные часто используемые последовательности вызовов функций и "сложные" инструкции (например, деление). Тем не менее, многие (возможно, мелкозернистые) блоки кода, требующие синхронизации, могли бы выиграть от поддержки транзакционной памяти процессора Rock. В феврале 2008 года Марк Тремблэй представил уникальную функцию под названием "вывод из порядка" на ISSCC. Преимущества включают замену "традиционного окна инструкций на этот гораздо меньший буфер отложенного выполнения". В апреле 2008 года инженеры Sun представили интерфейс транзакционной памяти на Transact 2008, а эмулятор Adaptive Transactional Memory Test Platform был объявлен доступным для широкой публики в ближайшее время.

Серверные платформы

Процессор Rock разрабатывался для использования в планируемой линейке серверов "Supernova" компании Sun. Детали спецификаций сервера были опубликованы в материалах FWARC/2008/761 обзора архитектуры OpenSolaris.

Физические ресурсы

Спецификация Physical Resource Inventory (PRI) ARC 2008/761 указывает, что платформы Supernova поддерживают: IEEE 1275 OpenFirmware, виртуализацию платформы посредством логических доменов (LDOM), независимый системный контроллер (SC) и службы Domain Services архитектуры управления неисправностями (FMA). Функция FMA первоначально упоминалась в FWARC/2006/141, но эта задача была закрыта и доработана в FWARC/2008/455 "для успешной диагностики ошибок шины PCI, возникающих в корневых доменах".

Вход/выход

ARC 2008/761 указывал на планируемую поддержку как горячезаменяемых слотов PCI Express (PCIe), так и моста к устаревшему PCI eXtended (PCI X).

Расширяемость

Серверы "Bronze" поддерживают слоты PCIe 0–5. "Серебряные" серверы поддерживают платы ввода-вывода 0 и 1, а также слоты PCIe 0 и 7 для каждой платы. "Платиновые" серверы поддерживают платы ввода-вывода 0 и 3, а также слоты PCIe 0 и 7 для каждой платы. Серверы "Silver II" поддерживают слоты PCIe 00–19. Серверы "Platinum II" поддерживают платы 0 и 7, а также слоты 0 и 3 для каждой платы.

Отмена

20 апреля 2009 года компании Sun и Oracle Corporation объявили о заключении окончательного соглашения, согласно которому Oracle приобретет Sun. 12 июня в блоге Sun было объявлено о технической презентации ROCK, доступной только по NDA, которая состоялась 14 июля 2009 года на встрече группы пользователей OpenSolaris в Гамбурге. 15 июня 2009 года газета New York Times сообщила, что "два источника, знакомых с планами Sun", заявили об отмене проекта Rock. Sun от комментариев воздержалась. Два дня спустя EE Times сообщила, что "Sun не представила статью о Rock [на Hot Chips 21], что вызвало предположения о возможной отмене разработки чипа". 24 июня 2009 года на 36-м Международном симпозиуме по компьютерной архитектуре была представлена работа "Спекулятивное выполнение потоков и параллелизация", включающая доклад "Новая архитектура конвейера, реализованная в процессоре ROCK от Sun". 6 августа 2009 года поддержка Rock была исключена из проекта OpenSolaris. 13 августа 2009 года на 21-м симпозиуме ACM по параллелизму в алгоритмах и архитектурах, проходившем в Калгари (Канада), была представлена работа "NZTM: Неблокирующая транзакционная память с нулевой косвенностью", написанная Фуадом Табба, Марком Моиром, Джеймсом Гудманом, Эндрю Хеем и Конгом Вангом. Производительность алгоритма NZSTM оценивалась на перспективном процессоре Rock от Sun. 11 сентября 2009 года The Register сообщила, что процессор Rock не был включен в дорожную карту процессоров SPARC, демонстрируемую клиентам и партнерам Sun. 15 сентября 2009 года на XVIII Международной конференции по параллельным архитектурам и методам компиляции (PACT), проходившей в Рали (Северная Каролина), была представлена работа tm db: A Generic Debugging Library for Transactional Programs, написанная Йосси Левом и Морисом Эрлихи. 26 октября 2009 года Дэйв Дайс, Йосси Лев, Марк Моир и Дэн Нассбаум расширили ранее опубликованную работу "Первый опыт работы с коммерческой аппаратной транзакционной памятью", представленную на XIV Международной конференции по архитектурной поддержке языков программирования и операционных систем (ASPLOS '09). 27 января 2010 года Oracle объявила о завершении приобретения Sun. 5 апреля 2010 года Дэйв Дайс, Йосси Лев, Вирендра Маратхе, Марк Моир, Марек Ольшевский и Дэн Нассбаум опубликовали работу "Упрощение параллельных алгоритмов за счет использования аппаратной транзакционной памяти", которая будет представлена на 22-м симпозиуме ACM по параллелизму в алгоритмах и архитектурах (SPAA 2010). 5 апреля 2010 года Дэйв Дайс и Нир Шавит опубликовали работу "TLRW: Возвращение блокировки чтения-записи", которая будет представлена на SPAA 2010. 12 мая 2010 года агентство Reuters сообщило, что генеральный директор Oracle Ларри Эллисон закрыл проект Rock после приобретения Sun, процитировав его слова: "У этого процессора было два невероятных достоинства: он был невероятно медленным и потреблял огромное количество энергии. Он так сильно нагревался, что над ним пришлось установить около 30 сантиметров охлаждающих вентиляторов, чтобы охладить процессор. Продолжать этот проект было просто безумием".