728x90
반응형
인터럽트의 종류 및 발생 원인
- 인터럽트 : 실행중 작업을 중단하고 우선처리한 후 실행중인 작업으로 복귀하는 것
- 인터럽트 플래그(IF)를 0으로하면 발생 방지가능
- 외부 인터럽트, 내부 인터럽트, 소프트웨어 인터럽트로 분류
외부 인터럽트 |
- 전원 이상 인터럽트(Poer Fail Interrupt) - 기계 착오 인터럽트(Machine Check Interrupt) - 외부 신호 인터럽트(External Interrupt) - 입 · 출력 인터럽트(Input-Output Interrupt) |
내부 인터럽트 |
- 잘못된 명령어 혹은 데이터 사용시 발생 - 프로그램 검사 인터럽트(Program Check Interrupt) |
소프트웨어 인터럽트 |
- 명령의 요청에 의해 발생 - SVC(SuperVisor Call) 인터럽트 |
인터럽트 발생 시 CPU가 확인할 사항
- 프로그램 카운터의 내용
- 사용한 모든 레지스터 내용
- 상태 조건의 내용(PSW)
인터럽트의 동작 순서
- 인터럽트 신호
- 프로그램 중단
- 현재 프로그램 상태 보존
: PC의 번지 저장 - 인터럽트 처리 루틴 실행
- 인터럽트 서비스(취급) 루틴 실행
- 실질적 인터럽트 처리
- 우선순위에 따라 먼저 처리 - 상태 복구
: 저장한 PC번지를 다시 PC에 저장 - 중단 프로그램 재개
: PC의 값으로 프로그램 재개
인터럽트 우선순위
- 목적 : 여러 장치 동시 인터럽트시 순서 규정
- 우선순위(높음 > 낮음) :
전원이상(Power Fail) > 기계 착오(Machine Check) > 외부 신호(External) > 입 · 출력 (I/O) > 명령어 잘못
> 프로그램 검사 (Program Check) > SVC(SuperVisor Call)
인터럽트 우선순위 판별 방법
소프트웨어적인 방법 : Polling | - 가장 높은 우선순위의 인터럽트 자원부터 수행 - 우선순위 변경 용이, 속도가 빠른 장치가 높은 등급 - 인터럽트가 많을 때 조사에 대한 반응 시간 느림 - 회로가 간단하고 경제적 |
하드웨어적인 방법 : Vectored Interrupt |
- 요청 장치의 번호를 CPU에 전달 - 인터럽트 벡터 : 인터럽트 발생 장치가 프로세서에 정보 제공 - 벡터 인터럽트를 서브루틴이라고도 함 - 응답 속도 빠름 - 회로가 복잡하고 비경제적 - 직렬(Serial) 우선순위 부여 방식 : 데이지 체인(Daisy-Chain) 방식 -- 인터럽트 발생 장치 모두를 한 개 회선에 직렬 연결 -- 우선순위가 높은 장치 선두, 나머지를 차례로 연결 - 병렬(Parallel) 우선순위 부여 방식 -- 인터럽트 발생 장치를 개별 회선으로 연결 -- 우선순위는 Mask Register의 비트 위치로 결정 -- 우선순위가 낮은 것 비활성화 가능 -- 우선순위가 높은 Interrupt는 낮은 인터럽트 처리 중에도 우선처리 |
728x90
반응형