CS/컴퓨터구조

CPU 내 명령어 실행 흐름

민톨이 2025. 5. 7. 19:51
728x90

CPU 내에는 ALU(산술논리연산장치), 제어장치, 레지스터가 있다.

 

- ALU: 컴퓨터 내부에서 수행되는 계산을 수행

- 제어장치: 제어 신호라는 전기 신호를 내보내고 명령어를 해석하는 장치

   ex. CPU가 메모리에 저장된 값을 읽고 싶을 때 메모리를 향해 메모리 읽기라는 제어 신호를 보냄

- 레지스터: CPU 내부의 작은 임시 저장 장치 / 프로그램을 실행하는 데 필요한 값들을 임시로 저장 / CPU 내부에는 여러 개의 레지스터가 존재

 

+ 메모리(RAM)는 CPU 외부에 있지만, CPU가 데이터를 가져오거나 저장하기 위해 항상 메모리와 통신해야 한다.
즉, 명령어를 실행하는 중심은 CPU지만, 필요한 데이터는 대부분 메모리에 있기 때문에 외부와도 계속 연결된다.

 


 

CPU내 이런 장치들이 명령어를 처리하는 흐름을 간단히 적어보도록 하겠다.

 

F -> D -> E  사이클

1. 명령어 인출 (Instruction Fetch)

  • 제어장치프로그램 카운터(PC) 가 가리키는 메모리 주소를 확인
    • PC는 현재 실행 중인 프로그램에서 다음에 실행할 명령어가 있는 메모리 주소를 가리킨다
  • 해당 주소에 저장된 명령어를 메모리로부터 읽기 위해 제어신호를 보냄 (Memory Read)
  • 메모리는 해당 명령어를 데이터 버스를 통해 CPU로 전달
  • 명령어는 명령어 레지스터(IR) 에 저장됨

2. 명령어 해석 (Instruction Decode)

  • 제어장치는 명령어 레지스터(IR)에 저장된 명령어를 해독
    • IR은 인출된 명령어를 임시로 저장하여 제어장치가 해석할 수 있게 한다 
    • 어떤 연산인지? (ex. 덧셈, 저장, 비교 ...etc)
    • 어떤 오퍼랜드가 필요한지? (레지스터, 메모리 주소 ...etc)
      • 오퍼랜드: 연산에 사용되는 데이터(혹은 저장된 위치!)
  • 필요한 경우 추가로 메모리에서 데이터를 가져오도록 준비

3. 명령어 실행 (Execute)

  • 해석된 명령어에 따라 ALU(산술 논리 장치) 를 동작시키거나,
  • 메모리 읽기/쓰기, 레지스터 간 데이터 이동 등 수행
  • 결과를 레지스터 또는 메모리에 저장

4. 결과 저장 및 다음 명령어 준비

  • 연산 결과가 목적지에 저장된 후,
    • 제어장치는 PC 값을 증가시켜 다음 명령어로 이동
      • PC 값을 증가시키지만 분기 명령(Jump 등)의 경우 PC는 단순히 증가하지 않고 다른 주소로 점프할 수도 있다
    • 다시 Fetch → Decode → Execute 사이클 반복

 

 

 

'CS > 컴퓨터구조' 카테고리의 다른 글

이진수의 음수 표현 / 플래그  (0) 2025.05.01