Download presentation
Presentation is loading. Please wait.
1
컴퓨터시스템 구조 Computer System Architecture
2
제 8 장 인터럽트 인터럽트 발생 원인과 종류 인터럽트 체제와 동작 원리 우선 순위 인터럽트 체제 구성
3
제 8 장 인터럽트의 발생 원인과 종류 인터럽트 인터럽트 발생 원인 인터럽트의 필요성
예기치 않은 일(컴퓨터 시스템 내부 혹은 외부) 발생했을 때 적절한 조치를 취하여 계속적으로 프로그램이 수행되도록 해주는 기능 인터럽트 발생 원인 인터럽트의 필요성 정전(P. 453 참조) 입출력 과정 (P. 453 참조) ① 정전 혹은 데이터 전송과정에서의 오류 발생과 같은 컴퓨터 자체 내의 기계적인 문제 ② 보호된 기억 공간에 접근 혹은 불법적인 명령의 수행과 같은 프로그램 상의 문제 ③ 컴퓨터 조작자의 의도적인 조작으로 인한 경우 ④ 주변장치들이 중앙처리장치에게 입출력을 요청하는 경우 중앙처리장치의 인터럽트 처리
4
제 8 장 인터럽트의 발생 원인과 종류 인터럽트의 종류 인터럽트의 우선 순위
응급 정도에 따름 ① 기계착오 인터럽트(machine check interrupt) ② 외부 인터럽트(external interrupt) ③ IO 인터럽트(IO interrupt) ④ 프로그램 검사 인터럽트(program check interrupt) ⑤ 슈퍼바이저 호출 인터럽트(supervisor call interrupt) ① 정전 혹은 기계 잘못으로 인하여 발생하는 인터럽트 ② 연산자나 주소 지정 방식의 잘못으로 인하여 발생하는 인터럽트 ③ 컴퓨터 조작자의 의도적인 조작에 따른 인터럽트 ④ 입출력 장치로부터의 인터럽트
5
프로그램의 상태 = 레지스터의 내용 + PC의 값
제 8 장 인터럽트 체제와 동작 원리 인터럽트의 기본 요소 인터럽트 요청 신호, 인터럽트 처리 루틴, 인터럽트 서비스 루틴 중앙처리장치가 인터럽트 요청을 받으면 ① 현재 수행중인 명령을 완료한 후 수행중인 프로그램을 일시 중지한다. 이때 수행중인 프로그램의 상태를 안전한 곳에 보관한다. 프로그램의 상태 = 레지스터의 내용 + PC의 값 ② 인터럽트 처리 루틴 을 수행하여 인터럽트 원인을 찾아낸다. 그리고 이의 조치를 위해 해당되는 인터럽트 서비스 루틴을 실행시킨다. ③ 인터럽트 서비스가 끝나면 보존시킨 PC의 값과 프로그램의 상태를 복구하여 인터럽트 당한 프로그램의 중단된 곳에서부터 다시 프로그램을 수행한다.
6
제 8 장 인터럽트 체제와 동작 원리 인터럽트 요청 신호 회선 체제 단일 회선 체제 다중 회선 체제 혼합회선 체제
하나의 회선에 모든 장치 연결 다중 회선 체제 장치마다 고유의 요청 신호 회선 혼합회선 체제 (a)와 (b)의 혼합 인터럽트 요청 신호 인터럽트 요청 신호 회선 CPU
7
제 8 장 인터럽트 체제와 동작 원리 인터럽트 처리 및 서비스 루틴 인터럽트 원인 판별
중앙처리장치가 인터럽트 요청을 받으면 수행하던 명령어의 실행을 완료한 후 인터럽트 처리를 위한 준비를 한다. 인터럽트 메이저 상태 : CPU가 인터럽트 처리를 준비하는 상태 프로그램 카운터의 값 : 스택, 주기억장치의 0번지 단일 회선 체제 : 인터럽트 처리 루틴 필요 다중 회선 체제 : 인터럽트 처리 루틴 불필요 인터럽트 원인 판별 S/W (폴링) 방법 H/W(벡터 인터럽트) 방법 ● 프로그램 카운터에 기억된 주소를 지정된 장소에 보관한다. ● 인터럽트의 원인을 판별하여, 해당되는 인터럽트 서비스 루틴을 가동시킨다. 단일 회선 인터럽트 체제 폴링 방식을 위한 장치 인터페이스 구조
8
제 8 장 인터럽트 체제와 동작 원리 폴링 방식에서 인터럽트 원인 판별 과정
9
제 8 장 인터럽트 체제와 동작 원리 단일 회선 체제에서 폴링 방식에 의한 인터럽트 처리
300 번지 : 인터럽트 처리 루틴, 401 번지 : 각 장치의 서비스 루틴 45번지 명령의 수행 중 디스크가 인터럽트를 요청 실행 사이클이 끝난 후 인터럽트 사이클 수행 기억장치의 0번지에 PC의 값, 즉 46을 저장 인터럽트 처리 루틴 300번지로 분기, 여기서 인터럽트를 요청한 장치를 식별한 후 디스크의 인터럽트 서비스 루틴 즉, 401번지로 분기하여 서비스 루틴 수행
10
제 8 장 인터럽트 체제와 동작 원리 다중 회선 인터럽트 체제 벡터 인터럽트(Vector interrupt) 방식
인터럽트 처리 루틴이 없으며, 직접 인터럽트 서비스 루틴으로 분기하는 명령어들로 구성 CPU가 인터럽트 요청 신호를 받으면, 프로그램 카운터(PC)의 값을 보관한 후 인터럽트 인정 신호(INTACK)를 세트시킨다. INTACK 신호에 의해 인터럽트를 요청한 장치는 장치 번호 버스에 자신의 장치 번호를 전송 CPU는 어떤 장치가 인터럽트를 요청했는지 판별 인터럽트 서비스 루틴으로 분기
11
제 8 장 인터럽트 체제와 동작 원리 다중 회선 인터럽트 체제의 예 프로그램 카운터의 값 (a) 기억장치의 0번지 (b) 스택
(c) 인터럽트 벡터 내에 보관
12
제 8 장 인터럽트 체제와 동작 원리 다중 회선 인터럽트 체제의 예
13
제 8 장 인터럽트 체제와 동작 원리 다중 회선 인터럽트 체제의 예 벡터 내에 두 개의 워드 할당
14
제 8 장 인터럽트 체제와 동작 원리 인터럽트 사이클 T0 : MAR ← 0, TR ← PC
Fig. 8-5(단일 회선 인터럽트 체제)의 구조 CPU가 인터럽트 요청을 받으면, 수행 중인 명령어의 실행 완료 후 인터럽트 사이클 수행 : 복귀 주소 값, 즉 PC의 값을 보관(여기서는 주기억장치의 0번지) : 다음 인출 사이클에서 기억장치 주소 1번지에 저장된 명령어를 수행 즉, 인터럽트 요청 장치 판별을 위한 인터럽트 처리 루틴으로 분기 마이크로 오퍼레이션 표현 T0 : MAR ← 0, TR ← PC T1 : M[MAR] ← TR, PC ← 0 T2 : PC ← PC +1, IEN ← 0, T3 : Goto Fetch cycle
15
제 8 장 인터럽트 체제와 동작 원리 인터럽트 사이클 우선 순위 인터럽트 체제
Fig. 8-7(다중 회선 인터럽트 체제)의 (c)와 같은 구조 하드웨어에 의해서 인터럽트 요청 장치가 식별 인터럽트 처리 루틴 없이 직접 인터럽트 서비스 루틴으로 분기 마이크로 오퍼레이션 표현 우선 순위 인터럽트 체제 여러 장치가 동시에 인터럽트 요청 : 우선 순위에 따라 서비스 순서 결정 T0 : SP ← SP +1 T1 : M[SP] ← PC, INTACK ← 1 T2 : PC ← VAD, IEN ← 0, T3 : Goto Fetch cycle ① 각 장치에 우선 순위를 부과하는 기능 ② 인터럽트를 요청한 장치의 우선 순위를 판별하는 기능 ③ 우선 순위가 높은 것을 처리할 수 있는 기능
16
제 8 장 우선 순위 인터럽트 체제 단일 회선 인터럽트 체제에서의 우선 순위 우선 순위 설정
소프트웨어에 의한 방법 Fig. 8-3에서 인터럽트 요청 장치의 수가 n개 프로그램된 순서, 즉 장치 1번부터 순서대로 폴링 신호를 보낸다. 즉, 우선 순위가 가장 높은 순으로 폴링 신호를 받는다. Fig. 8-3의 구조에서는 우선 순위가 다음과 같이 설정된 것과 같다. 인터럽트 마스크(interrupt mask) : 현재 인터럽트 서비스 중인 장치보다 우선 순위가 낮은 장치는 해당 서비스 루틴이 끝날때까지 인터럽트 요청을 할 수 없다. ID(Interrupt Disable) 플립플롭 이용 소프트웨어 방식에 의한 우선 순위 설정 방법의 장단점 장치 1 〉장치 2〉장치 3〉…〉 장치 N ① 우선 순위가 프로그램 상으로 결정되므로 융통성이 크다. ② 우선 순위 설정을 위한 하드웨어가 없으므로 경제적이다. ③ 인터럽트 반응 속도가 느리다.
17
제 8 장 우선 순위 인터럽트 체제 단일 회선 인터럽트 체제에서의 우선 순위 우선 순위 설정 하드웨어에 의한 방법
데이지 체인(daisy chain) 우선 순위가 높은 순으로 좌측에서 우측으로 장치들이 직렬로 연결 어떤 장치가 인터럽트 요청 신호를 보내면 CPU의 입력 Int가 활성화 이에 대한 응답으로 CPU는 INTACK 신호를 활성화 이 신호는 우선 순위가 높은 순으로 각 모듈의 입력(PI)에 연결 해당 장치가 인터럽트를 요청하지 않았을 경우에는 출력(PO)을 통하여 다음장치의 입력으로 신호가 전달 인터럽트 요청 장치 : PO의 출력을 0, 자신의 인터럽트 벡터 주소를 CPU로 전송
18
제 8 장 우선 순위 인터럽트 체제 다중 회선 인터럽트 체제에서의 우선 순위 우선 순위 설정 Fig. 8-10
각 회선이 우선 순위를 갖도록 설정 인터럽트 레지스터 이용 우선 순위가 높은 순으로 왼쪽부터 오른쪽으로 비트 번호를 부여 마스크 레지스터 : 인터럽트 순위 비교 현재 처리되고 있는 인터럽트의 우선 순위가 저장 다른 장치가 인터럽트를 요청하면 현재 처리 중인 장치의 인터럽트 우선 순위와 새로 인터럽트를 요청한 장치의 우선 순위를 비교 높은 순위의 인터럽트가 처리되고 있을 때 : 낮은 순위의 장치가 인터럽트 요청을 못하도록 0으로 마스크 낮은 순위의 인터럽트가 처리되고 있을 때 : 높은 우선 순위의 장치가 인터럽트를 요청할 수 있도록 1로 세트 Fig. 8-10 인터럽트 레지스터
19
제 8 장 우선 순위 인터럽트 체제 다중 회선 인터럽트 체제에서의 우선 순위 Fig. 8-11 우선 순위 인터럽트 하드웨어
20
제 8 장 우선 순위 인터럽트 체제 우선순위 인코더 진리표 출력 x에 대한 Karnaugh Map
Similar presentations