코어와 프로세서의 차이점


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.