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

В январе 1998 г. была выпущена модифицированная версия UltraSPARC II UltraSPARC Hi. В ядро ЦП встроили контроллер оперативной памяти

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

Курсовой проект

Компьютеры, программирование

Другие курсовые по предмету

Компьютеры, программирование

Сдать работу со 100% гаранией
елочисленных и вещественных конвейеров увеличены на две стадии, с 10 до 12ис 15 до 17 соответственно. Это было вызвано в основном необходимостью переработки механизма декодирования команд, хотя количество декодеров осталось неизменным и равным трем. При декодировании наиболее простые и часто используемые CISC-команды х86 преобразуются аппаратной логикой ЦП в одну или две внутренние микрокоманды, которые затем группируются и направляются на ФУ. Сложные и нечасто используемые команды преобразуются программной логикой ЦП, основанной на загружаемом при инициализации ЦП микрокоде, что требует существенно больше времени и большего количества внутренних микрокоманд в расчете на одну декодируемую. Примечательно, что именно благодаря наличию программируемой части удалось легко дополнить ЦП Athlon XP и Athlon MP с ядром Palomino средствами SSE.

Кроме того, большее количество команд декодируется аппаратной логикой. Это относится прежде всего к операциям с вещественными числами наборам команд SSE и SSE2. Число целочисленных команд, обрабатываемых программной логикой, сократилось на 8%, а вещественных на 28%. Количество конвейеров ФУ осталось неизменным: по три на Е-Ьох, А-box и F-box. Последний, как и прежде, обрабатывав SIMD-команды, поступающие в виде наборов команд ММХ, Extended ММХ, 3DNow!, Extended 3DNow!, SSE и SSE2 (процессоры, изготовленные по 90-нм проектным нормам, начиная с ядра версии Е, совместимы и с SSE3). Необходимо отметить, что поскольку внутренняя разрядность вещественных конвейеров не изменилась (она равна 64 бит), то оптимизированный под SSE, SSE2 или SSE3 код не дает практически никакого выигрыша в производительности по сравнению с 3DNow! или Extended 3DNow!. Одна команда, оперирующая 128-бит векторизированными данными (состоящими из четырех слов одинарной точности или двух двойной), будет неминуемо разложена на две команды, оперирующие 64-бит векторизованными (два слова двойной точности) или скалярными данными (одно слово двойной точности). Они будут обработаны в порядке очереди, т. е. в два прохода.

Следует отметить и модернизированный блок С-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 на аппаратном уровне. Однако производительность при вы

Похожие работы

<< < 2 3 4 5 6 7 8 9 10 > >>