개요
경제학. 더 높은 클럭 속도보다 많은 코어를 가진 CPU를 설계하는 것이 저렴하고 쉽습니다. 그 이유는 다음과 같습니다.
전력 사용량이 크게 증가했습니다. CPU 속도는 클럭 속도가 증가함에 따라 빠르게 증가합니다. 클럭 속도를 25 % 증가시키는 열 공간에서 더 낮은 속도로 작동하는 코어의 수를 두 배로 늘릴 수 있습니다. 4 배 50 %.
순차 처리 속도를 높이는 다른 방법이 있으며 CPU 제조업체는이를 사용합니다.
나는 훌륭한 답을 많이 흘리게 될 것이다. 이 질문 SE 자매 사이트 중 하나에 그래서 그들을 upvote 이동하십시오!
클럭 속도 제한
클럭 속도에 몇 가지 알려진 물리적 한계가 있습니다.
전송 시간
전기 신호가 회로를 통과하는 데 걸리는 시간은 빛의 속도에 의해 제한됩니다. 이것은 어려운 한계이며 주변에 알려진 방법이 없습니다. 1 . 기가 헤르츠 클럭에서 우리는이 한계에 접근하고 있습니다.
그러나 아직 없습니다. 1 GHz는 클록 틱당 1 나노초를 의미합니다. 그 시간에 빛은 30cm를 여행 할 수 있습니다. 10GHz에서 빛은 3cm를 이동할 수 있습니다. 단일 CPU 코어의 폭은 약 5mm이므로이 문제는 10GHz를 지나면 해결됩니다. 2
스위칭 지연
신호가 한 끝에서 다른 끝으로 이동하는 데 걸리는 시간을 고려하는 것만으로는 충분하지 않습니다. 또한 CPU 내의 로직 게이트가 한 상태에서 다른 상태로 전환하는 데 걸리는 시간을 고려해야합니다. 우리가 클록 속도를 높이면 문제가 될 수 있습니다.
불행히도 구체적인 내용에 대해서는 확신 할 수 없으며 어떤 숫자도 제공 할 수 없습니다.
분명히 더 많은 전력을 펌핑하면 전환 속도가 빨라지지만 전력 소비 및 열 발산 문제가 발생합니다. 또한 더 많은 전력을 사용하면 손상없이 처리 할 수있는 더 큰 도관이 필요합니다.
열 손실 / 전력 소비
이것은 큰 것입니다. 에서 인용 퍼지 헤어 2의 대답 :
최근 프로세서는 CMOS 기술을 사용하여 제조됩니다. 클럭주기가있을 때마다 전원이 소실됩니다. 따라서 프로세서 속도가 빠르면 더 많은 열 손실이 발생합니다.
거기에 멋진 측정 값이 있습니다. 이 AnandTech 포럼 스레드 , 그리고 그들은 심지어 전력 생산에 대한 공식을 도출했습니다 (생성 된 열과 관련이 있습니다).
신용 한도 Idontcare
다음 그래프에서이를 시각화 할 수 있습니다.
신용 한도 Idontcare
보시다시피, 전력 소비 (및 열 발생)는 클럭 속도가 특정 지점을 지나서 증가함에 따라 매우 빠르게 상승합니다. 이로 인해 클럭 속도를 무한히 증가시키는 것은 비실용적입니다.
전력 사용량이 급격하게 증가하는 이유는 아마 스위칭 지연과 관련이 있습니다. 단순히 클럭 속도에 비례하여 전력을 증가시키는 것만으로는 충분하지 않습니다. 높은 클럭에서 안정성을 유지하려면 전압을 증가시켜야합니다. 이것은 완전히 정확하지 않을 수 있습니다. 의견에 수정 사항을 지적하거나이 답변을 수정하십시오.
더 많은 코어?
왜 더 많은 코어가 필요합니까? 글쎄, 나는 명확하게 대답 할 수 없다. 인텔과 AMD의 사람들에게 물어볼 필요가 있습니다. 그러나 당신은 위의 것을 볼 수 있습니다, 현대의 CPU로, 어느 시점에서 그것은 비실용적으로 클럭 속도를 증가시킵니다.
예, 멀티 코어는 필요한 전력 및 방열을 증가시킵니다. 그러나 그것은 전송 시간과 스위칭 지연 문제를 깔끔하게 방지합니다. 또한 그래프에서 볼 수 있듯이 클럭 속도가 25 % 증가하는 것과 동일한 열적 오버 헤드로 최신 CPU의 코어 수를 두 배로 쉽게 늘릴 수 있습니다.
어떤 사람들은 그것을했습니다 - 현재 세계 기록을 overclocking 9 기가 헤르쯔에 불과하다. 그러나 전력 소비를 허용 범위 내에서 유지하면서 그렇게하는 것은 중요한 기술적 인 문제입니다. 디자이너들은 더 많은 작업을 수행하기 위해 더 많은 코어를 추가하기로 결정했습니다. 병행하여 대부분의 경우 성능에보다 효과적인 향상을 제공합니다.
그것이 경제적 인 부분입니다. 멀티 코어 경로로가는 것이 더 저렴할 수 있습니다 (설계 시간이 덜 소요되고 제조가 덜 복잡함). 그리고 시장에 나오기 쉽습니다 - 누가 새로운 것을 좋아하지 않는지 옥타 코어 칩? (물론, 우리는 멀티 코어가 소프트웨어가 그것을 사용하지 않을 때 꽤 쓸모 없다는 것을 알고 있습니다 ...)
그곳에 ~이다. 멀티 코어의 단점 : 여분의 코어를 넣기 위해 더 많은 물리적 공간이 필요합니다. 그러나 CPU 프로세스 크기는 계속 줄어들 기 때문에 이전 디자인을 두 장 복사 할 수있는 충분한 여유 공간이 있습니다. 실제로는 더 크고 복잡한 단일 코어를 만들 수 없습니다. 그런 다음 핵심 복잡성이 증가하면 나쁜 것 디자인의 관점에서 - 복잡성 = 더 많은 실수 / 버그 및 제조 오류. 우리는 너무 많은 공간을 차지하지 않을만큼 단순한 효율적인 코어를 가진 행복한 매체를 발견 한 것 같습니다.
우리는 이미 현재 프로세스 크기에서 단일 다이에 맞출 수있는 코어의 수에 한계를 맞았습니다. 우리는 일을 얼마나 빨리 끝낼 수 있는지에 대한 한계에 부딪 힐 수도 있습니다. 그래서, 다음은 무엇입니까? 우리에게 더 필요한 것이 있습니까? 불행히도 대답하기가 어렵습니다. 누구든지 투시력이 있니?
성능을 향상시키는 다른 방법들
따라서 우리는 클럭 속도를 증가시킬 수 없습니다. 더 많은 코어가 추가 단점이 있습니다. 즉, 코어에서 실행되는 소프트웨어가 코어를 사용할 수있을 때만 도움이됩니다.
그래서, 우리는 무엇을 할 수 있습니까? 최신 CPU는 이전 클럭 속도보다 훨씬 빠른 속도로 어떻게됩니까?
클럭 속도는 실제로 CPU의 내부 동작에 대한 대략적인 근사치입니다. CPU의 모든 구성 요소가 그 속도로 작동하는 것은 아닙니다. 일부는 두 번 틱 (tick) 등 한 번 작동 할 수도 있습니다.
더 중요한 것은 명령 단위 시간당 실행할 수 있습니다. 이것은 단일 CPU 코어가 얼마나 많은 양을 성취 할 수 있는지를 훨씬 더 잘 측정 한 것입니다. 일부 지침; 일부는 1 클럭 사이클을 취하고, 일부는 3 개를 취할 것입니다. 예를 들어, Division은 추가보다 상당히 느립니다.
따라서 초 당 실행할 수있는 명령어의 수를 늘림으로써 CPU 성능을 향상시킬 수 있습니다. 방법? 글쎄, 당신은 명령을 더 효율적으로 만들 수 있습니다. 아마 부서는 이제 단지 두 사이클 밖에 걸리지 않을 것입니다. 그럼 거기에 명령 파이프 라이닝 . 각 명령을 여러 단계로 나누면 "병렬로"명령을 실행할 수 있습니다. 그러나 각 명령은 그 전후의 명령에 대해 잘 정의 된 순차적 순서를 유지하므로 멀티 코어와 같은 소프트웨어 지원이 필요하지 않습니다 않습니다.
있다 다른 방법 :보다 전문화 된 지침. 한 번에 많은 양의 데이터를 처리하라는 지침을 제공하는 SSE와 같은 것을 보았습니다. 비슷한 목표를 가지고 지속적으로 도입되는 새로운 교육 세트가 있습니다. 다시 말하지만 소프트웨어 지원이 필요하고 하드웨어 복잡성이 증가하지만 성능이 크게 향상됩니다. 최근에는 하드웨어 가속 AES 암호화 및 해독을 제공하는 AES-NI가 소프트웨어로 구현 된 산술보다 훨씬 빠릅니다.
1 이론적 인 양자 물리학에 깊이 관여하지 않고서도.
2 전기장 전파가 진공에서 빛의 속도만큼 빠르지 않기 때문에 실제로 더 낮을 수도 있습니다. 또한 이것은 직선 거리를위한 것입니다. 직선보다 상당히 긴 경로가 하나 이상있을 가능성이 있습니다.