본문 바로가기
운영체제/컴퓨터 시스템 구조

[운영체제] 프로세서의 동작 과정과 명령어의 실행

by Dev.Andy 2023. 3. 24.

명령어의 구조에 대해 살펴 보았으니 이제 프로세서가 어떻게 동작되고 명령어가 어떻게 실행되는지 알아 보자.

 

이전 글: [운영체제] 명령어의 구조

 

 

📌 프로세서의 동작 과정

프로세서의 동작 과정은 크게 4가지로 나눠볼 수 있다.

 

  1. 인출: 메모리의 데이터를 CPU의 레지스터로 가져오는 과정
  2. 해석: 인출한 명령어를 바탕으로 CPU의 레지스터를 제어 장치로 가져와 해석하는 과정
  3. 실행: 해석한 명령어를 통하여 산술/논리 장치(ALU)에서 계산하고 누산기에 일시적으로 보관하는 과정
  4. 저장: 계산되어 누산기에 보관된 데이터를 메모리에 저장하는 과정

 

📌 명령어의 실행

이제 명령어의 실행 과정을 알아 보자.

 

실행 과정을 위의 이미지와 비교하면서 살펴 보자.

이미지: bournetocode.com

 

인출

  1. 프로그램 카운터(PC)에는 다음에 실행할 명령어의 주소가 있다.
  2. 명령어 주소를 메모리 주소 레지스터(MAR)로 전달한다.
  3. 메모리 주소 레지스터(MAR)에 저장된 값으로 메모리(RAM)에 접근한다.
  4. 메모리(RAM)에 저장된 명령어를 가져와 메모리 데이터 레지스터(MDR)에 저장한다.

해석

  1. 데이터 레지스터(MDR)의 명령어를 명령어 레지스터(IR)에 저장한다.
  2. 프로그램 카운터에 다음에 실행할 명령어의 주소를 할당한다(주로 다음 메모리 주소의 간격, 32비트 프로세서의 경우 c언어의 int는 4, 만큼 더한다)
  3. 명령어 레지스터(IR)에 저장된 명령어는 제어 장치(CU)로 저장되어 해석된다

실행

  1. 메모리 주소 레지스터(MAR)에, 해석한 명령어의 주소를 저장한다.
  2. 메모리 주소 레지스터(MAR)에 저장된 값으로 메모리(RAM)의 주소에 접근한다.
  3. 메모리(RAM)에 있는 데이터를 가져와 메모리 데이터 레지스터(MDR)에 저장한다.
  4. 메모리 데이터 레지스터(MDR)의 데이터를 누산기(ACC)에 저장한다.

 

저장

 

 

📌 참고 영상

1. CPU는 어떻게 작동할까?  | bRd 3D

영상으로 이해하기 쉬운 영상이 있어서 이를 참고 했다.

워낙 설명이 잘 되어 있어서 추천한다.

 

CPU는 어떻게 작동할까? | bRd 3D

 

2. How do computers read code? | Frame of Essence

컴퓨터가 코드를 읽는 과정을 애니메이션을 통해 직관적으로 잘 설명해줘서 추천한다.

How do computers read code? | Frame of Essence

 

댓글