Presentation is loading. Please wait.

Presentation is loading. Please wait.

10장. 인터럽트 Lecture #10.

Similar presentations


Presentation on theme: "10장. 인터럽트 Lecture #10."— Presentation transcript:

1 10장. 인터럽트 Lecture #10

2 10.1 인터럽트의 필요성 (1) 인터럽트와 인터럽트 요청 인터럽트의 발생원인
프로그램을 수행 중 응급상태가 발생할 경우 중앙처리장치는 긴급처리를 위해 현재 처리하던 프로그램을 중단하게 되며 이를 중앙처리장치는 인터럽트 당했다고 함. 응급상태가 발생했음을 중앙처리장치에게 알리는 것을 인터럽트 요청이라 한다. 인터럽트의 발생원인 기계적인 문제. 프로그램 상의 문제. 컴퓨터 조작자의 의도적인 조작에 의한 중단. 입출력 장치들의 동작에 CPU의 기능이 요청되는 경우. 컴퓨터 구조론

3 10.1 인터럽트의 필요성 (2) 인터럽트의 형태 외부 인터럽트 내부 인터럽트 소프트웨어 인터럽트
외부 요인(전원, 입출력 장치, 타이밍 장치 등)으로 발생. 비동기성. 프로그램과 별도의 상황에서 일어남. 내부 인터럽트 불법적인 명령어나 데이터를 사용할 때 발생(트랩). 동기성. 프로그램 자체 내에서 발생. 소프트웨어 인터럽트 명령어의 실행에 의해 발생.(call 명령어) 컴퓨터 구조론

4 10.2 인터럽트 체제와 동작 원리 (1) 인터럽트 체제 및 동작 원리 기본적인 요소 인터럽트 요청 신호 인터럽트 처리 기능
인터럽트 취급 루틴 컴퓨터 구조론

5 10.2 인터럽트 체제와 동작 원리 (2) 인터럽트 체제 및 동작 원리 중앙 처리 장치가 인터럽트 요청 시 처리 순서
① 현재 수행중인 명령어를 완료. ② PC에 기억되어 있는 주소를 안전한 곳에 보존. ③ 수행이 중단된 프로그램의 상태를 안전한 기억장소에 보존 한 후에 인터럽트에 대한 조치를 취한다. ④ 인터럽트 원인이 무엇인가를 찾아내어 해당되는 인터럽트의 취급루틴을 수행시킨다. ⑤ 보존시킨 PC의 값과 프로그램의 상태를 복구하여 인터럽트 당한 프로그램을 중단된 곳에서부터 다시 계속하여 수행되도록 한다. 컴퓨터 구조론

6 10.2 인터럽트 체제와 동작 원리 (3) 인터럽트 요청 인터럽트 요청 회선의 연결 방법 단일회선방법
인터럽트 요청이 가능한 모든 장치를 공통으로 중앙처리장치에 연결 한 개의 회선에 여러 개의 장치가 인터럽트를 요청했는지를 판별해 주는 기능 필요 컴퓨터 구조론

7 10.2 인터럽트 체제와 동작 원리 (4) 인터럽트 요청 회선의 연결 방법 다중회선방법 각 장치에 고유의 회선이 있다.
모든 장치들이 서로 다른 중앙 처리 장치의 인터럽트 요청 신호 회선들과 연결되어 있으므로 원인을 바로 판별할 수 있다. 컴퓨터 구조론

8 10.2 인터럽트 체제와 동작 원리 (5) 인터럽트 요청 회선의 연결 방법 혼합회선방법 단일회선방법과 다중회선방식을 혼합.
컴퓨터 구조론

9 10.2 인터럽트 체제와 동작 원리 (6) 단일 회선 인터럽트 체제 인터럽트 처리를 위한 논리 회로의 기능
플래그 D(demand) : 인터럽트 요청 준비가 되어 있음을 나타냄. 플래그 IRQ(interrupt request) : 인터럽트 요청 여부를 나타냄. 디코더 : 장치 번호. 컴퓨터 구조론

10 10.2 인터럽트 체제와 동작 원리 (7) 단일 회선 인터럽트 체제 처리 순서
① 중앙처리장치는 모든 장치에 인터럽트 허용 신호를 보낸다. ② 인터럽트가 필요한 상태이면 D 플래그를 1로 세트하며 플래그 IRQ로 전달 ③ IRQ는 중앙처리장치로 인터럽트 요청 신호를 보냄 : 인터럽트가 허용된 상태일 때. ④ 플래그 RI 는 1로 세트되고, 플래그 RI를 조사하여 1의 상태이면 하여 인터럽트 메이저 상태로 전환되어 인터럽트 처리를 하고, 0의 상태이면 수행 중이던 프로그램이 계속 진행된다. ⑤ 인터럽트 요청을 받은 중앙 처리 장치는 폴링 회선을 통하여 장치 번호를 내보낸다. ⑥ 인터럽트를 요청한 장치는 폴링 회선의 장치 번호에 의하여 디코더의 값이 1로 되는데, 이 값에 의하여 DONE 신호가 중앙 처리 장치에 전달. ⑦ DONE 신호에 의하여 플래그 D와 IRQ는 리세트 : 더 이상 인터럽트 요청을 발생하지 못하도록 하기 위해. ⑧ 플래그 RI 값도 리세트 : 새로운 인터럽트 요청 신호를 받을 수 있도록 하기 위해. 컴퓨터 구조론

11 10.2 인터럽트 체제와 동작 원리 (8) 단일 회선 인터럽트 체제 다중 회선 인터럽트 논리회로 컴퓨터 구조론

12 10.2 인터럽트 체제와 동작 원리 (9) 다중 회선 인터럽트 체제 처리 순서
① 인터럽트 요청 장치에 의하여 플래그 D가 1로 세트. ② 인터럽트가 가능한 상태이면 플래그 IRQ가 1로 세트된 인터럽트 요청 장치들은 중앙 처리 장치에 인터럽트를 요청. ③ 요청 신호를 받은 중앙 처리 장치는 레지스터 RI의 해당되는 비트를 1로 세트함. ④ RI의 비트가 1인 비트가 있으면 인터럽트 메이저 상태로 전환되어 인터럽트의 원인에 따라 처리를 하며, 0이면 계속하여 진행 중이던 프로그램을 수행. ⑤ 인터럽트 요청 장치에게 인터럽트가 처리될 것이라는 알림과 동시에, 플래그 D와 IRQ를 리세트 한다. 컴퓨터 구조론

13 10.2 인터럽트 체제와 동작 원리 (10) 인터럽트 처리 인터럽트 메이저 상태 인터럽트 처리 루틴
중앙 처리 장치가 인터럽트를 준비하는 상태 프로그램 카운터에 기억된 주소를 지정된 장소에 보존. 인터럽트의 원인을 판별하여, 해당되는 인터럽트 취급 루틴의 수행을 시작시킴. 인터럽트 처리 루틴 단일 회선 인터럽트 체제에서 인터럽트의 원인을 판별해주는 기능을 구현한 소프트웨어. 인터럽트 원인 판별과 인터럽트 취급 루틴의 수행을 시작시키는 작업까지 처리. 단일회선 인터럽트 체제에서는 인터럽트 처리를 위해 인터럽트 처리루틴(IPR : interrupt processing routine)과 인터럽트 취급루틴(ISR : interrupt service routine)의 두 단계 소프트웨어가 필요. 컴퓨터 구조론

14 10.2 인터럽트 체제와 동작 원리 (11) 단일회선 인터럽트 체제
인터럽트 처리루틴 시작 : 인터럽트가 요청되면 PC의 내용을 주소 0에 보존시킨 다음 PC에 1을 기억시키고 인출메이저 상태로 들어감 인터럽트 처리 루틴이 수행되는 동안 인터럽트는 요청 불능 상태 실제로 명령어 세트에는 선택적으로 인터럽트 요청 가능(enable interrupt : EI)이나 불능(disable interrupt : DI)으로 하는 명령어를 포함하고 있다. 인터럽트의 처리 루틴의 기능 인터럽트 불능 명령어를 실행(다른 장치가 인터럽트 요청을 못하도록) 인터럽트의 원인을 판별한다. 해당하는 인터럽트 취급 루틴의 수행을 시작시킨다. 인터럽트 원인 판별 방법 소프트웨어에 의한 방식 하드웨어에 의한 방식 컴퓨터 구조론

15 10.2 인터럽트 체제와 동작 원리 (12) 단일회선 인터럽트 체제 소프트웨어에 의한 방식
폴링(polling) : 어느 장치가 인터럽트를 요청하였는가를 하나씩 차례대로 확인하는 것. 한 개 이상의 장치가 인터럽트를 요청할 경우 : 플래그 RI값이 1로 세트됨. 인터럽트 원인을 판별하기 위하여 인터럽트를 요청하는 장치에 장치 번호를 부여하고, 중앙 처리 장치로 DONE 신호를 보내어 확인이 이루어짐. 폴링에 의한 방식은 정해진 순서대로 장치 번호를 보내는 관계로 처음으로 DONE 신호가 1인 장치 하나만 인식이 되고 폴링을 중단하게 되어 인터럽트를 요청한 다른 장치들은 인식된 인터럽트의 처리가 완료될 때까지는 그 장치들의 인식은 되지 않는다. 컴퓨터 구조론

16 10.2 인터럽트 체제와 동작 원리 (13) 단일회선 인터럽트 체제 소프트웨어에 의한 방식
소프트웨어 방식에 의한 인터럽트 원인 판별 컴퓨터 구조론

17 10.2 인터럽트 체제와 동작 원리 (14) 단일회선 인터럽트 체제 하드웨어에 의한 방식
처리 순서 : 인터럽트 요청 신호를 받으면 중앙 처리 장치의 플래그 RI과 IE 가 1로 세트되고, 중앙 처리 장치는 수행 중이던 명령어의 실행을 완료한 다음 모든 인터럽트 요청 장치로 인터럽트 확인 신호(interrupt acknowledge : INTACK)를 보낸다. 인터럽트를 발생한 장치는 자신의 장치 번호를 중앙처리 장치로 보내어 원인을 판별. 필요한 장치 폴링 회선 → 장치 번호 버스 장치 번호 디코더 → 장치 번호 발생기 회로(각 장치에 부여된 고유 번호를 발생하는 회로) 인터럽트 인식 회선 → 인터럽트 확인 회선(인터럽트를 요청받은 중앙처리 장치가 인터럽트 원인을 판별하기 위해 인터럽트 요청 장치로 인터럽트 확인 신호를 보내는 신호) 데이지 체인(daisy chain) 방식 사용 – 중앙 처리 장치에 가까운 순서대로 인터럽트 우선 순위가 결정 컴퓨터 구조론

18 10.2 인터럽트 체제와 동작 원리 (15) 단일회선 인터럽트 체제 하드웨어에 의한 방식
하드웨어 방식에 의한 인터럽트 원인 판별 컴퓨터 구조론

19 10.2 인터럽트 체제와 동작 원리 (16) 다중회선 인터럽트 체제
인터럽트의 원인이 하드웨어에 의하여 판별되므로 인터럽트 처리 루틴이 필요하지 않으며, PC의 주소를 보존하고 해당하는 인터럽트의 취급루틴의 수행을 시작시키면 된다. 인터럽트 벡터(interrupt vector : IV) 사용 인터럽트 취급 루틴의 시작 주소를 구하는 방법. 각 인터럽트 취급 루틴으로 직접 분기하는 명령어들로 구성된 인터럽트 벡터표(interrupt vector table)가 주 기억 장치에 구현됨. IVA + 0 PC 주소 보존 JMP ISR 0 JMP ISR 1       JMP ISR n-1 IVA + 1×2 IVA + (n-1) ×2 컴퓨터 구조론 [ 인터럽트 벡터 표 ]

20 10.2 인터럽트 체제와 동작 원리 (17) 인터럽트 취급 루틴 인터럽트 처리 루틴의 기능
인터럽트 당한 프로그램이 처리가 중단된 곳에서 인터럽트를 수행하고 난 후 복구되었을 때 정상적인 수행을 계속하는데 필요한 프로그램 상태를 안전한 곳에 기억시켜 보존한다. 중첩된(nested) 인터럽트가 가능한 경우에는 인터럽트 가능 혹은 불능을 선별적으로 정해준다. 인터럽트에 취급 루틴 수행. 보존된 프로그램의 상태를 복구하고 중단된 프로그램의 수행을 계속되도록 한다. 컴퓨터 구조론

21 10.2 인터럽트 체제와 동작 원리 (18) 프로그램 상태의 보존 프로그램 상태어(PSW) 프로그램 상태 레지스터
현재 수행 중이던 프로그램의 PC와 플래그의 내용, 데이터 레지스터와 주소 레지스터들의 상태 등이 포함됨. 프로그램 상태 레지스터 프로그램 상태어를 기억시킨 레지스터 . 1개뿐이므로 수행 중인 프로그램만이 사용할 수 있다. PC의 내용 보존 인터럽트 취급루틴 수행이 완료되면 기억시킨 PC내용을 이용하여 중단된 프로그램의 수행을 계속할 수 있게 한다. [ 중첩 인터럽트가 가능한 인터럽트 체계 ] 컴퓨터 구조론

22 10.2 인터럽트 체제와 동작 원리 (19) 레지스터와 플래그의 상태 보존 프로그램의 올바른 제어를 위해 필요
내용이 변경된 레지스터와 플러그 상태 보존 인터럽트 취급 루틴을 수행할 때 레지스터나 플래그의 내용을 해당 루틴의 안전한 장소에 보존하였다가 수행이 완료되어 중단한 프로그램을 시작하기 전에 보존된 내용들을 복구시켜 준다. PC를 포함하여 레지스터와 플래그를 보존하는 방법 인터럽트 취급 루틴 내에 기억시키는 방법 : PC를 포함하여 인터럽트 취급 루틴에서 사용되는 레지스터나 플래그 내용도 인터럽트 취급 루틴 내 저장 주 기억 장치의 특정 영역인 스택을 이용하는 방법 : 주 기억장치 내의 특정영역에 설정된 스택을 이용.중첩 인터럽트 처리에 효율적 레지스터 세트를 별도로 두는 방법 : 중앙처리 장치 내에 여러 개 레지스터 세트를 구성하고 인터럽트 취급 루틴의 수행이 필요하게 되면 레지스터 세트를 할당하여 사용. 컴퓨터 구조론

23 10.2 인터럽트 체제와 동작 원리 (20) [ 인터럽트 벡터 방식에서 프로그램 상태 보존 ]
[ 스택을 이용한 프로그램 상태 보존 ] 컴퓨터 구조론

24 10.2 인터럽트 체제와 동작 원리 (21) 인터럽트 요청의 중첩
인터럽트의 취급 루틴의 수행이 시작되어 인터럽트 당한 프로그램의 상태 보존 작업이 끝날 때까지는 다른 인터럽트가 허용되어서는 안 됨. 인터럽트를 허용하지 않는 방법 중앙 처리 장치가 인터럽트 허용 회선을 인터럽트 장치에 선택적으로 보내지 않음. 중앙 처리 장치에 의하여 인터럽트 논리 회로에 있는 플래그 D가 세트되어도 플래그 IRQ가 세트되지 않도록 하는 것. (인터럽트 마스크 회선으로 제어) 컴퓨터 구조론

25 10.2 인터럽트 체제와 동작 원리 (22) 컴퓨터 구조론 [ 인터럽트 마스크가 추가된 인터럽트 논리 회로 ]

26 10.2 인터럽트 체제와 동작 원리 (23) 프로그램의 상태 복구
복구 작업이 이루어지는 과정 중에도 인터럽트를 받아들여서는 안 되므로 인터럽트의 발생이 방지되어야 한다. PC를 포함한 프로그램 상태를 보존하는 방법에 따라 다르다. 주 기억 장치의 주소 0에 PC를 보존하는 경우 ① 인터럽트 취급 루틴 내에 보존한 플래그와 레지스터들의 값을 원래의 플래그와 레지스터로 환원시키는 명령어 LD(load)를 실행하여 복귀시킨다. ② 서브루틴의 복귀 명령어와 유사한 명령어 REI(return interrupt) 를 실행하여 인터럽트 취급 루틴의 시작 주소로 분기함으로써 그곳에 보존된 PC의 값을 환원시키면 된다. 컴퓨터 구조론

27 10.3 우선 순위 인터럽트 체제 (1) 인터럽트 우선 순위(Interrupt Priority)
두 개 이상의 인터럽트가 발생하는 경우에 인터럽트를 처리하는 순서를 정하는 것. 근착 우선 처리(last come first serve : LCFS) : 가장 최근에 인터럽트를 요청한 장치가 최고 우선 순위. 선착 우선 처리(first come first serve : FCFS) : 제일 먼저 인터럽트를 요청한 장치가 최고 우선순위. 인터럽트의 우선 순위 체제를 실행시 필요한 기본 기능 각 장치에 우선 순위를 부여하는 기능. 인터럽트를 요청한 장치의 우선 순위를 판별하는 기능. 우선 순위가 높은 장치를 먼저 처리할 수 있는 기능. 컴퓨터 구조론

28 10.3 우선 순위 인터럽트 체제 (2) 단일 회선 인터럽트 체제의 우선 순위 소프트웨어에 의한 우선 순위
일차적인 우선순위는 인터럽트의 원인을 판별할 때 사용되는 폴링 순서이다. 소프트웨어에 의한 우선 순위 체제의 세 가지 특성 프로그램으로 결정하므로 우선 순위에 융통성이 있다. 우선 순위 설정을 위한 하드웨어가 없으므로 경제적이다. 폴링 방법을 이용하여 가장 높은 우순 순위의 장치부터 차례로 검사하므로 많은 시간이 걸려 인터럽트 반응 속도가 느리므로 실시간 처리 시스템에서는 적합하지 않다. 컴퓨터 구조론

29 10.3 우선 순위 인터럽트 체제 (3) 하드웨어에 의한 우선 순위 하드웨어에 의한 우선 순위 설정 방법
인터럽트 요청 체인(interrupt request chain) : 우선 순위 등급이 높은 장치가 인터럽트를 요청할 때, 등급이 낮은 장치는 인터럽트 요청을 할 수 없도록 하는 방법. 인터럽트 우선 순위 체인(interrupt priority chain) : 우선 순위가 가장 높은 장치만 장치 번호 버스를 사용하고, 우선 순위가 낮은 장치들은 인터럽트를 요청했지만 장치 번호 버스의 사용을 금지시키는 방법의 기능. 인터럽트 우선 순위 체인 체제는 인터럽트 요청 체인보다 인터럽트 반응 속도가 빠르고, 인터럽트 처리 과정 및 가장 높은 우선 순위의 인터럽트를 요청한 장치를 판별하는 과정이 간단하다. 컴퓨터 구조론

30 10.3 우선 순위 인터럽트 체제 (4) [ 인터럽트 요청 체인 ] 컴퓨터 구조론

31 10.3 우선 순위 인터럽트 체제 (5) 다중 회선 인터럽트 체제의 우선 순위
다중회선 인터럽트 체제에서는 하드웨어에 의하여 인터럽트원인이 판별됨에 따라서 우선순위도 하드웨어에 의하여 설정되어야 한다. RI의 각 비트는 서로 다른 장치의 인터럽트의 요청을 나타냄. 인터럽트 레지스터와 장치번호 장치 0 > 장치1 > ….. 장치 I > 장치(i+1)>…. 컴퓨터 구조론

32 10.3 우선 순위 인터럽트 체제 (6) 우선 순위를 설정하기 위해 구현되어야 할 두 가지.
요청된 인터럽트 중 가장 높은 등급을 가진 장치를 선정하여 선정된 우선 순위를 레지스터 인터럽트 번호 레지스터(CR)에 기억시키고 인터럽트 취급 루틴을 수행. 임의의 인터럽트를 처리하고 있을 때 인터럽트 요청이 발생한 경우 인터럽트 중에서 가장 높은 등급을 가진 장치를 선정하여CR의 값과 새로 선정된 우선 순위를 비교한다. 현재 처리 중인 인터럽트의 우선 순위가 높으면 수행을 계속하나 새로 선정된 인터럽트의 우선 순위가 높으면 새로 선정된 우선 순위를 레지스터 CR에 기억시킨 다음, 새로 선정된 인터럽트의 취급 루틴을 수행시킨다. 컴퓨터 구조론


Download ppt "10장. 인터럽트 Lecture #10."

Similar presentations


Ads by Google