컴퓨터를 비롯한 모든 디지털 기기에는 반드시 CPU가 들어 있습니다.
기술 용어로 한 번쯤은 들어보셨을 텐데요, 과연 CPU는 정확히 어떤 것이고, 어떻게 작동할까요?
이 글에서는 초보자도 쉽게 이해할 수 있도록 CPU의 기본 개념과 작동 방식을 차근차근 살펴봅니다.
CPU란 무엇이며, 컴퓨터 어디에 있을까?
CPU는 Central Processing Unit(중앙처리장치)의 약자로, 프로세서(processor) 또는 마이크로프로세서(microprocessor)라고도 불립니다.
CPU는 모든 디지털 컴퓨팅 시스템에서 가장 중요한 하드웨어 부품 중 하나이며, 어쩌면 가장 중요한 부품이라고 할 수 있습니다.
CPU 내부에는 수천 개의 미세한 트랜지스터(transistor)가 들어 있습니다. 트랜지스터는 집적회로를 통해 흐르는 전기의 흐름을 제어하는 아주 작은 스위치 역할을 합니다.
CPU는 컴퓨터의 메인보드(motherboard) 위에 장착되어 있습니다.
메인보드는 컴퓨터 내부의 핵심 회로 기판으로, 모든 하드웨어 구성 요소들을 서로 연결하는 역할을 담당합니다.
흔히 모든 디지털 시스템의 '두뇌이자 심장'이라 불리는 CPU는 실질적인 모든 작업을 수행합니다. 컴퓨터가 하는 모든 동작을 처리하고 프로그램을 실행하는 주체가 바로 CPU입니다.
컴퓨터 프로그램이란 무엇이고, 어디에 저장될까?
CPU가 수행하는 모든 작업에는 그에 해당하는 프로그램이 존재합니다.
웹 브라우저나 워드 프로세서를 사용하게 해주는 프로그램이 있고, 계산기의 수학 연산을 처리하거나 키보드로 문자를 입력할 수 있게 해주는 프로그램도 있습니다. 마우스로 화면의 요소를 클릭하고 선택하거나, 노트북 터치패드를 누르는 동작까지 관리하는 프로그램도 있죠.
무엇이든 간에, 컴퓨터의 모든 활동에는 그에 맞는 프로그램이 존재합니다.
프로그램은 순서대로, 논리적으로 실행되어야 하는 명령어들의 집합입니다. 프로그래머가 사람이 읽을 수 있는 언어, 즉 프로그래밍 언어로 작성합니다.
하지만 컴퓨터는 프로그래밍 언어를 직접 이해하지 못하기 때문에, 이를 컴퓨터가 이해하기 쉬운 형태로 변환해야 합니다.
그 변환된 형태를 기계어(machine language), 즉 이진수(binary)라고 부릅니다.
이진수는 2진법 체계로, 오직 0과 1 두 개의 숫자만으로 구성됩니다.
이는 트랜지스터가 전기 흐름을 제어하는 단 두 가지 상태, 즉 켜짐(1)과 꺼짐(0)과 정확히 일치합니다.
따라서 내부적으로 프로그램은 비트(bit)의 나열 형태로 저장됩니다. 비트는 이진 숫자, 즉 1과 0의 연속을 뜻하는 또 다른 이름입니다.
프로그램은 HDD(하드디스크 드라이브)나 SSD(솔리드 스테이트 드라이브) 같은 저장 장치에 영구적으로, 장기간 보관됩니다.
이런 저장 장치는 비휘발성 메모리로, 전원이 꺼져도 데이터가 유지됩니다.
반면 프로그램이 실행 중이거나 현재 사용 중일 때는 그 모든 데이터가 주기억장치인 RAM(Random Access Memory, 램)에 저장됩니다.
RAM은 휘발성 메모리이기 때문에 전원이 꺼지면 저장된 모든 데이터가 사라집니다.
CPU는 어떤 일을 할까?
한마디로 말하자면, CPU는 논리 연산과 수학적 연산을 처리하고, 주어진 명령어를 실행하는 역할을 담당합니다.
CPU는 초당 수백만 개의 명령어를 실행할 수 있지만, 한 번에 단 하나의 명령어만 처리할 수 있습니다.
CPU는 먼저 입력을 받습니다. 입력은 보통 모니터, 키보드, 마우스, 마이크 같은 입력 장치에서 오거나, 웹 브라우저나 운영체제 같은 응용·시스템 소프트웨어에서 전달됩니다.
이후 CPU는 다음 네 가지 작업을 수행합니다.
- 인출(Fetching): 받은 입력을 어떻게 처리해야 할지 알기 위해 메모리에서 해당 명령어를 가져옵니다. 구체적으로는 명령어가 저장된 주소를 찾아 RAM에 요청을 보냅니다. CPU와 RAM은 끊임없이 함께 작동하며, 이 과정을 메모리 '읽기'라고도 합니다.
- 해독(Decoding): 가져온 명령어를 CPU가 이해할 수 있는 형태, 즉 기계어(이진수)로 번역합니다.
- 실행(Executing): 해독된 명령어를 실제로 수행합니다.
- 저장(Storing): 실행 결과를 나중에 필요할 때 다시 꺼낼 수 있도록 메모리에 되돌려 씁니다. 이를 메모리 '쓰기'라고도 합니다.
마지막으로 화면에 무언가를 출력하는 것과 같은 결과물이 만들어집니다.
위에서 설명한 이 과정을 인출-실행(fetch-execute) 사이클이라고 부르며, 초당 수백만 번 반복됩니다.
CPU의 주요 구성 요소
컴퓨터에서 일어나는 모든 작업을 CPU가 처리한다는 것을 이제 알았으니, 그렇다면 이 일을 가능하게 하는 CPU 내부의 구성 요소들은 무엇일까요?
핵심 구성 요소들을 살펴보겠습니다.
- CU(Control Unit, 제어장치): 입력과 출력의 흐름을 조절합니다. 주기억장치에서 명령어를 인출해 온 뒤 해독하는 역할을 담당합니다.
- ALU(Arithmetic Logic Unit, 산술논리연산장치): 모든 실질적인 연산이 일어나는 곳입니다. 덧셈, 뺄셈, 곱셈, 나눗셈 같은 수학 계산과, 데이터 비교 등 의사 결정을 위한 논리 연산이 모두 여기서 처리됩니다.
- 레지스터(Register): 매우 빠른 속도의 임시 기억 공간입니다. 인출-실행 사이클 동안 처리 중인 데이터와 명령어가 여기에 저장되어, 프로세서가 신속하게 접근할 수 있도록 합니다.
CPU 코어란 무엇일까?
앞서 CPU는 일반적으로 한 번에 하나의 동작만 수행할 수 있다고 설명했습니다.
CPU는 명령어를 하나씩 실행하며, 이 작업은 물리적 코어(physical core)의 도움을 받아 이루어집니다.
본질적으로 코어는 그 자체로 하나의 CPU입니다. 즉, 메인 CPU 칩 안에 들어 있는 독립적인 장치라고 볼 수 있으며, 역시 한 번에 한 가지 일만 처리할 수 있습니다.
하지만 현대의 컴퓨터는 하나의 칩 안에 여러 개의 코어를 탑재할 수 있습니다.
CPU에 코어가 많을수록 연산 능력이 강해지고, 동시에 더 많은 작업을 실행하고 완료할 수 있어 멀티태스킹 성능이 향상됩니다.
예를 들어 듀얼코어(dual-core) CPU는 하나의 칩에 두 개의 CPU가 있어 두 개의 명령어를 동시에 실행할 수 있습니다.
쿼드코어(quad-core)는 네 개, 헥사코어(hexa-core)는 여섯 개의 코어를 의미하며, 그 이상도 가능합니다.
하이퍼스레딩(Hyperthreading)이란?
현대의 CPU는 하이퍼스레딩이라는 기술도 지원합니다.
이 기술은 하나의 물리적 코어가 마치 여러 개의 물리적 코어처럼 보이게 만들어, 운영체제가 실제보다 더 많은 코어가 있다고 인식하도록 합니다. 그 결과 컴퓨터는 자신이 실제보다 더 큰 성능을 가진 것처럼 판단하게 됩니다.
즉, 앞서 설명한 물리적 코어 외에도 이러한 가상 코어, 이른바 '스레드(thread)'가 존재합니다.
스레드는 실제 물리적 코어는 아니지만, 그렇게 보이도록 작동합니다.
물리적 코어와 가상 코어가 결합하면 프로그램 실행 속도가 더욱 빨라지고, CPU의 전반적인 연산 성능도 한층 높아집니다.
마치며
여기까지 읽어주셔서 감사합니다! 이 글을 통해 CPU가 무엇인지, 어떤 일을 하는지, 그리고 왜 그렇게 중요한지 조금 더 잘 이해하셨기를 바랍니다.
컴퓨터의 기본 구조에 대해 더 알고 싶다면, 컴퓨터의 기본 구성 요소를 다룬 가이드도 참고해 보세요.
즐거운 학습 되세요!