Armv7, Armv8와 같은 아키텍처 버전이 있듯이 GIC에도 버전이 있습니다. GIC 버전은 GICv1 ~ GICv4인데 GIC 버전마다 지원하는 기능이 달라 GIC 버전 별로 사용되는 Arm 프로세서가 어느 정도 정해져 있습니다.
다음 표에서 GIC 버전 별로 사용되는 프로세서 목록을 확인할 수 있습니다.

표 16.1 GIC 버전 별 특징
사실 어느 Arm 프로세서에서 어떤 GIC 버전을 선택할지는 개발자의 선택에 달려 있지만, 표 16.1와 같은 조합으로 사용됩니다.
1세대 GIC 버전인 GICv1은 Cortex-A5, Cortex-A9 프로세서에서 주로 사용됩니다. GICv2는 Cortex-A7, Cortex-A15, Cortex-A17 프로세서에 적용됩니다. 주로 32비트 Armv7 기반의 Arm 프로세서(Cortex-A 계열)는 주로 GICv2와 함께 사용됩니다. 32비트 계열의 Arm Cortex 프로세서를 개발하면 GICv1~GICv2 버전의 GIC를 주로 선택합니다.
GICv3은 Armv8(Aarch64: 64비트) 아키텍처 기반의 Cortex-A3x, Cortex-A5x, Cortex-A7x 프로세서에서 많이 적용됩니다. GICv3에서 지원하는 시스템 레지스터는 익셉션 레벨을 지원하기 때문에 Armv8(Aarch64: 64비트) 기반의 프로세서는 GICv3 버전의 GIC를 사용합니다.
GICv4은 GICv3에서 가상 인터럽트(Virtual interrupts)와 관련된 기능이 추가된 GIC입니다. 게스트 OS를 사용하는 하이퍼바이저 아키텍처에서 주로 사용되는 GIC입니다.
표 16.1에서 명시된 바와 같이 다양한 GIC 버전 중에서 어떤 GIC 버전을 배워야 할까요? 64비트 기반의 Armv8 아키텍처 기반의 Cortex-A53, Cortex-A76과 같은 프로세서를 개발하면 GICv3를 알아야 합니다. 만약 32비트 기반의 Armv7 아키텍처로 분류되는 프로세서를 선택했다면 GICv2를 배우면 됩니다.
GICv3 기준으로 GIC의 주요 기능을 배우고 GICv2의 내용도 분석하면, 배운 내용을 대부분 Arm 프로세서에 적용할 수 있습니다.
최근 덧글