Основы ЦП: что такое ядра, гиперпоточность и несколько ЦП?
Опубликовано: 2023-03-19Центральный процессор (ЦП) вашего компьютера выполняет вычислительную работу — в основном, запускает программы. Но современные процессоры предлагают такие функции, как многоядерность и гиперпоточность. Некоторые ПК даже используют несколько процессоров. Мы объясним различия и как они работают.
Что такое Hyper-Threading и одновременная многопоточность?
Что такое процессорные ядра?
Все ли конфигурации многоядерных процессоров одинаковы?
Как насчет нескольких процессоров?
Что такое Hyper-Threading и одновременная многопоточность?
Одновременная многопоточность (называемая Intel Hyper-Threading) позволяет одному процессору выполнять несколько задач одновременно, а не последовательно, что повышает производительность в большинстве ситуаций.
Гиперпоточность была первой попыткой Intel реализовать параллельные вычисления на потребительских ПК еще в 2002 году. Pentium 4 того времени имел только одно ядро ЦП, поэтому он мог выполнять только одну задачу за раз — даже если он мог переключаться между задачи достаточно быстро, чтобы это казалось многозадачным. Технология Hyper-Threading, называемая одновременной многопоточностью (SMT) на процессорах AMD и других сторонних производителей, попыталась компенсировать это.
Примечание. Строго говоря, гиперпоточность есть только у процессоров Intel, однако этот термин иногда используется в просторечии для обозначения любого вида одновременной многопоточности.
Одно физическое ядро ЦП с гиперпоточностью или одновременной многопоточностью отображается в операционной системе как два логических ЦП. ЦП по-прежнему один ЦП, так что это немного обман. В то время как операционная система видит два ЦП для каждого ядра, реальное аппаратное обеспечение ЦП имеет только один набор ресурсов выполнения для каждого ядра. ЦП делает вид, что у него больше ядер, чем на самом деле, и использует собственную логику для ускорения выполнения программы. Другими словами, операционная система обманом видит два процессора для каждого фактического ядра процессора.
Гиперпоточность позволяет двум логическим ядрам ЦП совместно использовать физические ресурсы выполнения. Это может несколько ускорить процесс — если один виртуальный ЦП остановлен и ждет, другой виртуальный ЦП может занять свои исполнительные ресурсы. Гиперпоточность может ускорить вашу систему, но она далеко не так хороша, как наличие дополнительных ядер.
К счастью, гиперпоточность теперь стала просто бонусом. В то время как исходные потребительские процессоры с гиперпоточностью имели только одно ядро, которое маскировалось под несколько ядер, современные процессоры теперь имеют как несколько ядер, так и технологию гиперпоточности или SMT. Ваш шестиядерный ЦП с гиперпоточностью отображается в вашей операционной системе как 12 ядер, а ваш восьмиядерный ЦП с гиперпоточностью отображается как 16 ядер. Гиперпоточность не заменяет дополнительные ядра, но двухъядерный ЦП с гиперпоточностью должен работать лучше, чем двухъядерный ЦП без гиперпоточности.
Что такое процессорные ядра?
Первоначально процессоры имели одно ядро. Это означало, что на физическом ЦП был один центральный процессор. Для повышения производительности производители добавляли дополнительные «ядра» или центральные процессоры. Двухъядерный ЦП имеет два центральных процессора, поэтому операционной системе он представляется как два ЦП. Например, ЦП с двумя ядрами может одновременно запускать два разных процесса. Это ускоряет вашу систему, потому что ваш компьютер может делать несколько вещей одновременно.
В отличие от гиперпоточности здесь нет никаких ухищрений — двухъядерный ЦП буквально имеет два центральных процессора на кристалле ЦП. Четырехъядерный ЦП имеет четыре центральных процессора, восьмиядерный ЦП имеет восемь центральных процессоров и так далее.
Это помогает значительно повысить производительность, сохраняя при этом физический модуль ЦП достаточно маленьким, чтобы поместиться в один сокет. Должен быть только один сокет ЦП с одним вставленным в него модулем ЦП, а не четыре разных сокета ЦП с четырьмя разными ЦП, каждому из которых требуется собственное питание, охлаждение и другое оборудование. Задержка меньше, потому что ядра могут обмениваться данными быстрее, поскольку все они находятся на одном чипе.
Диспетчер задач Windows показывает это довольно хорошо. Вот, например, видно, что в этой системе один реальный ЦП (сокет) и 8 ядер. Одновременная многопоточность делает каждое ядро похожим на два ЦП для операционной системы, поэтому она показывает 16 логических процессоров.
Все ли конфигурации многоядерных процессоров одинаковы?
Нет, не все конфигурации многоядерных процессоров одинаковы. При рассмотрении многоядерных процессоров вы столкнетесь с двумя различными философиями проектирования.
Один тип конфигурации — тип, который был распространен в потребительских ПК в течение многих лет — использует несколько идентичных ядер. В этих настройках, если у вас восьмиядерная система, все восемь из этих процессоров являются высокопроизводительными, и все они оптимизированы одинаково.
В другом используется смесь различных ядер (иногда называемая гетерогенной архитектурой ядра). Как правило, в этих установках используются два разных типа: ядра производительности и ядра эффективности.
Точная схема именования немного различается между компаниями и приложениями, но основная идея одна и та же. Ядра эффективности зарезервированы для фоновых и малотребовательных задач. Эти ядра потребляют меньше энергии. Ядра производительности — полная противоположность. Они потребляют значительно больше энергии, но обеспечивают гораздо лучшую производительность в ресурсоемких задачах, таких как игры. Комбинация приводит к производительности, когда вам это нужно, но снижает потребление фоновой энергии.
СВЯЗАННЫЕ С: Что такое пониженное напряжение графического процессора или процессора и когда вы должны это делать?
Эта гетерогенная многоядерная установка (названная ARM big.LITTLE) впервые стала популярной в мобильных телефонах и других мобильных устройствах из-за обеспечиваемой ими экономии энергии. Когда вам нужно, чтобы ваш телефон работал весь день, нет смысла без необходимости разряжать аккумулятор, постоянно работая с мощным ядром. Intel также представила эту идею в основных процессорах для настольных ПК, начиная с процессоров Alder Lake.
Как насчет нескольких процессоров?
Большинство компьютеров имеют только один ЦП. Этот единственный ЦП может иметь несколько ядер или технологию гиперпоточности, но это по-прежнему только один физический модуль ЦП, вставленный в один разъем ЦП на материнской плате.
СВЯЗАННЫЕ: Почему вы не можете использовать тактовую частоту процессора для сравнения производительности компьютера
До того, как появились гиперпоточность и многоядерные процессоры, люди пытались увеличить вычислительную мощность компьютеров, добавляя дополнительные процессоры. Для этого требуется материнская плата с несколькими процессорными сокетами. Материнской плате также требуется дополнительное оборудование для подключения этих разъемов ЦП к ОЗУ и другим ресурсам. В такой настройке много накладных расходов. Существует дополнительная задержка, если ЦП должны взаимодействовать друг с другом, системы с несколькими ЦП потребляют больше энергии, а материнской плате требуется больше сокетов и оборудования.
Системы с несколькими ЦП сегодня не очень распространены среди домашних ПК. Даже мощный игровой настольный компьютер с несколькими видеокартами обычно имеет только один ЦП. Вы найдете многопроцессорные системы среди суперкомпьютеров, серверов, некоторых рабочих станций и подобных высокопроизводительных систем, которым требуется столько вычислительной мощности, сколько они могут получить.
Чем больше процессоров или ядер у компьютера, тем больше он может делать одновременно, что помогает повысить производительность при выполнении большинства задач. Большинство компьютеров теперь имеют процессоры с несколькими ядрами — самый эффективный вариант, который мы обсуждали. Вы даже найдете процессоры с несколькими ядрами на современных смартфонах и планшетах.
Тактовой частоты процессора и его IPC (инструкций за такт) раньше было достаточно при сравнении производительности. Все уже не так просто. Процессор, который предлагает несколько ядер и гиперпоточность, может работать значительно лучше, чем ЦП с той же скоростью, но без гиперпоточности. А ПК с несколькими процессорами могут иметь еще большее преимущество. Все эти функции предназначены для того, чтобы ПК могли более легко запускать несколько процессов одновременно, повышая производительность при многозадачности или в соответствии с требованиями мощных приложений, таких как видеокодировщики и современные игры.
Конечно, большее количество ядер не так важно в любой ситуации. Современные операционные системы довольно умно распределяют свои задачи между несколькими ядрами, но не все программы так хорошо оптимизированы. Во многих случаях (особенно в играх) производительность в первую очередь ограничивается максимальной скоростью отдельного ядра, а не общим количеством ядер. Так что не спешите покупать 64-ядерный процессор Threadripper, думая, что он принесет вам миллиард FPS в Call of Duty — это не так.