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

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

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

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

В английском языке существует два часто употребляемых термина для процессоров, имеющих несколько ядер: 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].

Мультипроцессор на кристалле (single-chip multiprocessor, on-chip multiprocessor, chip multiprocessing, CMP) - так ранние исследователи называли свои проекты размещения нескольких процессоров на одной подложке[4][5][6].

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

Архитектура многоядерных процессоров во многом повторяет архитектуру симметричных мультипроцессоров (SMP-машин) только в меньших масштабах и со своими особенностями.

Первые многоядерные процессоры (first generation CMP) представляли собой самые простые схемы: два процессорных ядра размещенные на одном кристалле без разделения каких либо ресурсов кроме шины памяти (например, Sun UltraSPARC IV и Intel Pentium D). "Настоящим многоядерным" (second generation CMP) процессор считается, когда его вычислительные ядра совместно используют кэш третьего или второго уровня: например, Sun UltraSPARC IV+, Intel Core Duo и все современные ныне многоядерные процессоры.

В многоядерных процессорах тактовая частота, как правило, намеренно снижена. Это позволяет уменьшить энергопотребление процессора без потери производительности: энергопотребление растёт как куб от роста частоты процессора. Удвоив количество ядер процессора и снизив в двое их тактовую частоту можно получить практически ту же производительность при этом энергопотребление такого процессора снизится в 4 раза.

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

Суперскалярность в ядре присутствует не всегда, если например производитель процессора стремится максимально упростить ядро.

Каждое ядро может использовать технологию временной многопоточности или, если оно суперскалярное, технологию SMT для одновременного исполнения нескольких потоков, создавая иллюзию нескольких «логических процессоров» на основе каждого ядра. На процессорах компании Intel эта технология носит название Hyper-threading и удваивает число логических процессоров по сравнению с физическими. На процессорах Sun UltraSPARC T2 (2007 г.) такое увеличение может достигать 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.

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

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

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

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

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

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

POWER[править | править вики-текст]

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

Двухядерный IBM PowerPC-970MP (G5) был представлен в 2005 году. Этим процессором оснащались последние Power Mac G5.

SPARC[править | править вики-текст]

В марте 2004 года компания Sun Microsystems представила первый двухядерный процессор архитектуры SPARC: UltraSPARC IV - CMP первого поколения. Процессором второго поколения CMP стал UltraSPARC IV+ (середина 2005 года), где два ядра процессора совместно использовали off-chip кэш 3-ого уровня и on-chip кэш 2-ого уровня.

Компания Fujitsu в своей линейке SPARC64 представила двухядерный процессор SPARC64 VI только в 2007 году.

x86[править | править вики-текст]

В апреле 2005 года AMD выпустила 2-ядерный процессор Opteron архитектуры AMD64, предназначенный для серверов.

В мае 2005 года Intel выпустила процессор Pentium D архитектуры x86-64, ставший первым 2-ядерным процессором, предназначенным для персональных компьютеров. Это был "быстрый" ответ компании Intel на вызов компании AMD. По сути Pentium D, созданный на основе ведущей у Intel архитектуры NetBurst, состоял из двух раздельных процессоров, помещенных на одну подложку, без каких либо общих элементов. Так как компания Intel отказалась от архитектуры NetBurst в конце 2005 года, развитие Pentium D не получил. Настоящий многоядерный процессор Core Duo на более экономичной архитектуре Core был выпущен компанией Intel в январе 2006 года.

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

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

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

По состоянию на 2016 год Intel выпускает процессоры для серверов Xeon E7 - с количеством ядер от 4 до 24.[11][12] (E5 - до 22 ядер).

Сводные данные по истории микропроцессоров и их параметров представлены в обновляющейся английской статье: Хронология микропроцессоров, 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 года на форуме разработчиков "IDF Fall" Intel продемонстрировал экспериментальный 80 ядерный чип с производительностью до 1 TFLOPS. Каждое ядро работало с тактовой частотой 3,16 ГГц, энергопотребление чипа достигало около 100 Вт[13].

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

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

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

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

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

[19][20].

В январе 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)[21].

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

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

Например:

  • seaForth-24 [22] — новая разработка многоядерной MISC-архитектуры Чака Мура: 1 ГГц 24-ядерный асинхронный контроллер.
  • Контроллер от Parallax (англ.) [23] имеет восемь 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. The Case for a Single-Chip Multiprocessor - Kunle Olukotun, Basem A. Nayfeh, Lance Hammond, Ken Wilson, and Kunyung Chang - Appears in Proceedings Seventh International Symp. Architectural Support for Programming Languages and Operating Systems (ASPLOS VII), Cambridge, MA, October 1996
  5. Stanford Hydra Single-Chip Multiprocessor
  6. ChipMultiprocessor Architecture: Techniques to Improve Throughput and Latency - Kunle Olukotun, Lance Hammond, James Laudon - 2007
  7. «AMD дала зелёный свет 8- и 12-ядерным процессорам серии Opteron 6100» — overclockers.ua
  8. Сайт 3DNews: «Официальный анонс процессоров AMD FX»
  9. Сайт 3DNews: «AMD начала массовые поставки серверных Bulldozer. Настольные откладываются?».
  10. Сайт 3DNews: «Появились данные о серверных AMD Bulldozer: 3 ГГц максимум?».
  11. Intel® Xeon® Processor E7 Family
  12. Intel unleashes new Xeon E7 v4 CPUs including 24-core monster | TechRadar
  13. Intel продемонстрировала 80-ядерный суперпроцессор будущего. Lenta.ru (27 сентября 2006). Проверено 13 августа 2010. Архивировано из первоисточника 2 марта 2012.
  14. Статья на сайте 3dnews.ru: «Tilera Tile64 — чип с 64 процессорными ядрами»
  15. «Tilera Now Shipping the TILE64 Processor: the World’s Highest Performance Embedded Processor»
  16. Modnews
  17. Статья на сайте lenta.ru: «Intel продемонстрировала 48-ядерный процессор»
  18. Сайт 3DNews: «Intel MIC: 22-нм Knights Corner — в 2012 году, ExaScale — в 2018 году»
  19. Сайт 3DNews: «64-ядерный чип от Adapteva может быть использован в смартфонах и планшетах», 05.10.2011
  20. Adapteva скоро начнет поставки ознакомительных образцов 28-нанометровых 64-ядерных процессоров E64G4 // Ixbt.com, 21 Марта, 2012
  21. Сайт 3DNews: «ZiiLabs представила „4+96-ядерный“ процессор ZMS-40»
  22. http://www.intellasys.net/index.php?option=com_content&task=view&id=35
  23. Propeller | Parallax Inc

Литература[править | править вики-текст]

  • (1999) Processor Architecture - From Dataflow to Superscalar and Beyond (ISBN 3540647988)
  • (2007) Chip Multiprocessor Architecture - Techniques to Improve Throughput and Latency (ISBN 159829122X)
  • (2008) OpenSPARC Internals (ISBN 0557019745)
  • (2009) Microprocessor Architecture - From Simple Pipelines to Chip Multiprocessors (ISBN 0521769922)

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