Смекни!
smekni.com

Архитектура и производительность серверных ЦП (стр. 10 из 13)

Sun UltraSPARC, 64-бит представитель девятой версии архитектуры, появился в мае 1995 г. Первые ЦП работали на тактовой частоте 143 и 167 МГц. Во втором полугодии к ним добавились версии с частотой 182 и 200 МГц. Е-box и F-box содержали по два девятистадийных конвейера, А-box — только один. Присутствовало 136 физических целочисленных регистров, 16-Кбайт I-cache с двухканальной ассоциативностью и 16-Кбайт D-cache с прямым отображением и сквозной записью. Были предусмотрены 4-Мбайт B-cache, работающий на частоте ядра ЦП, и унифицированный полноассоциативный TLB на 64 записи. Также ЦП располагал блоком предсказания переходов, управляющей таблицей истории переходов на 2048 записей. Процессор работал с 44-бит виртуальным и 41-бит физическим адресным пространством. Был внедрен набор вспомогательных векторных инструкций VIS (Visual Instruction Set), обрабатывавшихся на обоих вещественных конвейерах. Добавилась также поддержка порядка следования байтов little-endian. ЦП изготавливался по четырехслойному 500-нм техпроцессу на мощностях Texas Instruments. Примечательно, что этот ЦП не имел средств внеочередного выполнения команд (забегая вперед, отметим, что это относится ко всем ЦП семейства UltraSPARC и по сей день).

В сентябре 1996 г. Fujitsu объявила о выпуске 32-бит TurboSPARC (MB86907) с тактовой частотой 170 МГц, предназначенного как для модернизации существующих рабочих станций (например, Sun SPARCstation 5), так и для выпуска новых. ЦП содержал I-cache и D-cache размером по 16 Кбайт, поддерживал до 1 Мбайт B-cache, а также отличался низким энергопотреблением (около 7 Вт). Этого удалось добиться благодаря использованию передового 350-пм технологического процесса компании Fujitsu. На момент начала продаж цена составляла 500 долл. США.

Еще в октябре 1995 г. на Microprocessor Forum был анонсирован UltraSPARC II. Тем не менее выпуск этого ЦП затянулся до января 1997 г. Не претерпев почти никаких изменений в функциональной части, этот ЦП, по сути, был модификацией UltraSPARC, изготовленной по новым 350-нм проектным нормам компанией Texas Instruments, что позволило довести тактовые частоты до 300 МГц, а к маю 1998 г. до 360 МГц. Объем B-cache был увеличен до 16 Мбайт. После перехода Texas Instruments на 250-нм техпроцесс и перепроектировки ядра ЦП под его требования тактовые частоты были повышены до 450 МГц в ноябре того же года.

В январе 1998 г. была выпущена модифицированная версия UltraSPARC II — UltraSPARC Hi. В ядро ЦП встроили контроллер оперативной памяти (50-нс EDO DRAM с 64-бит шиной данных и 8-бит каналом ЕСС) и шины PCI 2.1. Процессор выпускался по 350-нм проектным нормам (пять слоев), что позволило достичь тактовой частоты 360 МГц, а с переходом на 250-нм поднять до 480 МГц. В 2000 г. с переходом на 180-нм технологию с алюминиевыми проводниками в ядро ЦП был впервые встроен S-cache (256 Кбайт), B-cache был упразднен, а контроллер оперативной памяти модифицирован для работы с 100-МГц SDRAM. Тактовая частота ЦП достигла 500 МГц. После перехода в 2002 г. на техпроцесс с тем же уровнем детализации и применением медных проводников объем S-cache был увеличен до 512 Кбайт, а тактовые частоты ядра ЦП до 650 МГц. Выпущенный в сентябре 2000 г., UltraSPARC III имел переработанное ядро UltraSPARC. Количество стадий целочисленных конвейеров возросло до 14, вещественных — до 16, число целочисленных конвейеров — до трех (один из конвейеров мог обрабатывать и команды загрузки). Серьезным изменениям подверглась подсистема кэш-памяти: I-cache был увеличен до 32 Кбайт (четырехканальная ассоциативность), а D-cache — до 64 Кбайт (четырехканальная ассоциативность, обратная запись). B-cache объемом до 8 Мбайт состоял из 5-нс микросхем синхронной SRAM с 256-бит каналом данных, причем теги B-cache хранились в ядре ЦП. Для оптимизации работы с B-cache были предусмотрены встроенный 2-Кбайт кэш предварительной выборки и 2-Кбайт кэш записи с четырехканальной ассоциативностью. Встроенный контроллер оперативной памяти SDRAM имел 150-МГц 128-бит шину данных. Ширина системной шины также была 128 бит. ЦП обеспечивал 64-бит виртуальную адресацию и 43-бит физическую. В многопроцессорных конфигурациях применялась топология общей шины (Sun Fireplane, 150 МГц), к которой подключалось до четырех ЦП. Процессор изготавливался по 180-нм проектным нормам, что позволило достичь тактовой частоты 900 МГц, а после перехода на семислойный 130-нм процесс — 1200 МГц. Благодаря широким внешним интерфейсам этот ЦП занял второе (после POWER2) место по числу выходных контактов — 1368.

В октябре 2002 г. на Microprocessor Forum был представлен Fujitsu SPARC64 V. У него совершенно новый дизайн, отличный от одноименного детища Fujitsu HAL Computer Systems. Дело в том, что после поглощения Amdahl Computer в апреле 2002 г. Fujitsu начала разработку собственного SPARC64 V на базе HAL SPARC64 GP.

Fujitsu SPARC64 V довольно сильно отличался от семейства ЦП UltraSPARC, он поддерживал внеочередное выполнение команд, что предполагало совершенно иную функциональную организацию ядра. ЦП имел 11-стадийный двухконвейерный Е-box, 12-стадийный двухконвейерный F-box и 15-стадийный двухконвейерный А-box. Для обеспечения эффективного внеочередного выполнения каждый из конвейеров имел собственный буфер команд (reservation station). Был предусмотрен вспомогательный набор команд VIS. Процессор имел два файла целочисленных регистров: большой архитектурный (160 регистров с одним портом чтения и двумя портами записи) и стандартный основной (32 регистра с восемью портами чтения и двумя портами записи). При переключении задач или вызове подфункции содержание 16 регистров из основного файла копировалось в соответствующие регистры архитектурного файла, а оттуда считывались нужные регистры для новой задачи. Объемы I-cache и D-cache остались теми же, что и у самого первого SPARC64 (по 128 Кбайт), оба с двухканальной ассоциативностью и 64-бит размером строки, a D-cache к тому же был двухпортовым и с возможностью обратной записи. Был добавлен 2-Мбайт S-cache с четырехканальной ассоциативностью и обратной записью, с 64-бит строкой, причем ширина канала данных к нему составляла 256 бит. Для работы с S-cache было предусмотрено два промежуточных буфера: входящий на 16 строк и исходящий на 8. Примечательно, что как S-cache, так и D-cache обладали логикой ЕСС (обычно D-cachc защищается только контролем четности), это отличие было унаследовано от SPARC64 GP. Необычной была и конструкция TLB: для S-cache (страницы данных) было предусмотрено по 1024 записи с двухканальной ассоциативностью для 8- и 4-Кбайт страниц, а для D-cache — 32 полноассоциативных записи для страниц любых размеров. Точно такая же организация была и у TLB команд.

Логика предсказания условных переходов оперировала таблицей истории переходов с четырехканальной го контроллера памяти не было, системная шина (со звездообразной топологией) со 128-бит каналом данных и применением технологии DDR обеспечивала пропускную способность 3,52 Гбайт/с. Процессор работал с 64-бит виртуальным адресным пространством и 43-бит реальным. ЦП изготавливался по 130-нм технологии SOI (восемь слоев) с медными проводниками, тактовая частота составила 1350 МГц, а после перехода на десятислойную 90-нм SOI-технологию увеличилась до 2 ГГц (одновременно объем S-cache был увеличен до 4 Мбайт).

В 2003 г. была выпущена модификация UltraSPARC III, оборудованная 1-Мбайт S-cache с четырехканальной ассоциативностью и обратной записью — С IIIi. Встроенный контроллер оперативной памяти был также модернизирован и позволил использовать DDR SDRAM. Был реализован новый тип системной шины (JBus, от 150 до 200 МГц) и внедрен контроллер шины PCI. Процессор изготавливался по 130-пм технологии (семь слоев с медными проводниками), а впоследствии и по 90-нм. Тактовые частоты ядра ЦП — до 1600 МГц.

В феврале 2004 г. появился двухъядерный вариант UltraSPARC III — UltraSPARC IV. Ядра существенно не изменились, но контроллер оперативной памяти, системный интерфейс и контроллер B-cache были общими для двух ядер, что необходимо для сохранения совместимости с UltraSPARC III. Изначально изготавливаемый по 130-нм технологическому процессу ЦП работал на тактовой частоте до 1200 МГц. После перехода на 90-нм процесс тактовая частота возросла до 1350 МГц.

Будущее семейства UltraSPARC туманно — в апреле 2004 г. разработка UltraSPARC V была остановлена, а большая часть его разработчиков уволена. Не ясны и перспективы ожидаемого в конце этого года двухъядерного UltraSPARC IV+ (Panther).

Что касается архитектуры SPARC в целом, то ее будущее связано с двумя примечательными проектами в области аппаратных средств — процессорами нового поколения Niagara и Rock.

Процессор Niagara и системы на его базе должны быть представлены в конце 2005, либо в самом начале 2006 года. На практике он выглядит следующим образом — 90 нм технология производства, восемь полноценных самостоятельных ядер на кристалле, каждое ядро способно исполнять до четырех вычислительных потоков одновременно. Итого в одном кристалле пользователям доступно 32 «виртуальных» процессора, способных выполнять возложенные на них задачи не хуже реальных физических устройств. Высокая степень интеграции позволила разместить на самом кристалле контроллер памяти стандарта DDR2 и четыре контроллера Gigabit Ethernet. По предварительным данным первые образцы будут функционировать на частоте 1,2 ГГц при тепловыделении на уровне примерно 50 Вт. В дальнейшем предполагается значительно поднять тактового частоту процессора. Проект Niagara принципиально одно процессорное решение. В значительной степени это связано с желанием Sun отработать на этом этапе заложенные в основу Niagara принципы организации еще и межпроцессорных взаимодействий. В следующем поколении, известном под условным именем Niagara 2, предполагается реализовать необходимые для построения SMP-систем компоненты. Niagara в некотором роде специализированный процессор — он разрабатывался с учетом результатов исследований об особенностях работы многопоточных приложений и наилучшим образом подходит для построения серверных систем, ориентированных на предоставление сетевых сервисов. Стоит отметить, что по информации предоставленной Sun, процессор Niagara будет ориентирован на использование в массовых системах нижнего ценового уровня, цена которых будет сравнима или даже ниже аналогичных по функциональности систем, построенных на базе платформы х86.