프로세서에는 하나의 인터럽트 만있는 것이 일반적입니다. x86은 잠시 동안 그런 것처럼 보였을 것입니다. 암은 전통적으로 두 개 였지만 새로운 코어의 수가 32,256 개로 많습니다.
여기서 언급 한 tangrs는 일반적으로 프로세서 외부에있는 것으로, 팔의 경우에는 칩 자체이지만 팔 코어 자체는 아니다. 뭔가 많은 인터럽트 입력과 하나 또는 몇 개의 인터럽트 프로세서로가는 출력 또는 출력이 있습니다. 프로세서 인터럽트가 발생하면 프로세서/코어 외부의이 논리/하드웨어로 누가 그 원인을 확인하고 거기에 도달했는지 확인합니다.
또한 중첩 된 인터럽트 컨트롤러를 갖는 것은 일반적이지 않습니다. 예를 들어, 하나의 출력으로 8 개의 입력을들 수 있습니다. 그리고 그 8 개의 입력 중 일부 또는 각각에 대해 또 다른 8 대 1 인터럽트 컨트롤러가 있습니다. 그러면 소프트웨어는 간단히 경로를 따라 가야합니다. 첫 번째 레벨 인터럽트 컨트롤러를 확인하여 인터럽트가 발생한 인터럽트를 확인한 다음 인터럽트를 분리 할 때까지 다음 계층 컨트롤러를 알아야합니다.
또한 이러한 공유 인터럽트 시스템의 경우 기본적으로 프로그램이 중지되고 인터럽트 벡터가 호출되는 시점부터 "동시에"여러 인터럽트가 발생할 수 있다는 것을 알고 있고 인터럽트를 수행합니다 시작 물건과 결국 인터럽트 상태 레지스터를 읽고, 하나 이상 올 수 있습니다. 당신이 그걸 처리하는 방법을 결정할 필요가/시스템/논리에 따라 그들 중 하나에서 반환하는 경우 다른 사람이 당신을 다시 데려 올 수도 인터럽트 핸들러는 임 펜션이 펜딩 중 하나만 처리 할 수 있도록합니다. 다른 논리에서는 돌아 오기 전에 모든 보류를 처리해야 할 수도 있습니다.
암은 반드시 인터럽트 나 핀 라인에 묶여있는 것을 제어하지 않기 때문에 인터럽트 시스템이 특정 암 칩에 대해 어떻게 작동하는지에 대한 다양한 벤더의 모든 솔루션을 얻을 수 있습니다.
대단히 감사합니다. 나는 dwelch에도 질문을했는데, 주소 0x0000018에 매핑 된 인터럽트 핸들러가 하나 뿐이며이 핸들러는 모듈에 특정한 다른 핸들러를 돌볼 책임이 있습니까? , 당신이 내게 어떤 코드를 제안 할 수 위대한 "인터럽트 처리기 일반적으로 인터럽트 컨트롤러가 어떤 인터럽트를 발생시킨 다음 적절한 처리기를 호출합니다"제안 할 수 있습니다. 인터럽트 처리기가 인터럽트 컨트롤러에 어떤 핀이 인터럽트를 발생시키는 지 묻습니다. –
정확한 SoC 및 구성에 따라 다르지만 일반적으로 일종의 메모리 매핑 IO 레지스터 읽기가 필요합니다. – tangrs
좋은 tangrs, 당신은 나의 이해에 주소 0x0000018에 매핑 된 하나의 인터럽트 처리기가 있는지 확인하시기 바랍니다이 처리기는 모듈에 특정 다른 처리기 돌보는 책임이 있습니까? –