Смекни!
smekni.com

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

Благодаря тому что оба «простых» конвейера Е-bох работают на удвоенной частоте ядра ЦП, многие простые операции (сложение, вычитание, логические операторы) теоретически могут быть выполнены за половину такта. Однако следует учитывать, что эти конвейеры работают с 16-бит операндами, поэтому на 32-бит операции тратится полный такт (сначала обрабатываются младшие 16 бит, а затем старшие 16). Впрочем, предусмотрен режим back-to-back, при котором одновременно на одном конвейере будет рассчитываться младшая часть результата, а на другом — старшая. Таким образом, теоретическая возможность выполнения полной операции в пределах полутакта сохраняется.

В то же время некоторые операции, например, смещения (shifts), выполняются за четыре такта, так как проходят по относительно медленному «сложному» конвейеру. Необходимо отметить, что в ЦП, изготавливаемых по 130-нм проектным нормам, смещения обрабатываются на «простых» конвейерах.

Перечисленные особенности привели к тому, что первые ЦП- семейства Intel Xeon нередко уступали по производительности процессорам семейства Pentium III, хотя и работали на более высокой тактовой частоте. Частично решить эту проблему позволила перекомпиляция программной базы с оптимизацией под архитектуру Net-Burst. В настоящее время, разумеется, сравнивать ЦП архитектуры Р6 и NetBurst неправомерно — частота и производительность процессоров семейства Xeon выросли до высочайшего уровня, и, кроме того, эти ЦП имеют гораздо большие функциональные возможности.

Одно из преимуществ архитектуры NetBurst — широкая (256 бит, не включая биты ЕСС) шина данных между D-cache и S-cache (для которого Intel использует название Advanced Transfer Cache). Поскольку D-cache мал и работает в режиме сквозной записи, то именно S-cache является основным кэшем архитектуры NetBurst. Особенно важен низкий уровень задержек при обращении к нему: девять тактов, в том числе два на доступ к D-cache, так как S-cache подключен по схеме look-through. Впоследствии, при проектировании ядер для 90-нм проектных норм, задержки доступа значительно увеличились — 15 тактов, в том числе четыре на доступ к D-cache. Это отразилось на производительности, причем довольно часто среди ЦП с равной частотой, изготовленных по 130-и 90-нм технологическому процессу, мощнее оказывалась именно первая версия. Стоит отметить, что при доступе к D-cache со стороны вещественного конвейера А-Ьох задержки еще более высоки: девять тактов для 180- и 130-нм ЦП и 12 тактов для 90-нм ЦП.

Таким образом, S-cache оказывает огромное влияние на производительность ЦП Xeon. Он является включающим (inclusive), т. е. содержит полную копию содержимого D-cache. К тому же именно в S-cache хранится тело исполняемого процесса и, если учесть высокие тактовые частоты, на достижение которых архитектура была изначально ориентирована, становится очевидно, что увеличение размера S-cache неминуемо приведет к росту производительности на большинстве задач. Именно поэтому при переходе на новые проектные нормы его размер неизменно увеличивался (с 256 Кбайт у Foster до 2 Мбайт у Irwindale).

Кроме того, в некоторых моделях Xeon используется T-cache, также интегрированный в ядро, но гораздо более медленный (асинхронный) по сравнению с S-cache. Он тоже включающий относительно S-cache. Его основная задача — снизить частоту обращений к оперативной памяти, что очень важно, учитывая топологию общей шины.

Еще одной интересной особенностью архитектуры стала технология Hyper-Threading, позволяющая организовать два логических ЦП на основе одного физического. Своим существованием эта технология обязана тому, что в современных ЦП при исполнении кода какого-либо приложения многие ФУ простаивают, и их можно использовать для обработки второго потока. Для успешной реализации такого подхода требуется некоторая доработка декодера команд и наличие дополнительного набора основных регистров, а также совместимость программных средств — ОС и компилятора. Для работы второму логическому ЦП выделяется половина физических кэшей: D-cache, S-cache и T-cache (если имеется), вследствие чего включение Hyper-Threading при использовании приложений, не совместимых с. этой технологией, приводит к некоторому падению производительности. При использовании перекомпилированных (с оптимизацией под Hyper-Threading) приложений наблюдается некоторый рост производительности, величина которого зависит от специфики решаемых задач.

С переходом на 90-нм проектные нормы существенного роста тактовой частоты ЦП Intel Xcon не произошло — рубеж в 4 ГГц все еще не взят. Хотя более высокочастотные версии ЦП на том же техпроцессе и были заявлены, но их выпуск может и не состояться, так как недавно был анонсирован двухъядерный Pentium 4 Extreme Edition 840 (Smithfield) с тактовой частотой 3,2 ГГц. Ожидается, что на его ядре будут выпущены процессоры Xeon DP (Dempsey) и Xeon МР (Paxville).

AMD Opteron

Процессоры семейства Opteron стали заметным шагом компании AMD на серверном рынке. Их предшественниками были ЦП семейства Athlon MP, которые хотя и пользовались определенной популярностью (благодаря использованию архитектуры «точка—точка», предоставлявшей каждому ЦП полноценную системную шину), не могли быть использованы для создания систем более чем с двумя процессорами.

ЦП семейства Opteron построены на ядре К8 (AMD64), как и процессоры Athlon 64, и имеют некоторые особенности, необходимые для работы в многопроцессорных системах. ЦП Opteron оснащаются встроенным двухканальным контроллером регистровой DDR SDRAM со 128-бит шиной памяти (не включая 16 бит для ЕСС), этот контроллер позволяет применять модули памяти с частотой до 200 МГц.

Opteron совместимы с 64-бит расширениями, что, в отличие от рынка ПК, для серверных платформ очень важно. Уже довольно продолжительное время некоторые черты 32-бит архитектуры х86 препятствовали проникновению процессоров х86 в сегмент серверов среднего уровня. Причина проста: недостаток адресного пространства — 32-бит процессор может адресовать лишь 4 Гбайт ОЗУ. Такой объем адресного пространства в настоящее время не может считаться достаточным даже для некоторых серверов младшего уровня.

С выпуском ЦП Pentium Pro в 1995 г. компания Intel попробовала решить эту проблему с помощью технологии РАЕ36 (Page Address Extension, расширение страничной адресации), позволявшей расширить адресное пространство до 64 Гбайт путем использования дополнительного 4-бит сегментного регистра. Но работа с оперативной памятью в таком режиме значительно снижала производительность (в некоторых ситуациях почти вдвое). 64-бит адресация решает эту проблему без какого-либо ущерба для производительности.

Теоретически Opteron-системы относятся к архитектуре NUMA: в каждом процессоре для связи с соседними ЦП и периферией предусмотрено от одной до трех высокоскоростных двунаправленных шин HyperTrans-port. Однако на практике разница в задержках при обращении к локальной и удаленной памяти невелика — всего примерно 30% (в то время как в классических NUMA-системах она достигает сотен процентов), что позволяет компании AMD говорить о SUMO-архитектуре (существенно однородная архитектура памяти).

AMD делит ЦП семейства Opteron на три группы:

Opteron lxx, для однопроцессорных серверов;

Opteron 2xx, для двухпроцессорных серверов;

Opteron 8xx, для четырех- и восьмипроцессорных серверов.

Для связи с другими ЦП в многопроцессорной конфигурации и набором микросхем используются скоростные шины HyperTransport — процессоры Opteron оснащены тремя такими шинами. Шина HyperTransport — это двунаправленная последовательная шина, состоящая из 16 каналов и работающая на частоте 800 МГц. Пропускная способность шины в синхронном режиме составляет 3,2 Гбайт/с благодаря использованию технологии DDR. Шина HyperTransport может работать в синхронном (когерентном) и асинхронном режимах. Первый предназначен для связи с другими ЦП, второй — для связи с периферийным контроллером. Фактически ядра ЦП Opteron всех серий идентичны, но в ЦП серии 8хх активированы все три шины HyperTransport, в серии 2хх — только две, а в серии lxx — одна.

По сравнению с предыдущим поколением ЦП Athlon МР дизайн ядра Opteron конструктивно изменился. Кроме уже упомянутого встроенного контроллера оперативной памяти, шин HyperTransport и средств AMD64, были реализованы и менее масштабные доработки. Например, длины целочисленных и вещественных конвейеров увеличены на две стадии, с 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-бит векторизованными (два слова двойной точности) или скалярными данными (одно слово двойной точности). Они будут обработаны в порядке очереди, т. е. в два прохода.