Ядра — чистый изумруд
АрхивПожалуй, после анонса первых двухъядерных процессоров для «самой популярной в мире» платформы x86 можно смело утверждать, что эпоха многоядерных процессоров действительно началась.
Первый в мире двухъядерный CPU — серверный RISC-процессор IBM Power 4 — был анонсирован еще в лохматом 1999 году. Через два года начались его продажи.
В 2002-м о перспективах использования двух ядер в своих процессорах архитектуры K8 заговорила AMD. Практически одновременно с аналогичным заявлением выступила Intel.
В конце того же года вышли первые десктопные Intel Pentium 4, поддерживающие «виртуальную» двухъядерность — технологию Hyper-Threading.
В 2004 году IBM выпустила уже второе поколение своих двухъядерных процессоров — IBM Power 5. Каждое из ядер Power 5 поддерживает одновременное выполнение двух программных потоков (то есть снабжено аналогом Hyper-Threading).
18 апреля текущего года Intel выпустила первый в мире настольный двухъядерный процессор Pentium Extreme Edition 840.
Спустя три дня AMD выпустила первые в мире двухъядерные серверные процессоры архитектуры x86 — линейку Opteron 865/870/875.
Пожалуй, после анонса первых двухъядерных процессоров для «самой популярной в мире» платформы x86 можно смело утверждать, что эпоха многоядерных процессоров действительно началась. И если верить прогнозам Intel (а эта корпорация редко ошибается), в 2006 году двухъядерной будет уже большая часть выпускаемых x86-процессоров.
Двое на одого
Что вообще такое двухъядерный процессор? В первом приближении ответ будет очень простой: это просто два процессора, тем или иным образом объединенных в общий корпус и разделяющих общие шины ввода-вывода. На практике, правда, как мы вскоре убедимся, между терминами «процессор» и «процессорное ядро» могут пролегать весьма глубокие различия и двухъядерный процессор — это далеко не всегда просто объединение двух процессоров в одном. Однако с точки зрения программного обеспечения дела обстоят следующим образом: в компьютере с двухъядерником система увидит два независимых процессора на месте одного. Соответственно, двухъядерный процессор способен одновременно выполнять два независимых потока инструкций (в отличие от обычных процессоров, «одновременное» выполнение задач на которых на самом деле происходит строго по очереди). Все это очень напоминает уже ставшую привычной технологию Intel Hyper-Threading. Только в последней два «виртуальных» процессора почти во всем разделяют между собой ресурсы одного «физического» процессора. То есть кэши, конвейер, исполнительные устройства — вообще практически все ресурсы у этих двух процессоров общие и если один из выполняющихся потоков их уже занял, то второй будет вынужден ожидать их освобождения. То есть, очень грубо говоря, мы «разрезаем» процессор на две половинки и каждую из них называем процессором. И получаем таким образом «два процессора по цене одного». По сути, процессор с Hyper-Threading работает точно так же, как любая многозадачная операционная система, обеспечивающая каждому из работающих в ней процессов свой «виртуальный» компьютер и занимающаяся планированием времени — какому процессу и когда дать поработать на «реальном» оборудовании. Только происходит это на куда более низком «аппаратном» уровне. А вот почему при этом две «половинки» оказываются быстрее «целого» процессора — тема для отдельной немаленькой статьи по архитектуре NetBurst, ее узким местам и способам эти узкие места обойти. Поэтому просто скажем, что эти два потока, как правило, позволяют эффективнее загрузить исполнительные устройства процессора. И заодно несколько облегчить операционной системе имитацию множества независимых компьютеров на одном-единственном реально существующем процессоре.
Полноценный двухъядерный процессор — это совсем другое дело, и система определяет действительно два «честных» процессора, а не две «половинки». И прирост производительности от задействования обоих ядер составляет уже не 10–20 процентов, типичных для Pentium 4 (В архитектуре NetBurst исполнительные устройства, как правило, используются крайне неэффективно, не достигая зачастую даже половины теоретически возможной производительности. А вот энергия расходуется независимо от того, вхолостую работают ИУ или делают что-то полезное, — отсюда и чрезвычайно высокое тепловыделение. В Athlon 64, например, тоже можно было бы внедрить аналог Hyper-Threading — но при этом мы едва ли получили бы сколько-либо существенное увеличение производительности: эта архитектура и так эффективно и равномерно обеспечивает свои ИУ работой, обеспечивая высокую производительность при куда меньшем тепловыделении), а все 80, если не 100. Выражаясь более строго, двухъядерный процессор — SMP(SMP = Symmetrical MultiProcessing, симметричная многопроцессорность. Термин, обозначающий систему, в которой энное количество процессоров на равных основаниях разделяют системные ресурсы, в первую очередь оперативную память)-система в миниатюре. Концептуально она ничем не отличается от самой обыкновенной двухпроцессорной системы, в которой установлено два независимых процессора (если это, конечно, не SUMA-система на базе Opteron). Просто те два процессора объединяются в одном корпусе — и ничего более. Перед нами — все преимущества двухпроцессорных систем, причем без необходимости использования сложных и дорогих двухпроцессорных материнских плат.
Какие плюсы дает SMP? В приложениях, которые поддерживают многопроцессорность, можно ожидать прироста производительности вплоть до двукратного. То есть можно ожидать огромного прироста производительности в большинстве профессиональных приложений, почти всех пакетов по созданию цифрового контента (графика, видео, трехмерное моделирование), большинстве «оптимизированных для Hyper-Threading» приложениях — одним словом, во всем том, что хорошо работает на Pentium 4. А вот в старом неоптимизированном коде или в труднораспараллеливаемых задачах (в первую очередь — в играх) ожидать заметного прироста производительности не приходится.
Есть у SMP и минусы. Во-первых, «разделяемые» ресурсы даже у двухъядерных процессоров все-таки есть — как минимум, общая оперативная память. То есть два процессора в SMP вынуждены довольствоваться «половинным пайком» оперативной памяти и достигнуть заветной двукратной производительности в приложениях, активно ее задействующих, очень непросто. «Проблема масштабируемости» является настолько серьезной, что зачастую производительность программы в зависимости от числа процессоров получается примерно такая: 100%, 170%, 220% (на одном, двух и четырех процессорах соответственно). Проще говоря, если процессор раньше работал 50% времени, а остальное время простаивал, ожидая поступления данных из оперативной памяти, то теперь он будет работать 33% времени, ждать данные 67% времени, а общая производительность программы от использования двух процессоров увеличится всего на треть. А ведь мы еще не рассматривали проблемы распараллеливания программного кода — реальные цифры будут даже еще хуже. К счастью, «настолько плохо» все бывает довольно редко — как правило, программы оптимизируются так, чтобы минимизировать число обращений к оперативной памяти (в примере выше производительность программы из-за неоптимального использования кэш-памяти составляет менее 50% от максимально возможной).
Но здесь возникает еще одна проблема. Раз с оперативной памятью работают сразу два процессора, то необходимо как-то избегать между ними конфликтов, то есть проводить арбитраж системной шины, на которой эти процессоры сидят. Причем просто арбитража мало. Ведь если процессор «А», например, записал в память по адресу 0xABCDEF00 какую-нибудь строку данных, а эта строка уже находилась в кэш-памяти процессора «В», то получится, что «В» дезинформирован. И поэтому приходится специально оповещать «B» о том, что такие-то данные в оперативной памяти изменились(Точнее говоря, процессор информирует APIC, а уж APIC рассылает сообщения остальным процессорам). Проще говоря, один процессор в SMP-системе вынужден волей-неволей делать дополнительную работу, которая абсолютно не нужна процессору-одиночке. Вся эта дополнительная работа может снижать эффективность и пропускную способность как процессорной шины, так кэшей всех уровней.
Наконец, есть еще ряд проблем, свойственных не SMP-системам вообще, а конкретно двухъядерным процессорам. Во-первых, возросшее энергопотребление. Два процессора потребляют вдвое больше тока и рассеивают вдвое больше тепла. А значит, нужны очень мощные схемы питания (VRM) и очень эффективные кулеры. Хорошо еще, что площадь, с которой тепло необходимо снимать, тоже увеличивается вдвое. Но это не все: поскольку двухъядерный процессор примерно вдвое больше и по размерам кристалла, то себестоимость его производства гораздо выше. А ведь процент брака при производстве полупроводниковых кристаллов растет квадратично от площади кристалла — соответственно производство одного двухъядерника обходится заметно дороже, нежели производство двух одноядерных процессоров. То есть на современном этапе развития технологий производить двухъядерные процессоры сравнительно невыгодно: их площадь получается примерно вдвое больше оптимальной.
Intel Smithfield
Поскольку Intel выпустила двухъядерный процессор первой, то и рассмотрение доступных dual-core начнем с нее. Встречайте первый (и пока единственный) десктопный двухъядерный процессор — Intel Pentium Extreme Edition 840. Нет, я не забыл вписать в название цифирьку «4» — «восьмисотая» двухъядерная серия отныне выделена в новый брэнд. Та же судьба ожидает и «обычные» массовые двухъядерные Pentium 4 — они получат название Pentium D и номера из «восьмисотой» серии.
С «технологической» точки зрения в новом процессоре нет ничего интригующего. Ядро Smithfield — это два обычных Prescott степпинга E0 в одном кристалле, снабженные минимумом согласующей логики. Разумеется, в ядре включили всю необходимую логику для поддержки SMP (Можно сказать, что основой для Smithfield послужило серверное ядро Nocona. Но различия этих ядер так невелики, что для простоты будем говорить именно о двухъядерном Prescott). Арбитражем шины по-прежнему ведает чипсет; APIC тоже никуда переносить не стали. Поддерживаются 64-разрядный режим работы EM64T, энергосберегающая технология EIST (www.offline.computerra.ru/2005/586/38496) и технология защиты от вирусов XD-bit; каждое ядро поддерживает Hyper-Threading (таким образом, 840XE способен выполнять четыре программных потока одновременно). Поддерживаются и более привычные расширения x86 (SSE/SSE2/SSE3). Кэш-память второго уровня — стандартный мегабайт на каждое из ядер. Это в два раза меньше, чем у новых Pentium 4 шестисотой серии, но, по-видимому, интеграция 4 Мбайт кэш-памяти L2 на один кристалл себя не оправдала. Тактовая частота — 3,2 ГГц, на 600 МГц (19%) меньше, чем у самого быстрого Pentium 4. Системная шина — стандартные 800 МГц (Использовать шину 1066 МГц невозможно конструктивно: Prescott просто не поддерживает множители меньше 14; а с множителем 14x и шиной 1066 МГц тактовая частота процессора будет составлять уже 3,73 ГГц — гораздо больше, чем текущие 3,2 ГГц). В отличие от серийных Pentium 4 у Extreme Edition разблокирован коэффициент умножения процессора. Площадь кристалла Smithfield — 203 кв. мм; общее число транзисторов — 230 миллионов. Потребляемый ток — до 125 А; напряжение питания — 1,3 В.
Изучение технических характеристик двухъядерных Pentium вызывает у меня чувство глубочайшего уважения к технологам Intel. Ведь одноядерные Pentium 4 с аналогичными характеристиками потребляют 78 ампер и рассеивают 84 ватта. Казалось бы, объединение на одной подложке двух ядер не может ничего принципиально изменить в этом вопросе — TDP всех этих новых процессоров оценивался поначалу специалистами в 160-175 Вт, а область применимости — корпусами BTX. Однако технологи, похоже, сумели совершить маленькое чудо(Скорее всего, «чудо» заключается в жесточайшем отборе кристаллов, способных работать с пониженным напряжением питания на частоте 3,2 ГГц. Это косвенно подтверждается тем, что 840 XE, по обзорам западной прессы, легко разгоняется до 4,0 ГГц — и если его снабдить водяным охлаждением, то стабильно работает на этой частоте). Во всяком случае, боксовый кулер для Smithfield незначительно отличается от кулера, поставлявшегося с прежними топовыми процессорами.
В Сети уже появились первые обзоры производительности 840XE. Чрезвычайно чувствительная к ширине шины памяти архитектура NetBurst, да еще и с сильно (с 3,8 до 3,2 ГГц) сниженными частотами должна была демонстрировать впечатляющий, но все же далеко не запредельный рост производительности. И действительно, 840XE выступил достаточно уверенно, показав в «неудобных» для «узкой» 800-МГц шины тестах аудио- и видеокодирования от 0 до 20% преимущества над 3,73XE и до 70% преимущества в приложениях 3D-рендеринга. Отличные результаты показали и многопоточные тесты общесистемной производительности типа SYSmark 2004 — в них новый 840-й процессор, вопреки некоторым опасениям, показал результат, очень близкий к 3,73XE. Конечно, в большинстве игр и старых однопоточных приложений 840XE проигрывает старым топовым процессорам и процессорам AMD, но это было вполне предсказуемо. Впрочем, в некоторых оптимизированных тестах 840XE ухитрился продемонстрировать пятикратный (!) прирост производительности. Поэтому делать окончательные выводы пока рано — подождем, пока новые двухъядерные процессоры Intel попадут в нашу тестовую лабораторию.
Анонс Pentium D обещан ближе к лету. Отличий от Pentium XE здесь будет немного: во-первых, отключенная технология Hyper-Threading; во-вторых, заблокированный коэффициент умножения. Тактовые частоты — от 2,8 ГГц до 3,2 ГГц, и, надо сказать, предполагаемая цена в $241 за младшую модель — это весьма серьезная заявка на то, чтобы эти процессоры быстро завоевали популярность (всего 14-процентная разница в тактовой частоте по сравнению с топовыми двухъядерниками едва ли сильно скажется на их производительности).
Все двухъядерные процессоры Intel рассчитаны на установку в сокеты LGA 775. Однако в силу специфических особенностей архитектуры — необходимости поддержки чипсетом арбитража системной шины, очень сильно изменившейся электрической нагрузки на шину (в новых Pentium даже введена специальная защита от запуска на старых платформах) и чрезвычайно сильно выросших требований к VRM платы — в уже существующих системах (за исключением новейших плат на чипсетах типа nForce 4 SLI Intel Edition) они работать не будут. Для двухъядерников предназначаются новые чипсеты — i955 (аналог i925XE) и линейка i945 (аналог линейки i915). Им мы посвятим отдельную статью, а пока вкратце скажем, что основные отличительные черты этих чипсетов — поддержка двухъядерных процессоров, шины 1066 МГц, оперативной памяти DDR2-667. Технология SLI официально не поддерживается, но производители материнских плат смогут включить ее «облегченный» аналог (16 + 4 линий PCI Express); возможно также появление специальных чипов-переходников (хабы с 16 линий на 2x16 линий), которые позволят создавать полноценные SLI-платы. SATA2 не поддерживается. Интегрированного WiFi не будет. Цена чипсетов будет достаточно либеральной — например, i955 на первых порах будет стоить порядка $50, а платы на его основе — около $200.
Остается еще добавить, что в начале 2006 года Intel одновременно с переходом на 65-нм технологический процесс обещает выпустить принципиально новые двухъядерные процессоры Presler — два раздельных кристалла, помещенных на одну подложку. Дело в том, что выход годных кристаллов по 90-нм технологическому процессу у Intel сейчас практически стопроцентный и производство бездефектного двухядерного кристалла обходится ей примерно в те же, деньги, что и производство двух одноядерных (правда, это если не учитывать, что на производство сегодняшних Smithfield идут только лучшие кристаллы с пониженным напряжением питания — чтобы все-таки уложиться в TDP 130 Вт). А вот 65-нм техпроцесс на первых порах может сопровождаться значительным браком, и использование двух раздельных ядер окажется уже существенно выгоднее экономически. Объем кэша L2 для каждого из ядер увеличат вдвое — до 2 Мбайт. В остальном Presler (и его одноядерный аналог CedarMill) будет полностью идентичен сегодняшним Prescott-2M (одно время ходили слухи, что будет укорочен конвейер и за счет этого повышена производительность ядра) и устанавливаться будет в тот же самый LGA775. Зато обещают уменьшить минимальный коэффициент умножения — это позволит наконец-то перейти на более быструю, чем 800-МГц шину и увеличит эффективность от использования технологии энергосбережения EIST (напомню, что минимальная рабочая точка для существующих Pentium 4 — это 2,8 ГГц). Типичное тепловыделение новых процессоров тоже должно уменьшиться до 110 Вт у двухядерных и 65 Вт у одноядерных вариантов. Тактовые частоты почти не увеличатся: 3,4 ГГц у Presler и 3,6 ГГц у CedarMill. Примерно в это же время анонсируют и двухъядерные Pentium M, и двухядерные Xeon. Причем Xeon для двухпроцессорных систем будет производиться на основе Presler и точно так же будет набираться из двух кристаллов, подключаемых к общей шине. С Xeon MP все интереснее: это довольно сильно доработанный 90-нм Smithfield с общим интерфейсом шины на два кристалла. То есть это не просто два кристалла, подключенных к одной шине — это будет сильно переработанная конструкция с уменьшенной нагрузкой на шину. Аналогичным образом устроен и выходящий в четвертом квартале текущего года Itanium 2 «Montecito» (кэш 1 Mбайт L2 + 12 Mбайт L3 на ядро, 1,72 млрд. транзисторов) — два ядра, подключенных к шине через общий Bus Interface. Что же до Smithfield, то его себестоимость и назначение, видимо, такие же, как у небезызвестного Pentium 4 Willamette — дорого, горячо и неэффективно по сравнению с предыдущим поколением. Но свою задачу они все-таки выполнят.
По оценкам Intel, к концу 2006 года доля двухядерных процессоров в общем объеме выпускаемой продукции составит более 70% для десктопных и мобильных процессоров и более 85% — для серверных.
AMD Toledo
Компания AMD выпустила двухъядерные процессоры на три дня позже Intel, зато сразу в больших количествах. Сегодня можно купить только дорогущие Opteron восьмисотой серии, предназначенные для 4–8-процессорных систем, однако уже анонсированы и начинают появляться Opteron 2xx (двухпроцессорные системы; начало поставок — май 2005-го), Opteron 1xx (для рабочих станций, сроки поставок пока не указываются) и Athlon 64 X2 (десктопные процессоры; начало поставок — июнь 2005-го). Да, AMD тоже решила дать своим двухъядерным процессорам новую торговую марку. Цены на новые процессоры — довольно умеренные: ценовая политика такова, что младшие двухядерные Opteron будут стоить ровно столько же, сколько топовые одноядерные.
Всего 21 апреля было анонсировано тринадцать (!) двухъядерников. Причем если Intel приурочила свой анонс к сорокалетию закона Мура, то AMD — к двухлетию выхода на рынок Opteron. Напомню, кстати, что изначально анонс двухъядерных процессоров Intel планировался на второй квартал, а AMD — на третий квартал 2005 года. Но, видимо, уж больно хорошие юбилеи подвернулись — жаль было упускать такие возможности. В отличие от Intel, AMD предпочла начать выпуск двухъядерников с дорогих серверных Opteron (Intel обещает начать поставки двухъядерных Xeon только в начале 2006 года — почти на девять месяцев позже AMD) и оставить свою топовую линейку Athlon 64 FX одноядерной. Впрочем, последнее неудивительно: ведь FX позиционируются прежде всего как процессоры для экстремальных геймеров, а в играх от двухъядерности большого толку все равно не будет (так что AMD вместо этого пообещала в ближайшее время выпустить Athlon 64 FX 57 с частотой 2,8 ГГц). Кстати, в mainstream-сектор Athlon 64 X2 тоже не позиционируется: AMD отводит этому процессору уникальные «Prosumer and Digital Media Segments», разводя его с Athlon 64 по разным рыночным нишам.
Тактовые частоты новых Opteron — от 1,8 до 2,2 ГГц, что на 18% меньше, чем у топовых Opteron x52 с частотой 2,6 ГГц. Зато они теоретически полностью совместимы со всеми ранее выпущенными системами(На практике, увы, многие серверные платы не поддерживают 90-нм Opteron и двухъядерные процессоры — в частности, из-за неполного соответствия VRM требованиям AMD. То есть понятно, что новые процессоры потребляют токи в разы большие и не каждая схема питания их потянет; однако не менее понятно и то, что AMD, изначально планировавшая выпуск 90-нм двухъядерников, просто не могла не заложить в свои требования к VRM соответствующего запаса мощности) и по-прежнему укладываются в стандартный серверный тепловой пакет в 95 Вт. Учитывая, что большинство серверных задач прекрасно распараллелено и «заточено» под SMP, что и одноядерные Opteron показывают прекрасные результаты, а также учитывая низкое тепловыделение и возможность апгрейда уже купленных серверов, можно смело утверждать: новые Opteron весь текущий год будут лучшим выбором на рынке серверных x86-процессоров. Тем более что двухъядерность для них была запланирована еще на этапе проектирования архитектуры K8 и AMD запасла для двухъядерников множество «вкусностей».
Athlon 64 X2 должен появиться в продаже примерно одновременно с массовыми же Pentium D — в июне этого года. Тактовые частоты Athlon 64 X2 — от 2,2 до 2,4 ГГц; то есть соответствуют тактовым частотам своих одноядерных коллег (!); при этом можно выбирать между вариантами с 512 Кбайт и 1 Мбайт кэша L2 на каждое ядро. Точно так же обеспечивается полная совместимость со всеми ранее выпущенными материнскими платами для Socket 939, за исключением маломощных плат, не поддерживающих Athlon 64 FX 55 — ток под 90 А обеспечит далеко не каждая схема питания. Все, что для этого нужно, — просто обновить BIOS. А вот обновить систему охлаждения, видимо, все-таки потребуется: максимальное тепловыделение Athlon 64 X2 составляет 110 Вт.
Прочие технические характеристики двухъядерных процессоров AMD соответствуют возможностям 90-нм степпинга второго поколения (E0/E3)(Впервые для AMD в этом степпинге используется технология напряженного кремния — Dual Stress Liner, DSL). Поддерживаются MMX, SSE, SSE2, SSE3, 3Dnow! Professional, а также впервые появившиеся именно в процессорах K8 технологии AMD64 (64-разрядные режимы работы процессора), Cool’n’Quiet и NX-bit. Вообще, различий между возможностями разных процессорных производителей с каждым днем все меньше и меньше: удачные технологии производители беззастенчиво заимствуют друг у друга. Например, двухъядерные Athlon 64/Opteron… поддерживают Hyper-Threading. На самом деле, конечно, никаким гипертрейдингом в этих кристаллах и не пахнет — такая «военная хитрость», видимо, понадобилась, чтобы «оптимизированные для Hyper-Threading» приложения не решили вдруг, что перед ними процессор, не способный выполнять два программных потока одновременно, и не отключили соответствующие оптимизации.
Архитектура K8 сильно отличается от классической SMP — настолько, что AMD даже дала ей другое название — SUMA, то есть Slightly Uniform Memory Architecture («почти однородная архитектура памяти»). Такое название происходит от того, что в многопроцессорной системе на базе Opteron у каждого процессора есть своя, «локальная» оперативная память. То есть в каждый процессор встроен целый небольшой чипсет (Northbridge), в котором есть двухканальный контроллер памяти, до трех линков HyperTransport, для общения с «соседями» — процессорами, периферией или чипсетом, кросс-бар (штука, которая осуществляет коммутацию всех этих шин и контроллеров) и (внимание!) некий System Request Interface. Для чего нужны кросс-бар и SRI — чуть позже, пока же просто отметим, что любой процессор по шинам HyperTransport может обращаться и к оперативной памяти своих соседей. Вся оперативная память в такой системе «размазана» между всеми процессорами: какие-то физические адреса принадлежат одному процессору, какие-то — другому; а остроумно устроенные схемы адресации запросов к памяти и очень шустрая шина HyperTransport(www.computerra.ru/offline/2004/547/34188) обеспечивают быстрое и прозрачное получение данных из памяти любого процессора. Процессору даже не приходится «задумываться» над тем, что из его локальной памяти что-то запрашивается, что через него проходит транзакция чужого процессора или что его собственный запрос переадресован другому процессору: всем этим как раз и заведует кросс-бар. Обычной программе кажется, что память в такой системе общая, но обращение к «своим» адресам происходит заметно быстрее, чем обращение к «чужим» (причем чем «дальше» чужой процессор, тем дольше от него идут данные из памяти) — то есть память неоднородна. А фраза «почти однородна» в названии SUMA означает, что различия эти удалось сделать сравнительно небольшими.
Впрочем, сейчас речь не столько о различиях между SUMA и SMP, сколько о двухъядерных процессорах. Так вот: архитектура K8 изначально проектировалась с расчетом на использование двухъядерных процессоров. Как я уже сказал, в этих процессорах четко различаются собственно «процессорное ядро» и логика, решающая для ядра задачи ввода/вывода, — Northbridge.
Соединяются между собой ядро и этот «северный мост» через специальный блок System Request Interface, который представляет собой высокоскоростную шину данных, работающую на полной частоте процессора(Кросс-бар, осуществляющий коммутацию данных между шинами HyperTransport, контроллером памяти и собственно процессором, тоже работает на полной частоте ядра. Соответственно, чем она выше — тем эффективнее работает весь этот пучок шин). Но передача данных от процессора к кросс-бару — не единственная задача SRI: еще с самых первых версий K8 на этой шине присутствовал порт для подключения второго ядра(Другой вопрос, что на 130-нм технологическом процессе площадь кристалла этого гипотетического двухъядерника превысила бы 350 кв. мм, что запредельно много для современного оборудования — себестоимость таких кристаллов была бы колоссальная)! То есть перед нами фактически целая SMP-система: два процессора, общая шина, чипсет, контроллер памяти и периферия на одном (!) кристалле. При этом, в отличие от классического SMP, участок общей шины работает на тактовой частоте процессора — одно ядро может очень быстро обратиться к другому, а сама «межъядерная» шина ни при каких условиях не становится узким местом. Одно ядро может отправить запрос в «локальную» память, а второе в это же время — в память «соседа», — и мешать друг другу они практически не будут. Если добавить, что AMD еще со времен архитектуры K7 использует более продвинутый протокол поддержания когерентности кэшей MOESI (у Intel — только более старый MESI), то получится, что двухъядерный K8 должен задействовать свой потенциал не в пример эффективнее двухъядерного Prescott. Конечно, двухъядерный K8 в чем-то будет хуже, чем два одноядерных (поскольку у них и два контроллера памяти вместо одного), однако обычной двухъядерной SMP до решения AMD очень и очень далеко.
Одноядерные процессоры K8 всегда были чрезвычайно сложными по сравнению со своими «собратьями» предыдущего поколения(Отличия ядер K7 и K8 относительно невелики. Самый заметный прирост площади ядра — из-за увеличенного вдвое кэша L2) — по площади кристалла они превосходили их примерно в два раза. Зато теперь, на двухъядерниках, AMD начинает «отыгрываться»: ведь дублировать контроллер памяти, кросс-бар, линки HyperTransport и SRI уже не требуется. Это хорошо видно даже на фотографиях кристалла: у второго ядра заметен «пустой» кусок, где раньше размещалась часть всего этого хозяйства. Поэтому и площадь, и число транзисторов в сдвоенных K8 увеличились несильно — всего до 199 кв. мм и 233 млн. транзисторов.
Относительно низкое тепловыделение[По некоторым тестам наших коллег, два процессора Opteron 275 (dual-core 2,20 ГГц) под нагрузкой потребляли энергии меньше, чем один Pentium Extreme Edition 840 (dual-core 3,20 ГГц)], высокие тактовые частоты, специально заточенная под двухъядерность архитектура… если 840 XE сам по себе смотрелся очень интересно, то Athlon 64 X2 выглядит настоящей мечтою. В Интернете уже появились и первые тесты его производительности: если им верить, то даже Athlon 64 X2 4400+ (2,2 ГГц, 2x1 Мбайт L2) побеждает Pentium Extreme Edition в подавляющем большинстве тестов, включая тесты на видео- и аудиокодирование. В тестах на трехмерный рендеринг FX 4400+ уступает XE 840 незначительно. Extreme Edition с трудом выходит вперед только в сценариях, когда одновременно запускается множество ресурсоемких приложений. Обычный Pentium D 840 (без Hyper-Threading) безнадежно отстает вообще во всех случаях. А ведь тестировался даже не топовый 4800+! Конечно, пока мы его не подержали в руках, делать выводы рано. Однако похоже, что через два месяца любой желающий сможет поставить в свою Socket939-систему процессор, который ни в чем(Кроме тепловыделения и, естественно, цены) не уступит своему одноядерному собрату (в частности, будет демонстрировать производительность в играх и старых приложениях на уровне и даже выше Athlon 64 4000+), будет поддерживать истинную многопоточность (то есть обеспечивать даже более комфортную работу с операционной системой, чем существующие Pentium 4 с Hyper-Transport) и опережать конкурентов в подавляющем большинстве приложений. Больше не придется решать, что важнее — производительность в однопоточных играх или в задачах создания/обработки цифрового контента: он будет самым быстрым всюду. AMD, похоже, именно на это и рассчитывает: минимальная цена за двухъядерный Athlon 64 X2 — порядка $530, а то и 580$. Сравните с $280 за Pentium D 2,8 ГГц. Топовый Athlon 64 X2 4800+ — вообще сказка, а не процессор. И цена у него вполне «сказочная» — тысяча и один доллар(Оценили юмор маркетологов?). За классные вещи всегда приходилось много платить — а Athlon 64 X2 явно напрашивается на звание «процессора года».