Upload
justis
View
128
Download
0
Embed Size (px)
DESCRIPTION
9 장 가로채기 (Interrupt). 학습개요. 이번 시간에는 ... “ Interrupt ” 에 대해 알아보겠습니다. 학 습 목 표. 이장에서는 CPU 의 interrupt 에 대해 공부하고 interrupt 의 동작과정에 대하여 공부한다. 학 습 목 차. Interrupt 개요 Interrupt 의 종류 Daisy Chain Interrupt. 1/13. Interrupt 개요. Interrupt 의 필요성. - PowerPoint PPT Presentation
Citation preview
9 장
가로채기 (Interrupt)
Slide 1 (of 15)
이 장 에 서 는 CPU 의 interrupt 에 대 해 공 부 하 고
interrupt 의 동작과정에 대하여 공부한다 .
이번 시간에는 ...
“Interrupt” 에 대해 알아보겠습니다 .
1/13
학습개요학습개요
학 습 목 표학 습 목 표학 습 목 표학 습 목 표
• Interrupt 개요• Interrupt 의 종류• Daisy Chain Interrupt
학 습 목 차학 습 목 차학 습 목 차학 습 목 차
Slide 2 (of 15)
Interrupt 개요
Interrupt 의 필요성
(1) 가로채기는 우선순위가 높은 Program 을 먼저 수행하게 하는 기능(2) CPU 기능 향상 목적
ex1) 고속 CPU 와 저속 주변장치의 random processing
CPU Printer
고속 저속
10ms 10ms
CPU 가 1 개 문자를 Printer 로 출력하는 시간 ( 수 uS)
Printer 가한 개 문자를print 하는 시간 (ms)
idel timeidel time
Main program 수행
한 개 문자를 프린터로 출력하기 위해 프린터가 CPU 로 Interrupt 를 요구한다 .
CPU 는 프린터로 한 개 문자를 출력 (INT 처리 program)
Slide 3 (of 15)
Interrupt 개요
Interrupt 의 필요성
ex2) 일정한 시간 간격으로 처리해야 할 program ( 시계 )
Main program
시계를 1 초씩 증가 시키는 Interrupt service routine
매초마다INT 발생
ex3) 정전 시 Data 피신 기능
정상전원 정전 시 전압이 90% 이하가 되면 Data 를 피신시키는 INT routine 수행
Slide 4 (of 15)
Interrupt 개요
Interrupt 의 필요성
ex4) 순차 다중 제어 (Hotel 난방 제어 )
001 002 003 010
011
021
111 126
CPU
126 개INT
serviceroutine
Memory
1 대의 Microprocessor 로 INT 를 이용하여 제어를 할 경우 최대 126 개의 독립적인 제어가
가능하다 .
Slide 5 (of 15)
Interrupt 개요
INTERRUPT 정의
- 현재 수행중인 program 보다 우선순위가 높은 program 을 Interrupt 에 의해 우선적으로 실행 시켜 주는 기능
Mainprogram Interrupt
subprogram
Mainprogram
INTERRUP
요구 신호 Interrupt service routine
(1) Internal interrupt : CPU 의 내부적으로 발생하는 가로채기 방식
(2) External interrupt : CPU 의 외부에서 가로채기를 요구하는 방식
(3) Software interrupt : 소프트웨어 적으로 명령어에 의해 가로채기를 발생하는 방식
Interrupt 처리 방법
가로채기 종류 (Type of Interrupt)
Slide 6 (of 15)
단일회선 인터럽트 다중회선 인터럽트 혼합회선 인터럽트
Interrupt 개요
가로채기 방식
....
인터럽트 요청 회선
(a) 단일회선
CPU
인터페이스 장치 인터페이스 장치 인터페이스 장치
....
(b) 다중회선
CPU
인터페이스 장치 인터페이스 장치 인터페이스 장치
....
(c) 혼합회선
....
CPU
인터페이스 장치 인터페이스 장치 인터페이스 장치
인터페이스 장치 인터페이스 장치 인터페이스 장치
Slide 7 (of 15)
Interrupt 개요
Interrupt 의 처리 순서
① 주변장치에서 CPU 로 INT 요구 (Interrupt request signal)
② CPU 는 현재 실행하던 명령어를 끝내고 현재 PC 내용을 스텍 포인터로 피신시킨 다음
주변장치로 INT 확인신호 (Interrupt acknowledge signal) 출력
주변장치
주변장치
CPU
가로채기 요구신호
CPU /INT
/INT/ACK
PC
SP
MemoryStack 영역
PC
가로채기 확인 신호
Slide 8 (of 15)
③ 주변장치로부터 가로체기 service routine 시작번지를 PC 에 Load 하여 가로채기 프로그램을 실행한다
주변장치
CPU D0- D7
PC
SP
Memory
PC
Interrupt 개요
Interrupt 의 처리 순서
INT 시작번지INT serviceroutine RETURN
INT 시작번지
④ 가로채기 프로그램을 실행한 후 RETURN 명령어를 만나면 스텍 포인터에 피신 되었던 PC 내용을 복구하여 다시 main 프로그램을 계속 실행한다 .
주변장치
CPU D0- D7
PC
SP
Memory
PC
INT 시작번지INT serviceroutine RETURN
INT 시작번지
Slide 9 (of 15)
3EH
00H
RETURN
Interrupt 개요
Interrupt 의 처리 순서
Ex) INT 처리 예
① 주변장치에서 CPU 로 INT 요구 (Interrupt request signal)
2000H
2001H
2002H
2003H
3EH
56H
2AH
Memory
2FFEH
2FFFH
3000H
4000H
4001H
4002H
4003H
OP_code
Operand
CPU
2002H
3000H
PC
SP
주변장치
/INT
가로채기 요구①
①가로채기 요구
Stack 영역
INT program
Slide 10 (of 15)
Interrupt 개요
Interrupt 의 처리 순서
② 현재 실행하던 명령어를 끝까지 수행하고 PC 내용을 SP 로 피신한 다음 가로체기 확인 신호를 주변장치로 전송한다 .
2000H
2001H
2002H
2003H
3EH
56H
2AH
Memory
02
20
3EH
00H
RETURN
2FFEH
2FFFH
3000H
4000H
4001H
4002H
4003H
OP_code
Operand
CPU
2002H
2FFEH
PC
SP
주변장치
/INT
가로채기 확인
②현재 PC 내용
Stack 영역
INT program
⑤
현재 PC 내용 피신③
④
Slide 11 (of 15)
Interrupt 개요
Interrupt 의 처리 순서
③ 현재 실행하던 명령어를 끝까지 수행하고 PC 내용을 SP 로 피신한 다음 가로체기 확인 신호를 주변장치로 전송한다 .
2000H
2001H
2002H
2003H
3EH
56H
2AH
Memory
02
20
3EH
00H
RETURN
2FFEH
2FFFH
3000H
4000H
4001H
4002H
4003H
OP_code
Operand
CPU
4000H
2FFEH
PC
SP
주변장치
/INT
가로채기 확인
현재 PC 내용
Stack 영역
INT program
⑥
⑦
⑧
INT 프로그램 시작번지전송 (4000H)
INT 프로그램 실행
Slide 12 (of 15)
Interrupt 개요
Interrupt 의 처리 순서
④ 가로채기 프로그램 끝에는 반드시 RETURN 명령어가 있다 . RETURN 명령어를 만나면 SP 에 피신되어 있던 PC 의 내용을 복구하여 메인 프로그램을 실행한다 .
2000H
2001H
2002H
2003H
3EH
56H
2AH
Memory
3EH
00H
RETURN
2FFEH
2FFFH
3000H
4000H
4001H
4002H
4003H
OP_code
Operand
CPU
2002H
3000H
PC
SP
주변장치
/INT
현재 PC 내용
Stack 영역
INT program
⑩
⑨
PC 복구
⑪
⑩SP 복구
메인 프로그램 실행
Slide 13 (of 15)
Interrupt 개요
Interrupt 의 처리 순서 요약
Interrupt 처리 순서 요약
1
2 3 4
5
6
CPU 의 PC 및 Register 를 Stack 에 피신
주변장치에서 INT 요구
INT 처리루틴 수행
RETURN 명령에 의해 CPU register복구
Main Program 실행
Main Program 복귀
Slide 14 (of 15)
Interrupt 개요
Interrupt 처리 루틴 구조
PUSH AF : Stack 에 A,F 레지스터 피신PUSH BC : Stack 에 B,C 레지스터 피신PUSH DE : Stack 에 D,E 레지스터 피신PUSH HL : Stack 에 H,L 레지스터 피신
POP HL : Stack 에 H,L 레지스터 복구POP DE : Stack 에 D,E 레지스터 복구POP BC : Stack 에 B,C 레지스터 복구POP AF : Stack 에 A,F 레지스터 복구EI : Enable Interrupt
Interrupt 처리 Program
PC 가 지동으로 SP 에 피신INT 시작번지 INT 프로그램 START
RETURNPC 가 지동으로 SP 에 복구
Slide 15 (of 15)