Большие и маленькие ядра в гетерогенном процессоре: различия и производительность

Большие и маленькие ядра в гетерогенном процессоре

До сих пор нормой как для процессоров ПК, так и для APU была однородная конструкция процессоров, что означает использование одного типа ядра, повторяемого определенное количество раз. Но на ПК стало появляться использование разнородных конфигураций с ядрами разной сложности. Объясняем, чем большие и маленькие ядра различаются в таких APU и CPU для ПК.

Появление процессоров и APU на ПК, которые используют разнородные ядра и, следовательно, ядра разной сложности и размера, является фактом. Но чем отличаются эти разнородные ядра по характеру и производительности? Это вопрос, который задают себе многие, когда читают о различных архитектурах, появляющихся на рынке. Почему после более чем десятилетия использования одного типа ядер произошел скачок к использованию больших и малых ядер в процессорах.

Почему используются разные типы ядер?

Мультипроцессор ConceptArt

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

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

Наиболее широко используемый из них, поскольку его проще всего реализовать, заключается в назначении самых легких потоков с точки зрения рабочей нагрузки ядрам с наименьшим энергопотреблением - задача, которую должна выполнять операционная система. Какая часть программного обеспечения отвечает за управление использованием аппаратных ресурсов, включая GPU / ГРАФИЧЕСКИЙ ПРОЦЕССОР. Этот способ работы такой же, как и у Intel Lakefield и его будущие архитектуры, такие как Alder Lake, а также ARM ядра с DynamiQ.

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

Большие ядра против маленьких сегодня

Лейкфилд-ядра núcleos híbridos

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

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

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

Архитектуры будущего претерпевают неоднородные конфигурации.

Ядра Большие Маленькие

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

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

Лей Амдал

Действие этого метода связано с так называемым законом Амдала и способом масштабирования программ с точки зрения производительности. С одной стороны, у нас есть последовательные части, которые не могут быть распределены между несколькими ядрами, поскольку они не могут выполняться параллельно, а с другой стороны, это возможно. В первом случае мощность будет зависеть не от количества ядер, а от мощности каждого ядра, а во втором - от каждого ядра.

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