Для чего нужны многоядерные процессоры
Вся правда о многоядерных процессорах
Первые компьютерные процессоры с несколькими ядрами появились на потребительском рынке ещё в середине двухтысячных, но множество пользователей до сих пор не совсем понимает — что это такое, многоядерные процессоры, и как разобраться в их характеристиках.
Видео-формат статьи «Вся правда о многоядерных процессорах»
Простое объяснение вопроса «что такое процессор»
Многие называют процессором системный блок — «ящик», внутри которого находятся все компоненты ПК, но это в корне неверно. Системный блок — это корпус компьютера вместе со всеми составляющими частями — жёстким диском, оперативной памятью и многими другими деталями.
Размер процессора по сравнению с монеткой. Есть процессоры и крупнее, есть и гораздо мельче.
Функция процессора — вычисления. Не столь важно, какие именно. Дело в том, что вся работа компьютера завязана исключительно на арифметических вычислениях. Сложение, умножение, вычитание и прочая алгебра — этим всем занимается микросхема под названием «процессор». А результаты таких вычислений выводятся на экран в виде игры, вордовского файла или просто рабочего стола.
Главная часть компьютера, которая занимается вычислениями — вот, что такое процессор.
Что такое процессорное ядро и многоядерность
Испокон процессорных «веков» эти микросхемы были одноядерными. Ядро — это, фактически, сам процессор. Его основная и главная часть. Есть у процессоров и другие части — скажем, «ножки»-контакты, микроскопическая «электропроводка» — но именно тот блок, который отвечает за вычисления, называется ядром процессора. Когда процессоры стали совсем небольшими, то инженеры решили совместить внутри одного процессорного «корпуса» сразу несколько ядер.
Если представить процессор в виде квартиры, то ядро — это крупная комната в такой квартире. Однокомнатная квартира — это одно процессорное ядро (крупная комната-зал), кухня, санузел, коридор… Двухкомнатная квартира — это уже как два процессорных ядра вместе с прочими комнатами. Бывают и трёх-, и четырёх, и даже 12-комнатные квартиры. Также и в случае с процессорами: внутри одного кристалла-«квартиры» может быть несколько ядер-«комнат».
Многоядерность — это разделение одного процессора на несколько одинаковых функциональных блоков. Количество блоков — это число ядер внутри одного процессора.
Разновидности многоядерных процессоров
Бытует заблуждение: «чем больше ядер у процессора — тем лучше». Именно так стараются представить дело маркетологи, которым платят за создание такого рода заблуждений. Их задача — продавать дешёвые процессоры, притом — подороже и в огромных количествах. Но на самом деле количество ядер — далеко не главная характеристика процессоров.
Вернёмся к аналогии процессоров и квартир. Двухкомнатная квартира дороже, удобнее и престижнее однокомнатной. Но только если эти квартиры находятся в одном районе, оборудованы одинаково, да и ремонт у них схожий. Существуют слабенькие четырёхядерные (а то и 6-ядерные) процессоры, которые значительно слабее двухядерных. Но поверить в это сложно: ещё бы, магия крупных чисел 4 или 6 против «какой-то» двойки. Однако именно так и бывает весьма и весьма часто. Вроде как та же четырёхкомнатная квартира, но в убитом состоянии, без ремонта, в совершенно отдалённом районе — да ещё и по цене шикарной «двушки» в самом центре.
Сколько бывает ядер внутри процессора?
Для персональных компьютеров и ноутбуков одноядерные процессоры толком не выпускаются уже несколько лет, а встретить их в продаже — большая редкость. Число ядер начинается с двух. Четыре ядра — как правило, это более дорогие процессоры, но отдача от них присутствует. Существуют также 6-ядерные процессоры, невероятно дорогие и гораздо менее полезные в практическом плане. Мало какие задачи способны получить прирост производительности на этих монструозных кристаллах.
Был эксперимент компании AMD создавать и 3-ядерные процессоры, но это уже в прошлом. Получилось весьма неплохо, однако их время прошло.
Кстати, компания AMD также производит многоядерные процессоры, но, как правило, они ощутимо слабее конкурентов от Intel. Правда, и цена у них значительно ниже. Просто следует знать, что 4 ядра от AMD почти всегда окажутся заметно слабее, чем те же 4 ядра производства Intel.
Теперь вы знаете, что у процессоров бывает 1, 2, 3, 4, 6 и 12 ядер. Одноядерные и 12-ядерные процессоры — большая редкость. Трёхядерные процессоры — дело прошлого. Шестиядерные процессоры либо очень дороги (Intel), либо не такие уж сильные (AMD), чтобы переплачивать за число. 2 и 4 ядра — самые распространённые и практичные устройства, от самых слабых до весьма мощных.
Частота многоядерных процессоров
Одна из характеристик компьютерных процессоров — их частота. Те самые мегагерцы (а чаще — гигагерцы). Частота — важная характеристика, но далеко не единственная. Да, пожалуй, ещё и не самая главная. К примеру, двухядерный процессор с частотой 2 гигагерца — более мощное предложение, чем его одноядерный собрат с частотой 3 гигагерца.
Совсем неверно считать, что частота процессора равна частоте его ядер, умноженной на количество ядер. Если проще, то у 2-ядерного процессора с частотой ядра 2 ГГц общая частота ни в коем случае не равна 4 гигагерцам! Даже понятия «общая частота» не существует. В данном случае, частота процессора равна именно 2 ГГц. Никаких умножений, сложений или других операций.
И вновь «превратим» процессоры в квартиры. Если высота потолков в каждой комнате — 3 метра, то общая высота квартиры останется такой же — всё те же три метра, и ни сантиметром выше. Сколько бы комнат не было в такой квартире, высота этих комнат не изменяется. Так же и тактовая частота процессорных ядер. Она не складывается и не умножается.
Виртуальная многоядерность, или Hyper-Threading
Существуют ещё и виртуальные процессорные ядра. Технология Hyper-Threading в процессорах производства Intel заставляет компьютер «думать», что внутри двухядерного процессора на самом деле 4 ядра. Очень похоже на то, как один-единственный жёсткий диск делится на несколько логических — локальные диски C, D, E и так далее.
Hyper-Threading — весьма полезная в ряде задач технология. Иногда бывает так, что ядро процессора задействовано лишь наполовину, а остальные транзисторы в его составе маются без дела. Инженеры придумали способ заставить работать и этих «бездельников», разделив каждое физическое процессорное ядро на две «виртуальные» части. Как если бы достаточно крупную комнату разделили перегородкой на две.
Имеет ли практический смысл такая уловка с виртуальными ядрами? Чаще всего — да, хотя всё зависит от конкретных задач. Вроде, и комнат стало больше (а главное — они используются рациональнее), но площадь помещения не изменилась. В офисах такие перегородки невероятно полезны, в некоторых жилых квартирах — тоже. В других случаях в перегораживании помещения (разделении ядра процессора на два виртуальных) смысла нет вообще.
Отметим, что наиболее дорогие и производительные процессоры класса Core i7 в обязательном порядке оснащены Hyper-Threading. В них 4 физических ядра и 8 виртуальных. Получается, что одновременно на одном процессоре работают 8 вычислительных потоков. Менее дорогие, но также мощные процессоры Intel класса Core i5 состоят из четырёх ядер, но Hyper Threading там не работает. Получается, что Core i5 работают с 4 потоками вычислений.
Процессоры Core i3 — типичные «середнячки», как по цене, так и по производительности. У них два ядра и никакого намёка на Hyper-Threading. Итого получается, что у Core i3 всего два вычислительных потока. Это же относится и к откровенно бюджетным кристаллам Pentium и Celeron. Два ядра, «гипе-трединг» отсутствует = два потока.
Нужно ли компьютеру много ядер? Сколько ядер нужно в процессоре?
Все современные процессоры достаточно производительны для обычных задач. Просмотр интернета, переписка в соцсетях и по электронной почте, офисные задачи Word-PowerPoint-Excel: для этой работы подойдут и слабенькие Atom, бюджетные Celeron и Pentium, не говоря уже о более мощных Core i3. Двух ядер для обычной работы более чем достаточно. Процессор с большим количеством ядер не принесёт значительного прироста в скорости.
Для игр следует обратить внимание на процессоры Core i3 или i5. Скорее, производительность в играх будет зависеть не от процессора, а от видеокарты. Редко в какой игре потребуется вся мощь Core i7. Поэтому считается, что игры требуют не более четырёх процессорных ядер, а чаще подойдут и два ядра.
Для серьёзной работы вроде специальных инженерных программ, кодирования видео и прочих ресурсоёмких задач требуется действительно производительная техника. Часто здесь задействуются не только физические, но и виртуальные процессорные ядра. Чем больше вычислительных потоков, тем лучше. И не важно, сколько стоит такой процессор: профессионалам цена не столь важна.
Есть ли польза от многоядерных процессоров?
Безусловно, да. Одновременно компьютер занимается несколькими задачами — хотя бы работа Windows (кстати, это сотни разных задач) и, в тот же момент, проигрывание фильма. Проигрывание музыки и просмотр интернета. Работа текстового редактора и включённая музыка. Два процессорных ядра — а это, по сути, два процессора, справятся с разными задачами быстрее одного. Два ядра сделают это несколько быстрее. Четыре — ещё быстрее, чем два.
В первые годы существования технологии многоядерности далеко не все программы умели работать даже с двумя ядрами процессора. К 2014 году подавляющее большинство приложений отлично понимают и умеют пользоваться преимуществами нескольких ядер. Скорость обработки задач на двухядерном процессоре редко увеличивается в два раза, но прирост производительности есть почти всегда.
Поэтому укоренившийся миф о том, что, якобы, программы не могут использовать несколько ядер — устаревшая информация. Когда-то действительно было так, сегодня ситуация улучшилась кардинально. Преимущества от нескольких ядер неоспоримы, это факт.
Когда меньше ядер у процессора — лучше
Не следует покупать процессор по неверной формуле «чем больше ядер — тем лучше». Это не так. Во-первых, 4, 6 и 8-ядерные процессоры ощутимо дороже своих двухядерных собратьев. Значительная прибавка в цене далеко не всегда оправдана с точки зрения в производительности. К примеру, если 8-ядерник окажется лишь на 10% быстрее CPU с меньшим количеством ядер, но будет в 2 раза дороже, то такую покупку сложно оправдать.
Во-вторых, чем больше ядер у процессора, тем он «прожорливее» с точки зрения энергопотребления. Нет никакого смысла покупать гораздо более дорогой ноутбук с 4-ядерным (8-поточным) Core i7, если на этом ноутбуке будут обрабатываться лишь текстовые файлы, просматриваться интернет и так далее. Никакой разницы с двухядерником (4 потока) Core i5 не будет, да и классический Core i3 лишь с двумя вычислительными потоками не уступит более именитому «коллеге». А от батарейки такой мощный ноутбук проработает гораздо меньше, чем экономичный и нетребовательный Core i3.
Многоядерные процессоры в мобильных телефонах и планшетах
Мода на несколько вычислительных ядер внутри одного процессора касается и мобильных аппаратов. Смартфоны вместе с планшетами с большим количеством ядер почти никогда не используют все возможности своих микропроцессоров. Двухядерные мобильные компьютеры иногда действительно работают чуть быстрее, но 4, а тем более 8 ядер — откровеннейший перебор. Аккумулятор расходуется совершенно безбожно, а мощные вычислительные устройства попросту простаивают без дела. Вывод — многоядерные процессоры в телефонах, смартфонах и планшетах — лишь дань маркетингу, а не насущная необходимость. Компьютеры — более требовательные устройства, чем телефоны. Два процессорных ядра им действительно нужны. Четыре — не помешают. 6 и 8 — излишество в обычных задачах и даже в играх.
Как выбрать многоядерный процессор и не ошибиться?
Практическая часть сегодняшней статьи актуальна на 2014 год. Вряд ли в ближайшие годы что-то серьёзно поменяется. Речь пойдёт только о процессорах производства Intel. Да, AMD предлагает неплохие решения, но они менее популярны, да и разобраться в них сложнее.
Заметим, что таблица основана на процессорах образца 2012-2014 годов. Более старые образцы имеют другие характеристики. Также мы не стали упоминать редкие варианты CPU, например — одноядерный Celeron (бывают и такие даже сегодня, но это нетипичный вариант, который почти не представлен на рынке). Не следует выбирать процессоры исключительно по количеству ядер внутри них — есть и другие, более важные характеристики. Таблица лишь облегчит выбор многоядерного процессора, но конкретную модель (а их десятки в каждом классе) следует покупать только после тщательного ознакомления с их параметрами: частотой, тепловыделением, поколением, размером кэша и другими характеристиками.
На что влияет число ядер CPU? Объясняем по-простому
С числом, обозначающим количество ядер процессора, вы сталкиваетесь самое позднее при покупке компьютера. Но что же на самом деле дает большее количество ядер CPU, и есть ли смысл выбирать как можно более многоядерный процессор? В данной статье мы разъясняем, для чего нужно несколько ядер процессора, и всегда ли большее их количество — лучше.
Какой процессор лучше — с более высокой тактовой частотой или с большим количеством ядер? Не всегда все однозначно…
Вот почему появились многоядерные CPU: процессоры с несколькими ядрами были разработаны потому, что увеличение вычислительной производительности путем повышения тактовой частоты приносило большие технические проблемы. Кроме того, гораздо менее затратным оказался метод размещения нескольких ядер в одном процессоре, по сравнению с установкой нескольких процессоров на одной материнской плате. Вы и сами можете в этом легко убедиться: один процессор с несколькими ядрами в большинстве случаев стоит дешевле, чем 2 процессора с меньшим количеством ядер.
Так что же дает наличие нескольких ядер? Во-первых, вся основная нагрузка системы распределяется между несколькими «вычислительными центрами». Благодаря этому ваш ноутбук или ПК реже оказывается полностью перегруженным и не «замирает» так часто, как мог бы с одноядерным процессором. CPU с несколькими ядрами могут повышать тактовую частоту и, как следствие, производительность компьютера. Однако, на практике увеличение мощности сильно зависит от того, какая программа выполняется и какая при этом используется операционная система. Сам по себе принцип работает только в том случае, если вы используете ПО, поддерживающее многопоточность обработки данных, то есть особенно требовательное к ресурсам системы.
Например, Intel Core i5-4570S имеет в целом 4 физических CPU-ядра и может работать на тактовой частоте до 3,6 ГГц. Другая модель этого же производителя, Intel Core i3-7350K располагает всего двумя физическими ядрами, но тактовая частота у него достигает отметки в 4,2 ГГц. Расчеты вида 4 (ядра) * 3,6 ГГц = 14,4 ГГц здесь не подходят: i5-4570S по результатам наших тестовых испытаний оказался значительно хуже и менее эффективным, чем i3-7350K. Несмотря ни на что вы должны покупать только те процессоры, которые имеют минимум 2 ядра или больше. Делать ли выбор в пользу большего количества ядер или подыскивать процессор с более высокой тактовой частотой, зависит от того, как вы собираетесь использовать свой компьютер.
При всем этом сравнивать напрямую вы можете процессоры только одного производителя и одного типа. Все потому, что более старый CPU с 8 ядрами может оказаться хуже, чем новый процессор с 4 ядрами от другого производителя.
Компьютерный ликбез – Нужна ли нам многоядерность, и вреден ли разгон процессора?
Многоядерность
История развития центральных процессоров довольно интересна. Если проследить за ней с появления первых настольных компьютеров, то становится очевидно, что основным двигателем производительности было повышение тактовой частоты. Но всё в природе имеет придел. С увеличением частоты тепловыделение процессоров нелинейно растёт, что в конечном итоге приводит к слишком высоким значениям. Не помогает даже использование более тонких технических процессов при создании транзисторов.
Выход нашли в использовании нескольких ядер в одном кристалле, такой процессор «2 в 1». Их появление на рынке десктопов вызвало большие споры. Нужны ли нам многоядерные процессоры? Сейчас уже можно ответить с уверенностью: нужны. В ближайшие годы просто невозможно представить прогрессивного пути развития этой отрасли без использования нескольких ядер.
Так чем же лучше многоядерные процессоры? Многоядерность сродни использованию нескольких отдельных процессоров в одном компьютере. Только находятся они в одном кристалле и не полностью независимы (например, использование общей кэш-памяти). При использовании уже имеющегося программного обеспечения, созданного для работы только с одним ядром, это даёт определённый плюс. Так, можно запустить одновременно две ресурсоёмкие задачи без какого-либо дискомфорта. А вот ускорение одного процесса – задача для таких систем непосильная. Таким образом, мы получаем практически тот же самый одноядерный процессор с небольшим бонусом в виде возможности использования нескольких требовательных программ одновременно.
На изображении процессора видны парные структуры – свидетельство наличия двух ядер
На изображении процессора видны парные структуры – свидетельство наличия двух ядер
Выход из данной ситуации очевиден – разработка нового поколения ПО, способного задействовать несколько ядер одновременно. Этот процесс можно назвать распараллеливанием процессов. На деле всё оказалось довольно сложно.
Некоторые задачи довольно легко распараллелить. К ним, например, относится кодирование аудио и видео. В его основе лежит набор однотипных потоков, так что заставить их выполняться одновременно – довольно простая задача. Выигрыш многоядерных процессоров в задачах кодирования перед одноядерными аналогами пропорционален количеству этих самых ядер: два ядра – вдвое быстрее, четыре – в четыре раза и так далее. Но подавляющую часть задач распараллелить намного сложнее. В большинстве случаев требуется кардинальная переработка программного кода.
Несколько раз из уст представителей довольно серьёзных компьютерных компаний звучали радостные слова об удачной разработке многоядерных процессоров нового поколения, способных самостоятельно раскладывать один поток на несколько независимых. Но до сих пор не было продемонстрировано ни одного рабочего образца подобного чуда.
А пока действительные шаги на пути к повсеместному использованию многоядерных процессоров довольно незамысловаты и очевидны. Первым является само создание и совершенствование этих процессоров, снижение ценовых рамок. Так, в среднем сегменте обоих мировых компьютерных гигантов – Intel и AMD – можно найти достаточно широкое разнообразие двухъядерных процессоров. Уже в следующем году в класс mainstream переберутся решения с четырьмя ядрами. А вот второй шаг на пути к пользователю делают сами разработчики программного обеспечения. Многие современные игры уже обзавелись поддержкой двух ядер. Самым требовательным из них практически необходим двухъядерный процессор для обеспечения оптимальной производительности.
Если окинуть взглядом прилавки компьютерных магазинов и немного проанализировать, то общая картина отнюдь не столь плоха. Производителям процессоров удалось достичь довольно высокого уровня выхода годных кристаллов. На ценообразовании это отражается следующим образом: увеличение числа ядер вдвое зачастую не ведёт к двойному повышению стоимости. Хотя это вполне логично: производительность в среднем возрастает тоже далеко не в два раза.
Подводя первую часть статьи к завершению, стоит отметить, что сколь бы ни был тернист путь к многоядерности, альтернативы ему в обозримом будущем попросту нет. Нам, как обычным потребителям, остаётся только своевременно апгрейдить свой компьютер, из раза в раз увеличивая число встроенных процессорных ядер, выводя тем самым общую производительность на новый уровень.
Вреден ли разгон компьютера?
Скептики уверяют, что оверклокинг ужасно опасен. Компьютерные энтузиасты уверены в обратном. Кто из них ближе к истине, мы и попытаемся сегодня понять.
Разгон процессора как явление существует уже не один десяток лет. Первопроходцами были по-настоящему увлечённые энтузиасты. В уже далёкие и забытые времена разогнать процессор можно было только впаиванием в электрическую схему материнских плат дополнительных компонентов, например, транзисторов с определённым значением активного сопротивления. Позже вся эта процедура упростилась до замыкания джамперами специальных контактов. Ну а сегодня всё стало и того проще: сиди себе спокойно в удобном кресле и меняй значения в BIOS, а зачастую прямо в операционной среде.
Но всё отнюдь не столь радостно, как может показаться на первый взгляд. Ведь с популяризацией любой отрасли средняя квалификация работника неизбежно снижается. Так и в оверклокинге. Если поначалу необходимо было иметь достаточно много знаний, чтобы разогнать, то теперь эта функция доступна даже детям дошкольного возраста. Так что об опасностях разгона многие даже и не слышали. А ведь на самом деле это далеко не миф.
Начнём, пожалуй, с самого очевидного. Как известно, разгон – повышение заводских характеристик какого-либо компонента компьютера с целью получения увеличенной производительности. Главной характеристикой процессора является его частота. Для её увеличения зачастую повышают и рабочее напряжение процессора. Эти два фактора в сумме очень негативно сказываются на микроэлектронике, уменьшая срок жизни устройства.
Всем, конечно, интересно услышать точные цифры. Но ими, пожалуй, никто не владеет. В Глобальной сети гуляют призрачные цифры: при повышении температуры процессора на 10 градусов его срок жизни уменьшается на 10 лет. Но если учесть достаточно серьёзные технологические различия в поколениях микрочипов, то эти данные нельзя считать даже приближенно верными.
Если посмотреть на более правдоподобные числа, то всё не так уж плачевно. Современные центральные процессоры рассчитаны на 15-20 лет беспрерывной работы. Компьютер самого заядлого геймера очень редко бывает включён более 12 часов в сутки. Так что средний процессор в номинальном режиме работы протянет около 30 лет. В самых неблагоприятных условиях экстремального разгона этот срок может уменьшиться вдвое – до 15. А уже через 5-10 лет производительность даже самого мощного процессора станет попросту смешной. Таким образом, процессор морально и технически устареет гораздо раньше, чем закончится его работоспособность из-за разгона.
Другая причина более обширна. Разгон процессора в любом случае сказывается на других компонентах системы, в первую очередь – на материнской плате. Вследствие повышения частоты и рабочего напряжения увеличивается и энергопотребление. Это, в свою очередь, создаёт дополнительную нагрузку на элементы питания процессора, расположенные на материнской плате. Многие производители для удешевления своей продукции устанавливают дешёвые и порой некачественные силовые элементы, например, сглаживающие или фильтрующие электрические конденсаторы. Выход из строя таких компонентов может навсегда забрать с собой на тот свет не только процессор, но ещё и саму материнскую плату вместе с целым набором комплектующих. Схожая картина и с блоком питания. Но за несколько лет силовые элементы материнских плат даже нижнего ценового сегмента прибавили в надёжности, что делает эту проблему не столь актуальной.
Технологии многопоточности процессоров: принцип работы и сферы применения
Содержание
Содержание
Физические ядра, логические ядра, технологии многопоточности — все это разрабатывалось инженерами для увеличения производительности компьютерного железа, требования к которому постоянно растут. Программы и игры требуют все больше ресурсов. Как же производители процессоров увеличивают мощность своих детищ? Процессор является «сердцем» компьютера и выполняет вычисления, необходимые для работы софта. Модели 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 процессоры порой уступают немногопоточным собратьям? Дело в программной поддержке. Иногда плохо оптимизированные программы не могут отличать логический поток от настоящего ядра, из-за чего на одно ядро может попасть две тяжелых задачи и замедлить работу. Тем не менее, подобные технологии имеют огромный потенциал, главное — грамотно реализовать его на программном уровне.