반응형

인터럽트의 종류 및 발생 원인

  • 인터럽트 : 실행중 작업을 중단하고 우선처리한 후 실행중인 작업으로 복귀하는 것
  • 인터럽트 플래그(IF)를 0으로하면 발생 방지가능
  • 외부 인터럽트, 내부 인터럽트, 소프트웨어 인터럽트로 분류
   
외부
인터럽트
 - 전원 이상 인터럽트(Poer Fail Interrupt)
 - 기계 착오 인터럽트(Machine Check Interrupt)
 - 외부 신호 인터럽트(External Interrupt)
 - 입 · 출력 인터럽트(Input-Output Interrupt)
내부
인터럽트
 - 잘못된 명령어 혹은 데이터 사용시 발생
 - 프로그램 검사 인터럽트(Program Check Interrupt)
소프트웨어
인터럽트
 - 명령의 요청에 의해 발생
 - SVC(SuperVisor Call) 인터럽트

인터럽트 발생 시 CPU가 확인할 사항

  • 프로그램 카운터의 내용
  • 사용한 모든 레지스터 내용
  • 상태 조건의 내용(PSW)

인터럽트의 동작 순서

  1. 인터럽트 신호
  2. 프로그램 중단
  3. 현재 프로그램 상태 보존
    : PC의 번지 저장
  4. 인터럽트 처리 루틴 실행
  5. 인터럽트 서비스(취급) 루틴 실행
     - 실질적 인터럽트 처리
     - 우선순위에 따라 먼저 처리
  6. 상태 복구
     : 저장한 PC번지를 다시 PC에 저장
  7. 중단 프로그램 재개
     : PC의 값으로 프로그램 재개

인터럽트 우선순위

  • 목적 : 여러 장치 동시 인터럽트시 순서 규정
  • 우선순위(높음 > 낮음) :
    전원이상(Power Fail) > 기계 착오(Machine Check) > 외부 신호(External) > 입 · 출력 (I/O) > 명령어 잘못
    > 프로그램 검사 (Program Check) > SVC(SuperVisor Call)

인터럽트 우선순위 판별 방법

   
소프트웨어적인 방법 : Polling  - 가장 높은 우선순위의 인터럽트 자원부터 수행
 - 우선순위 변경 용이, 속도가 빠른 장치가 높은 등급
 - 인터럽트가 많을 때 조사에 대한 반응 시간 느림
 - 회로가 간단하고 경제적
하드웨어적인 
방법 : Vectored Interrupt
 - 요청 장치의 번호를 CPU에 전달
 - 인터럽트 벡터 : 인터럽트 발생 장치가 프로세서에 정보 제공
 - 벡터 인터럽트를 서브루틴이라고도 함
 - 응답 속도 빠름
 - 회로가 복잡하고 비경제적
 - 직렬(Serial) 우선순위 부여 방식 : 데이지 체인(Daisy-Chain) 방식
   -- 인터럽트 발생 장치 모두를 한 개 회선에 직렬 연결
   -- 우선순위가 높은 장치 선두, 나머지를 차례로 연결
 - 병렬(Parallel) 우선순위 부여 방식
   -- 인터럽트 발생 장치를 개별 회선으로 연결
   -- 우선순위는 Mask Register의 비트 위치로 결정
   -- 우선순위가 낮은 것 비활성화 가능
   -- 우선순위가 높은 Interrupt는 낮은 인터럽트 처리 중에도 우선처리
반응형

+ Recent posts