『阿男的Linux内核世界』*17 什么是硬件中断*

『阿男的Linux内核世界』*17 什么是硬件中断*

这次我们讲讲硬件中断,硬件中断是CPU接受到的硬件发来的信号,比如我们使用键盘敲入一个字符,这个信号就是要发给CPU来处理。那么为了接受到这种信号,肯定是要在键盘和CPU之间有某种连接才可以。

现在的键盘一般是通过USB接口连接的,USB接口连着USB控制器,USB控制器连接着CPU吗?其实在CPU的组成里,有一个专门接受这些硬件发来的信号,也就是"硬件中断",的芯片,叫做APIC,全称Advanced Programmable Interrupt Controller^1,就是用来接受各种硬件发来的信号用的。然后这个芯片直接连接CPU,这样硬件发来的信号就可以发给CPU了。

这个芯片有Intel自己生产的,也有别的厂家生产的,目前Intel架构下在用的型号叫做8259,长这个样子:

输入图片说明

这个芯片很多厂家都在做,不只是Intel自己。

通过这个芯片,CPU就可以接收各种硬件发过来的信号,这个信号里面肯定得包含足够CPU处理的信息。比如键盘的输入信号,肯定要告诉CPU,用户按下的是哪个键,有了这个信息CPU才能处理细节。

操作系统会有各种硬件的驱动程序,负责处理CPU接收到的硬件中断。首先CPU知道发过来信号的硬件具体是哪一个,比如,是键盘还是鼠标,这样才可以让操作系统相关的驱动程序来处理。其次,CPU要给驱动程序提供硬件中断里面包含的具体信息,比如键盘按下了哪一个键,这样键盘的驱动程序就可以收到这个信息并作处理。

我们之前学习了IDT,知道了操作系统有一个中断处理程序的入口列表,还知道IDTR是Intel架构的CPU提供给我们的指向IDT的搞权限寄存器,因此明白CPU是怎样根据硬件中断的编号,来执行具体的中断处理程序。而硬件中断的处理程序则是一般由各个硬件的驱动程序提供。

关于硬件中断处理在Kernel里面的具体设计,我们后续再讲。这篇就先讲这么多。

转载于:https://my.oschina.net/u/3195023/blog/826826

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值