Многоядерный процессор

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Многоя́дерный проце́ссор — центральный процессор, содержащий два и более вычислительных ядра на одном процессорном кристалле или в одном корпусе.

Терминология[править | править вики-текст]

В английском языке существует два часто употребляемых термина для процессоров, имеющих несколько ядер: multi-core и many-core.

Термин мультиядерный (англ. multi-core[1]) обычно применяется к центральным процессорам, содержащим два и более ядра общего назначения, однако иногда используется и для цифровых сигнальных процессоров (DSP) и систем на кристалле (SoC, СнК). Под многоядерностью процессора понимают, что несколько ядер являются интегрированными на одну интегральную схему (изготовлены на одном кремниевом кристалле). Если же в один корпус были объединены несколько полупроводниковых кристаллов, то конструкцию называют многочиповый модуль (англ. multi-chip module, MCM).

Термином многопроцессорный обозначают компьютеры, имеющие несколько физически раздельных процессоров (например, серверные материнские платы часто имеют 2 или 4 сокета для подключения нескольких чипов), но управляемые одним экземпляром ОС.

Понятие многоядерный[1] (англ. many-core[2] или англ. massively multi-core) может использоваться для описания многоядерных систем, имеющих высокое количество ядер, от десятков до сотен или более. Например, именно название «многоядерный» («many-core») использовалось Intel для вычислителей Intel MIC[3].

Архитектура многоядерных систем[править | править вики-текст]

Архитектура многоядерных процессоров во многом повторяет архитектуру симметричных мультипроцессоров (SMP-машин) только в меньших масштабах и со своими особенностями. В многоядерных процессорах тактовая частота, как правило, намеренно снижена. Это позволяет уменьшить энергопотребление процессора без потери производительности. В некоторых процессорах тактовая частота каждого ядра может меняться в зависимости от его индивидуальной нагрузки. Ядро является полноценным микропроцессором, использующим все достижения микропроцессорной техники: конвейеры, внеочередное исполнение кода, многоуровневый кэш, поддержка векторных команд. Суперскалярность в ядре не используется, так как она реализована самим наличием нескольких ядер в процессоре.

Каждое ядро также может использовать технологию SMT для поочередного исполнения нескольких потоков, создавая иллюзию нескольких «логических процессоров» на основе каждого ядра. На процессорах компании Intel эта технология носит название Hyper-threading и удваивает число логических процессоров по сравнению с физическими. На процессорах Sun UltraSPARC такое увеличение может достигать 8 потоков на ядро.

Многоядерные процессоры можно подразделить по наличию поддержки когерентности (общей) кеш-памяти между ядрами. Бывают процессоры с такой поддержкой и без неё. Способ связи между ядрами:

  • разделяемая шина
  • сеть (Mesh) на каналах точка-точка
  • сеть с коммутатором
  • общая кэш-память

Кэш-память: Во всех существующих на сегодня многоядерных процессорах кеш-памятью 1-го уровня обладает каждое ядро в отдельности, а кеш-память 2-го уровня существует в нескольких вариантах:

  • разделяемая — расположена на одном кристалле с ядрами и доступна каждому из них в полном объёме. Используется в процессорах семейств Intel Core.
  • индивидуальная — отдельные кеши равного объёма, интегрированные в каждое из ядер. Обмен данными из кешей 2-го уровня между ядрами осуществляется через контроллер памяти — интегрированный (Athlon 64 X2, Turion X2, Phenom) или внешний (использовался в Pentium D, в дальнейшем Intel отказалась от такого подхода).

Многоядерные процессоры также имеют гомогенную или гетерогенную архитектуру:

  • гомогенная архитектура — все ядра процессора одинаковы и выполняют одни и те же задачи. Типичные примеры: Intel Core Duo, Sun SPARC T3, AMD Opteron
  • гетерогенная архитектура — ядра процессора выполняют разные задачи. Типичный пример: процессор Cell альянса IBM, Sony и Toshiba, у которого из девяти ядер одно является ядром процессора общего назначения PowerPC, а восемь остальных — специализированными процессорами, оптимизированными для векторных операций, которые используются в игровой приставке Sony PlayStation 3

Производительность[править | править вики-текст]

В приложениях, оптимизированных под многопоточность, наблюдается прирост производительности на многоядерном процессоре. Однако, если приложение не оптимизировано, то оно не будет получать практически никакой выгоды от дополнительных ядер, а может даже выполняться медленнее, чем на процессоре с меньшим количеством ядер, но большей тактовой частотой. Это в основном приложения, разработанные до появления многоядерных процессоров, либо приложения, в принципе не использующие многопоточность.

Большинство операционных систем позволяют выполнять несколько приложений одновременно. При этом достигается выигрыш в производительности, даже если приложения однопоточные.

Наращивание количества ядер[править | править вики-текст]

Первым процессором предназначенным для массового использования, а не для встроенных систем, стал POWER4 с двумя ядрами PowerPC на одном кристалле, выпущенный компанией IBM в 2001 году.

На сегодня многими производителями процессоров, в частности Intel, AMD, IBM, ARM дальнейшее увеличение числа ядер процессоров признано как одно из приоритетных направлений увеличения производительности.

В 2011 году освоено производство 8-ядерных процессоров для домашних компьютеров[4] и 16-ядерных для серверных систем[5].

Имеются экспериментальные разработки процессоров с большим количеством ядер (более 20). Некоторые из таких процессоров уже нашли применение в специфических устройствах.

История массовых многоядерных процессоров[править | править вики-текст]

Двухъядерные процессоры различных архитектур существовали ранее, например IBM PowerPC-970MP (G5), но их использование было ограничено узким кругом специализированных задач.

В апреле 2005 года AMD выпустила 2-ядерный процессор Opteron архитектуры AMD64, предназначенный для серверов. В мае 2005 года Intel выпустила процессор Pentium D архитектуры x86-64, ставший первым 2-ядерным процессором, предназначенным для персональных компьютеров.

В марте 2010 года появились первые 12-ядерные серийные процессоры, которыми стали серверные процессоры Opteron 6100 компании AMD (архитектура x86/x86-64).[6]

В августе 2011 года компанией AMD были выпущены первые 16-ядерные серийные серверные процессоры Opteron серии 6200 (кодовое наименование Interlagos). Процессор Interlagos объединяет в одном корпусе два 8-ядерных (4-модульных) чипа и является полностью совместимым с существующей платформой AMD Opteron серии 6100 (Socket G34).[7]

Сводные данные по истории микропроцессоров и их параметров представлены в обновляющейся английской статье: Хронология микропроцессоров, 2010ые годы. Для получения числа ядер процессора надо умножить поля «Cores per die» и «Dies per module», для получения числа аппаратных потоков — умножить число ядер на число «threads per core». Например, для Xeon E7, Intel: «4, 6, 8, 10» ядер на 1 die на 1-2 аппаратных потоков = максимум 10 ядер и 20 аппаратных потоков, AMD FX «Bulldozer» Interlagos «4-8» на 2 на 1 = максимум 16 ядер и 16 потоков.

История экспериментальных многоядерных процессоров[править | править вики-текст]

27 сентября 2006 года Intel представила прототип 80-ядерного процессора.[8] Предполагается, что массовое производство подобных процессоров станет возможно не раньше перехода на 32-нанометровый техпроцесс.

20 августа 2007 года компания Tilera, анонсировала чип TILE64 (англ.) с 64 процессорными ядрами и встроенной высокопроизводительной сетью, посредством которой обмен данными между различными ядрами может происходить со скоростью до 32 Тбит/с.[9][10]

26 октября 2009 года Tilera анонсировала[11] 100-ядерный процессор широкого назначения серии TILE-Gx (англ.). Каждое процессорное ядро представляет собой отдельный процессор с кеш-памятью 1 и 2 уровней. Ядра, память и системная шина связаны посредством топологии mesh network. Процессоры производятся по 40-нм техпроцессу и работают на тактовой частоте 1,5 ГГц. Выпуск 100-ядерных процессоров назначен на начало 2011 года.

2 декабря 2009 года Intel представила одночиповый «облачный» Single-chip Cloud Computer (SCC) компьютер, представляющий собой 48-ядерный чип. «Облачность» процессора состоит в том, что все 48 ядер сообщаются между собой как сетевые узлы. SCC — часть проекта, целью которого является создание 100-ядерного процессора. Ожидается, что некоторые функции SCC появятся в серийных процессорах Intel в 2010 году.[12]

В июне 2011 года Intel раскрыла детали разрабатываемой архитектуры Many Integrated Core (MIC) — эта технология выросла из проекта Larrabee. Микропроцессоры на основе этой архитектуры получат более 50 микроядер архитектуры x86 и начнут производиться в 2012 году по 22-нм техпроцессу. Эти микропроцессоры не могут быть использованы в качестве центрального процессора, но из нескольких чипов этой архитектуры будут строиться вычислительные ускорители в виде отдельной карты расширения и конкурировать на рынках GPGPU и высокопроизводительных вычислений с решениями типа Nvidia Tesla и AMD FireStream.[13] По опубликованному в 2012 году описанию архитектуры, возможны чипы с количеством ядер до 60.

В октябре 2011 года компания Adapteva представила 64-ядерные микропроцессоры Epiphany IV, которые показывают производительность до 70 гигафлопс (SP), при этом потребляя менее 1 Вт электроэнергии. Микропроцессоры спроектированы с использованием RISC-архитектуры и, ознакомительные образцы планировалось произвести в 2012 году по 28-нм техпроцессу GlobalFoundries. Данные процессоры не могут быть использованы в качестве центрального процессора, но компания Adapteva предлагает использовать их в качестве сопроцессора для таких сложных задач, как распознавание лиц или жестов пользователя. Компания Adapteva утверждает, что в дальнейшем число ядер данного микропроцессора может быть доведено до 4096[14][15].

В январе 2012 года компания ZiiLabs (дочернее предприятие Creative Technology) анонсировала 100-ядерную систему на чипе ZMS-40. Эта система, объединяющая 4-ядерный процессор ARM Cortex-A9 1,5 ГГц (с мультимедийными блоками Neon) и массив из 96 более простых и менее универсальных вычислительных ядер StemCell. Ядра StemCell — это энергоэффективная архитектура SIMD, пиковая производительность при вычислениях с плавающей запятой (32 бит) — 50 гигафлопс, ядра которой работают скорее как GPU в других системах на чипе, и могут быть использованы для обработки видео, изображений и аудио, для ускорения 3D- и 2D-графики и других мультимедийных задач (поддерживается OpenGL ES 2.0 и OpenCL 1.1)[16].

Многоядерные контроллеры[править | править вики-текст]

Существует также тенденция внедрения многоядерных микроконтроллеров в мобильные устройства.

Например:

  • seaForth-24 — новая разработка multi-core MISC-архитектуры Chuck Moore 1 ГГц 24-ядерный асинхронный контроллер.
  • Контроллер от Parallax [2] имеет восемь 32-разрядных процессоров (COG) в одном кристалле P8X32A.
  • Kilocore PowerPC-процессор с 1024 8-битными ядрами, работающими на частоте 125 МГц. На данный момент существует 256-ядерный процессор.

См. также[править | править вики-текст]

Ссылки[править | править вики-текст]

Примечания[править | править вики-текст]

  1. 1 2 Кризис параллельного мира, Сергей Кузнецов: Обзор декабрьского 2009 г. номера журнала Computer (IEEE Computer Society, V. 42, No 12, декабрь, 2009): «архитектур мультиядерных (multicore) и многоядерных (many-core) процессоров»
  2. Programming Many-Core Chips. By András Vajda, page 3
  3. [1]: " для которого ввели этот новый термин вместо привычного multi-core, "
  4. Сайт 3DNews: «Официальный анонс процессоров AMD FX»
  5. Сайт 3DNews: «AMD начала массовые поставки серверных Bulldozer. Настольные откладываются?».
  6. «AMD дала зелёный свет 8- и 12-ядерным процессорам серии Opteron 6100» — overclockers.ua
  7. Сайт 3DNews: «Появились данные о серверных AMD Bulldozer: 3 ГГц максимум?».
  8. Intel продемонстрировала 80-ядерный суперпроцессор будущего. Lenta.ru (27 сентября 2006). Проверено 13 августа 2010. Архивировано из первоисточника 2 марта 2012.
  9. Статья на сайте 3dnews.ru: «Tilera Tile64 — чип с 64 процессорными ядрами»
  10. «Tilera Now Shipping the TILE64 Processor: the World’s Highest Performance Embedded Processor»
  11. Modnews
  12. Статья на сайте lenta.ru: «Intel продемонстрировала 48-ядерный процессор»
  13. Сайт 3DNews: «Intel MIC: 22-нм Knights Corner — в 2012 году, ExaScale — в 2018 году»
  14. Сайт 3DNews: «64-ядерный чип от Adapteva может быть использован в смартфонах и планшетах», 05.10.2011
  15. Adapteva скоро начнет поставки ознакомительных образцов 28-нанометровых 64-ядерных процессоров E64G4 // Ixbt.com, 21 Марта, 2012
  16. Сайт 3DNews: «ZiiLabs представила „4+96-ядерный“ процессор ZMS-40»