Процессор, он же CPU (Central Processing Unit) — деталь, занимающая самое важное место среди прочих железяк компьютера. Пришло время познакомиться с ним поближе.
1. Что такое процессор?
Устройство, исполняющее машинный код — грубо говоря, код на языке нулей и единиц (двоичный код). Только вот код для исполнения процессором пишут люди, и как вы могли догадаться, писать программы на двоичном языке не очень удобно. Потому был придуман язык ассемблера, который состоит из набора коротких команд, обозначающих соответствующие двоичные команды. Этот код почти напрямую поступает в устройство, и вот тут мы плавно переходим к такому понятию как архитектура.
Под архитектурой процессора обычно понимается архитектура набора команд. Да, если процессоры значительно отличаются по своему устройству, то и программируются они по-разному, то есть имеют разную архитектуру набора команд (инструкций, далее объясню зачем это нам надо знать). Когда говорят о совместимости архитектур, то обычно имеется ввиду полная или частичная поддержка команд другой архитектуры. Так как мы рассматриваем процессор персонального компьютера, то нас будет интересовать всего две архитектуры: x86 и x86-64.
Сейчас в большинстве процессоров для ПК используется x86-64 архитектура, которая гораздо более расширена относительно x86, но при том совместима с ней. Не буду разбирать подробно, так как это сильно растянет тему.
Физически же процессор представляет из себя набор микросхем и транзисторов на текстолитовой подложке и контактную площадку. Ничего сложного, не считая того, что размеры транзисторов внутри необычайно маленьких размеров.
Характеристики процессоров
1. Техпроцесс
Начнем с простого, с техпроцесса. Если сильно упрощать — это то, насколько маленькие внутри транзисторы и микросхемы, и чем эта характеристика меньше, тем лучше. Следуя логике — чем меньше транзисторы, тем больше их влезет в процессор. Техпроцесс косвенно определяет производительность процессора, измеряется этот показатель обычно в нанометрах.
2. Поддерживаемые инструкции
Помните, я говорил что расскажу об инструкциях подробнее? Настало время это осуществить.
Несмотря на то, что процессоры могут быть одной архитектуры, некоторые наборы инструкций могут в одном процессоре быть, а в другом — отсутствовать. Обычно некоторые наборы инструкций процессора используются при создании различных программ, и это может прямо повлиять на то, будет ли работать приложение на этом процессоре или нет. В некоторых случаях отсутствие/наличие каких-то инструкций определяет то, насколько хорошо будет работать та или иная программа.
Для примера сравним набор инструкций AMD FX-8350 и AMD Ryzen 3 1200
Обратите внимание, что в Ryzen добавилось расширение инструкций AVX 2. Это расширение сильно увеличивает быстродействие процессора в операциях с целыми числами:
- Инструкция Fused Multiply Add (FMA) отвечает за операции сложения и умножения.
- Процессор может проводить операции с 256-битными целочисленными векторами;
- Добавлены gather-инструкции, которые позволяют собирать данные из разных адресов памяти.
Инструкции AVX 2 ускоряют работу процессора с видео, фото, звуком и еще рядом процессов, вроде распознавания голоса и жестов.
Сами посудите, насколько важно наличие каких-либо наборов инструкций в процессоре. Если у процессоров будут одинаковые характеристики, но у одного из них архитектура будет расширена набором инструкций, вроде того же AVX 2, то процессор с этим набором будет работать гораздо быстрее.
3. Частота процессора
Процессор каждую секунду обрабатывает множество команд от различных программ. Тактовая частота процессора определяет именно количество команд (или тактов), которые процессор выполняет за секунду.
Измеряется частота в герцах (Гц, или Hz), но в современных процессорах счет идет на миллионы операций в секунду, поэтому к герцам добавляются приставки мега или гига. К примеру, базовая тактовая частота того же Ryzen 3 1200 равна 3100 мегагерцам (МГц) или 3,1 гигагерца (ГГц).
Отмечу, что с ростом тактовой частоты процессора повышается и его энергопотребление, а значит и тепловыделение.
4. Ядра процессора
Тут объясню совсем просто, не вдаваясь в технические детали:
У вас есть процессор с такой-то тактовой частотой, с таким-то уровнем кэша и так далее. Но что будет лучше — один процессор или два в одном корпусе? А может три или четыре?
Современные ядра процессора обычно представляют собой отдельный микропроцессор внутри процессора, а с количеством ядер кратно или почти кратно растет и производительность. Вот такой вот интересный параметр. Больше ядер — лучше.
Многопоточность
Отдельно упомянем многопоточность и гиперпоточность. Зачастую современные процессоры имеют по два потока на ядро — выполняемый процесс в этом случае разделяется на два потока, которые обрабатываются ядром параллельно, без заранее предписанного порядка. Эта технология и называется многопоточностью (multithreding).
Технология гиперпоточности (hyper-threading), разработанная Intel, позволяет поделить каждое физическое ядро процессора на два логических ядра, иногда увеличивая при этом производительность. Как показали тесты, в некоторых случаях гиперпоточность даже понижает производительность программ, так что не надейтесь на чудо.
- Интересный факт: игра Crysis 2007 года выпуска до сих пор может заставить вашу систему попотеть. И не из-за фотореалистичной графики, а из-за того, что в то время девелоперы еще не знали, в какую сторону пойдет индустрия. Разработчики из Crytek полагали, что в будущем инженеры станут увеличивать тактовую частоту одного ядра, а вместо этого они сделали упор на увеличение ядер и потоков без существенного увеличения тактовых частот. Поэтому пока одно ядро какого-нибудь i9 9900k молотит в турбобусте на все 5 ГГц, остальные семь ядер тупо отдыхают.
5. Кэш процессора
Кэш или сверхоперативная память. Ну давайте тут тоже упростим и расскажем на простом примере. Допустим, программа использует одну и ту же операцию десять тысяч раз — например, складывает два числа.
Что будет быстрее: если эта команда со всеми исходными данными будет поступать в процессор из довольно медленной (да-да, в сравнении с кэшем оперативная память медленная) оперативной памяти через половину материнской платы или же если эта операция один раз запишется в сверхбыструю память внутри процессора, и процессор будет использовать эту команду максимально быстро, не обращаясь постоянно к оперативной памяти? Думаю, ответ очевиден.
Чем кэша больше, а также чем выше его уровень — тем лучше.
Особенности процессоров
Сокет
Сокет — с английского языка "розетка". Это просто разъем материнской платы, в который вставляется процессор. Логично, что он должен совпадать с разъемом процессора. Никто же не будет пихать USB-C кабель в microUSB-порт — оно тупо туда не залезет, а если и залезет, то работать все равно не будет.
Контроллер памяти
Контроллер памяти — штука, которая определяет в каком режиме будет работать оперативная память (двухканальный, четырехканальный, одноканальный и так далее). Еще контроллер определяет наиболее стабильную максимальную частоту оперативной памяти. С недавних пор эта штука находится в основном в процессорах, а не на материнской плате.
А на этом пока все, спасибо! В следующих статьях я расскажу об устройстве других компонентов компьютера.