본문 바로가기

시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리/10장: GIC(Generic Interrupt Controller)

(4)
[Arm프로세서] GIC의 기본 구조 효율적으로 인터럽트를 설정 및 처리하기 위해 GIC를 사용합니다. GIC를 구성하는 하드웨어 블록을 제대로 이해하고 GIC에서 정의한 레지스터의 용도와 사용 방법만 익히면 됩니다.  GIC의 가장 중요한 기능은 무엇일까요? 이 질문에는 다음과 같이 답할 수 있습니다.    ● 인터럽트의 우선 순위를 각 I/O 장치에 적용해 설정   ● 입력으로 받은 인터럽트를 CPU에 전달 GIC는 인터럽트 콘트롤러이므로 GIC의 주된 기능은 다른 인터럽트 콘트롤러와 다르지 않습니다. 대신 GIC에서 인터럽트를 4가지로 분류해 관리합니다. 이어서 GIC에서 정의된 4가지 인터럽트 소스를 소개하고 인터럽트 상태 머신을 설명합니다.
[Arm프로세서] GIC: 인터럽트 소스와 타입 효율적으로 인터럽트를 설정 및 처리하기 위해 GIC를 사용하는데, GIC의 가장 중요한 기능은 다음과 같이 요약할 수 있습니다.  인터럽트의 우선순위를 각 I/O 장치에 적용해 설정  입력으로 받은 인터럽트를 CPU에 전달 GIC는 인터럽트 컨트롤러이므로 GIC의 주된 기능은 다른 인터럽트 컨트롤러와 다르지 않습니다. 다른 인터럽트 컨트롤러와 다른 점은 GIC는 인터럽트를 4가지 종류로 분류해 관리한다는 점입니다. 이어서 GIC에서 정의된 4가지 인터럽트 소스를 소개하고 인터럽트 상태 머신을 설명합니다.  GIC는 4가지 타입의 인터럽트 소스를 처리하며 다음 표에서 종류를 확인할 수 있습니다.표 10.2 GIC를 구성하는 인터럽트 소스의 종류  이처럼 GIC는 페리페럴에서 전달된 4가지 인터럽트 입력..
[Arm프로세서] GIC의 기본 기능 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 코어..
[Arm프로세서] 인터럽트 콘트롤러의 기본 구조 인터럽트 콘트롤러가 필요한 이유를 알아봤으니 이어서 인터럽트 콘트롤러를 소개합니다. 다음 그림은 인터럽트 콘트롤러의 기본 구조도입니다. 그림 16.1 인터럽트 콘트롤러의 기본 구조 그림에서 가장 왼쪽에 있는 USB나 센서, 키보드는 외부 I/O 디바이스를 나타냅니다. 이와 같은 외부 I/O 디바이스에서 인터럽트 신호를 발생하면 인터럽트 콘트롤러가 받아서 처리합니다. 보다시피 인터럽트 콘트롤러는 CPU 옆에 달려 있습니다. 여러 외부 I/O 디바이스에서 올려준 인터럽트를 처리하는 일종의 창구로 다음과 같은 역할을 수행합니다. “여러 외부 I/O 디바이스가 올려준 인터럽트를 받아 IRQ나 FIQ로 CPU에 전달” 이는 그림의 nIRQ나 nFIQ에 해당되며 인터럽트 콘트롤러와 CPU 사이의 인터페이스는 nIR..