컴퓨터구조

멀티코어의 등장 배경

fish9903 2023. 1. 12. 14:19

무어의 법칙(Moore's Law)

멀티코어의 등장 배경을 이해하기 위해, 무어의 법칙부터 이야기 해보자.

 

집적 회로(IC) 칩을 만드는 회사들은 수율을 높이고 제작 비용을 줄이기 위해 칩의 크기를 줄이는 데에 많은 노력을 쏟고 있다. 칩의 크기가 줄어들면서 그 속에 들어가는 트랜지스터의 크기도 줄어들게 된다. 하나의 칩에 들어가는 트랜지스터의 개수는 하나의 칩에 집적될 수 있는 트랜지스터의 수가 매년(지금은 18개월) 두 배로 증가한다는 무어의 법칙(Moore's Law)에 따라 증가해왔다. 

 

무어의 법칙

하나의 칩에 더 많은 트랜지스터를 넣으면, 논리회로의 소자들이 더 가까이 위치하게 되어 전기적 통로의 길이가 짧아져 동작 속도가 빨라지고, 하나의 칩에 더 많은 회로들이 위치하게 되어 칩들 간의 연결의 필요가 떨어져, 연결선의 수도 줄어들어 신뢰성도 높아지는 등의 장점이 있다. 또한 무어의 법칙은 트랜지스터의 크기가 줄어들면 트랜지스터의 전력 소모도 줄어들게 되고, 결국 일정한 면적에서 전력 밀도가 유지된다는 Dennard Scaling(MOSFET Scaling)와 결합하여 가속화 되어왔다.

 

무어의 법칙과 Dennard Scaling의 끝?

무어의 법칙과 Dennard Scaling에 따라 프로세서의 성능은 빠른 속도로 증가해왔다. 하지만 트랜지스터의 크기를 계속하여 줄이는 것에 한계가 보이기 시작한다. 

 

가장 큰 문제는 발열(power) 문제이다. 칩에 트랜지스터가 많이 들어갈 수록 이를 control하기 위해 clock속도 또한 증가해야 한다. Clock 속도가 증가할 수록 power가 더 많이 필요한데, 이 power의 요구량이 높아지면 발열도 높아진다. 또한, 회로 사이의 간격이 줄어들면서 동작하지 않는데도 power가 소모(유출)되는 static power consumption이 발생한다.

 

이러한 한계에 부딪혀 시간이 갈수록 무어의 법칙과 Dennard Scaling이 깨지기 시작한다. 

 

멀티코어의 등장

무어의 법칙이 유지될 때는 단순히 칩에 트랜지스터를 더 넣고, clock속도를 올려 프로세서의 성능을 올렸지만, 이제 이런 방법은 효율적이지 않게 되었다. 대안으로, 하나의 프로세서의 구조를 더욱 복잡(complexity)하게 만들어 같은 수의 트랜지스터로 이루어졌지만 더 좋은 성능을 내도록 설계하는 방법도 있지만, 이는 '프로세서의 마이크로아키텍처의 발전으로 인한 성능 증가는 complexity의 제곱근에 비례한다'는 Pollack's rule에 따르면 효율적이지 않다. (Complexity와 전력 소모는 선형적이다.)

 

이렇듯 프로세서의 complexity를 높여 성능을 높이는 방법은 비효율적이지만, memory는 그렇지 않다. memory는 프로세서보다 더 적게 전력을 소모하기 때문에 프로세서의 complexity를 높이는 대신, memory를 더 효과적으로 사용하는 방법이 주목받기 시작한다. Memory를 효과적으로 사용하는 방법에는 memory를 계층 구조로 설계하는 것이 있고, 이 계층 구조에서 cache memory를 효율적으로 사용하는 구조가 멀티코어 구조이다.

 

멀티코어는 싱글코어보다 cache memory를 더 잘 사용하기 때문에 cache memory의 개수를 늘리는 것이 효율적인 구조이고, 하나의 프로세서의 complexity를 높이는 것보단 여러 코어를 사용하는 것이 쉽다. 이러한 이유로 멀티코어가 등장했고 멀티코어의 시대가 열렸다.

 

기타(프로세서의 complexity 높이기)

위에선 프로세서의 complexity를 높이는 것은 비효율적이라고 설명했지만 이는 '멀티코어를 사용하는 것보다' 비효율적이라는 뜻이다. 실제로 프로세서의 complexity를 높이는 방법에는 널리 사용되는 pipeline 기법, superscalar, SMT(Simultaneous multithreading) 등이 있고, 멀티코어와 함께 사용된다.