1.2 연산하고 기억하는 칩

앞 절에서는 발전된 AI 모델을 사용하려면 높은 수준의 컴퓨팅 능력이 필요했고, 칩의 발전이 그것을 가능하게 했음을 살펴보았다. 이제 컴퓨터 안으로 시선을 옮겨, 그 안에 있는 칩을 좀 더 이해해보자.

컴퓨터는 글을 쓰고, 사진을 보여주고, 복잡한 문제를 푸는 등 다양한 일을 한다. 이러한 일을 수행하는 바탕에는 네 가지 기본 동작이 있다. 밖에서 정보를 받아들이는 입력, 받아들인 정보를 처리하는 연산, 처리에 필요한 정보와 그 결과를 담아두는 기억, 결과를 밖으로 내보내는 출력이다. 연산에는 숫자를 더하고 빼는 계산과 두 값을 견주는 비교가 들어간다. 컴퓨터가 어떤 일을 하려면 이 동작들이 맞물려야 한다. 예를 들어, 코드로 두 숫자를 더하는 일을 시키려면 컴퓨터 안에서는 그 숫자를 받아 기억하고, 실제로 더하고, 결과를 내보내는 동작이 이어져야 한다. 이 가운데 이 책이 주로 따라가는 것은 연산과 기억이다. 입력과 출력은 밖과 정보를 주고받는 창구이고, 코드가 지시한 일이 실제로 처리되는 자리는 연산과 기억이기 때문이다.

컴퓨터 내부에는 이러한 연산과 기억을 맡는 작은 전자 부품인 칩이 들어 있다. 여러 종류의 칩들이 서로 연결되어 함께 일하며, 다른 여러 부품과 함께 협력하여 동작하고, 이들이 모여 컴퓨터를 구성한다.

주된 역할에 따라 칩의 종류를 나누게 되면, 연산을 하거나 동작을 제어하는 것을 시스템 반도체 칩, 정보를 기억하고 저장하는 것을 메모리 반도체 칩이라고 부른다. 〈그림 1-2〉는 이러한 역할에 따른 칩의 분류를 보여준다. 여기서, 반도체라는 이름은 칩을 만드는 재료에서 비롯되었는데, 그 재료가 왜 칩을 만드는 데 쓰이는지는 뒤에서 자세히 알아볼 것이다.

반도체 칩의 분류: 시스템 반도체(CPU, GPU, NPU)와 메모리 반도체(DRAM, NAND, SRAM)
〈그림 1-2〉 목적과 역할에 따른 반도체 칩의 분류 — 연산하는 칩(시스템 반도체)과 기억하는 칩(메모리 반도체)

먼저, 시스템 반도체 칩의 대표적인 예가 CPU, GPU, NPU다. 여러 종류의 프로그램을 실행하며 다양한 일을 처리하는 칩이 CPU(Central Processing Unit)다. 연산을 맡는 것은 물론, 프로그램의 지시를 순서대로 읽어 컴퓨터의 각 부분이 제때 움직이도록 이끈다. 노트북이나 데스크톱에 들어가는 인텔·AMD의 칩이 여기에 해당한다.

GPU(Graphics Processing Unit)는 이름처럼 원래 화면에 그림을 그리기 위해 만들어진 칩인데, 많은 연산을 동시에 처리하는 강점이 AI 연산에도 들어맞아 지금은 양쪽에 널리 쓰인다. 엔비디아의 칩이 대표적이다.

NPU(Neural Processing Unit)는 앞 절에서 본 인공신경망 연산을 효율적으로 처리하는 특수 목적을 위해 만든 칩이다.

메모리 반도체의 대표적인 예는 디램(DRAM)과 낸드 플래시(NAND Flash)다. 디램은 프로그램 실행에 필요한 정보를 빠르게 꺼내 쓰도록 담아두지만, 전원이 꺼지면 내용이 사라진다. 낸드 플래시는 전원이 꺼져도 정보를 보관하므로, 문서나 사진을 저장하는 데 쓰인다. 빠르지만 사라지는 쪽과 느리지만 남는 쪽, 컴퓨터는 이 두 종류의 메모리 칩을 필요에 따라 함께 쓴다.

큰 범위에서 칩의 종류를 시스템 반도체, 메모리 반도체 둘로 분류를 하였지만, 연산과 기억이 언제나 서로 다른 칩에 나뉘어 있는 것은 아니다. 하나의 칩 안에도 연산하는 부분과 정보를 기억하는 부분이 함께 들어 있기도 하다. 시스템 반도체와 메모리 반도체라는 구분은 칩이 주로 어떤 역할을 맡는지에 따른 것일 뿐이다. 어떤 형태로 구성되든, 컴퓨터는 연산하는 부분과 기억하는 부분이 정보를 주고받으며 함께 일해야 프로그램을 실행할 수 있다.

시스템 반도체와 메모리 반도체라는 큰 분류 안에서도, 맡은 일에 따라 칩의 종류는 다시 나뉜다. 앞서 살펴본 CPU, GPU, NPU와 디램, 낸드 플래시가 그 예다. 그것은 목적이 다르면 설계도 달라지기 때문이다. 칩에 넣을 수 있는 회로에는 한계가 있어서, 무엇을 잘하게 만들지 고르면 그에 맞추어 내부 구조가 정해진다. 여러 가지 일을 두루 하는 철수보다 한 가지 연산만 파고든 영희가 그 연산에서는 훨씬 빠른 것과 같다. 여기서 철수는 CPU, 영희는 NPU와 같은 칩이 될 수 있다.

코드 아래 세상을 이해하기 위해 중요한 부분인 컴퓨터 내부를 이루고 있는 칩의 종류에 대해서 살펴보고, 간략하지만 다양한 종류의 칩들이 존재하는 이유도 살펴보았다. 이 책에서는 CPU 칩을 중심으로 프로그램의 지시를 처리하는 과정을 따라가며 연산과 기억이 여러 칩을 통해 어떻게 수행되는지 그리고 어떻게 연결되는지 알아볼 것이다. 다음 절에서는 칩들로 구성된 우리 주변의 다양한 컴퓨터 모습들을 살펴본다.