396-1 (607624), страница 7
Текст из файла (страница 7)
В октябре 1992 г. на Microprocessor Forum был официально представлен ЦП microSPARC — удешевленная версия SuperSPARC, также совместной разработки Sun и Texas Instruments. ЦП работал на тактовой частоте 50 МГц, располагал 4-Кбайт I-cache и 2-Кбайт D-cache, а самое главное — встроенным математическим сопроцессором. Этот ЦП предназначался для недорогих рабочих станций, которыми стали сразу же выпущенные SPARCclassic и SPARCstation LX по 4500 и 8000 тыс. долл. США соответственно. В 1993 г. появилась модификация этого ЦП, microSPARC II, с тактовой частотой от 60 МГц, 16-Кбайт I-cache и 8-Кб D-cache без B-cache. На его основе были выпущены популярные рабочие станции SPARCstation Voyager и SPARCstation 5.
В 1989 г. была представлена первая независимая разработка компании Cypress — ЦП 601. Впоследствии подразделение по созданию ЦП SPARC было выделено в дочернюю компанию Ross Technology, которая в мае 1992 г. анонсировала ЦП hyperSPARC. В мае 1993 г. Fujitsu приобрела контрольный пакет компании Cypress, а уже в августе того же года в продажу поступили 55- и 66-МГц версии hyperSPARC. В дальнейшем Ross предлагала разные версии hyperSPARC с тактовой частотой до 200 МГц и выше для модернизации рабочих станций и серверов компании Sun, в частности SPARCstation 10 и 20, а также SPARCserver 600МР. Еще одной оригинальной разработкой компании был SPARCplug — компактный модуль расширения, содержащий до двух ЦП hyperSPARC. ЦП Ross также применялись в некоторых моделях рабочих станций и серверов Sun. Однако к 1998 г. компания столкнулась с серьезными финансовыми проблемами, а после отказа Fujitsu от дальнейших капиталовложений руководству Ross пришлось распродавать активы и закрывать компанию.
Другой фирмой, работавшей над архитектурой SPARC, была Weitek. Кроме выпуска математических сопроцессоров для первых рабочих станций и серверов, в 1993 г. она представила SPARC PowerUP ЦП с тактовой частотой 80 МГц, предназначенный для модернизации Sun SPARCstation 2.
Еще одним важным участником рынка SPARC была HAL Computer Systems, основанная в 1990 г. бывшим инженером IBM Эндрю Хеллером (Andrew Heller), главным разработчиком архитектуры POWER. После согласия Fujitsu финансировать компанию была развернута разработка 64-бит SPARC64. Когда Хеллер ушел из компании (в конце 1993 г.), она стала структурой Fujitsu. В июне 1994 г. был получен первый работоспособный прототип SPARC64, а в феврале 1995 г. на ISSCC он был официально представлен, на три месяца опередив разработку самой Sun. Этот ЦП содержал беспрецедентно большие встроенные I-cache и D-cache — по 128 Кбайт каждый, B-cache отсутствовал. Следующий ЦП, SPARC64 GP, был выпущен в 1998 г. В нем был предусмотрен B-cache (от 2 до 8 Мбайт), процессор работал на более высоких тактовых частотах (до 810 МГц). В октябре 1999 г. на Microprocessor Forum главный разработчик SPARC64 V от HAL Computer Systems Майкл Шебанов (Michael Shebanow) открыл ключевые моменты архитектуры, несколько напоминавшей NetBurst: очень высокие тактовые частоты, кэш команд типа trace cache, очень быстрый 8-Кбайт D-cache. S-cache размером 512 Кбайт предполагалось разделить на сегменты для данных и команд, что было уникальным решением. Ядро ЦП получилось сравнительно большим — 65 млн. транзисторов. При использовании шестислойного 170-нм технологического процесса площадь ядра составила бы 380 мм2. Скорее всего, руководство Fujitsu сочло разработку экономически нецелесообразной, а потому в середине 2001 г. закрыло компанию HAL.
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.
Микропроцессор Rock, появление которого намечено на 2008 год, представляет собой дальнейшее развитие идей, реализованных в проекте Niagara, однако в этой реализации «центр тяжести» перенесен на построение серверных систем занятых интенсивной обработкой данных, для чего в архитектуре сделаны соответствующие изменения.