Как выбрать процессор
Центральный процессор (ЦП, CPU) — это «сердце» компьютера. Это основной элемент системы. Именно поэтому к его выбору необходимо отнестись максимально серьезно, особенно если вы планируете не купить готовый ПК, а собрать его самостоятельно.
Центральный процессор (ЦП, CPU) — это «сердце» компьютера. Это основной элемент системы. Именно поэтому к его выбору необходимо отнестись максимально серьезно, особенно если вы планируете не купить готовый ПК, а собрать его самостоятельно.
Конструктивно процессор представляет собой печатную плату, на которой размещен полупроводниковый кристалл, накрытый металлической теплораспределительной крышкой. На обратной стороне печатной платы предусмотрены контактные площадки, с помощью которых он соединяется с материнской платой.
У процессора есть ряд важных характеристик, которые нужно учесть: количество ядер и тактовая частота, архитектура и тепловыделение. Также ведущие производители распределяют компоненты, которые они выпускают, по сериям. Это упрощает выбор, так как разные серии, семейства и поколения позволяют решать разные задачи.
В этой статье мы предлагаем вам базовую информацию о том, как выбрать процессор. Если же вы не уверены в том, какой вариант оптимально подходит именно вам, обратитесь к специалисту интернет-магазина СИТИЛИНК. Он вам обязательно поможет.
Краткие ответы и советы
Если вы подбираете процессор для компьютера, который будет выполнять обычную офисную работу, серфить в интернете и воспроизводить видео, хватит четырехъядерного чипа. Даже самые скромные Intel Core i3 и Ryzen 3 последних поколений — четырехъядерные. Конечно, можно выбрать совсем уж бюджетный Celeron или Athlon — в рамках этих линеек до сих выпускают сверхдешевые CPU, которые подойдут для ПК, исполняющего роль «печатной машинки». Но лучше все-таки обратить внимание на четырехъядерные варианты — с ними точно не будет никаких проблем.
Для домашнего ПК, который используется в том числе и для игр, оптимальный вариант в 2019 году — это шестиядерный процессор. Да, многие четырехъядерные CPU (особенно Core i5 и Core i7 с поддержкой Hyper Threading, о которой поговорим чуть дальше) вполне справятся с большинством современных игр благодаря достаточно высокой тактовой частоте, но лучше сделать хоть какой-то задел на будущее. Ну а восемь ядер — это и вовсе идеальный вариант, который позволит не беспокоиться о замене процессора (и материнской платы — это немаловажно!) еще несколько лет.
Рабочие станции, которые выполняют серьезные вычисления (3D-рендеринг, нейросети, кодирование видео, математика, профессиональная работа с фотографиями и так далее), обычно оснащаются так называемыми HEDT-процессорами (High-end Desktop). Каждое их ядро не так быстро, как ядра топовых процессоров для игровых ПК, но этих ядер обычно больше. Благодаря тому, что практически все профессиональные пакеты ПО отлично справляются с задачей распределения вычислений на процессоре с большим количеством ядер, итоговая производительность в этом случае выше.
В любом случае, при выборе конкретной модели нужно опираться не только на количество ее ядер, но и на результаты независимых тестов производительности — именно в тех задачах, в которых вы будете задействовать свой ПК.
Отдельно нужно рассказать о ноутбуках. Из-за ограничений, которые накладывают компактные корпусы, охладить компоненты которых далеко не так просто, как в полноценных корпусах настольных ПК, их процессоры заметно слабее и часто используют меньше ядер. Двухъядерные Core i3 в бюджетных рабочих лаптопах — это вполне нормально. Впрочем, в этом году в продаже начали появляться очень привлекательные модели с Ryzen, у которых довольно производительных ядер уже как минимум четыре.
Многоядерность и многопоточность
Когда мы изучали вопрос, как узнать количество ядер, то обратили внимание на особенность процессоров Intel – в стандартных инструментах Windows отображается разное число ядер. Это обусловлено работой технологии Hyper-Threading, которая обеспечивает многопоточность.
Чтобы вы больше не путались в понятиях, разберемся раз и навсегда:
- Многоядерность – чип оснащен несколькими физическими архитектурными ядрами. Их можно увидеть, потрогать руками.
- Многопоточность – несколько одновременно обрабатываемых потоков информации. Ядро может быть физически одно, но программные технологии на его основе создают два потока выполнения задач; два ядра – четыре потока и т.д.
Разновидности многоядерных процессоров
Бытует заблуждение: «чем больше ядер у процессора — тем лучше». Именно так стараются представить дело маркетологи, которым платят за создание такого рода заблуждений. Их задача — продавать дешёвые процессоры, притом — подороже и в огромных количествах. Но на самом деле количество ядер — далеко не главная характеристика процессоров.
Вернёмся к аналогии процессоров и квартир. Двухкомнатная квартира дороже, удобнее и престижнее однокомнатной. Но только если эти квартиры находятся в одном районе, оборудованы одинаково, да и ремонт у них схожий. Существуют слабенькие четырёхядерные (а то и 6-ядерные) процессоры, которые значительно слабее двухядерных. Но поверить в это сложно: ещё бы, магия крупных чисел 4 или 6 против «какой-то» двойки. Однако именно так и бывает весьма и весьма часто. Вроде как та же четырёхкомнатная квартира, но в убитом состоянии, без ремонта, в совершенно отдалённом районе — да ещё и по цене шикарной «двушки» в самом центре.
Программное определение топологии
Конечно, абстрагирование топологии в единственное число логических процессоров в ряде случаев создаёт достаточно оснований для путаницы и недоразумений (в жарких Интернет-спорах). Вычислительные приложения, желающие выжать из железа максимум производительности, требуют детального контроля над тем, где будут размещены их потоки: поближе друг к другу на соседних гиперпотоках или же наоборот, подальше на разных процессорах. Скорость коммуникаций между логическими процессорами в составе одного ядра или процессора значительно выше, чем скорость передачи данных между процессорами. Возможность неоднородности в организации оперативной памяти также усложняет картину.
Информация о топологии системы в целом, а также положении каждого логического процессора в IA-32 доступна с помощью инструкции CPUID. С момента появления первых многопроцессорных систем схема идентификации логических процессоров несколько раз расширялась. К настоящему моменту её части содержатся в листах 1, 4 и 11 CPUID. Какой из листов следует смотреть, можно определить из следующей блок-схемы, взятой из статьи [2]:
Я не буду здесь утомлять всеми подробностями отдельных частей этого алгоритма. Если возникнет интерес, то этому можно посвятить следующую часть этой статьи. Отошлю интересующегося читателя к [2], в которой этот вопрос разбирается максимально подробно. Здесь же я сначала кратко опишу, что такое APIC и как он связан с топологией. Затем рассмотрим работу с листом 0xB (одиннадцать в десятичном счислении), который на настоящий момент является последним словом в «апикостроении».
APIC ID
Local APIC (advanced programmable interrupt controller) — это устройство (ныне входящее в состав процессора), отвечающее за работу с прерываниями, приходящими к конкретному логическому процессору. Свой собственный APIC есть у каждого логического процессора. И каждый из них в системе должен иметь уникальное значение APIC ID. Это число используется контроллерами прерываний для адресации при доставке сообщений, а всеми остальными (например, операционной системой) — для идентификации логических процессоров. Спецификация на этот контроллер прерываний эволюционировала, пройдя от микросхемы Intel 8259 PIC через Dual PIC, APIC и xAPIC к x2APIC .
В настоящий момент ширина числа, хранящегося в APIC ID, достигла полных 32 бит, хотя в прошлом оно было ограничено 16, а ещё раньше — только 8 битами. Нынче остатки старых дней раскиданы по всему CPUID, однако в CPUID.0xB.EDX[31:0] возвращаются все 32 бита APIC ID. На каждом логическом процессоре, независимо исполняющем инструкцию CPUID, возвращаться будет своё значение.
Выяснение родственных связей
Значение APIC ID само по себе ничего не говорит о топологии. Чтобы узнать, какие два логических процессора находятся внутри одного физического (т.е. являются «братьями» гипертредами), какие два — внутри одного процессора, а какие оказались и вовсе в разных процессорах, надо сравнить их значения APIC ID. В зависимости от степени родства некоторые их биты будут совпадать. Эта информация содержится в подлистьях CPUID.0xB, которые кодируются с помощью операнда в ECX. Каждый из них описывает положение битового поля одного из уровней топологии в EAX[5:0] (точнее, число бит, которые нужно сдвинуть в APIC ID вправо, чтобы убрать нижние уровни топологии), а также тип этого уровня — гиперпоток, ядро или процессор, — в ECX[15:8].
У логических процессоров, находящихся внутри одного ядра, будут совпадать все биты APIC ID, кроме принадлежащих полю SMT. Для логических процессоров, находящихся в одном процессоре, — все биты, кроме полей Core и SMT. Поскольку число подлистов у CPUID.0xB может расти, данная схема позволит поддержать описание топологий и с бóльшим числом уровней, если в будущем возникнет необходимость. Более того, можно будет ввести промежуточные уровни между уже существующими.
Важное следствие из организации данной схемы заключается в том, что в наборе всех APIC ID всех логических процессоров системы могут быть «дыры», т.е. они не будут идти последовательно. Например, во многоядерном процессоре с выключенным HT все APIC ID могут оказаться чётными, так как младший бит, отвечающий за кодирование номера гиперпотока, будет всегда нулевым.
Отмечу, что CPUID.0xB — не единственный источник информации о логических процессорах, доступный операционной системе. Список всех процессоров, доступный ей, вместе с их значениями APIC ID, кодируется в таблице MADT ACPI [3, 4].
Что такое потоки и на что влияет их количество
Потоки – это виртуальный компонент или код, который разделяет физическое ядро процессора на несколько ядер. Одно ядро имеет до 2 потоков.
Например, если процессор двухъядерный, то он будет иметь 4 потока, а если восьмиядерный – 16 потоков.
Поток создается активным процессом. Каждый раз, когда открывается приложение, оно само создает поток, который будет обрабатывать задачи этого конкретного приложения. Поэтому, чем больше приложений будет открыто, тем больше потоков будет создано.
Потоки создаются операционной системой для выполнения задачи конкретного приложения. Они управляются планировщиком, который является стандартной частью каждой ОС.
Существует один поток (код того ядра, выполняющий вычисления, также известный как основной поток) на ядре, который, когда получает информацию от пользователя, создает другой поток и выделяет ему задачу. Аналогично, если он получает другую инструкцию, он формирует второй поток и выделяет ему задачу, создавая таким образом многопоточность.
Единственный факт, который ограничивает создание потоков, – количество основных потоков, предоставляемых физическим процессором. А их количество зависит от ядер.
Потоки стали жизненно важной частью вычислительной мощности, поскольку они позволяют выполнять несколько задач одновременно. Это повышает производительность компьютера, а также позволяет сделать его способным к многозадачности. Благодаря этой технологии становится возможно просматривать веб-страницы, слушать музыку и скачивать файлы в фоновом режиме одновременно.
6 и 8 ядер
Ну и последний сегмент многоядерников — процессоры с шестью и восемью ядрами. Их основное предназначение, в принципе, точно такое же, как и у ЦП выше, только вот нужны они там, где обычные «четверки» не справляются. Кроме этого, на базе «камней» с 6 и 8 ядрами строят полноценные профильные компьютеры, которые будут «заточены» под определенную деятельность, например, монтаж видео, 3Д-программы для моделирования, рендеринг готовых тяжелых сцен с большим количеством полигонов и объектов и т. д.
Помимо этого, такие многоядерники очень хорошо себя показывают в работе с архиваторами или в приложениях, где нужны хорошие вычислительные возможности. В играх, которые оптимизированы под многопоточность, равных таких процессорам нет.
Выводы
Так называемая Эра 4-ядерных процессоров даже с технологией (SMT и HT) неминуемо подходит к концу, и покупать сейчас процессор для современных игр необходимо минимум c наличием 6 реальных ядер, а лучше 12 виртуальными потоками.
В то же время, если мы говорим про игры, переплачивать за 8/16 или даже 16/32 монстры совершенно не имеет никакого смысла, лучше вложить эти средства в более мощную видеокарту.
Как можно было видеть, загрузка даже 6-ядерного процессора с технологией SMT редко в каких игровых проектах превышала 50 %, что гарантирует некий задел на будущее. А загрузка видеокарты даже в разрешении 720p достаточно часто приближалась к отметке 100 % — именно она в повседневных условиях и будет ограничивающим фактором в производительности.
Поэтому если стоит выбор купить мощнее процессор или видеокарту, то он очевиден.
Производительность в играх ограничивается не только процессором и видеокартой, важную роль играет оптимизация. Если ее нет или она не очень хорошая, как, например, в протестированном Kingdom Come Deliverance, увы, производительность будет соответствующая, и неважно, сколько ядер у процессора или насколько мощная видеокарта.