2025-09-09 22:57

Tags: 소프트웨어 공학

CPU(Central Processing Unit, 중앙 처리 장치)

  • CPU는 컴퓨터의 두뇌 역할을 하며, 모든 명령어 해석과 데이터 처리를 담당하는 핵심 부품
  • 폰 노이만 구조 를 기반으로 하며 명령어를 처리하는 중앙 처리 장치 가 바로 CPU
    • “계산을 위한 명령어(프로그램)와 계산에 필요한 데이터 모두를 메모리에 저장하고, 중앙에서 이 명령어들을 순서대로 읽어와 처리하는 장치”
    • 이 아이디어로 컴퓨터는 하나만 할 수 있는 전용 계산기에서 메모리에 어떤 프로그램 올리냐에 따라 다른 것들 할 수 있는 만능 기계됨
구성 요소역할비유
제어 장치(Control Unit)모든 작업의 흐름을 통제하고 명령어를 해석하여 각 부서에 지시를 내립니다.총괄 지휘관 또는 오케스트라 지휘자
산술/논리 연산 장치(ALU)덧셈, 뺄셈 같은 산술 연산과 ‘그리고’, ‘또는’ 같은 논리 연산을 실제로 수행합니다.계산 전문가 팀
레지스터(Registers)CPU 내에서 가장 빠른 임시 저장 공간. ALU가 처리할 데이터나 처리된 결과를 잠시 보관합니다.작업대 또는 메모장
캐시 메모리(Cache Memory)CPU와 주 메모리(RAM) 사이의 속도 차이를 줄이기 위한 고속 저장 공간. 자주 쓰는 데이터를 미리 가져다 놓습니다.자주 쓰는 도구를 꺼내놓는 선반

CPU의 작동 원리: Fetch-Decode-Execute 사이클 (명령어 처리 사이클)

  1. 가져오기 (Fetch): 제어 장치가 메모리(RAM)에서 다음에 실행할 명령어를 가져옵니다.
  2. 해석하기 (Decode): 가져온 명령어가 무엇을 의미하는지(덧셈인지, 데이터 이동인지 등) 해석합니다.
  3. 실행하기 (Execute): 해석된 명령어에 따라 ALU나 다른 장치가 실제 작업을 수행합니다.
  • 싸이클의 반복 속도가 바로 ‘클럭 속도’

    • 예를 들어 4.0GHz CPU는 이 사이클을 1초에 40억 번 반복
    • 이걸 빨리해서 성능 끌어올리는게 오버클럭이고 반대로 제한해서 안전하게 만드는게 언더클럭
    • 그렇다고 무한히 빨리 보내기만 하면 되는건 아니라 IPC 도 받아줘야 작업 실제로 성능 개선
  • 한 번의 사이클에 얼마나 더 많은 일을 처리할 수 있는가(IPC, Instructions Per Clock)

    • 코어: 실제로 연산을 수행하는 물리적인 ‘뇌’입니다.
    • 스레드: 소프트웨어 관점에서의 작업 처리 단위입니다.
      • ‘하이퍼스레딩’ 같은 기술은 하나의 물리적인 코어를 두 개의 논리적인 코어처럼 활용하여,
      • 하나의 코어가 동시에 두 개의 작업(스레드)을 처리하는 것처럼 만들어 효율을 높입니다.

CPU 설계 철학: 만능 맥가이버 칼(CISC) vs 전문가용 도구 세트(RISC)

  • CISC (Complex Instruction Set Computer):
    • ‘복잡한 명령어 세트 컴퓨터’라는 뜻으로, 하나의 명령어가 여러 단계의 복잡한 작업을 처리할 수 있도록 설계되었습니다.
    • 예를 들어 ‘메모리에서 두 숫자를 가져와 곱하고 결과를 다시 메모리에 저장하라’는 복잡한 작업을 단 하나의 명령어로 처리할 수 있습니다.
    • 장점: 적은 수의 명령어로 프로그램을 만들 수 있어 메모리 공간을 절약할 수 있었습니다.
    • 단점: 명령어가 복잡하고 실행 시간이 제각각이라 파이프라이닝(명령어 처리 단계를 겹쳐서 효율을 높이는 기술)이 어렵고, 회로가 복잡해집니다.
    • 대표 주자: 인텔과 AMD의 x86/x64 아키텍처 (대부분의 데스크톱, 노트북)
  • RISC (Reduced Instruction Set Computer):
    • ‘축소된 명령어 세트 컴퓨터’로, 단순하고 실행 시간이 일정한 명령어들로만 구성됩니다.
    • 복잡한 작업은 이러한 단순한 명령어들의 조합으로 처리합니다.
    • ‘메모리에서 데이터를 가져와라’, ‘두 숫자를 곱해라’, ‘결과를 메모리에 저장하라’처럼 작업을 잘게 쪼갭니다.
    • 장점: 명령어가 단순하고 길이가 일정해 파이프라이닝에 유리하며, 회로가 단순해 저전력, 저발열 설계에 용이합니다.
    • 단점: 같은 작업을 하려면 더 많은 명령어가 필요해 프로그램 길이가 길어질 수 있습니다.
    • 대표 주자: ARM 아키텍처 (대부분의 스마트폰, 태블릿, Apple Silicon)