Архитектура и производительность серверных ЦП
Категория реферата: Рефераты по информатике, программированию
Теги реферата: индивидуальные рефераты, скачать контрольную
Добавил(а) на сайт: Felicitata.
Предыдущая страница реферата | 1 2 3 4 5 6 7 8 9 10 | Следующая страница реферата
Довольно интересный пример звездообразной топологии — четырехпроцессорные серверы Fujitsu PRIME-POWER 450. В их основу положен принцип скоростного универсального коммутатора, работающего на тактовой частоте 220 МГц, который и выполняет все основные функции набора микросхем. К нему по выделенным 128-бит 220-МГц шинам (110 МГц с применением технологии DDR) подключаются ЦП SPARC64 V с тактовой частотой 2 ГГц и выше. Далее к нему же подключаются два контроллера оперативной памяти (DDR SDRAM 110 МГц), каждый из которых располагает своим 128-бит каналом данных, и два моста шины PCI — по 110-МГц 64-бит каналам. Эта схема обеспечивает скоростной обмен данными между всеми узлами, но добавление, например, еще четырех ЦП и двух контроллеров оперативной памяти потребует серьезной перепроектировки коммутатора.
У систем с коммутируемой топологией нет проблем масштабируемости, свойственных вышеперечисленным шинным архитектурам. В этой архитектуре ЦП подключаются не к НМС (который может отсутствовать), а к коммутатору, соединенному с другими коммутаторами. Механизм подключения может быть как простым (широкая общая шина), так и иерархическим (древовидная иерархическая структура). На основании такой топологии можно проектировать системы с большим количеством ЦП (до 1024).
Рассмотрим коммутируемую топологию на примере 16-процессорных серверов HP AlphaServer GS160. В основе архитектуры лежит так называемый Quad Building Block (QBB), содержащий четыре ЦП Alpha 21264B (EV68C) с тактовой частотой до 1,22 ГГц, до 16 Мбайт B-cache на каждый ЦП, четыре модуля регистровой SDRAM ЕСС общим объемом до 32 Гбайт, два модуля стабилизатора питания, два 64-бит 33-МГц РСI-интерфейса, собственно коммутатор и интерфейс GlobalPort для связи с другими коммутаторами.
Четыре таких QBB объединяют в двухуровневую древовидную структуру через главный коммутатор, находящийся на отдельном модуле и обеспечивающий пропускную способность между двумя отдельно взятыми QBB по 1,75 Гбайт/с в каждом направлении.
Особняком стоят системы, в которых контроллер оперативной памяти, а часто и контроллеры периферийных шин интегрированы в ядро ЦП, а поэтому необходимость в системной шине отпадает. Такие системы строятся по NUMA-архитектуре, о которой пойдет речь дальше. Их можно рассматривать как представителей коммутируемой топологии.
Доступ к памяти в многопроцессорных системах
Независимо от количества ЦП в системе и топологии системной шины, им придется разделять доступ к общему пространству оперативной памяти, за исключением случаев, когда используется сегментирование аппаратных ресурсов некоторого сервера или суперкомпьютера для запуска нескольких копий ОС. В настоящее время существуют три типа доступа к оперативной памяти в многопроцессорных системах:
классический SMP (Symmetrical Multi-Processing, симметричная многопроцессорность);
распределенный SMP (distributed SMP);
NUMA (Non-Uniform Memory Access, неоднородный доступ к памяти).
Первоначальная модель симметричней многопроцессорности, теперь называемая классической, предусматривала, что все ЦП в системе имеют доступ к физически единому пространству оперативной памяти, обслуживаемому специальным контроллером. Все ЦП равнозначны по уровню прав доступа, какие-либо механизмы приоритетности отсутствуют, системная логика обрабатывает запросы в порядке поступления, и только на нее возложены все функции по работе с оперативной памятью. Соответственно задержки при доступе к памяти одинаковы для всех ЦП при обращении к любой области памяти. Это наиболее простая модель организации доступа к памяти в многопроцессорных системах, но не самая производительная и не позволяющая подключать большое количество ЦП из-за объективных проектировочных ограничений.
Принцип распределенной многопроцессорности предполагает формирование из имеющихся в системе ЦП логических групп, каждая из которых располагает своим (локальным) объемом оперативной памяти. Естественно, что для обеспечения целостности и нормального функционирования всего пространства оперативной памяти эти логические группы должны быть как-то связаны между собой. Задержки при доступе к памяти будут соответственно различны в зависимости от того, происходит обращение к локальной или удаленной области памяти.
Следует понимать, что, несмотря на некоторое сходство, распределенная SMP — не частный случай коммутируемой архитектуры: в последней могут быть реализованы как SMP, так и NUMA. Например, в вычислительном комплексе Intel Profusion восемь ЦП Intel Xeon разделены на две группы по четыре ЦП и связаны коммутатором, к которому подключается НМС с контроллером оперативной памяти. Таким образом, при обращении к памяти все процессоры равноправны и Intel Profusion представляет собой классическую SMP-систему. А вот описанный выше сервер HP AlphaServer GS160 спроектирован по принципу распределенной многопроцессорности.
Принцип неоднородного доступа (NUMA) состоит в явном разделении на локальную и удаленную память для каждого ЦП. Так как главный недостаток коммутируемой архитектуры — относительно низкая скорость обмена информацией между коммутаторами, возникла идея интегрировать контроллер памяти в ядро ЦП. Модули оперативной памяти в этом случае подключаются напрямую к ЦП (без НМС). В многопроцессорной системе такому ЦП придется запрашивать информацию из оперативной памяти других ЦП и отвечать на их запросы. Модель памяти называется неоднородной, потому что скорость доставки данных из локальной оперативной памяти ЦП будет значительно выше,, чем из оперативной памяти, подключенной к другому ЦП, причем разница будет все более ощутимой с увеличением количества ЦП в системе.
Модели с распределенной многопроцессорностью и неоднородным доступом позволяют создавать более масштабируемые решения, чем классическая SMP. Однако они предъявляют некоторые специфические требования к ОС, которая должна оптимизировать загрузку процессоров таким образом, чтобы процесс, выполняемый на одном ЦП, как можно реже использовал информацию, находящуюся в локальной оперативной памяти другого ЦП.
Современные серверные процессоры
Intel Xeon
Сегодня наиболее распространенные серверные ЦП — семейство Intel Xeon с архитектурой NetBurst, выполненные по технологии Hyper-Threading (все современные), совместимые по набору команд с другими ЦП архитектуры х86. Фактически это серверные версии соответствующих ЦП семейства Pentium 4, отличающиеся возможностью работы в многопроцессорном режиме и корпусом Socket 604 (ранее Socket 603). В семейство входят два типа процессоров: Xeon DP (Dual Processor) и Xeon MP (Multi Processor). Как следует из названий, Xeon DP может быть использован максимум в двухпроцессорных конфигурациях, а Xeon МР — в четырехпроцессорных. Впрочем, с помощью технологий, подобных Intel Profusion, указанные ограничения могут быть преодолены. Все ЦП рассчитаны на системы с топологией общей шины. В настоящее время существенных отличий между Xeon DP и Xeon MP не наблюдается, различаются только частоты системной шины: 200 и 166 МГц соответственно.
Архитектура NetBurst обеспечивает очень высокие тактовые частоты благодаря длинным конвейерам основных ФУ — 20 стадий целочисленных конвейеров для ЦП, изготавливаемых по 180-нм и 130-нм проектным нормам и 31 стадия для ЦП, выполненных по 90-нм техпроцессу (в обоих случаях не считая стадий декодирования). Так как все ЦП архитектуры NetBurst (Xeon, Pentium 4 и Celeron) имеют общую функциональную логику, незначительно изменяемую при переходе на новые проектные нормы, то все те недостатки, присущие ядрам ЦП Pentium 4 (Willamette, Northwood, Prescott), свойственны и модельному ряду Xeon. Известно, что для достижения стабильной работы на высоких частотах конвейерам NetBurst часто приходится отрабатывать «холостые» такты для синхронизации соседних стадий. Кроме того, большая длина конвейера делает его более чувствительным к ошибкам при предсказании условных переходов, так как больше времени уходит на сброс и перезаполнение конвейера.
Декодер х86-команд не синхронизирован с конвейерами ФУ и производит выборку (в том числе и упреждающую) в кэш микрокоманд (trace cache) со скоростью одна команда х86 за такт. Это оказывается эффективным при многократном исполнении одного и того же кода с достаточной временной локализацией (нет необходимости декодировать команды многократно), хотя упреждающее декодирование может засорять кэш. Согласно данным Intel, размер этого кэша 12 288 микрокоманд. Данные о длине микрокоманд в документации не представлены, но, по некоторым данным, она составляет до 10 байт в зависимости от версии ядра. Если же учесть, что после декодирования одна команда х86 преобразовывается обычно в две-три внутренние микрокоманды, то кэша микрокоманд хватит для хранения 4—6 тыс. х86-команд.
Ядро NetBurst имеет Е-box, состоящий из трех конвейеров (два для выполнения простых микрокоманд и один для обработки сложных и редко используемых). При этом два «простых» конвейера входят в состав так называемого Rapid Execution Engine, работающего на удвоенной частоте ядра.
А-box также состоит из трех конвейеров (один обрабатывает микрокоманды загрузки целочисленных данных, один — сохранения целочисленных данных и один — загрузки/сохранения/перемещения вещественных данных). Оба адресных конвейера по работе над целочисленными данными также являются частью Rapid Execution Engine. F-box представлен одним универсальным конвейером, предназначенным для проведения расчетных операций над командами из наборов х87, ММХ и SSE. Обслуживают перечисленные конвейеры шесть планировщиков, осуществляющих выборку из кэша микрокоманд и помещающих их в соответствующие очереди. Каждый планировщик обслуживает отдельный конвейер: по одному на каждый «быстрый» целочисленный, один — на комплексный целочисленный, один — на оба целочисленных адресных, один — на вещественный адресный и один — на вещественный конвейер. Вполне естественно, что оба планировщика, обслуживающих целочисленные конвейеры, — часть Rapid Execution Engine, в отличие от обслуживающего целочисленные адресные конвейеры — он работает на частоте ядра ЦП. Для увеличения производительности целочисленных конвейеров файл их регистров работает на удвоенной частоте ядра ЦП.
Благодаря тому что оба «простых» конвейера Е-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. Его основная задача — снизить частоту обращений к оперативной памяти, что очень важно, учитывая топологию общей шины.
Рекомендуем скачать другие рефераты по теме: предмет культурологии, рефератов.
Предыдущая страница реферата | 1 2 3 4 5 6 7 8 9 10 | Следующая страница реферата