명령어의 구조에 대해 살펴 보았으니 이제 프로세서가 어떻게 동작되고 명령어가 어떻게 실행되는지 알아 보자.
이전 글: [운영체제] 명령어의 구조
📌 프로세서의 동작 과정
프로세서의 동작 과정은 크게 4가지로 나눠볼 수 있다.
- 인출: 메모리의 데이터를 CPU의 레지스터로 가져오는 과정
- 해석: 인출한 명령어를 바탕으로 CPU의 레지스터를 제어 장치로 가져와 해석하는 과정
- 실행: 해석한 명령어를 통하여 산술/논리 장치(ALU)에서 계산하고 누산기에 일시적으로 보관하는 과정
- 저장: 계산되어 누산기에 보관된 데이터를 메모리에 저장하는 과정
📌 명령어의 실행
이제 명령어의 실행 과정을 알아 보자.
인출
- 프로그램 카운터(PC)에는 다음에 실행할 명령어의 주소가 있다.
- 명령어 주소를 메모리 주소 레지스터(MAR)로 전달한다.
- 메모리 주소 레지스터(MAR)에 저장된 값으로 메모리(RAM)에 접근한다.
- 메모리(RAM)에 저장된 명령어를 가져와 메모리 데이터 레지스터(MDR)에 저장한다.
해석
- 데이터 레지스터(MDR)의 명령어를 명령어 레지스터(IR)에 저장한다.
- 프로그램 카운터에 다음에 실행할 명령어의 주소를 할당한다(주로 다음 메모리 주소의 간격, 32비트 프로세서의 경우 c언어의 int는 4, 만큼 더한다)
- 명령어 레지스터(IR)에 저장된 명령어는 제어 장치(CU)로 저장되어 해석된다
실행
- 메모리 주소 레지스터(MAR)에, 해석한 명령어의 주소를 저장한다.
- 메모리 주소 레지스터(MAR)에 저장된 값으로 메모리(RAM)의 주소에 접근한다.
- 메모리(RAM)에 있는 데이터를 가져와 메모리 데이터 레지스터(MDR)에 저장한다.
- 메모리 데이터 레지스터(MDR)의 데이터를 누산기(ACC)에 저장한다.
저장
📌 참고 영상
1. CPU는 어떻게 작동할까? | bRd 3D
영상으로 이해하기 쉬운 영상이 있어서 이를 참고 했다.
워낙 설명이 잘 되어 있어서 추천한다.
2. How do computers read code? | Frame of Essence
컴퓨터가 코드를 읽는 과정을 애니메이션을 통해 직관적으로 잘 설명해줘서 추천한다.
'운영체제 > 컴퓨터 시스템 구조' 카테고리의 다른 글
시스템 호출(System Call) (0) | 2023.04.16 |
---|---|
인터럽트(Interrupt)와 실행 과정, 역할 (0) | 2023.04.09 |
[운영체제] 명령어의 구조 (0) | 2023.03.23 |
[운영체제] 프로세서(CPU)의 구성과 메모리 계층 구조 (0) | 2023.03.20 |
운영체제의 정의와 폰 노이만 구조 (0) | 2023.03.19 |
댓글