Ядра и потоки процессора

Skol — мир электроники

Ядра и потоки процессора

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

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

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

Что такое ядро и поток

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

Поток его еще называют иногда виртуальным ядром – результат работы современных технологий (в процессорах производства компании Intel – эта технология называется Hyper Threading, а у компании AMD – SMT технологией), когда ядро, с помощью специальных технологий, способно разделять свою производительность. Выражение одно ядро и два потока говорит о том, что физически одно ядро, но это ядро виртуально делится на два и позволяет распараллеливать задачи и решать их одновременно. То есть при наличии двух сравнительно «простых задач» процессор сможет выполнить их в два раза быстрее, чем обычный процессор с одним ядром. Примером таких задач могут быть скачивание фоном файлов, работа антивируса. Технология создания потоков позволяют делать несколько параллельных вычислительных каналов, что позволяет использовать способности компьютеров более эффективно, так как если одно из виртуальных ядер закончило свою работу, то может присоединиться к работе другого ядра. Производительность повыситься, но повышение будет ограниченно, так как используются ресурсы (тактовая частота измеряется в МГц– то есть вычислительная способность) физического ядра, которое у нас одно. Только используя специальные программы, работающие с гиперпотоком и при правильной оптимизации можно прочувствовать прирост в производительности.

Можно сделать вывод, что при работе с «простыми» задачами одноядерный процессор с двумя потоками по производительности сопоставим с «настоящими» двухъядерными процессорами, но если задачи будут «сложными» например архивация, рендеринг видео, то для увеличения производительности стоит задуматься о приобретении процессора с большим количеством ядер. Так как многоядерные процессоры более предпочтительны для серьезных задач чем многопоточные.

Какой процессор выбрать

При выборе процессора естественно, что встает вопрос как выбрать оптимальное количество ядер и потоков и не переплачивать. Очевидно, что с количеством ядер и потоков стоимость такого процессора будет значительно возрастать. При выборе оптимального процессора, чтобы не переплачивать и чтобы работало все быстро стоит обратить внимание на задачи стоящие перед вашим компьютером:

1) Если компьютер будет офисным для работы без использования серьезных программ, то достаточно 2 «настоящих» ядра. Данный процессор вполне справляется с большинством задач в современных условиях.

2) Если вы собираетесь играть в игры, то многие игры поддерживают 2-4 ядра. Наличие большего количества ядер, не будет ускорять процесс, так как они будут работать в холостую, а учитывая, что в многоядерных процессорах частота у ядер ниже, то вы столкнетесь с тем, что ваш компьютер стоил кучу денег, а в итоге игры тормозят.

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

Рекомендации на конкретные модели в зависимости от стоящих перед ним задач:

1. Офисные: Процессоры Intel: Pentium Dual-Core, Core i3 любого поколения; процессоры AMD: A-серии, Ryzen 3 1200.

2. Игровые: Процессоры Intel: Core i3/i5/i7 6-го и выше поколения; процессоры AMD: Ryzen-5/ Ryzen 7.

3. Профессиональные: Процессоры Intel: Core i7 6950X, Core i9 9980XE; процессоры AMD: Threadripper 2920X, Threadripper 2970WX.

Узнать, сколько у вас физических ядер можно, через встроенную утилиту msinfo32.exe

msiinfo32.exe

Как включить виртуальные ядра читайте в этой статье

Источник: https://skol.site/tchto-takoe-yadra-i-potoki-v-protsessorah.html

Что такое ядра процессора и на что они влияют: как выбрать для разных задач

Ядра и потоки процессора

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

Общее понятие архитектуры процессора ПК

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

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

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

Стоит отметить, что ЦП, выполняющие одинаковую программную модель, могут значительно отличаться друг от друга микроархитектурой – например, устройства от фирм AMD и Intel. Современные чипы имеют идентичную программную архитектуру x86, но абсолютно разную микроархитектуру.

Роль количества ядер, их влияние на производительность

Первоначально ЦП имели только одно ядро. Однако на рубеже XX и XXI веков инженеры пришли к выводу, что стоит увеличить их количество. Это должно было позволить получить более высокую вычислительную мощность, а также позволить обрабатывать несколько задач одновременно.

Но для начала стоит разобраться с главным мифом. Принято считать, что чем больше ядер у процессора, тем больше мощности он будет предлагать. Но на практике все не так просто. Реальное влияние на производительность оказывают и другие факторы – например, тактовая частота, объем кэша, архитектура, количество потоков.

Дополнительные ядра означают, что процессор способен одновременно справляться с большим количеством задач. Однако здесь нельзя забывать об одном: несмотря на популяризацию четырех-, шести- или восьмиядерных процессоров, приложения используют один или два потока. Поэтому количество потоков ядра также важно учитывать.

Например, если первый ЦП имеет 2 ядра 4 потока, а второй 4 ядра 4 потока, то разница в производительности будет небольшая. Однако если сравнить первый чип с 4-ядерным 8-поточным, то в данном случае производительность возрастет на 50 %.

Что такое потоки и на что влияет их количество

Потоки – это виртуальный компонент или код, который разделяет физическое ядро процессора на несколько ядер. Одно ядро имеет до 2 потоков.

Например, если процессор двухъядерный, то он будет иметь 4 потока, а если восьмиядерный – 16 потоков.

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

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

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

Единственный факт, который ограничивает создание потоков, – количество основных потоков, предоставляемых физическим процессором. А их количество зависит от ядер.

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

Рекомендации по выбору процессора

При выборе ЦП некоторые характеристики будут важнее других – это зависит от предпочтений пользователя.

Для офиса

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

Частота является еще одним фактором, который следует принимать во внимание. Хотя частота – это не единственное, что определяет скорость, она оказывает существенное влияние. Используемое программное обеспечение будет влиять на скорость. Например, при регулярном использовании Adobe CS 6, лучше всего подойдет процессор со скоростью не менее 2 ГГц.

Для инженерных задач

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

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

Для работы с графикой

При работе с графикой требования к процессору отличаются. Для обработки 2D графики – подойдут бюджетные варианты, 2 или 4 ядра с тактовой частотой 2,4 ГГц вполне справятся с задачей.

Для работы с 3D графикой лучше всего выбирать 4 или 6-ядерные чипы, с тактовой частотой 3 ГГц и выше, а также с поддержкой многопоточности.

Для игрового ПК

Потребности геймеров специфичны, когда дело доходит до вычислительной мощности компьютера.

Первое, что нужно учитывать – это количество ядер. В дополнение к числу ядер, геймерам также важно учитывать тактовую частоту. Для современных игр потребуется частота 3,8 ГГц или выше.

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

Для стриминга

Выбор ЦП для стриминга зависит от сборки самого ПК.

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

Для профессионального стриминга понадобится ЦП с 6, 8, 16 ядрами и тактовой частотой 4 ГГц и выше. Тут выбор будет завесить от купленной видеокарты и нужного разрешения для стрима.

Источник: https://it-tehnik.ru/hardware/yadra-protsessora.html

Технологии многопоточности процессоров: принцип работы и сферы применения

Ядра и потоки процессора

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

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

Например, Intel Core i7 отличается от i5 технологией многопоточности под названием «Hyper-Threading», о которой далее пойдет речь (Core i3, i9, и некоторые Pentium также обладают данной технологией).

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

В качестве примера возьмем одно ядро процессора на частоте 4 ГГц с одним ALU (арифметико-логическое устройство) и одним FPU (математический сопроцеесор). Частота в 4 ГГц означает, что ядро исполняет 4 миллиарда тактов в секунду.

К ядру по конвейеру поступают задачи, требующие исполнительной мощности, на которые тратится процессорное время. 

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

Это происходит, когда в кэше ядра не была найдена запрошенная информация и приходится обращаться к более медленной памяти.

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

Данный конвейер можно представить, как настоящую сборочную линию на заводе — рабочий (ядро) выполняет работу, поступающую к нему на ленту. И если необходимо взять нужный инструмент, работник отходит, оставляя конвейер простаивать без работы.

То есть, исполняемая задача прерывается. Инструментом, за которым пошел рабочий, в данном случае является информация из оперативной памяти или же L3 кэша.

Поскольку L1 и L2 кэш намного быстрее, чем любая другая память в компьютере, работа с вычислениями теряет в скорости.

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

Разгон

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

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

В пример можно привести всю ту же сборочную линию: рабочий увеличивает темп работы, но по-прежнему не умеет собирать два и более заказа одновременно. 

Увеличение количества потоков на ядро

В процессорах Intel данная технология носит название Hyper-Threading, а в процессорах от Amd — SMT. Производители добавляют еще один регистр для работы со вторым конвейером. Пока один поток простаивает, ожидая нужные данные, свободная вычислительная мощность может быть использована вторым потоком. На кристалл же добавлен еще один контроллер прерываний и набор регистров.

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

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

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

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

Именно по этой причине процессоры серии i7 «горячее» и имеют больше кэша по сравнению с i5. Использование технологии многопоточности может принести примерно до 30 % прироста производительности.

Все это применимо как к Intel Hyper-Threading, так и к AMD SMT, поскольку технологии во многом схожи.

Может возникнуть вопрос: «Если можно добавить второй поток, то почему бы не добавить третий и четвертый?» Это реализуемо, но не имеет смысла, поскольку кэш одного ядра достаточно мал для большего количества потоков и прироста производительности практически не будет.

Увеличение количества ядер

Это самый действенный способ решения проблемы, поскольку каждый конвейер теперь располагает своим FPU, ALU и кэшем, который не придется делить с другим потоком.

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

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

С развитием компьютерных технологий перечень программ, использующих многопоточность, неуклонно растет. Это дает огромный простор разработчикам для создания нового софта и игр. Например, сейчас каждый современный triple-A проект оптимизирован для многопоточных процессоров, что позволяет наслаждаться игрой, получая высокий уровень fps на многоядерном CPU.

Еще больше распространены многоядерные системы в среде разработчиков.

Программы для 3D-моделирования, монтажа видео и создания музыки требуют параллельного выполнения большого количества задач, с чем хорошо справляются системы с Hyper-Threading или SMT.

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

Но далеко не всегда увеличение количества потоков означает увеличение общей производительности. Почему же SMT процессоры порой уступают немногопоточным собратьям? Дело в программной поддержке.

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

Тем не менее, подобные технологии имеют огромный потенциал, главное — грамотно реализовать его на программном уровне.

Источник: https://club.dns-shop.ru/blog/t-100-protsessoryi/30066-tehnologii-mnogopotochnosti-protsessorov-printsip-rabotyi-i-sferyi-p/

О потоках в процессоре

Ядра и потоки процессора

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

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

Начнем с того, что каждый современный процессор построен на физических ядрах с определенной частотой. Допустим, 1 ядро имеет тактовую частоту в 3 ГГц, т.е. может выполнить 3 млрд вычислительных операций за секунду (такт).

Но современные ОС (Windows, Linux, MacOS) запускают более 3 млрд процессов, т.е.

пользователь начинает сталкиваться с таким понятием как прерывание: ЦП физически не успевает обрабатывать все сразу и начинает переключаться на самые приоритетные задачи.

Логика здесь элементарная: присмотреться к многоядерным и многопоточным решениям. Разгон не дает линейного прироста в производительности, иначе такие гиганты как Intel и AMD выпускали бы процессоры на 5–6 и более ГГц.

Польза от повышения частоты есть, но она нивелируется увеличенным энергопотреблением и сокращением срока службы ЦП.

Многопоточность и все о ней

Многие наверняка слышали выражения из серии «2 потока», «4 потока», «8 потоков» и т.д. При этом физических ядер зачастую было в 2 раза меньше.

Эта технология имеет название HyperThreading (Intel) или SMT (AMD).

Многопоточность у красных появилась совсем недавно, с выходом чипов Ryzen на совершенно новом техпроцессе. Что это такое – тема отдельной статьи.

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

Недостаток технологии заключается в следующем:

  • оба потока обращаются к единой кэш-памяти 2 и 3 уровней;
  • тяжелые вычислительные процессы могут вызвать конфликт в системе.

Если очень грубо, то все кирпичи с одного места на другое можно перенести в одной руке (1 поток), либо в двух (2 потока), но человек при этом один (1 ядро) и устает одинаково при любых условиях, хоть его производительность фактически увеличивается вдвое. Иными словами, мы упираемся в производительность ЦП, а конкретней в его частоту.

Знакомы с понятием Turbo Boost? Процесс кратковременно повышает частоту процессора на несколько сотен мегагерц в особо сложных сценариях, чтобы вы не испытывали проблем при обработке сложных данных.

Сколько нужно ядер и потоков современному обывателю?

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

  • По-хорошему, для офисной работы будет вполне достаточно 2‑ядерных ЦП, но при этом учитывайте, что одновременно работать с браузером, текстовыми редакторами, почтовым клиентом и проигрывателем, не получится – система попросту не справится. А если использовать топологию 2 ядра/4 потока, то ситуация в корне преображается – рук то больше.
  • Игры требуют уже больше ресурсов. Начнем с того, что современные проекты очень падки на ресурсы чипа. Взять к примеру, ту же GTA V или Watch Dogs 2: они способны выжимать все соки из любого камня, поскольку параллельно отрисовывают сцены игры (скрипты), просчитывают окружение, прорабатывают звук, поведение искусственного интеллекта и не только. И все эти процессы еще нужно синхронизировать надлежащим образом.
  • А если копнуть в задачи типа программирования, рендеринга и профессиональной работы с графики, то видно, что здесь и 4‑ядерные/8‑поточные чипы начинают захлебываться и работают на износ.

Вместо итогов

Практика показывает, что современный универсальный ПК должен иметь в своем распоряжении как минимум 4 ядра/8 потоков, чего будет достаточно для большинства задач, связанных с обработкой данных. Хотя варианты из серии 6/12 выглядят более обещающими по той причине, что стоят они не намного дороже, а пользы от них больше.

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

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

С уважением Андрей Андреев

Источник: https://infotechnica.ru/pro-kompyuteryi/o-protsessorah/pro-potoki/

Поделиться:
Нет комментариев

    Добавить комментарий

    Ваш e-mail не будет опубликован. Все поля обязательны для заполнения.