관리 메뉴

kisoo

ISR 이란??? 본문

01.About Programming /2.Kernel Lab

ISR 이란???

JamesK78 2009. 12. 2. 17:19
마이크로 콘트롤러에 지식이 있거나, 컴퓨터에 많은 관심이 있어야 이해하기 쉬울겁니다.

CPU에서 데이터를 처리하는 방법에 여러가지가 있는데,
그중에 인터럽트와 폴링이라는게 있습니다.

폴링은 데이터가 그냥 죽 들어오는 겁니다.
프로세서는 그것을 정해진 순서대로 처리를 합니다.
그런데 비상사태(전원이 나가려고 한다던지)나 급하게 처리해야 할 일이 생기면
큰일 나겠죠. 데이터를 저장도 못하고 날려버리고, 처리해야할 타이밍도 놓치고..

그래서 만들어 놓은게 인터럽트라는 겁니다.
이것은 프로세서에 중대한 상황과 기타 사용자가 정의하는 상황을 번호로 매겨놓습니다
그리고 그 일이 생기면 현재의 작업을 중단하고 우선 처리합니다.

이 인터럽트들은 프로세서에서 롬으로 정의를 해놓습니다.
그런데, 롬에 저장이 되어 있으므로 수정이 불가능하여 인터럽트 벡터테이블이라는 것을
램영역에 만들고 이부분에 처리해야할 내용을 적어둡니다.
이 부분도 메모리의 할당이 적어서 많은 내용을 쓰진 못하고,
다른 함수를 호출하게 되어 있습니다.

인터럽트가 걸리고 정해진 내용을 처리하는 과정을 인터럽트 서비스라고 합니다.

만들어진 내용(함수)을 인터럽트 서비스 루틴이라고 합니다.

PC에서도 이런 인터럽트가 있고, 인터럽트가 걸렸다는 신호로 IRQ라는 것을 씁니다.
IRQ는 많이 들어 보셨을 겁니다.
Interrupt ReQuest
PC는 주변 하드웨어가 많아서 인터럽트가 걸려도 어떤 놈이 걸었는지를 모릅니다.
그래서 IRQ라는 신호를 만들어서 장비를 확인하게 해줍니다.
Comments