CPU 구조

2025. 10. 13. 14:31·🖥️Computer Science

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

CPU는 컴퓨터의 핵심 두뇌로, 모든 프로그램 명령어를 해석하고 실행하는 장치이다.

메모리 ( RAM ) 에서 명령어를 가져와 처리하며, 결과를 다시 메모리나 출력 장치로 전달한다.

CPU 는 입력된 데이터를 현산하고 제어 신호를 내보내는 중심 제어 시스템이다.

 

 

1. CPU 의 핵심 구성 요소

1. ALU ( Arithmetic Logic Unit , 산술논리연산장치 )

  • 역할 : 실제 계산을 담당하는 부분이다.
    └ 덧셈 , 뺄셈 , 곱셈 , 나눗셈 같은 산술 연산
    └ AND , OR , NOT , XOR 같은 논리 연산
  • 특징 : 연산 결과를 누산기 ( Accumulator ) 나 다른 레지스터에 저장
    └ 조건문 ( if , 비교 등 ) 판단 시 플래그 ( Flag ) 값을 설정한다 ( 예 : 0 인지 음수인지 오버플로우인지 등 )
  • 예시 : 5 + 3 연산 → ALU 가 계산 → 결과 8 을 누산기에 저장
  • 정리 : ALU 는 연산 담당자 , 계산기 역할을 수행한다.

 

 

2. CU ( Control Unit , 제어장치 )

  • 역할 : CPU 의 두뇌로, 명령어를 해석하고 전체 동작 순서를 지시한다.
    └ 메모리에서 명령어를 읽어온다 ( Fetch )
    └ 그 명령어를 해석한다 ( Decode )
    └ 어떤 연산을 어디서 수행할지 ( Execute ) 제어 신호를 보낸다.
  • 특징 : ALU , 레지스터 , 메모리 , 입출력장치 간의 데이터 흐름을 통제한다
    └ 각 구성 요소에 언제 동작해야 하는지 명령하는 신호 발생기 역할
  • 예시 : 덧셈하라는 명령을 해석 → ALU 에 덧셈 명령 신호를 보낸다
  • 정리 : CU 는 지휘자 , CPU 내부의 모든 구성 요소를 제어한다.

 

 

3. 레지스터 ( Register )

  • 역할 : CPU 내부의 초고속 임시 저장장치
  • 특징 : 연산 도중의 데이터 , 명령어 주소 , 상태 등을 저장 └ 속도는 RAM 보다 훨씬 빠르며 , CPU 내부에서 직접 접근 가능 └ 크기는 작지만 , CPU 성능에 큰 영향을 준다.
  • 주요 종류▼
레지스터 이름 역할
PC ( Program Counter ) 다음에 실행할 명령어의 주소를 저장한다
IR ( Instruction Register ) 현재 실행 중인 명령어를 저장한다
ACC ( Accumulator ) 연산 결과의 임시 저장
MAR ( Memory Address Register ) 접근할 메모리 주소 저장
MDR ( Memory Data Register ) 메모리에서 읽거나 쓸 데이터 저장
Flag Register 연산 결과 상태 ( 음수 , 0 , Carry 등 ) 저장 
  • 정리 : 레지스터는 CPU 내부의 초고속 메모리 , 임시 저장 공간이다.

 

 

2. CPU 의 명령어 처리 과정 ( Instruction Cycle )

CPU 는 프로그램을 명령어 단위로 반복 수행한다.

이 과정을 명령어 사이클 ( Instruction Cycle ) 이라 부른다.

 

1. 인출 ( Fetch )

  • 프로그램 카운터 ( PC ) 가 가리키는 주소에서 명령어를 메모리에서 읽어온다.
  • 읽은 명령어는 IR ( 명령어 레지스터 ) 에 저장된다.
  • PC 는 다음 명령어를 위해 자동 증가된다.

 

2. 해석 ( Decode )

  • CU 가 IR 에 저장된 명령어를 해석한다.
  • 어떤 연산 ( 예 : ADD , SUB , JUMP 등 ) 을 수행해야 하는지 분석한다.

 

3. 실행 ( Execute )

  • CU 가 필요한 제어 신호를 발생시켜 ALU 가 연산을 수행한다.
  • 메모리 접근이 필요하다면 MAR / MDR 을 통해 데이터 읽기와 쓰기를 수행한다.

 

4. 저장 ( Store )

  • 연산 결과를 레지스터나 메모리에 저장한다.
  • 이후 PC 값이 업데이트되어 다음 명령으로 이동한다.

 

정리 : Fetch → Decode → Execute → Store → ( 반복 )

 

 

 

3. CPU의 보조 구조 요소

1. 버스 시스템 ( Bus )

CPU , 메모리 , 입출력장치 간 데이터 전달 통로이다.

버스 종류 역할
데이터 버스 ( Data Bus ) 실제 데이터를 전달한다
주소 버스 ( Address Bus ) 메모리 주소를 전달한다
제어 버스 ( Control Bus ) 읽기 / 쓰기 신호 , 인터럽트 등 제어 정보를 전달한다

 

 

2. 클록 ( Clock )

  • CPU 내부의 모든 동작은 클록 신호에 맞춰 동기적으로 수행한다.
  • 초당 클록 수 ( Hz ) 가 많을수록 더 많은 명령을 처리할 수 있다.
  • 예 : 3GHz CPU → 1초에 30억 번의 클록 신호 발생

 

3. 캐시 메모리 ( Cache )

  • CPU 와 메모리 사이의 속도 차이를 줄이기 위한 고속 저장장치이다.
  • 자주 사용되는 데이터나 명령어를 저장한다.
  • L1 , L2 , L3 캐시로 나뉘며 , L1 이 가장 빠르고 CPU 에 가장 가깝다.

 

4. 코어 ( Core )

  • 현대 CPU 는 하나의 칩 안에 여러 개의 독립적인 연산 단위를 넣는다.
  • 각 코어는 독립적으로 명령을 실행할 수 있다.
  • 예시 :
    └ 듀얼코어 → 2개의 작업을 동시에 처리한다
    └ 쿼드코어 → 4개의 작업을 병렬 처리한다

 

5. 파이프라인 ( Pipelining )

  • 여러 명령어를 겹쳐서 병렬로 처리하는 기술이다.
  • 예시 :
    └ 명령어 A 는 실행 단계
    └ 명령어 B 는 해석 단계
    └ 명령어 C 는 인출 단계에서 동시 진행
    └ → CPU 의 효율 극대화

 

 

4. CPU 동작 예시

int a = 5;
int b = 3;
int c = a + b;

CPU 내부에서는 다음과 같은 작업이 일어난다.

  1. 명령어 a 에 5 저장 → 메모리에 값 저장
  2. 명령어 b 에 3 저장 → 메모리에 값 저장
  3. 명령어 c = a + b →
    └ a 와 b 값을 레지스터로 가져온다 ( Fetch )
    └ ALU 에서 덧셈을 수행한다 ( Execute )
    └ 결과를 c 의 주소에 저장한다 ( Store )

 

 

 

정리

CPU 는 컴퓨터의 두뇌이다.

명령어를 가져오고 ( Fetch ) → 해석하고 ( Decode ) → 실행 ( Execute ) → 저장 ( Store )

하는 과정을 반복하면서 프로그램을 수행한다. 

'🖥️Computer Science' 카테고리의 다른 글

컴퓨터의 문자 체계 (ASCII , Unicode, UTF-8)  (0) 2026.04.07
메모리 구조와 작동 원리  (0) 2025.10.21
최초의 컴퓨터  (0) 2025.09.29
컴퓨터의 역사  (0) 2025.09.29
'🖥️Computer Science' 카테고리의 다른 글
  • 컴퓨터의 문자 체계 (ASCII , Unicode, UTF-8)
  • 메모리 구조와 작동 원리
  • 최초의 컴퓨터
  • 컴퓨터의 역사
DevHoChan
DevHoChan
맨땅에서 시작하는 코딩 도전
  • DevHoChan
    Debugging Life
    DevHoChan
  • 전체
    오늘
    어제
    • 분류 전체보기 (374)
      • 🕹️Game Life (1)
      • 🖥️Computer Science (5)
      • 📖TIL (141)
        • 🔥Projects (16)
        • 💡DevTips (5)
        • 🤔발생한 문제와 해결 (5)
        • 🔮Unity Graphics (5)
        • 🎤Interview (3)
        • ✅CodingTest (9)
      • 🚀Game Release (4)
      • 🧊Unity Basic (58)
        • 📌용어 사전 (1)
        • 에디터&인터페이스 (3)
        • 디버그 (1)
        • 라이프사이클 (4)
        • 게임오브젝트 (4)
        • 프리팹 (1)
        • 오브젝트풀링 (4)
        • 애트리뷰트 (2)
        • 트랜스폼 (4)
        • 물리&충돌 (1)
        • 프레임&델타타임 (4)
        • 코루틴&이벤트 (7)
        • 수학&보정함수 (3)
        • 디자인패턴 (9)
        • UGUI (3)
        • 벡터 ( Vector ) (3)
        • 씬 ( Scene ) (2)
        • 데이터 관리 (2)
      • ⭐C Sharp (99)
        • 📌용어 사전 (1)
        • 📌문법 사전 (6)
        • 메모리 관리 (3)
        • 00. 문법 (17)
        • 01. 변수 (3)
        • 02. 자료형 (2)
        • 03. 연산자 (6)
        • 04. 조건문 (2)
        • 05. 반복문 (2)
        • 06. 배열 (3)
        • 07. 메서드(함수) (7)
        • 08. 열거형 (3)
        • 09. 구조체 (2)
        • 10. 참조 (2)
        • 11. 객체 지향 (11)
        • 12. 델리게이트 (3)
        • 13. 디자인 패턴 (7)
        • 14. LINQ (1)
        • 📂▼자료구조 (2)
        • 15-1. 제네릭 (3)
        • 15-2. 배열 (4)
        • 15-3. 리스트 (2)
        • 15-4. 스택과 큐 (2)
        • 15-5. 딕셔너리 해시테이블 (2)
        • 15-6. 트리와 그래프 (3)
      • 📊Algorithm (16)
        • BigO (2)
        • 정렬 (4)
        • 셔플 (2)
        • 탐색 (6)
        • 최적화 (1)
      • 📝Game Design (16)
      • 🤖​AI Tools (12)
        • AI 리뷰 분석 (6)
        • Player2 (0)
        • 3D 모델링 (1)
        • 2D 스프라이트 (0)
        • 이미지 (2)
        • 사운드 (1)
        • 동영상 (1)
        • 문서 (1)
      • 🌍Network (6)
      • 🌱Github (11)
        • 기본 개념 (7)
        • 명령어 (1)
        • 도구 활용 (1)
      • ⚙️Visual Studio (5)
        • 🔧설치 및 환경설정 (2)
        • ⌨️HotKey (1)
        • 🚨디버깅 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    자료구조
    unity
    OOP
    csharp
    객체지향
    메모리관리
    게임기획
    디자인패턴
    gamedesign
    til
    CodingTest
    게임디자인
    algorithm
    자료형
    문법
    c#
    부트캠프
    유니티
    기획
    GitHub
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
DevHoChan
CPU 구조
상단으로

티스토리툴바