Многоядерные процессоры 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. За символическую цену лицензию на архитектуру системы команд и разработать свою реализацию архитектуры, либо закупить готовую реализацию (что несколько дороже). Существовало несколько вариантов архитектуры SPARC. Самыми последними являются версии 8 и 9. Версия 8 архитектуры SPARC описывает 32-разрядный микропроцессор, тогда как версия 9 — 64-разрядный.
Процессор UltraSparc T2 является преимущественно серверным решением. Однако он также может использоваться в хранилищах данных, сетевых устройствах (инфраструктуры WiMAX, 3G/4G) и в готовых решениях (так называемых set-top-box). Процессор представляет собой многоядерную и многопоточную систему на кристалле (SoC). Процессоры UltraSPARC T2 содержат 4, 6 или 8 независимых 64-разрядных SPARC-ядер, каждое из которых имеет аппаратную поддержку выполнения восьми независимых потоков. Поток может быть частью параллельной программы или отдельной программой. В совокупности процессор может обрабатывать до 64 потоков (это свойство особо востребовано в 10-й версии Solaris OS). Тактовые частоты для этого процессора располагаются в диапазоне 900-1400 МГц. На каждое ядро в процессоре имеется по одному криптографическому сопроцессору (так называемые процессоры "безопасности").
Структурная схема процессора UltraSparc T2 изображена на рисунке 8.4. В микросхеме размещается 8 процессорных ядер. Каждое ядро содержит два целочисленных исполнительных блока, один блок с плавающей точкой, графический блок и блок криптографии. Потоки статически ассоциированы с каждым исполнительным модулем, до четырех потоков на целочисленный модуль. Аппаратно SPARC-ядро поддерживает восемь потоков. Поддержка включает в себя полный регистровый файл (с восемью регистровыми окнами), включая большинство привилегированных регистров на каждый поток. Потоки разделяют между собой кэши инструкций и данных, блок вычислений с плавающей точкой (наличия одного блока с плавающей точкой вполне достаточно для многопоточных коммерческих приложений, в которых операции с плавающей точкой занимают порядка 1% от общего потока инструкций).
Каждое ядро имеет встроенный восьмиканальный кэш инструкций первого уровня размером 16 Кб, интегрированный с четырехканальным кэшем данных первого уровня. Кэш-память второго уровня составляет 4 Мб и разделяется всеми восемью ядрами процессора. Кэш второго уровня разделен на восемь банков, которые поддерживают восемь последовательных запросов к памяти для обеспечения высокой пропускной способности канала памяти. Пропускная способность подсистемы памяти при этом достигает 60 Гб/с.
Процессор Ultra SPARC T2 имеет также встроенный контроллер для шины PCIe и два 10 Гбит/с контроллера для сетей Ethernet. Восемь процессорных ядер Niagara 2 связаны матричным переключателем с восемью банками 16-канального модульно-ассоциативного кэша второго уровня, общим объемом 4 Мбайт (у Niagara 1 — 3 Мбайт). Поскольку нагрузка на кэш в новом процессоре возросла вдвое, а объем кэша увеличился лишь на треть, для поддержания высокой производительности процессора разработчикам пришлось увеличить пропускную способность системы памяти. Вместо четырехканальной памяти DDR2, в процессоре используются четыре сдвоенных канала FBDIMM DRAM. Несколько большая по сравнению с DDR 2 энергоемкость новой подсистемы памяти с лихвой окупается приростом производительности — по оценкам разработчиков, в 1,7 раза.
Рисунок 9.4 - Структура многоядерного процессора Sun Ultra Spark T2 |
UltraSPARC T2 также может быть сконфигурирован на работу в режимах четырех или двух банков кэша второго уровня (с размерами 1/2 и 1/4 общего размера кэша соответственно).
Процессор оборудован четырьмя контроллерами памяти и может работать с 64 банками памяти. Каждый из котроллеров памяти обслуживает обращения к памяти от пары банков кэша второго уровня. В сокращенной конфигурации обращение к памяти может задействовать один из FBD-каналов (в нормальном режиме используются два канала). Каждое обращение к памяти выполняется независимо и может иметь независимый размер памяти и тип динамической памяти. К примеру, различная длительность CAS-импульса. Программное обеспечение не должно занимать адресное пространство, более чем в четыре раза большее, чем наименьший объем в обращении кэша, поскольку линии кэша перекрываются вызовами кэша.
UltraSPARC T2 имеет высокоскоростной синхронный последовательный интерфейс SSI (Synchronous Serial Interface) со скоростью передачи 50 Мбит/с, который соединяет его с программируемым массивом (FPGA), служащим для связи с загрузочным ПЗУ. В дополнение процессор содержит два контроллера PCI Express, два 1/10 Гб/с Ethernet контроллера MAC-уровня с интерфейсами XAUI (eXtended 10 Gigabit Attachment Unit Interface). Реализация PCIe включает поддержку спецификации 1.0а, поддерживаются конфигурационные режимы х1, х4, х8 при скорости данных 2,5Г б/с.
Интерфейс PCIe функционирует на частоте 2,5 ГГц. Возможно управление уровнем сигнала для оптимизации передачи на короткие или длинные линии связи. Его реализация также включает поддержку транспортного уровня, уровня связи логического подуровня физического уровня.
Блок сетевых интерфейсов имеет две линии интерфейсов со скоростями 10 Гб/с, два XAUI-интерфейса, каждый из которых состоит из четырехканального коммутатора CML, поддерживает дифференциальные сигналы в полосе 3,125 ГГц с программируемым уровнем сигнала. Каждый интерфейс имеет четыре приемо-передающие пары. Поддерживаются контрольные сигналы , аппаратное формирование и нумерация пакетов, классификация пакетов "на лету" на базе информации 1-4 уровней стека протоколов. Блок также имеет множественную поддержку прямого доступа в память и аппаратную поддержку виртуализации.
10-гигабитный Ethernet MAC (10GbE) обслуживает 16 MAC-адресов на порт, способен обрабатывать кадры длиной до 9216 байт. Осуществляется сброс пакетов, содержащих ошибки, проверка ошибок пакетов, вычисление и проверка контрольной суммы, сброс пакетов с ошибкой контрольной суммы.