컴퓨터의 두뇌, CPU에 관한 이야기.

2010. 8. 5. 22:20IT/Computer Tips

A: B야, 니 컴퓨터 뭐야?
B: 펜티엄 4야.
A: 아 그래? 난 이번에 헥사코어로 바꿨는데! 완전 조아.
B: 부럽다. 나도 빨리 돈 모아서 듀얼코어라도 하나 사야지.

사용자 삽입 이미지

<두뇌>

 보통 컴퓨터를 선택할 때 가장 먼저 고르는 부품 중 하나가 CPU다. CPU는 Central Processing Unit의 줄임말로 중앙처리장치라고 한다. 486,펜티엄, 듀얼코어, 쿼드코어 등 컴퓨터의 종류를 대표해서 칭하는 것도 CPU다. 요즘 가장 많이 쓰이는 CPU 종류는 듀얼코어일 것이다. 듀얼코어는 하나의 CPU에 두 개의 코어를 묶어 놓은 것이다. 마찬가지로 트리플코어는 세 개, 쿼드코어는 네 개, 헥사코어는 여섯 개를 묶은 것이다. 여기서 코어는 CPU의 연산에 가장 중요한 역할을 하는 부분이라 생각하면 된다. 흔히 두뇌라고 표현한다. CPU를 컴퓨터의 두뇌라고 하니 코어는 두뇌의 두뇌다.

 코어가 여러 개면 뭐가 좋을까? 한 가지 일을 한 사람이 할 때보다 두 사람이 나눠서 할 때 훨씬 빨리 끝나는 것은 당연한 일이다. 또 두 가지 일을 할 때 한 사람이 두 가지 일을 하는 것보다 두 사람이 서로 일을 나눠서 하는 더 효율적이다. 실제 컴퓨터를 사용할 때 이런 일이 발생하기 때문에 흔히 멀티 코어가 싱글 코어보다 낫다고 하는 것이다.

 그런데 아직도 논란이 이는 일 중 하나는 코어의 개수와 클럭(Clock)과의 관계다. 클럭은 흔히 3GHz, 2.4GHz 등으로 표시하는 값으로 CPU로 들어가는 전류의 회수(주파수)다. 컴퓨터는 0과 1로 이뤄진 작업을 처리하는데 작동 클럭은 1초에 0과 1이 몇 번 꺼지고 켜지는가 하는 숫자다. 3GHz면 초당 30억 번 꺼지고 켜진다는 의미다. 당연히 같은 상황에서 클럭이 높으면 동작 속도도 빠르다. 근데 클럭은 CPU의 처리 속도에 영향을 미치긴 하지만, 절대적인 기준은 되지 못한다. CPU의 속도를 결정하는 요인은 클럭 외에 다양한 것들이 있기 때문이다. 어쨌든, 어떤 이는 코어가 많은 것이 무조건 좋다고 하고 어떤 이는 단일 작업을 할 때는 코어 하나에 클럭이 높은 것이 더 좋다고 한다. 이는 맞기도 하고 틀리기도 한 말이다. 예전에 제작된 프로그램은 하나의 코어를 사용하는 것을 기준으로 나왔기 때문에 싱글 코어에 클럭이 높은 CPU에서 더 빠르게 동작할 수 있지만, 요즘은 멀티 코어를 지원하는 프로그램이 많이 나오므로 이런 프로그램에서는 코어가 많은 쪽이 월등히 빠르게 작업할 수 있다.

사용자 삽입 이미지
 그러나 내 생각에 이런 비교는 무의미하다. 혹자는 멀티 코어를 지원하는 프로그램이 많지 않다고 하지만, 누구나 다 아는 멀티 코어 프로그램이 있다. 바로 개인용 PC 사용자 대부분이 사용하는 윈도다. 한마디로 코어가 많으면 많을수록 기본적인 동작 속도 자체가 빠르다. 또 하나 주목해야 할 점은 사용자들의 컴퓨터 사용 방식이다. 컴퓨터를 사용할 때 단 하나의 작업만 하는 사용자가 얼마나 될까? 인터넷을 하면서 음악을 듣거나 문서를 작성하거나 혹은 동영상 시청과 다른 작업을 함께하기도 한다. 즉 대부분 멀티태스킹 - 다중 작업 - 을 한다. 뭐 '난 멀티태스킹 안하는데...' 이런 사용자도 있겠지. 허나,, 설마 그분의 컴퓨터에 백그라운드에서 실행되는 프로세스가 하나도 없고 서비스도 없고 게다가 웹 서핑을 할 때 두 개 이상의 창이나 탭을 사용하는 그런 행위를 절대로 하지 않는다고? 음, 정말 그렇다면 할 말 없지만...

 그런데 멀티 코어의 가장 큰 장점이 바로 멀티태스킹 작업을 빠르게 할 수 있다는 것이다. 예를 들어 2개의 라인에서 동시에 작업한다고 생각해보자. 싱글 코어 CPU는 1번 라인에서 작업하다가 뛰어와서 2번 라인에서 작업한다. 그러다 또 1번에 가고 또 2번으로 온다. 계속 왔다갔다해야 한다. 그래야 1번, 2번 라인 중 어느 한 쪽이 멈추지 않고 원활하게 돌아가니까. 그런데 코어가 2개면 1번 코어는 1번 라인, 2번 코어는 2번 라인으로 분할해서 각자의 역할에 충실한다. 물론 작업 능률이 훨씬 높다. 만약 쿼드 코어라면? 1, 2번 라인에 여러 사람이 작업할 충분한 여유 공간이 있다면 - 실행하는 프로그램이 멀티 코어를 지원한다면 - 1번 라인에 1, 2번 코어, 2번 라인에 3, 4번 코어가 일하게 되니 더욱 작업 시간이 단축된다.

사용자 삽입 이미지
 그렇다고 코어 수가 많고 클럭이 높으면 장땡이라고 생각하는 것은 섣부른 판단이다. 뭐 대략 구땡 정도?? 그 외에도 성능에 영향을 미치는 요인이 있기 때문이다. 클럭과 코어 외에 CPU에서 고려해야 할 요인으로는 캐시 메모리가 있다. L1, L2, L3 캐시라는 이야기를 들은 적이 있을 것이다. 여기서 L은 Level로 1차 캐시, 2차 캐시, 3차 캐시라고 표현한다. 캐시 메모리는 속도가 서로 다른 장치 사이의 속도 편차를 줄이기 위한 것이다. 메모리는 상대적으로 CPU에 비해 많이 느리므로 메모리에 저장된 정보를 불러올 때 메모리가 CPU의 속도를 따라가지 못하는 병목 현상이 발생한다. 캐시 메모리는 일반 RAM에 비해 속도가 빠른 메모리로 간단한 작업은 L1 캐시에 저장했다가 불러와서 사용한다. L2 캐시와 L3 캐시 역시 비슷한 역할인데 L1 캐시보다 속도가 조금 느리지만, 크기가 큰 것이 특징이다.

 그런데 캐시 메모리는 크기가 아주 작다. 몇 기가 메모리가 보통인 요즘 1MB도 안 되는 캐시 메모리는 코웃음이 나올 정도다. 왜? 왜 그렇게 빠르고 좋은 메모리를 작게 만들었을까? 보통 RAM이라고 이야기하는 메모리는 DRAM으로 속도가 느리지만, 단가가 싸다. 그러나 캐시 메모리로 사용하는 SRAM은 빠른 대신 훨씬 비싸다. 뭐 결국 돈 때문이다.

 가끔 캐시 메모리가 CPU 선택의 결정적인 요인처럼 이야기한 글을 볼 때가 있다. 캐시 메모리는 물론 많을수록 좋은 것이 사실이다. 굉장히 큰 캐시 메모리를 사용한다면 주 메모리를 SRAM으로 사용하는 효과를 얻을 수 있지 않을까? 그러나 캐시 메모리는 속도 결정의 직접적인 요인이 아니라 병목현상을 줄이는 간접 요인이다. 어느 정도 영향을 미칠 순 있지만, 이것이 결정적인 요인이라고 생각하기엔 조금 무리가 있다.

 그럼 어떤 CPU가 좋은 CPU인가? 코웃음을 칠 이야기일지 모르겠지만, 사용 용도에 맞는 CPU가 가장 좋은 CPU다. 어떤 글에서 나쁜 CPU는 없다는 이야기를 본 적이 있다. 맞는 말이다. 어떤 CPU든 자신의 사용 용도에 맞는 성능과 그에 걸맞은 가격이라면 그게 자신에게 가장 좋은 CPU다. 그냥 그렇다는 말이다.