Arm Linux Kernel Hacks

rousalome.egloos.com

포토로그 Kernel Crash


통계 위젯 (화이트)

46107
469
422678


[Arm프로세서] GIC의 프로그래머 모델(Programmer Model) Arm: GIC

GIC의 기본 구조를 알아 봤으니 GIC의 프로그래머 모델을 소개합니다. GIC는 디스트리뷰터, 리디스트리뷰터 혹은 CPU interface와 같은 하드웨어 블록으로 구성됐으며 GIC에서 제공하는 레지스터를 통해 설정할 수 있습니다. 다음 그림은 GIC의 전체 구성도입니다.

 

그림 16.6 GIC 프로그래머 모델

그림 16.6는 GIC의 전체 구조를 나타냅니다. 먼저 그림의 가장 윗 부분에 있는 Distributor(디스트리뷰터)를 봅시다. GIC에서 디스트리뷰터는 1개 존재하며 디스트리뷰터는 SPI(Shared Peripheral Interrupt)를 받아 처리합니다. 디스트리뷰터가 처리하는 인터럽트는 여러 CPU 코어에서 받아 처리할 수 있습니다.

이어서 디스트리뷰터 아래에 있는 리디스트리뷰터를 봅시다. 리디스트리뷰터는 Arm 코어의 갯수 만큼 존재합니다. 그림 16.6에서 Arm 코어와 리디스트리뷰터의 개수는 4개입니다. 리디스트리뷰터는 특정 Arm 코어에서 처리하는 PPI(Private Peripheral Interrupt)를 관리합니다. 
---
[정보] 리디스트리뷰터는 언제 도입됐나?

리디스트리뷰터는 GICv3에 소개된 하드웨어 블록입니다. GICv2 버전에서 리디스트리뷰터는 존재하지 않았습니다. 


이어서 Redistribution 아래에 있는 CPU interface를 봅시다. CPU interface는 Arm 코어마다 존재하며 SGI(Software Generated Interrupt)와 PPI(Private Peripheral Interrupt)를 Arm 코어에 라우팅하는 역할을 수행합니다. 

CPU interface는 Arm 코어와 인터페이싱하는 하드웨어 블록입니다. GIC 인터럽트 핸들러에서 CPU interface에 존재하는 레지스터를 읽고 쓰는 명령어를 실행합니다.

여기서 GIC를 구성하는 디스트리뷰터, 리디스트리뷰터, CPU interface와 같은 3가지 하드웨어 블록을 알아봤습니다. 이어서 디스트리뷰터를 구성하는 레지스터를 소개합니다.
---


덧글

댓글 입력 영역