명령어 사이클 : CPU가 하나의 명령어를 처리하는 과정에서 어떤 정해진 흐름이 있고, CPU는 그 흐름을 반복하며 명령어를 처리하는 정형화된 흐름
인터럽트 : 명령어 실행 흐름 도중 흐름이 끊어지는 상황
일정 주기로 실행되는 명령어들의 흐름
메모리에 있는 명령어를 CPU로 가지고 오는 단계
CPU로 가져온 명령어를 실행하는 단계
간접 주소 지정 방식 같은 경우, 명령어를 실행하기 위해 메모리에 한 번 더 접근해야 하는데 이 때를 위한 단계
대략적으로 명령어 사이클은 위와 같이 동작한다.
하지만 아직 이게 끝은 아니다.
CPU가 수행 중인 작업을 방해받아 잠시 중단할 때가 있는데, 이때 방해하는 신호를 인터럽트라고 한다.
입출력 장치는 CPU보다 현저히 속도가 느려 CPU는 입출력 결과를 바로바로 알 수가 없음.
이 때문에 주기적으로 입출력장치에게 완료되었는지 확인해야 함
인터럽트를 사용하면 굳이 주기적으로 물어볼 필요가 없이 입출력장치에게 완료 인터럽트를 받을 때까지 다른 작업을 하면 됨
인터럽트 요청 신호 : 인터럽트 하기 전 인터럽트 가능한지 요청 신호를 보내는 것
인터럽트 플래그 : 인터럽트 요청 신호를 무시할지 말지 결정하는 비트,만약 CPU가 중요한 일을 처리하고 있거나 어떠한 방해도 받으면 안되는 상황이라면 플러그가 '불가능'으로 설정됨 -> 인터럽트 요청 무시
인터럽트 서비스 루틴(안터럽트 핸들러) : 인터럽트를 처리하는 프로그램(마우스 동작 프로그램, 키보드 동작 프로그램....)
인터럽트 벡터 : 수많은 인터럽트 서비스 루틴을 구분하기 위한 정보
최종 명령어 사이클