Многоядерные процессоры Athlon 64 и Pentium D9xx
К началу 2005 года классические одноядерные процессоры практически полностью исчерпали резервы роста производительности за счет повышения рабочей частоты. Камнем преткновения стало не только слишком высокое тепловыделение процессоров, работающих на высоких частотах, но и проблемы с их стабильностью. Дальнейшее повышение производительности процессоров может быть достигнуто преимущественно за счет расширения концепции параллелизма работы, в частности перехода от параллельных цепочек конвейеров до параллельно работающих процессорных ядер. Первыми представителями процессоров, реализовавших на практике данную концепцию, стали двуядерные процессоры.
По сути своей двуядерный процессор почти не отличается от обыкновенной двухпроцессорной системы, в которой установлено два независимых процессора. В результате получают все преимущества двухпроцессорных систем без необходимости использования сложных и дорогих двухпроцессорных материнских плат. Однако в отличие от двухпроцессорных систем в двуядерных более остро стоит проблема использования общих ресурсов, доступ к которым нужно распределять между двумя ядрами.
С точки зрения программного обеспечения двуядерный процессор система рассматривает как два независимых. Естественно, что двуядерный процессор способен одновременно выполнять два потока инструкций, в то время как обычный CPU производит вычисления строго по очереди. В приложениях, оптимизированных под многопроцессорность, можно получить ощутимый — вплоть до двукратного — прирост производительности.
Число транзисторов в новых процессорах составляет около 230 млн.
Существуют две архитектуры двуядерных процессоров: фирмы AMD (Athlon 64 X2) и фирмы Intel Pentium D и Pentium 4 Extreme Edition 840.
При всей несхожести архитектур ядер, оба процессора имеют одну общую черту – одинаково реализованную двуядерность:каждое ядро имеет собственный кэш второго уровня (до 2048 Кбайт на каждое ядро у Pentium D 9xx и до 1024 Кбайт у Athlon 64 X2). В процессоре Pentium D для связи ядер используется внутренняя шина (передача данных между ядрами возможна и через системную шину FSB). Такое решение не самое удобное в том случае, когда одному ядру надо получить данные, содержащиеся в КЭШе другого ядра. Ведь нередко ядра работают над одной и той же задачей, просто выполняя разные её части. Отсюда неминуемые задержки в доступе к информации, а также возможен простой одного из ядер по той причине, что его кэш полностью заполнен данными, которые всё ещё нужны второму ядру. Логичное решение этой проблемы – использование общей кэш-памяти. И именно таким образом работает двуядерный процессор, получивший название Core Duo.
Рисунок 9.3 – Структура двуядерного процессора типа Athlon 64 X2(а)иPentium D9xx(б) |
-Каждое из ядер Athlon 64 X2 также обладает собственным набором исполнительных устройств и выделенной кэш-памятью второго уровня; контроллер памяти и контроллер шины HyperTransport - общие (рисунок 8.3). А вот взаимодействие каждого ядра с разделяемыми ресурсами происходит посредством специального перекрестного коммутатора (Crossbar Switch) и интерфейса системных запросов (System Request Interface), в котором формируется очередь системных запросов (System Request Queue). На этом же уровне организовано и взаимодействие ядер, благодаря чему снимается дополнительная нагрузка на системную шину и шину памяти.
Шина HyperTransport работает на частотах от 200 МГц до 2,6 ГГц (сравните с шиной PCI и её 33 или 66 МГц). Кроме того, она использует память DDR, что означает, что данные посылаются как по переднему, так и по заднему фронтам сигнала синхронизации. Это позволяет осуществлять до 5200 миллионов посылок в секунду при частоте сигнала синхронизации 2,6 ГГц; частота сигнала синхронизации настраивается автоматически.
HyperTransport поддерживает автоматическое определение ширины шины, от 2-х битных до 32-х битных линий. Полноразмерная, полноскоростная 32-х битная шина в двунаправленном режиме способна обеспечить пропускную способность до 20800 МБ/с (2*(32/8)*2600), являясь, таким образом, самой быстрой шиной среди себе подобных. Шина может быть использована как в подсистемах с высокими требованиями к пропускной способности (оперативная память и ЦПУ), так и в подсистемах с низкими требованиями (периферийные устройства). Данная технология также способна обеспечить низкие задержки для других применений в других подсистемах.
Шина HyperTransport основана на передаче пакетов. Каждый пакет состоит из 32 разрядных слов, вне зависимости от физической ширины шины (количества информационных линий). Первое слово в пакете — всегда управляющее слово. Если пакет содержит адрес, то последние 8 бит управляющего слова сцеплены со следующим 32-битным словом, в результате образуя 40 битный адрес. Шина поддерживает 64 разрядную адресацию — в этом случае пакет начинается со специального 32 разрядного управляющего слова, указывающего на 64 разрядную адресацию, и содержащего разряды адреса с 40 по 63 (разряды адреса нумеруются, начиная с 0). Остальные 32-х битные слова пакета содержат непосредственно передаваемые данные. Данные всегда передаются 32-х битными словами, вне зависимости от их реальной длины (например, в ответ на запрос на чтение одного байта по шине будет передан пакет, содержащий 32 бита данных и флагом-признаком того, что значимыми из этих 32 бит являются только 8).
Пакеты HyperTransport передаются по шине последовательно. Увеличение пропускной способности влечёт за собой увеличение ширины шины. HyperTransport может использоваться для передачи служебных сообщений системы, для передачи прерываний, для конфигурирования устройств, подключенных к шине и для передачи данных.
Операция записи на шине бывает двух видов — posted и non-posted. Posted-операция записи заключается в передаче единственного пакета, содержащего адрес, по которому необходимо произвести запись, и данные. Эта операция обычно используется для обмена данными с высокоскоростными устройствами, например, для DMA передачи. Non-posted операция записи состоит из посылки двух пакетов: устройство, инициирующее операцию записи, посылает устройству-адресату пакет, содержащий адрес и данные. Устройство-адресат, получив такой пакет, проводит операцию записи и отсылает устройству-инициатору пакет, содержащий информацию о том, успешно ли произведена запись. Таким образом, posted-запись позволяет получить максимальную скорость передачи данных (нет затрат на пересылку пакета-подтверждения), а non-posted-запись позволяет обеспечить надёжную передачу данных (приход пакета-подтверждения гарантирует, что данные дошли до адресата).
Шина HyperTransport поддерживает технологии энергосбережения, а именно ACPI. Это значит, что при изменении состояния процессора (C-state) на энергосберегающее, изменяется также и состояние устройств (D-state). Например, при отключении процессора НЖМД также отключаются.
Электрический интерфейс HyperTransport/LDT — низковольтные дифференциальные сигналы (Low Voltage Differential Signaling (LVDS)), с напряжением 2,5 В.
Первые двухядерные процессоры AMD, в отличие от аналогичных представителей Intel, вначале не были предусмотрены для работы с DDR2. Отсутствие поддержки современных типов памяти с высокой пропускной способностью объяснялось тем, что компания в первую очередь стремилась сохранить совместимость Athlon 64 X2 с существующими платформами. Зато, в отличие от двуядерных процессоров Intel, для которых необходим новый чипсет, эти CPU могли устанавливаться на те же материнские платы, что и обычные Athlon 64. В современных многоядерных процессорах AMD реализована поддержка памяти типа DDR2.
Линейка процессоров Pentium D представлена тремя моделями: 820, 830 и 840 с частотами, соответственно, 2.8, 3.0 и 3.2 ГГц. Для повышенных требований разработана модель Pentium Extreme Edition 840, процессорные ядра которой работают на частоте 3,2 ГГц. Отличие экстремального двуядерного процессора от остальных заключается в разблокированном коэффициенте умножения и в присутствии технологии Hyper-Threading, которая отключена в моделях линейки Pentium D. Таким образом, Pentium Extreme Edition будет определяться операционной системой как четыре логических процессора.
Двухядерному процессору присущ весь набор современных технологий: поддержка 64-битных расширений EM64T, технология безопасности Execute Disable Bit, а также полный набор средств Demand Based Switching для управления тепловыделением и энергопотреблением.
Проблеме снижения тепловыделения двуядерным процессором уделяется значительное внимание. Введены средства, позволяющие «на лету» изменять тактовую частоту процессора и напряжение на ядре в зависимости от необходимой на данный момент производительности. В новом процессоре реализован и ряд других, не менее интересных и полезных энергосберегающих технологий, таких, например, как Dynamic Power Coordination. Суть этой технологии состоит в том, что ядра могут независимо друг от друга менять энергопотребление в зависимости от текущей нагрузки на процессор. В том числе, возможна ситуация, когда одно ядро работает, а другое находится в состоянии Deep Sleep, в котором потребление энергии близко к минимальному.
Фактически, получается, что второе ядро вовсе не означает двухкратного увеличения энергопотребления и тепловыделения, ведь оно работает только тогда, когда это действительно нужно. Компания Intel называет это качество Dual-Core Performance on Demand – «производительность двуядерного процессора по требованию». Такое решение является весьма рациональным: с одной стороны, в случае необходимости процессор может потреблять мало энергии, работая в «одноядерном режиме», а с другой стороны, способен мгновенно перейти в режим высокой производительности, задействовав второе ядро.
Введено еще одна технология снижения энергопотребления, получившая название Dynamic Cache Sizing – «динамическое изменение размера кэш-памяти». Суть этой технологии заключается в отключении простаивающих блоков кэш-памяти. Кроме того, если информация, содержащаяся в кэше, в течение какого-то времени не используется, то она переносится в оперативную память, а блоки кэша опять-таки отключаются. Учитывая, что объём кэша у ядра достаточно велик – целых 2 Мбайта – полностью он используется не так уж часто, особенно при невысокой нагрузке на систему, как это обычно и бывает при работе от аккумуляторной батареи.
Компания Intel отказалась от имени Pentium. Двуядерные процессоры фирмы Intel получили официальные имена Core Solo и Core Duo – одноядерный и двуядерный процессор соответственно.
Вслед за двуядерными процесорами фирмой Intel был выпущен четырёхядерный процессор, вышедший под кодовым именем Kentsfield, который представляет собой объединение двух кристаллов Core Duo, сделанное в единой процессорной упаковке. Промышленная модель Kentsfield получила название Core 2 Extreme QX6700.
В октября 2011 года появился шестиядерный процессор Intel Core i7-3960X на базе архитектуры Sandy Bridge-E, являющийся на сегодняшний день самым быстрым CPU от компании Intel для домашних пользователей. Тем временем AMD существенно доработала свой четырехядерный Phenom Х4, увеличив объем кеш-памяти и освоив 45-нанометровый технологический процесс, а в апреле 2010 года анонсировала «шестиядерник» AMD Phenom II Х6, который позволил не отпустить Intel слишком далеко вперед.
Одним из самых важных недостатков у шести- и восьмиядерных процессоров является внушительное энергопотребление, а значит, сильное тепловыделение и высокие температуры чипа при работе под нагрузкой. Производители борются с этим, осваивая все более «тонкие» технологические процессы и разрабатывая более совершенные схемы питания. Также тормозит массовое развитие «многоядерников» дефицит соответствующего программного обеспечения: большая часть потенциала микрочипа остается попросту нереализованной. Кроме того, себестоимость многоядерных процессоров пока обуславливает отнюдь не привлекательную для рядового пользователя цену, которая тоже сдерживает спрос.