[Computer Structure] 명령어 사이클⭐⭐

박시은·2023년 12월 1일
0

Computer Structure

목록 보기
14/17
post-thumbnail
post-custom-banner

▶ 명령어 사이클

  • CPU가 한 개의 명령어를 실행하는데 필요한 전체 처리 과정을 말한다.
  • 명령어를 불러오고(인출(Ferch)) 실행(Excution)하는 과정을 반복한다.

▷ 인출 사이클 (Fetch cycle)

  • 정의
    • CPU가 기억장치로부터 명령어를 읽어오는 단계를 말한다.

  • 인출 사이클의 마이크로 연산
    • 인출 사이클의 마이크로 연산은 다음과 같다.
    • t0 : MAR ← PC
      • PC에 저장된 명령어 주소를 CPU 내부 버스를 통해 MAR로 저장한다.
    • t1 : MAR ← M[MAR], PC ← PC + 1
      • MAR 번지 명령어를 MBR로 저장하고, PC를 1 증가시켜 다음 명령어 번지를 준비한다.
    • t2: IR ← MBR
      • MBR에 저장된 명령어를 IR(오퍼랜드)에 저장한다.

▷ 간접 사이클 (Indirect cycle)

  • 정의
    • 오퍼랜드 필드에 포함된 간접주소로부터 실제 피연산자가 저장된 위치를 가리키는 유효주소를 읽어들이는 과정을 말한다.
    • 즉, 실행 사이클에서 사용될 데이터의 유효주소 (실제 주소)를 기억장치로부터 읽어오는 과정을 말한다.
    • 간접 주소지정 방식에서 사용되므로, 기억장치 엑세스가 한번 더 이루어진다.
  • 간접 사이클의 마이크로 연산
    • t0 : IR(오퍼랜드 필드)의 간접주소를 MAR로 저장한다.
    • t1 : MAR 번지에 저장된 유효주소를 MBR로 저장한다.
    • t2 : MBR에 저장된 명령어 코드를 IR(오퍼랜드 필드)에 저장한다. (1단계 더 참조)

▷ 실행 사이클 (Execution cycle)

  • 정의
    • 인출된 명령어 코드를 해독하고 연산을 수행하는 단계

  • 실행 사이클의 마이크로 연산⭐
    • 실행 사이클에서 오퍼레이션 (연산 코드)에 따라 수행되는 마이크로 연산이 달라지며, 명령어 실행에 필요한 데이터가 저장된 주소는 IR(오퍼랜드)에 의해 결정된다.

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

① LOAD addr 명령어

  • IR(오퍼랜드 필드)에 저장된 데이터를 AC로 이동하는 명령어를 말한다.
  • t0 : MAR ← IR(addr)
    • IR 안에 있는 오퍼랜드 필드의 주소를 MAR에 저장한다.
  • t1 : MBR ← M[MAR]
    • MAR 번지 데이터를 읽어 MBR로 저장한다.
  • t2 : AC ← MBR
    • MBR에 저장된 데이터를 AC에 저장하여 로드한다.

② STORE addr 명령어

  • AC의 내용을 오퍼랜드 필드에 포함된 기억장치 번지에 저장하는 명령어를 말한다.

  • t0 : MAR ← IR(addr)
    • IR 안에 있는 오퍼랜드 필드에 포함된 주소를 MAR로 저장한다.
  • t1 : MBR ← AC
    • AC의 내용을 MBR로 저장한다.
  • t2 : M[MAR] ← MBR
    • MBR의 내용을 MAR 번지 기억장치에 저장한다.

③ ADD addr 명령어

  • 메모리에 저장된 데이터를 AC와 더하고, 그 데이터를 다시 AC에 저장하는 명령어를 말한다.
  • t0 : MAR ← IR(addr)
    • IR에 있는 오퍼랜드를 MAR에 저장한다.
  • t1 : MBR ← MAR
    • MAR 번지 메모리 내용을 MBR에 저장한다.
  • t2 :AC ← AC + MBR
    • MBR에 저장된 데이터를 ALU에서 연산하여 그 결과값을 AC에 저장한다.

④ JUMP addr 명령어

  • 오퍼랜드가 가리키는 주소의 명령어로 실행 순서를 변경하는 분기(branch) 명령어를 말한다.

  • t0 : PC ← IR(오퍼랜드)
    • 오퍼랜드 필드에 포함된 분기 번지를 PC로 전송한다.



📎참조

profile
블로그 이전했습니다!
post-custom-banner

0개의 댓글