9 장 가로채기 (Interrupt) - PowerPoint PPT Presentation

justis
slide1 n.
Skip this Video
Loading SlideShow in 5 Seconds..
9 장 가로채기 (Interrupt) PowerPoint Presentation
Download Presentation
9 장 가로채기 (Interrupt)

play fullscreen
1 / 15
Download Presentation
9 장 가로채기 (Interrupt)
310 Views
Download Presentation

9 장 가로채기 (Interrupt)

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. 9장 가로채기(Interrupt) Slide 1 (of 15)

  2. 학습개요 이번 시간에는... “Interrupt”에 대해 알아보겠습니다. 학 습 목 표 이장에서는 CPU의 interrupt에 대해 공부하고 interrupt의 동작과정에 대하여 공부한다. 학 습 목 차 • Interrupt 개요 • Interrupt의 종류 • Daisy Chain Interrupt Slide 2 (of 15) 1/13

  3. Interrupt 개요 • Interrupt의 필요성 (1) 가로채기는 우선순위가 높은 Program을 먼저 수행하게 하는 기능 (2) CPU 기능 향상 목적 ex1) 고속 CPU와 저속 주변장치의 random processing CPU Printer 10ms 10ms 고속 저속 idel time idel time 한 개 문자를 프린터로 출력하기 위해 프린터가 CPU로 Interrupt를 요구한다. CPU가1개 문자를Printer로 출력하는 시간(수uS) Main program 수행 Printer가한 개 문자를 print하는 시간(ms) CPU는 프린터로 한 개 문자를 출력 (INT 처리 program) Slide 3 (of 15)

  4. Interrupt 개요 • Interrupt의 필요성 ex2) 일정한 시간 간격으로 처리해야 할 program (시계) Main program 매초마다 INT 발생 시계를 1초씩 증가 시키는 Interrupt service routine ex3) 정전 시 Data 피신 기능 정전 시 전압이 90%이하가 되면 Data를 피신시키는 INT routine 수행 정상전원 Slide 4 (of 15)

  5. Interrupt 개요 • Interrupt의 필요성 ex4) 순차 다중 제어(Hotel 난방 제어) CPU 001 002 003 010 011 126개 INT service routine 021 111 126 Memory 1대의 Microprocessor로 INT를 이용하여 제어를 할 경우 최대 126개의 독립적인 제어가 가능하다. Slide 5 (of 15)

  6. Interrupt 개요 • INTERRUPT 정의 - 현재 수행중인 program보다 우선순위가 높은 program을 Interrupt에 의해 우선적으로 실행 시켜 주는 기능 • Interrupt 처리 방법 INTERRUP 요구 신호 Main program Interrupt sub program Interrupt service routine Main program • 가로채기 종류(Type of Interrupt) • Internal interrupt : CPU의 내부적으로 발생하는 가로채기 방식 • External interrupt : CPU의 외부에서 가로채기를 요구하는 방식 • Software interrupt : 소프트웨어 적으로 명령어에 의해 가로채기를 발생하는 방식 Slide 6 (of 15)

  7. Interrupt 개요 • 가로채기 방식 • 단일회선 인터럽트 • 다중회선 인터럽트 • 혼합회선 인터럽트 Slide 7 (of 15)

  8. Interrupt 개요 • Interrupt 의 처리 순서 ①주변장치에서 CPU로 INT 요구(Interrupt request signal) CPU /INT 주변장치 가로채기 요구신호 ② CPU는 현재 실행하던 명령어를 끝내고 현재 PC내용을 스텍 포인터로 피신시킨 다음 주변장치로 INT확인신호(Interrupt acknowledge signal)출력 주변장치 CPU /INT /ACK Memory Stack 영역 PC 가로채기 확인 신호 SP PC Slide 8 (of 15)

  9. Interrupt 개요 • Interrupt 의 처리 순서 ③ 주변장치로부터 가로체기 service routine 시작번지를 PC에 Load 하여 가로채기 프로그램을 실행한다 Memory 주변장치 CPU D0- D7 INT 시작번지 INT 시작번지 INT service routine PC RETURN SP PC ④ 가로채기 프로그램을 실행한 후 RETURN명령어를 만나면 스텍 포인터에 피신 되었던 PC 내용을 복구하여 다시 main 프로그램을 계속 실행한다. Memory 주변장치 CPU D0- D7 INT 시작번지 INT 시작번지 INT service routine PC RETURN SP PC Slide 9 (of 15)

  10. Interrupt 개요 • Interrupt 의 처리 순서 Ex) INT 처리 예 ①주변장치에서 CPU로 INT 요구(Interrupt request signal) Memory OP_code 2000H 2001H 2002H 2003H CPU ① 가로채기 요구 PC 2002H Operand SP 2FFEH 2FFFH 3000H 3000H Stack 영역 /INT ① 4000H 4001H 4002H 4003H INT program 가로채기 요구 주변장치 Slide 10 (of 15)

  11. Interrupt 개요 • Interrupt 의 처리 순서 ②현재 실행하던 명령어를 끝까지 수행하고 PC내용을 SP로 피신한 다음 가로체기 확인 신호를 주변장치로 전송한다. Memory OP_code 2000H 2001H 2002H 2003H CPU Operand ② PC 현재 PC 내용 2002H SP ③ 현재 PC 내용 피신 2FFEH 2FFFH 3000H 2FFEH Stack 영역 ④ /INT ⑤ 4000H 4001H 4002H 4003H INT program 가로채기 확인 주변장치 Slide 11 (of 15)

  12. Interrupt 개요 • Interrupt 의 처리 순서 ③현재 실행하던 명령어를 끝까지 수행하고 PC내용을 SP로 피신한 다음 가로체기 확인 신호를 주변장치로 전송한다. Memory OP_code 2000H 2001H 2002H 2003H CPU Operand PC 4000H SP 2FFEH 2FFFH 3000H Stack 영역 2FFEH INT프로그램 실행 ⑦ 현재 PC 내용 /INT ⑥ INT프로그램 시작번지 전송(4000H) 4000H 4001H 4002H 4003H INT program 가로채기 확인 주변장치 ⑧ Slide 12 (of 15)

  13. Interrupt 개요 • Interrupt 의 처리 순서 ④가로채기 프로그램 끝에는 반드시 RETURN 명령어가 있다. RETURN명령어를 만나면 SP에 피신되어 있던 PC의 내용을 복구하여 메인 프로그램을 실행한다. Memory OP_code 2000H 2001H 2002H 2003H CPU Operand 메인 프로그램 실행 ⑪ PC 2002H ⑩ SP 2FFEH 2FFFH 3000H Stack 영역 PC 복구 3000H ⑩ 현재 PC 내용 SP 복구 /INT 4000H 4001H 4002H 4003H INT program 주변장치 ⑨ Slide 13 (of 15)

  14. Interrupt 개요 • Interrupt 의 처리 순서 요약 • Interrupt 처리 순서 요약 주변장치에서 INT요구 1 Main Program 실행 6 5 Main Program 복귀 RETURN명령에 의해 CPU register복구 2 3 4 INT처리루틴 수행 CPU의 PC 및 Register를 Stack에 피신 Slide 14 (of 15)

  15. Interrupt 개요 • Interrupt 처리 루틴 구조 PC 가 지동으로 SP에 피신 INT 프로그램 START INT 시작번지 PUSH AF : Stack에 A,F 레지스터 피신 PUSH BC : Stack에 B,C 레지스터 피신 PUSH DE : Stack에 D,E 레지스터 피신 PUSH HL : Stack에 H,L 레지스터 피신 Interrupt 처리Program POP HL : Stack에 H,L 레지스터 복구 POP DE : Stack에 D,E 레지스터 복구 POP BC : Stack에 B,C 레지스터 복구 POP AF : Stack에 A,F 레지스터 복구 EI : Enable Interrupt RETURN PC 가 지동으로 SP에 복구 Slide 15 (of 15)