명령어

Ⅰ. CPU의 명령어 실행 기본 단위, 명령어 사이클의 개요
      가. 명령어 사이클(instruction cycle)의 정의

  • CPU가 한 개의 명령어를 실행하는 데 필요한 전체 처리 과정으로서, CPU가 프로그램 실행을 시작한 순간부터 전원을 끄거나 회복 불가능한 오류가 발생하여 중단될 때까지 반복

 

Ⅱ. 기본 명령어 사이클 개념도 및 내부 레지스터들
      가. 기본 명령어 사이클 개념도
 

  • 인출 사이클(fetch cycle) : CPU가 기억장치로부터 명령어를 읽어오는 단계
  • 실행 사이클(execution cycle) : 명령어를 실행하는 단계

 

      나. 명령어 실행에 필요한 레지스터들

구   분

설   명

 프로그램 카운터

 (Program Counter: PC)

 - 다음에 인출할 명령어의 주소를 가지고 있는 레지스터

 - 각 명령어가 인출된 후에는 자동적으로 일정 크기(한 명령어 길이)만큼 증가

 - 분기(branch) 명령어가 실행되는 경우에는 목적지 주소로 갱신

 누산기

 (Accumulator: AC)

 - 데이터를 일시적으로 저장하는 레지스터.

 - 레지스터의 크기는 CPU가 한 번에 처리할 수 있는 데이터 비트 수(단어 길이)

 명령어 레지스터

 (Instruction Register: IR)

 - 가장 최근에 인출된 명령어 코드가 저장되어 있는 레지스터

 기억장치 주소 레지스터

 (Memory Address Register:  MAR)

 - PC에 저장된 명령어 주소가 시스템 주소 버스로 출력되기 전에 일시적으로 저장되는 주소 레지스터

 기억장치 버퍼 레지스터

(Memory Buffer Register: MBR)

 기억장치에 쓰여질 데이터 혹은 기억장치로부터 읽혀진 데이터를 일시적으로 저장하는 버퍼 레지스터

 

Ⅲ. 시스템 버스 및 레지스터가 반영된 CPU 내부 구조


[참고] CPU 메이저 상태 (Major State)

  • 메이저 상태 : 레지스터와 중앙처리장치가 무엇을 하고 있는가를 나타냄.
  • 타이밍 상태 : 시간에 관한 정보를 기억
  • 메이저 상태의 단계별 수행 상태

* Fetch Cycle (인출 사이클)
      명령어 해석. 실행할 명령어를 메모리로부터 읽어낸다.
      명령어가 1사이클 명령어이면 다시 인출 사이클로 이동(CPL, SHL)
      1사이클 명령어가 아니면 간접 사이클로 가고, 맞으면 실행 사이클로 이동.
* Indirect Cycle (간접 사이클)
      주소 기억장치로부터 주소를 읽어낸다.
      간접 주소이면 간접 사이클로 이동하고, 분기 명령이면 실행 후 인출 사이클로 이동하고 분기 명령이 아니면 실행사이클로 이동.
* Execution Cycle(실행 사이클)
      데이터를 메모리에서 읽어낸다. 실행 후 인출 사이클로 이동.
* Interrupt Cycle(인터럽트 사이클)
      CPU 상태를 잠시 피신시키고, interrupt routine으로 점프. 인출 사이클로 이동.


 
 

댓글