인터럽트

포스트: 34
Tags

Posts

34 posts

[Arm프로세서] GIC의 기본 기능

Guillermo Austin Kim|2022년 8월 16일

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에게 전달되는 인터럽트를 나타냅니다. 그림 가장 오

[Arm프로세서] GIC는 왜 배워야 할까?

Guillermo Austin Kim|2022년 8월 16일

Arm 아키텍처와 관련된 주제로 세미나를 진행하면 참석자들은 다음과 같은 질문을 종종 합니다. ● FIQ는 어떻게 설정할까? ● 시큐어 인터럽트는 어떻게 설정해야 할까? 이런 질문에 대해 답하려면 GIC(Generic Interrupt Controller)를 알아야 합니다. GIC를 구성하는 주요 기능(레지스터, 명령어)을 배우면 위에서 소개한 질문에 모두 답할 수 있습니다. 이 밖에도 리눅스 커널 드라이버의 세부 동작 방식을 파악하려면 GIC를 알아야 합니다. ● IPI(Inter-Processor Interrupt Call)의 세부 동작 원리 ● Arch 타이머의 구동 원리 Arm 아키텍처를 이루는 주요 기능을 심도있게 파악하거나

[Arm프로세서] GIC: 인터럽트 콘트롤러가 필요한 이유

Guillermo Austin Kim|2022년 8월 3일

인터럽트 콘트롤러가 필요한 이유는 무엇일까요? 컴퓨터는 다음과 같이 구성돼 있기 때문입니다. ● CPU ● 메모리 ● I/O 장치 마이크로 프로세서는 CPU와 메모리를 깊이 있게 다룹니다. 그런데 실제 고객이 사용하는 제품은 키보드나 마우스와 같은 외부 I/O 장치가 필요합니다. 외부 I/O 장치를 CPU가 다양한 방식으로 제어하는데, 이 중 가장 효율적인 방법이 인터럽트입니다. 예를 들어 휴대폰에서 터치 화면을 만지면 터치 인터럽트가 유발돼 CPU 코어에게 터치가 눌렸다는 사실을 알립니다. 또한 노트북에서 마우스나 키보드를 움직이면 인터럽트를 통해 CPU와 통신합니다. 외부 I/O 장치가 인터럽트를 올려주면 이를 통해(Consolidation)해서 CPU에

[리눅스커널] IPI(Inter Processor Interrupt) Call 요청 루틴(하이 레벨 뷰)

Guillermo Austin Kim|2022년 3월 21일

IPI(Inter Processor Interrupt)의 약자로 지정한 CPU 코어를 타겟으로 인터럽트(소프트웨어적)를 유발하는 매커니즘입니다. 이번 포스트에서는 리눅스 커널에서 IPI Call을 요청하는 루틴을 리뷰하겠습니다. IPI Call은 아키텍처에 의존적으로 처리되므로 하이 레벨과 로우 레벨로 코드가 구현돼 있습니다. * High Level 코드 위치 kernel/sched/core.c kernel/smp.c kernel/irq/ipi.c * Low Level (Arm 아키텍처) 코드 위치 arch/arm64/kernel/smp.c drivers/irqchip/irq-gic-v3.c IPI Call 요청 루틴(하이 레벨) 아래 함수는 Qualcomm Watchdog