Многоядерный процессор
Многоядерный процессор — это микропроцессор на одной интегральной схеме с двумя или более отдельными процессорными блоками , называемыми ядрами (например, двухъядерными или четырехъядерными ), каждый из которых считывает и выполняет инструкции программы . [1] Инструкции представляют собой обычные инструкции ЦП (например, добавление, перемещение данных и ветвление), но один процессор может одновременно выполнять инструкции на разных ядрах, увеличивая общую скорость программ, поддерживающих многопоточность или другие методы параллельных вычислений . [2] Производители обычно интегрируют ядра в один кристалл интегральной схемы (известный как мультипроцессор или CMP) или в несколько кристаллов в одном корпусе чипа . Микропроцессоры, используемые в настоящее время почти во всех персональных компьютерах, являются многоядерными.
Многоядерный процессор реализует многопроцессорную обработку в одном физическом корпусе. Разработчики могут соединять ядра в многоядерном устройстве плотно или свободно. Например, ядра могут совместно использовать или не использовать общие кэши , и они могут реализовывать методы передачи сообщений или с общей памятью методы межядерной связи . Общие топологии сети, используемые для соединения ядер, включают шину , кольцо , двумерную сетку и перемычку . Однородные многоядерные системы включают только идентичные ядра; гетерогенные многоядерные системы имеют ядра, которые не являются идентичными (например, big.LITTLE имеет гетерогенные ядра, которые используют один и тот же набор инструкций , в то время как у ускоренных процессоров AMD есть ядра, которые не используют один и тот же набор инструкций). Как и в однопроцессорных системах, ядра в многоядерных системах могут реализовывать такие архитектуры, как VLIW , суперскалярная , векторная или многопоточная .
Многоядерные процессоры широко используются во многих областях приложений, включая универсальные , встроенные , сетевые , цифровые процессоры обработки сигналов (DSP) и графические процессоры (GPU). Число ядер достигает даже десятков, а для специализированных чипов более 10 000. [3] а в суперкомпьютерах (т.е. кластерах микросхем) это число может превышать 10 миллионов (а в одном случае всего до 20 миллионов вычислительных элементов в дополнение к хост-процессорам). [4]
Улучшение производительности, достигаемое за счет использования многоядерного процессора, во многом зависит от используемых программных алгоритмов и их реализации. В частности, возможные выгоды ограничены долей программного обеспечения, которое может работать одновременно на нескольких ядрах; этот эффект описывается законом Амдала . В лучшем случае так называемые проблемы с неловкой параллельностью могут реализовать факторы ускорения, близкие к количеству ядер или даже больше, если проблема разделена настолько, чтобы поместиться в кэше(ах) каждого ядра, избегая использования гораздо более медленной памяти основной системы. . Однако большинство приложений не ускоряются так сильно, если программисты не приложат усилия к рефакторингу . [5]
Распараллеливание программного обеспечения является важной постоянной темой исследований. Коинтеграция многопроцессорных приложений обеспечивает гибкость при проектировании сетевой архитектуры. Адаптивность в рамках параллельных моделей является дополнительной особенностью систем, использующих эти протоколы. [6]
На потребительском рынке двухъядерные процессоры (то есть микропроцессоры с двумя блоками) начали становиться обычным явлением на персональных компьютерах в конце 2000-х годов. [7] В ту эпоху четырехъядерные процессоры также использовались для систем более высокого класса, прежде чем стали стандартом. В конце 2010-х годов шестиядерные процессоры начали входить в массовое производство. [8] а с начала 2020-х годов он обогнал четырехъядерные процессоры во многих областях. [9]
Терминология
[ редактировать ]Термины «многоядерный» и «двухъядерный» чаще всего относятся к некоторому центральному процессору (ЦП), но иногда также применяются к процессорам цифровых сигналов (DSP) и системе на кристалле (SoC). Эти термины обычно используются только для обозначения многоядерных микропроцессоров, которые производятся на одном и том же интегральной схемы кристалле ; отдельные кристаллы микропроцессора в одном корпусе обычно называются другим именем, например, многокристальный модуль . В этой статье термины «многоядерный» и «двухъядерный» используются для процессоров, изготовленных на одной интегральной схеме, если не указано иное.
В отличие от многоядерных систем, термин «мультипроцессор» относится к множеству физически отдельных процессоров (которые часто содержат специальные схемы для облегчения связи друг с другом).
Термины «многоядерность» и «массовая многоядерность» иногда используются для описания многоядерных архитектур с особенно большим количеством ядер (от десятков до тысяч). [10] ). [11]
В некоторых системах используется множество программных ядер микропроцессора , размещенных на одной FPGA . Каждое «ядро» можно рассматривать как « ядро полупроводниковой интеллектуальной собственности », а также ядро ЦП. [ нужна ссылка ]
Разработка
[ редактировать ]В то время как технология производства совершенствуется, уменьшая размер отдельных затворов, физические ограничения полупроводников на основе микроэлектроники стали серьезной проблемой при проектировании. Эти физические ограничения могут вызвать значительные проблемы с рассеянием тепла и синхронизацией данных. Для повышения производительности процессора используются различные другие методы. Некоторые методы параллелизма на уровне команд (ILP), такие как суперскалярная конвейерная обработка , подходят для многих приложений, но неэффективны для других, содержащих труднопрогнозируемый код. Многие приложения лучше подходят для методов параллелизма на уровне потоков (TLP), а для увеличения общего TLP системы обычно используются несколько независимых процессоров. Сочетание увеличения доступного пространства (из-за усовершенствования производственных процессов) и спроса на увеличение TLP привело к разработке многоядерных процессоров.
Коммерческие стимулы
[ редактировать ]Разработку многоядерных архитектур стимулируют несколько бизнес-мотивов. На протяжении десятилетий можно было повысить производительность ЦП за счет уменьшения площади интегральной схемы (ИС), что снижало стоимость устройства на ИС. В качестве альтернативы, для той же площади схемы в конструкции можно использовать больше транзисторов, что увеличит функциональность, особенно для архитектур со сложным набором команд (CISC). Тактовая частота также увеличилась на порядки в течение десятилетий конца 20-го века: с нескольких мегагерц в 1980-х годах до нескольких гигагерц в начале 2000-х годов.
Поскольку темпы повышения тактовой частоты замедлились, для повышения общей производительности обработки стали более широко использовать параллельные вычисления в виде многоядерных процессоров. В одном и том же процессорном чипе использовалось несколько ядер, что могло привести к увеличению продаж процессорных чипов с двумя или более ядрами. Например, Intel выпустила 48-ядерный процессор для исследований в области облачных вычислений; каждое ядро имеет архитектуру x86 . [12] [13]
Технические факторы
[ редактировать ]Поскольку производители компьютеров уже давно реализуют конструкции симметричной многопроцессорной обработки (SMP) с использованием дискретных процессоров, проблемы, связанные с реализацией архитектуры многоядерных процессоров и ее программной поддержкой, хорошо известны.
Кроме того:
- Использование проверенной конструкции процессорного ядра без архитектурных изменений значительно снижает проектные риски.
- Что касается процессоров общего назначения, то большая часть мотивации для использования многоядерных процессоров исходит из значительного уменьшения прироста производительности процессора от увеличения рабочей частоты . Это связано с тремя основными факторами: [14]
- Стена памяти ; увеличивающийся разрыв между скоростями процессора и памяти. По сути, это приводит к увеличению размеров кэша, чтобы замаскировать задержку памяти. Это помогает только в том случае, если пропускная способность памяти не является узким местом производительности.
- Стена НЛП ; растущая сложность поиска достаточного параллелизма в одном потоке команд , чтобы обеспечить занятость высокопроизводительного одноядерного процессора.
- Силовая стена ; тенденция к потреблению экспоненциально возрастающей мощности (и, следовательно, также к экспоненциальному увеличению тепла) с каждым факторным увеличением рабочей частоты. Это увеличение можно смягчить, « уменьшив » процессор, используя меньшие трассы для той же логики. Стена электропитания создает проблемы при производстве, проектировании системы и развертывании, которые не оправданы ввиду снижения прироста производительности из-за стены памяти и стены ILP . [ нужна ссылка ]
Чтобы продолжать регулярно повышать производительность процессоров общего назначения, такие производители, как Intel и AMD, обратились к многоядерным конструкциям, жертвуя меньшими производственными затратами ради более высокой производительности в некоторых приложениях и системах. Разрабатываются многоядерные архитектуры, но также и альтернативы. Особенно сильным претендентом на устоявшиеся рынки является дальнейшая интеграция периферийных функций в чип.
Преимущества
[ редактировать ]Близость нескольких ядер ЦП на одном кристалле позволяет схеме когерентности кэша работать с гораздо более высокой тактовой частотой, чем это возможно, если сигналы должны передаваться за пределы кристалла. Объединение эквивалентных процессоров на одном кристалле значительно повышает производительность операций отслеживания кэша (альтернатива: отслеживание шины ). Проще говоря, это означает, что сигналы между разными процессорами передаются на более короткие расстояния и, следовательно, эти сигналы меньше деградируют . Эти сигналы более высокого качества позволяют отправлять больше данных за определенный период времени, поскольку отдельные сигналы могут быть короче и их не нужно повторять так часто.
Если предположить, что кристалл физически может поместиться в корпус, то конструкции многоядерных ЦП требуют гораздо меньше места на печатной плате, чем конструкции многокристальных SMP . Кроме того, двухъядерный процессор потребляет немного меньше энергии, чем два связанных одноядерных процессора, главным образом из-за меньшей мощности, необходимой для управления внешними по отношению к чипу сигналами. Кроме того, ядра имеют общие схемы, такие как кэш L2 и интерфейс внешней шины (FSB). С точки зрения конкурирующих технологий для доступной площади кремниевого кристалла, многоядерный дизайн может использовать проверенные конструкции библиотеки ядер ЦП и производить продукт с меньшим риском ошибки проектирования, чем разработка новой конструкции с более широким ядром. Кроме того, добавление большего количества кэша снижает отдачу.
Многоядерные чипы также обеспечивают более высокую производительность при более низком энергопотреблении. Это может быть важным фактором для мобильных устройств, работающих от аккумуляторов. Поскольку каждое ядро многоядерного процессора обычно более энергоэффективно, чип становится более эффективным, чем одно большое монолитное ядро. Это обеспечивает более высокую производительность с меньшими затратами энергии. Однако проблемой здесь являются дополнительные накладные расходы на написание параллельного кода. [15]
Недостатки
[ редактировать ]Максимальное использование вычислительных ресурсов, предоставляемых многоядерными процессорами, требует корректировки как поддержки операционной системы (ОС), так и существующего прикладного программного обеспечения. Кроме того, способность многоядерных процессоров повышать производительность приложений зависит от использования нескольких потоков внутри приложений.
Интеграция многоядерного чипа может снизить производительность производства чипов. Кроме того, ими труднее управлять термически, чем одноядерными конструкциями с меньшей плотностью. Intel частично решила эту первую проблему, создав свои четырехъядерные конструкции путем объединения двух двухъядерных процессоров на одном кристалле с унифицированным кэшем, поэтому можно использовать любые два работающих двухъядерных кристалла, а не создавать четыре ядра на одном процессоре. один кристалл и требует работы всех четырех для создания четырехъядерного процессора. С архитектурной точки зрения, в конечном счете, конструкции с одним процессором могут лучше использовать площадь поверхности кремния, чем многопроцессорные ядра, поэтому приверженность разработке этой архитектуры может нести риск устаревания. Наконец, вычислительная мощность — не единственное ограничение производительности системы. Два процессорных ядра, использующие одну и ту же системную шину и полосу пропускания памяти, ограничивают реальное преимущество в производительности.
Аппаратное обеспечение
[ редактировать ]Тенденции
[ редактировать ]Тенденция в разработке процессоров была направлена на постоянное увеличение количества ядер, поскольку теоретически возможны процессоры с сотнями или даже тысячами ядер. [16] Кроме того, многоядерные чипы в сочетании с одновременной многопоточностью , памятью на кристалле и специализированными «гетерогенными» (или асимметричными) ядрами обещают дальнейшее повышение производительности и эффективности, особенно при обработке мультимедиа, распознавании и сетевых приложениях. Например, ядро big.LITTLE включает высокопроизводительное ядро (называемое «большим») и ядро с низким энергопотреблением (называемое «LITTLE»). Существует также тенденция к повышению энергоэффективности за счет уделения особого внимания производительности на ватт с усовершенствованным детальным или сверхтонким управлением питанием и динамическим масштабированием напряжения и частоты (например, портативные компьютеры и портативные медиаплееры ).
Чипы, изначально спроектированные для большого количества ядер (а не развившиеся из одноядерных конструкций), иногда называют многоядерными , подчеркивая качественные различия.
Архитектура
[ редактировать ]Состав и баланс ядер в многоядерной архитектуре демонстрируют большое разнообразие. В некоторых архитектурах используется один дизайн ядра, повторяющийся последовательно («однородный»), в то время как в других используется смесь разных ядер, каждое из которых оптимизировано для своей, « гетерогенной » роли.
То, как реализовано и интегрировано несколько ядер, существенно влияет как на навыки программирования разработчика, так и на ожидания потребителя в отношении приложений и интерактивности по сравнению с устройством. [17] Устройство, рекламируемое как восьмиядерное, будет иметь независимые ядра только в том случае, если оно рекламируется как True Octa-core или аналогичный стиль, а не просто два набора четырехъядерных процессоров, каждый из которых имеет фиксированную тактовую частоту. [18] [19]
Статья Рика Мерритта «Разработчики процессоров обсуждают будущее многоядерности», EE Times, 2008 г., [20] включает в себя следующие комментарии:
Чак Мур [...] предложил, чтобы компьютеры были похожи на мобильные телефоны, используя множество специализированных ядер для запуска модульного программного обеспечения, запланированного с помощью интерфейса программирования приложений высокого уровня.
[...] Ацуши Хасегава, старший главный инженер Renesas , в целом согласился. Он предположил, что использование в мобильном телефоне множества специализированных ядер, работающих совместно, является хорошей моделью для будущих многоядерных разработок.
[...] Анант Агарвал , основатель и исполнительный директор стартапа Tilera , придерживается противоположной точки зрения. Он сказал, что многоядерные чипы должны представлять собой однородную совокупность ядер общего назначения, чтобы модель программного обеспечения была простой.
Программные эффекты
[ редактировать ]Устаревшая версия антивирусного приложения может создать новый поток для процесса сканирования, в то время как его поток графического интерфейса ожидает команд от пользователя (например, отмены сканирования). В таких случаях многоядерная архитектура приносит мало пользы самому приложению из-за того, что всю тяжелую работу выполняет один поток, и невозможность равномерно сбалансировать работу между несколькими ядрами. Программирование по-настоящему многопоточного кода часто требует сложной координации потоков и может легко привести к тонким и труднообнаружимым ошибкам из-за переплетения обработки данных, разделяемых между потоками (см. Потокобезопасность ). Следовательно, такой код гораздо сложнее отлаживать, чем однопоточный код, когда он ломается. Наблюдалось отсутствие мотивации для написания многопоточных приложений потребительского уровня из-за относительной редкости требований потребительского уровня к максимальному использованию компьютерного оборудования. Кроме того, последовательные задачи, такие как декодирование алгоритмов энтропийного кодирования , используемых в видеокодеках, невозможно распараллелить, поскольку каждый сгенерированный результат используется для создания следующего результата алгоритма энтропийного декодирования.
Учитывая растущее внимание к проектированию многоядерных чипов, вызванное серьезными проблемами нагревания и энергопотребления, вызванными любым дальнейшим значительным увеличением тактовой частоты процессора, степень, в которой программное обеспечение может быть многопоточным для использования преимуществ этих новых чипов, вероятно, будет единственное наибольшее ограничение производительности компьютера в будущем. Если разработчики не смогут разработать программное обеспечение для полного использования ресурсов, предоставляемых несколькими ядрами, они в конечном итоге достигнут непреодолимого потолка производительности.
Рынок телекоммуникаций был одним из первых, кому потребовалась новая конструкция параллельной обработки пакетов в тракте передачи данных, поскольку эти многоядерные процессоры были очень быстро внедрены для тракта передачи данных и плоскости управления. Эти MPU собираются заменить [21] традиционные сетевые процессоры, основанные на собственном микрокоде или пикокоде .
Методы параллельного программирования могут напрямую выиграть от использования нескольких ядер. Некоторые существующие модели параллельного программирования, такие как Cilk Plus , OpenMP , OpenHMPP , FastFlow , Skandium, MPI и Erlang , можно использовать на многоядерных платформах. Intel представила новую абстракцию параллелизма C++ под названием TBB . Другие исследовательские усилия включают Codeplay Sieve System , Cray's Chapel , Sun's Fortress и IBM 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 год [update]Многоядерные сетевые процессоры стали обычным явлением: такие компании, как Freescale Semiconductor , Cavium Networks , Wintegra и Broadcom, производят продукты с восемью процессорами. Для разработчика системы ключевой задачей является использование всех ядер этих устройств для достижения максимальной производительности сети на уровне системы, несмотря на ограничения производительности, присущие операционной системе с симметричной многопроцессорной обработкой (SMP). Такие компании, как 6WIND, предоставляют портативное программное обеспечение для обработки пакетов, разработанное таким образом, чтобы сетевая плоскость данных работала в среде быстрого пути вне операционной системы сетевого устройства. [25]
Цифровая обработка сигналов
[ редактировать ]В цифровой обработке сигналов наблюдается та же тенденция: у Texas Instruments есть трехъядерный TMS320C6488 и четырехъядерный TMS320C5441, у Freescale — четырехъядерный MSC8144 и шестиядерный MSC8156 (и оба заявили, что работают над восьмиядерными преемниками). Среди новых моделей — семейство Storm-1 от Stream Processors, Inc с 40 и 80 ALU общего назначения на кристалл, все программируемые на языке 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, 336-ядерный процессорный массив с массовым параллелизмом (MPPA)
- АМД
- серии A. Двух-, трех- и четырехъядерные ускоренные процессоры (APU)
- Athlon 64 FX и Athlon 64 X2 для настольных ПК. Одно- и двухъядерные процессоры
- Athlon II , двух-, трех- и четырехъядерные процессоры для настольных ПК.
- серии FX . Четырех-, 6- и 8-ядерные процессоры для настольных ПК
- Opteron , одно-, двух-, четырех-, 6-, 8-, 12- и 16-ядерные процессоры для серверов/рабочих станций.
- Phenom , двух-, трех- и четырехъядерные процессоры.
- Phenom II , двух-, трех-, четырех- и 6-ядерные процессоры для настольных ПК.
- Sempron , одно-, двух- и четырехъядерные процессоры начального уровня. [26]
- Turion , одно- и двухъядерные процессоры для ноутбуков.
- Процессоры Ryzen , двух-, четырех-, 6-, 8-, 12-, 16-, 24-, 32- и 64-ядерные для настольных, мобильных и встраиваемых платформ.
- Epyc , четырех-, 8-, 12-, 16-, 24-, 32- и 64-ядерные серверные и встроенные процессоры.
- Графический процессор Radeon и FireStream / 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 году.
- Бродком
- Сибайт SB1250, SB1255, SB1455
- Четырехъядерные процессоры ARM SoC BCM2836, BCM2837, BCM2710 и BCM2711 (предназначены для различных Raspberry Pi ) моделей
- Cadence Design Systems Tensilica Xtensa LX6, доступная в двухъядерной конфигурации в Espressif Systems. от ESP32
- ClearSpeed
- CSX700, 192-ядерный процессор, выпущенный в 2008 году (32/64-бит с плавающей запятой; Integer ALU).
- 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 году.
- Инфинеон
- АУРИКС
- Danube — двухъядерный процессор домашнего шлюза на базе MIPS .
- Интел
- 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 i3 , , Core i5 , Core i7 и Core i9 — семейство двух-, четырех-, 6-, 8-, 10-, 12-, 14-, 16- и 18-ядерных процессоров, преемник процессоров Core Core i5, Core i7 и Core i9. Core 2 Duo и Core 2 Quad . [34]
- Itanium , одно-, двух-, четырех- и 8-ядерные процессоры. [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]
- ИнтеллаСис
- SEAforth 40C18, 40-ядерный процессор. [46]
- SEAforth24, 24-ядерный процессор, разработанный Чарльзом Х. Муром .
- Калрай
- MPPA-256 , 256-ядерный процессор, выпущенный в 2012 г. (256 используемых ядер VLIW, сеть на кристалле (NoC), 32/64-битный FPU, совместимый с IEEE 754)
- NetLogic Микросистемы
- XLP, 32-ядерный четырехпоточный процессор MIPS64 .
- XLR — восьмиядерный четырехпоточный процессор MIPS64.
- XLS — восьмиядерный четырехпоточный процессор MIPS64.
- Нвидиа
- Parallax Propeller P8X32 , восьмиядерный микроконтроллер .
- picoChip PC200 200–300 ядер на устройство для DSP и беспроводной связи. серия
- Множество тесно связанных ядер серии HAL, общая память L1, процессор с аппаратной синхронизацией.
- Rapport Kilocore KC256 — 257-ядерный микроконтроллер с ядром PowerPC и 256 8-битными «процессорными элементами».
- Raspberry Pi Ltd. RP2040 с двумя ARM Cortex-M0+. , микроконтроллер
- SiCortex «Узел SiCortex» имеет шесть ядер MIPS64 на одном кристалле.
- СиФиве
- U74 включает в себя 4 ядра
- Sony / IBM / Toshiba Процессор Cell общего назначения и восемью специализированными SPU (Synergistic Processing Unit) , — девятиядерный процессор с одним ядром PowerPC оптимизированными для векторных операций, используемых в Sony PlayStation 3 .
- Сан Микросистемс
- MAJC 5200, двухъядерный процессор VLIW.
- UltraSPARC IV и UltraSPARC IV+, двухъядерные процессоры.
- UltraSPARC T1 — восьмиядерный 32-поточный процессор.
- UltraSPARC T2 — восьмиядерный процессор с 64 параллельными потоками.
- UltraSPARC T3 — шестнадцатиядерный процессор со 128 одновременными потоками.
- SPARC T4 — восьмиядерный процессор с 64 параллельными потоками.
- SPARC T5 — шестнадцатиядерный процессор со 128 параллельными потоками.
- Санвей
- Sunway SW26010 — 260-ядерный процессор, используемый в Sunway TaihuLight .
- Техасские инструменты
- TMS320C80 MVP — пятиядерный мультимедийный видеопроцессор.
- TMS320TMS320C66, 2-, 4-, 8-ядерный ЦСП.
- Тилера
- XMOS Программно определяемый кремниевый четырехъядерный процессор XS1-G4.
Бесплатно
[ редактировать ]Академический
[ редактировать ]- Стэнфорд , 4-ядерный процессор Hydra [47]
- MIT , 16-ядерный RAW процессор
- Калифорнийский университет, Дэвис , Асинхронный массив простых процессоров (AsAP)
- 36-ядерный процессор AsAP, 610 МГц
- 167-ядерный AsAP2, 1,2 ГГц
- Вашингтонский университет , Wavescaler процессор
- Техасский университет, Остин , TRIPS процессор
- Университет Линчёпинга , Швеция, процессор ePUMA
- UC Davis , Kilocore, 1000-ядерный процессор с тактовой частотой 1,78 ГГц на 32-нм техпроцессе IBM. [48]
Тесты
[ редактировать ]При исследовании и разработке многоядерных процессоров часто сравниваются многие варианты, и для облегчения таких оценок разрабатываются тесты. Существующие тесты включают SPLASH-2, PARSEC и COSMIC для гетерогенных систем. [49]
См. также
[ редактировать ]- Экранирование процессора
- ДРУГОЙ
- ГПГПУ
- Гиперпоточность
- многокор
- Многоядерная ассоциация
- Многозадачность
- OpenCL (Open Computing Language) – платформа для гетерогенного выполнения.
- Параллельная машина произвольного доступа
- Разделенное глобальное адресное пространство (PGAS)
- Состояние гонки
- Нить
Примечания
[ редактировать ]- ^ Процессоры цифровых сигналов (DSP) использовали многоядерную архитектуру гораздо дольше, чем высокопроизводительные процессоры общего назначения. Типичным примером реализации, специфичной для DSP, может быть комбинация ЦП RISC DSP и MPU . Это позволяет разрабатывать продукты, которым требуется процессор общего назначения для пользовательских интерфейсов и DSP для обработки данных в реальном времени; этот тип дизайна распространен в мобильных телефонах . В других приложениях все большее число компаний разрабатывают многоядерные DSP с очень большим количеством процессоров.
- ^ Два типа операционных систем могут использовать двухпроцессорный многопроцессор: разделенная многопроцессорная обработка и симметричная многопроцессорная обработка (SMP). В многораздельной архитектуре каждый процессор загружается в отдельные сегменты физической памяти и работает независимо; в ОС SMP процессоры работают в общем пространстве, независимо выполняя потоки внутри ОС.
Ссылки
[ редактировать ]- ^ Роуз, Маргарет (27 марта 2007 г.). «Определение: многоядерный процессор» . ТехТаржет. Архивировано из оригинала 5 августа 2010 года . Проверено 6 марта 2013 г.
- ^ Шауэр, Брайан. «Многоядерные процессоры – необходимость» (PDF) . Архивировано из оригинала (PDF) 25 ноября 2011 г.
- ^ Jump up to: а б Смит, Райан. «NVIDIA анонсирует серию GeForce RTX 30: Ampere для игр, начиная с RTX 3080 и RTX 3090» . www.anandtech.com . Проверено 15 сентября 2020 г.
- ^ «Sunway TaihuLight — Sunway MPP, Sunway SW26010 260C 1,45 ГГц, Sunway | TOP500» . www.top500.org . Проверено 15 сентября 2020 г.
- ^ Сулеман, Аатер (20 мая 2011 г.). «Что делает параллельное программирование трудным?» . Будущие чипы. Архивировано из оригинала 29 мая 2011 года . Проверено 6 марта 2013 г.
- ^ Дюран, А (2011). «OMPSS: предложение по программированию гетерогенных многоядерных архитектур». Параллельная обработка писем . 21 (2): 173–193. дои : 10.1142/S0129626411000151 .
- ^ «Определение двухъядерного процессора» . ПКМАГ . Проверено 27 октября 2023 г.
- ^ «Intel в 2018 году выведет на рынок шестиядерные процессоры семейства Coffee Lake» . ЗДНЕТ . Проверено 27 октября 2023 г.
- ^ Алан Декстер (05 апреля 2022 г.). «Шестиядерные процессоры сейчас более популярны в Steam, чем четырёхъядерные» . ПК-геймер . Проверено 22 мая 2024 г.
- ^ Шор, Дэвид (ноябрь 2017 г.). «2048-ядерный процессор PEZY-SC2 устанавливает рекорд Green500» . ВикиЧип.
- ^ Вайда, Андраш (10 июня 2011 г.). Программирование многоядерных чипов . Спрингер. п. 3. ISBN 978-1-4419-9739-5 .
- ^ Шраут, Райан (2 декабря 2009 г.). «Intel представляет 48-ядерный процессор x86 как однокристальный облачный компьютер» . Архивировано из оригинала 5 января 2016 года . Проверено 17 мая 2015 г.
- ^ «Intel представляет 48-ядерный кремниевый чип для облачных вычислений» . Би-би-си. 3 декабря 2009 года. Архивировано из оригинала 6 декабря 2012 года . Проверено 6 марта 2013 г.
- ^ Паттерсон, Дэвид А. «Будущее компьютерной архитектуры». Ежегодный исследовательский симпозиум EECS Беркли (BEARS), Инженерный колледж Калифорнийского университета в Беркли, США. 2006.
- ^ Сулеман, Аатер (19 мая 2011 г.). «Вопросы и ответы: Экономит ли многоядерность энергию? Не совсем» . Архивировано из оригинала 16 декабря 2012 года . Проверено 6 марта 2013 г.
- ^ Кларк, Джек. «Intel: Почему возможен чип с 1000 ядрами» . ЗДНет . Архивировано из оригинала 6 августа 2015 года . Проверено 6 августа 2015 г.
- ^ Кудикала, Чакри (27 августа 2016 г.). «Эти 5 мифов о восьмиядерных телефонах на самом деле правдивы» . Гиз Бот .
- ^ «MediaTek запускает восьмиядерную мобильную платформу MT6592» (пресс-релиз). МедиаТек. 20 ноября 2013 г. Архивировано из оригинала 29 октября 2020 г.
- ^ «Что такое восьмиядерный процессор» . Samsung.
Смартфоны Galaxy работают на восьмиъядерных (четырехъядерный процессор 2,3 ГГц + четырехъядерный 1,6 ГГц) или четырехъядерных (2,15 ГГц + двойной 1,6 ГГц) процессорах.
- ^ Мерритт, Рик (6 февраля 2008 г.). «Разработчики процессоров обсуждают многоядерное будущее» . ЭЭ Таймс . Проверено 21 октября 2023 г.
- ^ «Форум по многоядерной пакетной обработке» . Архивировано из оригинала 21 декабря 2009 г.
- ^ Джон Дарлинтон; Мустафа Ганем; Йике Го; Хинг Винг То (1996). «Управляемая организация ресурсов в гетерогенных параллельных вычислениях». Журнал высокопроизводительных вычислений . 4 (1): 13–23. CiteSeerX 10.1.1.37.4309 .
- ^ Брайт, Питер (4 декабря 2015 г.). «Windows Server 2016 переходит на лицензирование по числу ядер, а не по количеству сокетов» . Арс Техника . Конде Наст . Архивировано из оригинала 4 декабря 2015 года . Проверено 5 декабря 2015 г.
- ^ Сравнивать: «Лицензирование технологических продуктов Oracle» . OMT-CO Operations Management Technology Consulting GmbH. Архивировано из оригинала 21 марта 2014 г. Проверено 4 марта 2014 г.
- ^ «Программное обеспечение 6WINDGATE: Программное обеспечение для оптимизации сети – Программное обеспечение SDN – Программное обеспечение плоскости управления | 6WIND» .
- ^ «Ускоренный процессор Sempron™ 3850 с серией Radeon™ R3 | AMD» . АМД . Архивировано из оригинала 4 мая 2019 года . Проверено 5 мая 2019 г.
- ^ «Технические характеристики процессора Intel® Atom™ серии C» . ark.intel.com . Проверено 4 мая 2019 г.
- ^ «Технические характеристики процессора Intel® Atom™ серии Z» . ark.intel.com . Проверено 4 мая 2019 г.
- ^ «Intel готовит двухъядерные процессоры Celeron» . 11 октября 2007 г. Архивировано из оригинала 4 ноября 2007 г. Проверено 12 ноября 2007 г.
- ^ «Технические характеристики процессора Intel® Celeron® серии J» . ark.intel.com . Проверено 4 мая 2019 г.
- ^ «Продукты ранее Yonah» . ark.intel.com . Проверено 4 мая 2019 г.
- ^ «Продукция ранее Conroe» . ark.intel.com . Проверено 4 мая 2019 г.
- ^ «Продукты ранее Kentsfield» . ark.intel.com . Проверено 4 мая 2019 г.
- ^ «Технические характеристики процессоров Intel® Core™ серии X» . ark.intel.com . Проверено 4 мая 2019 г.
- ^ «Технические характеристики процессора Intel® Itanium®» . ark.intel.com . Проверено 4 мая 2019 г.
- ^ «Технические характеристики процессора Intel® Pentium® серии D» . ark.intel.com . Проверено 4 мая 2019 г.
- ^ Зазаян, Майк (26 сентября 2006 г.). «Intel: 80 ядер к 2011 году» . Архивировано из оригинала 9 ноября 2006 г. Проверено 28 сентября 2006 г.
- ^ Ковалиский, Кирилл (18 февраля 2014 г.). «Intel выпускает 15-ядерный процессор Xeon E7 v2» . Архивировано из оригинала 11 октября 2014 г.
- ^ «Семейство процессоров Intel Xeon E7 v3» . Интел . Архивировано из оригинала 7 июля 2015 г.
- ^ «Семейство процессоров Intel Xeon E7 v2» . Интел. Архивировано из оригинала 7 июля 2015 г.
- ^ «Семейство процессоров Intel Xeon E3 v2» . Интел. Архивировано из оригинала 7 июля 2015 г.
- ^ «Intel демонстрирует процессор Xeon Platinum с числом ядер до 56 и 112 потоков» . ТехСпот . 2 апреля 2019 года . Проверено 4 мая 2019 г.
- ^ PDF, Скачать. «Краткий обзор масштабируемых процессоров Intel® Xeon® 2-го поколения» . Интел . Проверено 4 мая 2019 г.
- ^ «Технические характеристики продуктов семейства Intel® Xeon Phi™ x100» . ark.intel.com . Проверено 4 мая 2019 г.
- ^ «Технические характеристики семейства процессоров Intel® Xeon Phi™ 72x5» . ark.intel.com . Проверено 4 мая 2019 г.
- ^ Коул, Бернард (24 сентября 2008 г.). «Представлен 40-ядерный процессор с инструментами IDE на базе Forth» .
- ^ Хаммонд, Лэнс; и др. (1999). Стэнфордский CMP Hydra (PDF) . Горячие чипсы . Проверено 27 июня 2023 г.
- ^ Чакос, Брэд (20 июня 2016 г.). «Познакомьтесь с KiloCore, 1000-ядерным процессором, настолько эффективным, что он может работать от батареи типа АА» . Мир ПК . Архивировано из оригинала 23 июня 2016 года.
- ^ «COSMIC Heterogeneous Multiprocessor Benchmark Suite» . Архивировано из оригинала 3 июля 2015 г.
Дальнейшее чтение
[ редактировать ]- Хондкер С. Хасан; Николас Г. Граундс; Джон К. Антонио (июль 2011 г.). Прогнозирование доступности ЦП многоядерного процессора, выполняющего параллельные потоки Java . 17-я Международная конференция по методам и приложениям параллельной и распределенной обработки (PDPTA-11). Лас-Вегас, Невада, США. стр. 551–557.
- Хондкер С. Хасан; Джон Антонио; Шридхар Радхакришнан (февраль 2014 г.). Новая составная модель ЦП/памяти для прогнозирования эффективности многоядерной обработки . Семинар 20-й Международной конференции IEEE по архитектуре высокопроизводительных компьютеров (HPCA-14). Орландо, Флорида, США. дои : 10.13140/RG.2.1.3051.9207 .
Внешние ссылки
[ редактировать ]- «Что такое ядро процессора?» —MakeUseOf
- «Встраиваемые системы переходят на многоядерность» — Embedded Computing Design
- «Многоядерность — плохая новость для суперкомпьютеров» — IEEE Spectrum
- Архитектурные решения для будущего Manycore , опубликовано 19 февраля 2010 г. (более одной неработающей ссылки на слайде)