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) 일정한 주기를 갖고, 대응하기 때문에 시스템 부하가 많음 |