oldi

Прорыв компании AMD, или Новые процессоры Hammer

Сергей Пахомов

Процессорное ядро Hammer

64-разрядная архитектура процессора

Контроллер памяти

Контроллер HyperTransport

ClawHammer и SledgeHammer

   AMD-8151 Graphics Tunnel

   AMD-8151 Graphics Tunnel

   AMD-8131 I/O Bus Tunnel

   AMD-8111 I/O Hub

Системы с процессорами ClawHammer

Системы с процессорами SledgeHammer

 

Минувший год был очень плодотворным для компаний AMD и Intel, которые выпустили целый ряд новых моделей процессоров. Компания Intel представила модели процессоров Intel Pentium 4 на ядре Northwood и серверных процессоров Intel Xeon на ядре Prestonia, а компания AMD — модельный ряд Athlon XP на ядре Thoroughbred. Но, пожалуй, главное событие для компании AMD — это разработка нового 64-разрядного процессора под кодовым названием Hammer. В этой статье мы подробно рассмотрим новые процессоры компании AMD, основанные на ядре Hammer.

В течение прошлого года компания AMD не переставала радовать пользователей новыми моделями процессоров. Так, в марте на международной выставке CeBIT представители компании AMD объявили о выпуске трех новых процессоров, пополнивших завоевавшее заслуженную популярность семейство AMD Athlon. В числе анонсированных процессоров были: модель для настольных компьютеров — AMD Athlon XP 2100+, модель для серверов и рабочих станций — AMD Athlon MP 2000+ и модель из мобильной линейки — AMD Athlon 4 1600+. А в конце года уже были объявлены процессоры AMD Athlon XP 2700+ и Athlon XP 2800+, выполненные на ядре Thoroughbred по 0,13-микронному технологическому процессу. Но, пожалуй, самыми долгожданными были процессоры семейства Hammer, наделавшие больше всего шума.

В чем же заключается особенность этих новых процессоров, благодаря которой их называют процессорами нового, восьмого поколения? Что ж, нововведений действительно немало, причем речь идет не о банальных усовершенствованиях уже существующих процессоров, а о действительно революционных изменениях, позволяющих говорить о принципиально новой процессорной архитектуре.

Принципиальных изменений в новом процессоре можно отметить три (рис. 1):

  • новое процессорное ядро Hammer с поддержкой архитектуры x86-64 ISA;
  • интегрированный контроллер памяти;
  • интегрированный интерфейс HyperTransport.

Для того чтобы осознать все те преимущества, которые сулят перечисленные новшества, рассмотрим их более подробно.

Процессорное ядро Hammer

Процесс обработки данных процессором включает несколько характерных этапов. В простейшем случае можно выделить как минимум четыре этапа обработки команды:

  • выборка из кэша;
  • декодирование;
  • выполнение;
  • запись результатов.

Сначала инструкции и данные забираются из кэша L1, который разделен на кэш данных D-cache и кэш инструкций I-cache, — этот процесс называется выборкой. Затем выбранные из кэша инструкции декодируются в понятные для данного процессора примитивы (машинные команды) — этот процесс называется декодированием. Далее декодированные команды поступают на исполнительные блоки процессора, выполняются, а результат записывается в оперативную память.

Стадии обработки команд принято называть конвейером обработки команд, а рассмотренный нами конвейер является четырехступенчатым. Заметьте, что каждую из этих ступеней команда проходит за один процессорный такт. Соответственно для примитивного четырехступенчатого конвейера на выполнение одной команды отводится четыре такта.

Конечно, рассмотренный нами процессор является гипотетическим. В реальных процессорах конвейер обработки команд сложнее и включает большее количество ступеней. Причина увеличения длины конвейера заключается в том, что многие команды являются довольно сложными и не могут быть выполнены за один такт процессора, особенно при высоких тактовых частотах. Поэтому каждая из четырех стадий обработки команд (выборка, декодирование, выполнение и запись) может состоять из нескольких ступеней конвейера. Собственно, длина конвейера — это одна из наиболее значимых характеристик любого процессора.

Итак, разобрав схему гипотетического классического процессора, давайте перейдем к рассмотрению нового ядра Hammer (рис. 2).

Изучая структурную схему нового ядра и сравнивая ее со схемой легендарного K7 (ядра, ставшего основой процессоров AMD Athlon), можно заметить, что общих черт у них больше, чем различий. Однако, несмотря на внешнее сходство, новое ядро процессора все же претерпело существенные изменения. Итак, расскажем обо всем по порядку.

Схема работы ядра нового процессора в полной мере соответствует рассмотренной схеме классического процессора. Поток инструкций в формате x86-64 ISA (о том, что это такое, мы расскажем чуть позже) поступает в схему предпроцессора (Front End) из кэша L1. Кэш первого уровня (L1) остался точно таким же, как и в процессорах семейства Athlon XP, то есть имеет общий размер 128 Кбайт и разделен на кэш данных (D-cache) и кэш инструкций (I-cache), каждый размером по 64 Кбайт. Кэш L1 остался ассоциативным двухканальным с размером кэш-блока 64 байт. Кэш инструкций поддерживает два набора дескрипторов (тэгов): fetch port (порт выборки) и snoop (слежение).

Кэш данных поддерживает 40-битный физический и 48-битный линейный адреса и уже три типа тэгов: port A, port B и snoop. Также отметим реализацию протокола MOESI (протокол работы кэша). Кроме того, кэш данных поддерживает две 64-битные операции записи/чтения за один такт в различные банки кэша. Ну и последнее, что следует отметить, говоря о кэше данных, — это задержки (latency) по выборке. При обращении к выровненным данным (zero segment base) задержка составляет три такта, а при обращении к невыровненным данным (quadword boundary) добавляется еще один такт.

Кэш второго уровня (L2) может иметь максимальный размер до 1 Мбайт. Сам кэш является эксклюзивным по отношению к кэшу L1, 16-канальным, ассоциативным.

Из новшеств можно отметить новую схему pseudo-LRU (псевдосхема), позволяющую наполовину уменьшить количество LRU-битов (служебных битов, используемых в протоколе работы кэша). Кроме того, кэш L2 содержит указатели предсказания ветвлений (branch prediction bits) и предварительно декодированные инструкции (IC precode). Еще одним нововведением является увеличенная вдвое (по сравнению с процессором Athlon XP) скорость передачи между кэшами L2 и L1.

Рассмотрев структуру кэшей L1 и L2, вернемся к описанию логики работы процессора. Как и в большинстве современных х86-совместимых процессоров, имеющих внутреннюю RISC-архитектуру, в процессоре Hammer внешние CISC-команды декодируются во внутренние RISC-инструкции, для чего используется декодер команд.

Сначала инструкции x86 разделяются на большие (Large x86 Instruction) и маленькие (Small x86 Instruction). Большие, или сложные, инструкции поступают в программный (Microcode Engine) декодер, а маленькие, или простые, инструкции — в аппаратный (Fastpath) декодер. Оба декодера выполняют одну и ту же задачу — транслируют x86-инструкции в простейшие машинные команды (микрооперации), называемые :Ops. Сами х86-команды могут быть переменной длины, а вот длина микроопераций уже фиксированная.

Простые инструкции при декодировании представляются с помощью двух-трех :Ops-команд, и с этой задачей вполне может справиться аппаратный декодер, построенный на логических схемах. Сложные команды при декодировании могут представляться несколькими десятками и даже сотнями :Ops-инструкций. Для того чтобы их декодировать, используется специализированный программный декодер, представляющий собой своеобразный процессор. Такой декодер содержит программный код, хранящийся в MIS (Microcode Instruction Sequencer), на основе которого воспроизводится последовательность :Ops-инструкций.

Каждый из двух декодеров может обрабатывать инструкцию длиной до 16 байт и выдавать по три :Ops-инструкции за такт, поэтому в общей сложности оба декодера производят шесть декодированных инструкций за каждый такт процессора.

Попутно отметим, что декодер в ядре Hammer претерпел существенные изменения. Именно в него были добавлены две ступени конвейера по сравнению с ядром процессора Athlon XP. Кроме того, известно, что если в ядре Athlon XP команды SSE декодировались с использованием Microcode Engine, то есть считались сложными, то в ядре Hammer эти команды декодируются с использованием Fastpath, то есть являются простыми.

После прохождения декодера: Ops-инструкции (по три за каждый такт) поступают во временный буфер хранения, называемый Instruction Control Unit (ICU). Этот буфер рассчитан на хранение 72 декодированных инструкций. Впрочем, хранение — это не единственное предназначение ICU, а его главная задача заключается в диспетчеризации трех инструкций за такт по функциональным устройствам. То есть ICU распределяет инструкции в зависимости от их назначения и посылает инструкции для работы с целыми числами в целочисленный планировщик (Int Scheduler), а инструкции для работы с вещественными числами — в планировщик для работы с вещественными числами (FPU Scheduler).

Планировщик для работы с вещественными числами (FPU Scheduler) рассчитан на 36 инструкций (как и в процессоре Athlon XP), и его основная задача заключается в том, чтобы распределять команды по исполнительным блокам по мере их готовности. Просматривая все 36 поступающих инструкций, FPU-планировщик переупорядочивает следование команд, строя спекулятивные предположения о дальнейшем ходе программы, чтобы создать несколько полностью независимых друг от друга очередей инструкций, которые можно выполнять параллельно. В процессоре Hammer имеется три исполнительных блока для работы с вещественными числами (FADD, FMUL, FMISC), поэтому FPU-планировщик должен формировать по три инструкции за такт, направляя их на исполнительные блоки.

Все целочисленные инструкции направляются в планировщик инструкций для работы с целыми числами (Int Scheduler), образованный тремя станциями резервирования (RES), каждая из которых рассчитана на восемь инструкций. Все три станции, таким образом, образуют планировщик на 24 инструкции (емкость аналогичного планировщика в процессоре Athlon XP составляла 18 инструкций). Этот планировщик выполняет те же функции, что и FPU-планировщик. Различие заключается в том, что в процессоре имеется семь функциональных исполнительных блоков для работы с целыми числами (три устройства ALU, три устройства AGU и одно устройство MULT).

После того как все инструкции прошли диспетчеризацию в соответствующих планировщиках, они могут быть выполнены непосредственно в соответствующих исполнительных устройствах.

Исполнительные устройства также претерпели некоторые изменения по сравнению с процессором Athlon XP. Как уже отмечалось, для работы с вещественными числами реализовано три функциональных устройства FPU, каждое из которых представляет собой 17-ступенчатый конвейер (как и в процессоре Athlon XP), то есть для работы с вещественными числами предусмотрено три разделенных конвейера. Подобная реализация блока FPU позволяет выполнять до трех вещественных операций за такт, причем такая производительность является рекордной для х86-совместимых процессоров.

Блок операций с целыми числами также полностью конвейеризирован, но по сравнению с процессором Athlon XP длина конвейера увеличена с 10 до 12 ступеней. Блок состоит из трех распараллеленных частей, что в итоге позволяет выполнять три целочисленные операции за один такт (кроме умножения). Для умножения требуется три такта в случае 32-битных чисел и пять тактов в случае 64-битных.

Говоря об архитектурных особенностях процессора Hammer, нельзя не упомянуть об изменениях, коснувшихся кэша TLB (Translation Look-aside Buffers). Кэш TLB — это специальный кэш процессора, хранящий карту декодированных адресов инструкций и данных, что позволяет значительно сократить время доступа к ним. Этот кэш предназначен для уменьшения времени преобразования виртуального адреса данных или инструкций в физический. Дело в том, что процессор, в силу своих особенностей, не может хранить и использовать физические адреса, а пользуется виртуальной адресацией. Преобразование виртуального адреса в физический занимает приблизительно три такта процессора. TLB-кэш хранит результаты предыдущих преобразований, благодаря чему преобразование адреса данных, использовавшихся ранее, возможно осуществлять за один такт.

Процессоры Hammer имеют двухуровневый TLB (L1 TLB и L2 TLB), также разделяющийся на буфер данных и буфер инструкций. L1 TLB кэширует 40 адресов инструкций и 40 адресов данных. Этот кэш является полностью ассоциативным и поддерживает страницы емкостью как 4 К, так и 2/4 M.

Кэш L2 TLB является четырехканальным ассоциативным кэшем с поддержкой страниц, емкостью 4 К. Этот кэш рассчитан на 512 записей, что в два раза больше, чем в процессоре Athlon XP.

В начало В начало

64-разрядная архитектура процессора

Как уже отмечалось, одним из главных новшеств процессора Hammer является 64-разрядная архитектура x86-64 ISA. Наверное, вы слышали о так называемых 64-разрядных процессорах, ярким примером которых является процессор Intel Itanium. Впрочем, между 64-разрядными архитектурами процессора Itanium (IA-64) и процессора Hammer мало общего. По сути процессор Itanium — не x86-совместимый процессор, тогда как Hammer, напротив, таковым является, поэтому в названии его архитектуры есть обозначение x86-64. В отличие от 64-битной архитектуры IA-64, примененной в процессорах Intel Itanium, x86-64 базируется на существующей архитектуре x86-32.

Прежде всего попытаемся ответить на вопрос: зачем вообще нужны 64-разрядные процессоры и имеют ли они преимущество перед 32-разрядными? Давайте вспомним, что 32-разрядная адресация памяти позволяет адресовать только 4 Гбайт памяти. Конечно, для пользовательских приложений на данный момент такого объема вполне хватает, но… это сейчас. А завтра все может измениться. В серверных приложениях 4 Гбайт памяти уже сегодня может оказаться явно недостаточно. Правда, современные серверные процессоры и чипсеты с х86-32-архитектурой позволяют адресовать более чем 4 Гбайт памяти (типичным значением является 12 Гбайт), но достигается это не за счет плоской прямой адресации, а за счет эмуляции 36-битной адресации (которая позволяет адресовать до 64 Гбайт памяти). Впрочем, такая адресация имеет и свои минусы. Во-первых, это отражается на производительности, а во-вторых, при такой эмуляции максимальная память, которую может использовать один поток приложения, все равно не превышает 4 Гбайт.

64-битная адресация, используемая в процессорах Hammer, является полностью совместимой с архитектурой x86-32, то есть на таком процессоре вполне можно использовать и 32-разрядные приложения — просто при этом возможности процессора задействуются не в полной мере, но в любом случае дополнительный запас адресации не повредит. Последнее обстоятельство, то есть возможность использования обычных 32-разрядных приложений, в этом плане особенно важно. Для таких процессоров не потребуется специализированных операционных систем и приложений, и нет нужды ждать, пока производители ПО перекомпилируют свои приложения.

Для реализации 64-разрядности в процессор Hammer добавлено несколько новых регистров, а существующие регистры соответственно расширены с 32 до 64 бит. Так, к восьми регистрам общего назначения добавлено еще восемь 64-битных регистров, использование которых возможно только при соответствующей перекомпиляции программного кода. Кроме того, в блок SSE также добавлено восемь новых регистров, что обеспечивает поддержку процессорами Hammer потока инструкций SSE2.

Расширение 32-битных регистров до 64-битных осуществляется в точности так же, как в свое время (с момента появления процессора i386) 16-битные регистры были расширены до 32-битных.

Для реализации возможности работы как с 32-битными, так и с 64-битными приложениями процессор поддерживает два режима работы: Long Mode и Legacy Mode. В режиме Long Mode используется 64-битный режим работы, причем здесь также предусмотрено два режима: 64-битный и Compability mode (совместимый). 64-битный режим работы — это, собственно, истинный 64-битный режим, задействующий все дополнительные регистры процессора и 64-битные расширенные регистры. Для работы в этом режиме требуется соответствующая перекомпиляция ПО.

В режиме Compability mode дополнительные регистры не задействуются, а в регистрах общего назначения используется только 32-битная часть. Единственное, что в данном случае напоминает о 64-битной архитектуре, — это использование 64-разрядной адресации и 64-битной операционной системы. В данном режиме не требуется перекомпиляции приложений для их нормальной работы.

В режиме Legacy Mode используется 32-разрядная операционная система, то есть 32-разрядная адресация. Кроме того, не задействуются дополнительные регистры, а в регистрах общего назначения используются только первые 32 бит. Таким образом, Legacy Mode — это традиционный 32-битный режим работы процессора.

Описав особенности ядра процессора, можно перейти к рассмотрению других элементов архитектуры процессора.

В начало В начало

Контроллер памяти

Контроллер памяти в процессорах Hammer интегрирован в сам процессор. Традиционно он располагается в северном мосте чипсета на материнской плате. Собственно, контроллер памяти — это основной функциональный блок северного моста. Недаром в чипсетах Intel этот мост называют MCH (Memory Controller Hub).

Преимущество такого решения очевидно — контроллер памяти, по заявлениям компании AMD, будет работать на частоте процессора, а следовательно, обладать низкой латентностью, которая будет тем меньше, чем больше частота, на которой работает процессор. Правда, здесь возникает законный вопрос: если тактовые частоты процессора значительно выше возможных тактовых частот памяти, как же тогда контроллер памяти может работать на частоте процессора? По всей видимости, речь идет об асинхронной работе памяти и процессора, то есть когда между частотой процессора и частотой памяти вводятся коэффициенты соотношения.

Контроллер памяти процессора Hammer поддерживает DDR-память PC1600/2100/2700 (DDR200/ DDR266/ DDR333) и имеет ширину шины 64 или 128 бит. В последнем случае речь идет о двухканальной памяти, которая реализуется в серверных процессорах.

Сам по себе контроллер памяти включает два функциональных блока: контроллер памяти MCT и контроллер DRAM DCT. DCT — это физический интерфейс, зависящий от конкретного типа используемой памяти. MCT — интерфейс согласования ядра процессора с DCT, не зависящий от типа используемой памяти.

В начало В начало

Контроллер HyperTransport

Революционным новшеством процессора Hammer является поддержка шины HyperTransport — универсальной шины межчипового соединения.

В ее основу положено две концепции: универсальность и масштабируемость. Универсальность шины HyperTransport заключается в том, что она позволяет связывать между собой не только процессоры, но и другие компоненты материнской платы, о чем мы еще расскажем. Масштабируемость шины состоит в том, что она дает возможность наращивать пропускную способность в зависимости от конкретных нужд пользователя. После общих замечаний, касающихся новой архитектуры ввода-вывода, давайте ознакомимся с ней более подробно.

Устройства, связываемые по шине HyperTransport, соединяются по принципу «точка-точка» (peer-to-peer), что подразумевает возможность связывания в цепочку множества устройств без использования специализированных коммутаторов. Передача и прием данных могут происходить в асинхронном режиме, причем передача данных организована в виде пакетов длиной до 64 байт.

Масштабируемость шины HyperTransport обеспечивается посредством магистрали шириной 2, 4, 8, 16 и 32 бит в каждом направлении. Кроме того, предусматривается возможность работы на различных тактовых частотах (от 200 до 800 МГц). При этом передача данных происходит по обоим фронтам тактового импульса. Таким образом, пропускная способность шины HyperTransport меняется от 200 Мбит/с при использовании частоты 200 МГц и двух двухбитных каналов до 12,8 Гбит/с при использовании тактовой частоты 800 МГц и двух 32-битных каналов.

В начало В начало

ClawHammer и SledgeHammer

Рассмотрев архитектурные особенности новых процессоров под общим кодовым названием Hammer, остановимся на модификациях этих процессоров. Существует два основных варианта процессоров, несколько различающихся своими ядрами. Первый вариант — AMD Athlon 64 (кодовое название ClawHammer) — предназначен для рабочих станций, второй вариант процессора — AMD Opteron (кодовое название SledgeHammer) — для построения многопроцессорных серверных систем. Различия между процессорами ClawHammer и SledgeHammer заключаются прежде всего в интегрированном интерфейсе HyperTransport. Поскольку шина HyperTransport предназначена и для межпроцессорного соединения, то понятно, что в серверном варианте процессора SledgeHammer должно быть интегрировано несколько интерфейсов шины HyperTransport. Так, в настоящей версии процессора SledgeHammer реализовано три 16-битных интерфейса шины HyperTransport с пропускной способностью 3,2 Гбайт/с в одном направлении каждая.

В процессоре ClawHammer интегрировано только два интерфейса шины HyperTransport, каждый их которых является 8-битным. Это позволяет создавать соответственно два 8-битных соединения с пропускной способностью 1,6 Гбайт/с в одном направлении или одно 16-битное соединение с пропускной способностью 3,2 Гбайт/с в одну сторону.

Еще одно существенное различие заключается в интегрированном контроллере памяти. Для серверного варианта процессора контроллер является двухканальным, а для процессора ClawHammer — одноканальным.

Последнее различие — это размер кэша L2. Для более мощного серверного процессора он составляет 1 Мбайт, а для десктопного процессора может варьироваться от 256 Мбайт до 1 Гбайт.

Поскольку наличие дополнительных интерфейсов требует и наличия соответствующих контактов, то вполне естественно, что разъемы для процессоров SledgeHammer и ClawHammer совершенно разные. Разъем для процессора SledgeHammer получил название Socket 940, а для процессора ClawHammer — Socket 754.

Различия между процессорами SledgeHammer и ClawHammer отражены в таблице.

В начало В начало

Чипсет

Итак, мы рассмотрели процессоры для построения рабочих станций и серверов. Но одних только процессоров, как известно, недостаточно. Новые по архитектуре процессоры всегда сопровождаются и появлением новых чипсетов. Не стали исключением и процессоры семейства Hammer. Правда, о классическом представлении о чипсете здесь можно сразу забыть. Действительно, на протяжении длительного времени чипсеты ассоциировались с северным и южным мостами и, если речь идет о серверных чипсетах, с дополнительными мостами ввода-вывода. Северный мост в классическом понимании объединял в себе контроллер памяти, контроллер AGP-шины и контроллеры процессорной шины и шины согласования с южным мостом. Южный мост чипсета — это мост ввода-вывода. Однако в случае процессоров Hammer все в корне меняется. Дело в том, что, как уже не раз отмечалось, контроллер памяти интегрирован в самом процессоре, а следовательно, часть классических функций северного моста воплощены в процессоре. Поэтому чипсету остается только реализовать контроллеры ввода-вывода, контроллеры PCI и AGP.

Компания AMD разработала требуемый набор из трех микросхем, называемых туннелями, под общим наименованием AMD-8000. Его уникальность заключается в том, что с помощью комбинаций этих трех микросхем можно создавать как чипсеты для low-end, так и для высокопроизводительных рабочих станций и даже для многопроцессорных систем (вот уж где действительно проявляется универсальность шины HyperTransport!). Набор микросхем AMD-8000 можно сравнить с набором кубиков, из которых можно создавать любые по сложности решения. Такой подход воплощает в себе как универсальность, так и масштабируемость.

Ну а теперь подробнее ознакомимся с упомянутыми тремя туннелями набора AMD-8000.

В начало В начало

AMD-8151 Graphics Tunnel

Как следует из названия, AMD-8151 Graphics Tunnel (рис. 3) представляет собой контроллер AGP 8х с пропускной способностью 2,1 Гбайт/с. Кроме того, данный туннель имеет два встроенных интерфейса HyperTransport: Link A (входной) и Link B (выходной). Первый интерфейс (Link A) является 16-битным с полосой пропускания 6,4 Гбайт/с (по 3,2 Гбайт/с в каждом направлении).

Второй интерфейс (Link B) — уже 8-битный с полосой пропускания 1,6 Гбайт/с (по 0,8 Гбайт/с в каждом направлении).

В начало В начало

AMD-8131 I/O Bus Tunnel

Следующий компонент набора туннелей — это контроллер шины PCI-X AMD-8131 I/O Bus Tunnel (рис. 4). Понятно, что такой туннель предназначен для использования в серверных системах, так как возможности PCI-X в десктопных компьютерах пока не реализуются.

Туннель обладает двумя интерфейсами HyperTransport (Link A и Link B), причем, как и в туннеле AMD-8151 Graphics Tunnel, первый интерфейс (Link A) является 16-битным с полосой пропускания 6,4 Гбайт/с, а второй интерфейс (Link B) — 8-битным с полосой пропускания 1,6 Гбайт/с.

Сам контроллер PCI-X поддерживает две независимые PCI-X-шины с возможностью установки до пяти устройств на одну шину.

В начало В начало

AMD-8111 I/O Hub

Последний туннель в нашем строительном наборе — это контроллер ввода-вывода AMD-8111 I/O Hub (рис. 5), без которого вообще невозможно построить систему — он должен обязательно присутствовать на плате. Собственно, в минимально возможной конфигурации плата может содержать лишь один туннель AMD-8111 I/O Hub (при этом предполагается, что система будет без AGP-слота).

Туннель AMD-8111 I/O Hub обладает одним-единственным 8-битным интерфейсом HyperTransport с пропускной способностью 800 Мбайт/с и содержит все необходимые контроллеры ввода-вывода, как классический южный мост. Так, AMD-8111 I/O Hub поддерживает до восьми устройств PCI (32 бит/33 МГц), шесть портов USB 2.0, два канала IDE с поддержкой ATA 33/66/100/133, сетевой адаптер 10/100 Мбит/с, soft-модем AC’97, шестиканальное аудио и, конечно же, LPC-шину.

Наличие лишь одного интерфейса HyperTransport объясняется в данном случае довольно просто: предполагается, что туннель всегда будет находиться в конце HyperTransport-цепочки.

В начало В начало

Системы с процессорами ClawHammer

Как уже отмечалось, набор туннелей AMD-8000 позволяет создавать чипсеты любой заданной степени сложности. К примеру, чипсет, предназначенный для применения в типичном ПК на базе процессора AMD ClawHammer, будет состоять только из графического туннеля AMD-8151 Graphics Tunnel и туннеля AMD-8111 I/O Hub (рис. 6). Получаемая система выглядит вполне сбалансированно, так как пропускная способность шины HyperTransport, соединяющей процессор с туннелем AMD-8151 Graphics Tunnel, даже немного больше, чем суммарная пропускная способность шины AGP8х и шины HyperTransport, соединяющей туннели AMD-8151 Graphics Tunnel и AMD-8111 I/O Hub.

В начало В начало

Системы с процессорами SledgeHammer

Процессоры SledgeHammer с тройным интерфейсом HyperTransport и двухканальным контроллером памяти позволяют создавать уже значительно более производительные многопроцессорные системы. Даже при использовании всего двух процессоров для построения серверов среднего уровня налицо значительно большие возможности по масштабированию сервера. Пример такой конфигурации показан на рис. 7. Кроме возможности использования двухканальной памяти, наличие трех 16-битных интерфейсов HyperTransport позволяет связывать два процессора друг с другом по высокоскоростной шине с пропускной способностью 6,4 Гбайт/с. Помимо этого, второй 16-битный интерфейс HyperTransport на одном из процессоров используется для связи с туннелем AMD-8131 I/O Bus Tunnel, на котором (в противоположность рассмотренному ранее случаю) уже разведены две независимые шины PCI-X. Одна из этих шин является 64-битной, 133-мегагерцевой, а вторая — 64-битной, 66-мегагерцевой. Ко второй шине с пропускной способностью 528 Мбайт/с (4224 Мбит/с) можно подключить два гигабитных сетевых адаптера и адаптер SCSI Ultra320.

Кроме того, к туннелю AMD-8131 I/O Bus Tunnel подключен по 8-битной шине HyperTransport туннель ввода-вывода AMD-8111 I/O Hub, поскольку пропускной способности 16-битной шины HyperTransport, связывающей процессор с туннелем AMD-8131 I/O Bus Tunnel, вполне хватает, чтобы удовлетворить потребности и двух PCI-X шин, и

8-битной шины HyperTranspоrt, связывающей туннель AMD-8131 I/O Bus Tunnel с туннелем AMD-8111 I/O Hub.

Четырехпроцессорный сервер на базе процессоров SledgeHammer получается простым добавлением еще двух процессоров в предыдущую схему с использованием незадействованных пока интерфейсов HyperTransport на процессорах. Пример такой системы показан на рис. 8. Все четыре процессора связываются по кольцевой схеме с помощью 16-битной шины HyperTransport. Для этого необходимо задействовать по два интерфейса HyperTransport на каждом из процессоров. Оставшийся интерфейс HuperTransport используется только на двух процессорах для подключения туннелей AMD-8131 I/O Bus Tunnel и AMD-8111 I/O Hub. При этом к одному процессору можно подключить последовательно два туннеля AMD-8131 I/O Bus Tunnel, а к другому — туннель AMD-8111 I/O Hub. Учитывая, что туннель AMD-8131 I/O Bus Tunnel имеет два интерфейса HyperTransport (Link A и Link B), один из которых (для соединения с процессором) является 16-битным, а второй — 8-битным, понятно, что второй последовательный туннель AMD-8131 I/O Bus Tunnel можно подсоединить только по 8-битному интерфейсу с пропускной способностью 1,6 Гбайт/с в одном направлении. Несмотря на то что туннель позволяет развести две независимые шины PCI-X (64 бит/133 МГц), их полноценное использование будет несколько «притормаживаться» шиной HyperTransport.

Таким образом, универсальный набор микросхем AMD8000 и процессор SledgeHammer действительно позволяют создавать любые по сложности решения и предоставляют прекрасные возможности по масштабированию системы.

Продолжая наши рассуждения, нетрудно догадаться, как может выглядеть восьмипроцессорная конфигурация сервера. Впрочем, попытка объединить восемь процессоров приведет нас к двум альтернативным схемам, показанным на рис. 9. Остается лишь выяснить, какая из них предпочтительнее.

Для того чтобы ответить на этот вопрос, давайте вспомним, что в традиционных многопроцессорных системах вся оперативная память разделяется между всеми процессорами. В процессорах Hammer контроллер памяти интегрирован в сам процессор, благодаря чему каждый процессор имеет свою собственную память. Однако и в данной схеме вся память образует единое адресное пространство с плоской адресацией и разделяется между всеми процессорами системы. Таким образом, если одному из процессоров требуется получить доступ к данным, которые находятся в памяти, присоединенной к другому процессору, то он посылает соответствующий запрос контроллеру памяти другого процессора (точнее, всем окружающим его процессорам) и получает необходимые данные. В такой схеме передачи данных неизбежно возникают задержки, причем величина этих задержек пропорциональна количеству процессоров, через которые передаются запросы и требуемые данные.

Рассмотрим простейший пример. Пусть процессору 1 (рис. 10) требуется обратиться к памяти процессора 8. Для этого процессор 1 подает соответствующие запросы на процессоры 2 и 5, каждый из которых транслирует запросы на соседние процессоры и так далее, пока не будет достигнут контроллер памяти нужного процессора. Данная схема отчасти напоминает принцип работы маршрутизатора, а потому, по аналогии с маршрутизаторами, количество пересылок запросов можно назвать хопами. Несложно просчитать, что в рассмотренной схеме минимальное количество хопов, требуемых для передачи запроса от первого процессора к восьмому, равно четырем. Поскольку первый и восьмой процессоры наиболее удалены друг от друга, четыре хопа — это максимальное количество ретрансляций запросов в данной системе, то есть для любой другой пары процессоров количество требуемых хопов будет не выше четырех. На рис. 10 показано, сколько хопов требуется для передачи запроса от первого процессора ко всем остальным.

Понятно, что чем больше хопов происходит при передаче запроса и данных, тем значительнее будет задержка, что не может не отражаться негативно на производительности системы. Поэтому желательно, чтобы количество хопов при передаче запросов было как можно меньше.

Теперь давайте обратимся ко второй возможной схеме соединения восьми процессоров (рис. 11).

Нетрудно заметить, что в данном случае при обращении первого процессора к контроллеру памяти восьмого процессора происходит всего три хопа, то есть на один меньше, чем в предыдущей схеме. Аналогично уменьшается и количество хопов при обращении первого процессора к контроллеру памяти шестого процессора (теперь оно равно двум хопам вместо трех). И поскольку в данной схеме количество хопов при обмене данными между процессорами уменьшается, она является более выгодной в плане возникающих задержек при обращении к памяти. Именно поэтому данная система соединения процессоров используется в восьмипроцессорных конфигурациях серверов.

В заключение отметим, что, хотя сами процессоры Athlon 64 и Opteron пока не доступны, прототипы систем, в том числе и многопроцессорных (рис. 12), уже существуют и, по слухам, вполне оправдывают надежды, которые на них возлагались.

КомпьютерПресс 2'2003