명령 사이클

GGOMG·2022년 10월 7일
0

Computer Science

목록 보기
16/19
post-custom-banner
  • 프로그램 실행과정에서 각 명령은 명령 사이클에 의해 수행된다.
  • 명령 사이클은 인출 사이클, 실행 사이클, 인터럽트 사이클로 구성된다.
  • 각 사이클들은 마이크로 오퍼레이션(실제 수행되는 가장 작은 기본 단위)으로 구성된다.

    인출 -> (간접) -> 실행 -> 인터럽트

1. 인출 사이클(Fetch Cycle)

  • 명령어를 인출한 후 해독
  • PC -> MAR -> MBR -> IR

1) PC -> MAR

현재 PC에 저장된 주소를 MAR로 보낸다

2) MAR -> MBR , PC -> PC+1

MAR이 가르키는 메모리 주소에서 명령어를 읽어 MBR에 적재
PC가 다음 명령어 주소를 가르키게 한다

3) MBR -> IR

MBR에 저장된 명령어가 명령어 레지스터(IR)로 이동한다.

2. 실행 사이클(Execute Cycle)

  • 데이터를 인출한 후 실행

1. 데이터 이동

  • IR -> MAR -> MBR -> AC

1) IR -> MAR

IR의 Operand 주소를 MAR로 보낸다

2) MAR -> MBR

MAR이 가르키는 메모리 주소에서 데이터를 MBR에 적재

3) MBR -> AC

MBR의 데이터를 AC에 적재

2. 데이터 처리

  • IR -> MAR -> MBR + AC -> AC

1) IR -> MAR

IR의 Operand 주소를 MAR로 보낸다.

2) MAR -> MBR

MAR이 가르키는 메모리 주소에서 데이터를 MBR에 적재

3) MBR + AC -> AC

AC의 내용과 MBR의 데이터를 더해 AC에 저장

3. 데이터 저장

  • IR -> MAR , AC -> MBR , MBR -> MAR

1) IR -> MAR

IR의 Operand 주소를 MAR로 보낸다. (데이터를 저장할 주소)

2) MBR -> AC

MAR이 가르키는 메모리 주소에서 데이터를 MBR에 적재 (저장할 데이터)

3) MBR -> MAR

MBR의 데이터를 MAR이 가르키는 메모리 주소에 저장

4. 제어

IR -> PC

분기할 목적지의 주소가 PC에 적재됨

3. 간접 사이클(Indirect Cycle)

  • 간접 주소를 사용할 경우 실행 사이클이 시작되기 전에 유효주소를 기억장치로부터 읽어와 IR의 Operand에 저장
  • 인출 사이클과 실행 사이클 사이에 위치

1) IR -> MAR

IR의 Operand 주소를 MAR로 보낸다.

2) MAR -> MBR

MAR이 가르키는 데이터의 유효주소를 MBR로 보냄

3) MBR -> IR

데이터의 유효주소를 IR에 적재

4. 인터럽트 사이클(Interrupt Cycle)

  • 한 명령어의 실행 사이클을 종료하고 다음 명령어를 위한 인출 사이클을 시작하기 전에 인터럽트 요구 신호가 대기중인지 검사
  • 인터럽트 요구가 들어왔다면 현재의 명령어 실행을 끝내고, PC(다음 명령어 주소)를 스택에 저장
  • 인터럽트 서비스 루틴을 호출하기 위해 루틴의 시작 주소를 PC에 저장
    시작 주소는 인터럽트를 요구한 장치로부터 전송되거나 미리 정해진 값임

1) PC -> MBR

다음 실행될 명령어 주소를 MBR에 저장

2) SP -> MAR , ISR -> PC

SP(스택 포인터)의 내용을 MAR에 저장
PC의 내용은 ISR(인터럽트 서비스 루틴) 시작주소로 변경

3) MBR -> MAR

MBR에 저장된 원래 PC의 값(복귀주소)를 스택에 저장

5. 사이클 타임

1) 동기 고정식

  • 사이클 타임 중에서 가장 수행시간이 긴 것으로 CPU 클럭 주기를 고정
  • 마이크로 오퍼레이션 사이클 타임이 모두 같으므로 제어기를 구현하기 쉽다

2) 동기 가변식

  • 수행시간이 유사한 것 끼리 모아서 하나의 군을 만들고, 그 군에 대하여 서로 다른 마이크로 사이클 타임을 준다
  • 제어기 설계가 어렵다

3) 비동기식

  • 원하는 만큼의 사이클 타임을 각각 할당
  • 제어가 복잡해 거의 사용하지 않는다
post-custom-banner

0개의 댓글