본문 바로가기
CS 공부/컴퓨터 구조

명령어 사이클

by 학습하는 청년 2025. 1. 2.

최종 수정 : 25.1.2

명령어 사이클

CPU는 기억장치에 저장되어 있는 명령어들을 인출하여 실행함으로써 실제적인 작업을 수행하게 된다. 이처럼 명령어는 두 단계를 하나의 사이클로 수행하는데 이를 명령어 사이클(instruction cycle)이라고 한다. CPU가 기억장치로부터 명령어를 읽어 오는 명령어 인출(instruction fetch) 단계와 인출된 명령어를 실행하는 명령어 실행(instruction execution) 단계는 명렁어 사이클의 부사이클(subcycle)이 되며, 명령어 인출 단계는 인출 사이클(fetch cycle), 명령어 실행 단계는 실행 사이클(execution cycle)이라고 한다.


1. 마이크로 연산

명령어 사이클의 부사이클인 명령어 인출 사이클과 실행 사이클은 여러 단계로 이루어지며, 이러한 각 단계에서 실제로 수행되는 동작은 프로그램 실행의 가장 기본 단위인 마이크로 연산이다.

기호 적용되는 곳
대문자와 숫자 레지스터 R, MAR, R2
아래첨자 레지스터 내의 비트 R1, R2
괄호 레지스터 내의 위치 1(1 - 5), M(MAR)
화살표 정보 전달 R ← B
콜론 제어 기능 P : R → B
쉼표 2개 이상의 마이크로 연산 구분 R ← B, MAR ← K
  • 대문자 또는 대문자와 숫자 : 레지스터를 문자 기호로 나타낸다.
  • 레지스터를 나타내는 문자 기호의 아래첨자 : 네지스터 내의 비트 위치를 나타낸다.
  • 괄호 : 레지스터 내의 위치를 나타내며, 기억 장치에서는 주소가 지정하는 기억 장치 위치를 나타내는 용도로 많이 사용된다.
  • 화살표 : 정보의 전달을 나타낸다.
  • 콜론 : 제어를 수행하는 기능을 나타낸다.
  • 쉼표 : 2개 이상의 마이크로 연산을 구분하는데 사용된다.

2. 명령어 인출 사이클

명령어 인출 동작은 각 명령어 사이클의 시작 단게에서 프로그램 카운터(PC)가 가리키는 주기억 장치의 위치로부터 프로그램 명령어를 호출하는 과정이다. 따라서 인출 사이클은 CPU가 기억 장치에서 명령어를 읽어오는 단계이다.

CPU 클록 마이크로 연산 동작
t0 MAR ← PC PC의 내용을 MAR로 전송
t1 MBR ← M(MAR)
RC ← PC + 1
해당 주소 기억장치읨 여령어를 MBR에 적재
PC의 내용이 1 증가
t2 IR ← MBR MBR에 있는 명령어가 IR로 이동
  • 명령어 인출 사이클에서는 CPU 클록 주기 t0, t1, t2가 필요하다.
  • CPU 클로기 100메가헤르츠(클록 주기는 10나노초)이면 인출 사이클의 시간은 다음과 같이 계산된다.
    10ns * 3 = 30ns

3. 명령어 실행 사이클

CPU는 명령어 실행 사이클 동안 명령어 코드를 해독하고 그 결과에 따라 필요한 연산을 수행한다.

  • 데이터 이동 : CPU와 기억장치 간 혹은 CPU와 I/O 장치 간에 데이터를 이동한다.
  • 데이터 처리 : 데이터에 대하여 산술 혹은 논리 연산을 수행한다.
  • 데이터 저장 : 연산결과 데이터 혹은 입력장치로부터 읽어들인 데이터를 기억장치에 저장한다.
  • 프로그램 제어 : 프로그램의 실행 순서를 결정한다.

 

명령어 실행 사이클에서 수행되는 마이크로 연산은 명령어에 따라 다르다.

다음은 기억 장치에 저장된 데이터를 AC의 내용과 더하고 그 결과를 다시 AC에 저장하는 ADD 명령어이다.

CPU 클록 마이크로 연산 동작
t0 MAR ← IR(addr) MBR에 저장될 데이터의 기억장치 주소를 MAR로 전송
t1 MBR ← M(MAR) 저장할 데이터를 MBR로 이동
t2 AC ← AC + MBR MBR의 데이터와 AC의 내용을 더하여 그 결과를 AC에 저장

 

명령어 실행 사이클엣 소요되는 시간은 명령어 인출 시간과 명령어 실행 시간을 합한 것이다. 즉, 하나의 명령어가 완전하게 실행되는 시간은 부사이클 2개가 수행되는 시간의 합이다.


참고

독학사 교재

'CS 공부 > 컴퓨터 구조' 카테고리의 다른 글

RISC와 CISC  (0) 2025.01.02
명령어 파이프라이닝  (0) 2025.01.02
중앙처리장치 구성요소  (0) 2025.01.01
명령어 종류  (0) 2025.01.01
주소지정방식  (0) 2025.01.01

댓글