Notice
Recent Posts
Recent Comments
Archives
반응형
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Today
Total
09-20 07:02
250x250
관리 메뉴

꿈꾸는 개발자의 블로그

[CS] 컴퓨터 구조 (2) : CPU의 동작 과정 본문

Interview/Computer Science

[CS] 컴퓨터 구조 (2) : CPU의 동작 과정

aldrn29 2022. 7. 1. 23:40

컴퓨터 HW의 기본 구성요소 중 하나인 중앙처리장치(CPU)에 대하여 좀 더 자세히 알아보자!

 


 

CPU의 동작 과정

  1. 주기억장치는 입력장치에서 입력받은 데이터 또는 보조기억장치에 저장된 프로그램 읽어온다.
  2. CPU는 프로그램을 실행하기 위해 주기억장치에 저장된 프로그램 명령어와 데이터를 읽어와 처리하고, 결과를 다시 주기억장치에 저장한다.
  3. 주기억장치는 처리 결과를 보조기억장치에 저장하거나 출력장치로 보낸다.
  4. 제어장치는 1~3 과정에서 명령어가 순서대로 실행되도록 각 장치를 제어한다.

 

이처럼 CPU는 프로그램 실행하기 위해 주기억장치에서 명령어를 순차적으로 인출하여 해독하고 실행하는 과정을 반복한다.  CPU가 주기억장치에서 한번에 하나의 명령어를 인출하여 실행하는데 필요한 일련의 활동을 명령어 사이클이라고 말하며, 이는 인출/실행/간접/인터럽트 사이클로 나누어진다.

 

명령어 세트

CPU가 실행할 명령어의 집합 : 연산 코드(Operation Code) + 피연산자(Operand)로 이루어진다.

 

  • 연산 코드 : 실행할 연산, 연산, 제어, 데이터 전달, 입출력 기능을 가짐
  • 피연산자 : 필요한 데이터 또는 저장 위치, 주소, 숫자/문자, 논리 데이터 등을 저장

 

CPU에서의 명령어 사이클

CPU에서의 명령어 사이클

 

한 개의 명령어를 실행하는데 필요한 전체 처리 과정이며 2개의 부사이클로 분리한다.

 

  • 인출 사이클 : CPU가 기억장치로부터 명령어를 읽어오는 단계
  • 실행 사이클 : 명령어를 해독하고 실행하는 단계 (인출 사이클때보다 작업량이 더 많기 때문에, 오늘날 컴퓨터는 실행 사이클을 다수의 단계로 분할)
  설명 예시
전송 연산 CPU내 레지스터와 메모리 사이에 데이터를 교환 적재(Load), 저장(Store)
처리 연산 산술논리장치를 사용하여 데이터를 조작 산술연산, 논리연산. 데이터형식 변환 연산 등
제어 연산 프로그램의 실행 순서를 제어 순차, 무조건 분기, 조건 분기, 프로시져 호출/복귀, 인터럽트
입출력 연산 CPU 내 레지스터와 I/O장치 간에 데이터를 이동  

 

인출 사이클과 실행 사이클에 의한 명령어 처리 과정

  1. PC에 저장된 주소를 MAR로 전달한다.
  2. 저장된 내용을 토대로 주기억장치의 해당 주소에서 명령어 인출한다.
  3. 인출한 명령어를 MBR에 저장한다.
  4. 다음 명령어를 인출하기 위해 PC(Program Counter) 값 증가시킨다. (인출 사이클에서 가장 중요한 부분)
  5. 메모리 버퍼 레지스터(MBR)에 저장된 내용을 명령어 레지스터(IR)에 전달한다.

 

인출하기까지의 과정

T0 : MAR ← PC
T1 : MBR ← M[MAR], PC ← PC+1
T2 : IR ← MBR

 

인출한 이후, 명령어를 실행하는 과정

T0 : MAR ← IR(Addr)		// ADD addr 명령어 연산
T1 : MBR ← M[MAR]
T2 : AC ← AC + MBR

이미 인출이 진행되고 명령어만 실행하면 되기 때문에 PC를 증가할 필요가 없다.

IRMBR의 값이 이미 저장된 상태를 의미하고, 따라서 ACMBR을 더해주기만 하면 된다.

 

728x90
728x90
Comments