Многоядерный процессор
Многоя́дерный проце́ссор — центральный процессор, содержащий два и более вычислительных ядра на одном процессорном кристалле или в одном корпусе.
ТерминологияПравить
В английском языке существует два часто употребляемых термина для процессоров, имеющих несколько ядер: 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 году.
2-ядерный IBM PowerPC-970MP (G5) был представлен в 2005 году. Этим процессором оснащались последние Power Mac G5.
SPARCПравить
В марте 2004 года компания Sun Microsystems представила первый 2-ядерный процессор архитектуры SPARC: UltraSPARC IV — CMP первого поколения. Процессором второго поколения CMP стал UltraSPARC IV+ (середина 2005 года), где два ядра процессора совместно использовали off-chip кэш 3-го уровня и on-chip кэш 2-го уровня.
Компания Fujitsu в своей линейке SPARC64 представила 2-ядерный процессор 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 ядер).
В феврале 2020 года компания AMD выпустила в продажу первый 64-ядерный процессор для домашних компьютеров AMD Ryzen Threadripper 3990X[13].
Сводные данные по истории микропроцессоров и их параметров представлены в обновляющейся английской статье: Хронология микропроцессоров, 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 Вт[14].
20 августа 2007 года компания Tilera, анонсировала чип TILE64 (англ.) (рус. с 64 процессорными ядрами и встроенной высокопроизводительной сетью, посредством которой обмен данными между различными ядрами может происходить со скоростью до 32 Тбит/с.[15][16]
26 октября 2009 года Tilera анонсировала[17] 100-ядерный процессор широкого назначения серии TILE-Gx (англ.). Каждое процессорное ядро представляет собой отдельный процессор с кэш-памятью 1 и 2 уровней. Ядра, память и системная шина связаны посредством топологии mesh network. Процессоры производятся по 40-нм техпроцессу и работают на тактовой частоте 1,5 ГГц. Выпуск 100-ядерных процессоров назначен на начало 2011 года.
2 декабря 2009 года Intel представила одночиповый «облачный» Single-chip Cloud Computer (SCC) компьютер, представляющий собой 48-ядерный чип. «Облачность» процессора состоит в том, что все 48 ядер сообщаются между собой как сетевые узлы. SCC — часть проекта, целью которого является создание 100-ядерного процессора[18].
В июне 2011 года Intel раскрыла детали разрабатываемой архитектуры Many Integrated Core (MIC) — эта технология выросла из проекта Larrabee. Микропроцессоры на основе этой архитектуры получат более 50 микроядер архитектуры x86 и начнут производиться в 2012 году по 22-нм техпроцессу. Эти микропроцессоры не могут быть использованы в качестве центрального процессора, но из нескольких чипов этой архитектуры будут строиться вычислительные ускорители в виде отдельной карты расширения и конкурировать на рынках GPGPU и высокопроизводительных вычислений с решениями типа Nvidia Tesla и AMD FireStream.[19] По опубликованному в 2012 году описанию архитектуры, возможны чипы с количеством ядер до 60.
В октябре 2011 года компания Adapteva (англ.) (рус. представила 64-ядерные микропроцессоры Epiphany IV (англ.) (рус., которые показывают производительность до 70 гигафлопс (SP), при этом потребляя менее 1 Вт электроэнергии. Микропроцессоры спроектированы с использованием RISC-архитектуры и, ознакомительные образцы планировалось произвести в 2012 году по 28-нм техпроцессу GlobalFoundries. Данные процессоры не могут быть использованы в качестве центрального процессора, но компания Adapteva (англ.) (рус. предлагает использовать их в качестве сопроцессора для таких сложных задач, как распознавание лиц или жестов пользователя. Компания Adapteva утверждает, что в дальнейшем число ядер данного микропроцессора может быть доведено до 4096 Планируется, что 4096-ядерный процессор в основной версии (700 МГц), по оценкам, позволит получить 5,6 TFLOPS, потребляя всего 80 Ватт.
В январе 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)[22].
В августе 2019 года компания Cerebras Systems[en] представила самый большой в мире многоядерный суперпроцессор Cerebras Wafer Scale Engine; он имеет более 1,2 триллиона транзисторов на 400 000 ядрах и занимает почти всю площадь полупроводниковой пластины диаметром 300 мм.[23]. В 2020 г. они же создали самый большой процессор в истории вычислительной техники; в испытаниях он обошёл по производительности суперкомпьютер из первой сотни общемирового рейтинга[24].
Многоядерные контроллерыПравить
Существует также тенденция внедрения многоядерных микроконтроллеров в мобильные устройства.
Например:
- seaForth-24[25] — новая разработка многоядерной MISC-архитектуры Чака Мура: 1 ГГц 24-ядерный асинхронный контроллер.
- Контроллер от Parallax (англ.) (рус.[26] имеет восемь 32-разрядных процессоров (COG) в одном кристалле P8X32A.
- Kilocore PowerPC-процессор с 1024 8-битными ядрами, работающими на частоте 125 МГц. На данный момент существует 256-ядерный процессор.
См. такжеПравить
ПримечанияПравить
- ↑ 1 2 Кризис параллельного мира Архивная копия от 4 октября 2013 на Wayback Machine, Сергей Кузнецов: Обзор декабрьского 2009 г. номера журнала Computer (IEEE Computer Society, V. 42, No 12, декабрь, 2009): «архитектур мультиядерных (multicore) и многоядерных (many-core) процессоров»
- ↑ Programming Many-Core Chips. By András Vajda Архивная копия от 21 октября 2013 на Wayback Machine, page 3
- ↑ [1] Архивная копия от 4 октября 2013 на Wayback Machine: " для которого ввели этот новый термин вместо привычного multi-core, "
- ↑ 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
- ↑ Stanford Hydra Single-Chip Multiprocessor (неопр.). Дата обращения: 4 сентября 2016. Архивировано из оригинала 29 августа 2007 года.
- ↑ ChipMultiprocessor Architecture: Techniques to Improve Throughput and Latency — Kunle Olukotun, Lance Hammond, James Laudon — 2007
- ↑ «AMD дала зелёный свет 8- и 12-ядерным процессорам серии Opteron 6100» Архивная копия от 30 сентября 2010 на Wayback Machine — overclockers.ua
- ↑ Сайт 3DNews: «Официальный анонс процессоров AMD FX» Архивная копия от 15 октября 2011 на Wayback Machine
- ↑ Сайт 3DNews: «AMD начала массовые поставки серверных Bulldozer. Настольные откладываются?» Архивная копия от 5 ноября 2011 на Wayback Machine.
- ↑ Сайт 3DNews: «Появились данные о серверных AMD Bulldozer: 3 ГГц максимум?» Архивная копия от 18 сентября 2011 на Wayback Machine.
- ↑ Intel® Xeon® Processor E7 Family (неопр.). Дата обращения: 3 августа 2016. Архивировано 9 августа 2016 года.
- ↑ Intel unleashes new Xeon E7 v4 CPUs including 24-core monster | TechRadar (неопр.). Дата обращения: 3 августа 2016. Архивировано 10 августа 2016 года.
- ↑ AMD сегодня начнёт продажи 64-ядерного Ryzen Threadripper 3990X (рус.). 3DNews - Daily Digital Digest. Дата обращения: 28 июля 2020. Архивировано 10 февраля 2020 года.
- ↑ Intel продемонстрировала 80-ядерный суперпроцессор будущего (неопр.). Lenta.ru (27 сентября 2006). Дата обращения: 13 августа 2010. Архивировано 3 января 2012 года.
- ↑ Статья на сайте 3dnews.ru: «Tilera Tile64 — чип с 64 процессорными ядрами» Архивная копия от 10 сентября 2010 на Wayback Machine
- ↑ «Tilera Now Shipping the TILE64 Processor: the World’s Highest Performance Embedded Processor» (неопр.). Дата обращения: 19 октября 2018. Архивировано из оригинала 23 марта 2010 года.
- ↑ Modnews
- ↑ Статья на сайте lenta.ru: «Intel продемонстрировала 48-ядерный процессор» Архивная копия от 26 августа 2010 на Wayback Machine
- ↑ Сайт 3DNews: «Intel MIC: 22-нм Knights Corner — в 2012 году, ExaScale — в 2018 году» Архивная копия от 10 ноября 2011 на Wayback Machine
- ↑ Сайт 3DNews: «64-ядерный чип от Adapteva может быть использован в смартфонах и планшетах» Архивная копия от 8 октября 2011 на Wayback Machine, 05.10.2011
- ↑ Adapteva скоро начнет поставки ознакомительных образцов 28-нанометровых 64-ядерных процессоров E64G4 Архивная копия от 11 августа 2016 на Wayback Machine // Ixbt.com, 21 Марта, 2012
- ↑ Сайт 3DNews: «ZiiLabs представила „4+96-ядерный“ процессор ZMS-40» Архивная копия от 15 января 2012 на Wayback Machine
- ↑ * The first computer chip with a trillion transistors Архивная копия от 8 декабря 2019 на Wayback Machine // обзорная статья The Economist, Dec 7th 2019 (англ.)
- Cerebras reveals world’s 'largest computer chip' for AI tasks Архивная копия от 11 января 2020 на Wayback MachineBBC // 19 August 2019 (англ.)
- ↑ Крупнейший в мире процессор обогнал по производительности суперкомпьютер Архивная копия от 27 ноября 2020 на Wayback Machine // Вести.ру, 27 ноября 2020
- ↑ Архивированная копия (неопр.). Дата обращения: 15 апреля 2008. Архивировано из оригинала 21 июля 2011 года.
- ↑ Propeller | Parallax Inc (неопр.). Дата обращения: 15 апреля 2008. Архивировано 29 июля 2009 года.
ЛитератураПравить
- (1999) Processor Architecture — From Dataflow to Superscalar and Beyond (ISBN 3540647988) (англ.)
- Кунле Олукотун. Chip Multiprocessor Architecture: Techniques to Improve Throughput and Latency. — Morgan and Claypool Publishers, 2007. — 154 p. — ISBN 159829122X. (англ.)
- (2008) OpenSPARC Internals (ISBN 0557019745) (англ.)
- (2009) Microprocessor Architecture — From Simple Pipelines to Chip Multiprocessors (ISBN 0521769922) (англ.)
- Многоядерные процессоры. Учебный курс. А. В. Калачев ISBN 978-5-9963-0349-6
- Mario Nemirovsky, Dean M. Tullsen. Multithreading Architecture. — Morgan and Claypool Publishers, 2013. — 1608458555 p. — ISBN 1608458555. (англ.)
СсылкиПравить
- Двухъядерные процессоры Intel и AMD: теория: часть 1 Архивная копия от 20 августа 2010 на Wayback Machine, часть 2 Архивная копия от 25 августа 2010 на Wayback Machine // Ferra.ru,й июнь 2005
- Вячеслав Любченко, Юрий Тяжлов Осторожно: многоядерный процессор // Osp.ru, июнь 2007
- Многоядерные процессоры /ретроспектива с 2005 года/ : Шестиядерные процессоры Intel Core i5 и Core i7 (Coffee Lake) // IXBT.com, окт 2017