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

Микропроцессор с более чем одним процессорным блоком
Схема универсального двухъядерного процессора с локальными кэшами уровня 1 ЦП и общим кэшем уровня 2 на кристалле
Двухъядерный процессор Intel Core 2 Duo E6750
Двухъядерный процессор AMD Athlon X2 6400+

Многоядерный процессор ( MCP ) — это микропроцессор на одной интегральной схеме (ИС) с двумя или более отдельными центральными процессорами (ЦП), называемыми ядрами , чтобы подчеркнуть их множественность (например, двухъядерный или четырехъядерный ). Каждое ядро ​​считывает и выполняет инструкции программы , [1] в частности, обычные инструкции ЦП (такие как добавление, перемещение данных и переход). Однако MCP может выполнять инструкции на отдельных ядрах одновременно, увеличивая общую скорость для программ, поддерживающих многопоточность или другие методы параллельных вычислений . [2] Производители обычно интегрируют ядра на один кристалл ИС , известный как чип-мультипроцессор (CMP), или на несколько кристаллов в одном корпусе чипа . По состоянию на 2024 год микропроцессоры, используемые почти во всех новых персональных компьютерах, являются многоядерными.

Многоядерный процессор реализует многопроцессорность в одном физическом корпусе. Разработчики могут связывать ядра в многоядерном устройстве тесно или свободно. Например, ядра могут совместно использовать кэши или нет , и они могут реализовывать методы передачи сообщений или межъядерной связи с общей памятью . Обычные сетевые топологии, используемые для соединения ядер, включают шину , кольцо , двумерную сетку и перекрестную . Однородные многоядерные системы включают только идентичные ядра; неоднородные многоядерные системы имеют ядра, которые не идентичны (например, big.LITTLE имеет неоднородные ядра, которые совместно используют один и тот же набор инструкций , в то время как AMD Accelerated Processing Units имеет ядра, которые не используют один и тот же набор инструкций). Так же, как и в однопроцессорных системах, ядра в многоядерных системах могут реализовывать такие архитектуры, как VLIW , суперскалярная , векторная или многопоточная .

Многоядерные процессоры широко используются во многих областях применения, включая общее назначение , встроенные , сетевые , цифровую обработку сигналов (DSP) и графику (GPU). Количество ядер достигает даже десятков, а для специализированных чипов более 10 000, [3] а в суперкомпьютерах (т. е. кластерах чипов) количество может превышать 10 миллионов (а в одном случае до 20 миллионов элементов обработки в дополнение к хост-процессорам). [4]

Улучшение производительности, достигаемое за счет использования многоядерного процессора, во многом зависит от используемых программных алгоритмов и их реализации. В частности, возможный прирост ограничен долей программного обеспечения, которое может работать параллельно на нескольких ядрах; этот эффект описывается законом Амдаля . В лучшем случае, так называемые ошеломляюще параллельные задачи могут реализовать факторы ускорения, близкие к числу ядер, или даже больше, если задача разделена достаточно, чтобы поместиться в кэш(и) каждого ядра, избегая использования гораздо более медленной памяти основной системы. Большинство приложений, однако, не ускоряются так сильно, если программисты не вкладывают усилия в рефакторинг . [5]

Распараллеливание программного обеспечения является важной текущей темой исследований. Коинтеграция многопроцессорных приложений обеспечивает гибкость в проектировании сетевой архитектуры. Адаптируемость в параллельных моделях является дополнительной функцией систем, использующих эти протоколы. [6]

На потребительском рынке двухъядерные процессоры (то есть микропроцессоры с двумя блоками) стали обычным явлением на персональных компьютерах в конце 2000-х годов. [7] Четырехъядерные процессоры также были приняты в ту эпоху для более мощных систем, прежде чем стать стандартом. В конце 2010-х годов шестиядерные процессоры (шесть ядер) начали входить в мейнстрим [8] и с начала 2020-х годов обогнали четырехъядерные во многих областях. [9]

Терминология

Термины «многоядерный» и «двухъядерный» чаще всего относятся к какому-либо центральному процессору (ЦП), но иногда также применяются к цифровым сигнальным процессорам (ЦСП) и системам на кристалле (СнК). Эти термины обычно используются только для обозначения многоядерных микропроцессоров, которые производятся на одном кристалле интегральной схемы ; отдельные кристаллы микропроцессоров в одном корпусе обычно называются другими именами, например, многочиповый модуль . В этой статье термины «многоядерный» и «двухъядерный» используются для ЦП, производимых на одной и той же интегральной схеме, если не указано иное.

В отличие от многоядерных систем, термин « многопроцессорный процессор» относится к нескольким физически отдельным процессорным блокам (которые часто содержат специальные схемы для облегчения связи между ними).

Термины «многоядерный» и «массово многоядерный» иногда используются для описания многоядерных архитектур с особенно большим количеством ядер (от десятков до тысяч [10] ). [11]

Некоторые системы используют много ядер программного микропроцессора, размещенных на одной ПЛИС . Каждое «ядро» можно считать « ядром интеллектуальной собственности полупроводника », а также ядром ЦП. [ требуется цитата ]

Разработка

В то время как технология производства улучшается, уменьшая размер отдельных вентилей, физические ограничения микроэлектроники на основе полупроводников стали основной проблемой проектирования. Эти физические ограничения могут вызывать значительные проблемы с рассеиванием тепла и синхронизацией данных. Для повышения производительности ЦП используются различные другие методы. Некоторые методы параллелизма на уровне инструкций (ILP), такие как суперскалярный конвейер , подходят для многих приложений, но неэффективны для других, которые содержат труднопредсказуемый код. Многие приложения лучше подходят для методов параллелизма на уровне потоков (TLP), и несколько независимых ЦП обычно используются для увеличения общего TLP системы. Сочетание увеличенного доступного пространства (благодаря усовершенствованным производственным процессам) и спроса на увеличенный TLP привело к разработке многоядерных ЦП.

Коммерческие стимулы

Несколько бизнес-мотивов стимулируют развитие многоядерных архитектур. В течение десятилетий можно было улучшить производительность ЦП, уменьшив площадь интегральной схемы (ИС), что снижало стоимость одного устройства на ИС. В качестве альтернативы, для той же площади схемы, в конструкции можно было использовать больше транзисторов, что увеличивало функциональность, особенно для архитектур сложных вычислений с набором команд (CISC). Тактовые частоты также увеличились на порядки в десятилетия конца 20-го века, с нескольких мегагерц в 1980-х до нескольких гигагерц в начале 2000-х.

Поскольку темпы улучшения тактовой частоты замедлились, возросло использование параллельных вычислений в форме многоядерных процессоров для повышения общей производительности обработки. Несколько ядер использовались на одном и том же чипе ЦП, что могло затем привести к лучшим продажам чипов ЦП с двумя или более ядрами. Например, Intel выпустила 48-ядерный процессор для исследований в области облачных вычислений; каждое ядро ​​имеет архитектуру x86 . [12] [13]

Технические факторы

Поскольку производители компьютеров уже давно реализуют симметричную многопроцессорную архитектуру (SMP) с использованием дискретных ЦП, проблемы, связанные с реализацией архитектуры многоядерных процессоров и ее программной поддержкой, хорошо известны.

Кроме того:

  • Использование проверенной конструкции ядра обработки без внесения изменений в архитектуру значительно снижает риск проектирования.
  • Для процессоров общего назначения, большая часть мотивации для многоядерных процессоров исходит из значительного уменьшения прироста производительности процессора от увеличения рабочей частоты . Это связано с тремя основными факторами: [14]
    1. Стена памяти ; увеличивающийся разрыв между скоростями процессора и памяти. Это, по сути, подталкивает к увеличению размера кэша, чтобы скрыть задержку памяти. Это помогает только в той степени, в которой пропускная способность памяти не является узким местом в производительности.
    2. Стена ILP ; возрастающая сложность нахождения достаточного параллелизма в одном потоке инструкций для загрузки высокопроизводительного одноядерного процессора.
    3. Power wall ; тенденция к потреблению экспоненциально растущей мощности (и, следовательно, также к генерация экспоненциально растущего тепла) с каждым факторным увеличением рабочей частоты. Это увеличение может быть смягчено путем « уменьшения » процессора путем использования меньших трасс для той же логики. Power wall создает проблемы производства, проектирования системы и развертывания, которые не были оправданы перед лицом уменьшенного прироста производительности из-за memory wall и ILP wall . [ требуется цитата ]

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

Преимущества

Близость нескольких ядер ЦП на одном кристалле позволяет схеме когерентности кэша работать на гораздо более высокой тактовой частоте, чем это возможно, если бы сигналы выходили за пределы кристалла. Объединение эквивалентных ЦП на одном кристалле значительно повышает производительность операций отслеживания кэша (альтернатива: отслеживание шины ). Проще говоря, это означает, что сигналы между различными ЦП проходят более короткие расстояния, и, следовательно, эти сигналы деградируют меньше. Эти более качественные сигналы позволяют отправлять больше данных за заданный период времени, поскольку отдельные сигналы могут быть короче и не должны повторяться так часто.

Предполагая, что кристалл физически помещается в корпус, многоядерные конструкции ЦП требуют гораздо меньше места на печатной плате (PCB), чем многочиповые конструкции SMP . Кроме того, двухъядерный процессор потребляет немного меньше энергии, чем два связанных одноядерных процессора, в основном из-за уменьшенной мощности, необходимой для управления внешними по отношению к чипу сигналами. Кроме того, ядра имеют некоторые общие схемы, такие как кэш L2 и интерфейс к системной шине (FSB). С точки зрения конкурирующих технологий для доступной области кремниевого кристалла, многоядерная конструкция может использовать проверенные конструкции библиотеки ядер ЦП и производить продукт с меньшим риском ошибки проектирования, чем разработка новой конструкции с более широким ядром. Кроме того, добавление большего кэша страдает от убывающей отдачи.

Многоядерные чипы также обеспечивают более высокую производительность при меньшем энергопотреблении. Это может быть важным фактором в мобильных устройствах, работающих от батарей. Поскольку каждое ядро ​​в многоядерном ЦП, как правило, более энергоэффективно, чип становится более эффективным, чем имеющий одно большое монолитное ядро. Это обеспечивает более высокую производительность при меньшем энергопотреблении. Однако проблемой здесь являются дополнительные накладные расходы на написание параллельного кода. [15]

Недостатки

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

Интеграция многоядерного чипа может снизить выход годных чипов. Их также сложнее контролировать с точки зрения температуры, чем одноядерные конструкции с меньшей плотностью. Intel частично решила эту первую проблему, создав свои четырехъядерные конструкции, объединив два двухъядерных на одном кристалле с единым кэшем, поэтому можно использовать любые два рабочих двухъядерных кристалла, в отличие от производства четырех ядер на одном кристалле и требуя, чтобы все четыре работали для производства четырехъядерного ЦП. С точки зрения архитектуры, в конечном счете, конструкции с одним ЦП могут лучше использовать площадь поверхности кремния, чем многопроцессорные ядра, поэтому приверженность разработке этой архитектуры может нести риск устаревания. Наконец, чистая вычислительная мощность — не единственное ограничение производительности системы. Два вычислительных ядра, совместно использующие одну и ту же системную шину и пропускную способность памяти, ограничивают реальное преимущество производительности.

Аппаратное обеспечение

Тенденция в разработке процессоров направлена ​​на постоянное увеличение числа ядер, поскольку теоретически возможны процессоры с сотнями или даже тысячами ядер. [16] Кроме того, многоядерные чипы, смешанные с одновременной многопоточностью , памятью на кристалле и специализированными «гетерогенными» (или асимметричными) ядрами, обещают дальнейший рост производительности и эффективности, особенно при обработке мультимедиа, распознавании и сетевых приложениях. Например, ядро ​​big.LITTLE включает высокопроизводительное ядро ​​(называемое «big») и маломощное ядро ​​(называемое «LITTLE»). Существует также тенденция к повышению энергоэффективности за счет сосредоточения внимания на производительности на ватт с расширенным мелкозернистым или сверхмелкозернистым управлением питанием и динамическим масштабированием напряжения и частоты (например, ноутбуки и портативные медиаплееры ).

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

Архитектура

Состав и баланс ядер в многоядерной архитектуре демонстрируют большое разнообразие. Некоторые архитектуры используют одну конструкцию ядра, повторяющуюся последовательно («однородную»), в то время как другие используют смесь разных ядер, каждое из которых оптимизировано для другой, « гетерогенной » роли.

То, как реализованы и интегрированы несколько ядер, существенно влияет как на навыки программирования разработчика, так и на ожидания потребителя относительно приложений и интерактивности по сравнению с устройством. [17] Устройство, рекламируемое как восьмиядерное, будет иметь независимые ядра только в том случае, если оно рекламируется как True Octa-core или в похожем стиле, в отличие от двух наборов четырехъядерных процессоров, каждый из которых имеет фиксированную тактовую частоту. [18] [19]

Статья «Разработчики ЦП обсуждают будущее многоядерных процессоров» Рика Мерритта, EE Times 2008, [20] содержит следующие комментарии:

Чак Мур [...] предположил, что компьютеры должны быть похожи на мобильные телефоны, используя различные специализированные ядра для запуска модульного программного обеспечения, запланированного высокоуровневым интерфейсом программирования приложений.

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

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

Программные эффекты

Устаревшая версия антивирусного приложения может создать новый поток для процесса сканирования, в то время как его поток графического интерфейса будет ожидать команд от пользователя (например, отмены сканирования). В таких случаях многоядерная архитектура малополезна для самого приложения из-за того, что единственный поток выполняет всю тяжелую работу, и невозможности равномерно распределить работу между несколькими ядрами. Программирование действительно многопоточного кода часто требует сложной координации потоков и может легко вносить тонкие и труднообнаружимые ошибки из-за переплетения обработки данных, общих для потоков (см. thread-safety ). Следовательно, такой код гораздо сложнее отлаживать, чем однопоточный код, когда он ломается. Было отмечено отсутствие мотивации для написания потоковых приложений потребительского уровня из-за относительной редкости спроса на потребительском уровне на максимальное использование компьютерного оборудования. Кроме того, последовательные задачи, такие как декодирование алгоритмов энтропийного кодирования , используемых в видеокодеках, невозможно распараллелить, поскольку каждый сгенерированный результат используется для создания следующего результата алгоритма энтропийного декодирования.

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

Телекоммуникационный рынок был одним из первых, кому потребовалась новая конструкция обработки пакетов параллельного пути данных, поскольку произошло очень быстрое внедрение этих многоядерных процессоров для пути данных и плоскости управления. Эти MPU заменят [21] традиционные сетевые процессоры, которые были основаны на фирменном микрокоде или пикокоде .

Методы параллельного программирования могут извлечь выгоду из нескольких ядер напрямую. Некоторые существующие модели параллельного программирования, такие как Cilk Plus , OpenMP , OpenHMPP , FastFlow , Skandium, MPI и Erlang , могут использоваться на многоядерных платформах. Intel представила новую абстракцию для параллелизма C++ под названием TBB . Другие исследовательские работы включают Codeplay Sieve System , Cray's Chapel , Sun's Fortress и IBM's X10 .

Многоядерная обработка также повлияла на возможности разработки современного вычислительного программного обеспечения. Разработчики, программирующие на новых языках, могут обнаружить, что их современные языки не поддерживают многоядерную функциональность. Это требует использования числовых библиотек для доступа к коду, написанному на таких языках, как C и Fortran , которые выполняют математические вычисления быстрее [ требуется ссылка ], чем новые языки, такие как C# . MKL от Intel и ACML от AMD написаны на этих родных языках и используют преимущества многоядерной обработки. Балансировка рабочей нагрузки приложения между процессорами может быть проблематичной, особенно если они имеют разные характеристики производительности. Существуют разные концептуальные модели для решения этой проблемы, например, использование языка координации и программных строительных блоков (библиотек программирования или функций более высокого порядка). Каждый блок может иметь разную собственную реализацию для каждого типа процессора. Пользователи просто программируют, используя эти абстракции, а интеллектуальный компилятор выбирает лучшую реализацию на основе контекста. [22]

Управление параллелизмом приобретает центральную роль в разработке параллельных приложений. Основные шаги в проектировании параллельных приложений:

Разделение
Этап разбиения проекта призван раскрыть возможности параллельного выполнения. Следовательно, основное внимание уделяется определению большого количества небольших задач для получения того, что называется мелкозернистой декомпозицией проблемы.
Коммуникация
Задачи, генерируемые разделом, предназначены для параллельного выполнения, но, как правило, не могут выполняться независимо. Вычисления, которые должны быть выполнены в одной задаче, обычно требуют данных, связанных с другой задачей. Затем данные должны передаваться между задачами, чтобы обеспечить продолжение вычислений. Этот информационный поток указывается на этапе коммуникации проекта.
Агломерация
На третьем этапе разработка переходит от абстракции к конкретному. Разработчики пересматривают решения, принятые на этапах разбиения и коммуникации, с целью получения алгоритма, который будет эффективно выполняться на некотором классе параллельных компьютеров. В частности, разработчики рассматривают, полезно ли объединять или агломерировать задачи, определенные на этапе разбиения, чтобы обеспечить меньшее количество задач, каждая из которых большего размера. Они также определяют, стоит ли реплицировать данные и вычисления.
Картографирование
На четвертом и последнем этапе проектирования параллельных алгоритмов разработчики указывают, где должна выполняться каждая задача. Эта проблема отображения не возникает на однопроцессорных компьютерах или компьютерах с общей памятью, которые обеспечивают автоматическое планирование задач.

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

Лицензирование

Поставщики могут лицензировать некоторое программное обеспечение "на процессор". Это может привести к двусмысленности, поскольку "процессор" может состоять либо из одного ядра, либо из комбинации ядер.

  • Первоначально для некоторого корпоративного программного обеспечения Microsoft продолжала использовать систему лицензирования по количеству сокетов . Однако для некоторого программного обеспечения, такого как BizTalk Server 2013 , SQL Server 2014 и Windows Server 2016 , Microsoft перешла на лицензирование по количеству ядер. [23]
  • Корпорация Oracle считает AMD X2 или двухъядерный процессор Intel одним процессором [ необходима ссылка ], но использует другие показатели для других типов, особенно для процессоров с более чем двумя ядрами. [24]

Встроенные приложения

Встроенная система на сменной плате с процессором, памятью, источником питания и внешними интерфейсами

Встроенные вычисления работают в области процессорной технологии, отличной от области "мейнстримовых" ПК. Те же технологические тяги к многоядерности применяются и здесь. Действительно, во многих случаях приложение является "естественным" приспособлением для многоядерных технологий, если задачу можно легко разделить между различными процессорами.

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

Сетевые процессоры

С 2010 года [обновлять]многоядерные сетевые процессоры стали мейнстримом, и такие компании, как Freescale Semiconductor , Cavium Networks , Wintegra и Broadcom, производят продукцию с восемью процессорами. Для разработчика системы ключевой проблемой является то, как использовать все ядра в этих устройствах для достижения максимальной сетевой производительности на системном уровне, несмотря на ограничения производительности, присущие симметричной многопроцессорной (SMP) операционной системе. Такие компании, как 6WIND, предоставляют портативное программное обеспечение для обработки пакетов, разработанное таким образом, чтобы сетевая плоскость данных работала в среде быстрого пути за пределами операционной системы сетевого устройства. [25]

Цифровая обработка сигнала

В цифровой обработке сигналов наблюдается та же тенденция: у Texas Instruments есть трехъядерный TMS320C6488 и четырехъядерный TMS320C5441, у Freescale — четырехъядерный MSC8144 и шестиядерный MSC8156 (и обе компании заявили, что работают над восьмиядерными преемниками). К новым продуктам относятся семейство Storm-1 от Stream Processors, Inc с 40 и 80 АЛУ общего назначения на чип, все программируемые на C как SIMD-движок, и Picochip с 300 процессорами на одном кристалле, ориентированный на коммуникационные приложения.

Гетерогенные системы

В гетерогенных вычислениях , где система использует более одного типа процессора или ядер, многоядерные решения становятся все более распространенными: Xilinx Zynq UltraScale+ MPSoC имеет четырехъядерный ARM Cortex-A53 и двухъядерный ARM Cortex-R5. Программные решения, такие как OpenAMP, используются для помощи в межпроцессорной коммуникации.

Мобильные устройства могут использовать архитектуру ARM big.LITTLE .

Примеры оборудования

Коммерческий

  • Adapteva Epiphany — многоядерная архитектура процессора, позволяющая разместить на кристалле до 4096 процессоров, хотя в коммерческое производство поступила только версия с 16 ядрами.
  • Aeroflex Gaisler LEON3 , многоядерный SPARC , который также существует в отказоустойчивой версии .
  • Ageia PhysX — многоядерный физический процессор .
  • Ambric Am2045, массив процессоров с массовым параллелизмом (MPPA) на 336 ядер
  • АМД
    • Серия A , двух-, трех- и четырехъядерные ускоренные процессорные блоки (APU).
    • Одноядерные и двухъядерные процессоры для настольных ПК Athlon 64 FX и Athlon 64 X2 .
    • Athlon II , двух-, трех- и четырехъядерные процессоры для настольных ПК.
    • Процессоры серии FX — четырехъядерные, 6- и 8-ядерные для настольных ПК.
    • Opteron — одно-, двух-, четырех-, 6-, 8-, 12- и 16-ядерные процессоры для серверов/рабочих станций.
    • Phenom , двух-, трех- и четырехъядерные процессоры.
    • Phenom II , двух-, трех-, четырех- и шестиядерные процессоры для настольных ПК.
    • Sempron , одно-, двух- и четырехъядерные процессоры начального уровня. [26]
    • Turion , одно- и двухъядерные процессоры для ноутбуков.
    • Ryzen — двух-, четырех-, 6-, 8-, 12-, 16-, 24-, 32- и 64-ядерные процессоры для настольных ПК, мобильных устройств и встраиваемых платформ.
    • Epyc , четырехъядерные, 8-, 12-, 16-, 24-, 32- и 64-ядерные серверные и встраиваемые процессоры.
    • Radeon и FireStream GPU/ GPGPU .
  • Analog Devices Blackfin BF561, симметричный двухъядерный процессор
  • ARM MPCore — это полностью синтезируемый многоядерный контейнер для процессорных ядер ARM11 MPCore и ARM Cortex-A9 MPCore , предназначенный для высокопроизводительных встраиваемых и развлекательных приложений.
  • ASOCS ModemX, до 128 ядер, беспроводные приложения.
  • Системы Азул
    • Vega 1 — 24-ядерный процессор, выпущенный в 2005 году.
    • Vega 2 — 48-ядерный процессор, выпущенный в 2006 году.
    • Vega 3 — 54-ядерный процессор, выпущенный в 2008 году.
  • Бродком
    • SiByte SB1250, SB1255, SB1455
    • Четырехъядерные ARM SoC BCM2836, BCM2837, BCM2710 и BCM2711 (разработаны для разных моделей Raspberry Pi )
  • Cadence Design Systems Tensilica Xtensa LX6, доступная в двухъядерной конфигурации в ESP32 от Espressif Systems
  • ОчиститьСкорость
    • CSX700, 192-ядерный процессор, выпущенный в 2008 году (32/64-битная плавающая точка; целочисленное АЛУ).
  • Cradle Technologies CT3400 и CT3600 — оба многоядерные DSP.
  • Cavium Networks Octeon, 32-ядерный MIPS MPU .
  • Процессор Coherent Logix hx3100, 100-ядерный процессор DSP/GPP.
  • Процессоры Freescale Semiconductor серии QorIQ, до 8 ядер, Power ISA MPU .
  • Hewlett-Packard PA-8800 и PA-8900 , двухъядерные процессоры PA-RISC .
  • ИБМ
    • POWER4 — двухъядерный процессор PowerPC , выпущенный в 2001 году.
    • POWER5 — двухъядерный процессор PowerPC, выпущенный в 2004 году.
    • POWER6 — двухъядерный процессор PowerPC, выпущенный в 2007 году.
    • POWER7 — 4-, 6- и 8-ядерный процессор PowerPC, выпущенный в 2010 году.
    • POWER8 — 12-ядерный процессор PowerPC, выпущенный в 2013 году.
    • POWER9 — 12- или 24-ядерный процессор PowerPC, выпущенный в 2017 году.
    • Power10 — 15- или 30-ядерный процессор PowerPC, выпущенный в 2021 году.
    • PowerPC 970 MP — двухъядерный процессор PowerPC, используемый в Apple Power Mac G5 .
    • Xenon — трёхъядерный микропроцессор PowerPC с поддержкой SMT , используемый в игровой консоли Microsoft Xbox 360 .
    • z10 — четырехъядерный процессор z/Architecture , выпущенный в 2008 году.
    • z196 — четырехъядерный процессор z/Architecture, выпущенный в 2010 году.
    • zEC12 — шестиядерный процессор z/Architecture, выпущенный в 2012 году.
    • z13 — восьмиядерный процессор z/Architecture, выпущенный в 2015 году.
    • z14 — десятиядерный процессор z/Architecture, выпущенный в 2017 году.
    • z15 — двенадцатиядерный процессор z/Architecture, выпущенный в 2019 году.
    • Telum — восьмиядерный процессор z/Architecture, выпущенный в 2021 году.
  • Инфинеон
  • Интел
    • Atom , одно-, двух-, четырехъядерные, 8-, 12- и 16-ядерные процессоры для нетбуков , неттопов , встроенных приложений и мобильных интернет-устройств (MID). [27]
    • Atom SoC (система на кристалле) , одноядерные, двухъядерные и четырехъядерные процессоры для смартфонов и планшетов. [28]
    • Celeron , первый двухъядерный (а позднее и четырехъядерный) процессор для бюджетного/начального уровня рынка. [29] [30]
    • Core Duo , двухъядерный процессор. [31]
    • Core 2 Duo , двухъядерный процессор. [32]
    • Core 2 Quad , 2 двухъядерных кристалла, упакованных в многочиповый модуль. [33]
    • Core i3 , Core i5 , Core i7 и Core i9 — семейство двух-, четырёх-, 6-, 8-, 10-, 12-, 14-, 16- и 18-ядерных процессоров, преемник Core 2 Duo и Core 2 Quad . [34]
    • Itanium , одно-, двух-, четырех- и восьмиядерные процессоры. [35]
    • Pentium , одно-, двух- и четырехъядерные процессоры для рынка начального уровня. [36]
    • Teraflops Research Chip (Polaris), прототип 80-ядерного процессора с тактовой частотой 3,16 ГГц, который, как первоначально заявляла компания, должен был быть выпущен к 2011 году. [37]
    • Xeon двух-, четырех-, 6-, 8-, 10-, 12-, 14-, 15-, 16-, 18-, 20-, 22-, 24-, 26-, 28-, 32-, 48- и 56-ядерные процессоры. [38] [39] [40] [41] [42] [43]
    • Xeon Phi 57-, 60-, 61-, 64-, 68- и 72-ядерные процессоры. [44] [45]
  • IntellaSys
    • SEAforth 40C18, 40-ядерный процессор. [46]
    • SEAforth24 — 24-ядерный процессор, разработанный Чарльзом Х. Муром .
  • Калрей
    • MPPA-256, 256-ядерный процессор, выпущенный в 2012 году (256 используемых ядер VLIW, Network-on-Chip (NoC), 32/64-битный FPU, совместимый с IEEE 754)
  • NetLogic Микросистемы
    • XLP — 32-ядерный четырехпоточный процессор MIPS64 .
    • XLR — восьмиядерный четырехпоточный процессор MIPS64.
    • XLS — восьмиядерный четырехпоточный процессор MIPS64.
  • Нвидиа
    • RTX 3090 (10496 ядер CUDA, ядра GPGPU ; [3] плюс другие более специализированные ядра).
  • Parallax Propeller P8X32 , восьмиядерный микроконтроллер .
  • Серия picoChip PC200 200–300 ядер на устройство для DSP и беспроводной связи.
  • Множество процессоров серии HAL с тесно связанными 16–256 ядрами, общей памятью L1 и аппаратной синхронизацией процессора.
  • Rapport Kilocore KC256, 257-ядерный микроконтроллер с ядром PowerPC и 256 8-битными «вычислительными элементами».
  • Raspberry Pi Ltd. RP2040 , двухъядерный микроконтроллер ARM Cortex-M0+
  • SiCortex «Узел SiCortex» имеет шесть ядер MIPS64 на одном кристалле.
  • SiFive
    • U74 включает 4 ядра
  • Процессор Cell от Sony / IBM / Toshiba — девятиядерный процессор с одним универсальным ядром PowerPC и восемью специализированными SPU (Synergistic Processing Unit), оптимизированными для векторных операций, используемых в Sony PlayStation 3 .
  • Sun Microsystems
    • MAJC 5200, двухъядерный VLIW-процессор.
    • UltraSPARC IV и UltraSPARC IV+, двухъядерные процессоры.
    • UltraSPARC T1 — восьмиядерный 32-поточный процессор.
    • UltraSPARC T2 — восьмиядерный процессор с 64 параллельными потоками.
    • UltraSPARC T3 — шестнадцатиядерный процессор с поддержкой 128 одновременных потоков.
    • SPARC T4 — восьмиядерный процессор с 64 параллельными потоками.
    • SPARC T5 — шестнадцатиядерный процессор с поддержкой 128 параллельных потоков.
  • Санвей
  • Техасские инструменты
    • TMS320C80 MVP — пятиядерный мультимедийный видеопроцессор.
    • TMS320TMS320C66, 2-, 4-, 8-ядерный DSP.
  • Тилера
    • TILE64 — 64-ядерный 32-битный процессор.
    • TILE-Gx , 72-ядерный 64-битный процессор.
  • Программно-определяемый кремниевый четырехъядерный процессор XMOS XS1-G4.

Бесплатно

Академический

Показатели

Исследования и разработки многоядерных процессоров часто сравнивают множество вариантов, и разрабатываются бенчмарки, чтобы помочь в таких оценках. Существующие бенчмарки включают SPLASH-2, PARSEC и COSMIC для гетерогенных систем. [49]

Смотрите также

Примечания

  1. ^ Цифровые сигнальные процессоры (DSP) использовали многоядерные архитектуры гораздо дольше, чем высокопроизводительные процессоры общего назначения. Типичным примером реализации, специфичной для DSP, будет комбинация RISC - ЦП и DSP MPU . Это позволяет разрабатывать продукты, которым требуется процессор общего назначения для пользовательских интерфейсов и DSP для обработки данных в реальном времени; этот тип проектирования распространен в мобильных телефонах . В других приложениях все большее число компаний разрабатывают многоядерные DSP с очень большим количеством процессоров.
  2. ^ Два типа операционных систем могут использовать двухпроцессорный мультипроцессор: секционированная мультипроцессорная обработка и симметричная мультипроцессорная обработка (SMP). В секционированной архитектуре каждый ЦП загружается в отдельные сегменты физической памяти и работает независимо; в ОС SMP процессоры работают в общем пространстве, выполняя потоки внутри ОС независимо.

Ссылки

  1. Рауз, Маргарет (27 марта 2007 г.). «Определение: многоядерный процессор». TechTarget. Архивировано из оригинала 5 августа 2010 г. Получено 6 марта 2013 г.
  2. ^ Шауэр, Брайан. "Многоядерные процессоры – необходимость" (PDF) . Архивировано из оригинала (PDF) 2011-11-25.
  3. ^ ab Smith, Ryan. «NVIDIA анонсирует серию GeForce RTX 30: Ampere для игр, начиная с RTX 3080 и RTX 3090». www.anandtech.com . Получено 15 сентября 2020 г.
  4. ^ "Sunway TaihuLight - Sunway MPP, Sunway SW26010 260C 1,45 ГГц, Sunway | TOP500". www.top500.org . Получено 15.09.2020 .
  5. ^ Suleman, Aater (20 мая 2011 г.). «Что делает параллельное программирование сложным?». FutureChips. Архивировано из оригинала 29 мая 2011 г. Получено 6 марта 2013 г.
  6. ^ Дюран, А (2011). «Ompss: предложение по программированию гетерогенных многоядерных архитектур». Parallel Processing Letters . 21 (2): 173–193. doi :10.1142/S0129626411000151.
  7. ^ "Определение двухъядерности". PCMAG . Получено 2023-10-27 .
  8. ^ "Intel выводит свои шестиядерные процессоры на массовый рынок в 2018 году с семейством Coffee Lake". ZDNET . Получено 27 октября 2023 г.
  9. ^ Алан Декстер (2022-04-05). «Шестиядерные процессоры теперь более популярны, чем четырехъядерные чипы в Steam». PC Gamer . Получено 2024-05-22 .
  10. ^ Шор, Дэвид (ноябрь 2017 г.). «2048-ядерный PEZY-SC2 устанавливает рекорд Green500». WikiChip.
  11. ^ Вайда, Андраш (10 июня 2011 г.). Программирование многоядерных чипов. Спрингер. п. 3. ISBN 978-1-4419-9739-5.
  12. Shrout, Ryan (2 декабря 2009 г.). «Intel Shows 48-core x86 Processor as Single-chip Cloud Computer». Архивировано из оригинала 5 января 2016 г. Получено 17 мая 2015 г.
  13. ^ "Intel представляет 48-ядерный кремниевый чип для облачных вычислений". BBC. 3 декабря 2009 г. Архивировано из оригинала 6 декабря 2012 г. Получено 6 марта 2013 г.
  14. ^ Паттерсон, Дэвид А. «Будущее компьютерной архитектуры». Ежегодный исследовательский симпозиум Berkeley EECS (BEARS), Инженерный колледж, Калифорнийский университет в Беркли, США. 2006.
  15. ^ Suleman, Aater (19 мая 2011 г.). "Вопросы и ответы: экономят ли многоядерные процессоры энергию? На самом деле нет". Архивировано из оригинала 16 декабря 2012 г. Получено 6 марта 2013 г.
  16. ^ Кларк, Джек. «Intel: Почему возможен 1000-ядерный чип». ZDNet . Архивировано из оригинала 6 августа 2015 г. Получено 6 августа 2015 г.
  17. ^ Кудикала, Чакри (27 августа 2016 г.). «Эти 5 мифов о восьмиядерных телефонах на самом деле правдивы». Giz Bot .
  18. ^ "MediaTek Launches MT6592 True Octa-Core Mobile Platform" (пресс-релиз). MediaTek. 20 ноября 2013 г. Архивировано из оригинала 29 октября 2020 г.
  19. ^ "Что такое процессор Octa-core". Samsung. Архивировано из оригинала 17 января 2022 г. Смартфоны Galaxy работают на процессорах Octa-core (2,3 ГГц Quad + 1,6 ГГц Quad) или Quad-core (2,15 ГГц + 1,6 ГГц Dual)
  20. ^ Мерритт, Рик (6 февраля 2008 г.). «Разработчики ЦП обсуждают многоядерное будущее». EE Times . Получено 21 октября 2023 г.
  21. ^ "Форум по многоядерной пакетной обработке". Архивировано из оригинала 21.12.2009.
  22. ^ Джон Дарлинтон; Мустафа Ганем; Йике Го; Хинг Винг То (1996). «Управляемая организация ресурсов в гетерогенных параллельных вычислениях». Журнал высокопроизводительных вычислений . 4 (1): 13–23. CiteSeerX 10.1.1.37.4309 . 
  23. ^ Bright, Peter (4 декабря 2015 г.). «Windows Server 2016 переходит на лицензирование по ядрам, а не по сокетам». Ars Technica . Condé Nast . Архивировано из оригинала 4 декабря 2015 г. . Получено 5 декабря 2015 г. .
  24. ^ Сравните: «Лицензирование технологических продуктов Oracle». OMT-CO Operations Management Technology Consulting GmbH. Архивировано из оригинала 21.03.2014 . Получено 04.03.2014 .
  25. ^ «Программное обеспечение 6WINDGATE: Программное обеспечение для оптимизации сети – Программное обеспечение SDN – Программное обеспечение плоскости управления | 6WIND».
  26. ^ "Sempron™ 3850 APU с Radeon™ R3 Series | AMD". AMD . Архивировано из оригинала 4 мая 2019 года . Получено 5 мая 2019 года .
  27. ^ "Характеристики процессоров Intel® Atom™ серии C". ark.intel.com . Получено 04.05.2019 .
  28. ^ "Характеристики процессоров Intel® Atom™ серии Z". ark.intel.com . Получено 04.05.2019 .
  29. ^ "Intel Preps Dual-Core Celeron Processors". 11 октября 2007 г. Архивировано из оригинала 4 ноября 2007 г. Получено 12 ноября 2007 г.
  30. ^ "Характеристики процессоров Intel® Celeron® серии J". ark.intel.com . Получено 04.05.2019 .
  31. ^ "Продукты ранее Yonah". ark.intel.com . Получено 2019-05-04 .
  32. ^ "Продукты ранее Conroe". ark.intel.com . Получено 2019-05-04 .
  33. ^ "Продукты ранее Kentsfield". ark.intel.com . Получено 2019-05-04 .
  34. ^ "Характеристики продукции процессоров Intel® Core™ серии X". ark.intel.com . Получено 04.05.2019 .
  35. ^ "Характеристики процессора Intel® Itanium®". ark.intel.com . Получено 04.05.2019 .
  36. ^ "Характеристики процессоров Intel® Pentium® серии D". ark.intel.com . Получено 04.05.2019 .
  37. ^ Зазаян, Майк (26 сентября 2006 г.). "Intel: 80 ядер к 2011 году". Архивировано из оригинала 2006-11-09 . Получено 2006-09-28 .
  38. ^ Ковалиски, Сирил (18 февраля 2014 г.). "Intel выпускает 15-ядерный процессор Xeon E7 v2". Архивировано из оригинала 2014-10-11.
  39. ^ "Семейство процессоров Intel Xeon E7 v3". Intel . Архивировано из оригинала 2015-07-07.
  40. ^ "Семейство процессоров Intel Xeon E7 v2". Intel. Архивировано из оригинала 2015-07-07.
  41. ^ "Intel Xeon Processor E3 v2 Family". Intel. Архивировано из оригинала 2015-07-07.
  42. ^ "Intel демонстрирует процессор Xeon Platinum с 56 ядрами и 112 потоками". TechSpot . 2 апреля 2019 г. Получено 04.05.2019 .
  43. ^ PDF, Загрузить. "Краткое описание масштабируемых процессоров Intel® Xeon® 2-го поколения". Intel . Получено 04.05.2019 .
  44. ^ "Характеристики семейства продуктов Intel® Xeon Phi™ x100". ark.intel.com . Получено 04.05.2019 .
  45. ^ "Характеристики семейства процессоров Intel® Xeon Phi™ 72x5". ark.intel.com . Получено 04.05.2019 .
  46. Коул, Бернард (24 сентября 2008 г.). «Представлен 40-ядерный процессор с инструментами IDE на базе Forth».
  47. ^ Хаммонд, Лэнс и др. (1999). Стэнфордский CMP Hydra (PDF) . Hot Chips . Получено 27 июня 2023 г.
  48. ^ Чакос, Брэд (20 июня 2016 г.). «Встречайте KiloCore, 1000-ядерный процессор, настолько эффективный, что он может работать от батарейки АА». PC World . Архивировано из оригинала 23 июня 2016 г.
  49. ^ «COSMIC: Статистический многопроцессорный тестовый набор».

Дальнейшее чтение

  • Хондкер С. Хасан; Николас Г. Граундс; Джон К. Антонио (июль 2011 г.). Прогнозирование доступности ЦП многоядерного процессора, выполняющего параллельные потоки Java . 17-я международная конференция по методам и приложениям параллельной и распределенной обработки (PDPTA-11). Лас-Вегас, Невада, США. стр. 551–557. hdl :10657.1/2440.
  • Хондкер С. Хасан; Джон Антонио; Шридхар Радхакришнан (февраль 2014 г.). Новая составная модель ЦП/памяти для прогнозирования эффективности многоядерной обработки . Семинар 20-й Международной конференции IEEE по архитектуре высокопроизводительных компьютеров (HPCA-14). Орландо, Флорида, США. doi :10.13140/RG.2.1.3051.9207.
  • «Что такое ядро ​​процессора?» — MakeUseOf
  • «Встраиваемые системы переходят на многоядерность» — Embedded Computing Design
  • «Многоядерность — плохая новость для суперкомпьютеров» — IEEE Spectrum
  • Архитектурные решения для будущего Manycore, опубликовано 19 февраля 2010 г. (более одной неработающей ссылки на слайде)
Retrieved from "https://en.wikipedia.org/w/index.php?title=Multi-core_processor&oldid=1244581957"