본문 바로가기

CS-Study

컴퓨터 구조 : CPU 작동 원리

728x90

📗 CPU의 동작 과정

1. 메모리는 입력장치에서 입력받은 데이터 또는 보조기억장치에 저장된

프로그램을 읽어온다.

2. CPU는 프로그램을 실행하기 위해 메모리에 저장된 프로그램 명령어와

데이터를 읽어와 처리하고 결과를 다시 메모리에 저장한다.

3. 메모리는 처리 결과를 보조기억장치에 저장하거나 출력장치로 보낸다.

4. 제어장치는 1-3 과정이 명령어의 순서대로 실행하도록 각 장치를 제어한다.

 

CPU가 실행할 명령어의 집합을 '명령어 세트'라고 한다.

명령어 세트

연산코드와 피연산자로 이루어진다.

연산코드 : 실행할 연산, 연산, 제어, 데이터 전달, 입출력 기능을 가짐

피연산자 : 필요한 데이터나 저장 위치, 주소, 문자/숫자, 논리 데이터를 저장

 

CPU는 프로그램을 실행하기 위해 메모리에서 명령어를 순차적으로 인출하여 해독하고

실행하는 과정을 반복한다.

CPU가 메모리에서 한번에 하나의 명령어를 인출하여 실행하는데 필요한 일련의 활동을

'명령어 사이클' 이라고 한다.

 

명령어 사이클은 메모리로부터 명령어를 읽어오는 '인출 사이클'과 

명령어를 실행하는 단계인 '실행 사이클'로 분리된다.

 

 

📗 인출 사이클

 

t0 : MAR <- PC
t1 : MBR <- M[MAR], PC <- PC + 1
t2 : IR <- MBR

 

첫 주기 t0에서 프로그램 카운터에 저장된 명령어 주소를 CPU 내부 버스를 통해 
메모리 주소 레지스터(MAR)로 보낸다.

두번째 주기 t1에서 MAR가 지정하는 기억장치 주소로부터 명령어를 읽어와
데이터 버스를 통해 메모리 버퍼 레지스터(MBR)에 저장한다.
동시에 다음 명령어를 인출하기 위해 PC가 1 증가한다.

세번째 주기 t2에서 MBR에 저장된 명령어를 명령어 레지스터(IR)에 저장한다.

 

📗 실행 사이클

실행 사이클은 인출 사이클이 끝나고 명령어를 실행하는 과정이다.

t0 : MAR <- IR(addr)
t1 : MBR <- M[MAR]
t2 : AC <- MBR

 

인출이 끝났고 명령어를 실행하기만 하면 되기 때문에 PC는 증가하지 않는다.

첫번재 주기 t0에서 IR에 있는 피연산자를 MAR에 저장한다.

두번째 주기 t1에서 저장할 데이터를 MAR가 지정하는 기억장치 주소로부터 읽어서
MBR에 저장한다.

세번째 주기 t2에서 MBR에 저장된 데이터를 ALU에서 연산하여 그 결과를 누산기(AC)에
저장한다.

 

728x90
반응형