티스토리 뷰

정보통신 및 로봇제어시스템

인터럽트 우선순위

시작이반입니다 시작이반입니다 2021. 7. 14. 07:00

인터럽트 우선순위

인터럽트 우선순위는 동시에 2개 이상의 인터럽트가 발생하는 경우에 어느 것부터 인정해주느냐의 문제입니다. 일반적으로 하드웨어 방법과 소프트웨어 방법이 있습니다. 하드웨어 방법에서는 daisy-chain이라는 회로를 써서 상위의 인터럽트 소스로부터 인터럽트 요청이 없는 경우에 한해서 하위의 인터럽트가 허용되도록 되어 있습니다. 이에 반하여 소프트웨어 방법에서는 polling이라는 기법으로 어느 인터럽트 플래그가 세트되어 있는지를 차례로 조사하는데, 이 때 먼저 조사하는 것의 우선순위가 더 높습니다. Z80은 전자의 방법에 의하고 PIC는 후자의 방법에 의합니다. AVR에 있어서는 daisy-chain도 아니고 polling도 아니고, 우선순위가 하드웨어적으로 미리 지정되어 있습니다. AVR에 있어서는 벡터번호(Vector no.)가 미리 하드웨어적으로 지정되어 있는데, 그것이 낮을수록 우선순위가 높습니다. 그러므로 RESET이 가장 높고 그 다음이 INTO 외부 인터럽트0이고, SPM READY 인터럽트가 가장 낮습니다. 인터럽트 잠복기간에는 모든 AVR 인터럽트에 있어서 인터럽트가 요청되고 그것이 발생되기까지는 소위 인터럽트 잠복기간(latency) 또는 응답시간(response time)이라고 해서 최소한 4개의 클록사이클이 필요합니다. 이 기간 중에 프로그램카운터는 스택에 푸쉬되고, SREG의 I 비트는 클리어되며, 스택포인터는 2만큼 감소됩니다. 그리고 최소한 4 클록의 잠복기간 이후에 실제 인터럽트를 처리하는 루틴에 뛰어갑니다. 이것을 인터럽트 루틴에 벡터한다고 합니다. 벡터는 보통 인터럽트 루틴에 상대 점프하고, 2 클록 사이클을 요합니다. 만약 인터럽트가 2 사이클 이상의 명령(multi-cycle instruction)을 수행하는 중에 요청되면 이 명령을 수행한 후 인터럽트가 서비스되므로 그만큼 더 잠복기간은 길어집니다. 인터럽트 루틴으로부터의 복귀도 4 클록사이클이 걸립니다. 이 기간동안 프로그램 카운터 는 스택에서 꼽되고, 스택포인터는 2만큼 증가되며, SREG의 I 비트는 세트됩니다. AVR이 인터럽트로부터 벗어나면 반드시 메인 루틴에 복귀하고, 또 다른 인터럽트가 대기중인 경우에는 이를 수행하기 전에 하나의 메인루틴 명령을 수행합니다.

'정보통신 및 로봇제어시스템' 카테고리의 다른 글

USART의 개요  (0) 2021.07.18
외부 인터럽트  (0) 2021.07.16
인터럽트 우선순위  (0) 2021.07.14
인터럽트 발생 조건  (0) 2021.07.09
인터럽트 소스  (0) 2021.07.07
I/O포트의 기능  (0) 2021.07.05
댓글
댓글쓰기 폼
공지사항
최근에 달린 댓글
Total
1,227
Today
0
Yesterday
4
링크
TAG
more
«   2021/09   »
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    
글 보관함