컴퓨터 구조 | CPU 파이프라인

Faithful Dev·2025년 1월 24일

컴퓨터 공학

목록 보기
13/81

CPU 기본 실행 구조 (CPU Execution Structure)

정의

CPU 기본 실행 구조는 명령어를 가져오고, 해석하고, 실행하는 과정을 정의한다. 이는 컴퓨터가 명령어를 처리하는 가장 기본적인 과정으로, 폰 노이만 구조의 Fetch-Decode-Execute 사이클을 따른다.

단계

  1. Fetch (명령어 인출)
    • 메모리에서 명령어를 가져온다.
    • 프로그램 카운터(PC)는 현재 실행 중인 명령어의 주소를 가리키며, Fetch 후 다음 명령어 주소로 증가한다.
  2. Decode (명령어 해석)
    • 가져온 명령어를 해석하여 어떤 작업을 수행할지 결정한다.
    • 명령어는 Opcode(작업 종류)Operand(작업 대상)으로 나뉜다.
  3. Execute (명령어 실행)
    • 명령어에 따라 ALU(산술 논리 장치)에서 연산을 수행하거나, 데이터를 이동하거나, 분기를 수행한다.
  4. Write-back (결과 저장)
    • 연산 결과를 레지스터 또는 메모리에 저장한다.

CPU 명령어 구조 (Instruction Format)

정의

CPU 명령어 구조는 명령어의 형식과 구성 요소를 정의하며, CPU가 명령어를 해석하고 처리하기 위해 설계된다.
명령어 구조는 CPU 아키텍처에 따라 달라지지만, 일반적으로 아래의 구성 요소를 포함한다.

구성 요소

  1. Opcode (연산 코드)
    • 명령어가 수행해야 할 작업을 지정한다.
    • 예: ADD(덧셈), LOAD(데이터 읽기), JUMP(분기).
  2. Operand (피연산자)
    • 작업 대상 데이터를 지정한다.
    • 데이터는 레지스터, 메모리 주소, 상수 등으로 제공된다.
  3. 주소 필드 (Address Field)
    • 메모리에서 데이터를 참조하거나 저장할 주소를 지정한다.
  4. 형식 (Format)
    명령어는 길이나 구조에 따라 분류된다:
    - 고정 길이 명령어: RISC 프로세서에서 자주 사용. 간단하고 빠름.
    - 가변 길이 명령어: CISC 프로세서에서 사용. 유연성이 높음.

CPU 파이프라인 (CPU Pipeline)

정의

CPU 파이프라인은 명령어 처리 단계를 병렬화하여 CPU의 실행 효율을 높이는 기술이다.

  • 기본적으로 Fetch, Decode, Execute 단계를 나누고 각 단계를 동시에 처리한다.

동작 원리

  • 파이프라인은 각 명령어가 다른 단계에 있을 때 병렬로 처리한다.
    • 예:
      • 1번 명령어가 Fetch 중이면,
      • 2번 명령어는 Decode 중,
      • 3번 명령어는 Execute 중.

단계

  1. Instruction Fetch (IF): 명령어를 메모리에서 가져옴.
  2. Instruciton Decode (ID): 명령어를 해석하고 필요한 레지스터를 결정.
  3. Execute (EX): 명령어 실행 및 ALU 계산 수행.
  4. Memory Access (MEM): 데이터 메모리 읽기/쓰기 수행.
  5. Write-back (WB): 연산 결과를 레지스터에 저장.

파이프라인의 이점

  • 병렬 처리로 인해 명령어 실행 속도가 크게 향상.
  • CPU 자원의 효율적 활용.

파이프라인의 문제점

  1. 파이프라인 해저드 (Pipeline Hazards):
    파이프라인이 원활히 진행되지 못하는 문제.
    - 데이터 해저드: 한 명령어가 이전 명령어의 결과를 필요로 할 때.
    - 제어 해저드: 분기 명령어로 인해 다음 명령어를 예측하지 못할 때.
    - 구조적 해저드: 하드웨어 자원 충돌 발생 시.
  2. 명령어 종속성:
    하나의 명령어가 완료되기 전에 결과를 필요로 하는 명령어가 등장할 경우 처리 속도가 느려짐.

정리

  • CPU의 기본 실행 구조는 명령어를 처리하기 위한 기본 프로세스이며,
  • 명령어 구조는 CPU가 이해할 수 있는 명령어의 형식을 정의하고,
  • 파이프라인은 이러한 실행 구조를 최적화하여 동시에 여러 명령어를 처리함으로써 효율성을 극대화한다.
profile
Turning Vision into Reality.

0개의 댓글