GIC는 Arm 사에서 디자인한 인터럽트 콘트롤러입니다. 다음 그림을 보면서 GIC의 구조를 배워봅시다.



그림 16.2 간략화한 GIC의 전체 구조

그림을 보면 가운데 박스에 GIC가 있습니다. 그림 왼쪽에 있는 ‘peripheral 1 ~ peripheral n’은 시스템을 구성하고 있는 외부 I/O 디바이스입니다. 예를 들어 peripheral이 3개인 경우 다음과 같은 peripheral로 구성될 수 있습니다.

   ● peripheral 1: 마우스
   ● peripheral 2: 키보드
   ● peripheral 3: 캠코더 센서

peripheral와 GIC 사이에 있는 화살표는 peripheral에서 GIC에게 전달되는 인터럽트를 나타냅니다. 그림 가장 오른쪽에 Processor가 있는데 이는 Arm 코어를 나타냅니다. 
 
정리하면 GIC는 n개로 구성된 peripheral에서 올려주는 인터럽트를 받아서 Arm 코어에게 분배하는 임무를 맡고 있습니다. GIC가 제공하는 가장 대표적인 기능은 다음과 같습니다.

   ● 각각 peripheral 디바이스들이 전달하는 인터럽트를 받는다.
   ● 설정된 인터럽트의 우선 순위를 기준으로 적절한 Arm 코어에 인터럽트를 라우팅한다.

GIC는 Cortex-A와 Cortex-R 계열의 Arm 프로세서와 함께 많이 사용됩니다. GIC는 싱글 코어에서부터 100개 이상의 멀티 코어로 구성된 환경에서 인터럽트를 효율적으로 관리할 수 있는 다양한 기능을 제공합니다. 또한 Arm 코어에서 GIC를 효율적으로 제어할 수 있어 많은 SoC 칩 벤더는 GIC를 활용합니다. 

GIC 버전 별로 주로 사용되는 프로세스 목록이 있습니다. 

 

< '시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리' 저자>

 
 

+ Recent posts