익스트림 IT/EXIT

 

오늘 포스팅할 내용은 컴퓨터의 구성요소들에 대한 정보가 궁금하거나 본인이 알고 있는 내용에 더불어  좀 더 알고 싶으신 분들, 그리고 아예 몰라서 이게 뭔지는 알고 싶다! 하시는 분들을 위해 컴퓨터를 이루고 있는 부품들, 컴퓨터의 구성요소들에 대해 소개해드리는 시리즈 '컴알못 가이드' 의 첫 포스팅입니다! (박수우우)

해당 시리즈는 장기적으로 연재되며 각 구성요소당 1~2편의 포스팅정도로 구상 중에 있습니다. 그리고 만약 해당 구성요소에 대한 포스팅이 끝나고 다음 구성요소에 대해 시리즈가 넘어가더라도 추가적으로 설명해드려야겠다 싶은 것들이 생각나거나 여러분들이 댓글로 질문 주신 내용들이 있다면 해당 내용들을 종합하여 보충편정도로 추가적인 포스팅도 이어나갈 예정입니다. 그리고 포스팅마다 포스팅 앞부분에 해당 포스팅에서 설명하는 내용들의 목차를 적어둘 예정이니 보시다가 본인이 궁금하신 내용만 적혀있는 포스팅을 찾아서 보시는 것도 좋을 것 같습니다!



그렇다면 이제 해당 시리즈의 첫 시작으로 컴퓨터의 필수요소 중 컴퓨터의 두뇌역할을 책임지고 있는 'CPU' 에 대한 포스팅을 시작하도록 하겠습니다.

 

 

<해당 포스팅 목차>

  • CPU란 무엇인가?

  • CPU 스펙에 대한 간단 해석

 

 

 

 


 

 

 

" CPU란 무엇인가? "

 

최초의 전자연산장치 "에니악"

고정형 프로그램이라고 불리는 세계 최초의 컴퓨터-이자 최초의 전자 연산장치-인 에니악은 수많은 진공관을 이용해 필요한 계산을 처리하는 성능을 가지고 있었고, 하나의 계산을 하고 난 뒤 다른 종류의 계산을 하기 위해서는 사진에 보이는 수많은 전선들을 처리하고자 하는 작업의 종류에 맞춰 재배열해주는 과정이 필요했습니다. 이러한 작업들은 에니악의 연산능력과는 별개로 수많은 별도의 작업을 필요로 했기 때문에 작업의 효율성을 낮추는 원인 중 하나였습니다. 이러한 단점을 해결하기 위해 수학자 '폰 노이만'은 'EDVAC 초안에 대한 보고' 라는 논문을 작성하였고, 이는 전선과 같은 물리적인 선의 연결로 연산을 하는 것이 아닌 컴퓨터의 프로세서 메모리 안에 명령어들을 저장하고 저장된 명령어들을 이용한 작업들을 더욱 빠르게 수행하는 방식에 대한 논문이었습니다. 

 

그리고 이러한 형태의 '내장 프로그램형 CPU' 중에서 최근 우리가 흔히 알고 있는 CPU의 두뇌역할을 하는 마이크로프로세서는 1970년 최초의 상업용 마이크로프로세서인 Intel의 Intel4004 의 등장으로 세상에 그 모습을 드러내게 됩니다. 트랜지스터와 집적회로(IC회로)의 발명으로 인해 컴퓨팅 프로세서들의 크기를 획기적으로 줄일 수 있게 되었고 그렇게 연산 행위를 위한 것들을 하나의 부품으로 모아놓은 것이 요즘 우리가 알고 있는 CPU가 된 것입니다. 

 

현대의 CPU 프로세서

 

이러한 현대의 CPU 내장 회로는 CPU가 수행할 수 있는 기본적인 연산들의 집합인 '명령어 집합'(MMX, SEE, EM64T, AES, AVX 등)으로 이루어져 있습니다. 예를 들어 두 개의 숫자에 대한 가감 연산 등과 같은 기본적인 연산들은 옵코드라고 불리는 일정한 비트의 조합으로 이루어져 컴퓨터의 메모리 안에 저장되어 있습니다. 해당 연산들을 이용하여 여러 가지의 프로그램들을 제작, 실행하며 이 모든 역할들이 CPU 프로세서에 응집되어 있기 때문에 쉽게 설명할 때 CPU를 컴퓨터의 '두뇌' 라고 표현합니다.

 

<코어개수를 통한 CPU의 종류 구분>

  • 싱글코어 프로세서

  • 멀티코어 프로세서

 

싱글코어 프로세서는 CPU의 다이 위에 하나의 코어만이 있는 프로세서를 의미합니다. 일반적으로 코어가 1개이기 때문에 여러개의 코어가 들어가 있는 멀티코어 프로세서에 비해 가격이 싸고 이 CPU를 위한 프로그래밍이 더욱 간편하다는 장점을 가지고 있습니다. 하지만 코어가 1개이기 때문에 유지보수작업을 진행할때 시스템이 해당 작업을 위해 원래 목적으로 사용되지 못하고 오류가 발생하면 바로 시스템이 정지하는 단점이 있습니다. 그리고 다량의 작업이 주어질 경우 한개의 코어만으로 해당 작업에 대한 연산을 수행하기 때문에 멀티코어에 비해 작업 처리속도가 현저히 느리다는 단점이 있습니다. 그래서 최근 CPU에 할당되는 연산이 많은 프로그램들이 주류를 이루는 시장의 흐름에 의해 데스크탑 시장에서 싱글코어 프로세서는 거의 사장되어 사용되지 않고 싱글코어 프로세서는 인터넷 공유기 등과 같은 특수목적의 용도로만 사용되고 있습니다.

 

멀티코어 프로세서는 CPU의 다이 위에 2개 이상, 여러개의 코어를 탑재한 프로세서를 의미합니다. 프로세서에 할당되는 연산들을 여러개의 코어에 분산시켜서 동시에 작업을 진행하기 때문에 싱글코어 프로세서에 비해 압도적으로 높은 성능을 보여줍니다. 다만 해당 종류의 CPU를 제대로 활용하기 위해서는 프로그램을 코딩할 때 다중 코어를 사용할 수 있도록 프로그래밍해야합니다. 그렇지 않다면 코어가 아무리 많은 CPU라도 제대로 된 성능을 이끌어 낼 수 없는 상황이 발생할 수도 있습니다. 예를 들어 최근 출시되는 게임들을 보면 대부분이 6개 이상의 코어를 사용하는 게임이 없어서 6코어 프로세서와 8코어 프로세서를 비교하면 유의미한 성능향상폭을 보여주지 못하는 경우가 있습니다. 그리고 물리적인 코어수만을 늘리는 게 아닌 SMT기술을 이용해 가상의 논리코어인 '스레드'를 추가시켜 1개의 물리코어 당 2개의 스레드(1C/2T)의 구성을 이용해 논리연산 능력을 더욱 이끌어내기도 합니다.

 

몇넌 전까지만 해도 제조사들이 CPU의 클럭과 IPC(클럭 당 성능)을 올리는데 집중하는 모습을 보여주었지만 최근들어 해당 성능들을 끌어올리는 데에 한계점에 도달해 가고 있고 AMD가 일반소비자용 시장에 코어수를 대폭 늘린 CPU(라이젠 시리즈)를 출시하면서 제조사들이 작업의 병렬성을 높이기 위해 신제품의 코어수를 늘려서 출시하는 경향을 띄고 있습니다.(ex. 64코어 프로세서인 AMD의 EPYC7742) 

 

 

 


 

 

 

"CPU 스펙에 대한 간단해석"

 

 

우리가 컴퓨터를 새로 사거나 업그레이드 하기 위해 자주 들어가는 홈페이지인 '다나와'에서 CPU를 검색해보면 코어 수, 스레드 수, 클럭, 메모리 버스, 메모리 채널 등 검색옵션이 매우 다양한 점을 볼 수 있습니다. 그렇다면 우리가  CPU의 성능을 위해 알아야 할 주요 용어에는 무엇이 있을까요?

컴퓨터의 성능을 결정하는게 꼭 CPU의 성능만은 아니고 램의 대역폭, 메모리 컨트롤러 성능 등 여러가지 요인들이 있겠지만 CPU의 성능만을 비교하기 위해 생각해야 하는 것은 클럭 속도, IPC(클럭 당 성능), 코어 수, 공정 크기 네 가지가 있다고 생각합니다.

 

우선 클럭 속도가 무엇인지 알아보자면 CPU의 스펙에 '기본클럭/최대클럭'으로 표기되어 있는 부분입니다. 간단히 말해 해당 CPU가 동작하는 속도를 숫자로 나타낸 것입니다. 디지털회로들이 동작하는 기계어는 0과 1로 이루어져있는데 이 0과1이 서로 바뀌면서 출력을 하기때문에 이 0과 1의 바뀌는 행위=스위칭이 1초에 몇 번 일어나는지를 나타내는 게 CPU의 클럭입니다. 그러면 클럭속도가 곧 CPU의 연산능력을 나타내는가? 이건 틀린 생각입니다. 클럭속도는 CPU가 동작하는 속도를 의미하고 해당 동작마다 행하는 연산처리능력을 알기 위해서는 IPC도 고려해야합니다.

 

쉽게 예를 들어보자면 회사원 A가 있고 회사원 B가 있습니다. 이 둘은 같은 회사에서 같은 업무를 담당하고 있고 한 번일을 시작하면 정해진 시간동안 쉬지않고 일을 합니다. 두 회사원의 일을 하는 방식은 다음과 같습니다.

 

  • 회사원A : 일을 시작하면 1시간동안 일을 함. 1시간동안 40의 업무량을 처리함.

  • 회사원B : 일을 시작하면 2시간동안 일을 함. 2시간동안 90의 업무량을 처리함.

 

과연 이 두명 중 일을 더 잘하는 회사원은 누구일까요? 회사원 A는 회사원B보다 더 짧은 시간동안 1회의 근무를 마치고 다시 일을 하기 시작합니다. 단기적으로 보면 1시간만에 40만큼의 결과물을 내놓고 다시 일을 하는 A가 더 일을 잘 한다고 생각할 수도 있습니다. 하지만 2시간이 지난 후 보면 누가 더 일을 많이 했을까요? 2시간이 지난 뒤 A는 80만큼의 업무량을 처리했고 B는 90만큼의 업무량을 처리한 것입니다. 한 번 일을 시작하면 일을 처리하고 결과물을 제출해내는 속도는 A가 B에 비해 월등히 빠르지만 절대적인 시간을 기준으로 둔다면 B의 업무효율이 더 좋고 시간이 지나면 지날수록 더욱 많은 업무량을 처리해내는 것은 회사원B입니다.

 

CPU도 위의 경우와 흡사합니다. 클럭속도가 높다면 해당 프로세서가 같은 시간대비 더 많은 횟수동안 일을 합니다. 하지만 IPC가 낮다면 한 번 일을 할때마다 처리하는 연산량이 낮아지고 이는 클럭속도는 낮지만 IPC가 더 높은 프로세서에 비해 작업효율이 떨어짐을 의미하죠. IPC는 CPU의 하드웨어 스팩에 기재되어 있는 내용은 아니지만 해당 세대의 적용된 아키텍처의 효율등으로 인해 점점 상승해가는 것이고 이를 벤치마크툴의 싱글코어점수등을 비교해서 얼추 어림잡아볼 수 있습니다. 그리고 결국 클럭속도와 IPC모두 CPU의 연산능력에 영향을 끼치기 때문에 각종 사이트들의 벤치마크 점수를 참고해서 CPU의 연산능력을 비교할 수 있는 것입니다.

 

다수의 코어를 탑재한 라이젠 프로세서

 

클럭속도와 IPC가 코어의 연산능력을 대변해주는 스펙임은 알 수 있었습니다. 그럼 이제 중요한 건 뭐가 잇을까요? 바로 코어의 개수 즉, 몇 개의 코어가 동시에 작업을 수행하는가입니다. 아무리 한 명이 일을 효율적으로 잘 처리한다고 하더라도 인원수로 밀어붙이면 따라잡히듯이 일반적으로 코어의 갯수가 많으면 작업프로그램에서 높은 효율을 보여줍니다. 현재 데스크탑 CPU시장에서 인텔에 비해 클럭속도 등이 낮은 AMD가 선택한 전략이 바로 코어를 많이 집어넣어서 CPU의 병렬성을 높여 작업성능을 끌어내는 것입니다. 여담으로 인텔은 1개의 코어다이가 있지만 AMD는 PCB기판위에 빅-스몰 코어를 이용해 여러개의 코어다이를 탑재하여 코어수를 늘리는 방식으로 CPU를 생산하고 있습니다. 그렇다면 인텔은 왜 코어수를 늘려버려서 클럭속도, IPC, 코어수 모든 면에서 우월한 위치를 갖지 않는 것일까요? 그 이유는 공정 크기에 있습니다.

 

일반소비자용 CPU들은 프로세서 자체의 생김새가 거의 정사각형이고 크기도 그렇게 크지 않습니다. 직사각형 모양의 일반적인 CPU들보다 큰 PCB기판을 가진 제품들은 HEDT, 하이엔드 데스크탑 프로세서들(인텔의 제온, AMD의 스레드리퍼)들이고 CPU소켓, PCIe레일 수등 여러가지 면에서 차이가 나고 가격또한 무지막지합니다.  그래서 결국 코어 다이를 올릴 수 있는 공간은 한정되어 있는데 같은 공간에 더 많은 코어를 집어넣기 위해서는 제조공정이 더욱 세밀해져야 가능한 부분입니다. 좀 더 작게 코어를 만들어내면 같은 크기의 다이 안에 더 많은 코어를 집어넣어서 코어의 개수를 늘려내는 것이죠. 현재 인텔의 제조공정은 14nm, AMD의 제조공정은 7nm로 두배의 차이를 보여줍니다. 그래서 일반소비자용 프로세서에서 인텔의 최대코어는 10코어, AMD는 16코어로 물리적인 코어개수에서 큰 차이가 있다는 걸 알 수 있습니다. 물론 제조사마다 공정의 효율성의 차이가 존재하긴 하지만 워낙에 공정 크기의 차이가 크다보니 이러한 현상이 일어나는 것입니다. 그리고 공정크기는 코어의 개수뿐만 아니라 전력대비성능(=전성비)에도 영향을 미치다 보니 공정크기 또한 한 번쯤 살펴봐야할 CPU의 스펙 중 하나입니다. 전기를 적게 사용해서 같은 성능을 낼 수 있다면 발열적인 측면에서도 더 효율적인 것이고 이는 기본적인 성능도 더 낫고 오버클럭을 통해 잠재된 성능을 더 이끌어 낼 수 있는 것이죠.

 

 

 


 

 

 

"CPU-1편을 마무리하며..."

 

이번 포스팅에서는 CPU의 탄생에 관한 간단한 역사와 CPU의 성능에 대해 큰 영향을 끼치는 몇가지 하드웨어 스펙에 대해 설명해보았습니다. 컴퓨터를 잘 모르시는 분들이 이해하기 편하도록 약간 넓고 얕은 지식의 컨셉(?)으로 글을 적어보았는데 여러분들이 이해하기 쉬웠기를 바라고있습니다 ㅎㅎ. 다음 포스팅에서는 좀더 깊은 역사와 현재 데스크탑 시장의 근황, 그리고 좀 더 세밀한 하드웨어 스펙의 역할과 성능에 끼치는 영향등에 대해서 설명하고자 합니다. 이번 포스팅이 도움이 되었다면 다음 포스팅 내용도 기대해주시길 바라며 이만 글을 마칩니다. 감사합니다.

 

 

 

재밌게 보셨다면 공유 한 번 부탁드립니다^^

facebook twitter kakaoTalk kakaostory naver band