15
9장 장장장장 (Interrupt) Slide 1 (of 15)

9 장 가로채기 (Interrupt)

  • 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

Page 1: 9 장 가로채기 (Interrupt)

9 장

가로채기 (Interrupt)

Slide 1 (of 15)

Page 2: 9 장 가로채기 (Interrupt)

이 장 에 서 는 CPU 의 interrupt 에 대 해 공 부 하 고

interrupt 의 동작과정에 대하여 공부한다 .

이번 시간에는 ...

“Interrupt” 에 대해 알아보겠습니다 .

1/13

학습개요학습개요

학 습 목 표학 습 목 표학 습 목 표학 습 목 표

• Interrupt 개요• Interrupt 의 종류• Daisy Chain Interrupt

학 습 목 차학 습 목 차학 습 목 차학 습 목 차

Slide 2 (of 15)

Page 3: 9 장 가로채기 (Interrupt)

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)

Page 4: 9 장 가로채기 (Interrupt)

Interrupt 개요

Interrupt 의 필요성

ex2) 일정한 시간 간격으로 처리해야 할 program ( 시계 )

Main program

시계를 1 초씩 증가 시키는 Interrupt service routine

매초마다INT 발생

ex3) 정전 시 Data 피신 기능

정상전원 정전 시 전압이 90% 이하가 되면 Data 를 피신시키는 INT routine 수행

Slide 4 (of 15)

Page 5: 9 장 가로채기 (Interrupt)

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)

Page 6: 9 장 가로채기 (Interrupt)

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)

Page 7: 9 장 가로채기 (Interrupt)

단일회선 인터럽트 다중회선 인터럽트 혼합회선 인터럽트

Interrupt 개요

가로채기 방식

....

인터럽트 요청 회선

(a) 단일회선

CPU

인터페이스 장치 인터페이스 장치 인터페이스 장치

....

(b) 다중회선

CPU

인터페이스 장치 인터페이스 장치 인터페이스 장치

....

(c) 혼합회선

....

CPU

인터페이스 장치 인터페이스 장치 인터페이스 장치

인터페이스 장치 인터페이스 장치 인터페이스 장치

Slide 7 (of 15)

Page 8: 9 장 가로채기 (Interrupt)

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)

Page 9: 9 장 가로채기 (Interrupt)

③ 주변장치로부터 가로체기 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)

Page 10: 9 장 가로채기 (Interrupt)

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)

Page 11: 9 장 가로채기 (Interrupt)

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)

Page 12: 9 장 가로채기 (Interrupt)

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)

Page 13: 9 장 가로채기 (Interrupt)

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)

Page 14: 9 장 가로채기 (Interrupt)

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)

Page 15: 9 장 가로채기 (Interrupt)

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)