실제 프로세서의 가상 프로세서 수를 의미합니까?
답변
형제 수가 코어 수와 같으면 하이퍼 스레딩 또는 하이퍼 스레딩이 아닌 CPU가 꺼져 있고, 형제 수가 2 배인 경우 하이퍼 스레딩 CPU가있는 하이퍼 스레딩 CPU입니다. 여기에 좋은 기사가 있습니다 .
답변
프로세서의 형제 수는 해당 프로세서 내의 총 실행 단위 수입니다. 여기에는 추가 코어와 하이퍼 스레딩이 모두 포함됩니다.
예를 들어
- Core 2 Duo가 나열
siblings : 2
됩니다. 듀얼 코어, 하이퍼 스레딩 없음 - Xeon E5420에 목록이 표시
siblings : 4
됩니다. 하이퍼 스레딩이있는 듀얼 코어. - 하이퍼 스레딩 기능이있는 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 개의 논리 스레드가 있습니다. 첫 번째 패키지의 멀티 코어 도메인에서로드 밸런싱이 시작되어 모든 코어간에 동일한로드 분배가 발생합니다.