Многоядерные процессоры

Процессоры архитектуры SPARC

Показывать лекцию целиком

Хронология современных процессоров SPARC

SPARC (Scalable Processor ARChitecture) — масштабируемая процессорная архитектура) — архитектура RISC-микропроцессоров, первоначально разработанная в 1985 году компанией Sun Microsystems.

Архитектура SPARC является открытой — это значит, что:

  • архитектура системы команд SPARC опубликована как стандарт IEEE 1754—1994;
  • спецификации SPARC доступны для лицензирования любой компанией или частным лицом и дают возможность разрабатывать свои собственные решения;
  • развитием архитектуры SPARC занимается независимая некоммерческая организация SPARC International, Inc., основанная в 1989 году. Членство в SPARC International открыто для всех желающих.
  • Для производства процессоров с архитектурой SPARC достаточно купить у SPARC International, Inc. лицензию на архитектуру системы команд ($99) и разработать свою реализацию архитектуры, либо закупить готовую реализацию (что несколько дороже).

    Процессоры SPARC
    Год Название Модель Частота, (МГц) Версия архитектуры
    2007 UltraSPARC T2 (Niagara 2) Sun SME1908A 1000-1400 V9 / UA 2007
    2008 UltraSPARC T2 Plus (Victoria Falls) Sun SME1910A 1200-1400 V9 / UA 2007
    2008 UltraSPARC T2 Sun T5240 1200 V9 / UA 2007
    2008 SPARC64 VII (Jupiter) Fujitsu 2400-2520 V9/JPS2
    2009 UltraSPARC RK (Rock) Sun SME1832 2300 V9 / UA

    Существовало несколько ревизий архитектуры SPARC. Самыми последними являются версии 8 и 9. Версия 8 архитектуры SPARC описывает 32-разрядный микропроцессор, тогда как версия 9 — 64-разрядный [6,71,72].

    Sun Ultra Sparc T2

    Процессор UltraSparc T2 [66-67-68-69-71-72] позиционируется производителем не только как сугубо серверное решение — он также может использоваться в хранилищах данных, сетевых устройствах (инфраструктуры WiMAX, 3G/4G) и в готовых решениях (так называемых set-top-box).

    (рис 12.1) Кристалл Ultra Sparc T2

    Процессор представляет собой высокоинтегрированную многоядерную и многопоточную систему на кристалле (SoC) (рис 12.2). Поскольку современные процессоры работают быстрее, чем память, обычно процессор тратит значительную часть своего времени, ожидая данные из памяти. Процессоры UltraSPARC T2 содержат 4, 6 или 8 независимых 64-разрядных SPARC-ядер, каждое из которых имеет аппаратную поддержку выполнения восьми независимых потоков. Поток может быть частью параллельной программы или отдельной программой [68].

    В сумме процессор может обрабатывать до 64 потоков (это свойство особо востребовано в 10-й версии Solaris OS). Тактовые частоты для этого процессора доступны в диапазоне 900-1400 МГц. На каждое ядро в процессоре имеется по одному криптографическому сопроцессору (так называемые процессоры "безопасности").

    (рис 12.2) Структура процессора Sun Ultra Sparc T2

    Ядро SPARC

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

    Аппаратно SPARC-ядро поддерживает восемь потоков. Поддержка включает в себя полный регистровый файл (с восемью регистровыми окнами), включая большинство привилегированных регистров на каждый поток. Потоки разделяют между собой кэши инструкций и данных, блок вычислений с плавающей точкой (наличия одного блока с плавающей точкой вполне достаточно для многопоточных коммерческих приложений, в которых операции с плавающей точкой занимают порядка 1% от общего потока инструкций) [68, 69].

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

    Процессор Ultra SPARC T2 имеет также встроенный контроллер для шины PCIe и два 10 Гбит/с контроллера для сетей Ethernet.

    Восемь процессорных ядер Niagara 2 связаны матричным переключателем с восемью банками 16-канального модульно-ассоциативного кэша второго уровня, общим объемом 4 Мбайт (у Niagara 1 — 3 Мбайт). Поскольку нагрузка на кэш в новом процессоре возросла вдвое, а объем кэша увеличился лишь на треть, для поддержания высокой производительности процессора разработчикам пришлось увеличить пропускную способность системы памяти. Вместо четырехканальной памяти DDR2, реализованной в Niagara 1, в процессоре используются четыре сдвоенных канала FBDIMM DRAM. Несколько большая по сравнению с DDR 2 энергоемкость новой подсистемы памяти с лихвой окупается приростом производительности — по оценкам разработчиков, в 1,7 раза.

    UltraSPARC T2 также может быть сконфигурирован на работу в режимах четырех или двух банков кэша второго уровня (с размерами 1/2 и 1/4 общего размера кэша соответственно).

    Процессор оборудован четырьмя контроллерами памяти и может работать с 64 банками памяти стандарта FB-DIMM. Каждый из котроллеров памяти обслуживает обращения к памяти от пары банков кэша второго уровня. В сокращенной конфигурации обращение к памяти может задействовать один из FBD-каналов (в нормальном режиме используются два канала). Каждое обращение к памяти выполняется независимо и может иметь независимый размер памяти и тип динамической памяти (DIMM). К примеру, различное количество ranks или различная длительность CAS-импульса. Программное обеспечение не должно занимать адресное пространство, более чем в четыре раза большее, чем наименьший объем в обращении кэша, поскольку линии кэша перекрываются вызовами кэша.

    Частота DRAM-контроллера такая же, как и у DDR-шины, которая является удвоенной частотой DDR-памяти. FBDIMM-линии работают на частоте в шесть раз большей, чем DDR-шины [70-71-72].

    Процессоры семейства Niagara считывают инструкции парами (четная и нечетная). При этом четная инструкция сразу же поступает в конвейер, а нечетная сохраняется в буфере до тех пор, пока не придет ее очередь (в каждый данный момент времени в конвейере находится одна инструкция). В ядре процессора Niagara 2 количество буферов инструкций увеличено до восьми (у каждого потока теперь свой буфер). В конвейере Niagara 2 появились дополнительные стадии. Конвейер целочисленных операций стал восьмистадийным, тогда как при выполнении инструкций, работающих с данными с плавающей запятой, конвейер насчитывает 12 стадий.

    Некэшируемый (NCU) блок выполняет декодирование передач, адресованных в пространство ввода-вывода, и направляет их на соответствующие блоки (DMU, CCU). В дополнение к этому NCU работает основным (maintains) регистром статуса для внешних прерываний. Возможно также обнаружение коллизий прерываний, система почтовых ящиков, INTX, MSI, MSI-X.

    Блок системного интерфейса (System Interface Unit (SIU)) соединяет DMU и кэш второго уровня. SIU — точка доступа для кэша L2 в сетевую подсистему. Интерфейс SIU-L2 Cache также является точкой захвата для доступа к шине PCI-Express.

    UltraSPARC T2 имеет высокоскоростной последовательный интерфейс (50 Мб/с SSI), который соединяет его с программируемым массивом (FPGA), служащим для связи с загрузочным ПЗУ. Также SSI поддерживает режим простых линий ввода-вывода.

    В дополнение процессор содержит два контроллера PCI Express, два 1/10 Гб/с Ethernet контроллера MAC-уровня с интерфейсами XAUI. Реализация PCIe включает поддержку спецификации 1.0а, поддерживаются конфигурационные режимы х1, х4, х8 при скорости данных 2,5Гб/с. Интерфейсы PCIe и XAUI могут быть запрограммированы для поддержки коротких и длинных связей, для работы и в блейд-приложениях, и в приложениях бэк-зоны.

    Интерфейс PCIe оперирует на частоте 2,5 ГГц. Возможно управление уровнем сигнала для оптимизации передачи на короткие или длинные линии связи. Его реализация также включает поддержку транспортного уровня, уровня связи логического подуровня физического уровня.

    Блок сетевых интерфейсов имеет две линии интерфейсов со скоростями 10 Гб/с, два XAUI-интерфейса, каждый из которых состоит из четырех полосного коммутатора CML, поддерживает дифференциальные сигналы в полосе 3,125 ГГц с программируемым уровнем сигнала. Каждый интерфейс имеет четыре приемо-передающие пары. Поддерживаются контрольные сигналы MDIO, аппаратное формирование и нумерация пакетов, классификация пакетов "на лету" на базе информации 1-4 уровней стека протоколов. Блок также имеет множественную поддержку прямого доступа в память и аппаратную поддержку виртуализации.

    10-гигабитный Ethernet MAC (10GbE) поддерживает 16 MAC-адресов на порт, поддержку кадров длиной до 9216 байт, поддержку пауз между кадрами по стандарту IEEE 802.3. Возможна настройка времени паузы. Поддерживаются сброс пакетов, содержащих ошибки, проверка ошибок пакетов, вычисление и проверка контрольной суммы, сброс пакетов с ошибкой контрольной суммы.

    Примеры применения процессоров Ultra Sparc T2 представлены на рис 12.3-рис 12.6.

    (рис 12.4) Серверы приложений, системы обнаружения вторжений, криптография, контроллеры беспроводных сетей — 10 Гб/с решение(рис 12.3) Серверы приложений, системы обнаружения вторжений, криптография, контроллеры беспроводных сетей — 12/24 Гб/с решение

    Номинальное энергопотребление процессора составляет 95 Вт, максимальное — 123 Вт. Спектр возможных конфигураций количества ядер процессора, тактовых частот и потребляемой мощности представлены в таблице 12.2.

    Энергопотребление процессоров UltraSPARC T2 при напряжении питания 1,1 В
    Число ядер Частота (ГГц) Потребляемая мощность (Вт)
    81,2 91
    80,9 65
    60,9 57
    40,9 46
    (рис 12.6) Блейд-системы (ATCA)(рис 12.5) ATCA-блейд-система с несколькими 1 или 10 Гб/с интерфейсами на RTM

    По данным Sun, производительность при выполнении отдельного потока (при полной загрузке многопоточной системы процессора), содержащего целочисленные инструкции, должна возрасти на 40%. Учитывая незначительный прирост тактовой частоты, а также тот факт, что большее количество потоков потребует более сложного механизма переключения, 40-процентный прирост производительности следует отнести на счет различных микроархитектурных улучшений. В то же время производительность приложений, нуждающихся в большом количестве вычислений с плавающей запятой, возрастет на порядок. В отношении энергопотребления показатели Niagara 2 выглядят не менее впечатляюще. По словам одного из разработчиков, Грега Грохоцки, Niagara 2 обеспечивает вдвое большую производительность на каждый затраченный ватт по срав­нению с предыдущей моделью. В целом процессор Niagara 2 можно рассматривать как удачную основу для построения недорогих серверов, в которых способность обрабатывать много потоков одновременно важнее высокой скорости выполнения каждого отдельного потока.

    Краткие итоги

    Процессор UltraSPARC T2 представляет собой высокоинтегрированную многоядерную и многопоточную систему на кристалле. Процессоры содержат от четырех до восьми независимых 64-разрядных SPARC-ядер, каждое из которых имеет аппаратную поддержку выполнения восьми независимых потоков. Каждое из ядер имеет два целочисленных исполнительных блока, математический сорпоцессор, криптографический сопроцессор. Имеет интегрированные контроллеры памяти, системной шины PCIe, Ethernet-контроллеры.

    Основная область применений — серверы приложений, веб-серверы.

    Контрольные вопросы

  • Опишите структуру процессоров UltraSPARC T2.
  • Как организована многопоточность в архитектуре SPARC?
  • Укажите типовые схемы применения процессоров SPARC.
  • Как организована кэш-память в UltraSPARC T2?
  • Упражнения

  • Проследите динамику развития процессоров архитектуры SPARC по следующим показателям — количество транзисторов, технологический процесс, пиковая производительность, потребляемая мощность, количество аппаратно поддерживаемых потоков на одно ядро, количество ядер.
  • Сравните относительные показатели производительности процессоров SPARC в разрезах: пиковая производительность/потребляемая мощность и технологический процесс/потребляемая мощность. Дайте характеристику полученным зависимостям.
  • Вернуться к учебному плану