둘셋 개발!

[운영체제] CPU란, CPU의 구조 (+레지스터 종류) 본문

운영체제

[운영체제] CPU란, CPU의 구조 (+레지스터 종류)

23 2023. 8. 3. 19:06

CPU란

명령어를 해석하고 실행하는 장치로, 컴퓨터의 두뇌 같은 역할을 한다. 중앙처리 장치라고도 부른다.

작업을 처리하기 위해 연산도 하고 메모리에서 데이터도 가져온다. 그리고 이를 위해서 다른 시스템을 제어한다.

 

(자꾸 cpu와 운영체제 개념이 머릿속에서 혼동이 된다..

cpu도 모든 시스템을 제어한다는 것이 운영체제가 자원을 관리한다는 것과 헷갈렸었다.

당연히 서로 전혀 다른 개념이지만! 정리해보자면 작업을 처리하려면 cpu를 할당받아야 하는데,

cpu는 한번에 하나의 작업만 처리할 수 있기 때문에 운영체제가 cpu를 어떤 작업에 할당할지를 결정하고,

cpu는 할당받은 작업을 처리하기 위해 다른 시스템을 제어하면서 연산작업을 실행한다.)

 


CPU 구조

cpu구조

(이미지 출처: https://mk28.tistory.com/15)

 

ALU(산술논리 연산장치), 제어장치, 레지스터로 나뉜다.

간단히 말하면 ALU에서는 연산을 진행하고 연산을 수행하기 위한 데이터를 제어장치가 가져오도록 제어하고 레지스터에 그 데이터를 담기도 하고 결과값을 저장하기도 한다.

 

ALU

산술 연산과 논리 연산을 수행한다.

주로 레지스터간의 데이터 연산을 한다.

 

제어장치

CPU의 명령어 해석과 실행, 레지스터 간 데이터 이동, 메모리 접근 등의 동작을 조정한다.

 

 

레지스터

레지스터는 크게 2가지로 나눌 수 있다.

사용자 프로그램으로 인해 바뀔 수 있는 일반 레지스터, 바뀔 수 없는 특수 레지스터이다.

 

1. 일반 레지스터 (범용 레지스터)

- 데이터 레지스터 (Data register) -> DR

  : 말그대로 데이터를 저장하는 레지스터 이다.

   메모리에서 가져온 데이터를 임시로 보관할 때 사용한다.

 

- 주소 레지스터 (Address register) ->AR

  : 데이터 또는 명령어의 주소의 값을 저장하는 레지스터 이다.

 

 

2. 특수 레지스터

- 프로그램 카운터 (Program counter) -> PC

    : 다음에 실행할 명령어의 주소를 가르킴

 

- 명령어 레지스터 (Instruction register) -> IR

   : 현재 실행 중인 명령어를 저장

 

- 메모리 주소 레지스터 (Memory Address Resiter) -> MAR

   : 메모리에서 데이터를 가져오거나, 보낼 때 그 데이터의 주소를 지정하는데 사용

 

- 메모리 데이터 레지스터 (Memory Data Resiter) -> MDR

   : 메모리에서 가져온 데이터나 옮겨갈 데이터를 임시로 저장

 

 

여기서 내가 헷갈리는 점은 메모리 데이터 레지스터(MDR)과 데이터 레지스터(DR)은 뭐가 다른 것인가..

둘다 데이터를 저장하는 레지스터이긴 하나,

DR       ->  cpu 내부에서 데이터를 연산, 처리하기 위해 사용됨

MDR   ->  cpu와 메모리 사이에서 데이터를 전송하기 위해 사용됨

 

이렇게 구분하면 된다.

 

(소개한 레지스터 말고도 다른 레지스터들도 있다.)