"더 많은 코어 추가"가 "CPU를 더 빠르게"와 동일한 물리적 한계에 직면하는 이유는 무엇입니까?


108

2014 년에 나는 많은 프로그래밍 언어의 동시성에 대해 들었습니다. 풍모. 동시성은 성능 향상에 결정적인 요소라고합니다.

이 성명서를 작성함에있어 많은 사람들이 2005 년 그만큼 무료 점심은 끝났습니다 : 동시성을 향한 근본적인 전환 소프트웨어 . 기본 논쟁은 클럭 속도를 높이는 것이 점점 어려워지고 있다는 것입니다. 프로세서를 사용하지만 칩에 더 많은 코어를 배치 할 수 있으며 성능 향상, 소프트웨어 활용을 위해 작성해야합니다 다중 코어.

몇 가지 핵심 견적 :

우리는 500MHz CPU가 1GHz CPU로 향하는 것을 보곤합니다.   2GHz CPU 등이 있습니다. 오늘 우리는 주류에서 3GHz 범위에 있습니다.   컴퓨터.

핵심 질문은 언제 끝날까요? 결국, 무어의 법칙은   기하 급수적 인 성장 및 명확한 기하 급수적 인 성장은 계속 될 수 없습니다.   영원히 우리가 육체적 인 한계에 도달하기 전에; 빛이 전혀 들리지 않는다.   빠릅니다. 성장은 결국 느려지고 끝나야합니다.

... 더 높은 클럭 속도를 이용하기가 점점 어려워지고 있습니다.   하나가 아니라 여러 물리적 문제, 특히 열 (너무 많은   전력 소모 (너무 높음) 및   전류 누출 문제.

... 인텔 및 대부분의 프로세서 공급 업체의 미래는 다른 곳에서 칩으로 자리 잡고 있습니다.   회사는 적극적으로 새로운 멀티 코어 방향을 추구합니다.

... Multicore는 두 개 이상의 실제 CPU를 하나의 칩에서 실행하는 것에 관한 것입니다.

이 기사의 예측은 멈춰 버린 것 같지만 왜 이해가되지 않습니다. 나는 하드웨어가 어떻게 작동하는지에 대한 모호한 아이디어 만 있습니다.

지나치게 단순화 된 견해는 "더 많은 처리 능력을 포장하는 것이 점점 어려워지고 있습니다. 같은 공간으로 "(열, 전력 소비 등의 문제로 인해). 결론은 "그러므로, 우리는 더 커야 만 할 것이다. 컴퓨터를 사용하거나 여러 대의 컴퓨터에서 프로그램을 실행하십시오. "(실제로 배포 된 클라우드 컴퓨팅은 우리가 더 많이 듣고있는 것입니다.)

그러나 솔루션의 일부는 멀티 코어 아키텍처 인 것 같습니다. 컴퓨터가 아니라면 크기가 커지면 (이것은 그렇지 않다), 이것은 단지 다른 말을하는 것처럼 보인다. "같은 공간에 더 많은 힘을 쏟아 부었다".

왜 "더 많은 코어 추가"가 " CPU가 더 빠름 "?

최대한 간단하게 설명하십시오. :)



4
en.wikipedia.org/wiki/Moore%27s_law 읽을만한 가치가 있습니다. 우리는 두 가지 다른 것을 이야기하고 있습니다. 무어의 법칙은 클럭 스피드에 관한 것이 아닙니다. 트랜지스터 수
Journeyman Geek

9
30 년 전인 것처럼 보이고 CPU는 4.77MHz로 작동합니다. 왜 4GHz CPU를 사용할 수 없더라도 같은 방에 4MHz CPU가 장착 된 1000 대의 컴퓨터를 설치할 수 있습니까?
user20574

3
@ NathanLong 그러나 더 빠른 컴퓨터를 사용하는 것보다 더 많은 공간을 확보하는 것이 더 쉬워졌습니다.
user20574

5
유추 : 자동차 엔진은 많은 rpm으로 만 만들 수 있지만 두 개를 쉽게 결합 할 수 있습니다.
OJFord

답변:


142

개요

  • 경제학. 더 높은 클럭 속도보다 많은 코어를 가진 CPU를 설계하는 것이 저렴하고 쉽습니다. 그 이유는 다음과 같습니다.

  • 전력 사용량이 크게 증가했습니다. CPU 속도는 클럭 속도가 증가함에 따라 빠르게 증가합니다. 클럭 속도를 25 % 증가시키는 열 공간에서 더 낮은 속도로 작동하는 코어의 수를 두 배로 늘릴 수 있습니다. 4 배 50 %.

  • 순차 처리 속도를 높이는 다른 방법이 있으며 CPU 제조업체는이를 사용합니다.


나는 훌륭한 답을 많이 흘리게 될 것이다. 이 질문 SE 자매 사이트 중 하나에 그래서 그들을 upvote 이동하십시오!


클럭 속도 제한

클럭 속도에 몇 가지 알려진 물리적 한계가 있습니다.

  • 전송 시간

    전기 신호가 회로를 통과하는 데 걸리는 시간은 빛의 속도에 의해 제한됩니다. 이것은 어려운 한계이며 주변에 알려진 방법이 없습니다. 1 . 기가 헤르츠 클럭에서 우리는이 한계에 접근하고 있습니다.

    그러나 아직 없습니다. 1 GHz는 클록 틱당 1 나노초를 의미합니다. 그 시간에 빛은 30cm를 여행 할 수 있습니다. 10GHz에서 빛은 3cm를 이동할 수 있습니다. 단일 CPU 코어의 폭은 약 5mm이므로이 문제는 10GHz를 지나면 해결됩니다. 2

  • 스위칭 지연

    신호가 한 끝에서 다른 끝으로 이동하는 데 걸리는 시간을 고려하는 것만으로는 충분하지 않습니다. 또한 CPU 내의 로직 게이트가 한 상태에서 다른 상태로 전환하는 데 걸리는 시간을 고려해야합니다. 우리가 클록 속도를 높이면 문제가 될 수 있습니다.

    불행히도 구체적인 내용에 대해서는 확신 할 수 없으며 어떤 숫자도 제공 할 수 없습니다.

    분명히 더 많은 전력을 펌핑하면 전환 속도가 빨라지지만 전력 소비 및 열 발산 문제가 발생합니다. 또한 더 많은 전력을 사용하면 손상없이 처리 할 수있는 더 큰 도관이 필요합니다.

  • 열 손실 / 전력 소비

    이것은 큰 것입니다. 에서 인용 퍼지 헤어 2의 대답 :

    최근 프로세서는 CMOS 기술을 사용하여 제조됩니다. 클럭주기가있을 때마다 전원이 소실됩니다. 따라서 프로세서 속도가 빠르면 더 많은 열 손실이 발생합니다.

    거기에 멋진 측정 값이 있습니다. 이 AnandTech 포럼 스레드 , 그리고 그들은 심지어 전력 생산에 대한 공식을 도출했습니다 (생성 된 열과 관련이 있습니다).

    Formula
    신용 한도 Idontcare

    다음 그래프에서이를 시각화 할 수 있습니다.

    Graph
    신용 한도 Idontcare

    보시다시피, 전력 소비 (및 열 발생)는 클럭 속도가 특정 지점을 지나서 증가함에 따라 매우 빠르게 상승합니다. 이로 인해 클럭 속도를 무한히 증가시키는 것은 비실용적입니다.

    전력 사용량이 급격하게 증가하는 이유는 아마 스위칭 지연과 관련이 있습니다. 단순히 클럭 속도에 비례하여 전력을 증가시키는 것만으로는 충분하지 않습니다. 높은 클럭에서 안정성을 유지하려면 전압을 증가시켜야합니다. 이것은 완전히 정확하지 않을 수 있습니다. 의견에 수정 사항을 지적하거나이 답변을 수정하십시오.


더 많은 코어?

왜 더 많은 코어가 필요합니까? 글쎄, 나는 명확하게 대답 할 수 없다. 인텔과 AMD의 사람들에게 물어볼 필요가 있습니다. 그러나 당신은 위의 것을 볼 수 있습니다, 현대의 CPU로, 어느 시점에서 그것은 비실용적으로 클럭 속도를 증가시킵니다.

예, 멀티 코어는 필요한 전력 및 방열을 증가시킵니다. 그러나 그것은 전송 시간과 스위칭 지연 문제를 깔끔하게 방지합니다. 또한 그래프에서 볼 수 있듯이 클럭 속도가 25 % 증가하는 것과 동일한 열적 오버 헤드로 최신 CPU의 코어 수를 두 배로 쉽게 늘릴 수 있습니다.

어떤 사람들은 그것을했습니다 - 현재 세계 기록을 overclocking 9 기가 헤르쯔에 불과하다. 그러나 전력 소비를 허용 범위 내에서 유지하면서 그렇게하는 것은 중요한 기술적 인 문제입니다. 디자이너들은 더 많은 작업을 수행하기 위해 더 많은 코어를 추가하기로 결정했습니다. 병행하여 대부분의 경우 성능에보다 효과적인 향상을 제공합니다.

그것이 경제적 인 부분입니다. 멀티 코어 경로로가는 것이 더 저렴할 수 있습니다 (설계 시간이 덜 소요되고 제조가 덜 복잡함). 그리고 시장에 나오기 쉽습니다 - 누가 새로운 것을 좋아하지 않는지 옥타 코어 칩? (물론, 우리는 멀티 코어가 소프트웨어가 그것을 사용하지 않을 때 꽤 쓸모 없다는 것을 알고 있습니다 ...)

그곳에 ~이다. 멀티 코어의 단점 : 여분의 코어를 넣기 위해 더 많은 물리적 공간이 필요합니다. 그러나 CPU 프로세스 크기는 계속 줄어들 기 때문에 이전 디자인을 두 장 복사 할 수있는 충분한 여유 공간이 있습니다. 실제로는 더 크고 복잡한 단일 코어를 만들 수 없습니다. 그런 다음 핵심 복잡성이 증가하면 나쁜 것 디자인의 관점에서 - 복잡성 = 더 많은 실수 / 버그 및 제조 오류. 우리는 너무 많은 공간을 차지하지 않을만큼 단순한 효율적인 코어를 가진 행복한 매체를 발견 한 것 같습니다.

우리는 이미 현재 프로세스 크기에서 단일 다이에 맞출 수있는 코어의 수에 한계를 맞았습니다. 우리는 일을 얼마나 빨리 끝낼 수 있는지에 대한 한계에 부딪 힐 수도 있습니다. 그래서, 다음은 무엇입니까? 우리에게 더 필요한 것이 있습니까? 불행히도 대답하기가 어렵습니다. 누구든지 투시력이 있니?


성능을 향상시키는 다른 방법들

따라서 우리는 클럭 속도를 증가시킬 수 없습니다. 더 많은 코어가 추가 단점이 있습니다. 즉, 코어에서 실행되는 소프트웨어가 코어를 사용할 수있을 때만 도움이됩니다.

그래서, 우리는 무엇을 할 수 있습니까? 최신 CPU는 이전 클럭 속도보다 훨씬 빠른 속도로 어떻게됩니까?

클럭 속도는 실제로 CPU의 내부 동작에 대한 대략적인 근사치입니다. CPU의 모든 구성 요소가 그 속도로 작동하는 것은 아닙니다. 일부는 두 번 틱 (tick) 등 한 번 작동 할 수도 있습니다.

더 중요한 것은 명령 단위 시간당 실행할 수 있습니다. 이것은 단일 CPU 코어가 얼마나 많은 양을 성취 할 수 있는지를 훨씬 더 잘 측정 한 것입니다. 일부 지침; 일부는 1 클럭 사이클을 취하고, 일부는 3 개를 취할 것입니다. 예를 들어, Division은 추가보다 상당히 느립니다.

따라서 초 당 실행할 수있는 명령어의 수를 늘림으로써 CPU 성능을 향상시킬 수 있습니다. 방법? 글쎄, 당신은 명령을 더 효율적으로 만들 수 있습니다. 아마 부서는 이제 단지 두 사이클 밖에 걸리지 않을 것입니다. 그럼 거기에 명령 파이프 라이닝 . 각 명령을 여러 단계로 나누면 "병렬로"명령을 실행할 수 있습니다. 그러나 각 명령은 그 전후의 명령에 대해 잘 정의 된 순차적 순서를 유지하므로 멀티 코어와 같은 소프트웨어 지원이 필요하지 않습니다 않습니다.

있다 다른 방법 :보다 전문화 된 지침. 한 번에 많은 양의 데이터를 처리하라는 지침을 제공하는 SSE와 같은 것을 보았습니다. 비슷한 목표를 가지고 지속적으로 도입되는 새로운 교육 세트가 있습니다. 다시 말하지만 소프트웨어 지원이 필요하고 하드웨어 복잡성이 증가하지만 성능이 크게 향상됩니다. 최근에는 하드웨어 가속 AES 암호화 및 해독을 제공하는 AES-NI가 소프트웨어로 구현 된 산술보다 훨씬 빠릅니다.


1 이론적 인 양자 물리학에 깊이 관여하지 않고서도.

2 전기장 전파가 진공에서 빛의 속도만큼 빠르지 않기 때문에 실제로 더 낮을 수도 있습니다. 또한 이것은 직선 거리를위한 것입니다. 직선보다 상당히 긴 경로가 하나 이상있을 가능성이 있습니다.


22
또한 많은 응용 프로그램에서 병목 현상은 계산 시간이 아니라 RAM에서 데이터를 가져 오는 정지 시간 (또는 디스크에서 금지 된 신)입니다. 그래서, 또 다른 주요 속도 향상은 더 크고 빠른 프로세서 캐시에서 비롯됩니다.
Matteo Italia

2
@MatteoItalia 그래. 또한 분기 예측 개선 기능이 있으며 아마도 더 많이 알 수 없습니다. 프로세서 외부에는 고속 버스, 빠른 메모리, 빠른 디스크 및 관련 프로토콜 등이 있습니다.
Bob

2
당신은 빛의 속도의 "단단한 한계"와 관련된 문제는 "20 GHz가 넘은 곳"에서 발생할 것이라고 언급했습니다. 계산이 올바르지 않습니다. 전기 신호는 와이어의 구조에 따라 빛의 속도보다 낮은 속도로 이동합니다.
Giulio Muscarello

5
이 관계에 대해보다 정확한 단어가있을 때 "지수"를 사용하지 마십시오 (2 차, 3 차 등).
Oliver Charlesworth

7
@OliCharlesworth 각주를 읽으십시오. 이것은 정확하게 왜 각주가 있고, 왜 내가 각주에 대한 언급을 가지고 있는지 exponential 사용. 이것은 단어의 완벽하게 유효한 사용이며, 수학적 세부 사항에서 수렁에 빠지게되는 것은이 대답의 핵심에 접하게 될 것입니다. 정말로 "수정"하려고한다면 자유롭게 편집을 제안하십시오. 의미를 크게 변경하지 않는 한 그것이 받아 들여지 든 그렇지 않든간에 내게 달린 것이 아닙니다.
Bob

14

물리학은 물리학입니다. 우리는 더 많은 트랜지스터를 더 작은 공간에 영원히 포장 할 수 없습니다. 어떤 시점에서 그것은 너무 작아서 이상한 양자 쓰레기를 다루게됩니다. 어떤 시점에서 우리는 포장 할 수 없다. 두번 우리가 익숙했던 것처럼 1 년 동안 많은 트랜지스터를 사용합니다 (이것은 무어의 법칙에 관한 것입니다).

원시 클럭 속도는 아무런 의미가 없습니다. 필자의 오래된 Pentium M은 현대 데스크탑 CPU의 클럭 속도의 절반 정도였습니다 (그리고 많은면에서 더 빠른 ) - 현대 시스템은 간신히 10 년 전에 시스템의 속도에 접근하고 (분명히 빠름). 기본적으로 '그냥'클럭 속도를 올리는 것은 많은 경우 실제 성능을 향상시키지 못합니다. 도움이 될 수도 있습니다. 약간 singlethreaded 작업이지만 다른 모든 측면에서 효율성을 높이기 위해 설계 예산을 낭비하는 것이 좋습니다.

다중 코어로 수행 할 수 있습니다. 한 번에 여러 가지 일을 처리 할 수 ​​있으므로 한 가지 일이 다음 일을 위해 끝날 때까지 기다릴 필요가 없습니다. 짧은 기간에 두 개의 기존 코어를 동일한 패키지에 간단하게 추가 할 수 있습니다 (예 : 펜티엄 D s 및 과도기적 디자인 인 MCM)를 사용하면 두 배 빠른 시스템을 사용할 수 있습니다. 대부분의 현대적인 구현은 물론 메모리 컨트롤러와 같은 것을 공유합니다.

또한 여러 가지면에서 더 똑똑해질 수 있습니다. ARM은 Big-Little을 수행합니다. 4 개의 "강력한"저전력 코어가 4 개의 강력한 코어와 함께 작동하여 4 개의 "약한"저전력 코어를 사용하므로 두 가지 장점을 모두 누릴 수 있습니다. 인텔은 스로틀 (더 나은 전력 효율성을 위해) 또는 오버 클럭 특유한 코어 (단일 스레드 성능 향상을 위해). 모듈을 가지고 뭔가 기억하고 있습니다.

또한 메모리 컨트롤러 (대기 시간이 더 짧음)와 IO 관련 기능 (현대 CPU에는 노스 브릿지가 없음)뿐만 아니라 비디오 (랩탑 및 AIW 디자인에서 더 중요)와 같은 것들을 이동할 수 있습니다. 클럭 속도를 계속 올리는 것보다 '그냥'하는 것보다 이러한 일을하는 것이 더 합리적입니다.

어떤 시점에서는 '더 많은 코어'가 작동하지 않을 수 있습니다. GPU는 수백 코어의.

멀티 코어로 컴퓨터 작동 가능 똑똑한 이 모든 방법으로.


1
GPU 코어는 범용 목적의 CPU 코어와 달리 매우 특정한 목적으로 설계되었습니다. 또한 비디오 카드 보드는 CPU보다 훨씬 큽니다 (코어가 보드의 모든 공간을 사용하지 않더라도 열을 방출 할 수있는 공간이 여전히 많음).
user2366842

3
사실,하지만 이것은 엄청난 양의 코어를 확장하는 예제입니다. 나는이 대답을 아침에 되풀이 할 것이다.
Journeyman Geek

"두 개의 기존 코어를 동일한 패키지에 간단하게 팝핑 할 수 있습니다". 그러나 여분의 코어에 더 많은 공간을 사용하지 않고 어떻게 달성 할 수 있습니까? 방법?! 마법? 유니콘? 강아지? (귀하의 아바타에 의해, 나는 후자라고 생각합니다)
That Brazilian Guy


6
wierd quantum crap 혼자서는 +1!
Dave

9

간단한 대답

질문에 대한 가장 간단한 대답

"더 많은 코어 추가"가 "CPU를 더 빠르게"와 동일한 물리적 한계에 직면하는 이유는 무엇입니까?

실제로 귀하의 질문 중 다른 부분에서 발견됩니다 :

결론적으로 "따라서 더 큰 컴퓨터를 사용해야하거나 여러 대의 컴퓨터에서 프로그램을 실행해야 할 것입니다."

본질적으로 다중 코어는 동일한 장치에 여러 개의 "컴퓨터"를 갖는 것과 같습니다.

복잡한 대답

"핵심"은 실제로 명령을 처리하는 컴퓨터의 부분입니다 (추가, 곱하기, "및"등). 코어는 한 번에 하나의 명령 만 실행할 수 있습니다. 컴퓨터의 "강력한 기능"을 원하면 다음과 같은 두 가지 기본 작업을 수행 할 수 있습니다.

  1. 처리량 증가 (클럭 속도 증가, 물리적 크기 감소 등)
  2. 동일한 컴퓨터에서 더 많은 코어 사용

# 1의 물리적 한계는 주로 회로에서 처리되는 전자의 속도와 처리로 인한 열을 덤프 할 필요가 있다는 것입니다. 이러한 트랜지스터 중 일부를 별도의 코어로 분리하면 열 문제를 상당 부분 완화 할 수 있습니다.

# 2에는 중요한 제한이 있습니다. 문제를 여러 개로 나눌 수 있어야합니다. 독립적 인 문제를 풀고 답을 조합하십시오. 현대 개인용 컴퓨터에서, 이것은 실제로 문제가되지 않습니다. 어쨌든 코어와 계산 시간을두고 경쟁하는 많은 독립적 인 문제가 있기 때문입니다. 그러나 집중적 인 계산 문제를 수행 할 때 다중 코어는 문제가 동시성을 고려하면 도움이됩니다.


'다중 코어는 동일한 장치에 여러 개의 "컴퓨터"를 갖는 것과 같습니다. " 맞았 어.하지만 혼란 스러웠다. 어떻게 그 모든 것들을 거기에 넣었 니? 나는 "우리가 더 빨리 갈 수 없다"는 생각은 "우리는 더 많은 것들을 줄일 수 없다"는 징후였다.
Nathan Long

여러 개의 코어가 더 많은 공간을 차지하고 칩이 커지고 있습니다. 이 부담은 CPU에서 소프트웨어 엔지니어로 옮겨갔습니다. 실제로 이러한 거대한 멀티 코어 CPU 중 하나에서 더 빠르게 실행하려면 소프트웨어를 작성해야만 작업을 절반으로 줄이고 독립적으로 두 가지 작업을 수행 할 수 있습니다.
James

1
짧은 대답은 전력 소비가 클럭 속도의 세제에 비례한다는 것입니다. 더 먼 거리를 이동하는 신호의 경우 단일 스레드 환상은 유지하기가 더 어려워집니다. 자세한 답변 : amazon.com/...
Rob

6

"더 많은 코어 추가"가 "CPU를 더 빠르게"와 동일한 물리적 한계에 직면하는 이유는 무엇입니까?

그들은 물리적 인 한계가 있지만, 멀티 코어 디자인으로 전환하면 일부를 공격하기 전에 호흡 공간을 확보 할 수 있습니다. 동시에 이러한 한계로 인한 다른 문제가 발생하지만 극복하기가 더 쉽습니다.

사실 1 : 전력 소비 및 방출 된 열은 계산 능력보다 빠르게 증가합니다. CPU를 1GHz에서 2GHz로 밀어 넣으면 전력 소모가 20W에서 80W로 떨어지며 열이 발산됩니다. (방금이 숫자를 만들었지 만 그것이 어떻게 작동하는지)

사실 2 : 두 번째 CPU를 구입하고 1GHz에서 둘 다 실행하면 계산 능력이 두 배가됩니다. 1GHz에서 실행되는 2 개의 CPU는 2GHz CPU와 동일한 양의 데이터를 처리 할 수 ​​있지만 각 프로세서는 20W의 에너지 만 소비합니다. 총 40W입니다.

이익: 클록 주파수 대신에 CPU 수를 두 배로 늘리면 우리는 약간의 에너지를 절약 할 수 있으며 이전처럼 "주파수 장벽"에 근접하지 않습니다.

문제: 두 개의 CPU 사이에서 작업을 분할하고 나중에 결과를 결합해야합니다.

수용 가능한 시간에이 문제를 해결할 수 있고 방금 저장 한 것보다 적은 에너지를 사용하면 여러 개의 CPU를 사용하여 이익을 얻을 수 있습니다.

이제 두 개의 CPU를 하나의 듀얼 코어 CPU에 병합하면됩니다. 이는 코어가 CPU의 일부를 공유 할 수 있기 때문에 유용합니다 (예 : 캐시 ( 관련 답변 ).


우리는 1000 가지의 다른 방법, 다이의 크기 (더 작은 제조 공정으로 이끄는 멀티 코어의 경우), mobo의 크기 (멀티 CPU의 경우), 흔적을 통해 그려지는 앰프 (둘 다) 등의 물리적 한계를 계속 지키고 있습니다. 당신이 m-atx 또는 4 atx 보드에 2 cpus를 넣을 수있는 것처럼 그 디자인은 10 년이 걸릴 수 있습니다. 나는 나머지 부분에 동의한다.
Rostol

@Rostol 좋은 지적 이네, 나는 대답을 편집했다.
gronostaj

5

긴 이야기 짧게 : 단일 코어의 속도가 한계에 도달 했으므로 제한을 초과하거나 더 나은 자료로 바꿀 수 있거나 (또는 ​​기존 기술을 전복시키는 근본적인 돌파구를 얻을 수있을 때까지) 계속 축소하고 더 ​​추가합니다. 가정용, 실제로 작동하는 양자 컴퓨팅).

나는이 문제가 다차원 적이며보다 완전한 그림을 그리기 위해 약간의 글쓰기를 취할 것이라고 생각한다.

  1. 물리적 제한 (실제 물리에 의해 부과됨) : 빛의 속도, 양자 역학, 모든 것.
  2. 제조상의 문제 : 필요한 정밀도로 더 작은 구조물을 어떻게 제조합니까? 원자재 관련 문제, 회로 제작에 사용되는 재료, 내구성.
  3. 건축 문제 : 열, 추론, 전력 소비 등
  4. 경제 문제 : 사용자에게 더 나은 성능을 제공하는 가장 저렴한 방법은 무엇입니까?
  5. 사례 및 실적에 대한 사용자의 인식.

더 많은 것이있을 수 있습니다. 다목적 CPU는이 모든 요소 (및 그 이상)를 시판중인 주제의 93 %에 해당하는 하나의 대량 생산 가능한 칩으로 스크램블하는 솔루션을 찾으려고합니다. 아시다시피, 마지막 지점은 고객이 CPU를 사용하는 방식에서 직접 파생 된 가장 중요한 고객 인식입니다.

평상시의 신청서가 무엇인지 자문 해보십시오. 어쩌면 : 음악을 듣고있는 동안 백그라운드에서 광고를 재생하는 25 개의 Firefox 탭 모두 2 시간 전에 시작한 빌드 작업을 기다리는 동안 마칠 수 있습니다. 그것은해야 할 많은 일이며 여전히 부드러운 경험을 원합니다. 하지만 CPU가 한 번에 하나의 작업을 처리 할 수 ​​있습니다! 단 한가지. 당신이하는 일은 물건을 나눠서 대기열을 만들고 모든 사람이 자신의 몫을 얻고 모든 것이 행복하다는 것입니다. 모든 일이 지체되고 전혀 매끄럽지 않기 때문에 당신을 제외하고.

따라서 동일한 시간 내에 더 많은 작업을 수행하려면 CPU 속도를 높이십시오. 그러나 당신이 말한대로 : 열 및 전력 소비. 그리고 그것이 우리가 원료 부분에 도달하는 곳입니다. 실리콘은 뜨거워 질수록 전도성이 높아 지므로 열을 가하면 재료에 더 많은 전류가 흐릅니다. 트랜지스터는 스위치를 빠르게 전환 할 때 전력 소비가 높습니다. 또한 고주파수는 짧은 전선 간의 혼선을 악화시킵니다. 속도가 빨라지면 접근 방식이 "붕괴"로 이어질 것입니다. 우리가 실리콘보다 훨씬 더 좋은 원료 물질을 가지지 않는 한, 우리는 단일 코어 속도로 고정되어 있습니다.

이것은 우리가 시작한 곳으로 우리를 되 찾는다. 물건을 병렬로 가져 오는 중. 다른 코어를 추가합시다. 이제 우리는 실제로 한 번에 두 가지 일을 할 수 있습니다. 그러니 조금씩 멋지게 만들고, 덜 강력하면서도 기능적인 두 가지 코어를 통해 작업을 분할 할 수있는 소프트웨어를 작성해 보겠습니다. 이 접근법에는 두 가지 주요한 문제가 있습니다 (소프트웨어 세계가 적응할 시간이 필요합니다). 1. 칩을 더 크게 만들거나 개별 코어를 더 작게 만드십시오. 2. 일부 작업은 단순히 동시에 실행되는 두 부분으로 나눌 수 없습니다. 코어를 축소 할 수있는 한 코어를 계속 추가하거나 칩을 더 크게 만들고 열 문제를 방지하십시오. 오, 고객을 잊지 말자. 우리의 유스 케이스를 바꾸면 산업계가 적응해야합니다. 모바일 부문에서 제기 된 모든 반짝이는 "새로운"것들을보십시오. 그렇기 때문에 모바일 부문이 매우 중요한 것으로 간주되어 모든 사람들이 손을 잡고 싶어합니다.

예,이 전략은 한계에이를 것입니다! 인텔은 이것을 알고 있습니다. 그래서 미래가 다른 곳에 있다고 말합니다. 그러나 그들은 저렴하고 효과적이며 행할 수만 있다면 계속해서 그렇게 할 것입니다.

마지막으로 중요한 것은 물리학입니다. 양자 역학은 칩 수축을 제한 할 것입니다. 전자의 속도는 실리콘에서의 빛의 속도로 움직일 수 없으므로 빛의 속도는 아직 한계가 없으며 실제로는 훨씬 느리다. 또한 재료가 제공하는 속도에 하드 캡을 적용하는 것이 임펄스 속도입니다. 소리가 공기보다 물속에서 더 빠르게 움직이는 것과 마찬가지로 전기 충격은 예를 들어 실리콘보다 그라 핀에서 더 빨리 이동합니다. 이것은 다시 원료로 이어집니다. 그래 핀 (Graphene)은 전기적 특성이 우수하다는 점에서 우수합니다. 불행하게도 많은 양으로 생산하기가 매우 어렵습니다.


2

비현실적인 예로서 (하지만 비판적인 점이 있다면) 100F에서 실행중인 CPU가 있다고 가정 해보십시오. 멀티 코어가 일반적으로 작동하는 방식은 100F에서 실행되는 CPU의 클록 주파수를 낮추고이를 낮추어 일부 속도를 낮추는 것입니다. 더 이상 뜨거워지지 않으므로 CPU의 전반적인 온도에 크게 영향을 미치지 않고 멀티 코어의 이점을 누리지 않고 두 번째, 세 번째 또는 네 번째를 바로 볼 수 있습니다. 코어는 여전히 한 곳에서 하나의 코어로 제어되어야하므로 분명히 약간의 오버 헤드가 있습니다. 더 많은 코어를 추가할수록 더 많은 오버 헤드가 발생합니다. 싱글 코어의 경우 속도가 클수록 발열량이 많습니다. 이는 분명히 물리적 인 제한이 있습니다 (즉, 특정 시점 이후에는 성능에 해가되기 시작하고 너무 뜨거우면 위험합니다)

시간이 지남에 따라 CPU의 실제 크기를 줄이는 방법을 찾았습니다. 그렇기 때문에 16 개의 코어 CPU가 실제로 존재하지는 않지만 더 많은 공간을 필요로하지는 않습니다. 서버 등급 CPU가 물리적으로 표준 소비자 등급보다 훨씬 크기 때문에 물리적 크기 제한으로 인해 서버 등급 장비 외부에서 사용하기에 적합하지 않습니다.


2

CPU = 자동차 엔진 : 16,000 밸브, 즉 람보르기니가 100,000rpm에서 거대한 밸브 / 실린더를 가진 고 rpm 자동차보다 더 강력한 자동차를 만드는 것이 더 쉽습니다.

이유는 물리적 및 화학적인데, 실리콘은 코어 수와 코어 속도 사이의 균형을 바꾸기 위해 계산 용 로켓 연료로 교체해야합니다.


2

나는 계산 능력 한계에 대한 주요 제한이 주로 회로를 통해 전자를 얼마나 빨리 움직일 수 있는지의 한계와 관련 있다고 말한다. 빛의 속도 전자 표류). 당신이 언급 한 것 같이 더 많은 요인이 있습니다.

추가 코어를 추가한다고해서 동일한 시간 내에 더 많은 프로세스를 처리 할 수는 있지만 프로세서를 더 빠르게 만들지는 못합니다.

무어의 법칙 매우 흥미롭고 유익한 읽기입니다. 이 인용문은 특히 다음과 관련이 있습니다.

또한 1 킬로그램의 질량과 1 리터의 양을 가진 다소 실용적인 "궁극의 노트북"의 이론적 성능을 제한 할 수 있습니다. 이것은 빛의 속도, 양자 규모, 중력 상수 및 볼츠만 상수를 고려하여 이루어지며 5.4258 ⋅ 10의 성능을 제공합니다 50 대략 10 초당 논리 연산 31 비트.


2
덧붙여 말하자면, 전자는 실제로 실제로 천천히 움직입니다 ( "드리프트 속도"), 밀리미터 / 초 IIRC 정도입니다. 당신은 더 빠른 속도를 말하는 겁니다. 전기장 전파한다.
Bob

2
나는 내가 물리학을 조금이라도 이해하는 것처럼 행동을 감히하지 말아야한다는 것을 알았다. :)이 문제를 수정 / 알려 주셔서 감사합니다.
jredd

또한 전파 속도가 중요한 영향을 미치는 실제 클록 속도는 약 10+ GHz 이상입니다. 현대 프로세서가 더 높은 클록보다 다중 코어를 선호하는 다른 이유가 있습니다.
Bob

1

긴 이야기조차 더 짧게 :

우리는 더 빠른 CPU를 필요로하지 않습니다. 메모리, 스토리지 및 네트워크와 같은 모든 주변 장치 비트는 대개 CPU가 수백만 클럭주기 동안 기다려서 다른 작업을 수행 할 수있게 해줍니다. 두 번째 코어는 "다른 것들"을 더 많이 수행 할 수 있으므로 더 높은 성능을 사용자에게 인식하게됩니다.

많은 모바일 장치, 랩톱 등은 배터리 수명을 늘리고 온도를 낮추기 위해 CPU의 부하를 낮 춥니 다. 주요 고객이 1.3GHz에서 3.5GHz ARM 코어를 실행하는 경우별로 도움이되지 않습니다.

  • 이러한 특수 용도는 5GHz 코어의 개발을 정당화하기에 충분하지 않습니다. 그들은 또한 열이나 전력에 신경 쓰지 않습니다. 가장 빠른 가용 방법을 구입하고 토스터 크기의 수냉식 히트 싱크에 볼트로 고정 시키십시오.

1
"인식"이 아니라 "더 나은 대기 시간"입니다. 나는 이것이 우리가 가진 주요 문제 중 하나라고 생각한다. 모든 단일 비용으로 강력한 단일 스레드 처리량을 보장합니다. 소비자 운영 체제는 아직 실시간 중심이 아니며 기본적으로 동시성 또는 병렬성을 지향하지 않습니다.
Rob

@ 피터 당신은 아주 좋은 지적을하고, 그것을 설명해 주셔서 감사합니다. 프로그래머로서 기억해야 할 부분입니다. :) 그러나이 질문의 목적을 위해 여전히 조금 문제가 있습니다. 제 질문은 왜 우리가 캔트 빠른 클럭 속도를 얻으십시오. 당신의 대답은 왜 우리가 현재 필요하지 않은지에 관한 것입니다.
Nathan Long

1
@ NathanLong "할 수 없다"와 "필요 없다"는 연결되어 있습니다. 아무도 5 억 달러를 투자 할 의향이 없기 때문에 더 빠른 프로세서를 얻을 수 없습니다. 5GHz는 물리적 인 한계를 넘을 것입니다. 전체 프로세서 속도가 감소하고있는 현실적인 시장이 없기 때문에 아무도 투자 할 의사가 없습니다. 현재 제조 데스크톱 중 일부는 1.5GHz 클래스 (10 년 전 라인의 최상위)에 있습니다. 왜냐하면 그 시장에 비해 저렴하고 쿨하고 빠르기 때문입니다 분절.
peter

1

짧고 간단한 대답 :

왜 트럭을 운반하는 트럭 1 대에서 100 배를 운반하는 100 대의 트럭에 이르지 않는지, 100mph에서 운전하는 트럭 1 대에서 10,000mph에서 운전하는 1 대 트럭으로가는 것과 같은 물리적 한계에 직면하지 않는 이유는 무엇입니까?

그 질문에 대답하면, 당신의 질문도 답변 될 것입니다. 개념은 거의 같습니다.


1

나는 또 다른 요인이 온도라고 생각한다. 클럭 주파수를 높이면 코어 온도가 상승합니다. 더 많은 코어를 추가하면 전력 소비가 증가하더라도 코어를 통해 분산되므로 온도가 동일하게 유지됩니다 (동일한 온도에서 두 개의 뜨거운 액체를 추가하면 서로 온도가 같음) ).

또 다른 이유는 클럭 주파수를 높이면 주파수를 높이는 요인의 제곱에 의해 전력 소비가 증가하는 경향이 있다는 것입니다 (특정 지점에서 다른 장애물에 따라 다름). 따라서 클록 주파수를 증가 시키면 정사각형에 의한 전력 소비가 증가하지만 더 많은 코어를 추가하면 선형 적으로 증가합니다.


0

왜 "더 많은 코어 추가"에 대한 대답은 "CPU 속도 향상"문제와 동일한 물리적 한계에 직면하게됩니다. 이는 멀티 코어 시스템이 단일 코어 CPU와 완전히 동일한 한계에 직면한다는 것입니다. 우리는 단일 코어 시스템을 더 빠르게 만들 수있는 옵션이 없다는 점에 도달하여 더 많은 것을 한 번에 할 수 있도록했습니다. 크기와 조정의 문제는 현재보다 빠르게 해결됩니다. 단점은 작업을 조각으로 나눌 수없는 경우 단일 코어 시스템보다 훨씬 빨리 끝나지 않을 수도 있다는 것입니다.


0

단순히 더 많은 게이트를 밀어 넣으면 CPU를 더 빨리 만들 수 없습니다. 궁극적으로 명령을 실행해야하며 각 명령에는 여러 번의 "전환"작업이 필요합니다. 현재의 최고급 시스템의 속도 이상으로 CPU의 "클럭 속도"를 높이는 것을 어렵게 만드는 근본적인 물리적 한계 (양자 역학 - 불확실성 원칙)가 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.