Как работает ядро процессора: говорим просто о сложных вещах

Процессор – это «сердце» любого компьютера или неттопа вне зависимости от его назначения: домашнее использование, офисные задачи, применение в серверных для обеспечения бесперебойности производственных процессов или другие задачи. Это устройство, которое отвечает за обработку информации, поэтому от его работы зависит производительность ПК.

Центральный процессор – это не конечная деталь. Он состоит из разных частей и одной из них является ядро. Оно содержит все функциональные блоки и осуществляет выполнение всех логических и арифметических операций. От количества ядер в процессоре напрямую зависит его производительность. Для сервера это важно вдвойне, потому что он должен одновременно обрабатывать большое количество запросов от рабочих станций и периферийного оборудования. Если говорить проще, то процессор работает во столько раз быстрее, сколько ядер у него установлено (например, 4-ядерный процессор работает в два раза быстрее, чем 2-ядерный).

Что такое ядро в процессоре: разбираемся с терминологией

Еще 20 лет назад у процессоров неттопов и компьютеров не было ни ядер, ни потоков в привычном их понимании. Задача повышения скорости обработки данных решалась путем увеличения тактовой частоты (на начало 2000-х годов она превысила 1 ГГц, а за последующие пять лет возросла практически в 4 раза).

Увеличение тактовой частоты достигалось за счет размещения на одном кристалле все большего количества транзисторов, формирующих вычислительные схемы ЦП:

  • В первом поколении процессоров Intel их было 2300 (размером 10 мкм).
  • Процессор Intel 80286 содержал 134 000 транзисторов (1,5 мкм).
  • Последний одноядерный процессор Intel Xeon содержал уже 178 млн транзисторов.

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

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

Структура ядра процессора

Каждое ядро состоит из нескольких функциональных блоков:

  • блока выборки инструкций;
  • блоков декодирования инструкций;
  • блоков выборки данных;
  • управляющего блока;
  • блоков выполнения инструкций;
  • блоков сохранения результатов;
  • блока работы с прерываниями;
  • ПЗУ, содержащего микрокод;
  • регистров;

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

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

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

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

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

Блок выполнения инструкций включает в себя несколько блоков разного типа:

  • ALU (арифметико-логическое устройство).
  • FPU (устройство по выполнению операций с плавающей точкой).

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

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

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

Регистры бывают двух типов:

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

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

Конвейеризация и параллелизм в увеличении эффективности работы ядра процессора

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

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

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

Параллелизм предполагает одновременное выполнение процессором нескольких независимых команд параллельно, а не последовательно. Есть два подхода к параллелизму на уровне команд: аппаратное обеспечение и программное обеспечение. Аппаратный уровень работает с динамическим параллелизмом, а программный – со статическим. Динамический параллелизм означает, что процессор решает во время исполнения, какие инструкции выполнять параллельно, а статический параллелизм означает, что это решение принимает компилятор (компьютерная программа, которая переводит компьютерный код, написанный на одном языке программирования, на другой язык).

Многопоточность и многозадачность

Большинство современных процессоров, устанавливаемых на бытовых компьютерах, промышленных мини-ПК и неттопах, поддерживают многопоточность. У Intel эта технология называется Hyper-Threading, у AMD – Simultaneous Multithreading (SMT).

Для примера возьмем Hyper-Threading. Суть ее заключается в том, что она позволяет каждому ядру процессора выполнять две задачи одновременно. По сути, из одного реального ядра получается два виртуальных. Это возможно благодаря тому, что в ядрах сохраняется состояние сразу двух потоков, т.к. у ядра есть свой набор регистров, свой счетчик команд и блок работы с прерываниями для каждого потока. Операционная система видит такое ядро, как два отдельных, и работает с ними так же, как бы работала с 2-ядерным процессором. Это приводит к тому, что ядро используется более эффективно и выполняет больше работы. Процессоры с поддержкой Hyper-Threading или SMT всегда имеют в 2 раза больше потоков, чем ядер.

Важно понимать разницу между физическим и виртуальным ядром. Физическое – это, если так можно выразиться, реально существующее ядро. Виртуальные ядра физически не существуют: они выступают в роли «улучшателя», служа лишь для оптимизации работы физических ядер.

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

Современные технологии в процессорных ядрах

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

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

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

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

NEB P60i5 (6 LAN)

 

NEB P50i5 (GEN8)

 

NEB A30i3 (слот OPS)

Данный веб-сайт носит исключительно информационный характер и ни при каких условиях не является публичной офертой, определяемой положениями Статьи 437 (2) Гражданского кодекса Российской Федерации. Для получения подробной информации о наличии и стоимости указанных товаров обращайтесь к менеджерам отдела клиентского обслуживания с помощью специальной формы запроса или по телефонам: 8 800 700-72-44, +7 (495) 790-42-44. ООО «НЕБ Компани» ОГРН 1212200015720