Чем упрощенная логическая схема двухъядерного процессора будет отличаться от упрощенной
Обновлено: 21.11.2024
Наследие более ранних разработок, таких как разностная машина Бэббиджа и перфокартные системы мейнфреймов 1970-х годов, оказывают значительное влияние на современные компьютерные системы. В своей первой статье из этой исторической серии «История компьютеров и современные компьютеры для системных администраторов» я обсудил несколько предшественников современного компьютера и перечислил характеристики, определяющие то, что мы сегодня называем компьютером.
В этой статье я расскажу о центральном процессоре (ЦП), включая его компоненты и функциональные возможности. Многие темы относятся к первой статье, поэтому обязательно прочитайте ее, если вы еще этого не сделали.
Центральный процессор (ЦП)
ЦП современных компьютеров — это воплощение «мельницы» в разностной машине Бэббиджа. Термин центральный процессор возник еще в далекие компьютерные времена, когда в одном массивном корпусе содержалась схема, необходимая для интерпретации программных инструкций машинного уровня и выполнения операций с предоставленными данными. Центральный процессор также завершил всю обработку всех подключенных периферийных устройств. Периферийные устройства включали принтеры, устройства чтения карт и ранние устройства хранения, такие как барабаны и дисководы. Современные периферийные устройства сами обладают значительной вычислительной мощностью и разгружают некоторые задачи обработки с ЦП. Это освобождает ЦП от задач ввода-вывода, так что его мощность применяется к основной задаче под рукой.
Ранние компьютеры имели только один ЦП и могли выполнять только одну задачу за раз.
Сегодня мы сохраняем термин ЦП, но теперь он относится к процессорному пакету на типичной материнской плате. На рис. 1 показан стандартный пакет процессоров Intel.
Рис. 1. Процессор Intel Core i5 (Джуд МакКрени, Wikimedia Commons, CC BY-SA 4.0).
Здесь действительно не на что смотреть, кроме самого пакета процессора. Пакет процессора представляет собой микросхему, содержащую процессор(ы), запечатанную внутри металлического контейнера и установленную на небольшой печатной плате (ПК). Пакет просто вставляется в гнездо ЦП на материнской плате и фиксируется с помощью фиксирующего рычага. Процессорный кулер крепится к корпусу процессора. Существует несколько различных физических разъемов с определенным количеством контактов, поэтому, если вы собираете свои собственные компьютеры, очень важно подобрать правильный корпус, подходящий для разъема материнской платы.
Как работает процессор
Давайте рассмотрим ЦП более подробно. На рис. 2 представлена концептуальная схема гипотетического ЦП, позволяющая упростить визуализацию компонентов. ОЗУ и системные часы заштрихованы, поскольку они не являются частью ЦП и показаны только для ясности. Кроме того, никакие связи между тактовым генератором ЦП и блоком управления и компонентами ЦП не используются. Достаточно сказать, что сигналы от тактового генератора и блока управления являются неотъемлемой частью любого другого компонента.
Рисунок 2. Упрощенная концептуальная схема типичного процессора.
Этот дизайн не выглядит особенно простым, но на самом деле все еще сложнее. Этой цифры достаточно для наших целей, но она не слишком сложная.
Арифметико-логическое устройство
Арифметико-логическое устройство (АЛУ) выполняет арифметические и логические функции, за которые отвечает компьютер. A и B регистры содержат входные данные, а накопитель получает результат операции. Регистр инструкций содержит инструкцию, которую должен выполнить АЛУ.
Например, при добавлении двух чисел одно число помещается в регистр A, а другое — в регистр B. АЛУ выполняет сложение и помещает результат в аккумулятор. Если операция логическая, сравниваемые данные помещаются в регистры ввода. Результат сравнения, 1 или 0, помещается в аккумулятор. Независимо от того, является ли это логической или арифметической операцией, содержимое накопителя затем помещается в ячейку кэша, зарезервированную программой для результата.
Существует еще один тип операций, выполняемых ALU.Результатом является адрес в памяти, который используется для вычисления нового местоположения в памяти, чтобы начать загрузку инструкций. Результат помещается в регистр указателя команд.
Регистр инструкций и указатель
Указатель инструкции указывает место в памяти, содержащее следующую инструкцию, которую должен выполнить ЦП. Когда ЦП завершает выполнение текущей инструкции, следующая инструкция загружается в регистр инструкций из ячейки памяти, на которую указывает указатель инструкции.
После загрузки инструкции в регистр инструкций указатель регистра инструкций увеличивается на один адрес инструкции. Увеличение позволяет ему быть готовым к перемещению следующей инструкции в регистр инструкций.
Кэш
ЦП никогда не обращается напрямую к ОЗУ. Современные процессоры имеют один или несколько уровней кеша. Способность ЦП выполнять вычисления намного быстрее, чем способность ОЗУ передавать данные ЦП. Причины этого выходят за рамки этой статьи, но я расскажу об этом подробнее в следующей статье.
Кэш-память быстрее системной ОЗУ и ближе к ЦП, поскольку находится на кристалле процессора. Кэш обеспечивает хранение данных и инструкции, чтобы ЦП не ждал, пока данные будут извлечены из ОЗУ. Когда центральному процессору нужны данные (а инструкции программы также считаются данными), кэш определяет, имеются ли уже данные, и предоставляет их центральному процессору.
Если запрошенных данных нет в кеше, они извлекаются из ОЗУ и с помощью алгоритмов прогнозирования перемещают больше данных из ОЗУ в кеш. Контроллер кэша анализирует запрошенные данные и пытается предсказать, какие дополнительные данные потребуются из оперативной памяти. Он загружает ожидаемые данные в кеш. Храня некоторые данные ближе к ЦП в кеше, который быстрее, чем ОЗУ, ЦП может оставаться занятым и не тратить циклы на ожидание данных.
Наш простой ЦП имеет три уровня кэша. Уровни 2 и 3 предназначены для прогнозирования того, какие данные и программные инструкции потребуются в следующий раз, для перемещения этих данных из ОЗУ и перемещения их как можно ближе к ЦП, чтобы они были готовы, когда это необходимо. Эти размеры кэша обычно варьируются от 1 МБ до 32 МБ в зависимости от скорости и предполагаемого использования процессора.
Кэш уровня 1 расположен ближе всего к центральному процессору. В нашем процессоре есть два типа кеша L1. L1i — это кэш инструкций, а L1d — кэш данных. Размер кэша уровня 1 обычно составляет от 64 КБ до 512 КБ.
Блок управления памятью
Блок управления памятью (MMU) управляет потоком данных между основной памятью (ОЗУ) и ЦП. Он также обеспечивает защиту памяти, необходимую в многозадачных средах, и преобразование адресов виртуальной памяти в физические адреса.
Часы процессора и блок управления
Все компоненты ЦП должны быть синхронизированы для бесперебойной совместной работы. блок управления выполняет эту функцию со скоростью, определяемой тактовой частотой, и отвечает за управление операциями других блоков с помощью сигналов синхронизации, которые распространяются на ЦП.< /p>
Оперативная память (ОЗУ)
Хотя ОЗУ или основное хранилище показаны на этой и следующей диаграммах, на самом деле они не являются частью ЦП. Его функция заключается в хранении программ и данных, чтобы они были готовы к использованию, когда они потребуются процессору.
Как это работает
ЦП работают по циклу, который управляется блоком управления и синхронизируется с часами ЦП. Этот цикл называется циклом инструкций ЦП и состоит из ряда компонентов выборки/декодирования/выполнения. Инструкция, которая может содержать статические данные или указатели на переменные данные, извлекается и помещается в регистр инструкций. Команда декодируется, и любые данные помещаются в регистры данных A и B. Инструкция выполняется с использованием регистров A и B, а результат помещается в аккумулятор. Затем ЦП увеличивает значение указателя инструкции на длину предыдущего и начинает заново.
Базовый цикл инструкций ЦП выглядит следующим образом.
Рисунок 3. Базовый цикл инструкций ЦП.
Потребность в скорости
Хотя базовый ЦП работает хорошо, ЦП, работающие в этом простом цикле, можно использовать еще эффективнее. Существует несколько стратегий повышения производительности ЦП, и здесь мы рассмотрим две из них.
Ускорение цикла инструкций
Одной из проблем, с которой столкнулись первые разработчики ЦП, была трата времени на различные компоненты ЦП. Одной из первых стратегий повышения производительности ЦП было перекрытие частей цикла инструкций ЦП для более полного использования различных частей ЦП.
Например, когда текущая инструкция декодирована, следующая извлекается и помещается в регистр инструкций. Как только это произошло, указатель инструкции обновляется адресом памяти следующей инструкции. Использование перекрывающихся циклов команд показано на рисунке 4.
Рисунок 4. Цикл инструкций ЦП с перекрытием.
Этот дизайн выглядит красиво и плавно, но такие факторы, как ожидание ввода-вывода, могут нарушить поток. Отсутствие правильных данных или инструкций в кэше требует, чтобы MMU находил правильные данные и перемещал их в ЦП, а это может занять некоторое время. Для выполнения некоторых инструкций также требуется больше циклов ЦП, чем для других, что мешает плавному перекрытию.
Тем не менее, это мощная стратегия повышения производительности ЦП.
Гиперпоточность
Еще одна стратегия повышения производительности ЦП — гиперпоточность. Гиперпоточность заставляет одно ядро процессора работать как два процессора, предоставляя два потока данных и инструкций. Добавление второго указателя инструкций и регистра инструкций к нашему гипотетическому ЦП, как показано на рис. 5, заставляет его функционировать как два ЦП, выполняя два отдельных потока инструкций в течение каждого командного цикла. Кроме того, когда один поток выполнения останавливается в ожидании данных (опять же, инструкции также являются данными), второй поток выполнения продолжает обработку. Каждое ядро, реализующее гиперпоточность, эквивалентно двум ЦП по способности обрабатывать инструкции.
Рис. 5. Концептуальная схема ЦП с технологией Hyper-Threading.
Помните, что это очень упрощенная схема и объяснение нашего гипотетического процессора. Реальность гораздо сложнее.
Дополнительная терминология
Я столкнулся с множеством различных терминов ЦП. Чтобы более точно определить терминологию, давайте рассмотрим сам ЦП с помощью команды lscpu.
Процессор Intel, показанный выше, представляет собой корпус, который подключается к одному разъему на материнской плате. Пакет процессора содержит шесть ядер. Каждое ядро поддерживает гиперпоточность, поэтому каждое из них может одновременно запускать два потока, что в сумме дает 12 ЦП.
- Ядро. Ядро — это наименьшая единица физического оборудования, способная выполнять задачу обработки. Он содержит одно АЛУ и один или два набора вспомогательных регистров. Второй набор регистров и поддерживающих схем обеспечивает гиперпоточность. Одно или несколько ядер можно объединить в один физический пакет.
- ЦП. Логический аппаратный блок, способный обрабатывать один поток выполнения. Современное использование термина центральный процессор относится к общему количеству потоков, которые процессорный пакет может выполнять одновременно. Одноядерный процессор, не поддерживающий гиперпоточность, эквивалентен одному процессору. В этом случае ЦП и ядро являются синонимами. Процессор Hyper-Threading с одним ядром является функциональным эквивалентом двух процессоров. Процессор с поддержкой технологии Hyper-Threading с восемью ядрами функционально эквивалентен 16 процессорам.
- Пакет – физический компонент, содержащий одно или несколько ядер, как показано на рис. 1 выше.
- Процессор. 1) Устройство, которое обрабатывает инструкции программы для обработки данных. 2) Часто используется как синоним пакета.
- Сокет. Иногда используется как синоним пакета, но более точно относится к физическому сокету на материнской плате, в который вставляется корпус процессора.
Термины сокет, процессор и пакет часто используются взаимозаменяемо, что может вызвать некоторую путаницу. Как видно из приведенных выше результатов команды lscpu, Intel предоставляет нам собственную терминологию, и я считаю ее авторитетным источником. На самом деле мы все используем эти термины по-разному, но если мы понимаем друг друга в любой момент времени, это действительно важно.
Обратите внимание, что указанный выше процессор имеет два кэша уровня 1 по 512 КиБ каждый: один для инструкций (L1i) и один для данных (L1d). Кэш уровня 1 находится ближе всего к ЦП, и он ускоряет работу, разделяя инструкции и данные на этом этапе. Кэши уровня 2 и уровня 3 больше, но инструкции и данные сосуществуют в каждом из них.
Что все это значит?
Хороший вопрос. На заре мейнфреймов каждый компьютер имел только один ЦП и не мог одновременно запускать более одной программы.Мейнфрейм может выполнять расчет заработной платы, затем учет запасов, затем выставление счетов клиентам и т. д., но одновременно может выполняться только одно приложение. Каждая программа должна была завершиться, прежде чем системный оператор мог запустить следующую.
В некоторых ранних попытках одновременного запуска нескольких программ применялся простой подход, направленный на более эффективное использование одного процессора. Например, программа1 и программа2 были загружены, а программа1 выполнялась до тех пор, пока не была заблокирована в ожидании ввода-вывода. В этот момент программа2 работала до тех пор, пока не была заблокирована. Такой подход назывался многопроцессорной обработкой и позволял полностью использовать ценное компьютерное время.
Все ранние попытки многозадачности включали очень быстрое переключение контекста выполнения одного ЦП между потоками выполнения нескольких задач. Эта практика не является настоящей многозадачностью, как мы ее понимаем, потому что в действительности одновременно обрабатывается только один поток выполнения. Правильнее будет назвать это разделением времени.
Все современные компьютеры, от смарт-часов и планшетов до суперкомпьютеров, поддерживают настоящую многозадачность с несколькими процессорами. Наличие нескольких процессоров позволяет компьютерам выполнять множество задач одновременно. Каждый ЦП выполняет свои функции одновременно со всеми остальными ЦП. Восьмиъядерный процессор с технологией Hyper-Threading (т. е. 16 ЦП) может одновременно выполнять 16 задач.
Заключительные мысли
Мы рассмотрели концептуальный и упрощенный ЦП, чтобы немного узнать о структурах. В этой статье я лишь поверхностно коснулся функциональности процессора. Вы можете узнать больше, воспользовавшись встроенными ссылками на изученные нами темы.
Помните, что схемы и описания в этой статье носят чисто концептуальный характер и не представляют реальный ЦП.
В следующей части этой серии статей я рассмотрю оперативную память и дисковые накопители как разные типы хранилищ и поясню, почему каждый из них необходим современным компьютерам.
Крис Хоффман
Крис Хоффман
Главный редактор
Крис Хоффман – главный редактор How-To Geek. Он писал о технологиях более десяти лет и два года был обозревателем PCWorld. Крис писал для The New York Times, давал интервью в качестве эксперта по технологиям на телевизионных станциях, таких как NBC 6 в Майами, и освещал свою работу в таких новостных агентствах, как BBC. С 2011 года Крис написал более 2000 статей, которые были прочитаны почти миллиард раз — и это только здесь, в How-To Geek. Подробнее.
Центральный процессор (ЦП) вашего компьютера выполняет вычислительную работу — в основном, запускает программы. Но современные процессоры предлагают такие функции, как многоядерность и гиперпоточность. Некоторые ПК даже используют несколько процессоров. Мы здесь, чтобы помочь разобраться во всем этом.
При сравнении производительности тактовой частоты процессора было достаточно. Все уже не так просто. ЦП, который предлагает несколько ядер или гиперпоточность, может работать значительно лучше, чем одноядерный ЦП с той же скоростью, который не поддерживает гиперпоточность. А ПК с несколькими ЦП могут иметь еще большее преимущество. Все эти функции предназначены для того, чтобы ПК могли более легко запускать несколько процессов одновременно, повышая производительность при многозадачности или в соответствии с требованиями мощных приложений, таких как кодировщики видео и современные игры. Итак, давайте рассмотрим каждую из этих функций и то, что они могут значить для вас.
Гиперпоточность
Гиперпоточность была первой попыткой Intel реализовать параллельные вычисления на потребительских ПК. Он дебютировал на процессорах для настольных ПК с Pentium 4 HT еще в 2002 году. Pentium 4 того времени имел только одно ядро ЦП, поэтому он действительно мог выполнять только одну задачу за раз, даже если он мог достаточно быстро переключаться между задачами. что это похоже на многозадачность. Гиперпоточность попыталась компенсировать это.
Одно физическое ядро ЦП с технологией Hyper-Threading отображается в операционной системе как два логических ЦП. ЦП по-прежнему один ЦП, так что это немного обман. В то время как операционная система видит два ЦП для каждого ядра, реальное аппаратное обеспечение ЦП имеет только один набор ресурсов выполнения для каждого ядра. ЦП делает вид, что у него больше ядер, чем на самом деле, и использует собственную логику для ускорения выполнения программы. Другими словами, операционная система обманом видит два ЦП для каждого фактического ядра ЦП.
Гиперпоточность позволяет двум логическим ядрам ЦП совместно использовать физические ресурсы выполнения. Это может несколько ускорить процесс — если один виртуальный ЦП остановлен и ждет, другой виртуальный ЦП может занять свои исполнительные ресурсы.Гиперпоточность может помочь ускорить вашу систему, но она далеко не так хороша, как наличие дополнительных ядер.
К счастью, технология Hyper-Threading стала «бонусом». В то время как исходные потребительские процессоры с гиперпоточностью имели только одно ядро, которое маскировалось под несколько ядер, современные процессоры Intel теперь имеют как несколько ядер, так и технологию гиперпоточности. Ваш двухъядерный ЦП с гиперпоточностью отображается в операционной системе как четыре ядра, а четырехъядерный ЦП с гиперпоточностью — как восемь ядер. Гиперпоточность не заменяет дополнительные ядра, но двухъядерный ЦП с гиперпоточностью должен работать лучше, чем двухъядерный ЦП без гиперпоточности.
Несколько ядер
Изначально процессоры имели одно ядро. Это означало, что на физическом ЦП был один центральный процессор. Для повышения производительности производители добавляют дополнительные «ядра» или центральные процессоры. Двухъядерный ЦП имеет два центральных процессора, поэтому операционной системе он представляется как два ЦП. Например, ЦП с двумя ядрами может одновременно запускать два разных процесса. Это ускоряет вашу систему, потому что ваш компьютер может делать несколько вещей одновременно.
В отличие от гиперпоточности здесь нет никаких хитростей — двухъядерный ЦП буквально имеет два центральных процессора на кристалле ЦП. Четырехъядерный ЦП имеет четыре центральных процессора, восьмиядерный ЦП — восемь центральных процессоров и т. д.
Это помогает значительно повысить производительность, сохраняя при этом физический модуль ЦП небольшим, чтобы он помещался в один сокет. Должен быть только один сокет ЦП с одним вставленным в него модулем ЦП, а не четыре разных сокета ЦП с четырьмя разными ЦП, каждому из которых требуется собственное питание, охлаждение и другое оборудование. Задержка меньше, потому что ядра могут обмениваться данными быстрее, поскольку все они находятся на одном чипе.
Диспетчер задач Windows показывает это достаточно хорошо. Вот, например, вы можете видеть, что эта система имеет один фактический ЦП (сокет) и четыре ядра. Hyperthreading делает каждое ядро похожим на два ЦП для операционной системы, поэтому она показывает 8 логических процессоров.
Несколько процессоров
Большинство компьютеров имеют только один ЦП. Этот единственный ЦП может иметь несколько ядер или технологию гиперпоточности, но это все равно только один физический модуль ЦП, вставленный в один процессорный разъем на материнской плате.
До появления технологии Hyper-Threading и многоядерных процессоров люди пытались увеличить вычислительную мощность компьютеров, добавляя дополнительные процессоры. Для этого требуется материнская плата с несколькими процессорными сокетами. Материнской плате также требуется дополнительное оборудование для подключения этих разъемов ЦП к ОЗУ и другим ресурсам. В такой настройке много накладных расходов. Дополнительная задержка возникает, если процессоры должны взаимодействовать друг с другом, системы с несколькими процессорами потребляют больше энергии, а материнской плате требуется больше сокетов и оборудования.
Системы с несколькими ЦП сегодня не очень распространены среди домашних ПК. Даже мощный игровой настольный компьютер с несколькими видеокартами обычно имеет только один ЦП. Вы найдете многопроцессорные системы среди суперкомпьютеров, серверов и подобных высокопроизводительных систем, которым требуется максимальная вычислительная мощность.
Чем больше ЦП или ядер у компьютера, тем больше он может выполнять одновременно, что помогает повысить производительность большинства задач. Большинство компьютеров теперь имеют многоядерные ЦП — самый эффективный вариант, который мы обсуждали. Вы даже найдете процессоры с несколькими ядрами на современных смартфонах и планшетах. Процессоры Intel также поддерживают технологию Hyper-Threading, что является своего рода бонусом. Некоторые компьютеры, которым требуется большая мощность ЦП, могут иметь несколько ЦП, но это гораздо менее эффективно, чем кажется.
- › Плохо ли иметь 100 открытых вкладок браузера?
- › Стоит ли покупать Mac Studio?
- › В чем разница между процессорами Intel Core i3, i5, i7 и X?
- › Что такое «процесс бездействия системы» и почему он использует так много ресурсов ЦП?
- › Почему в Chrome так много открытых процессов?
- › Как сравнить ПК с Windows: 5 бесплатных инструментов для сравнения
- › Как защитить свой компьютер от дефектов Intel Foreshadow
- ›5 шрифтов, которые следует прекратить использовать (и лучшие альтернативы)
В операционных системах параллелизм определяется как способность системы запускать две или более программ в перекрывающиеся временные фазы.
Как видите, в любой момент времени выполняется только один процесс.Следовательно, параллелизм — это лишь обобщенное приближение к реальному параллельному выполнению. Такую ситуацию можно встретить в системах с одноядерным процессором.
В этом руководстве по параллелизму вы узнаете
Что такое параллельное выполнение или (многоядерность)?
При параллельном выполнении задачи, которые должен выполнять процесс, разбиваются на подзадачи, и несколько ЦП (или несколько ядер) обрабатывают каждую подзадачу точно в одно и то же время.
Как видите, в любой момент времени выполняются все процессы. На самом деле это подзадачи процесса, которые выполняются параллельно, но для лучшего понимания вы можете визуализировать их как процессы.
Поэтому параллелизм — это реальный способ одновременной обработки нескольких задач. Такую ситуацию можно найти в системах с многоядерными процессорами, к которым относятся почти все современные коммерческие процессоры.
КЛЮЧЕВОЕ ОТЛИЧИЕ
- Ядра увеличивают объем работы, выполняемой за один раз, тогда как потоки улучшают пропускную способность и ускоряют вычисления.
- Ядра — это реальный аппаратный компонент, тогда как поток — это виртуальный компонент, управляющий задачами.
- Ядра используют переключение контента, а потоки используют несколько ЦП для выполнения множества процессов.
- Для ядер требуется только блок обработки сигналов, тогда как для потоков требуется несколько блоков обработки.
Что такое поток?
Поток — это единица выполнения параллельного программирования. Многопоточность — это метод, который позволяет ЦП выполнять множество задач одного процесса одновременно. Эти потоки могут выполняться по отдельности при совместном использовании своих ресурсов.
Что такое многопоточность?
Многопоточность относится к общей задаче, которая запускает несколько потоков выполнения в операционной системе. Он может включать в себя несколько системных процессов.
Как работает многопоточность?
Например, большинство современных процессоров поддерживают многопоточность. Простое приложение на вашем смартфоне может дать вам живую демонстрацию того же самого.
Когда вы открываете приложение, которое требует получения некоторых данных из Интернета, область содержимого приложения заменяется счетчиком. Это будет вращаться до тех пор, пока данные не будут получены и отображены.
В фоновом режиме есть два потока:
- Один получает данные из сети и
- Один рендеринг графического интерфейса, отображающего счетчик.
Оба этих потока выполняются один за другим, чтобы создать иллюзию одновременного выполнения.
Что такое ядро процессора?
Ядро ЦП – это часть чего-то, что играет центральную роль в его существовании или характере. Точно так же в компьютерной системе ЦП также называют ядром.
Основные процессоры бывают двух типов:
- Одноядерный процессор
- Многоядерный процессор
В чем основная проблема с одноядерным процессором?
С одноядерным в основном две проблемы.
- Чтобы выполнять задачи быстрее, вам нужно увеличить время на часах.
- Увеличение тактовой частоты увеличивает энергопотребление и тепловыделение до чрезвычайно высокого уровня, что делает процессор неэффективным.
- Создание двух или более ядер на одном кристалле для увеличения вычислительной мощности при сохранении эффективной тактовой частоты.
- Процессор с двумя ядрами, работающими на эффективной скорости, может обрабатывать инструкции с той же скоростью, что и одноядерный процессор. Его тактовая частота в два раза выше, но при этом многоядерный процесс потребляет меньше энергии.
Преимущества многоядерного процессора
Вот некоторые преимущества многоядерного процессора:
- Больше транзистора на выбор
- Более короткие соединения
- Меньшая емкость
- Небольшая схема может работать на высокой скорости
Разница между ядром и потоками
Параметры | Ядро | Потоки |
---|---|---|
Определение | Ядра ЦП означают фактический аппаратный компонент. | Потоки относятся к виртуальному компоненту, который управляет задачами. |
Процесс | ЦП получает задачи из потока. Поэтому он обращается ко второму потоку только в том случае, если информация, отправленная первым потоком, ненадежна. | Существует множество различных вариантов того, как ЦП может взаимодействовать с несколькими потоками. | Реализация | Достигается за счет операции чередования | Выполняется за счет использования нескольких процессоров |
Преимущество | Увеличить объем работы, выполняемой за один раз. | Повысить пропускную способность, ускорить вычисления. |
Использовать | Core использует переключение контента | Использует несколько ЦП для работы с многочисленными процессами. |
Требуются блоки обработки | Требуется только блок обработки сигналов. | Требуется несколько блоков обработки. |
Пример | Одновременный запуск нескольких приложений. | Запуск поискового робота в кластере. |