linux中断子系统

参考引用:http://www.wowotech.net/sort/irq_subsystem

wowotech:一个很好的linux技术博客。

一、概述

  1. 目的

kernel管理硬件设备的方式:轮询、中断。中断效率高且反应快于轮询,因为它利用了硬件本身执行指令前会做的‘中断电信号周期轮询’。

  1. 分类

中断分为同步(synchronous)和异步(asynchronous)。

同步也称为异常,由CPU指令错误产生,分为故障、陷阱和中止;

异步也称为中断,由外部电信号产生,对于x86分为可屏蔽(INTR)和不可屏蔽中断(NMI);对于ARM分为IRQ和FIQ;

对于x86 CPU,有两个中断输入pin:INTR和NMI。当CPU接到INTR中断后,会通过INTA pin应答,表示收到中断

  1. 中断控制器:PIC、APIC及GIC

PIC   – Programmable Interrupt Controller     可编程中断控制器(x86 UP)

APIC  – Advanced Programmable Interrupt Controller    高级可编程中断控制器(x86MP)

GIC – Generic Interrupt Controller         ARM公司设计的通用中断控制器(支持MP)

通过cat /proc/interrupts查看。

UP:Uni-processor(单核);MP:Multiple-processor(多核)。

  1. 其他

二、初始化

三、处理过程

四、API

五、问题

系统中有8个CPU,有2000个外设中断要处理,这时候你如何设计系统中的interrupt controller?(采用GIC和采用APIC)

六、其他

原文地址:https://www.cnblogs.com/zengjianrong/p/6748673.html