/ proc / cpuinfo에서 형제는 무엇을 의미합니까?


답변:


9

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


7

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

예를 들어

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

1

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

  • 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는 형제입니다

0

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

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


여기서 패키지는 잘못된 용어입니다.
Wim Kerkhoff
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.