인터럽트 발생원인 정전 혹은 데이터 전송 과정에서 오류 발생 등 컴퓨터 자체의 기계적인 문제 발생 정전이 될 때까지 프로그램의 65% 수행중인 경우 응급조치를 취해 수행된 결과를 보존해야 전원 회복 후 나머지 35% 수행 가능 정전 시 전압 강하가 시작되면 인터럽트 요청하여 상태 보존 보호된 기억 공간에 접근 혹은 불법적인 명령어의 수행 등과 같은 프로그램 상의 문제 발생 컴퓨터 조작자가 의도적으로 조작에 의해 중단시키는 경우 입출력 장치들의 동작에 CPU의 기능이 요청되는 경우
입출력 시 인터럽트 필요성 CPU와 주변 장치의 속도 차이가 극심하기 때문 예) 입력 과정
인터럽트 종류 내부 인터럽트 프로그램이나 데이터 오류, 입출력 장치 등의 시스템 내부에서 발생하는 인터럽트 외부 인터럽트 컴퓨터 조작자가 인터럽트 신호를 보내거나 정전, 컴퓨터의 기계적인 고장 등의 시스템 외부 요인으로 발생
인터럽트 동작원리와 체제 인터럽트 요청 선의 연결 방법 단일 회선 인터럽트 체제 인터럽트 요청이 가능한 모든 장치들로부터 인터럽트 요청 신호들을 논리적으로 합하여 단일회선으로 중앙 처리장치에 연결 한 개의 요청 선에 여러 개의 장치가 연결되어 있으므로 중앙 처리 장치가 인터럽트 원인을 판별하는 기능이 필요 다중 회선 인터럽트 체제 모든 장치들과 중앙 처리 장치 사이에 각각 고유의 인터럽트 요청 선들이 존재 중앙 처리 장치가 인터럽트의 원인을 바로 판별 혼합 인터럽트 체제 단일 회선과 다중 회선을 혼합한 형태
인터럽트 동작원리와 체제
단일 회선 체제에서 인터럽트 원인 판별 방법 폴링 방식 소프트에어나 하드웨어로 구현 가능 소프트웨어 구현 모든 장치에 적용되는 하나의 인터럽트 처리 루틴을 두고 이것에 의하여 중앙 처리 장치가 지정된 순서대로 각 장치에 신호를 보내서 인터럽트 요청 장치를 판별하는 방법 각 장치의 인터럽트 요청 우선 순위는 폴링하는 순서에 따라 정해짐 하드웨어 구현 벡터 방식
소프트웨어 방식 ③ 300 인터럽트 46 처리 루틴 ④ JMP 300 ② 1 인터럽트 요청 시점 401 인터럽트 취급 루틴1 ④ ② JMP 300 1 인터럽트 요청 시점 401 인터럽트 취급 루틴1 ① 46 45 프로그램 . 46 411 ⑤ 인터럽트 취급 루틴2 . .
소프트웨어(폴링) 방식에 의한 인터페이스 구조 IR : interrupt request flag 그 인터페이스가 인터럽트를 요청했는 가? D : done flag 그 인터페이스에 연결된 장치가 인터럽트를 요청할 준비가 된는가?
구현 방법 각 장치들은 IR을 1로 하여 중앙 처리 장치에 인터럽트 요청 D를 1로 하여 인터럽트를 요청했음을 표시 각 장치가 인터럽트 요청을 하면 중앙 처리 장치는 인터럽트 처리 루틴에 의해서 현재 수행 중인 프로그램의 상태 보존 폴링 순서에 따라 각 장치의 D플래그를 시험하는 명령을 수행 이때 최초로 D가 1인 장치를 인터럽트 요청 장치로 판별 인터럽트를 요청한 장치를 판별하여 그 장치의 서비스 루틴 수행 시작 IR과 D를 다시 0으로 만들어 다른 장치가 인터럽트를 요청할 수 있도록 함
하드웨어 구현 2진 카운터는 초기에는 첫 번째 장치의 주소를 가짐 만약 CPU가 폴링 모드로 되면 각 클럭 펄스마다 1씩 증가 카운터가 인터럽트를 요청한 장치의 주소에 도달하면 인터럽트 요구 플립플롭이 세트 2진 카운터는 멈추고 인터럽트를 요청한 장치의 주소가 보존 2진 카운터의 주소 즉 인터럽트 요청 장치의 주소는 중앙 처리 장치로 전송
인터럽트 요청 회신 요청 신호 클럭 CPU 에서 POLL 디코더
리플(비동기식) 카운터
동기식 카운터
2. 3×8 디코더/디멀티플렉서 3개의 입력에 따라서 8개의 출력 중 하나가 선택. 입력 출력 C B A Y7 Y6 Y5 Y4 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 1
폴링방식의 장점 - 프로그램에 의해서 우선 순위를 조절 - 최소한의 하드웨어만으로 구성이 가능 단점 - 각 장치를 폴링하여야 하므로 응답 시간이 길어짐
벡터 방식 인터럽트
벡터 인터럽트 방식 CPU는 인터럽트에 대한 응답으로 인터럽트 승인(INTA) 신호를 보낸다. 중앙 처리 장치에 가까운 쪽에 있는 장치가 우선 이 승인 신호를 받게 되고 그 장치가 인터럽트를 요청한 경우에는 자신의 인터럽트 벡터를 데이터 버스에 실어서 중앙 처리 장치로 보낸다. 장치 다음에 연속되는 장치들은 인터럽트 인정 신호를 받을 수 없게 되어 자신의 벡터를 중앙 처리 장치에 알릴 수 없다.
벡터 인터럽트 방식의 인터페이스 한 장치가 인터럽트를 요청하여 인터럽트 풀립풀롭이 세트되면 장치에 접속되어 있는 INTA 풀립풀롭이 INTA 신호에 의해 세트 장치는 데이터 버스 상에 벡터를 전송 CPU는 이 벡터를 읽어 인터럽트를 요청한 장치를 확인 장치가 확인되면 CPU는 해당 장치로 두 번째 INTA를 보내고 해당 장치는 INTA 풀립풀롭과 인터럽트 풀립풀롭 리세트 중앙 처리 장치가 장치 주소를 받은 후에는 해당 인터럽트 서비스 루틴으로 분기하여 서비스 루틴을 수행
벡터 방식에 의한 인터페이스 구조