Следует отметить и модернизированный блок С-bох: основные характеристики I-cache, D-cache и S-cache не изменились, и размер линии остался равным 64 байт, но узкая 64-бит шина к S-cache была заменена на две однонаправленные 64-бит шины. Доступ к S-cache (в том числе три такта для доступа к D-cache) занимает 11 тактов, а максимальная задержка составляет 16 тактов (в ситуации, когда строку D-cache, на место которой записывается новая строка из S-cache, необходимо записать в S-cache, но victim buffer, служащий в подобных ситуациях временным хранилищем, переполнен). Емкость таблицы истории переходов возросла с 4 до 16 Кбайт.
Благодаря высокой производительности, удачной архитектуре, хорошей масштабируемости, совместимости с 64-бит расширениями и отсутствию падения производительности при исполнении 32-бит кода ЦП семейства Opteron были благоприятно восприняты на рынке. Серверы на основе этих ЦП успешно выпускаются IBM, Sun, Fujitsu Siemens, HP и другими компаниями. Вслед за дебютом двухъядерного Athlon 64 Х2 (с ядром Toledo, Manchester) ожидается выход серверов на основе двухъядерных Opteron x65, х70 и х75 (ядра Egypt, Italy и Denmark).
Intel Itanium
Совсем недавно процессоры семейства Intel Itanium позиционировали в качестве единственно возможного преемника устаревающей архитектуры х86, как архитектуру post-RISC, способную оставить позади все существующие традиционные RISC-архитектуры, о которых пойдет речь дальше. Однако архитектура х86 до сих пор не сходит со сцены и пользуется огромной популярностью. Не способствует массовому распространению ЦП семейства Itanium соотношение цена/производительность. Тем не менее эти процессоры пользуются определенным успехом и востребованы на рынке серверов среднего уровня.
История семейства Itanium уходит корнями в 1992-93 гг., когда после отказа Роберту Палмеру (Robert Palmer), главному исполнительному менеджеру компании DEC, в сотрудничестве по продвижению и разработке 64-бит RISC-процессоров Alpha Эндрю Гроув (Andrew Grove), главный исполнительный менеджер компании Intel, инициировал создание стратегического альянса с Hewlett-Packard для совместной разработки и продвижения собственной 64-бит RISC-архитектуры. Одновременно Intel продолжила развивать модельный ряд ЦП архитектуры х86, выпустив процессоры 486 и Pentium. Со своей стороны, Hewlett-Packard работала над фирменными процессорами PA-RISC.
Первый процессор Itanium (кодовое название Merced) появился лишь в 1999 г. — компания Intel начала поставки ЦП своим крупнейшим партнерам. Столь длительная задержка выпуска (первая информация о ядре Merced появилась еще в 1997 г.) была связана в основном с технологическими причинами: нестабильностью работы на проектной тактовой частоте 800 МГц. Официальный анонс нового семейства состоялся лишь в июле 2001 г.
Системы предоставлялись для ознакомительных целей и отладки программного обеспечения, чтобы обеспечить более благоприятную встречу следующему представителю семейства — процессору с ядром McKinley, официально представленному под именем Itanium 2 в июле 2002 г. Позже появились обновленные версии ядра — Madison в июле 2003 г. и Deerfield в сентябре того же года.
64-бит процессоры семейства Itanium выполнены по архитектуре VLIW, которая ориентирована на повышение количества выполняемых команд в расчете на один такт ЦП. После декодирования команды, упакованные в 16-байт пакеты по три в каждом, направляются на ФУ процессора. Декодеры в состоянии обрабатывать до шести команд за один такт ЦП. Планировщик ЦП сравнительно примитивен: вся работа по созданию оптимального потока команд возлагается на программные средства, т. е. на компиляторы и оптимизаторы, хотя иногда планировщик может несколько скорректировать поток команд.
Количество имеющихся конвейеров впечатляет: четыре в Е-box, два двойной и два одинарной точности в F-box, два в А-box, четыре в блоке SIMD-команд и три в блоке обработки условных переходов. Соответственно используется очень большое число регистров: 128 целочисленных, 128 вещественных и 72 специальных временных. Суть применения последних состоит в том, что при обработке условного перехода логика ЦП рассчитывает сразу обе ветви и хранит результаты во временных регистрах до тех пор, пока не будет достоверно известно, какая из ветвей окажется верной, тогда нужные результаты будут сразу же перенесены в основные регистры. После декодирования пакеты команд попадают в так называемый «буфер разъединения» (decoupling buffer), емкость которого составляет восемь пакетов, оттуда каждая отдельная команда направляется в один из девяти доступных конвейерных портов. Длина конвейеров — 10 стадий у Merced, а у McKinley и последователей она сокращена до восьми. Применяется техника переименования регистров, дополненная «складированием» и «ротацией» регистров.
Все ЦП семейства Itanium имеют три уровня кэш-памяти. Merced располагает 16-Кбайт I-cache с четырехканальной ассоциативностью, 16-Кбайт двухпортовым D-cache с четырехканальной ассоциативностью и сквозной записью, 96-Кбайт S-cachc с шестиканалыюй ассоциативностью и обратной записью. Также подключается внешний B-cache с четырехканальной ассоциативностью и обратной записью объемом 2 или 4 Мбайт. I-cache полностью конвейеризирован и в состоянии поставлять 32 байт команд (два пакета) за один такт ЦП, он дополнен полноассоциативным TLB на 64 записи. Задержки при чтении (load-to-use latency) из I-cache и D-cache всего два такта. Размер строки I-cache и D-cache — 32 байт, a S-cache и B-cache — 64 байт. D-cache располагает TLB на 32 записи, a S-cache — на 96 записей. Ширина шины данных к S-cache 256 бит. B-cache подключается к ядру ЦП через 128-бит шину данных, работающую на частоте ядра ЦП. Частота системной шины 133 МГц (с использованием технологии DDR — 266 МГц), а ширина канала данных 64 бит (с дополнительными битами для ЕСС или parity). Теоретическая максимальная скорость обмена данными по шине 2,1 Гбайт/с.
Ядро McKinley — это эволюционное развитие ядра Merced. Количество конвейеров А-box удвоено (четыре). Размер строки I-cache и D-cache увеличен до 64 байт, кроме того, D-cache стал четырехпортовым (по два порта для чтения и записи). Размер S-cache увеличен до 256 Кбайт, уровень ассоциативности вырос до восьми, а размер строки достиг 128 байт. Внешний B-cache был упразднен, а вместо него в ядро ЦП встроен 3-Мбайт T-cache с 12-канальной ассоциативностью и обратной записью, существуют также модели с 1,5-Мбайт T-cache. Ширина канала данных к T-cache расширена до 256 бит (с дополнительными 32 бит для ЕСС). Размер строки T-cache составляет 128 байт. Время доступа к S-cache пять и более тактов, к T-cache — 12 и более тактов. Количество записей в TLB S-cache увеличено до 128. Частота системной шины возросла до 200 МГц (эффективная частота — 400 МГц), а ширина канала данных до 128 бит (с дополнительными битами для ЕСС или четности), что дало возможность добиться теоретической максимальной скорости обмена данными по шине 6,4 Гбайт/с.
В ядро Madison было внесено меньше изменений: оно изготовлено по 130-нм технологии, оснащается 6-Мбайт T-cache, кроме того, существует модификация Madison 9М, у которой размер T-cache увеличен до 9 Мбайт. Еще одна модификация Madison — ядро Deerfield — обладает только 3-Мбайт T-cache и предназначено для двухпроцессорных конфигураций.
ЦП семейства Itanium подключаются к общей шине (это традиционно для процессоров Intel), максимальное количество ЦП на одной шине ограничено четырьмя. На практике пропускной способности системной шины в четырехпроцессорных конфигурациях часто оказывается недостаточно, поэтому при проектировании серверов с большим количеством ЦП часто ставят только по два ЦП на одну шину и соединяют отдельные шины при помощи скоростных коммутаторов.
Все ЦП семейства Itanium совместимы с набором команд х86 на аппаратном уровне. Однако производительность при выполнении х86-кода очень невысока — она сравнима с мощностью первых моделей Pentium. Это объясняется тем, что концептуальные различия между архитектурами настолько значительны, что логика ЦП самостоятельно не в состоянии обеспечить должную нагрузку на ФУ, чтобы вывести производительность на приемлемый уровень. Позже компания Intel выпустила связующее ПО (middleware) для Windows, которое на лету транслировало х86-команды в код Itanium с последующей оптимизацией. Этот подход позволил добиться падения производительности только в два раза по сравнению с изначально откомпилированным для архитектуры Itanium кодом. Не исключено, что вскоре Intel будет вынуждена доработать это ПО для обеспечения совместимости с 64-бит расширениями х86.
При сравнении архитектуры Itanium с NetBurst видны разные подходы к достижению максимальной производительности: если в NetBurst ставка делается на высокие тактовые частоты ядра ЦП при относительно небольшом количестве конвейеров ФУ и их большой длине, то в Itanium имеет место обратный вариант.
В настоящее время Itanium 2 лидирует по производительности на вещественных операциях и показывает довольно хорошую производительность на целочисленных. Ожидается выход двухъядерного Montecito с Hyper-Threading и 24-Мбайт встроенным T-cache — этот ЦП поставит рекорд по количеству транзисторов в ядре — около 1,7 млрд.