двухъядерный процессор что это значит
Двухъядерный процессор что это значит
Когда вы покупаете новый ноутбук или строите компьютер, процессор является самым важным решением. Но там есть много жаргона, особенно что касается ядер. Какой процессор выбрать: двухъядерный, четырехъядерный, шестиядерный или восьмиядерный. Прочитайте статью чтобы понять, что это на самом деле означает.
Двухъядерный или четырехъядерный, как можно проще
Давайте сделаем все просто. Вот все, что вам нужно знать:
Скорость
Теперь простая логика диктует, что больше ядер сделает ваш процессор быстрее в целом. Но это не всегда так. Это немного сложнее.
Больше ядер дают большую скорость только если программа может разделить свои задачи между ядрами. Не все программы предназначены для разделения задач между ядрами. Подробнее об этом позже.
Тактовая частота каждого ядра также является решающим фактором скорости, как и архитектура. Более новый двухъядерный процессор с более высокой тактовой частотой часто превосходит старый четырехъядерный процессор с более низкой тактовой частотой.
Потребляемая мощность
Больше ядер также приводит к более высокому потреблению энергии процессором. Когда процессор включен, он подает питание на все ядра, а не только на задействованные.
Производители чипов стараются снизить энергопотребление и сделать процессоры более энергоэффективными. Но, общее правило гласит что, четырехъядерный процессор будет потреблять больше энергии с вашего ноутбука нежели двухъядерный (и, следовательно, быстрее разряжается аккумулятор).
Выделение тепла
Каждое ядро, влияет на тепло, генерируемое процессором. И опять же, общее правило, больше ядер приводит к более высокой температуре.
Из-за этого дополнительного тепла, производители должны добавить лучшие радиаторы или другие решения для охлаждения.
Цена
Больше ядер не всегда выше цены. Как мы уже говорили ранее, в игру вступают тактовая частота, архитектурные версии и другие соображения.
Но если все остальные факторы одинаковы, тогда больше ядер будет получать более высокую цену.
Все о программном обеспечении
Вот маленький секрет, который производители процессоров не хотят, чтобы вы знали. Речь идет не о том, сколько ядер вы используете, а о том, какое программное обеспечение вы используете на них.
Программы должны быть специально разработаны, чтобы использовать преимущества нескольких процессоров. Такое «многопоточное программное обеспечение» не так распространено, как вы думаете.
Важно отметить, что даже если это многопоточная программа, также важно то, для чего она используется. Например, веб-браузер Google Chrome поддерживает несколько процессов, а также программное обеспечение для редактирования видео Adobe Premier Pro.
Adobe Premier Pro предлагает различные ядра для работы над различными аспектами вашего редактирования. Учитывая многие слои, связанные с редактированием видео, это имеет смысл, так как каждое ядро может работать над отдельной задачей.
Аналогично, Google Chrome предлагает разным ядрам работать на разных вкладках. Но в этом и заключается проблема. После того как вы откроете веб-страницу на вкладке, она обычно статична после этого. Нет необходимости в дальнейшей обработке; остальная часть работы заключается в сохранении страницы в ОЗУ. Это означает, что даже если ядро можно использовать для закладки фона, в этом нет никакой необходимости.
Этот пример Google Chrome представляет собой иллюстрацию того, как даже многопоточное программное обеспечение может не дать вам большой реальный прирост производительности.
Два ядра не удваивают скорость
Итак, допустим, у вас есть правильное программное обеспечение, и все ваше другое оборудование одинаково. Будет ли четырехъядерный процессор в два раза быстрее, чем двухъядерный процессор? Нет.
В действительности задачи разбиваются последовательно (что делает большинство многопоточных программ) или случайным образом. Например, скажем, вам нужно выполнить три задачи, чтобы закончить действие, и у вас есть пять таких действий. Программное обеспечение сообщает ядру 1 решить задачу 1, в то время как ядро 2 решает вторую, ядро 3 третью; между тем, ядро 4 простаивает.
Если третья задача самая сложная и длинная, тогда было бы разумно, чтобы программное обеспечение разделило третью задачу между ядрами 3 и 4. Но это не то, что она делает. Вместо этого, хотя ядро 1 и 2 выполнят задачу быстрее, действие должно будет дождаться завершения ядра 3, а затем вычислить результаты ядер 1, 2 и 3 вместе.
Все это окольный способ сказать, что программное обеспечение, как и сегодня, не оптимизировано, чтобы в полной мере использовать преимущества нескольких ядер. И удвоение ядер не равно удвоению скорости.
Где больше ядер реально помогут?
Теперь, когда вы знаете, что делают ядра и их ограничения в повышении производительности, вы должны спросить себя: «Нужно ли мне больше ядер?» Ну, это зависит от того, что вы планируете с ними делать.
Игровой компьютер
Если вы часто играете в компьютерные игры, то больше ядер на вашем ПК несомненно вам пригодятся. Подавляющее большинство новых популярных игр от крупных студий поддерживают многопоточную архитектуру. Видеоигры по-прежнему в значительной степени зависят от того, какая видеокарта у вас стоит, но многоядерный процессор тоже помогает.
Редактирование видео или аудио
Для любого профессионала, который работает с видео или аудиопрограммами, больше ядер будет полезно. Большинство популярных аудио- и видеомонтажных инструментов используют многопоточную обработку.
Фотошоп и дизайн
Если вы дизайнер, то более высокая тактовая частота и больше кэш-памяти процессора будут увеличиваться скорость лучше, чем больше ядер. Даже самое популярное программное обеспечение для проектирования, Adobe Photoshop, в значительной степени поддерживает однопоточные или слегка поточные процессы. Множество ядер не будет значительным стимулом для этого.
Более быстрый веб-просмотр
Как мы уже говорили, наличие большего количества ядер не означает более быстрый просмотр веб-страниц. В то время как все современные браузеры поддерживают архитектуру многопроцессорных процессов, ядра помогут только в том случае, если ваши фоновые вкладки являются сайтами, для которых требуется большая вычислительная мощность.
Офисные задачи
Все основные приложения Office однопоточные, поэтому четырехъядерный процессор не будет увеличивать скорость.
Нужно ли вам больше ядер?
В целом, четырехъядерный процессор будет работать быстрее, чем двухъядерный процессор для общих вычислений. Каждая программа, которую вы открываете, будет работать на своем собственном ядре, поэтому, если задачи будут разделены, скорости будут лучше. Если вы используете много программ одновременно, часто переключайтесь между ними и назначаете им свои собственные задачи, выбирайте процессор с большим количеством ядер.
Какой процессор лучше: 2 или 4-ядерный
Более 10 лет назад производители процессоров обнаружили неприятную проблему предела тактовой частоты. Достигнув порога в 3 ГГц, разработчики столкнулись с значительным ростом энергопотребления и тепловыделения своих продуктов. Уровень технологий 2004 года не позволял существенно уменьшить размеры транзисторов в кремниевом кристалле и выходом из сложившейся ситуации стала попытка не наращивать частоты, а увеличить количество операций, выполняемых за один такт. Переняв опыт серверных платформ, где многопроцессорная компоновка уже была испытана, было решено объединить два процессора на одном кристалле.
Двухъядерный процессор Intel
Разница между 2 и 4-ядерным процессором
На аппаратном уровне основное отличие 2-ядерного процессора от 4-ядерного – количество функциональных блоков. Каждое ядро, по сути, представляет собой отдельный ЦП, оснащенный своими вычислительными узлами. 2 или 4 таких ЦП объединены между собой внутренней скоростной шиной и общим контроллером памяти для взаимодействия с ОЗУ. Другие функциональные узлы тоже могут быть общими: у большинства современных ЦП индивидуальной является кэш-память первого (L1) и второго (L2) уровня, блоки целочисленных вычислений и операций с плавающей запятой. Кэш L3, отличающийся относительно большим объемом, один и доступен всем ядрам. Отдельно можно отметить уже упомянутые AMD FX (а также ЦП Athlon и APU серии A): у них общими являются не только кэш-память и контроллер, но и блоки вычислений с плавающей запятой: каждый такой модуль одновременно принадлежит двум ядрам.
Схема четырехъядерного процессора AMD Athlon
С пользовательской точки зрения разница между 2 и 4-ядерным процессором заключается в количестве задач, которые ЦП может обработать за один такт. При одинаковой архитектуре, теоретическая разница будет составлять 2 раза для 2 и 4 ядер или 4 раза для 2 и 8 ядер, соответственно. Таким образом, при одновременной работе нескольких процессов, увеличение количества должно повлечь за собой рост быстродействия системы. Ведь вместо 2 операций четырехъядерный ЦП за один момент времени сможет выполнять сразу четыре.
Чем обусловлена популярность двухъядерных ЦП
Казалось бы, если увеличение числа ядер влечет за собой рост производительности, то на фоне моделей с четырьмя, шестью или восемью ядрами у двухядерников нет никаких шансов. Тем не менее, мировой лидер на рынке ЦП, компания Intel, ежегодно обновляет ассортимент своей продукции и выпускает новые модели всего с парой ядер (Core i3, Celeron, Pentium). И это на фоне того, что даже в смартфонах и планшетах на такие ЦП пользователи смотрят с недоверием или презрением. Чтобы понять, почему самые популярные модели – именно процессоры с двумя ядрами, следует учесть несколько основных факторов.
Intel Core i3 — самые популярные 2-ядерные процессоры для домашнего ПК
S.T.A.L.K.E.R. полноценно задействует только одно ядоро 4-ядерного ЦП
Такая же ситуация и с популярной онлайн-РПГ World of Tanks: движок Big World, на котором она базируется, создан в 2005 году, когда многоядерные ЦП еще не воспринимались, как единственно возможный путь развития.
World of Tanks тоже не умеет распределять нагрузку на ядра равномерно
GTA V оптимизирована под многоядерность и умеет равномерно загружать процессор
Все эти нюансы не позволяют в полной мере использовать потенциал многоядерных процессоров на практике. Взаимозависимость производителей аппаратного обеспечения и разработчиков софта порождает замкнутый круг.
Какой процессор лучше: 2 или 4-ядерный
На рынке представлены продукты двух производителей: Intel и AMD, отличающиеся особенностями реализации. Advanced Micro Devices традиционно делают упор на многоядерность, в то время как «Интел» неохотно идут на такой шаг и наращивают количество ядер только если это не приводит к снижению удельной производительности в расчете на ядро (избежать которого очень сложно).
Увеличение количества ядер снижает итоговую производительность каждого из них
Как правило, общая теоретическая и практическая производительность многоядерного ЦП ниже, чем аналогичного (построенного на такой же микроархитектуре, с тем же техпроцессорм) с одним ядром. Вызвано это тем, что ядра используют общие ресурсы, и это не лучшим образом сказывается на быстродействии. Таким образом, нельзя просто приобрести мощный четырех- или шестиъядерный процессор с расчетом на то, что он точно не будет слабее двухъядерника из той же серии. В некоторых ситуациях – будет, при том ощутимо. В качестве примера можно привести запуск старых игр на компьютере с восьмиядерным процессором AMD FX: FPS при этом порой ниже, чем на аналогичном ПК, но с четырехъядерным ЦП.
Нужна ли сегодня многоядерность
Значит ли это, что много ядер не нужно? Несмотря на то, что вывод кажется закономерным — нет. Легкие повседневные задачи (такие как веб-серфинг или работа с несколькими программами одновременно) положительно реагируют на увеличение числа ядер процессора. Именно по этой причине производители смартфонов делают упор на количество, опуская на второй план удельную производительность. Opera (и другие браузеры на движке Chromium), Firefox запускают каждую открытую вкладку в виде отдельного процесса, соответственно, чем больше ядер – тем быстрее переход между вкладками. Файловые менеджеры, офисные программы, проигрыватели – сами по себе не являются ресурсоемкими. Но при потребности часто переключаться между ними многоядерный процессор позволит повысить производительность системы.
Браузер Opera каждой вкладке присваивает отдельный процесс
В компании Intel осознают это, потому технология HuperThreading, позволяющая ядру обрабатывать второй поток силами неиспользуемых ресурсов, появилась еще во времена Pentium 4. Но она не позволяет в полной мере компенсировать недостаток производительности.
В «Диспетчере задач» 2-ядерный процессор с Huper Threading отображается, как 4-ядерный
Создатели игр, тем временем, постепенно наверстывают упущенное. Появление новых поколений консолей Sony Play Station и Microsoft Xbox простимулировало разработчиков уделять больше внимания многоядерности. Обе приставки созданы на базе восьмиядерных чипов AMD, поэтому теперь программистам не нужно тратить уйму сил на оптимизацию при портировании игры на ПК. С ростом популярности этих консолей — с облегчением смогли вздохнуть и те, кто разочаровался в приобретении AMD FX 8xxx. Многоядерники усиленно отвоевывают позиции на рынке, о чем можно убедиться на примере обзоров.
Заключение
Сказать однозначно, какой процессор лучше, 2 или 4-ядерный — невозможно. Ответ сильно зависит от того, решение каких задач требуется от ПК. Два производительных ядра (похвастать такими могут только процессоры серии Intel Core i3) хороши, если компьютер постоянно используется для запуска старых игр (созданных до 2010 года), воспроизведения мультимедийного контента (кино, музыки), работы с офисной документацией. В остальных ситуациях разница между 2 и 4-ядерным процессором ощущается не в пользу первого.
При параллельном использовании нескольких нересурсоемких задач нагрузка на ядра распределяется равномерно
Если компьютер покупается не на один год – экономить на ЦП не стоит. Опасаясь потерять объемы продаж, производители регулярно модифицируют процессорный разъем, делая чипы разных поколений несовместимыми между собой. Раньше подобным образом поступать старались лишь в случаях, когда старый сокет не мог использоваться с новыми ЦП из-за серьезных аппаратных ограничений, сейчас количество контактов меняется едва не ежегодно. На фоне этого нередки случаи, когда человек, желающий апгрейда, спустя некоторое время после покупки ПК (обычно год-три) уже не может найти в магазинах более мощный ЦП, совместимый с другими комплектующими его ПК. Поэтому четырехъядерный Intel Core i5 или i7 на данный момент можно назвать лучшим вариантом процессора для домашнего ПК. В бюджетной категории можно рассмотреть как вариант шестиядерный AMD FX.
Большой поклонник качественной китайской техники, любитель четких экранов. Сторонник здоровой конкуренции между производителями. Чутко следит за новостями в мире смартфонов, процессоров, видеокарт и другого железа.
Двухъядерные процессоры Intel и AMD: теория, часть 1
Итак, недавно два микропроцессорных гиганта – Intel и AMD – дружно выпустили свои первые двухъядерные процессоры, которые уже успели наделать много шума. Эти продукты стали не просто очередными конкурирующими новинками от лидеров отрасли персональных компьютеров (как это часто бывало в последние годы), но возвестили своим появлением о начале (не побоимся громких слов) целой эры (в тактическом и даже стратегическом понимании) «настольных» вычислений, очередного витка проникновения профессиональных технологий в потребительский сегмент. Новые микропроцессоры получились не просто интересными, но представляют собой весьма многогранные продукты, тщательное исследование которых не может ограничиться одним-двумя обзорами, написанными по горячим следам (каковыми можно признать большинство статей с тестами, спешно выполненными за несколько дней после получения сэмплов). Мы постараемся рассказать об этих новых продуктах более подробно и, по возможности, с разных сторон, не ограничивая себя жесткими временными рамками. Впрочем, мы также приглашаем к обсуждению этих продуктов и наших читателей – нa нашем Форуме и в виде авторских заметок, которые, при удачном сочетании таланта и смекалки их написавших, могут быть опубликованы на нашем ресурсе. 🙂
Но начнем мы, как и подобает, с теории. Благо, здесь явно есть, что обсудить.
Классификация: SMP, NUMA, кластеры…
Очевидно, что «ноги» у новых процессоров растут из многопроцессорных систем. А вариантов создания многопроцессорных систем – неисчислимое множество: даже простое перечисление всего созданного за прошедшие годы заняло бы слишком много места. Однако существует их общепринятая классификация:
1. SMP-системы (Symmetrical Multi Processor systems). В подобной системе все процессоры имеют совершенно равноправный доступ к общей оперативной памяти (см. рисунок). Работать с такими системами программистам – сущее удовольствие (если, конечно, создание многопоточного кода можно назвать «удовольствием»), поскольку не возникает никаких специфичных «особенностей», связанных с архитектурой компьютера. Но, к сожалению, создавать подобные системы крайне трудно: 2-4 процессора – практический предел для стоящих разумные деньги SMP-систем. Конечно, за пару сотен тысяч долларов можно купить системы и с большим числом процессоров… но при цене в несколько миллионов (!) долларов за SMP с 32-мя CPU становится экономически более целесообразно использовать менее дорогостоящие архитектуры.
3. Наконец, последний тип многопроцессорных систем – кластеры. Просто берем некоторое количество «почти самостоятельных» компьютеров (узлы кластера или «ноды») и объединяем их быстродействующими линиями связи. «Общей памяти» здесь может и не быть вообще, но, в принципе, и здесь её несложно реализовать, создав «очень неоднородную» NUMA-систему. Но на практике обычно удобнее работать с кластером в «явном» виде, явно описывая в программе все пересылки данных между его узлами. То есть если для 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
Intel Smithfield: «классика жанра»
При создании многоядерных процессоров для настольных ПК микропроцессорный гигант предпочел пойти на первых порах по пути «наименьшего сопротивления», продолжив традиции создания привычных для себя SMP-систем с общей шиной. Выглядит подобная MP-система чрезвычайно просто: один чипсет, к которому подключается вся оперативная память, и одна процессорная шина, к которой подключены все процессоры:
один чипсет, к которому подключается вся оперативная память, и одна процессорная шина, к которой подключены все процессоры
В случае новеньких двухъядерных процессоров Smithfield два обычных ядра, аналогичных Prescott, просто расположены рядом на одном кристалле кремния и электрически подключены к одной (общей) системной шине. Никакой общей схемотехники у этих ядер нет.
Intel Smithfield чип
У каждого «ядра» Smithfield – свой APIC, вычислительное ядро, кэш-память второго уровня и (что особенно важно) – свой интерфейс процессорной шины (Bus I/F). Последнее обстоятельство означает, что двухъядерный процессор Intel с точки зрения любой внешней логики будет выглядеть в точности как два обыкновенных процессора (типа Intel Xeon).
Сегодняшнее ядро 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
Похожий вариант – когда несколько одинаковых ядер расположены на разных кристаллах, но объединены вместе с одном корпусе процессора (многочиповый процессор). Таким будет 65-нанометровое поколение процессоров семейств Pentium и Xeon на ядрах Presler и Dempsey.
Наконец, ядра могут быть тесно переплетены между собой на одном кристалле и использовать некоторые общие ресурсы кристалла (скажем, шину и кэш-память). Таким является ближайший Itanium на ядре Montecito. А также мобильный Yonah, выход которого обещает наделать очень много шума.
Попутно отметим, что Montecito, изготавливаемый по 90-нм техпроцессу, будет иметь по сравнению с предшественником на 130-нм ядре Madison и ряд других преимуществ: наличие Hyper-Threading (то есть он будет виден в системе как 4 логических процессора), заметно меньшее энергопотребление, более высокую производительность (в 1,5 раза и выше), вчетверо больший размер кэш-памяти (свыше 24 Мбайт: 2×1 Мбайт L2 инструкций, 2×12 Мбайт L3 данных), 1,72 миллиарда транзисторов против 410 миллионов и другое. Выйдет этот процессор в четвертом квартале 2005 года.
Не менее интересным ожидается и первый двухъядерный мобильный процессор Yonah, который должен появиться в начале 2006 года в рамках новой мобильной платформы Napa. Yonah будет иметь два вычислительных ядра, использующих общую 2-мегабайтную кэш-память второго уровня и общий же контроллер системной шины QPB с частотой 667 МГц. Он будет выпускаться по 65-нм технологии в форм-факторах PGA 478 и BGA 479, содержать 151,6 млн. транзисторов, поддерживать технологию XD-bit и, судя по предварительной информации, поддерживать некоторые механизмы прямого взаимодействия ядер между собой.
Более того, Intel не исключают и того, что процессоры на «мобильном» ядре Yonah будут использоваться не только в определенных сегментах рынка настольных компьютеров (для этого уже разработаны и демонстрируются соответствующие мини-концепты домашнего и офисного ПК), но даже в компактных экономичных серверах.
Общие планы перехода Intel на двуядерную и многоядерную архитектуру процессоров показаны на рисунке. Первым восьмиядерным процессором Intel станет, по всей видимости, Tukwila в 2007 году, продолжающая линейку Intel Itanium.
планы перехода Intel на двуядерную и многоядерную архитектуру
Intel Server Roadmap
Аналогично двухъядерность «аукнулась» и в линейке Intel Xeon – отчасти именно из-за увеличения нагрузки на шину QPB, которую используют эти двухъядерные процессоры, Intel и задерживается с выпуском двухъядерных Xeon MP для четырех и более процессорных систем, предпочитая разработать для них новый 90-нм кристалл Paxville, который будет иметь общий на два процессорных ядра контроллер системной шины (чтобы снизить нагрузку на нее), хотя кэш-память по-прежнему будет своя у каждого из ядер. Двухпроцессорные же Xeon на первых порах останутся чисто «двухкристальными» Dempsey.
Платформа на Dempsey
Платформа на Dempsey
Платформа на Paxville
Платформа на Paxville
«Классическая» двухпроцессорная SMP-система с двухъядерными процессорами
«Классическая» двухпроцессорная SMP-система с двухъядерными процессорами
| Немного о терминологии Внимательные читатели уже обратили внимание на «загадочные» блоки с подписями 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
Если смотреть на этот вопрос с чисто технической стороны, то 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-система в миниатюре».














