На компьютерном рынке сейчас существует практически два крупных производителя процессоров. Если задать любому из вас вопрос "Какой процессор лучше купить?", то за ним последует множество ответов, но, по сути, преобладать будут два варианта: Intel и AMD. Поклонники этих двух процессорных гигантов давно ломают копья, с пеной у рта доказывая, что процессоры их любимой фирмы и лучше, и производительней. Конечно, каждый из них по-своему прав. За последние четыре года AMD, превратилась из "догоняющей" компании во вполне достойного конкурента, хотя и изредка вызывающего нарекания. Большим успехом этой компании можно назвать процессор Athlon (К7), что нельзя было сказать о К5. Но плохая маркетинговая политика привела к тому, что успех ядра К7 оказался не таким, какого он заслуживал. Продолжая укреплять свои позиции, хотя и слегка задержавшись с выпуском, AMD представила публике преемника К7 – К8 (Hammer). Процессор обладает большим потенциалом и интересной технологией. AMD хорошо поработала с новой микропроцессорной технологией и новым технологическим процессом производства (кремний на диэлектрике, SOI). В результате она представила версию процессоров для рабочих станций/серверов - 64-битный процессор Opteron.
64-битные процессоры
Основные преимущества 64-битной архитектуры микропроцессоров заключаются в доступе к памяти. Если вы возьмёте два идентичных микропроцессора, пусть один из них будет 32-битным, а другой – 64-битным, то последний сможет адресовать намного больший объем памяти, чем 32-битный (2 в 64 против 2 в 32). Для тех клиентов, которых ограничивают объём адресуемой памяти 32-битной архитектуры (4 Гбайт), единственным решением Intel с высоким уровнем производительности является Itanium, однако если вам ещё нужна и высокая производительность в x86 приложениях, то Intel ничего вам не предложит.
Типичными приложениями, базирующимися на 64-битной технологии, можно считать большие базы данных и программы по проектированию - CAD. Если стандартная 32-битная система может адресовать максимум 4 Гбайт, то при 64-битной адресации компьютер получает в своё распоряжение, по меньшей мере, 16 Тбайт. Имейте в виду, что большие базы данных сегодня уже значительно превысили объём в 4 Гбайт.
Чтобы обойти 32-битное ограничение в 4 Гбайт, в Windows 2000 и XP благодаря использованию расширения физических адресов (Physical Address Extension, PAE) и промышленной архитектуры памяти (Enterprise Memory Architecture) позволяется адресация приложениям до 8 Гбайт памяти (Advanced Server) и 64 Гбайт памяти (Data Center Server). Однако подобные решения не являются быстрыми, поскольку они применяют технику, подобную EMS-памяти, как при 16-битных вычислениях. Кроме того, 64 Гбайт всё равно является пределом 32-битных процессоров. Приложения, которым необходим быстрый доступ к базам данных больше 4 Гбайт или доступ к базам выше 64 Гбайт вообще, не могут обойтись без использования 64-битных систем.
AMD Opteron
K8 – первое в мире и пока единственное 64-битное x86-ядро. Что касается Intel, то для своих 64-битных процессоров компания разработала отдельную архитектуру "IA64", в отличие от AMD, которая смогла добавить 64-битную поддержку в виде расширений набора инструкций x86, названную "AMD64". Кардинальное различие заключается в том, что архитектура "IA64" лишена встроенной аппаратной совместимости с х86 кодом. Соответственно, чтобы работать с приложениями, которые увидели свет за последние два десятка лет, процессор (Itanium, Itanium 2 и так далее) использует программный декодер. Opteron же может аппаратно выполнять и обычный 32-битный х86-код. Поскольку аппаратное выполнение намного быстрее медленной программной эмуляции, то и производительность в 32-битных приложениях будет соответствующей. Учтём еще и то, что помимо более быстрой работы 32-битных приложений, К8 предлагает неспешный и удобный способ плавного перехода на 64-битные вычисления, не считая увеличенное адресное пространство для приложений, работающих с большими объемами данных (правда, эта возможность доступна только в 64-битном режиме). Единственно, что для получения всех описанных преимуществ, приложение должно быть откомпилировано с учётом 64-битного режима.
С другой стороны, AMD прошла более простым путем. В отличие от Intel, она не стала выдвигать принципиально новую архитектуру, не особо задумываясь, что же придётся делать лет через 5-7. Она просто взяла за основу ядро х86 и расширила набор инструкций до возможностей адресации 64-битного пространства. К8 работает в двух режимах: первый предназначен для работы с 32- или 16-битными приложениями, в этом случае он практически не отличается от К7. Во втором процессор работает в двух подрежимах: в режиме совместимости, который разработан для запуска 32-битных программ в 64-битной ОС, что позволяет приложениям при работе в Windows (грядущей 64-битной версии) использовать полные четыре гигабайта памяти, не ограничиваясь прежними двумя. В этих двух режимах процессор продолжает использовать восемь обычных 32-битных регистров EAX, EBX, ECX, EDX, EBP, ESI, EDI и ESP. Второй подрежим предназначен для работы только с 64-битными системами, совместимыми с архитектурой х86-64. В нём, собственно, и реализуются все возможности и преимущества новой архитектуры. Архитектура x86-64 расширяет эти восемь регистров с помощью префикса R до 64 бит. Расширенные регистры называются от RAX до RSP. Кроме того, в 64-битном режиме Opteron может получать доступ к восьми регистрам общего назначения GPR (General Purpose Registers) от R8 до R15, которые тоже имеют ширину 64 бита. Для вычислений с плавающей запятой используются восемь 128-битных регистров SSE, а именно с XMM8 до XMM15. То есть помимо увеличенного объёма памяти, приложения могут использовать удвоенное число регистров общего назначения, используемых для хранения промежуточных данных.
Такой подход гарантирует обратную совместимость, что является одним из самых больших преимуществ архитектуры AMD "AMD64" над Intel "IA64", где как вы помните, происходит просто эмуляция 32-битного кода с использованием декодера.
Что нового?
При разработке процессора, у AMD, образно выражаясь, было два выбора: пойти "в длину" или "в ширину". Расширение архитектуры процессора означает увеличение числа исполнительных блоков в ядре, что будет иметь значение только при использовании процессора в корпоративной среде, поскольку "широкое" ядро лучше подходит для параллельных вычислений. Однако K8 будет работать и в качестве настольного процессора, где необходима высокая тактовая частота, поэтому AMD выбрала первый вариант и решила удлинить конвейер.
В K8 AMD улучшила блок предсказания ветвлений K7, и сейчас счётчик истории переходов может содержать до 16.000 вхождений (Athlon XP - 4000). Чтобы использовать преимущество большего числа инструкций, отсылаемых на конвейер между ошибками предсказания ветвлений, процессору необходим более ёмкий буфер хранения инструкций. Буфер, который хранит инструкции "на лету", называется окно планировщика, чем больше ёмкость буфера, тем больше инструкций можно хранить "на лету". Большинство инструкций ветвления применяются в целочисленном коде, поэтому этот планировщик был увеличен. Увеличив окно целочисленного планировщика, AMD смогла добавить K8 ещё несколько ступеней конвейера. Длина конвейера по сравнению с К7 была увеличена с 10 ступеней до 12, в то время как процессор Intel P4 (и Xeon) использует конвейер с 20 ступенями. Но так как архитектура Xeon и Opteron различна, то невозможно оценивать эти процессоры по тактовой частоте. Архитектура Xeon позволяет достигать более высоких тактовых частот за счёт выполнения меньшей работы за такт, так что единственными критериями сравнения могут выступать цена и производительность в приложениях, а не тактовая частота. Сейчас пока выпущены версии К8 с тактовыми частотами 1,4 ГГц, 1,6 ГГц и 1,8 ГГц, номера моделей соответственно 240, 242 и 244. Несколько необычная нумерация, здесь первая цифра обозначает общее число процессоров, которое можно использовать в многопроцессорной среде. Оставшиеся две цифры характеризуют производительность, но каким образом, это остается загадкой, конечно понятно, что 42 лучше, чем 40. Но, что заставило производителя выставить такую маркировку, остается покрыто тайной.
Как и раньше, Opteron незначительно отличается от Athlon, ядро содержит девять функциональных блоков (3 ALU, 3 AGU, FADD, FMUL и FMISC - три целочисленных блока и три блока операций с плавающей запятой), а также три декодера x86, тщательно проработанные AMD. Практически не изменился кэш L1 для инструкций и данных (по 64 кбайт на каждый компонент), хотя сейчас в нём появилась логика ECC. Процессор также приобрел блок команд SSE2, который удвоил количество регистров до шестнадцати. Так как Opteron предназначается для работы в серверной среде с большими объемами памяти, то было увеличено число записей в буферах быстрого преобразования адреса (TLB - Transition Look-aside Buffers). Чем больше входов записано в TLB, тем меньше придется загружать таблицы перевода адресов из основной памяти при передаче физического адреса. По сравнению с ядрами Thoroughbred и Barton, TLB работает с уменьшенными задержками, что повышает скорость.
Физически, ядро AMD Opteron очень похоже на старое ядро Athlon. Одна из инноваций Opteron заключается в добавлении встроенного контроллера памяти, который занимает пространство, отводимое в ядрах Palomino и Thoroughbred под кэш L2. Кстати, размер кэша L2 был увеличен в Opteron до 1 мегабайта (16 путей).
Opteron - первый процессор, имеющий встроенный двухканальный контроллер памяти DDR 333, при этом используется шина памяти DDR 144 бита. Так нам предоставляется возможность использовать процессоры, выполняющие и функции северного моста. Преимущества данной технологии заключаются в следующем: снижение задержек доступа к памяти и работа контроллера с более высокой скоростью. Не так уж и плохо, но если учитывать развитие новых технологий памяти, то в будущем вам придётся менять и процессор, и материнскую плату. Правда есть возможность отключить встроенный контроллер К8 и использовать чипсет для обращений к памяти, но тогда перед вами будет оптимизированный К7 с удлиненным конвейером.
AMD наконец-то снабдила свой процессор встроенным распределителем тепла.
Многопроцессорность
Если рассматривать традиционные решения, то можно выделить одно существенное ограничение. А именно - разделяемая FSB, традиционная многопроцессорная архитектура Intel, где все процессоры используют 64-битную FSB, то есть чем больше процессоров, тем меньшая пропускная способность достанется каждому. AMD делала попытку преодолеть это ограничение, предоставив каждому процессору собственное 64-битное подключение к северному мосту, выпустив первый в мире протокол FSB типа "точка-точка" для компьютеров архитектуры x86. Но чипсет 760МР, реализовавший эту технологию, стал очень дорогим, кроме того, он поддерживал только двухпроцессорную конфигурацию. Разработка не получила большого распространения по причине отсутствия спроса, поэтому на базе данного чипсета так и не была построена четырёхпроцессорная система.
С выпуском К8 AMD исправляет ситуацию, предлагая высокопроизводительное многопроцессорное решение. Вместо распараллеливания FSB, процессоры связываются между собой по интерфейсу HyperThransport, протоколу последовательной шины "точка-точка". Все данные процессора Opteron проходят через интерфейс HyperTransport и встроенный контроллер памяти. Чтобы соседний процессор получил прямой доступ к памяти, к примеру, Opteron использует коммутатор XBAR. Причём этот коммутатор в полной мере задействует 64-битные шины для адресов и команд. Opteron использует три шины шириной 16 бит, по двум шинам он связывается с другими процессорами, по третьей с остальными компонентами системы. Пропускная способность шины составляет 3,2 Гбайт/с в обоих направлениях, В результате общая пропускная способность достигает 6,4 Гбайт/с на порт HyperTransport. Для сравнения, Pentium 4 с 533 МГц FSB обладает скоростью передачи по шине 3,97 Гбайт/с, но только в одном направлении.
Преимущества данного подхода заключаются в том, что восьмипроцессорную систему реализовывать так же легко, как и двухпроцессорную, при этом вы не зависите от чипсета.