396-1 (607624), страница 6
Текст из файла (страница 6)
Представленный в августе того же года на конференции Hot Chips процессор HARP-1 (Hitachi Advanced RISC Processor) обладал всеми функциональными достоинствами РА/50. Размер D-cache был увеличен до 16 Кбайт при сохранении двухканальной ассоциативности. Емкости обоих TLB были расширены до 128 записей каждый. Были добавлены внешние кэши команд и данных по 512 Кбайт каждый. Благодаря более совершенному четырехслойному 500-нм технологическому процессу, а также более высокому порогу энергопотребления, тактовые частоты ядра достигли 150 МГц.
Возвращаясь к продукции Hewlett-Packard, хотелось бы заметить, что к 1996 г. спрос на 32-бит RISC-серверы и рабочие станции упал, а конкуренты уже предлагали 64-бит решения. Поэтому не было ничего удивительного в том, что в январе вышла в свет уже 64-бит архитектура PA-RISC 2.0 и был представлен первый ЦП нового поколения — РА-8000.
Ядро ЦП было полностью перепроектировано, было реализовано внеочередное выполнение команд (предусмотрен буфер переупорядочения емкостью в 56 команд). Количество конвейеров ФУ увеличилось в несколько раз: четыре на Е-box (два основных и два вспомогательных), четыре на F-box (два для обработки операций умножения и сложения, два для расчета деления и вычисления квадратного корня), два на А-box (универсальные, т. е. каждый в состоянии рассчитывать виртуальные адреса и выполнять операции загрузки-сохранения). Учитывая ограничения пятислойного 500-нм техпроцесса, разработчики РА-8000 пошли на кардинальный шаг, вовсе отказавшись от интеграции кэш-памяти в ядро ЦП. А так как конвейеры ФУ остались довольно короткими (хотя мы и не располагаем информацией о точном количестве стадий каждого конвейера), то это фактически исключало возможность работы ЦП на высоких тактовых частотах. Это позволило использовать внешние I-cache и D-cache (оба двухпортовые и с прямым отображением, изготовленные из микросхем статической памяти), работающие на частоте, близкой к частоте ядра ЦП и подключенные к нему независимыми шинами. На практике использовались 6,7-нс синхронные 1-Мбит микросхемы SRAM с отложенной записью, формирующие кэши размером по 1 Мбайт. Был предусмотрен унифицированный полноассоциативный двухпортовый TLB на 96 записей, а также таблица истории условных переходов на 256 записей и кэш адресов переходов на 32 записи. Поддерживалось как статическое, так и динамическое предсказание условных переходов. В качестве системного интерфейса была применена уже опробованная с РА-7200 шина Runway. Также сохранилась работа в четырехканальном многопроцессорном режиме.
РА-8000 оказался вторым после POWER2 по количеству контактов на корпусе — 1085. Учитывая 64-бит целочисленную реализацию, был обновлен вспомогательный набор команд, который получил название МАХ-2 и предназначался для одновременной обработки уже четырех 16-бит квантов данных, находящихся в любом целочисленном регистре. Сохранилась впервые примененная в РА-7200 поддержка порядка следования байт little-endian, в дополнение к изначально заложенной в архитектуру big-endian. Важно, что при столь серьезных изменениях гарантировалась полная обратная совместимость с существующей 32-бит программной базой, написанной для предыдущих ЦП.
В мае 1997 г. была выпущена незначительно доработанная версия РА-8200, работающая на более высоких тактовых частотах, насколько это было возможно в рамках того же техпроцесса. Модификации подверглась логика предсказания условных переходов, отныне оперирующая таблицей истории переходов на 1024 записи. Емкость TLB была увеличена до 120 записей. Благодаря появлению на рынке 5-нс синхронных 4-Мбит микросхем SRAM с отложенной записью, объемы I-cache и D-cache увеличились вдвое. Заметим, что на момент выхода РА-8000 этот процессор обошел по производительности лидировавшего до этого 21164: при сравнении HP Visualize C180-XP (180-МГц РА-8000 с 1-Мбайт I-cache и 1-Мбайт D-cache) с DEC AlphaStation 5/333 (333-МГц 21164 с 2-Мбайт B-cache) первая оказалась производительнее в SPECint95 на 20%, а в SPECfp95 — на 50%. Лидерство РА-8000 продержалось всего несколько месяцев, пока стремительно набирающий тактовые частоты 21164А не вернул все на круги своя. 240-МГц РА-8200 смог вырваться вперед в SPECfp95, но уже не в SPECint95.
В сентябре 1998 г., благодаря переходу на пятислойный 250-нм техпроцесс, появился процессор РА-8500. Новый технологический процесс позволил достичь более высоких тактовых частот ядра ЦП, а также безболезненно интегрировать I-cache и D-cache, избавившись от сравнительно дорогих внешних микросхем SRAM. Размер I-cache составил 0,5 Мбайт с четырехканальной ассоциативностью, a D-cache — 1 Мбайт с четырехканальной ассоциативностью и обратной записью. В то же время задержки чтения из кэшей были небольшими, учитывая размеры кэшей: три такта. Размер таблицы истории переходов был увеличен в два раза (до 2048 записей), увеличилось и количество записей в TLB (со 120 до 160). Значительным изменениям подверглась системная шина Runway: она стала асинхронной (независимой от частоты ядра ЦП), а ее частота была зафиксирована на уровне 120 МГц при неизменной ширине канала данных в 64 бит (не считая битов ЕСС), эффективная частота удваивалась благодаря применению технологии DDR. На электрическом уровне шина также подверглась значительным изменениям: на смену 3,3-В терминируемой схеме push/pull пришла 1,5-В параллельно-терминируемая схема open drain. В итоге это позволило достичь эффективной скорости обмена данными по шине 1,92 Гбайт/с. Благодаря интеграции I-cache и D-cache количество контактов в разъеме ЦП сократилось почти вдвое, до 544.
В январе 2000 г. появилась модификация РА-8500 в рамках того же техпроцесса, работающая на более высоких тактовых частотах: РА-8600. В августе 2001 г. был выпущен РА-8700, уже по семислойному 180-нм техпроцессу с применением SOI — у него были увеличены до 0,75 Мбайт I-cache и до 1,5 Мбайт D-cache. Вдвое была увеличена емкость TLB (до 240 записей).
В 2003 г. после перехода на 130-нм технологию SOI был выпущен двухъядерный РА-88ОО с 0,75-Мбайт I-cache и 0,75-Мбайт D-cache в расчете на каждое ядро. Кроме того, был предусмотрен интерфейс для В-cache размером до 32 Мбайт. Системная шина была заменена на используемую ЦП семейства Itanium 2, что позволило максимально сблизить обе аппаратные платформы. Выпущенный в 2005 г. РА-8900 отличается лишь возросшими тактовыми частотами ядра, так как выпускается по тому же технологическому процессу, что и РА-8800. РА-8900 — это последний ЦП архитектуры РА-RISC, которая вскоре будет полностью замещена архитектурой Itanium. UNIX-подобная ОС для архитектуры РА-RISC несколько лет назад была перенесена на архитектуру Itanium со всей сопутствующей программной базой.
Необходимо отметить, что в отличие от активно развивавшегося поколения РА-7х00 в архитектуру ядра процессоров РА-8х00 не было внесено никаких серьезных изменений с момента их появления. Очевидно, что уже в то время руководство компании рассматривало вариант прекращения разработки этой архитектуры, и только затянувшийся запуск архитектуры Itanium позволил ей дожить до наших дней.
Все ЦП архитектуры РА-RISC, использующие системную шину Runway, позволяют создавать четырехканальные многопроцессорные системы. ЦП архитектуры РА-RISC использовались исключительно в серверах и рабочих станциях Hewlett-Packard и ее ближайших партнеров, таких, как Hitachi, Convex и Stratus. В свободную продажу они никогда не поступали.
К сожалению, компания Hewlett-Packard не пополняет базу данных SPEC2000 результатами систем с РА-8800 и РА-8900. Тем не менее, основываясь на показателях РА-8700 и приняв во внимание, что вдвое меньший размер D-cache, подключенного к каждому ядру, вполне компенсируется более высокой пропускной способностью системной шины, можно предположить, что производительность этих ЦП должна оцениваться 800—900 баллами как для SPECint2000, так и для SPECfp2000. Этого уже недостаточно для современных серверных ЦП. Добавление больших объемов кэш-памяти не приведет к значительному росту производительности, зато увеличит стоимость ЦП при производстве, а полная перепроектировка ядра требует значительных финансовых и временных затрат, поэтому решение Hewlett-Packard окончательно перейти на архитектуру Itanium выглядит вполне обоснованным.
Sun SPARC
Основы архитектуры SPARC (Scalable Processor ARChi-tecture, масштабируемая процессорная архитектура) были заложены в ходе работы над проектами RISC I и RISC II, проводимых в 1980-1982 гг. в университете Беркли (Калифорния, США) Дэвидом Паттерсоном (Dave Patterson), Манолисом Катевенисом (Manolis Katevenis) и Робертом Шерберном (Robert Sherburne). Компания Sun Microsystems, которая добилась того, что архитектура стала коммерчески успешной, была основана в феврале 1982 г. группой студентов, закончивших Стэнфордский университет: Скоттом МакНили (Scott McNealy), Вильямом Джоем (William Joy), Андреасом Бехтольсхаймом (Andreas Bechtolsheim) и Ви-нодом Хослой (Vinod Khosla).
Официальным началом разработки этой архитектуры принято считать момент, когда в 1984 г. Джой, вице-президент Sun по НИОКР, пригласил Паттерсона консультантом в компанию. Год спустя архитектура SPARC была представлена официально. Первая аппаратная реализация появилась в июле 1987 г. в виде рабочих станций Sun-4/260 и Sun-4/280, а вскоре Sun-4/ПО и Sun-4/150. В «железе» была реализована седьмая версия — SPARC V7. В то время архитектура SPARC была 32-бит, так как явной необходимости в 64-бит вычислениях и адресном пространстве тогда еще не наблюдалось (персональные компьютеры того времени еще только переходили на 32-бит вычисления).
Архитектура SPARC V7 обладала следующими особенностями:
длина любой команды составляет ровно 4 байта,
только команды загрузки-сохранения имеют доступ к оперативной памяти,
предусмотрен только один режим адресации (регистр+смещение на величину другого регистра или 13 бит
стековая регистровая модель (для любой программы доступно восемь основных 32-бит регистров и часть стека, состоящая из 24 вспомогательных 32-бит регистров), а также вещественные регистры.
Суть стековой регистровой модели архитектуры SPARC состоит в том, что для каждой запускаемой функции доступно 32 целочисленных регистра:
восемь глобальных регистров,
восемь входящих регистров (в которых находятся параметры, с которыми ьыла вызвана данная функция),
восемь регистров для локальных данных,
восемь исходящих регистров (в которых находятся
параметры, с которыми будет вызвана некоторая подфункция данной функции),
Очевидно, что те регистры, которые являются исходящими для данной функции, в то же время и входящие для ее некоторой подфункции. Другими словами, для каждой функции непосредственно выделяется только 16 вспомогательных регистров, а также обеспечивается доступ к восьми вспомогательным регистрам вышестоящей функции и восьми глобальным регистрам. Необходимые вспомогательные регистры выделяются функциями ОС из числа свободных. Преимущество такой регистровой модели — очень быстрое переключение задач (context switch), так как нет необходимости каждый раз сбрасывать данные из регистров в кэш или оперативную память, а потом считывать обратно в регистры, достаточно просто переместить регистровое «окно» в нужное место стека регистров.
В спецификации SPARC V8 документировано 32 32-бит вещественных регистра, которые могут быть при необходимости адресованы как 16 64-бит или 8 128-бит, предусмотрена возможность одновременного использования различной адресации. В SPARC V9 были регламентированы 16 дополнительных 64-бит регистров.
В 1991 г. вышла восьмая версия архитектуры SPARC (SPARC V8) — конструктивная доработка предыдущей, но все-таки еще 32-бит. Основными отличиями от 7-й версии было обязательное разделение кэша 1-го уровня на I-cache и D-cache, а также использование ранее отсутствовавших команд целочисленного умножения и деления. В мае 1992 г. Sun выпустила семейство рабочих станций SPARCstation 10, базирующихся на ЦП 8-й версии архитектуры, SuperSPARC (TMS390), совместно разработанном Sun и Texas Instruments. ЦП располагал I-cache размером в 20 Кбайт с пятиканальной ассоциативностью и D-cache размером 16 Кбайт с четырехканальной ассоциативностью, встроенным математическим сопроцессором и работал на тактовых частотах до 50 МГц. Кроме того, готовые системы обычно комплектовались B-cache. Сначала семейство SPARCstation 10 насчитывало четыре модели:
модель 30 с одним 36-МГц ЦП, без B-cache, с 32- Мбайт RAM и 420-Мбайт HDD за 18,5 тыс. долл. США;
модель 41 с одним 40-МГц ЦП, 1-Мбайт B-cache, 32-Мбайт RAM и 420-Мбайт HDD за 25 тыс. долл. США;
модель 52 с двумя 45-МГц ЦП, 1-Мбайт B-cache на каждый, 64-Мбайт RAM и 1-Гбайт HDD за 40 тыс.
модель 54 с четырьмя 45-МГц ЦП, 1-Мбай B-cache на каждый, 64-Мбайт RAM и 1-Гбайт HDD за 58 тыс. долл. США.
Вскоре было выпущено семейство рабочих станций SPARCstation 20, а также модернизирован появившийся в предыдущем году первый многопроцессорный сервер Sun — SPARCserver 600MP.
В 1992 г. вышла спецификация на версию 9 архитектуры (SPARC V9), которая должна была стать полностью 64-бит, но первых ЦП, удовлетворяющих ее требованиям, пришлось ждать еще несколько лет.
Первый ЦП с архитектурой SPARC V9 состоял из четырехстадийного одноконвейерного Е-box с одноконвейерным A-box?, a также из C-box с интерфейсом для 64-Кбайт внешнего унифицированного кэша с прямым отображением. Поскольку в ЦП не был предусмотрен F-box, использовался математический сопроцессор. Тактовая частота ЦП составляла 16 МГц (Sun4-260, Sun-4/280) или 14 МГц (Sun-4/ПО, Sun-4/150). Микросхема была создана совместно компаниями Sun и Fujitsu, изготавливалась на мощностях последней и маркировалась как МВ86900. Ими же была спроектирована микросхема контроллера математического сопроцессора (МВ86910), а сам сопроцессор состоял из двух микросхем — Weitek 1164 и 1165. Другими словами, первый SPARC состоял из четырех отдельных микросхем. Через некоторое время появился новый контроллер и новый сопроцессор к нему — Texas Instruments 8847. Они были применены в Sun-4/260 и Sun-4/280.