Опубликовано 16 июня 2005, 00:33

Двухъядерные процессоры Intel и AMD: теория, часть 1

Недавно два микропроцессорных гиганта – Intel и AMD – дружно выпустили свои первые двухъядерные процессоры, которые уже успели наделать много шума. Новые микропроцессоры получились не просто интересными, но представляют собой весьма многогранные продукты, тщательное исследование которых не может ограничиться одним-двумя обзорами, написанными по горячим следам. Мы постараемся рассказать об этих новых продуктах более подробно и, по возможности, с разных сторон...

Итак, недавно два микропроцессорных гиганта – Intel и AMD – дружно выпустили свои первые двухъядерные процессоры, которые уже успели наделать много шума. Эти продукты стали не просто очередными конкурирующими новинками от лидеров отрасли персональных компьютеров (как это часто бывало в последние годы), но возвестили своим появлением о начале (не побоимся громких слов) целой эры (в тактическом и даже стратегическом понимании) «настольных» вычислений, очередного витка проникновения профессиональных технологий в потребительский сегмент. Новые микропроцессоры получились не просто интересными, но представляют собой весьма многогранные продукты, тщательное исследование которых не может ограничиться одним-двумя обзорами, написанными по горячим следам (каковыми можно признать большинство статей с тестами, спешно выполненными за несколько дней после получения сэмплов). Мы постараемся рассказать об этих новых продуктах более подробно и, по возможности, с разных сторон, не ограничивая себя жесткими временными рамками. Впрочем, мы также приглашаем к обсуждению этих продуктов и наших читателей – нa нашем Форуме и в виде авторских заметок, которые, при удачном сочетании таланта и смекалки их написавших, могут быть опубликованы на нашем ресурсе. :)

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

Классификация: SMP, NUMA, кластеры…

Очевидно, что «ноги» у новых процессоров растут из многопроцессорных систем. А вариантов создания многопроцессорных систем – неисчислимое множество: даже простое перечисление всего созданного за прошедшие годы заняло бы слишком много места. Однако существует их общепринятая классификация:

1. SMP-системы (Symmetrical Multi Processor systems). В подобной системе все процессоры имеют совершенно равноправный доступ к общей оперативной памяти (см. рисунок). Работать с такими системами программистам – сущее удовольствие (если, конечно, создание многопоточного кода можно назвать «удовольствием»), поскольку не возникает никаких специфичных «особенностей», связанных с архитектурой компьютера. Но, к сожалению, создавать подобные системы крайне трудно: 2-4 процессора – практический предел для стоящих разумные деньги SMP-систем. Конечно, за пару сотен тысяч долларов можно купить системы и с большим числом процессоров… но при цене в несколько миллионов (!) долларов за SMP с 32-мя CPU становится экономически более целесообразно использовать менее дорогостоящие архитектуры.

SMP-системы

SMP-системы

2. NUMA-системы (Non-Uniform Memory Access systems). Память становится «неоднородной»: один её кусок «быстрее», другой – «медленнее», а отклика от во-о-он того «дальнего» участка вообще можно ждать «пару лет». В системе при этом образуются своеобразные «островки» со своей, быстрой «локальной» оперативной памятью, соединенные относительно медленными линиями связи. Обращения к «своей» памяти происходят быстро, к «чужой» - медленнее, причем чем «дальше» чужая память расположена, тем медленнее получается доступ к ней (см. рис.). Создавать NUMA-системы куда проще, чем SMP, а вот программы писать сложнее – без учета неоднородности памяти эффективную программу для NUMA уже не напишешь.

NUMA-системы

NUMA-системы

3. Наконец, последний тип многопроцессорных систем – кластеры. Просто берем некоторое количество «почти самостоятельных» компьютеров (узлы кластера или «ноды») и объединяем их быстродействующими линиями связи. «Общей памяти» здесь может и не быть вообще, но, в принципе, и здесь её несложно реализовать, создав «очень неоднородную» NUMA-систему. Но на практике обычно удобнее работать с кластером в «явном» виде, явно описывая в программе все пересылки данных между его узлами. То есть если для NUMA еще можно создавать программы, почти не задумываясь над тем «как эта штука работает» и откуда берутся необходимые для работы потоков данные; то при работе с кластером требуется очень четко расписывать кто, что и где делает. Это очень неудобно для программистов, и, вдобавок, накладывает существенные ограничения на применимость кластерных систем. Но зато кластер – это очень дешево.

кластеры - тип многопроцессорных систем

кластеры - тип многопроцессорных систем

Intel сегодня предпочитает создавать SMP-системы; AMD, IBM и Sun - те или иные варианты NUMA. Основная «область применения» кластеров – суперкомпьютеры.

Многоядерные процессоры

Основные вехи в истории создания двухъядерных процессоров таковы:

1999 год – анонс первого двухъядерного процессора в мире (IBM Power4 для серверов)
2001 год – начало продаж двухъядерного IBM Power4
2002 год – почти одновременно AMD и Intel объявляют о перспективах создания своих двухъядерных процессоров
2002 год – выход процессоров Intel Xeon и Intel Pentium 4 с технологией Hyper-Threading, обеспечивающей виртуальную двухпроцессорность на одном кристалле
2004 год – свой двухъядерный процессор выпустила Sun (UltraSPARC IV)
2004 год – IBM выпустила второе поколение своих двухъядерных процессоров (IBM Power5). Каждое процессорное ядро Power5 поддерживает аналог технологии Hyper-Threading
2005 год, 18 марта – Intel выпустила первый в мире двухъядерный процессор архитектуры x86
2005 год, 21 марта – AMD анонсировала полную линейку серверных двухъядерных процессоров Opteron, анонсировала десктопные двухъядерные процессоры Athlon 64 X2 и начала поставки двухъядерных Opteron 8xx
2005 год, 20-25 мая – AMD начинает поставки двухядерных Opteron 2xx
2005 год, 26 мая – Intel выпускает двухъядерные Pentium D для массовых ПК
2005 год, 31 мая – AMD начинает поставки Athlon 64 X2

Идея многоядерного процессора выглядит на первый взгляд совершенно тривиальной: просто упаковываем два-три (ну или сколько там влезет) процессора в один корпус - и компьютер получает возможность исполнять несколько программных потоков одновременно. Вроде бы бесхитростная стратегия… но конкретные её реализации в недавно вышедших настольных процессорах AMD и Intel заметно различаются. Различаются настолько, что сугубо «количественные» мелочи в конечном итоге переходят в качественные различия между процессорами этих двух компаний. Поэтому перед тем как переходить собственно к тестам современных двухъядерников, попробуем разобраться в различиях подходов этих микропроцессорных гигантов и, так сказать, «авансом» высказать некоторые предположения об их производительности.

Intel Smithfield: «классика жанра»

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

один чипсет, к которому подключается вся оперативная память, и одна процессорная шина, к которой подключены все процессоры

один чипсет, к которому подключается вся оперативная память, и одна процессорная шина, к которой подключены все процессоры

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

Smithfield

Smithfield

Intel Smithfield чип

Intel Smithfield чип

У каждого «ядра» Smithfield – свой APIC, вычислительное ядро, кэш-память второго уровня и (что особенно важно) – свой интерфейс процессорной шины (Bus I/F). Последнее обстоятельство означает, что двухъядерный процессор Intel с точки зрения любой внешней логики будет выглядеть в точности как два обыкновенных процессора (типа Intel Xeon).

ядро Smithfield

ядро Smithfield

Сегодняшнее ядро Smithfield является «монолитным» (два ядра образуют единый кристалл процессора), однако следующее поколение настольных процессоров Intel (Presler, изготавливаемый по 65-нм технологии) будет еще тривиальнее – два одинаковых кристалла одноядерных процессоров (Cedar Mill) просто будут упакованы в одном корпусе (см. рис.).

Точно таким же будет и первый серверный процессор Intel данной микроархитектуры, известный сейчас под именем Dempsey. Но если у Smithfield на каждое из ядер приходится по 1 Мбайт кэш-памяти второго уровня, то у Presler и Dempsey это будет уже по 2 Мбайт на ядро.

Между тем, позднее у Intel пойдут другие, более сложные в плане микроархитектуры варианты двухъядерных процессоров, среди которых стоит отметить Montecito (двухъядерный Itanium), Yonah (двухъядерный аналог Pentium M) и Paxville для многопроцессорных серверов на базе Intel Xeon MP. Еще в марте этого года Патрик Гелсингер объявил, что в разработке у Intel находятся аж 15 различных многоядерных CPU, и пять из них корпорация даже демонстрировала в работе.

Причем, если еще в середине 2004 года официальные лица Intel отмечали, что многоядерные процессоры – это не «очередная гонка за производительностью», поскольку программная инфраструктура была тогда еще не очень готова поддержать такие процессоры оптимизированными приложениями, то теперь многоядерность у Intel поставлена во главу угла во всех базовых направлениях деятельности, в том числе – в разработке и отладке приложений (ну разве что кроме коммуникаций и сенсорных сетей – пока ;)). И в этом нет ничего удивительного – тактовую частоту процессоров стало наращивать все труднее и труднее, и, стало быть, надо искать что-то на cмену «гонки за мегагерцами». А добавляя ядра, производительность в ряде современных приложений уже можно заметно поднять, не повышая частоты. Да и пресловутый закон Мура (удвоение числа транзисторов на кристаллах) надо бы чем-то поддержать, а многоядерность – чуть ли не самый простой путь для этого… :)

Собственно, мультиядерность в текущем понимании Intel – это один из трех возможных вариантов:

мультиядерность в текущем понимании Intel

мультиядерность в текущем понимании Intel

  1. Независимые процессорные ядра, каждое со своей кэш-памятью, расположены на одном кристалле и просто используют общую системную шину. Это - 90-нанометровый Pentium D на ядре Smithfield.

  2. Похожий вариант – когда несколько одинаковых ядер расположены на разных кристаллах, но объединены вместе с одном корпусе процессора (многочиповый процессор). Таким будет 65-нанометровое поколение процессоров семейств Pentium и Xeon на ядрах Presler и Dempsey.

  3. Наконец, ядра могут быть тесно переплетены между собой на одном кристалле и использовать некоторые общие ресурсы кристалла (скажем, шину и кэш-память). Таким является ближайший Itanium на ядре Montecito. А также мобильный Yonah, выход которого обещает наделать очень много шума.

Попутно отметим, что Montecito, изготавливаемый по 90-нм техпроцессу, будет иметь по сравнению с предшественником на 130-нм ядре Madison и ряд других преимуществ: наличие Hyper-Threading (то есть он будет виден в системе как 4 логических процессора), заметно меньшее энергопотребление, более высокую производительность (в 1,5 раза и выше), вчетверо больший размер кэш-памяти (свыше 24 Мбайт: 2x1 Мбайт L2 инструкций, 2x12 Мбайт L3 данных), 1,72 миллиарда транзисторов против 410 миллионов и другое. Выйдет этот процессор в четвертом квартале 2005 года.

Montecito

Montecito

Yonah chip

Yonah chip

Не менее интересным ожидается и первый двухъядерный мобильный процессор Yonah, который должен появиться в начале 2006 года в рамках новой мобильной платформы Napa. Yonah будет иметь два вычислительных ядра, использующих общую 2-мегабайтную кэш-память второго уровня и общий же контроллер системной шины QPB с частотой 667 МГц. Он будет выпускаться по 65-нм технологии в форм-факторах PGA 478 и BGA 479, содержать 151,6 млн. транзисторов, поддерживать технологию XD-bit и, судя по предварительной информации, поддерживать некоторые механизмы прямого взаимодействия ядер между собой.

Intel Yonah

Intel Yonah

Более того, Intel не исключают и того, что процессоры на «мобильном» ядре Yonah будут использоваться не только в определенных сегментах рынка настольных компьютеров (для этого уже разработаны и демонстрируются соответствующие мини-концепты домашнего и офисного ПК), но даже в компактных экономичных серверах.

Общие планы перехода Intel на двуядерную и многоядерную архитектуру процессоров показаны на рисунке. Первым восьмиядерным процессором Intel станет, по всей видимости, Tukwila в 2007 году, продолжающая линейку Intel Itanium.

планы перехода Intel на двуядерную и многоядерную архитектуру

планы перехода Intel на двуядерную и многоядерную архитектуру

Intel Server Roadmap

Intel Server Roadmap

Пока же мы имеем от Intel только Smithfield – простейшие «двухпроцессорные процессоры» - язык даже не поворачивается говорить о «ядрах». Всё скучно до невозможности (впрочем, далеко не всегда двигает прогресс то, что «весело» :))… И, к сожалению, несовместимо со всеми уже существующими чипсетами самой Intel, ибо чипсеты, рассчитанные на однопроцессорную шину, теперь вынуждены будут работать фактически с «дуальными» системами, а двухпроцессорным чипсетам (напомним, что Intel четко разделяет процессоры «для дуалов» и для «многопроцессорных систем») придется научиться работать с «квадами» - четверками процессоров. То есть нагрузка на системную шину существенно возрастет и прежние чипсеты на нее по-настоящему просто не рассчитаны. Кстати, в Intel пробовали запускать Smithfield на чипсетах серии i925/915, но работа такой связки не всегда была достаточно стабильной, поэтому от нее было решено официально отказаться и даже предусмотреть меры, исключающие запуск двухъядерных процессоров на платах со старыми чипсетами.

Аналогично двухъядерность «аукнулась» и в линейке Intel Xeon – отчасти именно из-за увеличения нагрузки на шину QPB, которую используют эти двухъядерные процессоры, Intel и задерживается с выпуском двухъядерных Xeon MP для четырех и более процессорных систем, предпочитая разработать для них новый 90-нм кристалл Paxville, который будет иметь общий на два процессорных ядра контроллер системной шины (чтобы снизить нагрузку на нее), хотя кэш-память по-прежнему будет своя у каждого из ядер. Двухпроцессорные же Xeon на первых порах останутся чисто «двухкристальными» Dempsey.

Paxville

Paxville

Paxville

Paxville

Платформа на Dempsey

Платформа на Dempsey

Платформа на Dempsey

Платформа на Dempsey

Платформа на Paxville

Платформа на Paxville

Платформа на Paxville

Платформа на Paxville

Впрочем, не подумайте, что мы осуждаем такой подход Intel: несмотря на все свои «подводные камни» он, в конечном счёте, позволит этой корпорации довольно быстро «завалить» прилавки дешевыми и доступными каждому двухъядерниками. Правда, по-настоящему массовыми двухъядерные процессоры станут лишь в следующем году: Intel планирует, что в 2006 году 85% серверных и более 70% клиентских компьютеров (ноутбуков и десктопов) будут иметь двухъядерные процессоры (а в 2007 году эти цифры возрастут до 100% и 90% соответственно), хотя на первых порах «двухъядерники» будут скорее процессорами «для энтузиастов» - недаром же для своей новейшей офисной платформы Lyndon (см. www.ferra.ru/online/system/25893) корпорация предпочитает использовать «старые добрые» одноядерные Pentium 4 шестисотой серии.

«Классическая» двухпроцессорная SMP-система с двухъядерными процессорами

 «Классическая» двухпроцессорная SMP-система с двухъядерными процессорами

«Классическая» двухпроцессорная SMP-система с двухъядерными процессорами

 «Классическая» двухпроцессорная SMP-система с двухъядерными процессорами

Наконец, отметим, что организация «системы в целом» у Intel столь же традиционна, сколь и устройство двухъядерного процессора. В ней есть несколько «равноправных» центральных процессоров (как правило, разделяющих общую шину); есть оперативная память и есть разной степени быстродействия периферия. Весь этот комплект объединяется в единое целое специальным коммуникационным процессором – «северным мостом» (Northbridge) чипсета. Через него проходят буквально все потоки данных, которые только зарождаются в компьютере. Образно говоря, если «процессоры» - это «головы» компьютера, то северный мост – это его сердце. Подобный «централизованный» подход, во-первых, отличается относительной простотой, а во-вторых, удобен тем, что в нём каждый компонент компьютера получается узкоспециализированным, и поддающимся модернизации независимо от других компонентов. То есть с одним и тем же Northbridge можно использовать, например, совершенно различные по своей производительности и наоборот – меняя Northbridge, можно, например, использовать с одним и тем же процессором совершенно разные типы оперативной памяти..

Немного о терминологии Внимательные читатели уже обратили внимание на «загадочные» блоки с подписями APIC, DMA, GART… что все они означают? • APIC (Advanced Programmable Interrupt Controller) – одна из важнейших «деталек» любого компьютера. Это небольшая схема, занимающаяся сбором и обработкой возникающих в компьютере прерываний. Скажем, нажал пользователь клавишу на клавиатуре – контроллер клавиатуры зафиксировал это событие, занес код нажатой клавиши в свою встроенную память – и сгенерировал прерывание – выдал по специальной линии сигнал-запрос с просьбой прервать выполнение текущей программы и обработать событие «нажата клавиша на клавиатуре». Это, так сказать, «классическая» задача Interrupt Controller-ов: они позволяют процессору не терять зря время, регулярно опрашивая каждое из устройств на предмет того, «а не случилось ли там чего-нибудь за последние 10 мс». Но задачи IC не ограничиваются только этим: помимо аппаратных существуют еще и программные прерывания (exceptions), которые генерирует не периферия, а сам процессор – в случае возникновения какой-либо нештатной ситуации. Типичные примеры – в программе встретилась непонятно какая, или просто запрещенная «простому пользователю» инструкция (#GP, General Protection Exception), произошло деление на ноль (#DE, Divide-by-Zero Error Exception), программа обратилась к несуществующему адресу в памяти (#PF, Page Fault Exception). Некоторые прерывания может генерировать сама программа (INTn), а, скажем, прерывание #BP (BreakPoint Exception) используется операционной системой для отладки программ. Реакция на каждое из прерываний задается так называемым вектором прерываний – набором адресов в памяти, описывающих «что делать дальше» процессору в случае возникновения прерывания: какие функции (обработчики прерывания) ему в этом случае необходимо выполнять. В общем, PIC-и были, есть и будут одной из ключевых компонент компьютера. Причем в случае многопроцессорных, многоядерных (и даже в случае процессоров с Hyper-Threading!) требуется обеспечить по APIC-у на каждое ядро процессора (включая каждое виртуальное ядро в Pentium 4 supporting Hyper-Threading), обрабатывающих «программные прерывания, и еще один, «синхронизирующий» APIC в чипсете, который обеспечивает обработку аппаратных прерываний и, занимается «рассылкой» программных прерываний в тех случаях, когда возникшее на одном процессоре прерывание почему-то затрагивает и остальные процессоры. • DMA (Direct Memory Access) – это такой своеобразный «альтернативный процессор», который занимается в чипсете обработкой «фоновых» задач, связанных с периферией. Скажем, если процессору требуется прочитать пару килобайт данных с жесткого диска, то ему вовсе не обязательно терпеливо ждать целую вечность (несколько миллисекунд), пока эти самые данные ему не будут предоставлены. Вместо этого он может запрограммировать DMA-контроллер, чтобы тот выполнил эту задачу за него, и переключиться, пока этот запрос выполняется, на какую-нибудь другую задачу. Штука это не столь незаменимая, как APIC, но без неё не было бы даже интерфейса Ultra ATA/33 • GART (Graphical Address Relocation Table) появился в компьютерах одновременно с шиной AGP: это небольшая схема, которая обеспечивает графическому ускорителю доступ к системной памяти процессора. Её задачи – реализация механизма виртуальной памяти для GPU, то есть отображение «линейного» адресного пространства, с которым работает ускоритель, на «реальное», произвольным образом «перетасованное» с «обычными данными». Позволяет современным 3D-ускорителям использовать не только «набортную» видеопамять, но и «основную» системную память компьютера.

AMD Toledo: SUMA, SRI и интегрированный Northbridge

Архитектура AMD K8 не просто отличается от «интеловской»: она концептуально иная, поскольку в ней нет какого-то выделенного центра. Каждый из процессоров архитектуры AMD64 является независимой и «самодостаточной» единицей, объединяющей в себе почти всю функциональность северного моста традиционных наборов системной логики. Это началось с одноядерных процессоров, а с появлением двухъядерников «обросло» новыми отличиями. Взглянем на блок-схему двухпроцессорной системы на двухъядерных AMD Opteron.

Пример двухпроцессорной двухъядерной системы на Opteron 2xx и чипсете AMD 81xx. HT обозначает HyperTransport

Пример двухпроцессорной двухъядерной системы на Opteron 2xx и чипсете AMD 81xx. HT обозначает HyperTransport

Пример двухпроцессорной двухъядерной системы на Opteron 2xx и чипсете AMD 81xx. HT обозначает HyperTransport

Пример двухпроцессорной двухъядерной системы на Opteron 2xx и чипсете AMD 81xx. HT обозначает HyperTransport

Если смотреть на этот вопрос с чисто технической стороны, то AMD попросту интегрировала практически всю функциональность северного моста в центральный процессор. На блок-схемах в «даташитах» так и обозначается: вот собственно процессорное ядро, вот HT-интерфейс, а вот здесь у него Northbridge. Но «небольшая» технологическая уловка приводит к совсем иной архитектуре компьютера – SUMA, в отличие от традиционной SMP. Перечислим кратко основные преимущества SUMA над «классической» SMP.

• Основа SUMA – последовательная шина HyperTransport (подробнее об этой шине можно почитать, например, на http://offline.computerra.ru/2004/547/34188). В серверных вариантах процессоров AMD может быть интегрировано до трех независимых линков HT, работающих на частотах до 1 ГГц (2 ГГц с учетом режима передачи данных DDR) и шириной по 16 бит (4 Гбайт/с) в каждом из направлений. Часть HT-линков используется для соединений точка-точка между процессорами, часть задействуется для подключения периферийных устройств (через внешний чипсет, разумеется, поскольку HT связывает один из процессоров с чипсетом тоже как точка-точка). Для программиста HT полностью совместима с традиционной программной моделью PCI; при этом с «логической» точки зрения весь компьютер, напрямую подключаются к единой шине HT, объединяющей все устройства, от центрального процессора и до «распоследней» PCI-карточки, вставленной в обычный PCI-слот.

• В каждый процессор интегрируется контроллер «локальной» оперативной памяти (собственно, по сравнению с одноядерными процессорами AMD64 контроллер памяти почти не изменился). На сегодняшний момент в зависимости от процессора это может быть одно- или двухканальный (у двухъядерников – пока только двухканальный) контроллер памяти DDR 200/266/333/400 (небуферизованной или регистровой, с поддержкой ECC и без неё). Обращения к памяти «чужих» процессоров происходят по шине HyperTransport, причем делается эта «переадресация» запросов абсолютно прозрачно для собственно вычислительного ядра процессора – ее осуществляет встроенный в Northbridge коммутатор (CrossBar), работающий на полной частоте процессора. Этот же самый CrossBar обеспечивает «автоматическую» маршрутизацию проходящих через процессор сообщений от периферийных устройств и других процессоров, включая обслуживание «чужих» запросов к оперативной памяти.

• Шина HT специально оптимизировалась для подобного режима работы со множеством «служебных» сообщений (которые возникают при использовании MOESI, о котором мы расскажем чуть позже) и обеспечивает крайне низкую латентность обращения в «чужую» память и высокую (до 4 Гбайт/с) пропускную способность при обращении к памяти «соседей». Шина является полнодуплексной, т.е. шина позволяет одновременно передавать данные на этой скорости в «обе стороны» (до 8 Гбайт/с суммарно). Модель памяти получается неоднородной (NUMA), но различия в скорости «своих» и «чужих» участков оперативной памяти получаются относительно небольшими.

• Чипсет сильно упрощается: всё, что от него требуется – это просто обеспечивать «мосты» (туннели) между HT и другими типами шин. Ну и, возможно, заодно обеспечивать какое-то количество интегрированных контроллеров. Особенно ярко этот принцип проявляется в серверном чипсете AMD 81xx, поскольку это просто набор из двух чипов – «переходников» на шины AGP и PCI-X и чипа, интегрирующего туннель на «обычную» PCI и стандартный набор периферийных контроллеров (IDE, USB, LPC и проч.). Впрочем, традиционные «большие» чипсеты тоже никто использовать не запрещает: к примеру, NVIDIA успешно выпускает Force3 и nForce4, объединяющие все необходимые туннели и контроллеры в единственном кристалле. Но зато можно, к примеру, установить на плату чип nForce Professional 2200 (решение «всё-в-одном» от NVIDIA для рабочих станций) и добавить к нему «в напарники» AMD 8132, который обеспечит материнской плате поддержку шины PCI-X, которой в nForce Pro 2200 нет. Или использовать несколько чипов nForce Pro 2200, чтобы обеспечить, к примеру, вдвое большее число линий PCI Express. Здесь всё совместимо со всем: любые современные чипсеты для микроархитектуры AMD64, теоретически, должны работать и с любыми процессорами AMD… и любыми «правильно» сделанными «напарниками». И, в частности, все двухъядерные процессоры AMD должны работать со всеми ранее выпущенными чипсетами для процессоров архитектуры K8.

AMD сейчас любит подчеркивать, что её процессоры «специально проектировались в расчёте на двухядерность», но, строго говоря, правильнее было бы говорить, что двухядерность очень удачно ложится на её архитектуру. Каждый процессор K8 является «системой в миниатюре», со своим «процессором» и Northbridge; а двухядерный K8 – «двухпроцессорная SMP-система в миниатюре».

Второе ядро подключается к кросс-бару через общую шину SRI; оба ядра идентичны и, фактически, являются полноценными процессорами; общего кэша L2 нет. То есть если мы, скажем, рассматриваем однопроцессорную двухядерную систему, то вся разница между реализациями AMD и Intel с «технологической» точки зрения заключается в том, что у Intel Northbridge реализован отдельным кристаллом, а у AMD он просто интегрирован в центральный процессор. Но…

…Но интеграция Northbridge в процессор и SUMA-архитектура K8 не просто обеспечивает «более быстрый контроллер оперативной памяти», - она заодно позволяет очень эффективно решать и ряд свойственных многопроцессорным системам проблем.

Продолжение читайте во второй части...