ν€λ³΄λ μ
λ ₯
β IRQ1 λ°μ
β PIC
β IDT[0x21]
β irq1 (ASM stub)
β irq1_handler (C)
β scancode μ½κΈ° (inb 0x60)
β μ²λ¦¬
β EOI
β 볡κ·
ν΅μ¬:
μΈλΆ νλμ¨μ΄ μ΄λ²€νΈλ₯Ό OSκ° μ§μ μ²λ¦¬νκΈ° μμ
PIC (Programmable Interrupt Controller)
β νλμ¨μ΄ μΈν°λ½νΈ κ΄λ¦¬μ
IRQ
β μ₯μΉκ° 보λ΄λ μΈν°λ½νΈ λ²νΈ
IRQ0 β Timer (PIT)
IRQ1 β Keyboard
λ¬Έμ :
κΈ°μ‘΄ IRQ λ²νΈκ° CPU μμΈ(0x00~0x1F)μ μΆ©λ
ν΄κ²°:
PIC remap
β IRQ0~15 β 0x20~0x2Fλ‘ μ΄λ
κ²°κ³Ό:
Keyboard IRQ1 β IDT 0x21
ICW1 β μ΄κΈ°ν μμ
ICW2 β μΈν°λ½νΈ μμ λ²νΈ (0x20 / 0x28)
ICW3 β Master-Slave μ°κ²°
ICW4 β 8086 λͺ¨λ
μ€μ κ°λ :
PIC μ€μ μ "κ° νλ"κ° μλλΌ "μμ κΈ°λ° νλ‘ν μ½"