요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
===============
What is an IRQ?
===============
An IRQ is an interrupt request from a device. Currently, they can come
in over a pin, or over a packet. Several devices may be connected to
the same pin thus sharing an IRQ. Such as on legacy PCI bus: All devices
typically share 4 lanes/pins. Note that each device can request an
interrupt on each of the lanes.
An IRQ number is a kernel identifier used to talk about a hardware
interrupt source. Typically, this is an index into the global irq_desc
array or sparse_irqs tree. But except for what linux/interrupt.h
implements, the details are architecture specific.
An IRQ number is an enumeration of the possible interrupt sources on a
machine. Typically, what is enumerated is the number of input pins on
all of the interrupt controllers in the system. In the case of ISA,
what is enumerated are the 8 input pins on each of the two i8259
interrupt controllers.
Architectures can assign additional meaning to the IRQ numbers, and
are encouraged to in the case where there is any manual configuration
of the hardware involved. The ISA IRQs are a classic example of
assigning this kind of additional meaning.
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
IRQ란 무엇인가
1-4IRQ란 무엇인가? (What is an IRQ?)
장치의 인터럽트 요청
5-10IRQ는 장치가 보내는 인터럽트 요청입니다. 현재 인터럽트 요청은 핀 또는 패킷을 통해 들어올 수 있습니다. 여러 장치가 같은 핀에 연결되어 하나의 IRQ를 공유할 수도 있습니다. 레거시 PCI 버스가 그 예로, 일반적으로 모든 장치는 4개의 레인 또는 핀을 공유합니다. 각 장치는 각 레인에서 인터럽트를 요청할 수 있습니다.
커널 식별자로서의 IRQ 번호
11-15IRQ 번호는 하드웨어 인터럽트 소스를 지칭하기 위해 커널이 사용하는 식별자입니다. 일반적으로 전역 `irq_desc` 배열 또는 `sparse_irqs` 트리의 인덱스입니다. 다만 `linux/interrupt.h`가 구현하는 부분을 제외한 세부 사항은 아키텍처마다 다릅니다.
인터럽트 소스의 열거
16-21IRQ 번호는 한 시스템에 존재할 수 있는 인터럽트 소스를 열거한 값입니다. 일반적으로 시스템의 모든 인터럽트 컨트롤러에 있는 입력 핀 수를 열거합니다. ISA의 경우에는 두 `i8259` 인터럽트 컨트롤러 각각에 있는 8개 입력 핀을 열거합니다.
아키텍처별 추가 의미
22-25아키텍처는 IRQ 번호에 추가 의미를 부여할 수 있습니다. 특히 하드웨어를 수동으로 구성해야 하는 경우에는 그렇게 하도록 권장합니다. ISA IRQ는 이런 추가 의미를 부여한 대표적인 예입니다.
요약과 해설
concepts.rst:1-25IRQ는 장치가 CPU에 처리를 요청하는 인터럽트 신호이며 핀이나 패킷을 통해 전달됩니다. 여러 장치가 한 IRQ를 공유할 수 있으므로 IRQ 번호가 항상 장치 하나와 일대일로 대응하는 것은 아닙니다.
커널에서 IRQ 번호는 `irq_desc` 배열이나 `sparse_irqs` 트리를 통해 인터럽트 소스를 찾는 식별자 역할을 합니다. 구체적인 매핑과 번호의 추가 의미는 아키텍처와 하드웨어 구성에 따라 달라집니다.