전기 충전 속도가 변하지 않았다면 어떻게 컴퓨터가 더 빨라 졌습니까?


48

모든 사람들은 발명 이후 컴퓨팅 속도가 급격히 증가했다는 것을 알고 있으며 계속 될 것으로 보입니다. 그러나 한 가지가 저를 당혹스럽게합니다. 오늘날 재료를 통해 전류를 흘리면 50 년 전 같은 재료를 사용했을 때와 같은 속도로 이동할 것입니다.

이를 염두에두고 컴퓨터가 어떻게 더 빨라 졌습니까? 이러한 놀라운 속도 향상을 제공 한 프로세서 설계의 주요 영역은 무엇입니까?

아마 다음 중 하나 이상일 수 있다고 생각했습니다.

  • 더 작은 프로세서 (전류가 이동할 거리는 적지 ​​만 여기서는 약간의 이득을 얻을 수있는 것처럼 보입니다).
  • 더 나은 재료

4
좋은 질문입니다. 물론 재료 자체는 그다지 중요하지 않습니다. 지난 100 년 동안 자동차는 더 빨라졌지만 가스는 여전히 같은 가스 (더 많거나 적음)이며 엔진 만 더 효율적이되었습니다. 초기 답변은 여기 에서 찾을 수 있지만 자세한 답변이 이어지기를 바랍니다.
Ran G.

크기는 큰 문제입니다. 그러나 우리는 칩 디자인의 물리적 장벽에 도달했거나 아주 가까웠다. (나는 여기 전문가가 아니며, 다른 사람들은 이것에 대해 더 많이 알게 될 것입니다). 물론, 프로세서 크기가 유일한 매개 변수는 아닙니다.
A.Schulz

CPU 택트 주파수는 사용 된 재료에서 전자의 속도에 의해 제한되지만 다른 요소들이 그것을 지배하고 있습니다.
Raphael

처음에는 최적으로 빠르지 않았고 여전히 빠르지 않기 때문입니다. 빛의 속도는 속도를 결정하는 단계가 아닙니다.
user207421

1
뻔뻔한 플러그 : superuser.com/questions/543702/…
bwDraco

답변:


54

오늘날 재료를 통해 전류를 흘리면 50 년 전에 같은 재료로했던 것과 같은 속도로 이동합니다.

이를 염두에두고 컴퓨터가 어떻게 더 빨라 졌습니까? 이러한 놀라운 속도 향상을 제공 한 프로세서 설계의 주요 영역은 무엇입니까?

초기 가설이 잘못 되었기 때문에 잘못된 결론을 얻습니다. CPU 속도는 CPU의 전자 속도와 같다고 생각합니다.

실제로 CPU는 동기 디지털 논리입니다. 속도의 한계는 논리 방정식의 출력이 한 클록주기 내에서 안정적이어야한다는 것입니다. 트랜지스터로 구현 된 로직에서 한계는 주로 트랜지스터를 전환하는 데 필요한 시간과 연결됩니다. 채널 크기를 줄이면 더 빠르게 전환 할 수 있습니다. 이것이 50 년 동안 최대 CPU 주파수가 개선 된 주된 이유입니다. 오늘날 우리는 또한 스위칭 속도를 높이기 위해 트랜지스터의 모양을 수정하지만, 내가 아는 한 인텔, 글로벌 파운드리 및 TSMC만이 오늘날 FinFET을 만들 수 있습니다.

그러나 CPU의 최대 클럭 속도를 향상시키는 다른 방법이 있습니다. 논리 방정식을 여러 개의 작은 방정식으로 나누면 각 단계를 더 빠르게 만들 수 있으며 클럭 속도가 더 빠릅니다. 동일한 작업을 수행하려면 더 많은 클럭주기가 필요하지만 파이프 라이닝 기술을 사용 하면 초당 명령 속도가 클럭 속도를 따를 수 있습니다.

오늘날 전자의 속도는 한계가되었습니다. 10GHz에서는 전기 신호가 3cm 이상 전파 될 수 없습니다. 이것은 대략 현재 프로세서의 크기입니다. 이 문제를 피하기 위해 칩에 여러 개의 독립적 인 동기 도메인이있을 수 있으므로 신호 전파에 대한 제약이 줄어 듭니다. 그러나 이것은 트랜지스터 스위칭 속도, 방열, EMC 및 아마도 다른 것들 중 하나의 제한 요소 일뿐입니다 (그러나 나는 실리콘 파운드리 산업에는 없습니다).


이것은 좋은 정보입니다. 클럭 속도에 상한이 있다고 생각한 적이 없었습니다.
nick

3
10GHz에서 3cm는 낙관적입니다. 와이어의 전자 는 진공 상태의 광자보다 상당히 느린 경향이 있습니다 .
8bittree

6
@ 8bittree : 전자의 속도는 관련이 없습니다. 중요한 것은 신호의 속도이며 훨씬 빠릅니다.
Harry Johnston

1
@HarryJohnston Hmm ... Wikipedia에 따르면 당신이 옳은 것 같습니다 . 그러나 신호 자체는 여전히 빛보다 느립니다. 그리고이 3cm에서 10GHz의 기반으로 는 진공에서 빛
8bittree

1
더 작은 트랜지스터는 더 빠를뿐만 아니라 칩에 더 많은 것을 추가 할 수 있습니다. 회로에 대한 시간 / 공간 상충 관계가 있으므로 더 많은 트랜지스터는 더 빠른 회로를 의미합니다. 즉. 수십 개의 트랜지스터만으로 32 비트 가산기를 만들 수 있지만 단일 추가를 계산하려면 많은 클록 틱이 필요합니다. 최신 Intel CPU는 한 번의 클럭으로 수행 할 수 있습니다 .10 만 개의 트랜지스터가 필요하다고 생각합니다.
BlueRaja-대니 Pflughoeft

15

전체 CPU 속도에 영향을 미치는 복잡한 변수가 많이 있지만 주된 변수는 클럭 속도로 2000 년대 중반까지 증가한 다음 물리적 한계로 인해 플랫 라인됩니다. 이 기간 동안 칩당 전력 소비가 증가하여 칩 손실 / 누설을 보완했습니다. CPU 칩이 너무 뜨거워 져서 냉각 기술이 더욱 중요해졌으며 더 많은 전력을 적용 할 수 없었습니다 (실제로 녹지 않고)!

Extremetech.com무어의 법칙 이 실제로는 주로 Dennard 스케일링에 의해 추진되는 것으로 여겨지 는 멋진 설문 조사를 제공합니다 . 후자는 2000 년대 중반에 무너졌다. 캐시, CPU 병렬 처리 / 멀티 코어와 같은 하드웨어 기능의 변곡점을 가리는 경향이있는 칩 "속도"( "속도"는 클럭 속도뿐만 아니라 전체 코드 실행 시간으로 측정되는)와 관련된 다른 많은 설계 요소 / 개선 사항이 있습니다. 더 작은 게이트 폭 (따라서 추가 기능을 위해 칩당 훨씬 더 많은 게이트)이 추가 된 분기 예측 등. 또한 게이트 폭은 각 세대마다 감소를 멈추거나 적어도 덜 빠르게 감소하는 경향이 있습니다.

이러한 제한 추세가 잘 알려지지 않은 이유는 무엇입니까? 이러한 트렌드에 대해 가장 잘 알고있는 일부 엔티티는 "손실이 가장 많으며"실제로 공개 할 가능성이 가장 적은 엔티티입니다. 예를 들어, 수십억 달러에 달하는 인텔은 향후 성능의 제한 또는 감소를 가리키는 독점 내부 데이터를 게시하지 않을 것입니다.

광전자 칩, 칩이 여러 층으로 적층 된 3 차원 칩, 양자 컴퓨팅, 나노 튜브와 같은 나노 기술 등 완전히 새로운 트렌드로 이어질 수있는 새로운 가능성이 있지만 트랜지스터 등



내가 오랫동안 원했던 것은 코어 그룹 개념에 대한 운영 체제 및 언어 지원 개발입니다. 각 그룹에는 균일 한 메모리 시스템이 있으며 모든 코어에는 공통 메모리 시스템에 대한 액세스 권한도 있습니다. 코드가 "언제나 똑같은 메모리를 보는 스레드를 생성하고 싶다"고 말하고 시스템에서 동일한 메모리를보아야하는 모든 스레드가 같은 코어. 그러한 보장이 가능할 때 일부 알고리즘은 훨씬 더 효율적으로 만들 수 있지만, 많은 시스템에서 유일한 알고리즘은 ...
supercat

... 그것을 달성하는 방법은 응용 프로그램이 CPU 코어를 선택하고 스레드가 다른 스레드에서 실행되는 것을 허용하지 않는 것입니다. 정말 끔찍한 접근법입니다.
supercat

2
지난 10 년 동안 클럭 속도는 크게 상승하지 않았습니다. 코어 추가, 단일 명령어로 명령어 세트 수행 등 다른 곳에서 병목 현상 감소. 메모리 대역폭은 모두 현대 CPU '속도'의 주요 기여자입니다.
JamesRyan

5

추가 프로세서에 위임

다른 훌륭한 답변 외에 다른 고려 사항은 다른 프로세서에 작업을 위임하는 것입니다. 초기 컴퓨팅 시대에는 단 하나의 프로세서 만있었습니다. 그래픽의 경우 계산은 동일한 CPU에서 다른 계산과 공유되었습니다. 이제 그래픽 처리를위한 별도의 프로세서가 있습니다.

여러 코어

많은 최신 프로세서에는 동일한 실리콘에 여러 개의 코어가 있습니다. 그것들은 동일한 실리콘 조각을 공유하기 때문에 칩을 다른 코어 / 프로세서로 보내는 속도가 느려지는 데 큰 영향을 미치지 않습니다. 예 : 그래픽 프로세서

메모리 및 주소 확장

초기 8 비트 마이크로 프로세서는 오늘날의 32 비트 및 64 비트 프로세서보다 주소 범위가 작습니다. 최신 프로세서의 메모리 범위가 증가하여 외부 저장소에 액세스하지 않고 메모리에서 더 많은 계산을 수행 할 수 있습니다.

이것은 온칩 메모리에도 적용됩니다. 더 큰 주소 공간은 더 큰 메모리를 중앙 코어에 더 가깝게 허용하면서도 실리콘 외부에 큰 주소 공간을 남겨 둡니다.

파이프 라인 및 캐시

메모리가 저렴 해짐에 따라 현대 컴퓨터는 이제보다 정교한 데이터 및 명령 파이프 라인과 데이터 및 명령 캐시를 구현하고 있습니다. 이는 느린 메모리 (실리콘 외부)에서 내부 캐시로의 페치 필요성을 줄여 실행 속도를 높입니다. 일부 프로세서는 for명령 캐시에 루프 를 포함 할 수 있습니다 .

요약

오늘날의 컴퓨터는 트랜지스터 및 실리콘 기술의 발전뿐만 아니라 다른 프로세서 / 코어에 작업을 위임하기 때문에 훨씬 빠릅니다. 메모리가 더 빠르고 저렴 해짐에 따라 프로세서는 CPU에 가까운 메모리를 많이 가질 수 있습니다. 주소 지정 범위는 더 많은 메모리를 허용하므로 외부 저장소에 대한 페치가 적습니다. 레지스터 크기가 클수록 사이클 당 더 많은 데이터를 가져올 수 있습니다 (32 비트 시스템의 경우 4 바이트, 8 비트 시스템의 경우 1 바이트). 여러 개의 코어를 사용하면 병렬화 작업이 아닌 병렬 작업이 가능합니다.


4

컴퓨터 속도의 거의 모든 발전은 다음 영역 중 하나에서 비롯됩니다.

더 작은 트랜지스터

트랜지스터를 작게 만들면 다음 두 가지가 발생합니다.

  1. 물리적으로 서로 더 가깝기 때문에 전기 신호가 소스에서 대상으로 이동하는 데 걸리는 시간이 줄어 듭니다. 따라서 전기 신호는 50 년 전보다 더 빨리 이동하지 않지만 현재는 더 짧은 거리를 이동 합니다.
  2. 더 많은 트랜지스터가 칩에 포함될 수 있으며, 이는 더 많은 "작업"이 동시에 수행 될 수 있음을 의미합니다. 더 많은 트랜지스터가 추가 될수록 유용한 작업을 찾기가 어려워 지지만 많은 영리한 트릭이 사용됩니다 (아래 참조).

수업 당 더 "유용한 작업"

예를 들어, 일부 프로세서에는 정수를 곱하거나 나누는 명령이 없습니다. 대신이 작업은 느린 소프트웨어 루틴으로 수행해야합니다. 곱하기 및 나누기 명령어를 추가하면 작업 속도가 상당히 빨라집니다. 부동 소수점 명령어를 추가하면 부동 소수점 숫자가 필요한 소프트웨어의 속도가 빨라질 수 있습니다.

명령어 당 "유용한 작업"을 수행하는 중요한 방법은 단어 크기를 늘리는 것 입니다. 32 비트 숫자로 작업을 수행 할 수있는 CPU는 16 비트 또는 8 비트 CPU와 동일한 작업을 수행하기 위해 훨씬 적은 명령을 요구합니다.

일부 프로세서는 한 번에 여러 작업을 수행하는 명령, 특히 여러 데이터 항목 ( SIMD ) 에서 동일한 작업을 수행하는 명령을 지원합니다 .

사이클 당 추가 지침

"클럭주기"는 프로세서가 현재 상태에서 다음 상태로 전환되는 방식입니다. 어떤 의미에서는 프로세서가 한 번에 수행 할 수있는 가장 작은 작업 단위입니다. 그러나 특정 명령에 걸리는 클럭 사이클 수는 프로세서 설계에 따라 다릅니다.

파이프 라인 된 프로세서 가 등장하면서 별도의 명령이 "중복"될 수있게되었습니다. 즉, 이전 명령이 완료되기 전에 명령이 시작됩니다. 그러나 특정 명령어는 다음 명령어를 무효화 할 수 있으며, 이는 다음 명령어가 부분적으로 실행될 때까지 알 수 없으므로 상황이 복잡해질 수 있습니다. 파이프 라인 프로세서에는 모든 것이 제대로 작동하도록하는 논리가 포함되어 있지만 성능 특성은 더 복잡합니다.

슈퍼 스칼라 프로세서 는이를 한 단계 더 끌어 올려 문자 그대로 두 명령을 동시에 실행할 수 있으며, 비 순차적 실행 은 한 단계 더 나아가 명령을 순서대로 실행할 수 없습니다. 이러한 기능을 사용하려면 명령어 스트림을 분석하여 어떤 명령어가 서로 충돌하지 않는지 알아 내야합니다.

다른 트릭 (예 : 분기 예측 , 추측 실행 )이 있지만 더 중요한 것은 전체 그림입니다.

  • 모든 인스트럭션은 일정한 수의 클럭 사이클을 완료해야합니다 (반드시 일정하지는 않음)
  • 그러나 한 번에 여러 지침을 진행할 수 있습니다
  • 따라서 하이 엔드 프로세서의 경우> 1 인 측정 가능한 " 사이클 당 명령어 수 "가 있습니다.
  • 하지만 작업량에 따라 크게 달라집니다

초당 더 많은 사이클

다시 말해, 클럭 속도가 빠릅니다 . 클럭 속도를 높이면 열 발생이 증가 할뿐만 아니라 회로 안정화 시간 제한이 더 작기 때문에 더 잘 훈련 된 칩 설계가 필요합니다. 우리는 실용적인 한계에 도달했을 때까지 2000 년대까지이 중 많은 마일리지를 얻었습니다.

적시에 적절한 장소에있는 데이터

트랜지스터 축소로 인해 CPU 내부의 구성 요소가 점점 가까워지고 있지만 CPU와 RAM은 여전히 ​​5-10cm 떨어져 있습니다. 명령어가 RAM에서 무언가를 필요로한다면, 그 명령어를 완료하는 데 5-6주기가 걸리지 않을 것입니다. 약 200이 걸립니다. 이것은 폰 노이만 병목 현상의 문제입니다.

이것에 대한 우리의 주요 무기는 캐시 입니다. 최근에 액세스 한 데이터는 다시 액세스 될 가능성이 높으므로 CPU 칩 내에있는 특수 메모리 (캐시라고 함)에 보관되므로 훨씬 빠르게 액세스 할 수 있습니다.

그러나 다른 기술 (예 : 파이프 라이닝분기 예측 )은 프로세서가 데이터가 도착하기를 기다리는 동안 유용한 작업을 수행하고 어느 데이터가 곧 필요할지 예측할 수 있도록 도와줍니다.

다중 및 / 또는 특수 프로세서

여러 프로세서보다 단일 프로세서 용 소프트웨어를 작성하는 것이 훨씬 쉽습니다. 그러나 때로는 성능 / 비용 / 전력 소비 이점이 가치가 있습니다.

또한 특정 프로세서는 특정 작업에 특히 적합합니다. 예를 들어 GPU 는 2D 및 3D 그래픽 및 효과 렌더링에 필요한 계산을 위해 특별히 설계되었습니다.

멀티 코어 프로세서 는 기본적으로 단일 칩의 여러 프로세서입니다.


3

컴퓨터가 단위 시간당 더 많은 계산을 수행 할 수 있으면 더 빠른 것으로 보입니다. 각 계산은 이전보다 빠르게 수행되지 않을 수 있지만 더 많은 계산이 수행됩니다. 러너가 취하는 단계의 수는 좋은 비유입니다. 러너가 무어의 법칙에 따라 행동한다면, 러너는 2 년마다 두 배나 더 많은 단계를 밟을 수 있습니다. 본질적으로, 러너는 러너가 2 년 전에했던 것과 같은 시간에 두 배의 거리를 커버 할 것입니다. 거리를 시간으로 나눈 속도와 같습니다. 2 X 거리는 2 X 속도와 같습니다.


3

컴퓨터 / CPU의 처리 능력은 실제로 전기가 얼마나 빨리 이동하는지가 아니라 오히려 얼마나 빨리 켜고 끌 수 있는지입니다. 전류 흐름과 비 흐름 사이를 더 빨리 전환 할 수있을수록 CPU 내에서 처리하거나 회선을 통해 전송할 수있는 정보가 많아집니다.


2

PC에 사용되는 일반적인 프로세서의 경우 PC의 공냉식 프로세서가 약 4GHz로 제한되어있는 열 손실은 10 년 이상 제한 요소였습니다. 수냉은 이것을 약 5GHz로 높이고, 질소 냉각은 클럭 속도를 약 6GHz에서 6.5GHz로 푸시하는 데 사용되었습니다.

클럭 속도는 기본적으로 전압 대 회로 논리 크기의 함수입니다 (상태를 변경하는 데 걸리는 시간). 전압이 높거나 회로 로직이 작을수록 속도가 빠르지 만 회로 로직 크기가 감소함에 따라 밀도가 증가함에 따라 열 분산 문제가 발생합니다. 밀도가 높으면 열을 방출하는 열 전도성 물질을위한 공간이 충분하지 않습니다. 밀도를 줄이면 비용이 증가하고 회로 길이가 길어 전파 지연이 증가합니다.

CPU는 지난 몇 년 동안 그렇게 빨리 얻지 못했습니다. 현재 인텔 i7 4790K (4.0GHz, 4.4GHz 터보)는 2 세대 인텔 i7 2700K (3.5GHz, 3.9GHz 터보)보다 그리 빠르지 않습니다. 클럭 속도가 빠릅니다 (약 14.3 % 빠름). 반면, 3D 그래픽은 병렬 작업을 활용할 수 있기 때문에 비디오 카드의 성능은 지난 4 년 또는 5 년 동안 약 3 배 정도 향상되었으며 일부는 3,000 개 이상의 서브 코어에 해당합니다.


2

이미 주어진 답변은 훌륭하지만 모두 매우 복잡해 보입니다!

빠른 "TLDR"답변은 "논리 게이트 수"와 "논리 게이트가 얼마나 빨리 발사 될 수 있는가"입니다. 1과 0과 같은 논리 게이트를 생각하십시오. 이것은 단지 트랜지스터 / 진공 튜브 / 켜거나 끄는 것입니다. 1이 켜져 있습니다. 0이 꺼져 있습니다.

전기는 더 빠르거나 느리게 움직이지 않지만 1과 0 자체가 더 작기 때문에 더 많은 1과 0을 칩에 넣을 수 있습니다. 시간이 지남에 따라 더 빠르게 뒤집을 수 있습니다. 좀 더 간단한 대답을합니까?


2

지금까지 가장 큰 두 가지 요인은 트랜지스터가 엄청나게 줄어들었기 때문에 이제 10 억 개가 넘는 트랜지스터가있는 스마트 폰이 있고 트랜지스터를 한 상태에서 다른 상태로 전환하는 것이 훨씬 빨라 졌다는 것입니다. 더 빠른 전환은 더 빠른 속도로 직접 변환됩니다. 더 많은 트랜지스터 수는 언급 된 다른 많은 개선 사항을 가능하게하기 때문에 간접적으로 속도를 증가시킵니다. 더 많은 트랜지스터가 있기 때문에 캐시가 있습니다. 트랜지스터가 많기 때문에 레지스터가 점점 커집니다. 더 많은 트랜지스터가 있기 때문에 벡터 명령이 있습니다. 더 많은 트랜지스터가 있기 때문에 듀얼, 쿼드 코어 또는 10 코어 프로세서가 있습니다.

훨씬 작은 정도로 우리는 더 나은 디자인으로 인해 속도가 향상되었습니다. 예를 들어, 멀티 플라이어는 트랜지스터가 더 많기 때문에 더 빠를뿐만 아니라 더 나은 방법을 사용하기 때문에 더 빠릅니다. 더 많은 트랜지스터를 사용할 수있는 것 이상으로 분기 예측이 향상되었습니다. 그러나 결국 이것은 십억 개의 트랜지스터의 무차별 전력에 비해 작은 효과입니다.

(첫 번째 Mac의 프로세서는 68000 개의 트랜지스터가 있기 때문에 Motorola 68000 프로세서라고 불 렸습니다. 새로운 iPad는 약 20,000 배 더 많습니다.)


0

저는 기계 엔지니어이므로 이것이 프로세서 속도에 얼마나 영향을 미치는지 또는 제한 요소가되었는지 아닌지에 대해서는 잘 모르지만 그 뒤에있는 물리학은 소리입니다. 회로의 인덕턴스 및 커패시턴스는 디지털 전압 신호가 얼마나 빠르게 상승 및 하강하는지에 영향을 미쳐 스위칭 속도에 영향을 미칩니다. 이상적으로, 스위칭 신호는 멋진 구형파가 될 것입니다. 실제로는 가장자리가 약간 변형되고 기울어 져 있습니다. 신호는 다음 클럭 사이클 이전에 읽을 수있을만큼 높아야합니다. 기본적으로 신호 파는 상단에 "평평한 지점"이 필요합니다. 너무 빨리 전환하면 더 뾰족한 웨이브 신호를 얻을 수 있습니다. 디지털 신호에 더 익숙한 사람들은 필요한 경우 명확하게 설명 할 수 있지만 아이디어는 옳습니다.


2
어서 오십시오! 내가 아는 한, 당신이 말하는 모든 것이 사실입니다. 그러나 컴퓨터가 몇 년 동안 더 빨라지는 방법에 대한 질문에 어떻게 대답하는지 알 수 없습니다.
David Richerby
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.