Подытожим, есть две архитектуры, два производителя, Intel - SMP , AMD - SUMA. У каждого свои
достоинства и свои недостатки. Но даже не это главное, процессоры без соответствующего программного обеспечения и ОС просто железки. Уже есть оптимизированные приложения для двухядерников - например Photoshop cs2 гораздо шустрее.
Многоядерные процессоры: технологии(Intel и AMD). Часть 2.
В первой части обзора рассматривалась архитектура многоядерных процессоров AMD&Intel. Однако при выборе процессора для персонального использования дома или в офисе, недостаточно выбирать только между SMP и SUMA архитектурой. Все же на сегодня нет значительного отрыва ни у одного из конкурентов, несмотря на разницу в архитектуре. Вернее отрыв есть, но какой-то неубедительный он. АМД хорош в одних задачах, Интел в других, получается среднее арифметическое. А например, при расчете числа Пи- утилитой Super PI- двухядерный Athlon x2 3800 проигрывает одноядерному Athlon 3500+, пусть на доли секунд, но всетаки.
В этой части рассмотрим технологии Hyper Threading, Hyper transport.
Hyper Threading
Несмотря на отставание от AMD в 64 битных технологиях, а также проигрывая в производительности 2-х ядерных десктопных процессоров(до C2D), Intel все же тратила и тратит денег на исследования много больше AMD. И всегда имеет чего-нибудь в загашнике. У пентиумов уже была микроархитектура NetBurst, а всем известный Hyper Threading является в каком-то смысле её логическим продолжением.(еще в 2001 году)
Микроархитектура Intel NetBurst позволяет получить максимальный выигрыш в производительности при выполнении одиночного потока инструкций, то есть при выполнении одной задачи. Однако даже в случае специальной оптимизации программы не все исполнительные модули процессора оказываются задействованными на протяжении каждого тактового цикла. В среднем при выполнении кода, типичного для набора команд IA-32, реально используется только 35% исполнительных ресурсов процессора, а 65% исполнительных ресурсов процессора простаивают, что означает неэффективное использование возможностей процессора. Было бы вполне логично реализовать работу процессора таким образом, чтобы в каждом тактовом цикле максимально использовать его возможности. Именно эту идею и реализует технология Hyper-Threading, подключая незадействованные ресурсы процессора к выполнению параллельной задачи.
Сейчас трудное предложение
Данная технология является чем-то средним между многопоточной обработкой, реализованной в мультипроцессорных системах, и параллелизмом на уровне инструкций, реализованном в однопроцессорных системах.
А если проще, то технология Hyper-Threading позволяет организовать два логических процессора в одном физическом.
Посмотрим на рисунок. Синими квадратами изображены команды одного потока, а розовыми второго. Видно, что в принципе они используют различные регистры процессора, а большая часть регистров простаивает. Для выполнения первого и второго потока последовательно, процессор затратит 10 тактов(каждый поток по 5 тактов). Принцип Hyper Threading как раз и состоит в том, чтобы использовать незадействованные регистры процессора для параллельной обработки второго потока. Но идеальных ситуаций не бывает. Вот и в нашем случае, в одни и теже регистры пытается записаться и первый и второй поток. Поэтому выполнение 2х потоков с использованием Hyper Threading заняло не 5, а 7 тактов.
Этот козырь Интел использовало также и в 2х ядерных Pentium Extreme Edition. Так из физически двухядерного, получился логически четырехядерный процессор!!
Сейчас с переходом на C2D, Интел отказывается от Hyper-Threading, он остается только на Celeron D. Кстати, именно поэтому процессоры Celeron D не будут спешить расстаться с архитектурой NetBurst. Другими словами, процессоры Celeron на ядре Conroe пока не появятся, данное семейство бюджетных процессоров будет использоваться для "утилизации" имеющихся запасов ядер Prescott и CedarMill. То есть для продажи под видом Celeron, остатков старых процессоров. Однако слишком уж проста и с той же стороны перспективна эта технология для полного отказа от нее.
HyperTransport
Теперь перейдем к АМД. Кроме выпуска первых десктопных 64 битных процессоров, чем АМД конечно годится,( причем гордится настолько, что решила отказаться от магических циферок 64 в названии процессора -мол если написано Athlon, то и так ясно, что процессор 64 битный) у компании есть еще один мощный предмет для гордости.
Шина HyperTransport (HT), ранее известная как Lightning Data Transport (LDT), - это двунаправленная последовательно/параллельная компьютерная шина, с высокой пропускной способностью и малыми задержками.
Исторически HyperTransport разрабатывался AMD в качестве процессорной шины нового поколения специально для чипов с интегрированным контроллером памяти (архитектура AMD64). В многопроцессорных системах на основе AMD Opteron подсистема памяти "размазана" по всем процессорам - у каждого есть своя локальная память, подключенная через интегрированный контроллер, и каждый может обращаться к памяти любого другого процессора. Локальная память "быстрая", а память соседа - "медленная", причем чем "дальше" расположен сосед, тем медленнее память. Медлительность является следствием того, что для обращения к соседу требуется проделать целый ряд операций - переслать по межпроцессорной шине запрос, дождаться его выполнения контроллером памяти адресата, вернуть данные по шине обратно. Очевидно, что чем быстрее при этом шина, тем более "однородна" память.
Исходя из этих соображений и проектировалась новая шина, призванная обеспечить пропускную способность не меньшую, чем у оперативной памяти, и минимальные задержки на передачу данных и сообщений. Получилось действительно неплохо, что даже дало AMD повод назвать свою архитектуру не NUMA, а SUMA - Slightly Uniform Memory Architecture, то есть "почти однородная" архитектура памяти.(напомню NUMA -неоднородный доступ к памяти).
Но разработчики не стали делать типичную быструю узкоспециализированную процессорную (системную) шину. Напротив, в соответствии с веяниями времени они соорудили очень быструю последовательную шину данных и предусмотрели возможности для ее "переноса" в более простые и медленные варианты с уменьшенными частотами и разрядностью (в отличие от PCI Express, которая масштабируется "вверх" - от x1 к х16 и x32).
Поэтому HT (минимальная ширина которой - 2 бита) с полным правом может называться последовательной шиной - любые данные, передаваемые по ней, упаковываются в пакеты стандартного вида. Правда, требования скорости наложили на протокол передачи данных сильнейшие ограничения - столь изящной "layered architecture", как у Intel, мы здесь не увидим, да и влияние физической реализации линков HT на общую архитектуру шины очень заметно.
HyperTransport поддерживает автоматическое определение ширины шины, от 2-х битных линий до 32-х битных линий. Полноразмерная, полноскоростная, 32-х битная шина в двунаправленном режиме способна обеспечить пропускную способность до 20800 МБ/с (2*(32/8)*2600), являясь, таким образом, самой быстрой шиной среди себе подобных.
"Базовая" тактовая частота шины HT - 200 МГц (то есть частота передачи данных - 400 МГц). Это минимально возможная частота функционирования шины, она определяет и минимальную пропускную способность HT-линка: 2 бита (минимальная ширина направления) x 200 МГц (минимальная частота) x 2 (DDR) = 100 Мбайт/с. В отличие от PCI Express, где 20% от этой величины "съедает" кодирование "8/10", это "честные" 100 Мбайт/с, то есть теоретически все они доступны устройству (пакетирование, конечно, снизит реальную пропускную способность). Все последующие тактовые частоты определяются как кратные данной - 400 МГц, 600 МГц, 800 МГц (HyperTransport 1.0-1.1), 1000 МГц (последние ревизии HT 1.x и HT 2.0), 1200 и 1400 МГц (HT 2.0) 2600МГц; (сравните с шиной PCI и её 33 или 66 МГц)
Столь широкого спектра скоростей за глаза хватает для любых применений - от простейших до сверхпроизводительных. Неудивительно, что HT получил широчайшую поддержку в тех областях, где производительность критична (см. врезку в конце статьи) - эта шина с успехом используется помимо AMD Athlon 64/Opteron еще и в новейших процессорах Apple G5 (IBM) и сопутствующих чипсетах, в процессорах Transmeta, в разнообразных сетевых устройствах (Cisco, Broadcom), в чипсетах Nvidia и ALi/ULi.4
В принципе технология могла бы с легкостью занять место PCI Express. Этому мешает только неудобство протоколов передачи, которые, вообще говоря, можно было бы и перекрыть вышележащими протоколами, - но Intel предложила свою, совершенно иную альтернативу, а на разработку собственной шины общего назначения (3GIO) на базе HT у AMD, видимо, не хватило ресурсов.
Однажды разработанный мост PCI-HyperTransport позволяет взаимодействовать любому процессору, поддерживающиму шину HyperTransport и любому устройству шины PCI. Для примера, NVIDIA nForce чипсет использует шину HyperTransport для соединения между северным и южным мостами.
Шина HyperTransport поддерживает технологии энергосбережения, а именно ACPI. Это значит, что при изменении состояния процессора (C-state) на энергосберегающее, изменяется также и состояние устройств (D-state). Например, при отключении процессора НЖМД также отключаются.
Отличие HT от других последовательных пакетных протоколов в том, что при передаче одного пакета, возможно прервать передачу, и передать второй - более срочный. Такая экзотическая на первый взгляд схема нужна для обеспечения экстремально низких задержек передачи сообщений: при достаточно широкой шине типичная задержка передачи сообщения в НТ составляет 1-2 такта.