2013-11-27 3 views
3

저는 ARM 아키텍처의 전역 인터럽트 컨트롤러에서 인터럽트가 처리되는 방식을 파악하려고하는 프로젝트에서 작업하고 있습니다. 나는 pl390 인터럽트 컨트롤러로 일하고있다. 분배기 논리를 우회하는 레거시 인터럽트로 언급되는 라인이 있음을 알 수 있습니다. 레거시 인터럽트로 2 개의 인터럽트를 프로그래밍 할 수 있습니다. 어느 누구도 정확하게 레거시 인터럽트가 무엇인지에 대한 설명을 도와 줄 수 있습니까? 나는 행운도없이 온라인으로 검색하려고 노력하고있다.레거시 인터럽트 란 무엇입니까?

+1

참조 : [GIC 인터럽트 바이 패스 (http://stackoverflow.com/questions/19651470/what-is-the-use-case-of-gic-interrupt - 바이 패스) –

+0

@artlessnoise 포인터를 가져 주셔서 감사합니다. 불행히도 동의어를 제안하기에는 충분한 크레딧이 없습니다. – Nuetrino

답변

4

레거시 인터럽트는 GIC가 도착하기 전에 ARM에 있던 두 가지 인터럽트 인 nIRQ - 일반 인터럽트 요청과 fIRQ - 고속 인터럽트 요청입니다.

레거시 인터럽트는 단일 코어 프로세서 용으로 만들어 졌기 때문에 내부적으로 멀티 코어 프로세서를 지원하지 않으므로 분배기 논리를 무시하는 이유는 분명합니다. 레거시 인터럽트는 코어 중 하나에 고정되어 있습니다.

요약하면 CPU가 이전 ARM 사양과의 하위 호환성을 유지할 수 있습니다. 예를 들어, 4 코어 ARM CPU는 각각의 코어에 대해 4 개의 nIRQ와 4 개의 fIRQ를 갖습니다. GIC를 지원하지 않는 오래된 ARM 호환 하드웨어를 사용하는 경우 이전 단일 코어 CPU에 연결 한 것처럼 코어의 nIRQ/fIRQ 중 하나에 연결하면 항상 실행됩니다 그 핵심에.

더 많은 정보는 여기에서 찾을 수 있습니다 - http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0407e/CCHDBEBE.html

+0

감사. 그것은 아주 분명하다. 나는 내가 얼마나 많은 클록 사이클이 분배 자와 cpu 인터페이스 로직에 의해 소비되는지를 알 수 있도록이 로직을 구현할 수 있기를 바란다. 나 맞아? – Nuetrino

+0

그럴 수도 있습니다. 나는 배포자가 코어와 주기적으로 동기화되어 있다고 생각하지만 항상 같은 시간이 걸린다는 것을 인정해야한다.하지만 그것은 단지 잘못된 가정 일 뿐이다. 그러나 일반적인 원칙 , 레거시 CPU를 실제로 목표로 설정하지 않으면 레거시 인터럽트를 사용하지 않을 것입니다. 레거시 인터럽트는 향후 (일부 또는 모든 CPU에서) 제거 될 수 있다고 생각합니다. – Luaan

+0

네, 저의 목표입니다. 클럭 사이클에 관한 많은 문서가 있지만 분명히 확인하고 싶습니다. 그래서 레거시 인터럽트 구현은 저에게 그 아이디어를 줄 것이라고 생각합니다. 답변 감사합니다. – Nuetrino