본문 바로가기

[하드웨어 뜯어보기] CPU #3 - ALU, 생각하는 계산기

📑 목차

    계산을 넘어 판단까지, CPU의 논리 엔진 ALU를 해부해 보기

    핵심요약
    ALU는 CPU의 중심부에서 모든 수학적·논리적 연산을 수행하는 계산 기관입니다.
    제어장치가 내린 명령을 실제로 실행하며, CPU가 ‘생각한다’는 개념의 본질은 바로 이 ALU의 작동에 있습니다.

     

    Arithmetic Logic Unit
    Arithmetic Logic Unit


    1. ALU란 무엇인가?

    ALU(Arithmetic Logic Unit)는 말 그대로 산술(Arithmetic)과 논리(Logic) 연산을 담당하는 장치입니다.
    제어장치(Control Unit)가 "무엇을 할지"를 결정하면, ALU는 "그 일을 실제로 수행"합니다.

     

    예를 들어,

    • ADD R1, R2 → 두 값을 더함
    • CMP R1, R2 → 두 값을 비교함
    • AND R1, R2 → 비트 단위 논리곱 수행

    이처럼 ALU는 컴퓨터의 '행동’을 담당하는 실행 엔진입니다.

    핵심 문장 : ALU는 제어장치의 명령을 실제 행동으로 옮기는 CPU의 팔과 손입니다.


    2. ALU의 내부 구조

    ALU는 작지만 정교한 회로들로 이루어져 있습니다.
    크게 세 가지 부분으로 나눌 수 있습니다.

    1) 산술 연산 회로 (Arithmetic Circuit)

    • 가산기(Adder)와 감산기(Subtractor)를 이용해 기본적인 수학 연산을 수행합니다.
    • 다중 비트 CPU에서는 32비트 또는 64비트를 한 번에 더하기 위해 여러 개의 가산기가 직렬·병렬로 배치됩니다.
    • 덧셈은 기본이지만, 곱셈·나눗셈도 결국 덧셈의 반복으로 구현됩니다.

    2) 논리 연산 회로 (Logic Circuit)

    • AND, OR, XOR, NOT 등 기본 논리 게이트를 조합하여 비교·조건 판단·분기 연산을 수행합니다.
    • 예를 들어 if (A > B) 같은 조건문은 ALU의 논리 회로에서 평가됩니다.

    3) 누산기(Accumulator)와 플래그(Flags)

    • 연산 결과를 일시적으로 저장하는 누산기(ACC)
    • 결과가 0인지, 음수인지, 오버플로우가 발생했는지를 나타내는 플래그 비트
    • 이 플래그 값은 제어장치가 다음 명령을 결정할 때 사용됩니다.

    핵심 문장 : ALU는 수학과 논리를 동시에 처리하며, 그 결과를 플래그로 표현해 다음 판단의 근거를 남깁니다.


    3. ALU의 작동 과정

    CPU가 한 번의 연산을 수행할 때, ALU는 다음 순서로 작동합니다.

     

    1) 명령 수신: 제어장치가 ALU에 "덧셈을 수행하라"는 명령을 전달
    2) 데이터 입력: 피연산자(예: R1, R2)가 레지스터를 통해 ALU로 전달
    3) 연산 수행: 산술 회로나 논리 회로가 계산을 실행
    4) 결과 저장: 연산 결과를 누산기(ACC) 또는 일반 레지스터에 저장
    5) 플래그 설정: 결과 상태를 플래그 레지스터에 기록 (예: Zero, Carry 등)

     

    이 일련의 과정은 단 한 번의 CPU 클럭 사이클에 이루어지기도 하며, 수억 번 반복되면서 우리가 보는 프로그램이 동작합니다.

    핵심 문장 : ALU의 한 번의 연산은 미세하지만, 그 축적이 곧 컴퓨터의 사고가 됩니다.


    4. 사람의 뇌로 비유하자면

    CPU 전체가 인간의 두뇌라면, ALU는 논리적 사고를 담당하는 좌뇌의 전두엽과 같습니다.

    • 제어장치(CU) → 판단과 명령을 내리는 두뇌의 사령관
    • ALU → 판단을 행동으로 옮기는 손과 도구
    • 레지스터 → 잠깐 기억하는 단기기억(working memory)

    즉, 제어장치가 "이 문제를 풀어라" 하면, ALU는 계산하고 결과를 "다음 판단에 쓸 수 있도록" 정리합니다.

    핵심 문장 : ALU는 뇌의 논리 영역처럼 ‘생각의 결과’를 수치로 환원하는 계산기관입니다.


    5. ALU의 발전 역사

    1940~1950년대 - 진공관 기반 계산기

    ENIAC(1946)은 20개의 진공관 기반 가산기로 이루어진 ALU를 탑재했습니다.
    각 연산에 몇 천 개의 진공관이 필요했기 때문에 매우 거대했습니다.

    1970년대 - 집적회로(IC) 기반

    Intel 4004(1971)는 최초의 상용 마이크로프로세서로, ALU·제어장치·레지스터를 모두 하나의 칩 안에 통합했습니다. [1]

    현대 - 병렬화·파이프라인화된 ALU

    AMD Zen 4와 Intel Core 아키텍처에서는 하나의 코어에 여러 개의 ALU가 병렬로 배치되어, 여러 연산을 동시에 수행합니다. [2]
    이를 통해 초당 수십억 번의 연산이 가능합니다.

    핵심 문장 : ALU는 ‘덧셈기 하나’에서 시작해, 이제는 ‘병렬 사고를 하는 계산 네트워크’로 진화했습니다.


    6. 오늘날의 ALU - AI 시대의 보이지 않는 뇌

    스마트폰, 노트북, 데이터센터의 모든 연산은 결국 ALU 위에서 돌아갑니다.
    AI 칩이나 GPU의 수천 개 코어 또한, 기본 단위로 보면 각각이 ALU의 집합체입니다.

    • 스마트폰 SoC (예: ARM Cortex-A 시리즈) → 전력 효율형 ALU 다중화
    • AI 가속기 (Tensor Core, NPU) → 행렬 곱을 위한 특화형 ALU 병렬 구조
    • GPU 연산 유닛 → 부동소수점 ALU 수천 개가 동시에 벡터 연산 수행

    예를 들어, NVIDIA의 Tensor Core는 한 번의 클럭에 수백 개의 곱셈과 덧셈을 병렬로 수행합니다.
    이처럼 현대의 AI 가속기는 수천 개의 ALU가 동시에 작동하며, 거대한 행렬 연산 네트워크를 형성합니다.
    즉, AI 모델의 학습과 추론은 수많은 ALU가 협력해 연산을 이어가는 거대한 사고 회로라 할 수 있습니다.

     

    결론적으로, 오늘날 우리가 사용하는 인공지능 모델, 자율주행 시스템, 스마트폰 속 음성 인식까지,

    모든 연산의 근간을 이루는 것은 ALU 입니다.

     

    핵심 문장 : ALU는 AI 시대에도 여전히 모든 계산의 기본 단위이자, 디지털 사고의 가장 작은 셀입니다.


    7. 한 문장 요약

    ALU는 CPU가 ‘생각’이라는 연산을 수행하게 하는, 전자적 논리의 심장입니다.


    8. 다음 편 예고

    다음 글에서는 ALU가 계산한 결과를 보관하고 전달하는 CPU의 ‘기억 공간’인 레지스터의 비밀을 파헤칩니다.

     

    다음 글 : [컴퓨터 과학] - [하드웨어 뜯어보기] CPU #4 - 레지스터(Register), 순간의 기억

     

    [하드웨어 뜯어보기] CPU #4 - 레지스터(Register), 순간의 기억

    순간의 기억으로 세상을 계산하다 - CPU 속 단기기억, 레지스터를 해부해보기핵심요약레지스터(Register) 는 CPU 내부에서 데이터를 잠시 저장하는 초고속 임시 기억장치입니다.ALU가 계산하고, 제어

    snappytory.com

     


    9. 참고문헌

    1. Intel Corporation, "The Story of the Intel 4004".
    2. Wikipedia, "Zen (microarchitecture)".
    3. Wikipedia, "Arithmetic logic unit".
    4. IBM, "The history of the central processing unit (CPU)".