/ proc / cpuinfo에서 형제는 무엇을 의미합니까? 프로세서의 가상 프로세서

실제 프로세서의 가상 프로세서 수를 의미합니까?



답변

형제 수가 코어 수와 같으면 하이퍼 스레딩 또는 하이퍼 스레딩이 아닌 CPU가 꺼져 있고, 형제 수가 2 배인 경우 하이퍼 스레딩 CPU가있는 하이퍼 스레딩 CPU입니다. 여기에 좋은 기사가 있습니다 .


답변

프로세서의 형제 수는 해당 프로세서 내의 총 실행 단위 수입니다. 여기에는 추가 코어와 하이퍼 스레딩이 모두 포함됩니다.

예를 들어

  1. Core 2 Duo가 나열 siblings : 2됩니다. 듀얼 코어, 하이퍼 스레딩 없음
  2. Xeon E5420에 목록이 표시 siblings : 4됩니다. 하이퍼 스레딩이있는 듀얼 코어.
  3. 하이퍼 스레딩 기능이있는 Pentium 4가 표시 siblings : 2됩니다. 하이퍼 스레딩이있는 단일 코어.

답변

우선 아래의 용어와 사용법을 이해하십시오.

  • CPU
    • CPU는 처리 장치입니다.
    • 명령을 처리하기 위해 여러 구성 요소가 있습니다.
    • 각 구성 요소는 명령어 가져 오기, 디코딩, 프로세스, 업데이트 등과 같은 다른 작업을 담당합니다.
  • 핵심
    • 하나의 CPU는 위에서 언급 한 구성 요소의 여러 세트 / 단위를 가질 수 있습니다.
    • 이 장치 세트가 두 개이면 프로세서는 두 개의 명령을 병렬로 실행할 수 있습니다.
    • 한 단위를 코어라고합니다.
    • 듀얼 코어 CPU에는 동일한 두 개의 구성 요소 세트가 있습니다. 쿼드 코어 CPU는 4 개의 동일한 구성 요소 / 유닛 세트를 갖습니다.
  • 멀티 CPU / 하이퍼 스레딩
    • 조금 까다 롭습니다. 소프트웨어 컨텍스트에만 유효합니다.
    • 외부 이벤트가 완료되기를 기다리는 명령이있을 때마다 CPU가 유휴 상태가됩니다. CPU를보다 잘 활용하기 위해 일부 공급 업체는 두 개의 하드웨어 스레드를 유지 관리하며 한 스레드가 차단 될 때마다 하드웨어가 다른 스레드로 전환됩니다. 이러한 종류의 프로세서는 CPU 상태를 저장 및 복원 할 수 있습니다.
    • 소프트웨어의 경우 두 개의 스레드가 병렬로 실행되는 것처럼 보입니다.
    • 리눅스는이 하이퍼 스레딩 코어를 다중 CPU로 간주합니다. 두 개의 스레드를 병렬로 실행할 수 있기 때문입니다. 따라서 두 개의 실행 단위 (의사 CPU)가 표시됩니다.
    • 예를 들어 최근 Intel CPU는 하이퍼 스레딩되어 두 개의 동시 스레드를 실행할 수 있습니다.
  • 멀티 코어
    • 최신 CPU에는 위에서 언급 한 여러 하드웨어 장치 / 코어가 있습니다.
    • 하이퍼 스레딩과 달리 실제로 두 명령을 병렬로 실행할 수 있습니다
    • 각 코어도 하이퍼 스레딩 될 수 있습니다
  • 멀티 프로세서
    • 서버, 슈퍼 컴퓨터와 같은 고성능 시스템에는 여러 개의 물리적 CPU가 있습니다.
    • 메인 보드에서 여러 개의 CPU 소켓을 볼 수 있습니다
    • 각각 여러 코어를 가질 수 있습니다. 다시 각 코어는 하이퍼 스레딩 될 수 있습니다

최신 PC에는 일반적으로 다중 코어 하이퍼 스레딩 프로세서가 제공됩니다. 예를 들어 쿼드 코어 하이퍼 스레드 인텔 CPU가 장착 된 PC에서 실행되는 Linux의 경우 8 개의 CPU (4 개의 코어 x 2 개의 하이퍼 스레드)가 표시됩니다.

최신 서버는 일반적으로 다중 코어 다중 프로세서 시스템입니다. 일반적인 서버에는 2 개의 소켓이 있으며 각 소켓에는 24 개의 하이퍼 스레드 코어가 있습니다. 따라서이 시스템에서 실행되는 Linux는 96 개의 CPU (2 개의 소켓 x 24 개의 코어 x 2 개의 하이퍼 스레드)를 보게됩니다.

형제 자매

실제 질문으로 돌아가서 캐시를 공유하는 프로세서를 형제라고합니다. 캐시 구성은 다음과 같습니다 (아키텍처에 따라 다르지만)

  • 각 코어에는 하나의 L1 명령어 캐시와 하나의 L1 데이터 캐시가 있습니다.
  • 각 코어는 하나의 Unified L2 캐시
  • 소켓의 모든 코어에는 하나의 Unified L3 캐시가 있습니다
  • 두 개의 소켓은 일반적으로 캐시를 공유하지 않습니다

소켓이 2 개인 멀티 코어 멀티 프로세서 시스템을 고려하십시오. 각 소켓에는 하이퍼 스레딩이있는 24 개의 코어가 있습니다. 이 경우 Linux는 0에서 95까지 총 96 개의 CPU를 볼 수 있습니다. 소켓 1에는 CPU 0-47이 있고 소켓 2에는 48-95가 있습니다 (이와 달리 일반적으로 숫자는 인터리브됩니다). 위에서 언급 한 캐시 구성이있는이 시스템의 경우

  • 프로세서 0-47은 형제입니다
  • 프로세서 48-95는 형제입니다

답변

커널은 형제 수를 사용하여로드 밸런싱을 수행합니다.

두 개의 물리적 패키지가있는 시스템에서 각각 4 개의 작업이 실행되고 있으며 각 패키지에는 2 개의 코어 (마지막 레벨 캐시 공유)가 있고 각 코어에는 2 개의 논리 스레드가 있습니다. 첫 번째 패키지의 멀티 코어 도메인에서로드 밸런싱이 시작되어 모든 코어간에 동일한로드 분배가 발생합니다.