Назад | Перейти на главную страницу

Что означают братья и сестры в / proc / cpuinfo?

Означает ли это количество виртуальных процессоров в физическом процессоре?

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

Число братьев и сестер на процессоре - это общее количество исполнительных блоков в этом процессоре. Это будет включать как дополнительные ядра, так и гиперпоточность.

Например,

  1. Core 2 Duo перечислит siblings : 2. Двухъядерный, без гиперпоточности.
  2. Xeon E5420 перечислит siblings : 4. Двухъядерный, с гиперпоточностью.
  3. Pentium 4 с гиперпоточностью перечислит siblings : 2. Одноядерный, с гиперпоточностью.

Прежде всего, разберитесь с приведенными ниже терминами и контекстом их использования.

  • ЦПУ
    • ЦП - это процессор.
    • Он будет состоять из нескольких компонентов для обработки инструкций.
    • Каждый компонент отвечает за различные операции, такие как выборка инструкций, декодирование, обработка, обновление и т. Д.
  • Ядро
    • Один ЦП может иметь несколько наборов на единицу вышеупомянутых компонентов.
    • Если имеется два набора этих модулей, процессор может выполнять две инструкции параллельно.
    • Один блок называется Core.
    • ЦП Duel-Core будет иметь два идентичных набора компонентов. Четырехъядерный процессор будет иметь четыре идентичных набора этих компонентов / блоков.
  • Многопроцессорность / гиперпоточность
    • Это немного сложно. Действительно только Программный контекст.
    • Каждый раз, когда инструкция ожидает завершения внешнего события, ЦП будет бездействовать. Чтобы лучше использовать ЦП, некоторые поставщики поддерживают два аппаратных потока, и всякий раз, когда один поток блокируется, оборудование переключается на другой поток. Этот тип процессоров будет иметь возможность сохранять и восстанавливать состояния процессора.
    • Для программного обеспечения это будет выглядеть так, как будто два потока работают параллельно.
    • Linux рассматривает эти ядра с гиперпоточностью как многопроцессорные. Потому что он может запускать два потока параллельно. Таким образом, он увидит два исполнительных модуля (псевдопроцессора).
    • Например, новейшие процессоры Intel являются гиперпоточными, что позволяет выполнять два одновременных потока.
  • Многоядерный
    • Современные процессоры имеют несколько наборов вышеупомянутых аппаратных модулей / ядер.
    • В отличие от гиперпоточности, они могут выполнять две инструкции параллельно.
    • Каждое ядро ​​тоже может быть с гиперпоточностью
  • Мультипроцессор
    • Высокопроизводительные системы, такие как серверы и суперкомпьютеры, будут иметь несколько физических процессоров.
    • Вы можете увидеть несколько сокетов процессора на их материнских платах
    • Каждый может иметь несколько ядер. Опять же, каждое ядро ​​может иметь гиперпоточность

Современные ПК обычно поставляются с многоядерными гиперпоточными процессорами. Например, Linux, работающий на ПК с четырехъядерным процессором Intel с гиперпоточностью, будет иметь 8 процессоров (4 ядра x 2 гиперпотока).

Современные серверы обычно представляют собой многоядерные и многопроцессорные системы. Типичный сервер имеет два сокета, каждый из которых имеет 24 ядра с гиперпоточностью. Таким образом, Linux, работающий в этой системе, будет иметь 96 процессоров (2 сокета x 24 ядра x 2 гиперпотока)

Братья и сестры

Возвращаясь к собственному вопросу, процессоры, совместно использующие кеш, будут называться братьями и сестрами. Организация кеша будет похожа (хотя она будет зависеть от архитектуры),

  • Каждое ядро ​​будет иметь один кэш инструкций L1 и один кеш данных L1.
  • Каждое ядро ​​будет иметь один унифицированный кеш L2
  • Все ядра в сокете будут иметь один унифицированный кеш L3
  • Обычно никакие два сокета не используют общий кеш

Рассмотрим многоядерно-многопроцессорную систему с 2 сокетами. Каждый сокет имеет 24 ядра с гиперпоточностью. В этом случае Linux будет видеть всего 96 процессоров, пронумерованных от 0 до 95. Socket 1 будет иметь CPU 0-47, а Socket 2 будет иметь 48-95 (в отличие от этого, обычно числа будут чередоваться). Для этой системы с вышеупомянутой организацией кеша,

  • Процессоры 0-47 являются братьями и сестрами
  • Процессоры 48-95 - братья и сестры

Например, ядро ​​использует количество братьев и сестер для балансировки нагрузки;

Четыре задачи выполняются в системе с двумя физическими пакетами, каждый из которых имеет два ядра (с общим кешем последнего уровня), а каждое ядро ​​имеет два логических потока. Балансировка нагрузки срабатывает в многоядерном домене для первого пакета, что приводит к равному распределению нагрузки между всеми ядрами.