혼공컴운 교재로 학습한 내용을 복습하던 중 궁금점이 생겼다
하드웨어 인터럽트 처리 순서는 다음과 같다
3번 과정에서 인터럽트 요청을 확인하고, 요청이 있다고 가정해보자
그렇다면 인터럽트 플래그를 확인하여 받아들일 수 있는 상태여야 이를 처리할 수 있는데,
만약 받아들이지 못하는 상태라면 말짱도루묵 아닌가 ?
즉, 반대로 인터럽트 플래그를 먼저 확인하고 인터럽트 요청 유무를 확인한다고 해보자
(0 - 인터럽트를 받아들일 수 없음, 1 - 인터럽트를 받아들일 수 있음 가정)
인터럽트 플래그 = 0 : 인터럽트가 발생하던 말던 받아들일 수 없으므로 인터럽트 요청 확인할 필요가 없다.
인터럽트 플래그 = 1 : 인터럽트 요청을 매번 확인 .. ? ? ?
이렇게 쓰고 보니까 둘다 비슷한 것 같기도 하고...
구글링 해봐도 원하는 답변이 안나와서 밑져야 본전으로 지피티씨한테 물어봤다
플래그 레지스터의 여러 종류의 플래그들 중에서 인터럽트 플래그의 값은 "대부분 가능" 으로 되어있나..? 일반적으로 어떤 값이 디폴트인지는 잘 모르겠다
그냥 지피티씨 말대로 단순하게
"인터럽트 플래그를 먼저 확인할 경우, 값이 어떻다 한들 인터럽트 요청을 받아들이는 것이 지연되어 처리의 지연을 초래할 수 있으니 인터럽트의 요청을 우선시 하자" 로 결론을 내야 될 것 같다.