명령어 사이클

프로그램은 수많은 명령어로 이루어져 있고 , CPU 는 해당 명령어들을 하나씩 실행한다. 이때 프로그램 속 각각의 명령어들은 일정한 주기가 반복되며 실행되는데 , 이 주기를 명령어 사이클 Instruction Cycle 이라고 한다.

인출 사이클 Fetch Cycle

가장 먼저 메모리에 저장된 명령어 하나를 실행하기 위해 메모리에 있는 명렁어를 CPU 로 가져 오는 단계를 인출 사이클 Fetch Cycle 이라고 한다.

실행 사이클 Executuin Cycle

인출한 명령어를 실행하기 위해 제어장치가 명령어 레지스터 ( IR ) 에 담긴 값을 해석하고 제어 신호를 발생시킨다. 이 단계를 실행 사이클 Executuon Cycle 이라고 한다.

Cycle 도식화

CPU 는 프로그램 속 명령어를 가져오고 실행하고 또 가져오고 실행하고를 계속 반복한다. 그렇다면 도식화를 해보면 다음과 같을까?

Untitled

계속해서 실행과 반복을 하지만 , 꼭 이렇게 간단히 실행되는 것은 아니다.

간접 주소 지정 방식

간접 주소 지정 방식은 오퍼랜드 필드에 유효 주소의 주소를 명시한다고 배웠었다. 그럴 경우 명령어를 인출하여 CPU 에 가져왔다 하더라도 바로 실행 사이클에 돌입 할 수 없다. 명령어를 가져오기 위해서는 메모리의 접근을 한 번 더 해야하기 때문이다.

해당 단계를 간접 사이클 Indirect Cycle 이라고 한다.

그래서 간접 사이클을 도식화 하면 다음과 같다

Untitled

하지만 명령어 사이클은 위가 끝이 아니며 아직 고려해야할 것이 하나 더 남아있다.

인터럽트 Interrupt

인터럽트란 무엇일까?

방해하다 , 중단하다 의 뜻인 인터럽트 , 말 그대로 CPU 의 작업을 방해하는 신호를 인터럽트라고 한다.

인터럽트의 종류