코어와 프로세서의 차이점


197

코어와 프로세서의 차이점은 무엇입니까?

이미 Google에서 찾았지만 멀티 코어 및 멀티 프로세서 정의 만 가지고 있지만 찾고있는 것과 일치하지 않습니다.

답변:


197

코어는 일반적으로 CPU의 기본 계산 단위입니다. 단일 프로그램 컨텍스트 (또는 Intel CPU의 하이퍼 스레딩과 같은 하드웨어 스레드를 지원하는 경우 여러 개의 컨텍스트)를 실행하여 올바른 프로그램 상태, 레지스터 및 올바른 실행 순서를 유지할 수 있습니다. ALU를 통해 작업을 수행합니다 . 최적화를 위해 코어는 자주 사용되는 메모리 청크의 복사본으로 온 코어 캐시를 보유 할 수도 있습니다.

CPU는 주어진 시간에 작업을 수행하기 위해 하나 이상의 코어를 가질 수 있습니다. 이러한 작업은 일반적으로 OS가 예약하는 소프트웨어 프로세스 및 스레드입니다. OS에는 많은 스레드가 실행될 수 있지만 CPU는 주어진 시간에 X와 같은 작업 만 실행할 수 있습니다. 여기서 X = 코어 수 * 코어 당 하드웨어 스레드 수입니다. 나머지는 현재 실행중인 작업 또는 다른 수단을 선점하여 OS가 예약 할 때까지 기다려야합니다.

하나 이상의 코어 외에도 CPU에는 코어를 외부 세계에 연결하는 일부 상호 연결 및 일반적으로 큰 "마지막"공유 캐시도 포함됩니다. CPU 작동에 필요한 여러 가지 주요 요소가 있지만 정확한 위치는 디자인에 따라 다를 수 있습니다. 메모리, I / O 컨트롤러 (디스플레이, PCIe, USB 등)와 통신하려면 메모리 컨트롤러가 필요합니다. 과거에는 이러한 요소가 보완적인 "칩셋"에서 CPU 외부에 있었지만 대부분의 최신 디자인은 CPU에 통합되었습니다.

또한 CPU에는 통합 GPU가있을 수 있으며, 설계자가 성능, 전력 및 제조 고려 사항을 위해 가까이 유지하기를 원하는 거의 모든 것이있을 수 있습니다. CPU 설계는 주로 SoC ( system on chip) 라고 불리는 추세입니다 .

이것은 대부분의 최신 범용 장치 (클라이언트 PC, 서버 및 태블릿 및 스마트 폰)에서 사용되는 "클래식"디자인입니다. 계산이 기본 "코어와 같은"단위로 수행되지 않는 아카데미에서보다 정교한 디자인을 찾을 수 있습니다.


@Leeor 4 CPU 및 2 코어 시스템의 경우, 바쁜 루프를 실행하면 CPU 중 하나의 1 CPU 및 1 코어 (예 : 50 %)를 사용해서는 안됩니까? 내 관찰에 따르면 모든 CPU를 100 %로
끌어 올립니다

2
@Nrj, 하나의 단일 스레드 응용 프로그램을 실행하면 단일 코어에 할당되고 단일 HW 스레드 만 활성화됩니다. 다른 스레드가 실행되지 않으므로 해당 스레드는 해당 코어의 100 %를 활용할 수 있습니다. 다른 응용 프로그램을 활성화하면 일반적으로 다른 코어에 할당되며 코어 수를 포화시킬 때까지 계속됩니다. 그 외에 추가 스레드는 SMT를 사용하여 동일한 코어로 다시 예약됩니다. 이 시점에서 코어 활용도는 2 개의 스레드 사이에 분산 될 것입니다 (대칭 적으로 동작한다면 각각 50 %에 도달 할 것입니다)
Leeor

@ Leeor 분명히 이것은 내 기대이지만 내가 찾은 것이 아닙니다. 4 개의 CPU (작업 관리자)가 모두 100 % 사용량을 표시하는 것으로 나타났습니다. 코드는 간단했다-for (int i = 0; i <Integer.MAX_VALUE; i ++) {System.out.println (k); }
Nrj

@Leeor 시험을 잘못했다고 생각합니다. 온라인 작업 공간에 가상 CPU (4)가 있지만 단일 프로세서가있는 것처럼 보입니다. 그래서 모두가 바쁘게 지냅니다. 2 CPU 물리적 시스템 (이중 코어)에서 테스트를 수행했을 때 CPU 사용량이 약 25 %이며 기대에 부합한다는 것을 알 수 있습니다.
Nrj

이 용어는 요청한 사람에 따라 다릅니다. 예를 들어, 데비안 시스템에서을 검사하는 /proc/cpuinfo동안 16 processor:줄이 표시 model: AMD Ryzen 7 2700X Eight-Core Processor됩니다. 따라서 적어도이 경우에 8 개의 "코어"각각에는 2 개의 "프로세서"가 있으며 여기에는 다른 답변과 상충됩니다.
jwd

130

이미지는 천 단어 이상을 말할 수 있습니다.

이미지는 천 단어 이상을 말할 수 있습니다

* 최신 다중 프로세서, 다중 코어 시스템의 복잡성을 설명하는 그림.

출처:

https://software.intel.com/en-us/articles/intel-performance-counter-monitor-a-better-way-to-measure-cpu-utilization


114
그것은 아마도 개미와 같은 작은 생물에게 천 단어 이상을 말할 것입니다.
Sky

12
나는 이미지 사용에 대해 아무것도 없지만 최소한 이미지를 복사 / 붙여 넣는 것이 아니라 추가 설명을 할 수 있습니다.
Patricio Sard 2016 년

1
@ 스카이 개미 조심 ... #hunter_x_hunter : 3
Saad Achemlal

읽기에 너무 작다고 말한 사람들은 마우스 오른쪽 버튼을 클릭하고 +Open images in new tabcltr+
Ng Sek Long

28

먼저 CPU가 무엇인지, 그리고 중앙 처리 장치 CPU 인 코어가 여러 개의 코어 장치를 가질 수 있음을 명확히하자. 이러한 코어는 자체적으로 프로세서이며 프로그램을 실행할 수 있지만 동일한 칩에 내장되어 있습니다.

과거에는 하나의 CPU가 상당히 많은 칩에 분배되었지만 무어의 법칙이 진행됨에 따라 90 년대 제조업체가 동일한 다이에 더 많은 코어를 장착하기 시작했기 때문에 그들은 하나의 칩 (다이) 안에 완전한 CPU를 갖도록 만들었습니다. 멀티 코어의 개념.

요즘 같은 CPU (칩 또는 다이) GPU 인 Intel Xeon에 수백 개의 코어를 사용할 수 있습니다. 90 년대에 개발 된 다른 기술은 동시 멀티 스레딩 (multi-threading)이었습니다. 기본적으로 그들은 동일한 단일 코어 CPU에 다른 스레드를 가질 수 있다는 것을 발견했습니다. 대부분의 리소스가 이미 ALU, 다중 레지스터와 같이 복제 되었기 때문입니다.

따라서 기본적으로 CPU에는 각각 하나의 스레드 이상을 동시에 실행할 수있는 여러 개의 코어가있을 수 있지만 향후 더 많은 코어가있을 것으로 예상되지만 효율적으로 프로그래밍하기가 더 어려울 수 있습니다.


" Intel E5-2697 v2 " 조차도 12 개의 코어 만 가지고 있습니다. 왜 "동일한 CPU에 수백 개의 코어"가 있다고 말합니까? 단일 CPU에서 가능한 코어 수를 제한하는 것은 무엇입니까?
Pacerier

2
: 그들은 연구 100 개 코어의 수에 마이크로 프로세서 생산에 대한 몇 가지 모습으로 갈 수 있습니다 tomshardware.com/forum/318101-28-which-maximum-cores-cores
독일 알파를

9

CPU는 중앙 처리 장치입니다. 2002 년부터 단일 코어 프로세서 만 있습니다. 즉, 한 번에 하나의 작업 또는 프로그램 만 수행합니다.

한 번에 여러 프로그램을 실행하려면 한 번에 여러 프로세스를 실행하기 위해 여러 프로세서를 사용해야하므로이를 위해 다른 마더 보드가 필요했으며 이는 매우 비쌉니다.

따라서 인텔은 하이퍼 스레딩이라는 개념을 도입했습니다. 즉, 단일 CPU를 두 개의 가상 CPU로 변환합니다. 즉, 작업을위한 두 개의 코어가 있습니다. 이제 CPU는 단일이지만 이중 CPU가 있고 여러 작업을 수행하는 것처럼 가장합니다. 그러나 실제 다중 코어를 사용하는 것보다 사람들이 더 나을 것입니다. 따라서 사람들은 단일 코어에 다중 코어 프로세서, 즉 단일 프로세서에서 다중 프로세서를 만드는 것, 즉 단일 CPU에서 다중 CPU를 잡는 것을 개발합니다. 즉 여러 코어.


12
2002 년에 정확히 무슨 일이 있었습니까?
Peter Mortensen

1
인텔은 동시 멀티 스레딩 개념을 발명하지 않았습니다. Wikipedia에 따르면 Alpha EV8은 최초의 주요 상용 구현 이었습니다.
Peter Cordes

3

초기 90 년대 이전과 마찬가지로 프로세서는 여러 작업을 효율적으로 수행 할 수 없었습니다. 단일 프로세서는 단일 작업 만 처리 할 수있었습니다. 바이러스 백신, Microsoft Word, VLC 등 소프트웨어가 모두 동시에 실행되고 있지만 실제로는 그렇지 않습니다. 프로세서가 한 번에 하나의 프로세스를 처리 할 수 ​​있다고 말했을 때 나는 그것을 의미했습니다. 실제로 하나의 작업을 처리 한 다음 해당 작업을 일시 중지하는 데 사용했습니다 ... 다른 작업을 수행하십시오 ... 짧은 작업을 다시 완료하면 다시 완료하고 대기열에 추가 한 다음 다음 작업을 수행하십시오. 그러나 내가 언급 한이 '일시 중지'는 너무 작아서 (약 1ns) 작업이 일시 중지되었음을 이해하지 못했습니다. 예 : 음악을 듣는 동안 vlc에는 동시에 실행되는 다른 앱이 있지만 한 번에 하나의 프로그램 ...

그러나 이것은 오래된 프로세서에 관한 것입니다 ...

오늘날의 프로세서, 즉 3 세대 PC에는 멀티 코어 프로세서가 있습니다. 이제 '코어'를 단일 또는 단일 프로세서에 내장 된 1 세대 또는 2 세대 프로세서와 비교할 수 있습니다. 이제 코어가 무엇인지 이해했습니다. 즉, 프로세서가되기 위해 결합 된 미니 프로세서입니다. 그리고 각 코어는 한 번에 단일 프로세스 또는 OS 용으로 설계된 다중 스레드를 처리 할 수 ​​있습니다. 그리고 단일 프로세서에 대해 위에서 언급 한 것과 동일한 단계를 따릅니다.

예 : i7 6gen 프로세서는 8 개의 코어, 즉 1 개의 i7에 8 개의 미니 프로세서가 있습니다. 즉, 속도는 이전 프로세서의 8 배입니다. 그리고 이것이 멀티 태스킹을 수행하는 방법입니다.

단일 프로세서 Eg에는 수백 개의 코어가있을 수 있습니다. 인텔 i128.

나는 이것을 잘 설명하기를 바랍니다.


0

Tortuga의 최고 답변에서 볼 수 있듯이 인텔의 사진이 도움이됩니다. 여기에 캡션이 있습니다.

프로세서 : 1950 년대 -2010 년대 경에 하나의 소켓에 장착 된 하나의 반도체 칩, CPU (중앙 처리 장치). 시간이 지남에 따라 더 많은 기능이 CPU 칩에 포함되었습니다. 1950 년대 단일 칩 프로세서가 출시되기 전에 하나의 프로세서가 여러 칩에 퍼져있을 수 있습니다. 2010 년 중반에 시스템 온 칩 (chip-on-a-chip) 칩은 하나의 프로세서를 하나의 칩으로 동일시하는 것이 약간 더 스케치가되었지만 일반적으로 "이 컴퓨터에는 i7 프로세서가 있습니다"또는 "이 컴퓨터 시스템이 있습니다" 프로세서가 4 개 있습니다. "

코어 : CPU의 한 블록으로 한 번에 하나의 명령을 실행합니다. 사람들은 클럭 사이클 당 하나의 명령을 말하는 것을 볼 수 있지만 일부 CPU는 일부 명령에 대해 여러 클럭 사이클을 사용합니다.


1
x86 코어 는 프로그램 순서로 한 번에 하나씩 명령을 논리적으로 실행하지만 실제로 현대 CPU는 실제로 4 너비의 슈퍼 스칼라 비 순차적 실행 인 것을 환상으로 유지하기 위해 많은 트랜지스터를 소비합니다. realworldtech.com/haswell-cpu . (Ryzen의 경우 5 또는 6 너비). 일부 코드의 경우 클럭 당 3 개 이상의 명령어가 실제로 드물지 않습니다. 그러나 캐시 미스 및 / 또는 브랜치 오판으로 인한 병목 현상이 발생하는 다른 코드에서도 1 미만이 일반적입니다.
Peter Cordes

또한 Itanium과 같은 VLIW 아키텍처는 명시 적으로 병렬이며 논리적으로 여러 명령을 병렬로 물리적으로 실행합니다. BTW는 초기에 하나의 CPU가 하나 이상의 칩을 사용했다는 흥미로운 역사적 지점입니다.
Peter Cordes
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.