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 사이클 (명령어 처리 사이클)
- 가져오기 (Fetch): 제어 장치가 메모리(RAM)에서 다음에 실행할 명령어를 가져옵니다.
- 해석하기 (Decode): 가져온 명령어가 무엇을 의미하는지(덧셈인지, 데이터 이동인지 등) 해석합니다.
- 실행하기 (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)