야금야금

#1 컴퓨터 시스템의 구성요소 & CPU 구조 및 동작 과정 본문

SWING/컴퓨터구조

#1 컴퓨터 시스템의 구성요소 & CPU 구조 및 동작 과정

hyk0425 2020. 4. 12. 17:44

[컴퓨터 구조 WEEK1]27기황윤경_문제.docx
0.02MB
[컴퓨터 구조 WEEK1]27기황윤경_답안.docx
0.01MB

컴퓨터 구조에 대해 학습하고 프로그램 언어가 어떻게 실행되는지 공부해보자

 

 

[컴퓨터 시스템의 기본적인 구성요소]

* 중앙처리장치(CPU) : 컴퓨터의 모든 장치의 동작을 제어하고 명령을 실행한다. 사람의 두뇌와 같은 역할을 수행하고

산술 논리 연산장치, 레지스터, 제어장치, 내부 버스로 구성된다.

 

* 산술논리연산장치 : 산술 연산과 논리 연산 등의 실질적인 연산을 처리하는 장치.

산술 및 부울 연산기, 상태플러그, 이동기, 보수기로 구성된다.

 

* 레지스터 : CPU내에서 데이터를 임시로 저장하고 처리하는 기억 장소이다. 처리속도가 빠르다.

기억장치 버퍼 레지스터, 명령어 레지스터, 기억장치 주소 레지스터, 명령어 해독기, 프로그램 카운터로 구성된다.

 

* 제어장치 : 명령어를 해독하고 제어신호를 해당장치에 전달하는 장치이다.

 

* 주기억장치 : 컴퓨터 내부에서 데이터를 저장하고있는 장치이다. CPU와 통신하며 데이터를 처리한다.

* 보조 기억장치 : 컴퓨터 외부에서 데이터를 저장하는 장소이다.

 

 

 

[CPU 동작과정]

 

우선 CPU에서 명령어는 다음과 같은 4가지의 수행과정을 거친다. 각 과정을 자세하게 살펴보도록 하자

1. 인출 (Fetch)

명령어는 기본적으로 주기억장치에 저장되어있다. 따라서 중앙처리장치와 주기억장치가 통신하며 명령어를 처리하게 되는데 두 장치의 속도 차이로 인해 주기억장치의 명령어를 CPU에 임시로 저장한다. 자세한 과정은 다음과 같다

 

우선 명령어 수행을 시작할 주소를 프로그램 카운터에 저장한다. (프로그램 카운터는 포인터와 비슷한 역할을 하는데 명령어 수행을 시작할 주소를 저장한다. 오른쪽 그림의 경우 M1값이 프로그램 카운터에 저장된다.) 이 주소 값을 통해 주기억장치의 해당 주소에서 명령어를 받아온다. 이때 명령어는 연산 코드와 기억장치 주소로 구성되어있다.

받아온 명령어는 기억장치 버퍼 레지스터에 임시로 저장되는데 이는 주기억장치와 중앙처리장치(CPU)의 속도차이를 완화하기위함이다. 기억장치버퍼레지스터에 저장된 데이터는 다시 명령어 레지스터에 저장된다.

 

2. 해독 (Decode)

명령어 레지스터에 저장된 명령어에서 연산 코드는 명령어 해독기에 들어가 해독되고 수행할 연산을 결정해서 연산장치에 전달된다. 기억장치 주소는 기억장치 주소 레지스터에 저장되고 연산장치에 들어가게 된다.

예를 들어, add num1 num2라는 명령어가 있을 때 add는 연산 코드로서 명령어 해독기에 들어가 더하라는 뜻으로 해독되고 두 개의 숫자 num1, num2의 주소가 기억장치 주소 레지스터에 저장되어 연산장치로 들어가게 된다.

 

3. 실행 (Execute)

위의 해독 과정에서 명령어는 더하라는 뜻으로 해독이 되었을 뿐 실제 명령어의 수행은 이 과정에서 일어나게 된다.

제어장치에서 발생된 제어신호에 의해 산술 논리 연산장치(ALU)가 동작하여 연산 결과를 처리한다. 이때 비로소 더하는 연산이 수행되는 것이다. 명령어 레지스터에서 일련의 과정이 끝난 후 프로그램 카운터는 다음에 처리할 명령어의 주소 값을 갖게 된다.

 

4. 저장 (Store)

위에서 수행된 수행 결과를 다시 주 기억장치에 저장하면 CPU 명령어 수행과정은 끝나게 된다.

 

 

 

 

 

 

참고) 2019 컴퓨터 구조 호준원교수님 강의노트,
디지털논리와 컴퓨터 설계, Harris et al. (조영완 외 번역), 사이텍미디어, 2007, 
컴퓨터 구조와 원리 (비주얼 컴퓨터 아키텍처), 신종홍 저, 한빛미디어, 2011