4.1 CPU의 한계와 새로운 컴퓨팅 패러다임의 필요성

4.1 CPU의 한계와 새로운 컴퓨팅 패러다임의 필요성

20세기 후반 고도의 정보화 시대를 완벽하게 견인했던 퍼스널 컴퓨터(Personal Computer, PC)의 우아한 마더보드(Motherboard) 한가운데에는 항상 그 누구도 감히 넘볼 수 없는 황제, ’중앙처리장치(CPU)’가 절대적인 권력자로 군림하고 있었다. CPU는 인간이 타자기로 입력하는 미세한 글자부터 복잡한 스프레드시트 결산, 그리고 운영체제(OS)의 가장 중추적인 시스템 관리까지 컴퓨터에서 일어나는 모든 인지적 업무를 단독으로 독식하며 처리했다.

하지만 세상의 요구가 밋밋한 2차원 평면 데이터에서 눈부신 조명과 사실적인 원근감이 살아 숨 쉬는 ’가상 치수(Virtual Dimension)’의 3D 엔터테인먼트로 급격히 넘어가면서, 이 완벽해 보이던 황제의 절대 권력에도 치명적인 파열음이 발생하기 시작했다. 인간의 뇌로 치자면 탁월한 논리 수학 능력을 지닌 좌뇌만 비정상적으로 크고, 공간의 시각을 이미지로 수용하는 우뇌가 아예 쪼그라들어 있는 극단적인 불균형(Imbalance) 상태에 생태계 전체가 직면한 셈이었다.

4.1장에서는 당시 이 낡은 CPU 중심의 순차적(Sequential), 혹은 직렬 처리(Serial Processing) 아키텍처가 지닌 태생적인 구조적 한계(Structural Limitation)를 밀착해서 파헤친다. 수백만 개의 폴리곤(Polygon) 덩어리를 움직이게 하는 비디오 게임(Video Game)의 거센 기술적 폭동 앞에서는 아무리 똑똑하고 거대한 CPU 제왕일지라도 끔찍한 병목 현상(Bottleneck)의 늪에 빠져 서서히 익사할 수밖에 없었던, 새로운 하드웨어 가속 패러다임(Hardware Acceleration Paradigm) 탄생의 피할 수 없는 당위성을 상세히 다룬다.

4.1.1 직렬 처리 아키텍처의 구조적 한계

인텔(Intel)이 반도체 공정의 고도화를 통해 극한으로 밀어붙인 중앙처리장치(CPU)의 본질적인 설계 철학은 철저하게 ‘직렬 처리(Serial Processing)’ 였다. CPU 안에는 매우 강력하고 거대한 두뇌, 즉 코어(Core)가 소수로 존재하며, 이들은 엄청나게 복잡다단한 논리 회로 명령어(Instruction)를 매우 정교하고, 압도적으로 빠른 속도로 차근차근 ‘하나씩 순서대로’ 풀어나가는 데(Execution) 완벽하게 특화되어 있었다.

어려운 릴레이 미분 방정식이나 복잡한 데이터베이스(Database) 검색, 그리고 운영체제 전체의 질서를 유지하는 데에는 이런 엘리트 관료주의 방식의 CPU 통제가 환상적인 효율성을 자랑했다. 작업의 큐(Queue)에 나열된 순서를 기다리며 CPU는 눈부신 클럭 속도(Clock Speed)를 앞세워 문제들을 격파해 나갔다.

그러나 이 압도적인 엘리트 직렬 코어에게 화면 모니터에 뿌려질 수십만 방향의 색상 픽셀(Pixel) 데이터를 한꺼번에, 일제히 바꾸라는 무식하고 방대한 지시를 내리면 상황은 완벽히 달라진다. 똑똑한 고급 수학자가 10만 장의 벽돌을 순서대로 하나씩 날라야 하는 끔찍한 막노동에 투입된 것과 같았다.

graph TD
    A[CPU 직렬 연산 아키텍처<br>Serial Architecture] --> B[강력하지만 소수인 코어<br>Few, Powerful Cores]
    B --> C{명령어 처리 방식}
    C --> D[명령어 1 처리 완료]
    D --> E[명령어 2 처리 완료]
    E --> F[명령어 3 처리 완료...]
    F --> G[복잡한 논리 연산에 탁월<br>High Logic Efficiency]
    F --> H[단순 다량 그래픽 연산에 취약<br>Massive Data Bottleneck]
    
    style H fill:#f55,stroke:#333,stroke-width:2px,color:#fff

3D 모델링이나 그래픽 영역은 그 연산의 질(Quality) 자체가 복잡하기보다는, 더하기나 곱하기 같은 극히 단순한 수식을 수백만, 수천만 개의 좌표계에 ‘동시에(Simultaneously)’ 일제히 터뜨려야 제맛을 낼 수 있는 물리적 속성을 띠고 있었다. 오직 컨베이어 벨트에 일렬로 데이터를 세워놓고 순서대로 처리하던 CPU의 파이프라인(Pipeline) 앞에서 이 방대한 픽셀 데이터들은 길고 긴 대기열을 만들다 못해 기계 전체를 치명적인 정체(Congestion)와 멈춤(Freeze)으로 몰아넣는 근본적인 병목(Bottleneck)의 원흉이 되었다.

4.1.2 기하급수적으로 증가하는 3D 그래픽 연산과 병목 현상

과거의 비디오 게임(Video Game) 환경인 단순한 팩맨(Pac-Man)이나 조악한 16비트의 슈퍼 마리오의 2D 점(Dot)을 찍어낼 무렵만 해도, 인텔 CPU의 막대한 클럭 스피드(Clock Speed) 여유분만으로도 보조 그래픽 칩셋의 도움을 약간 빌려 큰 무리 없이 화면을 처리할 수 있었다. 하지만 1990년대 후반으로 거침없이 접어들면서, 콘솔(Console)과 PC 게임 시장은 미친 듯이 현실을 닮아가는 ’3D 폴리곤(3D Polygon)’이라는 돌이킬 수 없는 마법의 늪에 빠져들었다.

3D 폴리곤으로 표현된 하나의 사이버 전사를 모니터 모서리 끝에 현실감 있게 세우기 위해서는 믿을 수 없이 끔찍한 연산이 물밑에서 쏟아졌다. 모델의 뼈대를 이루는 점(Vertex)들이 쉴 새 없이 공간의 위치(X, Y, Z)를 바꾸는 이동과 회전 연산, 캐릭터의 피부 질감(Texture)을 삼각 폴리곤들 위에 정교하게 덧씌우는 연산, 심지어 가상의 폭탄이 터질 때 그 폭발의 섬광이 캐릭터의 피부에 반사되는 광원과 그림자(Lighting & Shading) 연산까지. 1초에 60번씩 이 무식하고 압도적인 삼각 함수와 행렬 수학의 쓰나미가 메인보드 하부에서 매 순간 폭발해야만 했다.

아무리 CPU가 다음 버전으로 업그레이드되어 데이터 처리 파이프의 두께를 키운다고 한들, 기하급수적(Exponentially)으로 미친 듯이 증식하는 이 거대하고 무가치한 단순 픽셀 데이터들의 반복 연산을 단독으로 처리하기란 물리적으로 불가능한 장벽이었다.

“더 이상 CPU의 발달 속도에 기대어 그래픽 기술의 완성을 하염없이 기다릴 수는 없다. 수십, 수백 개의 멍청하지만 부지런한 연산 일꾼들을 한 방에 묶어, 저 방대한 폴리곤 렌더링(Rendering) 막노동만 오로지 전담시켜 버릴 완전히 이질적인 변종 하드웨어 가속기(Hardware Accelerator)가 절대적으로 필요하다.”

이 막강한 연산의 체증(Traffic Jam), 즉 구조적인 거대한 병목 현상(Bottleneck)이야말로 세상에서 오직 동시다발적인 방대한 병렬 처리(Parallel Processing)만을 지루하게 수행할 기괴한 신인류 가속 칩셋, 엔비디아(NVIDIA)가 세상을 향해 잉태하게 될 지상 최강의 그래픽 엔진(Graphic Engine)에 대한 가장 서늘하고도 완벽한 시대적 호출(Calling) 선언이었다.