- 프로그램을 실행하는 도중에 예기치 않은 상황이 발생할 경우 현재 실행중인 작업을 즉시 중단하고, 발생된 상황을 우선 처리한 후 실행중이던 작업으로 복귀하여 계속 처리하는 것, 일명 "끼어들기"라고도 한다.
- 인터럽트 서비스 루틴을 실행할 때, 인터럽트 플래그(IF)를 0으로 하면 인터럽트 발생을 방지할 수 있다.
- 인터럽트는 외부 인터럽트, 내부 인터럽트, 소프트웨어 인터럽트로 분류하는데, 외부나 내부 인터럽트는 CPU의 하드웨어에서의 신호에 의해 발생하고 소프트웨어 인터럽트는 명령어의 수행에 의해 발생한다.
외부 인터럽트
- 전원 이상 인터럽트(Power Fail Interrupt) : 정전이 되거나 전원 이상이 있는 경우
- 기계 착오 인터럽트(Machine Check Interrupt) : CPU의 기능적인 오류 동작이 발생한 경우
- 외부 신호 인터럽트(External Interrupt) :
1) 타이머에 의해 규정된 시간(Time Slice)을 알리는 경우
2) 키보드로 인터럽트 키를 누른 경우
3) 외부장치로부터 인터럽트 요청이 있는 경우
- 입,출력 인터럽트(Input - Output Interrput)
1) 입,출력 Data의 오류나 이상 현상이 발생한 경우
2) 입,출력장치가 데이터의 전송을 요구하거나 전송이 끝났음을 알릴 경우
내부 인터럽트
- 잘못된 명령이나 데이터를 사용할 때 발생하며, 트랩(Trap)이라고도 부름
-프로그램 검사 인터럽트(Program Check Interrupt) :
1) 0으로 나누기(Divide by zero)가 발생한 경우
2) Overflow 또는 Underflow가 발생한 경우
3) 프로그램에서 명령어를 잘못 사용한 경우
4) 부당한 기억장소의 참조와 같은 프로그램의 오류
소프트웨어 인터럽트
- 프로그램 처리 중 명령(Instruction)의 요청에 의해 발생하는 것으로, 가장 대표적인 형태는 감시 프로그램을 호출하는 SVC(SuperVisor Call) 인터럽트가 있음
- SVC(SuperVisor Call) 인터럽트 :
1) 사용자가 SVC 명령을 써서 의도적으로 호출한 경우
2) 복잡한 입,출력 처리를 해야 하는 경우
인터럽트 우선순위
정전 > 기계 이상 > 외부 신호 > 프로그램
'전공공부 > 전자계산기 구조' 카테고리의 다른 글
중앙처리장치 - 분류(명령어집합 -RISC, CISC, EISC) (0) | 2020.02.16 |
---|---|
JK 플립플롭 (0) | 2020.02.15 |
메이저 스테이트에 사용되는 코드의 이해 (0) | 2020.02.13 |
120. 캐시 메모리(Cache Memory) (0) | 2020.02.13 |
112. ROM(Read Only Memory) (0) | 2020.02.13 |
댓글