FPGA 정리/FPGA 개념 정리

Interrupt 방식과 Polling 방식

유로 청년 2025. 1. 10. 13:46

1) Intro

  • 이번 과제를 수행하던 중, UART 통신을 이용하여 4byte 데이터 A, B를 수신 받은 뒤, 이를 메모리 주소 (1byte) + 데이터 (4byte)를 WriteBuffer 배열 (5byte)을 이용하여 SPI 통신할 수 있도록 설계하였다.
  • 그러던 중, UART 통신은 Interrupt 방식을 사용했지만, SPI 통신은 Polling 방식으로 사용하였다.
  • 사실 이전까지는 Interrupt 방식을 이용하여 설계해본 경험은 있지만, Polling 방식을 이용하여 설계해본 경험이 없었기 때문에 이에 대한 정확한 정의와 차이, 장단점에 대해서 잘 모르기 때문에 이에 대한 정리가 필요했다.

 

 

2) Interrupt 방식

  • Interrupt 방식은 CPU가 프로그램 실행하는 과정에서 외부 입출력 장치, 주변기기로부터 Event가 발생하면 진행중이던 작업을 잠시 중단하고, Interrupt Service Routine으로 이동하여 Event 처리하는 방식이다.
  • 따라서 Interrupt가 발생하면 스텍 메모리에 "현재 몇 번째 작업까지 완료했는가?"에 대한 정보를 담고 있는 주소 번지를 저장하고, Interrupt Service Routine을 실행한다.
  • ISR 작업이 완료되면 스텍 메모리를 참조를 통해 다시 작업하는 곳으로 복귀해서 하던 일을 계속 이어 나가는 것이다.

 

 

3) Polling 방식

  • Polling 방식은 정기적으로 일정한 주기를 갖고, 대상을 감시하는 방식으로 Event가 발생하면 해당 처리 루틴을 실행한다.
  • 폴링은 주기적으로 마이크로프로세서가 상태를 파악하기 위해 장치의 레지스터를 읽어야 하고, 이 작업이 진행되는 동안은 다른 장치의 체크는 힘들다.
  • 보통 While문과 같은 loop문으로 이어지는데, 계속해서 상태를 체크하면서,확인해야하기 때문에 소스를 군데 군데 상태를 체크할 수 있도록 코딩해야 한다.

 

 

 

4) 장단점

  Interrupt 방식 Polling 방식
장점 1) Event 발생 시그널을 통해 정확한 타이밍을 확인하고,
빠르게 대응할 수 있음.

2) Event 발생 시에만 대응하기 때문에 시스템 부하가 적음.
1) 반복문을 통해 구현하기 쉽다.
단점 1) Polling 방식과 비교하였을 때,
구현하기 상대적으로 어려움
1) Event 발생 시, 빠르게 대응하기 어려움

2) 일정한 주기를 갖고, 대응하기 때문에
시스템 부하가 많음