프로그램 속 명령어들은 일정한 주기에 맞춰 반복실행된다.
메모리에서 정보를 CPU로 가져오는 인출사이클, 제어 장치가 명령어를 해석해서 제어신호를 발생시키는 실행사이클이 반복된다
메모리 접근을 한번 더 거쳐야 하는 명령어들은 간접 사이클도 거치게됨. (간접 주소 지정 방식)
인터럽트 발생시 인터럽트 사이클을 거친다
CPU가 일을 처리하다가 다른 일을 우선해서 처리해야 할 때, 하던일을 중단하라고 보내는 신호
CPU에 의해 발생하는 인터럽트
CPU가 명령어를 수행하다가 예상치못한 상황(오류, 예외)에 마주쳤을 때 발생
입출력장치 요청에 의해 발생
CPU가 하드웨어 인터럽트를 처리하는 순서
1. 인터럽트 요청신호가 들어옴 (입출력장치로부터)
2. 실행 사이클이 끝나면 항상 인터럽트 여부를 확인하고 명령어를 인출함
3. 인터럽트 요청을 확인함
4. 인터럽트 플래그를 확인해서 이 인터럽트를 받아들일 수 있는지 판단, 받아들일 수 있다면
5. 하던 작업을 백업함
6. 인터럽트 벡터를 참조하여 인터럽트 서비스 루틴을 실행
7. 루틴 실행이 끝나면 5에서 백업한 작업을 복구해서 재개
인터럽트 플래그 : 하드웨어 인터럽트를 받아들일지 무시할지 결정하는 플래그
인터럽트 플래그가 무시하라고 해도 무시할 수 없는 요청도 있음 (고장, 정전 등)
해당 인터럽트를 어떻게 처리하고 작동해야 할지 정보로 이루어진 프로그램
여러 명령어와 데이터로 이루어짐
원래 실행중이던 작업의 명령어 주소, 프로그램 카운터 값 등을 스택 영역에 백업한다