ЛикБез1: Процессоры для ПК
Компьютеры сегодня сопровождают нашу жизнь повсеместно, и я расскажу подробно о том, из чего они состоят.Я открываю рубрику «ЛикБез» и первым делом расскажу о центральном процессоре, он же ЦП, ЦПУ — central processing unit.
Создание серьезных вычислительных машин пришлось на период второй мировой войны, с помощью одной из них Британцы расшифровали Энигму. Это были электромеханические реле, с ферритовыми сердечницами и лампами. Стойки из таких устройств являлись первыми процессорами. Сейчас, уже более 75 лет спустя, процессоры представляют собой микросхемы с точностью производства измеряемой в нанометрах, т. е. в миллионных долях миллиметра.
Сейчас процессоры делятся на десктопные, серверные и мобильные. Далее мы будем говорить о ЦП в контексте десктопного процессора, т. е. процессора для персонального компьютера, процессора на архитектуре x86-64. Подробнее об архитектурах:
https://habr.com/ru/post/316520/
На мировом рынке существует два лидирующих производителя процессоров для ПК, это Intel и AMD. Российский Эльбрус и китайские процессоры пока только мелькают в новостях, и никак не влияют на рынок процессоров в потребительском сегменте в России.
Основной характеристикой процессора является тактовая частота измеряемая в герцах. Современные процессоры способны обрабатывать миллиарды операций в секунду, а их частота измеряется гигагерцами. Такт — это единица измерения выполнения процессором логических операций. Некоторые операции выполняются в доли такта, некоторые в несколько тактов. Такт – это промежуток между двумя импульсами тактового генератора, который синхронизирует выполнение всех операций процессора.
Чем выше тактовая частота, тем вычислительное ядро процессора мощнее, но и имеет более высокое тепловыделение и потребление энергии.
Реальная частота процессора получается при умножении базовой частоты системной шины на множитель. В некоторых версиях процессоров, у Intel это процессоры с индексом K или X, у AMD Ryzen с индексом X, есть разблокированный множитель, а это значит, что увеличивать частоту процессора можно не разгоняя шину.
Еще один важный показатель – это количество ядер в процессоре. Ядро является главной частью процессора, которая выполняет поток команд. У каждого ядра имеется собственная тактовая частота. Современные процессоры имеют от 2 до 32 и даже более ядер, контроллер в процессоре может увеличивать частоту отдельных ядер, если на них высокая загрузка, у Intel эта технология называется Turbo boost.
Частота в ядрах не суммируется, можно привести такую аналогию: ядро это грузовик, который мчится по автостраде и везет какой-то груз, второе ядро – это второй такой грузовик. Сколько бы таких грузовиков не было, они не приедут в намеченную точку быстрее, но они способны привезти больше. Так и тут, многоядерность помогает обрабатывать множество процессов параллельно.
Современные тяжелые приложения умеют пользоваться большим количеством ядер, поэтому в любом случае, чем больше ядер, тем мощнее процессор. Количество ядер так же влияет на тепловыделение и потребление энергии.
У процессоров intel core i7 до 8 поколения включительно и core i9 имеется технология hyper threading, которая создает 2 потока на 1 ядро, т.е. логически из 4 ядер мы получаем 8, что видно в мониторе ресурсов в системе, у AMD аналогичная технология называется SMT и используется в процессорах Ryzen 7 и Threadripper.
Кэш память – это быстрая память внутри процессора, которая хранит часто используемые данные из оперативной памяти, чтобы сократить время обращения к ним.
Различают кэши 1-, 2- и 3-го уровней, 1 уровень или L1 – самая быстрая и маленькая память в ядре процессора, в среднем 64кб, L2 – блок памяти более высокого объема и высокой задержкой, в среднем полмегабайта, L3 – блок памяти для группы ядер, объем измеряется в мегабайтах.
Тепловыделение — в характеристиках современных десктопных процессорах пишут типичное тепловыделение. Но это не значит, что достаточно подобрать кулер с таким же теплоотведедением, так как для соблюдения приемлемой температуры, с учетом внешней температуры, пыли и амортизации комплектующих кулер должен быть мощнее. Очень важно правильно подобрать устройство охлаждения как для процессора, так и организовать воздушные потоки внутри системного блока. У Intel есть процессоры с индексом Т, c расчётным тепловыделением до 35 Вт у современных моделей, на их можно основе собирать компактные модели компьютеров.
Еще один важный показатель, о котором многие не знают — максимальная рабочая температура. У современных процессоров это температура может быть в районе 84-100 градусов Цельсия, при достижении которой срабатывают защитные системы: тро́тлинг, т.е. пропуск тактов или защитное выключение.
Во многих десктопных процессорах присутствуют графические ядра, для обработки изображения. Сейчас intel запустили процессоры и индексом F, без графического ядра.
Т.е. встроенной графики у этих процессоров нет и порты на материнской плате не будут выдавать изображение на монитор. ПК на основе процессоров с индексом F обязательно требуется видеокарта. Так же графического ядра нет во всех высокопроизводительных процессорах на сокетах 2066 и TR4.
Со значением маркировки процессоров Intel можно ознакомиться тут:
https://www.intel.ru/content/www/ru/ru/processors/processor-numbers.html
Сокет – это гнездо для процессора. Выбранный процессор должен быть совместим с сокетом, а так же его версией на материнской плате. Актуальные сокеты у Intel — 1151v2 и 2066, у AMD – AM4 и TR4.
Примерно 9 лет назад, с выходом семейства core i, в процессоры intel переехал контроллер памяти, теперь процессор обращается к памяти напрямую, а не через контроллер в материнской плате, который назывался «северный мост». Так же в процессор переехал и контроллер PCI-e.
Техпроцессом называют размер литографии измеряемой в нанометрах. Чем ниже этот показатель, тем современнее процессор. Чем меньше размер транзистора, тем больше их можно упаковать в процессор, при том же энергопотреблении и выделении тепла.
Еще один показатель процессора – это количество линий PCI-e. Ими формируется ширина канала связи по данной шине между процессором и высокопроизводительными платами расширения, например, видеокартами или сопроцессорами.
Процессоры Intel семейства Pentium и Celeron, core i3, i5, i7 i9 на сокете LGA1151 последней версии, имеют всего 16 линий PCI-e.
Процессоры Intel семейства i9 на 2066 сокете имеют 44 линии PCI-e, а i7-7800X — 28 линий PCI-e. Процессоры от AMD семейства Ryzen 3, 5, и 7 имеют так же 16 линий, а Threadripper 64 линии PCI-e – а это 4 полноценных x16 для плат расширения. Это одна из причин, почему для сборки серьезных рабочих станций используются топовые серии или серверные процессоры, где линий PCI-e больше.
SSD и периферийные устройства получают линии PCI-E от чипсета материнской платы, который соединен с процессором через шину DMI, но об этом мы поговорим в ЛикБезе про материнские платы.
Физический процессор состоит из трех основных компонентов, то что мы все видим, держа его в руке – термораспределительная металлическая крышка и текстолитовое основание с контактной площадкой. Внутри находится кремниевый кристалл, в котором находятся ядра, а иногда и не один, это может быть графическое ядро или еще один набор основных ядер – это самая сложная и дорогая часть процессора. Внутри кристалла процессора Intel core i7 находится 4 ядра, видеоядро, кэш память, контроллер оперативной памяти, DMI интерфейс для соединения с периферийными устройствами через чипсет материнской платы. А в процессорах AMD Epic и Threadripper находится сразу 4 кристалла по 4 ядра, но в тоже время процессор Intel i9 имеет 18 ядер упакованных в одном кристалле. Между кристаллом и термораспределительной крышкой есть слой термопасты, в топовых моделях используется припой. О термопастах и других термоинтрефейсках так же будет статья.
На что влияют ядра процессора
Центральный процессор – это основной компонент компьютера, производящий львиную долю вычислений, и от его мощности зависит скорость работы всей системы. В этой статье мы поговорим о том, как влияет количество ядер на производительность CPU.
Ядра центрального процессора
Ядро – это основная составляющая ЦП. Именно здесь производятся все операции и вычисления. Если ядер несколько, то они «общаются» между собой и с другими компонентами системы посредством шины данных. Количество таких «кирпичиков», в зависимости от поставленной задачи, влияет на общую производительность процессора. В целом, чем их больше, тем выше скорость обработки информации, но на деле имеются условия, при которых многоядерные CPU уступают своим менее «упакованным» собратьям.
Читайте также: Устройство современного процессора
Физические и логические ядра
Многие процессоры Intel, а с недавнего времени и AMD, способны производить расчеты так, что одно физическое ядро оперирует двумя потоками вычислений. Эти потоки называются логическими ядрами. Например, мы можем увидеть в CPU-Z вот такие характеристики:
Отвечает за это технология Hyper Threading (HT) у Intel или Simultaneous Multithreading (SMT) у AMD. Здесь важно понять, что добавленное логическое ядро будет медленнее физического, то есть полноценный четырехъядерный ЦП мощнее двухъядерного того же поколения с HT или SMT в одних и тех же приложениях.
Игры
Игровые приложения построены таким образом, что вместе с видеокартой над расчетом мира трудится и центральный процессор. Чем сложнее физика объектов, чем их больше, тем выше нагрузка, и более мощный «камень» лучше справится с работой. Но не стоит спешить покупать многоядерного монстра, так как игры бывают разные.
Читайте также: Что делает процессор в играх
Старые проекты, разработанные примерно до 2015 года, в основном не могут загрузить больше 1 – 2 ядер из-за особенностей кода, написанного разработчиками. В этом случае предпочтительнее иметь двухъядерный процессор с высокой частотой, чем восьмиядерный с низкими мегагерцами. Это лишь пример, на практике современные многоядерные ЦП имеют довольно высокую производительность на ядро и в устаревших играх работают хорошо.
Читайте также: На что влияет частота процессора
Одной из первых игр, код которой способен выполняться на нескольких (4 и более) ядрах, загружая их равномерно, стала GTA 5, выпущенная на ПК в 2015 году. С тех пор большинство проектов можно считать многопоточными. Это значит, что у многоядерного процессора есть шанс не отстать от своего высокочастотного коллеги.
В зависимости от того, насколько хорошо игра способна использовать вычислительные потоки, многоядерность может быть как плюсом, так и минусом. На момент написания данного материала «игровыми» можно считать CPU, имеющие от 4 ядер, лучше с гиперпоточностью (см. выше). Впрочем, тенденция такова, что разработчики все более оптимизируют код под параллельные вычисления, и малоядерные модели скоро безнадежно устареют.
Программы
Здесь все немного проще, чем с играми, так как мы можем подобрать «камень» для работы в конкретной программе или пакете. Рабочие приложения также бывают однопоточными и многопоточными. Первым нужна высокая производительность на ядро, а вторым большое количество вычислительных потоков. Например, с рендерингом видео или 3D сцен лучше справится многоядерный «проц», а Фотошопу необходимо 1 – 2 мощных ядра.
Операционная система
Количество ядер влияет на быстродействие ОС только в том случае, если равняется 1. В остальных случаях системные процессы не нагружают процессор настолько, чтобы были задействованы все ресурсы. Мы сейчас не говорим о вирусах или сбоях, способных «положить на лопатки» любой «камень», а о штатной работе. Впрочем, вместе с системой может быть запущено много фоновых программ, которые также потребляют процессорное время и дополнительные ядра не будут лишними.
Универсальные решения
Сразу отметим, что многозадачных процессоров не бывает. Есть только модели, способные показывать неплохие результаты во всех приложениях. В качестве примера можно привести шестиядерные CPU с высокой частотой i7 8700, Ryzen R5 2600 (1600) или более пожилые аналогичные «камни», но даже они не могут претендовать на универсальность, если вы параллельно с играми активно работаете с видео и 3D или занимаетесь стримингом.
Заключение
Резюмируя все написанное выше, можно сделать следующий вывод: количество ядер процессора — это характеристика, показывающая общую вычислительную мощность, а вот, каким образом она будет использоваться, зависит от приложения. Для игр вполне сгодится четырехъядерная модель, а для высокоресурсных программ лучше выбрать «камень» с большим количеством потоков.
Мы рады, что смогли помочь Вам в решении проблемы.Опишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.
Помогла ли вам эта статья?
ДА НЕТпринципы работы 🚩 как работает процессор 🚩 Компьютеры и ПО 🚩 Другое
Многоядерные процессоры представляют собой центральные процессоры, в которых содержится более двух вычислительных ядер. Такие ядра могут находиться как в одном корпусе, так и на одном процессорном кристалле.Чаще всего под многоядерными процессорами понимают центральные процессоры, в которых несколько вычислительных ядер интегрированы в одну микросхему (то есть они расположены на одном кристалле кремния).
Обычно тактовая частота в многоядерных процессорах намеренно занижается. Это делают для того, чтобы сократить энергопотребление, сохранив при этом требуемую производительность процессора. Каждое ядро при этом представляет собой полноценный микропроцессор, для которого характерны черты всех современных процессоров — он использует многоуровневый кэш, поддерживает внеочередное исполнение кода и векторные команды.
Ядра в многоядерных процессорах могут поддерживать технологию SMT, позволяющую исполнять несколько потоков вычислений и создавать на основе каждого ядра несколько логических процессоров. На процессорах, которые выпускает компания Intel, такая технология называется «Hyper-threading». Благодаря ей можно удваивать число логических процессоров по сравнению с числом физических чипов. В микропроцессорах, поддерживающих эту технологию, каждый физический процессор способен сохранять состояние двух потоков одновременно. Для операционной системы это будет выглядеть, как наличие двух логических процессоров. Если в работе одного из них возникает пауза (например, он ждет получения данных из памяти), другой логический процессор приступает к выполнению собственного потока.
Многоядерные процессоры подразделяются на несколько видов. Они могут поддерживать использование общей кэш-памяти, а могут не поддерживать. Связь между ядрами реализуется на принципах использования разделяемой шины, сети на каналах точка-точка, сети с коммутатором или использования общего кэша.
Большинство современных многоядерных процессоров работает по следующей схеме. Если запущенное приложение поддерживает многопоточность, оно может заставлять процессор выполнять несколько заданий одновременно. Например, если в компьютере используется 4-ядерный процессор с тактовой частотой 1.8 ГГц, программа может «загрузить» работой сразу все четыре ядра, при этом суммарная частота процессора будет составлять 7.2 ГГц. Если запущено сразу несколько программ, каждая из них может использовать часть ядер процессора, что тоже приводит к росту производительности компьютера.
Многие операционные системы поддерживают многопоточность, поэтому использование многоядерных процессоров позволяет ускорить работу компьютера даже в случае приложений, которые многопоточность не поддерживают. Если рассматривать работу только одного приложения, то использование многоядерных процессоров будет оправданным лишь в том случае, если это приложение оптимизировано под многопоточность. В противном случае, скорость работы многоядерного процессора не будет отличаться от скорости работы обычного процессора, а иногда он будет работать даже медленнее.
Многоядерность процессора или характеристика количества ядер
На первых порах развития процессоров, все старания по повышению производительности процессоров были направлены в сторону наращивания тактовой частоты, но с покорением новых вершин показателей частоты, наращивать её стало тяжелее, так как это сказывалось на увеличении TDP процессоров. Поэтому разработчики стали растить процессоры в ширину, а именно добавлять ядра, так и возникло понятие многоядерности.
Ещё буквально 6-7 лет назад, о многоядерности процессоров практически не было слышно. Нет, многоядерные процессоры от той же компании IBM существовали и ранее, но появление первого двухъядерного процессора для настольных компьютеров, состоялось лишь в 2005 году, и назывался данный процессор Pentium D. Также, в 2005 году был выпущен двухъядерник Opteron от AMD, но для серверных систем.
В данной статье, мы не будем подробно вникать в исторические факты, а будем обсуждать современные многоядерные процессоры как одну из характеристик CPU. А главное – нам нужно разобраться с тем, что же даёт эта многоядерность в плане производительности для процессора и для нас с вами.
Увеличение производительности за счёт многоядерности
Принцип увеличения производительности процессора за счёт нескольких ядер, заключается в разбиении выполнения потоков (различных задач) на несколько ядер. Обобщая, можно сказать, что практически каждый процесс, запущенный у вас в системе, имеет несколько потоков.
Сразу оговорюсь, что операционная система может виртуально создать для себя множество потоков и выполнять это все как бы одновременно, пусть даже физически процессор и одноядерный. Этот принцип реализует ту самую многозадачность Windows (к примеру, одновременное прослушивание музыки и набор текста).
Возьмём для примера антивирусную программу. Один поток у нас будет сканирование компьютера, другой – обновление антивирусной базы (мы всё очень упростили, дабы понять общую концепцию).
И рассмотрим, что же будет в двух разных случаях:
а) Процессор одноядерный. Так как два потока выполняются у нас одновременно, то нужно создать для пользователя (визуально) эту самую одновременность выполнения. Операционная система, делает хитро: происходит переключение между выполнением этих двух потоков (эти переключения мгновенны и время идет в миллисекундах). То есть, система немного «повыполняла» обновление, потом резко переключилась на сканирование, потом назад на обновление. Таким образом, для нас с вами создается впечатление одновременного выполнения этих двух задач. Но что же теряется? Конечно же, производительность. Поэтому давайте рассмотрим второй вариант.
б) Процессор многоядерный. В данном случае этого переключения не будет. Система четко будет посылать каждый поток на отдельное ядро, что в результате позволит нам избавиться от губительного для производительности переключения с потока на поток (идеализируем ситуацию). Два потока выполняются одновременно, в этом и заключается принцип многоядерности и многопоточности. В конечном итоге, мы намного быстрее выполним сканирование и обновление на многоядерном процессоре, нежели на одноядерном. Но тут есть загвоздочка – не все программы поддерживают многоядерность. Не каждая программа может быть оптимизирована таким образом. И все происходит далеко не так идеально, насколько мы описали. Но с каждым днём разработчики создают всё больше и больше программ, у которых прекрасно оптимизирован код, под выполнение на многоядерных процессорах.
Нужны ли многоядерные процессоры? Повседневная резонность
При выборе процессора для компьютера (а именно при размышлении о количестве ядер), следует определить основные виды задач, которые он будет выполнять.
Для улучшения знаний в сфере компьютерного железа, можете ознакомится с материалом про сокеты процессоров.
Точкой старта можно назвать двухъядерные процессоры, так как нет смысла возвращаться к одноядерным решениям. Но и двухъядерные процессоры бывают разные. Это может быть не «самый» свежий Celeron, а может быть Core i3 на Ivy Bridge, точно так же и у АМД – Sempron или Phenom II. Естественно, за счёт других показателей производительность у них будет очень отличаться, поэтому нужно смотреть на всё комплексно и сопоставлять многоядерность с другими характеристиками процессоров.
К примеру, у Core i3 на Ivy Bridge, в наличии имеется технология Hyper-Treading, что позволяет обрабатывать 4 потока одновременно (операционная система видит 4 логических ядра, вместо 2-ух физических). А тот же Celeron таким не похвастается.
Но вернемся непосредственно к размышлениям относительно требуемых задач. Если компьютер необходим для офисной работы и серфинга в интернете, то ему с головой хватит двухъядерного процессора.
Когда речь заходит об игровой производительности, то здесь, чтобы комфортно чувствовать себя в большинстве игр необходимо 4 ядра и более. Но тут всплывает та самая загвоздочка: далеко не все игры обладают оптимизированным кодом под 4-ех ядерные процессоры, а если и оптимизированы, то не так эффективно, как бы этого хотелось. Но, в принципе, для игр сейчас оптимальным решением является именно 4-ых ядерный процессор.
На сегодняшний день, те же 8-ми ядерные процессоры AMD, для игр избыточны, избыточно именно количество ядер, а вот производительность не дотягивает, но у них есть другие преимущества. Эти самые 8 ядер, очень сильно помогут в задачах, где необходима мощная работа с качественной многопоточной нагрузкой. К таковой можно отнести, например рендеринг (просчёт) видео, или же серверные вычисления. Поэтому для таких задач необходимы 6, 8 и более ядер. Да и в скором времени игры смогут качественно грузить 8 и больше ядер, так что в перспективе, всё очень радужно.
Не стоит забывать о том, что остается масса задач, создающих однопоточную нагрузку. И стоит задать себе вопрос: нужен мне этот 8-ми ядерник или нет?
Подводя небольшие итоги, еще раз отмечу, что преимущества многоядерности проявляются при «увесистой» вычислительной многопоточной работе. И если вы не играете в игры с заоблачными требованиями и не занимаетесь специфическими видами работ требующих хорошей вычислительной мощи, то тратиться на дорогие многоядерные процессоры, просто нет смысла (какой процессор лучше для игр?).
Почему количество ядер в процессорах не растет больше нескольких штук
В одной из предыдущих статей я рассказал, почему рост частоты процессоров застопорился на нескольких гигагерцах. Теперь же поговорим о том, почему развитие числа ядер в пользовательских процессорах также идет крайне медленно: так, первый честный двухядерный процессор (где оба ядра были в одном кристалле), построенный на архитектуре x86, появился аж в 2006 году, 12 лет назад — это была линейка Intel Core Duo. И с тех пор 2-ядерные процессоры с арены не уходят, более того — активно развиваются: так, буквально на днях вышел ноутбук Lenovo с процессором, построенном на новейшем (для архитектуры x86) 10 нм техпроцессе. И да, как вы уже догадались, этот процессор имеет ровно 2 ядра.
Для пользовательских процессоров число ядер застопорилось на 6 еще с 2010 года, с выходом линейки AMD Phenom X6 — да, AMD FX не были честными 8-ядерными процессорами (там было 4 APU), равно как и Ryzen 7 представляет собой два блока по 4 ядра, расположенные бок о бок на кристалле. И тут, разумеется, возникает вопрос — а почему так? Ведь те же видеокарты, будучи в 1995-6 годах по сути «одноголовыми» (то есть имевшими 1 шейдер), сумели к текущему времени нарастить их число до нескольких тысяч — так, в Nvidia Titan V их аж 5120! При этом за гораздо больший срок развития архитектуры x86 пользовательские процессоры остановились на честных 6 ядрах на кристалле, а CPU для высокопроизводительных ПК — на 18, то есть на пару порядков меньше, чем у видеокарт. Почему? Об этом и поговорим ниже.
Архитектура CPU
Изначально все процессоры Intel x86 строились на архитектуре CISC (Complex Instruction Set Computing, процессоры с полным набором инструкций) — то есть в них реализовано максимальное число инструкций «на все случаи жизни». С одной стороны, это здорово: так, в 90-ые годы CPU отвечал и за рендеринг картинки, и даже за звук (был такой лайфхак — если игра тормозит, то может помочь отключение в ней звука). И даже сейчас процессор является эдаким комбайном, который может все — и это же является и проблемой: распараллелить случайную задачу на несколько ядер — задача не тривиальная. Допустим, с двумя ядрами можно сделать просто: на одно ядро «вешаем» систему и все фоновые задачи, на другое — только приложение. Это сработает всегда, но вот прирост производительности будет далеко не двукратным, так как обычно фоновые процессы требуют существенно меньше ресурсов, чем текущая тяжелая задача.
Слева — схема GPU Nvidia GTX 980 Ti, где видно 2816 CUDA-ядер, объединенных в кластеры. Справа — фотография кристалла процессора AMD Ryzen, где видно 4 больших ядра.
А теперь представим, что у нас не два, а 4 или вообще 8 ядер. Да, в задачах по архивации и другим расчетам распараллеливание работает хорошо (и именно поэтому те же серверные процессоры могут иметь и несколько десятков ядер). Но что если у нас задача со случайным исходом (которых, увы, большинство) — допустим, игра? Ведь тут каждое новое действие зависит всецело от игрока, поэтому «раскидывание» такой нагрузки на несколько ядер — задача не из простых, из-за чего разработчики зачастую «руками» прописывают, чем занимаются ядра: так, к примеру, одно может быть занято только обработкой действий искусственного интеллекта, другое отвечать только за объемный звук, и так далее. Нагрузить таким способом даже 8-ядерный процессор — практически невозможно, что мы и видим на практике.
С видеокартами же все проще: GPU, по сути, занимается расчетами и только ими, причем число разновидностей расчетов ограничено и невелико. Поэтому, во-первых, можно оптимизировать сами вычислительные ядра (у Nvidia они называются CUDA) именно под нужные задачи, а, во-вторых — раз все возможные задачи известны, то процесс их распараллеливания трудностей не вызывает. И в-третьих, управление идет не отдельными шейдерами, а вычислительными модулями, которые включают в себя 64-192 шейдера, поэтому большое число шейдеров проблемой не является.
Энергопотребление
Одной из причин отказа от дальнейшей гонки частот — резкое увеличение энергопотребления. Как я уже объяснял в статье с замедлением роста частоты CPU, тепловыделение процессора пропорционально кубу частоты. Иными словами, если на частоте в 2 ГГц процессор выделяет 100 Вт тепла, что в принципе можно без проблем отвести воздушным кулером, то на 4 ГГц получится уже 800 Вт, что возможно отвести в лучшем случае испарительной камерой с жидким азотом (хотя тут следует учитывать, что формула все же приблизительная, да и в процессоре есть не только вычислительные ядра, но получить порядок цифр с ее помощью вполне можно).
Поэтому рост вширь был отличным выходом: так, грубо говоря, двухядерный 2 ГГц процессор будет потреблять 200 Вт, а вот одноядерный 3 ГГц — почти 340, то есть выигрыш по тепловыделению больше чем на 50%, при этом в задачах с хорошей оптимизацией под многопоточность низкочастотный двухядерный CPU будет все же быстрее высокочастотного одноядерного.
Пример испарительной камеры с жидким азотом для охлаждения экстремально разогнанных CPU.
Казалось бы — это золотое дно, быстро делаем 10-ядерный процессор с частотой в 1 ГГц, который будет выделять лишь на 25% больше тепла, чем одноядерный CPU с 2 ГГц (если 2 ГГц процессор выделяет 100 Вт тепла, то 1 ГГц — всего 12.5 Вт, 10 ядер — около 125 Вт). Но тут мы быстро упираемся в то, что далеко не все задачи хорошо распараллеливаются, поэтому на практике зачастую будет получаться так, что гораздо более дешевый в производстве одноядерный CPU с 2 ГГц будет существенно быстрее гораздо более дорогого 10-ядерного, но с 1 ГГц. Но все же такие процессоры есть — в серверном сегменте, где проблем с распараллеливанием задач нет, и 40-60 ядерный CPU с частотами в 1.5 ГГц зачастую оказывается в разы быстрее 8-10 ядерных процессоров с частотами под 4 ГГц, выделяя при этом сравнимое количество тепла.
Поэтому производителям CPU приходится следить за тем, чтобы при росте ядер не страдала однопоточная производительность, а с учетом того, что предел отвода тепла в обычном домашнем ПК был «нащупан» уже достаточно давно (это около 60-100 Вт) — способов увеличения числа ядер при такой же одноядерной производительности и таком же тепловыделении всего два: это или оптимизировать саму архитектуру процессора, увеличивая его производительность за такт, или же уменьшать техпроцесс. Но, увы, и то и другое идет все медленнее: за более чем 30 лет существования x86 процессоров «отполировано» уже почти все, что можно, поэтому прирост идет в лучшем случае 5% за поколение, а уменьшение техпроцесса дается все труднее из-за фундаментальных проблем создания корректно функционирующих транзисторов (при размерах в десяток нанометров уже начинают сказываться квантовые эффекты, трудно изготовить подходящий лазер, и т.д.) — поэтому, увы, увеличивать число ядер все сложнее.
Размер кристалла
Если мы посмотрим на площадь кристаллов процессоров лет 15 назад, то увидим, что она составляет всего около 100-150 квадратных миллиметров. Около 5-7 лет назад чипы «доросли» до 300-400 кв мм и… процесс практически остановился. Почему? Все просто — во-первых, производить гигантские кристаллы очень сложно, из-за чего резко возрастает количество брака, а, значит, и конечная стоимость CPU.
Во-вторых, возрастает хрупкость: большой кристалл может очень легко расколоть, к тому же разные его края могут греться по-разному, из-за чего опять же может произойти его физическое повреждение.
Сравнение кристаллов Intel Pentium 3 и Core i9.
Ну и в-третьих — скорость света также вносит свое ограничение: да, она хоть и велика, но не бесконечна, и с большими кристаллами это может вносить задержку, а то и вовсе сделать работу процессора невозможной.
В итоге максимальный размер кристалла остановился где-то на 500 кв мм, и вряд ли уже будет расти — поэтому чтобы увеличивать число ядер, нужно уменьшать их размеры. Казалось бы — та же Nvidia или AMD смогли это сделать, и их GPU имеют тысячи шейдеров. Но тут следует понимать, что шейдеры полноценными ядрами не являются — к примеру, они не имеют собственного кэша, а только общий, плюс «заточка» под определенные задачи позволила «выкинуть» из них все лишнее, что опять же сказалось на их размере. А CPU же не только имеет полноценные ядра с собственным кэшем, но зачастую на этом же кристалле расположена и графика, и различные контроллеры — так что в итоге опять же чуть ли не единственные способы увеличения числа ядер при том же размере кристалла — это все та же оптимизация и все то же уменьшение техпроцесса, а они, как я уже писал, идут медленно.
Оптимизация работы
Представим, что у нас есть коллектив людей, выполняющих различные задачи, некоторые из которых требуют работы нескольких человек одновременно. Если людей в нем двое — они смогут договориться и эффективно работать. Четверо — уже сложнее, но тоже работа будет достаточно эффективной. А если людей 10, а то и 20? Тут уже нужно какое-то средство связи между ними, в противном случае в работе будут встречаться «перекосы», когда кто-то будет ничем не занят. В процессорах от Intel таким средством связи является кольцевая шина, которая связывает все ядра и позволяет им обмениваться информацией между собой.
Но даже и это не помогает: так, при одинаковых частотах 10-ядерный и 18-ядерный процессоры от Intel поколения Skylake-X различаются по производительности всего на 25-30%, хотя должны в теории аж на 80%. Причина как раз в шине — какой бы хорошей она не была, все равно будут возникать задержки и простои, и чем больше ядер — тем хуже будет ситуация. Но почему тогда таких проблем нет в видеокартах? Все просто — если ядра процессора можно представить людьми, которые могут выполнять различные задачи, то вычислительные блоки видеокарт — это скорее роботы на конвейере, которые могут выполнять только определенные инструкции. Им по сути «договариваться» не нужно — поэтому при росте их количества эффективность падает медленнее: так, разница в CUDA между 1080 (2560 штук) и 1080 Ti (3584 штуки) — 40%, на практике же около 25-35%, то есть потери существенно меньше.
Чем больше ядер, тем хуже они работают вместе, вплоть до нулевого прироста производительности при увеличении числа ядер.
Поэтому число ядер особого смысла наращивать нет — прирост от каждого нового ядра будет все ниже. Причем решить эту проблему достаточно трудно — нужно разработать такую шину, которая позволяла бы передавать данные между любыми двумя ядрами с одинаковой задержкой. Лучше всего в таком случае подходит топология звезда — когда все ядра должны быть соединены с концентратором, но на деле такой реализации еще никто не сделал.
Так что в итоге, как видим, что наращивание частоты, что наращивание числа ядер — задача достаточно сложная, а игра при этом зачастую не стоит свеч. И в ближайшем будущем вряд ли что-то серьезно изменится, так как ничего лучше кремниевых кристаллов пока еще не придумали.
Многоядерный процессор — это… Что такое Многоядерный процессор?
Многоя́дерный проце́ссор — центральный процессор, содержащий два и более вычислительных ядра на одном процессорном кристалле или в одном корпусе.
Архитектура многоядерных систем
Многоядерные процессоры можно подразделить по наличию поддержки когерентности кеш-памяти между ядрами. Бывают процессоры с такой поддержкой и без неё.
Способ связи между ядрами:
- разделяемая шина
- сеть (Mesh) на каналах точка-точка
- сеть с коммутатором
- общая кеш-память
Кеш-память: Во всех существующих на сегодня многоядерных процессорах кеш-памятью 1-го уровня обладает каждое ядро в отдельности, а кеш-память 2-го уровня существует в нескольких вариантах:
- разделяемая — расположена на одном кристалле с ядрами и доступна каждому из них в полном объёме. Используется в процессорах семейств Intel Core.
- индивидуальная — отдельные кеши равного объёма, интегрированные в каждое из ядер. Обмен данными из кешей 2-го уровня между ядрами осуществляется через контроллер памяти — интегрированный (Athlon 64 X2, Turion X2, Phenom) или внешний (использовался в Pentium D, в дальнейшем Intel отказалась от такого подхода).
Производительность
В приложениях, оптимизированных под многопоточность, наблюдается прирост производительности на многоядерном процессоре. Однако, если приложение не оптимизировано, то оно не будет получать практически никакой выгоды от дополнительных ядер, а может даже выполняться медленнее, чем на процессоре с меньшим количеством ядер, но большей тактовой частотой. Это в основном приложения, разработанные до появления многоядерных процессоров, либо приложения, в принципе не использующие многопоточность.
Большинство операционных систем позволяют выполнять несколько приложений одновременно. При этом получается выигрыш в производительности даже если приложения однопоточные.
Наращивание количества ядер
На сегодня основными производителями процессоров — Intel и AMD дальнейшее увеличение числа ядер процессоров признано как одно из приоритетных направлений увеличения производительности.
В 2011 году освоено производство 8-ядерных процессоров для домашних компьютеров,[1] и 16-ядерных для серверных систем.[2]
Имеются экспериментальные разработки процессоров с большим количеством ядер (более 20). Некоторые из таких процессоров уже нашли применение в специфических устройствах.
История массовых многоядерных процессоров
Двухядерные процессоры различных архитектур существовали ранее, например IBM PowerPC-970MP (G5), но их использование было ограничено узким кругом специализированных применений.
В апреле 2005 года AMD выпустила 2-ядерный процессор Opteron архитектуры AMD64, предназначенный для серверов. В мае 2005 года Intel выпустила процессор Pentium D архитектуры x86-64, ставший первым 2-ядерным процессором, предназначенным для персональных компьютеров.
В марте 2010 года появились первые 12-ядерные серийные процессоры, которыми стали серверные процессоры Opteron 6100 компании AMD (архитектура x86/x86-64).[3]
В августе 2011 года компанией AMD были выпущены первые 16-ядерные серийные серверные процессоры Opteron серии 6200 (кодовое наименование Interlagos). Процессор Interlagos объединяет в одном корпусе два 8-ядерных (4-модульных) чипа и является полностью совместимым с существующей платформой AMD Opteron серии 6100 (Socket G34).[4]
Сводные данные по истории микропроцессоров и их параметров представлены в обновляющейся английской статье: Хронология микропроцессоров, 2010ые годы. Для получения числа ядер процессора надо умножить поля «Cores per die» и «Dies per module», для получения числа аппаратных потоков — умножить число ядер на число «threads per core». Например, для Xeon E7, Intel: «4, 6, 8, 10» ядер на 1 die на 1-2 аппаратных потоков = максимум 10 ядер и 20 аппаратных потоков, AMD FX «Bulldozer» Interlagos «4-8» на 2 на 1 = максимум 16 ядер и 16 потоков.
История экспериментальных многоядерных процессоров
27 сентября 2006 года Intel представила прототип 80-ядерного процессора.[5] Предполагается, что массовое производство подобных процессоров станет возможно не раньше перехода на 32-нанометровый техпроцесс.
20 августа 2007 года компания Tilera, анонсировала чип TILE64 (англ.) с 64 процессорными ядрами и встроенной высокопроизводительной сетью, посредством которой обмен данными между различными ядрами может происходить со скоростью до 32 Тбит/с.[6][7]
26 октября 2009 года Tilera анонсировала[8] 100-ядерный процессор широкого назначения серии TILE-Gx (англ.). Каждое процессорное ядро представляет собой отдельный процессор с кеш-памятью 1 и 2 уровней. Ядра, память и системная шина связаны посредством топологии mesh network. Процессоры производятся по 40-нм техпроцессу и работают на тактовой частоте 1,5 ГГц. Выпуск 100-ядерных процессоров назначен на начало 2011 года.
2 декабря 2009 года Intel представила одночиповый «облачный» Single-chip Cloud Computer (SCC) компьютер, представляющий собой 48-ядерный чип. «Облачность» процессора состоит в том, что все 48 ядер сообщаются между собой как сетевые узлы. SCC — часть проекта, целью которого является создание 100-ядерного процессора. Ожидается, что некоторые функции SCC появятся в серийных процессорах Intel в 2010 году.[9]
В июне 2011 года Intel раскрыла детали разрабатываемой архитектуры Many Integrated Core (MIC) — эта технология выросла из проекта Larrabee. Микропроцессоры на основе этой архитектуры получат более 50 микроядер архитектуры x86 и начнут производится в 2012 году по 22-нм техпроцессу. Эти микропроцессоры не могут быть использованы в качестве центрального процессора, но из нескольких чипов этой архитектуры будут строиться вычислительные ускорители в виде отдельной карты расширения и конкурировать на рынках GPGPU и высокопроизводительных вычислений с решениями типа Nvidia Tesla и AMD FireStream.[10] По опубликованному в 2012 году описанию архитектуры, возможны чипы с количеством ядер до 60.
В октябре 2011 года компания Adapteva представила 64-ядерные микропроцессоры Epiphany IV, которые показывают производительность до 70 гигафлопс, при этом потребляя менее 1 Вт электроэнергии. Микропроцессоры спроектированы с использованием RISC-архитектуры и начнут массово производится в начале 2012 года по 28-нм техпроцессу. Данные процессоры не могут быть использованы в качестве центрального процессора, но компания Adapteva предлагает использовать их в качестве сопроцессора для таких сложных задач, как распознавание лиц или жестов пользователя. Компания Adapteva утверждает, что в дальнейшем число ядер данного микропроцессора может быть доведено до 4096[11].
В январе 2012 года компания ZiiLabs (дочернее предприятие Creative Technology) анонсировала 100-ядерную систему на чипе ZMS-40. Эта система, объединяющая 4-ядерный процессор ARM Cortex-A9 1,5 ГГц (с мультимедийными блоками Neon) и массив из 96 более простых и менее универсальных вычислительных ядер StemCell. Ядра StemCell — это энергоэффективная архитектура SIMD, пиковая производительность при вычислениях с плавающей запятой (32 бит) — 50 гигафлопс, ядра которой работают скорее как GPU в других системах на чипе, и могут быть использованы для обработки видео, изображений и аудио, для ускорения 3D- и 2D-графики и других мультимедийных задач (поддерживается OpenGL ES 2.0 и OpenCL 1.1)[12].
Многоядерные контроллеры
Существует также тенденция внедрения многоядерных микроконтроллеров в мобильные устройства.
Например:
- seaForth-24 — новая разработка multi-core MISC архитектуры Chuck Moore 1 ГГц 24-ядерный асинхронный контроллер.
- Контроллер от Parallax [1] имеет восемь 32-разрядных процессоров (COG) в одном кристалле P8X32A.
- Kilocore PowerPC процессор с 1024 8-ми битными ядрами работающими на частоте 125 МГц. На данный момент существует 256-ядерный процессор.
См. также
Ссылки
Примечания
Ответы@Mail.Ru: 1, 2, 4 ядра — объясните на пальцах кто знает,
О количестве ядер и частоте. Сказать однозначно, что важнее, частота или количество ядер, – невозможно. Слишком уж разные это вещи. Дело в том, что частота процессора — это количество операций в секунду. Чем выше частота, тем больше действий процессор за один проход. Это как с перевозкой груза: чем быстрее Вы едете, тем раньше привезете товар к месту назначения. Других вариантов нет. Если взять два одинаковых процессора, но с разными частотами, то можно гарантировать, что быстрее будет именно тот, у которого выше частота работы. С многоядерностью сложнее. Два ядра могут обсчитывать одновременно несколько задач. И в идеале работать они будут значительно быстрее одноядерного решения. Но тут все зависит от самой программы или игры: может ли она разделить поставленную задачу на несколько простых действий и загрузить ими оба ядра? Для простоты понимания снова вернемся к примеру с перевозкой грузов. Если у Вас есть два грузовика, то они могут перевезти в два раза больше груза. Но это только при условии, что груз можно разделить на части. А что, если это, скажем, уже собранная машина, которую и разбирать нельзя и не разрежешь пополам? Тогда с грузом поедет только один грузовик, а второй будет простаивать и ничего полезного не сделает. Так и с процессорами. Если программа не может разбить задачу на части, то работать будет только одно ядро и скорость будет зависеть только от его частоты. Помимо частот и количества ядер, есть еще один немаловажный фактор, – архитектура процессора. Собственно, это то, как процессор оперирует полученными данными. Возьмем, опять же, наши грузы. К примеру один водитель знает дорогу лучше другого и представляет где можно срезать путь, а посему приходит на место быстрее своего компаньона. С процессорами то же самое. Чем рациональнее используются его ресурсы, тем быстрее он будет работать. Именно поэтому, к примеру, процессоры Intel в одинаковых условиях зачастую оказываются быстрее решений от AMD. Теперь, понимая, на что влияют основные характеристики процессора, можно поговорить о том, какая из них важнее именно для Вас. Многоядерность помогает при конвертации видео, работе с аудио, рендеринге картинок в 3DS Max и т. п. Это простые процессы, которые всегда можно разделить на составляющие и после обсчета собрать вместе. С играми все гораздо сложнее, тут как попадете. Кто-то из разработчиков занимается распараллеливанием задач в коде игр, а кто-то нет. Но тенденция «больше ядер — быстрее игра» все же прослеживается. Отчетливо это видно при сравнении старых игр с новыми. К примеру, Crysis, игра трехлетней давности, на двухъядерном процессоре с частотой 4.5ГГц работает значительно быстрее, чем на четырехядерном, но с 2,6 Ггц. Однако не стоит срываться с места и бежать за четрехъядерным процессором. Перед покупкой необходимо учесть множество других факторов, главный из которых — видеокарта. В играх процессоры раскрываются только тогда, когда графику обрабатывает мощная плата, к примеру, GTX 480 или Radeon HD5870. Если же за графику будет отвечать что-нибудь бюджетное, то разницы между теми же Core i3 и Core i7 можно просто не почувствовать, т. к производительность в этом случае упрется в видеокарту. Статья <a rel=»nofollow» href=»http://sonikelf.ru/taktovaya-chastota-ili-kolichestvo-yader-chto-vybrat/» target=»_blank» > отсюда. </a> <img src=»//otvet.imgsmail.ru/download/02d518426bfe5752d4b1e161d96343b9_i-2240.gif» >
Это дает улучшение частоты процессора, то есть количество операций в секунду.
То, что разные ядра могут выполнять разные задачи. К примеру, в одноядерном процессоре все задачи смешаны в кучу, он выполняет их все. Второе ядро, к примеру, в системе может простаивать, но стоит запустить игру или ресурсоемкую программу — вот оно и заработало, совершенно не мешая первому обеспечивать работу системы. Ну и 4 ядра соответственно по этому же принципу.
1 солдат чистит картошку за час. 4 солдата чистят картошку за 15 минут. Но, лишь в том случае, если у них есть 4 ножа. В общем, если приложение или игра не умеет использовать все ядра — это равноценно тому, что один солдат будет чистить картошку, а три других — курить в сторонке (простаивать т. е.).
ассоциативно: разгружать камаз дров одному или в четвером. Частота будет отвечать за скорость.
одноцилиндровый двигун или 4 х лучше?
понты) а так если по умному, то 4 ядра дают более мошную работу процессора чем 1 ядро, в 4х ядерном процессоре комп будет пахать быстрее чем в 1ом ядерном)
Мощный процессор нужен только геймерам и тем, кто работает с графикой Если на пальцах объяснять — возможность обрабатывать инфу в несколько потоков. Или как наглядно объяснил RomRom — 4 солдата с картошкой) Только одно НО. Он описал относительно одного действия. Если ножа всего 2, но зато есть две лопаты, то оставшехся двоих можно послать копать новую порцию (то есть выполнять другой процесс)
Ядро в один текущий момент времени может выполнять какую-то одну задачу, какой-то один процесс. То есть в его память загружены какие-то инструкции и какие-то данные и он над ними трудится. В операционной системе постоянно выполняется целая куча процессов. Это системные задачи и запущенные программы и на движение юзером мышки надо реагировать. Поэтому процессор постоянно переключается с задачи на задачу. Это значит, надо выгрузить всё, относящееся к одной задаче, загрузить другую и повыполнять её. Потом следующую и так по очереди в соответствии с приоритетом. Это происходит довольно быстро и если проц не делает чего-то сильно ресурсоёмкого, пользователь проблем не замечает. Пусть ядро одно. Если комп начинает делать какую-то тяжёлую операцию — например архивирует файлы, выполняет какую-то игрушку, проигрывает большое видео с хитрым кодеком и т. п. и тактовой частоты процессора маловато — он может начать тормозить. Когда процессоры были одноядерными нередко можно было наблюдать скачкообразное движение мыши и медленную реакцию на кнопки — просто не успевал комп реагировать. Особенно плохо, когда одновременно выполняются две и более «тяжёлых» задачи. Пусть ядра два и более. Тогда операционная система сама (в большинстве случаев сама) решает, как ей распределить все задачи по ядрам. Тогда если одно ядро чем-то загружено, другое относительно свободно и вся система из-за одной задачи не виснет. Так что можно кодировать видео и одновременно, например, играть в игрушки или ещё что-то делать — одно другому не мешает. С этой точки зрения два — это действительно удобно, а больше — тоже хорошо, но уже не так критично. Однако операционная система не может один процесс выполнять на двух ядрах. Точнее до недавнего времени не могла, а как сейчас и что будет дальше — не знаю. Что-то вроде пытаются сделать, но проблема-то в том, что система не знает какие части программы можно выполнить независимо друг от друга. Компиляторы тоже сами программы не распараллеливают. А это значит, что производительность отдельной программы от увеличения количества ядер не обязательно возрастёт. Следовательно, если критична произвоительность одной программы — лучше проц с меньшим количеством ядер, но большей тактовой частотой на ядро. Впрочем, последние модели имеют возможность увеличивать частоту пары ядер, отключая остальные, если это выгоднее. Но всё изменится, если программист при написании программы учтёт возможность использовать больше ядер. Он-то знает, где её можно распараллелить и тогда производительность этой программы действительно будет выше при большем количестве ядер. Примеры — архиватор 7zip, MS Office 2010, Google Chrome плодит процессы как кролик — возможно, именно для этого. Более того, можно ожидать, что дальше только больше производителей программ будут закладывать такую возможность, т. к. у людей всё больше подходящих процов. До этого смысла было мало, т. к. это порождает и определённые трудности в программировании. Вывод: Два ядра — для обычного пользователя очень желательно. Четыре, пожалуй перспективно. Больше или меньше — следует отдавать себе отчёт для чего (например больше — если часто архивировать или кодировать видео программой, которая точно их задействует, а меньше — для маломощного проца с пассивным охлаждением — нет вентилятора — нет шума) . И исходить из стоимости. Ну и ещё. Тактовая частота отдельного ядра и количество ядер — важные характеристики. Но также на производительность сильно влияет и архитектура процессора и поддерживаемые им наборы инструкций (например SSE2, SSE3, SSE4 и другие) и пропускная способность канала прямой работы с памятью (двойной или тройной канал) . Более того — разные архитектуры лучше подходят для разных задач, поэтому при покупке следует, поискать обзоры производительностей для задач, которые будут выполняться на этом компьютере. >^.^<
На пальцах не могу, могу на рте) Вот, например, 1 у тебя рот или 4.Вот будешь ты кушать пирог 1 ртом или 4 сразу каким образом ты съешь пирог быстрее? Ядро-рот, пирог-информация, которую обрабатывает проц. И мне пофиг, что этот вопрос задали в бородатые времена, может кому поможет)
все ядры посвоему хороши
Для такого как ты и полЪядра будет достаточно, а мне лишь бы видюха покруче, озу побольше и проц core i5 3.5 ГГц :). Но у меня этого нету…
Чем ядер больше — тем круче. Но частота тоже важна
Не секрет что каждый компьютер включает в себя незаменимый компонент такой как процессор. И от его производительности зависит многое. Главное понять, какие параметры для вашего процессора будут лучшими? Не всегда огромная цена, гарантирует высокие показатели в работе процессора. Старайтесь подбирать сердце Ваше компьютера в зависимости от задач которые планируете на нем выполнять, если это компьютер для игры, то соответственно процессор должен иметь несколько ядер и большой потенциал в разгоне. В этой подборке собраны лучшие процессоры до 2017 года, а возможно некоторые из них по прежнему останутся лучшими для компьютера на протяжении всего года. Почитайте может что то найдете полезное: kaknastroit.com/kompiuter/komplectyushie-for-pc/46-luchshie-processory-do-2017-goda.html