Добрый день, друзья. В чем разница между процессорами? Я имею в виду не amd и intel, а процессоры CPUs и vCPUs. Также мы рассмотрим разницу между потоками и ядрами. Центральные процессоры (CPU) — это мозг наших компьютеров. Они обрабатывают все, что мы делаем ежедневно, от открытия приложения до просмотра фильма. Но что такое процессор? Как это работает? И в чем разница между обычными процессорами и все более популярными процессорами VCPU?
Что такое мозг компьютера?
Согласно полному руководству по истории, опубликованному G2, первые электронные компьютеры были созданы в начале 1900-х годов. Однако эти компьютеры были большими и дорогими, и ими могли пользоваться только подготовленные математики и ученые.
Чарльзу Бэббиджу приписывают изобретение первой вычислительной машины, Difference Engine (Разностный движок), которую можно было запрограммировать для выполнения любых вычислений, которые можно было выполнить вручную. Однако, по данным Музея компьютерной истории, проект Difference Engine так и не был завершен из-за нехватки финансирования.
В 1937 году Бэббидж впервые упомянул Аналитическую машину, которая станет первым в мире механическим компьютером общего назначения. “Аналитический движок включил в себя все элементы современного компьютера: арифметико-логический блок, поток управления в форме условного ветвления и циклов, а также встроенную память”, — отмечает Electronics Notes.
Ключевым компонентом современного компьютера является центральный процессор (CPU) или Central Processing Unit. Центральный процессор отвечает за выполнение инструкций, данных ему программным обеспечением, таким как операционная система или приложение. С точки зрения непрофессионала, вы можете думать о процессоре как о мозге вашего компьютера. Центральный процессор состоит из двух основных частей: блока управления и арифметико-логического блока (ALU).
Блок управления отвечает за извлечение инструкций из памяти, их декодирование и последующую отправку в арифметико-логическое устройство для выполнения. ALU выполняет арифметические и логические операции с данными, хранящимися в регистрах, которые являются внутренними блоками памяти внутри центрального процессора.
Современные процессоры также содержат кэш, который представляет собой небольшой объем высокоскоростной памяти, в которой хранятся часто используемые инструкции и данные. Кэши делятся на уровни: кэш уровня 1 (L1) встроен в сам процессор, кэш уровня 2 (L2) находится на отдельном чипе рядом с процессором, а кэш уровня 3 (L3) находится дальше от процессора на собственном чипе или даже на собственной печатной плате.
Процессор против vCPU
С развитием облачных сервисов появилось виртуальное центральное процессорное устройство, или сокращенно vCPU. TechTarget определяет vCPU как “физический центральный процессор (CPU), который назначен виртуальной машине (VM)”.
Виртуальные машины — это, по сути, автономные операционные системы, которые работают внутри другой операционной системы, как если бы они были приложениями. Виртуальные машины используются для различных целей, таких как тестирование нового программного обеспечения в безопасной среде, запуск нескольких операционных систем (например, Windows и Linux) на одном компьютере или объединение нескольких физических серверов в один сервер для экономии места и снижения затрат.
Итак, vCPU — это программная реализация процессора; он физически не существует внутри вашего компьютера, как реальный процессор. Гипервизор, который представляет собой программное обеспечение, которое создает виртуальные машины и управляет ими, назначает VCPU виртуальной машине. Каждый vCPU рассматривается операционной системой внутри виртуальной машины как реальное ядро процессора.
Однако, поскольку процессоры VCPU основаны на программном обеспечении, они не так эффективны, как настоящие процессоры. Поэтому важно указать, сколько ядер имеет ваш процессор, когда вы покупаете компьютер (например, «четырехъядерный» означает четыре ядра). То же правило применяется при выборе виртуального частного сервера (VPS) или плана хостинга выделенного сервера.
Основное различие между физическими процессорами и процессорами VCPU заключается в том, что обычные процессоры основаны на оборудовании, а процессоры VCPU основаны на программном обеспечении. Это означает, что процессоры CPU физически существуют внутри вашего компьютера, а процессоры VCPU — нет; вместо этого они создаются гипервизорами, когда это необходимо. Из-за этой разницы в реализации процессоры CPU намного эффективнее, чем процессоры VCPU; у них нет накладных расходов, связанных с запуском в программном обеспечении.
С начала 2000-х годов процессоры VCPU становятся все более популярными, поскольку их дешевле и проще назначать, чем физические процессоры; однако, если вы ищете производительность, лучше всего использовать компьютер с несколькими ядрами процессора, поскольку каждое ядро может обрабатывать инструкции независимо.
Ядра против Потоков
Центральный процессор может иметь одно или несколько ядер, которые являются процессором, выполняющим задачи в указанное время. Ядро будет поддерживать порядок выполнения задач, регистры и кэш (если применимо) и выполнять операции через ALU. Центральный процессор управляет ядрами. Ядро выполняет каждый программный процесс или поток, который запланирован операционной системой. Поток — это независимая последовательность инструкций, которая может обрабатываться процессором.
Несколько потоков могут существовать в одном процессе и использовать одно и то же пространство памяти. Это позволяет им легче взаимодействовать друг с другом, чем если бы они выполнялись в рамках отдельных процессов. Потоки часто используются для повышения производительности многопоточных приложений, позволяя различным частям программы выполняться одновременно на разных ядрах или процессорах.
Термин «поток» использовался в вычислительной терминологии в течение многих лет, однако только в начале 2000-х годов в процессорах была введена аппаратная поддержка потоков. Это позволило выполнять несколько потоков одновременно на отдельных ядрах. Ранее одновременно на одном ядре мог выполняться только один поток, независимо от того, сколько ядер присутствовало в процессоре. Многоядерные процессоры в настоящее время являются обычным явлением, и большинство операционных систем обеспечивают некоторый уровень поддержки для запуска программ в виде нескольких потоков.
Разница между процессорами — итог
Подводя итог, можно сказать, что процессоры — это аппаратный мозг наших компьютеров, в то время как их виртуальный аналог, VCPU, основан на программном обеспечении и создается гипервизорами для работы на виртуальных машинах. Ядра — это аппаратные процессорные блоки в ЦП, в то время как потоки — это программные инструкции, которые могут обрабатываться ЦП.
Потоки могут выполняться одновременно на отдельных ядрах, что позволяет запускать разные части программы одновременно. Это может повысить производительность оборудования, поскольку несколько задач могут обрабатываться одновременно, а не последовательно.
Теперь, когда вы понимаете разницу между процессорами CPU, процессорами VCPU, ядрами и потоками, вы можете принять обоснованное решение при выборе компьютера или сервера. Если вы ищете производительность, лучше всего выбрать компьютер с несколькими процессорными ядрами, поскольку каждое ядро может обрабатывать инструкции независимо. Однако, если вы ищете экономичное решение, VCPU могут быть подходящим вариантом. Успехов!
С уважением, Андрей Зимин 08.07.2022