Процессор – это «сердце» любого компьютера или неттопа вне зависимости от его назначения: домашнее использование, офисные задачи, применение в серверных для обеспечения бесперебойности производственных процессов или другие задачи. Это устройство, которое отвечает за обработку информации, поэтому от его работы зависит производительность ПК.
Центральный процессор – это не конечная деталь. Он состоит из разных частей и одной из них является ядро. Оно содержит все функциональные блоки и осуществляет выполнение всех логических и арифметических операций. От количества ядер в процессоре напрямую зависит его производительность. Для сервера это важно вдвойне, потому что он должен одновременно обрабатывать большое количество запросов от рабочих станций и периферийного оборудования. Если говорить проще, то процессор работает во столько раз быстрее, сколько ядер у него установлено (например, 4-ядерный процессор работает в два раза быстрее, чем 2-ядерный).
Еще 20 лет назад у процессоров неттопов и компьютеров не было ни ядер, ни потоков в привычном их понимании. Задача повышения скорости обработки данных решалась путем увеличения тактовой частоты (на начало 2000-х годов она превысила 1 ГГц, а за последующие пять лет возросла практически в 4 раза).
Увеличение тактовой частоты достигалось за счет размещения на одном кристалле все большего количества транзисторов, формирующих вычислительные схемы ЦП:
Но в 2005 году был практически достигнут предел разрешающей способности оборудования, на котором изготавливались процессоры для мини-ПК, неттопов и обычных бытовых компьютеров. Именно тогда технологии пошли по другому пути и стали говорить о ядрах.
Ядро – это физический блок, который находится внутри центрального процессора и занимается линейным вычислением логических и арифметических операций. Оно выполняет расшифровку, чтение, отправку инструкций другим элементам, либо принимает инструкции от них.
Каждое ядро состоит из нескольких функциональных блоков:
Блок выборки инструкций проводит считывание инструкций по адресу, который указан в счетчике команд. Число считываемых инструкций обусловлено количеством блоков декодирования, т.к. на каждом такте работы необходимо максимально загрузить блоки декодирования. Для стабильной работы блока выборки инструкций в ядре ЦП неттопа предусмотрено наличие предсказателя переходов.
Предсказатель переходов определяет, какая последовательность команд будет осуществляться после совершения перехода. Это нужно для того, чтобы после условного перехода максимально нагрузить конвейер ядра ЦП.
Блоки декодирования занимаются декодированием инструкций. Они определяют, что необходимо сделать процессору, и какие данные нужны для выполнения инструкции.
Блоки выборки данных осуществляют выборку данных из кэш-памяти или оперативной памяти, необходимых для выполнения текущих инструкций. Как правило, каждое ядро в процессоре содержит несколько блоков выборки данных.
Управляющий блок на основании декодированных инструкций управляет работой блоков выполнения инструкций. Он распределяет нагрузку между ними, обеспечивая своевременное и точное выполнение инструкций.
Блок выполнения инструкций включает в себя несколько блоков разного типа:
Блок сохранения результатов обеспечивает запись результата выполнения инструкции в оперативную память по адресу, который указан в обрабатываемой инструкции.
Блок работы с прерываниями обеспечивает возможность процессора неттопа оперативно реагировать на события, прерывать работу программы и выполнять требуемые от него действия в зависимости от сценария. Благодаря наличию прерываний, ЦП способен к многозадачности.
Регистры – это очень быстрая оперативная память, доступ к которой в несколько раз быстрее доступа к кэш-памяти. Она входит в состав процессора и используется для временного хранения промежуточных результатов выполнения инструкций.
Регистры бывают двух типов:
Счетчик команд – это регистр, содержащий адрес команды, которую процессор начнет выполнять на следующем такте работы.
Увеличение тактовой частоты, как один из способов повышения производительности ядра ЦП, обладает достаточно серьезными ограничениями. В частности, увеличение тактовой частоты приводит к перегреву процессора, повышению энергопотребления и снижению стабильности работы ЦП в целом.
Поэтому разработчиками используются разные архитектурные решения, позволяющие увеличить производительность ядра в процессоре неттопа без увеличения тактовой частоты. Одни из них – это конвейеризация и параллелизм.
Принцип конвейеризации подразумевает, что в каждый момент времени процессор работает над различными стадиями выполнения нескольких команд. При этом для выполнения каждой стадии выделяются отдельные аппаратные ресурсы. По очередному тактовому импульсу каждая команда в конвейере продвигается на следующую стадию обработки, выполненная команда покидает конвейер, а новая поступает в него. Иными словами, во всех современных процессорах выполнение инструкций осуществляется по мере высвобождения блоков ядра, т.е. происходит непрерывная обработка следующих инструкций, не дожидаясь того, пока предыдущая инструкция будет выполнена полностью.
Параллелизм предполагает одновременное выполнение процессором нескольких независимых команд параллельно, а не последовательно. Есть два подхода к параллелизму на уровне команд: аппаратное обеспечение и программное обеспечение. Аппаратный уровень работает с динамическим параллелизмом, а программный – со статическим. Динамический параллелизм означает, что процессор решает во время исполнения, какие инструкции выполнять параллельно, а статический параллелизм означает, что это решение принимает компилятор (компьютерная программа, которая переводит компьютерный код, написанный на одном языке программирования, на другой язык).
Большинство современных процессоров, устанавливаемых на бытовых компьютерах, промышленных мини-ПК и неттопах, поддерживают многопоточность. У Intel эта технология называется Hyper-Threading, у AMD – Simultaneous Multithreading (SMT).
Для примера возьмем Hyper-Threading. Суть ее заключается в том, что она позволяет каждому ядру процессора выполнять две задачи одновременно. По сути, из одного реального ядра получается два виртуальных. Это возможно благодаря тому, что в ядрах сохраняется состояние сразу двух потоков, т.к. у ядра есть свой набор регистров, свой счетчик команд и блок работы с прерываниями для каждого потока. Операционная система видит такое ядро, как два отдельных, и работает с ними так же, как бы работала с 2-ядерным процессором. Это приводит к тому, что ядро используется более эффективно и выполняет больше работы. Процессоры с поддержкой Hyper-Threading или SMT всегда имеют в 2 раза больше потоков, чем ядер.
Важно понимать разницу между физическим и виртуальным ядром. Физическое – это, если так можно выразиться, реально существующее ядро. Виртуальные ядра физически не существуют: они выступают в роли «улучшателя», служа лишь для оптимизации работы физических ядер.
Основное различие между многопоточностью и многозадачностью заключается в том, что многозадачность предполагает выполнение нескольких независимых процессов или задач. Многопоточность же предполагает разделение одного процесса на несколько потоков, которые могут выполняться одновременно.
Существует несколько современных технологии в процессорных ядрах компьютеров, промышленных неттопов и мини-ПК. На некоторых из них мы остановимся более подробно.
Динамическая частота – это способ управления энергопотреблением в компьютерной архитектуре, при котором частоту микропроцессора можно автоматически регулировать в зависимости от фактических потребностей. Это позволяет экономить энергию и уменьшать количество тепла, которое выделяется процессором.
Интегрированные графические ядра – это, грубо говоря, видеокарта, которая интегрирована в центральный процессор. Она вполне может выполнять функции дискретной видеокарты в некоторых случаях.
На сайте компании NEB большой выбор промышленных мини-ПК и неттопов, в которых используются современные процессоры разных поколений. С помощью нашего конфигуратора вы можете подобрать оборудование по определенным параметрам. Если у вас возникнут вопросы, то наши консультанты всегда готовы ответить на них и помочь в выборе подходящего ПК под ваши задачи.