CPU의 명령어 처리 구조(Fetch, Decode, Execute)

2021. 4. 16. 21:00Layer7/Hardware

728x90

- 간단 설명

CPU의 명령어 처리 구조에서 Fetch, Decode, Execute는 각각

인출, 해석, 실행을 맡고있다.

추가적으로, Writeback 단계는 쓰기를 담당한다.

 

 

- Fetch

 

우선 첫 번째 필요한 것은 인출이다.

Fetch 단계에서는 CPU가 주기억 장치에서 명령어를 가져온다.

명령어를 가져오기 위해서는 두 가지 장치가 필요하다.

 

  1. 프로그램 카운터(Program counter, PC)
  2. 명령어 레지스터(Instruction Register, IR)

여기서 PC와 IR에 대해서 간단하게 정리를 해보자면

PC는 다음에 수행될 명령어의 주소값을 가지고 있는 *레지스터고

IR은 현재 실행중인 명령어를 기억하고 있는 *레지스터다.

 

* CPU가 요청을 처리하는 데 필요한 데이터를 일시적으로 저장하는 기억장치

 

Fetch 단계에서 PC는 Fetch 단계가 끝났을 때 다음 실행할 명령어의 주소값을 저장해준다.

그리고 IR은 현재 실행중인 명령어를 저장해준다.

 

CPU는 주기억장치에 있는 PC에서 명령어를 가져와 IR에 저장하고

PC의 값을 ++시켜 다음에 올 명령어를 가리키도록 만든다.

 

 

- Decode

 

두 번째로는 저장한 명령어를 실행해야 한다.

필요한 장치는 아래와 같다.

 

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

CU는 IR에 저장된 명령어들을 컴퓨터가 읽을 수 있도록 해독해준다.

 

Decode 단계에서는 IR에 저장된 명령어를 CU가 읽어 해독하고

그 값을 ALU로 보낸다.

 

 

- Execute

 

세 번째로 해독된 명령어를 실행을 해야하는데

해독한 명령어를 실행 할 수 있게 만들어주는 CPU 내부의 여러 레지스터가 필요하다.

필요한 장치들을 정리해보면 아래와 같다.

 

  1. 내부 레지스터(Internal Register)
  2. 산술논리연산장치(Arithmetic and Logic Unit, ALU)

내부 레지스터는 명령어를 처리하기 위한 공간을 만들어주는데

프로세서의 종류별 이름, 용도, 개수 등이 다르다.

 

* Processor, 디지털 시스템의 핵심 부분이며 프로그램을 기억장치로부터 읽어

여러가지 데이터를 처리하고, 각종 장치를 구동시킨다. 

 

ALU는 Decode 단계에서 가장 중요한 역할인 데이터 처리 기능을 담당한다.

 

내부 레지스터가 만들어준 공간을 활용하여 ALU는 산술/논리 연산을 진행한다.

연산이 종료되면 ALU는 연산값을 다른 레지스터로 보낸다.

 

 

- 이후에는 위와 같은 과정이 반복된다.

728x90