一个操作系统的设计与实现——第21章 高级可编程中断控制器

21.1 什么是高级可编程中断控制器

我们已经使用过型号为8259A的可编程中断控制器(Programmable Interrupt Controller,PIC)。在单CPU计算机中,中断的处理相对简单:所有的外设和CPU都连接在PIC上即可。然而,如果计算机中不止一个CPU,情况就会变得复杂起来。以双CPU为例:

  • 键盘中断会被每个CPU分别接收一次,这是错误的
  • 时钟中断会统一广播给各个CPU,这样做虽然没有错误,但降低了灵活性

高级可编程中断控制器(Advanced Programmable Interrupt Controller,APIC)用于解决上述问题。顾名思义,APIC是PIC的升级版,其结构如下:

  • 既然每个CPU需要独立的接收中断,尤其是时钟中断,那就为每个CPU分别安装一个中断控制器,这些APIC就称为本地APIC(Local APIC,LAPIC)。并且,每个LAPIC中都安装了独立的定时器
  • 既然某些外设不能广播到每个CPU上,那就再为外设专门准备一个中断控制器,这个APIC就称为IO APIC
  • 任意两个APIC之间都可以通信。也就是说,不仅CPU与外设之间能够使用中断,CPU之间也能互相使用中断

需要注意的是:PIC和APIC在计算机中是并存的,且均与CPU连接。如果要使用APIC,就需要屏蔽PIC的所有信号。IO APIC的所有信号在默认状态下都是屏蔽的。

21.2 APIC内存映射

APIC使用内存映射而非IO端口进行通

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值