명령어 사이클

  • 한 개의 명령어를 CPU에서 수행하는데 필요한 전체 수행 과정

명령어 사이클의 개념

  • 컴퓨터의 기본적인 기능은 기억장치에 기억되어 있는 프로그램을 실행하는 것
    • 실행되는 프로그램은 명령어로 구성

  • 따라서 중앙처리장치는 기억장치에 저장되어 있는 명령어를 인출하여 실행함으로써 프로그램을 수행

  • 이러한 명령어의 수행과정을 명령어 사이클이라 함

명령어 사이클의 종류

  1. 인출 사이클
  2. 실행 사이클
  3. 간접 사이클
  4. 인터럽트 사이클

명령어 수행 과정

  1. 명령어 인출
    • 기억장치로부터 명령어를 가져오는 과정
    • 인출된 명령어의 주소는 PC에 들어있고, 인출된 명령어는 IR로 옮겨짐

  2. 명령어 해석
    • 명령어를 해독하는 과정
    • 명령어의 종류에 따라 필요한 경우 오퍼랜드의 인출이 일어남

  3. 명령어 실행
    • 지정된 연산을 실행하는 과정
    • 간접주소지정인 경우 기억장치로부터 데이터가 들어있는 유효주소를 인출
    • 이 과정에서는 명령어 인출과정을 통하여 IR 레지스터에 실린 명령어를 해독하고, 해독한 명령어에 따라 필요한 연산이 수행 됨

    • 수행되는 연산들의 기능
      • 데이터의 이동 기능 : 기억장치와 CPU 혹은 입출력장치 사이에 데에터의 이동
      • 데이터의 처리 기능 : 산술 혹은 논리연산을 통한 데이터 처리
      • 데이터의 저장 기능 : 연산결과를 기억장치에 저장
      • 제어 기능 : 프로그램의 실행 순서를 결정

    • LOAD 명령어
      • 데이터 이동을 위한 명령어
      • 원하는 기억장치의 데이터를 CPU의 내부 레지스터인 누산기로 가져오는 명령어
      • 실행 사이클
        1. 누산기로 이동할 데이터가 들어있는 주소가 MAR에 실림
        2. MAR 레지스터에 있는 주소의 데이터가 MBR에 실림
        3. MBR에 들어있는 데이터를 누산기로 읽어옴

    • ADD 명령어
      • 데이터 처리 명령어
      • 누산기에 있는 데이터와 기억장치에 있는 데이터를 더한 후, 그 결과를 누산기에 저장하는 명령어
      • 실행 사이클
        1. 더해질 데이터가 들어있는 기억장치의 주소가 MAR에 실림
        2. MAR에 있는 기억장치 주소에 해당하는 데이터가 MBR에 실림
        3. 누산기에 있는 데이터와 MBR에 있는 데이터가 더해지고, 결과가 누산기에 저장됨

    • STORE 명령어
      • 연산결과를 갖고 있는 누산기의 데이터를 기억장치에 저장하는 동작을 수행하는 명령어
      • 실행 사이클
        1. 저장되어질 주소가 MAR에 실림
        2. 누산기에 있는 데이터가 MBR에 실림
        3. MBR에 있는 데이터가 MBR에 있는 주소로 저장됨

    • 분기 혹은 점프 명령어
      • 제어기능을 수행하는 명령어
      • 프로그램의 순서를 바꾸는 명령어
      • 다음에 수행할 명령어는 PC가 가지는 주소의 명령어가 아니라, 분기 혹은 점프 명령어에 있는 주소에 해당하는 명령어
      • 실행 사이클
        1. 분기 혹은 점프 명령어에 있는 주소가 PC에 실린다

  4. 저장
    • 명령어 실행단계에서 수행된 연산 결과가 레지스터 혹은 기억장치에 쓰여지는 과정

  5. 인터럽트 처리
    • 명령어 실행 도중에 입출력장치와 같은 다른 장치에 의해 인터럽트가 들어오면 그에 합당한 서비스를 제공하는 과정

    • 인터럽트 사이클
      • PCU의 정상적인 동작 중에 인터럽트 요청이 발생했을 때 실행되는 과정
      • 실행 사이클이 끝난 직후에 인터럽트가 발생했는지를 검사
      • 발생했다면 인터럽트 서비스 루틴(ISR)이 시작되도록 하는 것

    • 인터럽트 발생
      1. 프로그램이 잘못 실행된 경우
      2. 하드웨어 결함
      3. I/O장치 등의 요청

Updated: