X86中断系统-中断源及PIC

1、中断源

          x86系统支持256个中断源,每个中断源使用0~255数字标识,该标识称作中断向量号(即CPU中断源的中断号,要与外部中断的中断号IRQ n相区别),CPU通过获取中断向量号识别中断源。256个中断源可以分为:



  其中:

         1)内部中断:由CPU内部事件及执行软中断指令产生,由除法中断、溢出中断、单步中断、断点中断、软件中断组成;

         2)外部中断:x86 CPU为外部中断只提供了NMI、INTR两个引脚;其中外部不可屏蔽中断如总线错误、电源错误、内存错误等引起的中断,通过NMI引脚提供给CPU;外部可屏蔽中断通过INTR引脚向CPU传递中断

2、中断控制器

目前常见的中断控制器分为PIC(programable interrupt controller)8259A和APIC(advanced programable interrupt controller);

2.1、8259A PIC

 我们都知道计算机可以挂接上许多外部设备,比如键盘、磁盘驱动器、鼠标、声卡……等等一系列设备,而这些设备都可能在同一时刻向CPU发出

中断信号(也就是外部中断),那么CPU到底应当响应哪一个设备的中断信号呢?这都通过另外一个芯片来控制,在IBM PC机中,这个芯片常常被称作

可编程中断控制器(PIC)8259A,说它可编程,是因为我们可以通过编程来改变它的功能。比如我可以通过编程设定CPU应当优先响应哪一个中断,

屏蔽哪些中断等等一系列事件。

1)引脚功能介绍

  • D7~D0:双向、三态数据线,与系统数据总线相连。对i8259A编程时,命令字由此写入,在第二个中断响应总线周期中,中断类型码由此传给CPU。
  • RD (上划线):读信号,输入,与系统控制总线IOR(上划线) 相连。RD (上划线) =0时,CPU对i8259A进行读操作。
  • WR(上划线) :写信号,输入,与系统控制总线IOW(上划线) 相连。当WR(上划线)=0时,CPU对i8259A进行写操作。
  • A0:片内寄存器寻址信号,输入,用于对片内寄存器端口寻址。每片i8259A有两个寄存器端口,A0=0时,选中偶地址端口,A0=1时,选中奇地址端口。在与8088系统相连时,可将该引脚与地址总线的A0连接;与8086系统连接时,可将该引脚与地址总线的A1连接。
  • CS (上划线):片选信号,输入。CS (上划线) =0时,i8259A被选中。在与8088系统相连时,系统地址信号A15~A1经译码器译码后为i8259A产生片选信号。
  • SP/EN(上划线) :双功能双向信号。当8259A工作在缓冲模式时,它作为输出,用于控制缓冲器的传送方向。当数据从CPU送往i8259A时,SP/EN(上划线) 输出为高电平;当数据从i8259A送往CPU时,SP/EN(上划线) 输出为低电平。当8259A工作在非缓冲模式时,它作为输入,用于指定8259A是主片还是从片(级联方式)。SP/EN(上划线) =1的8259A为主片,SP/EN(上划线) =0的8259A为从片。

备注:在Linux中, i8259A均工作在非缓冲模式下。

  • INT:中断请求信号,输出,与CPU的中断请求信号线INT相连。在级联方式下,从片的INT与主片的IR7~IR0中的某一根连接在一起。
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NIUZI_J

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值